diff options
author | Vinod Krishnan <vinodkrishnan@google.com> | 2015-09-28 13:29:25 -0700 |
---|---|---|
committer | Vinod Krishnan <vinodkrishnan@google.com> | 2015-09-28 15:19:33 -0700 |
commit | eb9a1b659375d01d4276db622358dafb68b9d4fc (patch) | |
tree | 1880b9a1aac701576ddb75a627ffce446a8869ec | |
parent | c965cb21917b2dffec7ee5bb47ffa080cb482c1a (diff) | |
download | android_packages_apps_PackageInstaller-eb9a1b659375d01d4276db622358dafb68b9d4fc.tar.gz android_packages_apps_PackageInstaller-eb9a1b659375d01d4276db622358dafb68b9d4fc.tar.bz2 android_packages_apps_PackageInstaller-eb9a1b659375d01d4276db622358dafb68b9d4fc.zip |
Block Install Intent for Wear devices
- We did not support this feature on Android Wear before
- The impact is unknown. For example, the Setting for UNKNOWN_SOURCES is
not implemented in Android Wear Settings App.
Bug: 24336381
Change-Id: I0fb4006d4769291c872e8f21407383a7c4a77b93
-rw-r--r-- | res/values-watch/styles.xml | 2 | ||||
-rw-r--r-- | res/values/strings.xml | 5 | ||||
-rw-r--r-- | src/com/android/packageinstaller/InstallFlowAnalytics.java | 7 | ||||
-rw-r--r-- | src/com/android/packageinstaller/PackageInstallerActivity.java | 22 |
4 files changed, 34 insertions, 2 deletions
diff --git a/res/values-watch/styles.xml b/res/values-watch/styles.xml index dc2be042..01ab90eb 100644 --- a/res/values-watch/styles.xml +++ b/res/values-watch/styles.xml @@ -15,6 +15,8 @@ --> <resources> + <style name="Theme.DialogWhenLarge" parent="@android:style/Theme.DeviceDefault.NoActionBar"/> + <!-- START: Ported values --> <style name="TextAppearance.Wearable.Small" parent="android:TextAppearance.Medium"> <item name="android:textSize">16sp</item> diff --git a/res/values/strings.xml b/res/values/strings.xml index d79ba63d..0f1a73f2 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -274,4 +274,9 @@ before permissions can be changed. [CHAR LIMIT=NONE] --> <string name="screen_overlay_button">Open settings</string> + <!-- Title of dialog telling users that Install/Uninstall action is not supported on Android Wear. --> + <string name="wear_not_allowed_dlg_title">Android Wear</string> + <!-- Title of dialog telling users that Install/Uninstall action is not supported on Android Wear. --> + <string name="wear_not_allowed_dlg_text">Instal/Uninstall actions not supported on Wear.</string> + </resources> diff --git a/src/com/android/packageinstaller/InstallFlowAnalytics.java b/src/com/android/packageinstaller/InstallFlowAnalytics.java index 2fc6db37..4591f31c 100644 --- a/src/com/android/packageinstaller/InstallFlowAnalytics.java +++ b/src/com/android/packageinstaller/InstallFlowAnalytics.java @@ -85,6 +85,11 @@ public class InstallFlowAnalytics implements Parcelable { */ static final byte RESULT_PACKAGE_MANAGER_INSTALL_FAILED = 6; + /** + * Installation blocked since this feature is not allowed on Android Wear devices yet. + */ + static final byte RESULT_NOT_ALLOWED_ON_WEAR = 7; + private static final int FLAG_INSTALLS_FROM_UNKNOWN_SOURCES_PERMITTED = 1 << 0; private static final int FLAG_INSTALL_REQUEST_FROM_UNKNOWN_SOURCE = 1 << 1; private static final int FLAG_VERIFY_APPS_ENABLED = 1 << 2; @@ -600,4 +605,4 @@ public class InstallFlowAnalytics implements Parcelable { } return digest.digest(); } -}
\ No newline at end of file +} diff --git a/src/com/android/packageinstaller/PackageInstallerActivity.java b/src/com/android/packageinstaller/PackageInstallerActivity.java index 6bcd80e4..868872a9 100644 --- a/src/com/android/packageinstaller/PackageInstallerActivity.java +++ b/src/com/android/packageinstaller/PackageInstallerActivity.java @@ -110,6 +110,7 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen private static final int DLG_INSTALL_ERROR = DLG_BASE + 4; private static final int DLG_ALLOW_SOURCE = DLG_BASE + 5; private static final int DLG_ADMIN_RESTRICTS_UNKNOWN_SOURCES = DLG_BASE + 6; + private static final int DLG_NOT_SUPPORTED_ON_WEAR = DLG_BASE + 7; private void startInstallConfirm() { TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost); @@ -293,7 +294,7 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen Log.i(TAG, "Canceling installation"); finish(); } - }) + }) .setOnCancelListener(this) .create(); case DLG_INSTALL_ERROR : @@ -333,6 +334,18 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen }) .setOnCancelListener(this) .create(); + case DLG_NOT_SUPPORTED_ON_WEAR: + return new AlertDialog.Builder(this) + .setTitle(R.string.wear_not_allowed_dlg_title) + .setMessage(R.string.wear_not_allowed_dlg_text) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + setResult(RESULT_OK); + finish(); + } + }) + .setOnCancelListener(this) + .create(); } return null; } @@ -478,6 +491,13 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen mInstallFlowAnalytics.setAppVerifierInstalled(isAppVerifierInstalled()); mInstallFlowAnalytics.setPackageUri(mPackageURI.toString()); + if (DeviceUtils.isWear(this)) { + showDialogInner(DLG_NOT_SUPPORTED_ON_WEAR); + mInstallFlowAnalytics.setFlowFinished( + InstallFlowAnalytics.RESULT_NOT_ALLOWED_ON_WEAR); + return; + } + final String scheme = mPackageURI.getScheme(); if (scheme != null && !"file".equals(scheme) && !"package".equals(scheme)) { Log.w(TAG, "Unsupported scheme " + scheme); |