summaryrefslogtreecommitdiffstats
path: root/app/src/main/AndroidManifest.xml
blob: 026be6c8af6545b4d1ae0f04ab4c509646aa8525 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<?xml version="1.0" encoding="utf-8"?><!--
  ~ Copyright © 2014-2024 The Android Password Store Authors. All Rights Reserved.
  ~ SPDX-License-Identifier: GPL-3.0-only
  -->

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:installLocation="auto">

  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
  <!-- Required by Autofill to verify the certificate hashes of packages -->
  <uses-permission
    android:name="android.permission.QUERY_ALL_PACKAGES"
    tools:ignore="QueryAllPackagesPermission" />

  <uses-feature
    android:name="android.hardware.touchscreen"
    android:required="false" />
  <uses-feature
    android:name="android.hardware.camera.any"
    android:required="false" />

  <application
    android:name=".Application"
    android:allowBackup="false"
    android:dataExtractionRules="@xml/data_extraction_rules"
    android:fullBackupContent="@xml/backup_content"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppThemeM3"
    tools:ignore="GoogleAppIndexingWarning">

    <activity
      android:name=".ui.main.LaunchActivity"
      android:configChanges="orientation|screenSize"
      android:exported="true">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>

    <!-- ponytail: rotation must not cancel store and git work in lifecycleScope; theme or locale changes still recreate. -->
    <activity
      android:name=".ui.main.MainActivity"
      android:configChanges="orientation|screenSize"
      android:exported="false"
      android:windowSoftInputMode="adjustResize" />

    <activity
      android:name="com.journeyapps.barcodescanner.CaptureActivity"
      android:clearTaskOnLaunch="true"
      android:exported="false"
      android:stateNotNeeded="true"
      android:theme="@style/zxing_CaptureTheme"
      android:windowSoftInputMode="stateAlwaysHidden"
      tools:node="replace" />

    <service
      android:name=".util.services.ClipboardService"
      android:exported="false"
      android:foregroundServiceType="shortService"
      android:process=":clipboard_service_process" />
    <service
      android:name=".util.services.PasswordExportService"
      android:exported="false"
      android:foregroundServiceType="shortService"
      android:process=":password_export_service_process" />
    <service
      android:name=".util.services.OreoAutofillService"
      android:exported="true"
      android:permission="android.permission.BIND_AUTOFILL_SERVICE">
      <intent-filter>
        <action android:name="android.service.autofill.AutofillService" />
      </intent-filter>
      <meta-data
        android:name="android.autofill"
        android:resource="@xml/oreo_autofill_service" />
    </service>
    <service
      android:name=".util.services.CredentialService"
      android:exported="true"
      android:permission="android.permission.BIND_CREDENTIAL_PROVIDER_SERVICE"
      tools:targetApi="34">
      <intent-filter>
        <action android:name="android.service.credentials.CredentialProviderService" />
      </intent-filter>
      <meta-data
        android:name="android.credentials.provider"
        android:resource="@xml/credential_provider" />
    </service>

    <!-- ponytail: rotation, resizing and keyboard changes must not cancel a fill in progress;
         other recreations (theme, locale) cancel it. -->
    <activity
      android:name=".ui.autofill.AutofillDecryptActivity"
      android:configChanges="orientation|screenSize|smallestScreenSize|screenLayout|keyboard|keyboardHidden"
      android:exported="false"
      android:theme="@style/NoBackgroundThemeM3" />
    <activity
      android:name=".ui.autofill.AutofillFilterView"
      android:configChanges="orientation|keyboardHidden"
      android:exported="false"
      android:theme="@style/DialogLikeThemeM3"
      android:windowSoftInputMode="adjustNothing" />
    <!-- ponytail: rotation must not cancel a save running in lifecycleScope, as in MainActivity. -->
    <activity
      android:name=".ui.autofill.AutofillSaveActivity"
      android:configChanges="orientation|screenSize"
      android:exported="false"
      android:windowSoftInputMode="adjustResize" />
    <activity
      android:name=".ui.autofill.AutofillPublisherChangedActivity"
      android:configChanges="orientation|keyboardHidden"
      android:exported="false"
      android:theme="@style/DialogLikeThemeM3"
      android:windowSoftInputMode="adjustNothing" />
  </application>

  <queries>
    <package android:name="org.sufficientlysecure.keychain" />

    <intent>
      <action android:name="android.intent.action.SEND" />
      <data android:mimeType="text/plain" />
    </intent>
    <intent>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:scheme="https" />
    </intent>
  </queries>

</manifest>