aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/AndroidManifest.xml
diff options
context:
space:
mode:
Diffstat (limited to 'OpenKeychain/src/main/AndroidManifest.xml')
-rw-r--r--OpenKeychain/src/main/AndroidManifest.xml114
1 files changed, 64 insertions, 50 deletions
diff --git a/OpenKeychain/src/main/AndroidManifest.xml b/OpenKeychain/src/main/AndroidManifest.xml
index f63cf8823..00c861ccc 100644
--- a/OpenKeychain/src/main/AndroidManifest.xml
+++ b/OpenKeychain/src/main/AndroidManifest.xml
@@ -2,24 +2,22 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.sufficientlysecure.keychain"
- android:installLocation="auto"
- android:versionCode="32100"
- android:versionName="3.2.1">
+ android:installLocation="auto">
<!--
General remarks
===============
- Last APG 1 version was 10900 (1.0.9 beta 00)
- Keychain starting with versionCode 20000!
-
+
Association of file types to Keychain
=====================================
General remarks about file ending conventions:
- *.gpg,*.pgp for binary files
- *.asc for ascii armored files The actual content can be anything.
-
+
The file ending only shows if it is binary or ascii encoded.
-
+
Remarks about the ugly android:pathPattern:
- We are matching all files with a specific file ending.
This is done in an ugly way because of Android limitations.
@@ -50,9 +48,10 @@
android:name="android.hardware.screen.portrait"
android:required="false" />
- <permission android:name="org.sufficientlysecure.keychain.WRITE_TEMPORARY_STORAGE" />
-
- <uses-permission android:name="org.sufficientlysecure.keychain.WRITE_TEMPORARY_STORAGE" />
+ <!-- TemporaryStorageProvider should be writable by OpenKeychain only, thus signature-level permission -->
+ <permission
+ android:name="${applicationId}.WRITE_TEMPORARY_STORAGE"
+ android:protectionLevel="signature" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
@@ -74,7 +73,7 @@
android:hardwareAccelerated="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
- android:theme="@style/KeychainTheme">
+ android:theme="@style/Theme.Keychain.Light">
<activity
android:name=".ui.MainActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
@@ -96,6 +95,15 @@
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".ui.MainActivity" />
+ <!-- Connect with YubiKeys. This Activity will automatically show/import/create YubiKeys -->
+ <intent-filter android:label="@string/app_name">
+ <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ <data
+ android:scheme="https"
+ android:host="my.yubico.com"
+ android:pathPrefix="/neo"/>
+ </intent-filter>
</activity>
<activity
android:name=".ui.EditKeyActivity"
@@ -201,7 +209,7 @@
</intent-filter>
</activity>
<activity
- android:name=".ui.DecryptTextActivity"
+ android:name=".ui.DisplayTextActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
android:label="@string/title_decrypt"
android:parentActivityName=".ui.MainActivity"
@@ -209,25 +217,9 @@
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".ui.MainActivity" />
-
- <!-- DECRYPT_TEXT with text as extra -->
- <intent-filter>
- <action android:name="org.sufficientlysecure.keychain.action.DECRYPT_TEXT" />
-
- <category android:name="android.intent.category.DEFAULT" />
- </intent-filter>
- <!-- Android's Send Action -->
- <intent-filter android:label="@string/intent_send_decrypt">
- <action android:name="android.intent.action.SEND" />
-
- <category android:name="android.intent.category.DEFAULT" />
-
- <data android:mimeType="text/*" />
- <data android:mimeType="message/*" />
- </intent-filter>
</activity>
<activity
- android:name=".ui.DecryptFilesActivity"
+ android:name=".ui.DecryptActivity"
android:configChanges="orientation|screenSize|keyboardHidden|keyboard"
android:label="@string/title_decrypt"
android:parentActivityName=".ui.MainActivity"
@@ -272,13 +264,23 @@
<data android:scheme="file" />
<data android:scheme="content" />
</intent-filter>
- <!-- Android's Send Action -->
+
+ <!-- DECRYPT_TEXT -->
+ <intent-filter>
+ <action android:name="org.sufficientlysecure.keychain.action.DECRYPT_TEXT" />
+
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+
+ <!-- Android's Send and Multi-Send Actions -->
<intent-filter android:label="@string/intent_send_decrypt">
<action android:name="android.intent.action.SEND" />
+ <action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
- <!-- everything except text/* and message/* -->
+ <data android:mimeType="text/*" />
+ <data android:mimeType="message/*" />
<data android:mimeType="image/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="video/*" />
@@ -684,7 +686,15 @@
<activity
android:name=".ui.PassphraseDialogActivity"
android:theme="@android:style/Theme.NoDisplay" />
- <activity android:name=".ui.PassphraseWizardActivity" />
+ <activity
+ android:name=".ui.RetryUploadDialogActivity"
+ android:theme="@android:style/Theme.NoDisplay" />
+ <activity
+ android:name=".ui.DeleteKeyDialogActivity"
+ android:theme="@android:style/Theme.NoDisplay" />
+ <activity
+ android:name=".ui.OrbotRequiredDialogActivity"
+ android:theme="@android:style/Theme.NoDisplay" />
<!--
NOTE: singleTop is set to get NFC foreground dispatch to work.
Then, all NFC intents will be broadcasted to onNewIntent() of this activity!
@@ -694,21 +704,11 @@
-->
<activity
android:name=".ui.NfcOperationActivity"
+ android:theme="@style/Theme.Keychain.Light.Dialog"
android:allowTaskReparenting="true"
android:launchMode="singleTop"
android:taskAffinity=":Nfc" />
- <!--<activity-->
- <!--android:name=".ui.NfcIntentActivity"-->
- <!--android:launchMode="singleTop">-->
- <!--<intent-filter>-->
- <!--<action android:name="android.nfc.action.NDEF_DISCOVERED" />-->
-
- <!--<category android:name="android.intent.category.DEFAULT" />-->
- <!--<data android:host="my.yubico.com" android:scheme="https"/>-->
- <!--</intent-filter>-->
- <!--</activity>-->
-
<activity
android:name=".ui.HelpActivity"
android:label="@string/title_help" />
@@ -723,16 +723,16 @@
android:exported="false"
android:process=":remote_api" />
<service
- android:name=".service.KeychainIntentService"
- android:exported="false" />
- <service
- android:name=".service.CloudImportService"
+ android:name=".service.KeychainService"
android:exported="false" />
+ <!-- label is made to be "Keyserver Sync" since that is the only context in which
+ the user will see it-->
<provider
android:name=".provider.KeychainProvider"
- android:authorities="org.sufficientlysecure.keychain.provider"
- android:exported="false" />
+ android:authorities="${applicationId}.provider"
+ android:exported="false"
+ android:label="@string/keyserver_sync_settings_title"/>
<!-- Internal classes of the remote APIs (not exported) -->
<activity
@@ -806,12 +806,26 @@
android:resource="@xml/custom_pgp_contacts_structure" />
</service>
+ <service
+ android:name=".service.KeyserverSyncAdapterService"
+ android:exported="true"
+ android:process=":sync"
+ tools:ignore="ExportedService">
+ <intent-filter>
+ <action android:name="android.content.SyncAdapter" />
+ </intent-filter>
+
+ <meta-data
+ android:name="android.content.SyncAdapter"
+ android:resource="@xml/keyserver_sync_adapter_desc" />
+ </service>
+
<!-- Storage Provider for temporary decrypted files -->
<provider
android:name=".provider.TemporaryStorageProvider"
- android:authorities="org.sufficientlysecure.keychain.tempstorage"
+ android:authorities="${applicationId}.tempstorage"
android:exported="true"
- android:writePermission="org.sufficientlysecure.keychain.WRITE_TEMPORARY_STORAGE" />
+ android:writePermission="${applicationId}.WRITE_TEMPORARY_STORAGE" />
</application>