diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4e667e7da..c499b50d7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -393,10 +393,10 @@ android:name="android.support.PARENT_ACTIVITY" android:value=".FDroid" /> </activity> - <!-- Note: Theme.NoDisplay, this activity shows dialogs only --> + <!-- Note: AppThemeTransparent, this activity shows dialogs only --> <activity android:name=".privileged.install.InstallExtensionDialogActivity" - android:theme="@android:style/Theme.NoDisplay" /> + android:theme="@style/AppThemeTransparent" /> <receiver android:name=".privileged.install.InstallExtensionBootReceiver" > <intent-filter> diff --git a/app/src/main/java/org/fdroid/fdroid/installer/Installer.java b/app/src/main/java/org/fdroid/fdroid/installer/Installer.java index a0a549448..cdbb39bc0 100644 --- a/app/src/main/java/org/fdroid/fdroid/installer/Installer.java +++ b/app/src/main/java/org/fdroid/fdroid/installer/Installer.java @@ -170,7 +170,7 @@ public abstract class Installer { */ public void installPackage(File apkFile, String packageName, String urlString) throws InstallFailedException { - SanitizedFile apkToInstall = null; + SanitizedFile apkToInstall; try { Map<String, Object> attributes = AndroidXMLDecompress.getManifestHeaderAttributes(apkFile.getAbsolutePath()); diff --git a/app/src/main/java/org/fdroid/fdroid/privileged/install/InstallExtensionDialogActivity.java b/app/src/main/java/org/fdroid/fdroid/privileged/install/InstallExtensionDialogActivity.java index 221cfb3b5..5305483d2 100644 --- a/app/src/main/java/org/fdroid/fdroid/privileged/install/InstallExtensionDialogActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/privileged/install/InstallExtensionDialogActivity.java @@ -206,6 +206,21 @@ public class InstallExtensionDialogActivity extends FragmentActivity { // hack to get theme applied (which is not automatically applied due to activity's Theme.NoDisplay ContextThemeWrapper theme = new ContextThemeWrapper(this, FDroidApp.getCurThemeResId()); + // not support on Android >= 5.1 + if (android.os.Build.VERSION.SDK_INT >= 22) { + AlertDialog.Builder alertBuilder = new AlertDialog.Builder(theme); + alertBuilder.setMessage(R.string.system_install_not_supported); + alertBuilder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + InstallExtensionDialogActivity.this.setResult(Activity.RESULT_CANCELED); + InstallExtensionDialogActivity.this.finish(); + } + }); + alertBuilder.create().show(); + return; + } + AlertDialog.Builder alertBuilder = new AlertDialog.Builder(theme); alertBuilder.setTitle(R.string.system_install_question); String message = InstallExtension.create(getApplicationContext()).getWarningString(); diff --git a/app/src/main/res/values-v23/styles.xml b/app/src/main/res/values-v23/styles.xml new file mode 100644 index 000000000..628ad2432 --- /dev/null +++ b/app/src/main/res/values-v23/styles.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <!-- see http://stackoverflow.com/questions/32169303/activity-did-not-call-finish-api-23 --> + <style name="AppThemeTransparent" parent="@android:style/Theme.Translucent.NoTitleBar" /> + +</resources> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 20d0988a3..d2203a659 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -295,6 +295,7 @@ <string name="system_install_first_time_message">Looks like you have root access on your device. You can now install F-Droid Privileged Extension, tightly coupled with the Android operating system. This allows F-Droid to install, upgrade and uninstall apps on its own.</string> <string name="system_uninstall">Do you want to uninstall F-Droid Privileged Extension?</string> <string name="system_uninstall_button">Uninstall</string> + <string name="system_install_not_supported">Installation of F-Droid Privileged Extension is currently not supported on Android 5.1 or later.</string> <string name="swap_nfc_title">Touch to swap</string> <string name="swap_nfc_description">If your friend has F-Droid and NFC turned on touch your devices together.</string> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 397e2581e..254dbe092 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -237,4 +237,6 @@ </style> <style name="AppDetailsSubheaderText" parent="AppDetailsSubheaderTextBase" /> + + <style name="AppThemeTransparent" parent="@android:style/Theme.NoDisplay" /> </resources>