From a053ae2dea1b167aae58e075e8e4e9a00ebf3992 Mon Sep 17 00:00:00 2001 From: Michael Jurka Date: Fri, 14 Sep 2012 14:09:16 -0700 Subject: [PATCH 1/6] Fix crash in Settings > Security Change-Id: Ib439c652f4f8a55cac710dbd22792943a7ef8f98 --- .../android/settings/SecuritySettings.java | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index e9e3a193e47..ce59fddee21 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -254,19 +254,21 @@ public class SecuritySettings extends SettingsPreferenceFragment } mUserSelectedWidget = root.findPreference(KEY_CHOOSE_USER_SELECTED_LOCKSCREEN_WIDGET); - AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(getActivity()); - int appWidgetId = -1; - String appWidgetIdString = Settings.Secure.getString( - getContentResolver(), Settings.Secure.LOCK_SCREEN_USER_SELECTED_APPWIDGET_ID); - if (appWidgetIdString != null) {; - appWidgetId = (int) Integer.decode(appWidgetIdString); - } - if (appWidgetId == -1) { - mUserSelectedWidget.setSummary(getResources().getString(R.string.widget_none)); - } else { - AppWidgetProviderInfo appWidget = appWidgetManager.getAppWidgetInfo(appWidgetId); - if (appWidget != null) { - mUserSelectedWidget.setSummary(appWidget.label); + if (mUserSelectedWidget != null) { + AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(getActivity()); + int appWidgetId = -1; + String appWidgetIdString = Settings.Secure.getString( + getContentResolver(), Settings.Secure.LOCK_SCREEN_USER_SELECTED_APPWIDGET_ID); + if (appWidgetIdString != null) {; + appWidgetId = (int) Integer.decode(appWidgetIdString); + } + if (appWidgetId == -1) { + mUserSelectedWidget.setSummary(getResources().getString(R.string.widget_none)); + } else { + AppWidgetProviderInfo appWidget = appWidgetManager.getAppWidgetInfo(appWidgetId); + if (appWidget != null) { + mUserSelectedWidget.setSummary(appWidget.label); + } } } From 5a72c6733d53e493dd5c45c859765b83bd5c47bd Mon Sep 17 00:00:00 2001 From: Robert Greenwalt Date: Sun, 16 Sep 2012 17:03:08 -0700 Subject: [PATCH 2/6] Must initialize the new atomic.. bug:7172859 Change-Id: Ibaf390683fa36771215b463fb6b088f7430c0462 --- src/com/android/settings/TetherSettings.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java index 1564803cd30..df44e911c9d 100644 --- a/src/com/android/settings/TetherSettings.java +++ b/src/com/android/settings/TetherSettings.java @@ -79,7 +79,7 @@ public class TetherSettings extends SettingsPreferenceFragment private String[] mWifiRegexs; private String[] mBluetoothRegexs; - private AtomicReference mBluetoothPan; + private AtomicReference mBluetoothPan = new AtomicReference(); private static final String WIFI_AP_SSID_AND_SECURITY = "wifi_ap_ssid_and_security"; private static final int CONFIG_SUBTEXT = R.string.wifi_tether_configure_subtext; From 682298bc345aee2590bf864a16985a9322586473 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Tue, 18 Sep 2012 12:04:00 -0700 Subject: [PATCH 3/6] Fix issue #7178865: Selecting an app from Settings > Apps>... ...all crashes on a secondary user Change-Id: I977932bce3ea2816e4c9d1002488b658a96e3986 --- .../applications/InstalledAppDetails.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java index 907bf53df43..2284b91a9cf 100644 --- a/src/com/android/settings/applications/InstalledAppDetails.java +++ b/src/com/android/settings/applications/InstalledAppDetails.java @@ -379,8 +379,6 @@ public class InstalledAppDetails extends Fragment @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); - - setHasOptionsMenu(true); mState = ApplicationsState.getInstance(getActivity().getApplication()); mSession = mState.newSession(this); @@ -393,6 +391,10 @@ public class InstalledAppDetails extends Fragment mSmsManager = ISms.Stub.asInterface(ServiceManager.getService("isms")); mCanBeOnSdCardChecker = new CanBeOnSdCardChecker(); + + retrieveAppEntry(); + + setHasOptionsMenu(true); } @Override @@ -452,6 +454,8 @@ public class InstalledAppDetails extends Fragment boolean showIt = true; if (mUpdatedSysApp) { showIt = false; + } else if (mAppEntry == null) { + showIt = false; } else if ((mAppEntry.info.flags & ApplicationInfo.FLAG_SYSTEM) != 0) { showIt = false; } else if (mDpm.packageHasActiveAdmins(mPackageInfo.packageName)) { @@ -549,10 +553,7 @@ public class InstalledAppDetails extends Fragment public void onRunningStateChanged(boolean running) { } - private boolean refreshUi() { - if (mMoveInProgress) { - return true; - } + private String retrieveAppEntry() { final Bundle args = getArguments(); String packageName = (args != null) ? args.getString(ARG_PACKAGE_NAME) : null; if (packageName == null) { @@ -563,7 +564,15 @@ public class InstalledAppDetails extends Fragment } } mAppEntry = mState.getEntry(packageName); - + return packageName; + } + + private boolean refreshUi() { + if (mMoveInProgress) { + return true; + } + final String packageName = retrieveAppEntry(); + if (mAppEntry == null) { return false; // onCreate must have failed, make sure to exit } From 352c9017658510fcf31d0a905882de611db7eb3b Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Tue, 18 Sep 2012 13:26:29 -0700 Subject: [PATCH 4/6] Tweaking mechanism for adding keyguard widgets -> Fix for issue 7173877 -> Fix for issue 7173587 Change-Id: I266cafcf175c98e0c8a8401e11faa5dd2e2fa885 Conflicts: src/com/android/settings/SecuritySettings.java --- src/com/android/settings/SecuritySettings.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index d896a68b64e..7ffa805a3df 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -455,8 +455,7 @@ public class SecuritySettings extends SettingsPreferenceFragment Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK); // Found in KeyguardHostView.java final int KEYGUARD_HOST_ID = 0x4B455947; - int appWidgetId = AppWidgetHost.allocateAppWidgetIdForHost( - "com.android.internal.policy.impl.keyguard", KEYGUARD_HOST_ID); + int appWidgetId = AppWidgetHost.allocateAppWidgetIdForSystem(KEYGUARD_HOST_ID); if (appWidgetId != -1) { pickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); pickIntent.putExtra(AppWidgetManager.EXTRA_CUSTOM_SORT, false); @@ -597,7 +596,7 @@ public class SecuritySettings extends SettingsPreferenceFragment Integer.toString(appWidgetId)); } else { - AppWidgetHost.deleteAppWidgetIdForHost(appWidgetId); + AppWidgetHost.deleteAppWidgetIdForSystem(appWidgetId); } } createPreferenceHierarchy(); From 45410f3e85772b7f62a45f4755bfa31d71dce91c Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Wed, 19 Sep 2012 10:58:32 -0700 Subject: [PATCH 5/6] Fix a crash in InstalledAppDetails Initialize mPackageInfo in onCreate Bug: 7194755 Change-Id: Ic82351591bd38c4c161bbb23c4033038d1d7fa85 --- .../applications/InstalledAppDetails.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java index 2284b91a9cf..97d7b75e0bd 100644 --- a/src/com/android/settings/applications/InstalledAppDetails.java +++ b/src/com/android/settings/applications/InstalledAppDetails.java @@ -564,6 +564,16 @@ public class InstalledAppDetails extends Fragment } } mAppEntry = mState.getEntry(packageName); + // Get application info again to refresh changed properties of application + try { + mPackageInfo = mPm.getPackageInfo(mAppEntry.info.packageName, + PackageManager.GET_DISABLED_COMPONENTS | + PackageManager.GET_UNINSTALLED_PACKAGES | + PackageManager.GET_SIGNATURES); + } catch (NameNotFoundException e) { + Log.e(TAG, "Exception when retrieving package:" + mAppEntry.info.packageName, e); + } + return packageName; } @@ -576,18 +586,11 @@ public class InstalledAppDetails extends Fragment if (mAppEntry == null) { return false; // onCreate must have failed, make sure to exit } - - // Get application info again to refresh changed properties of application - try { - mPackageInfo = mPm.getPackageInfo(mAppEntry.info.packageName, - PackageManager.GET_DISABLED_COMPONENTS | - PackageManager.GET_UNINSTALLED_PACKAGES | - PackageManager.GET_SIGNATURES); - } catch (NameNotFoundException e) { - Log.e(TAG, "Exception when retrieving package:" + mAppEntry.info.packageName, e); + + if (mPackageInfo == null) { return false; // onCreate must have failed, make sure to exit } - + // Get list of preferred activities List prefActList = new ArrayList(); From cb0a6ccba971692e591369100533f7df974b47c8 Mon Sep 17 00:00:00 2001 From: Brian Muramatsu Date: Wed, 19 Sep 2012 11:19:54 -0700 Subject: [PATCH 6/6] Fix NPE in DeviceInfoSettings Bug 7192187 Change-Id: I6d404e5228c7f66e37137a27ebd555a88dda2f74 --- src/com/android/settings/DeviceInfoSettings.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java index 258ea6417f9..eb9e918e9a9 100644 --- a/src/com/android/settings/DeviceInfoSettings.java +++ b/src/com/android/settings/DeviceInfoSettings.java @@ -175,7 +175,10 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { private void removePreferenceIfBoolFalse(String preference, int resId) { if (!getResources().getBoolean(resId)) { - getPreferenceScreen().removePreference(findPreference(preference)); + Preference pref = findPreference(preference); + if (pref != null) { + getPreferenceScreen().removePreference(pref); + } } }