From 89a30ffc6343ce9288e9fc253108bfc749d5387f Mon Sep 17 00:00:00 2001 From: Michael Jurka Date: Wed, 24 Oct 2012 12:26:41 -0700 Subject: Adding ability to add multiple keyguard widgets Bug: 7381803 Change-Id: I099f47a5cc43199635fed9ad2c4d03d79004e4f4 --- res/values/strings.xml | 5 +- res/xml/security_settings_biometric_weak.xml | 6 -- res/xml/security_settings_chooser.xml | 6 -- res/xml/security_settings_password.xml | 6 -- res/xml/security_settings_pattern.xml | 6 -- res/xml/security_settings_pin.xml | 6 -- src/com/android/settings/SecuritySettings.java | 129 ++++--------------------- 7 files changed, 22 insertions(+), 142 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 25b9413..1c7a874 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -808,11 +808,8 @@ Screen lock - - Status widget - - Other widget + Add widget None diff --git a/res/xml/security_settings_biometric_weak.xml b/res/xml/security_settings_biometric_weak.xml index 566f8c2..489a200 100644 --- a/res/xml/security_settings_biometric_weak.xml +++ b/res/xml/security_settings_biometric_weak.xml @@ -52,12 +52,6 @@ android:title="@string/lockpattern_settings_enable_power_button_instantly_locks"/> - - - - - - - - - - 0; @@ -555,22 +492,10 @@ public class SecuritySettings extends SettingsPreferenceFragment if (KEY_UNLOCK_SET_OR_CHANGE.equals(key)) { startFragment(this, "com.android.settings.ChooseLockGeneric$ChooseLockGenericFragment", SET_OR_CHANGE_LOCK_METHOD_REQUEST, null); - } else if (KEY_CHOOSE_USER_SELECTED_LOCKSCREEN_WIDGET.equals(key)) { + } else if (KEY_CHOOSE_LOCKSCREEN_WIDGET.equals(key)) { launchPickActivityIntent(AppWidgetProviderInfo.WIDGET_FEATURES_NONE, R.string.widget_none, 0, new ComponentName("", ""), EXTRA_NO_WIDGET, - REQUEST_PICK_USER_SELECTED_APPWIDGET); - } else if (KEY_CHOOSE_LOCKSCREEN_STATUS_WIDGET.equals(key)) { - int defaultIconId; - ComponentName clock = new ComponentName( - "com.google.android.deskclock", "com.android.deskclock.DeskClock"); - try { - defaultIconId = getActivity().getPackageManager().getActivityInfo(clock, 0).icon; - } catch (PackageManager.NameNotFoundException e) { - defaultIconId = 0; - } - launchPickActivityIntent(AppWidgetProviderInfo.WIDGET_FEATURES_STATUS, - R.string.widget_default, defaultIconId, clock, EXTRA_DEFAULT_WIDGET, - REQUEST_PICK_STATUS_APPWIDGET); + REQUEST_PICK_APPWIDGET); } else if (KEY_BIOMETRIC_WEAK_IMPROVE_MATCHING.equals(key)) { ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(this.getActivity(), this); @@ -651,14 +576,10 @@ public class SecuritySettings extends SettingsPreferenceFragment // is called by grabbing the value from lockPatternUtils. We can't set it here // because mBiometricWeakLiveliness could be null return; - } else if (requestCode == REQUEST_PICK_USER_SELECTED_APPWIDGET || - requestCode == REQUEST_PICK_STATUS_APPWIDGET || - requestCode == REQUEST_CREATE_USER_SELECTED_APPWIDGET || - requestCode == REQUEST_CREATE_STATUS_APPWIDGET) { + } else if (requestCode == REQUEST_PICK_APPWIDGET || requestCode == REQUEST_CREATE_APPWIDGET) { int appWidgetId = (data == null) ? -1 : data.getIntExtra( AppWidgetManager.EXTRA_APPWIDGET_ID, -1); - if ((requestCode == REQUEST_PICK_USER_SELECTED_APPWIDGET || - requestCode == REQUEST_PICK_STATUS_APPWIDGET) && + if ((requestCode == REQUEST_PICK_APPWIDGET) && resultCode == Activity.RESULT_OK) { AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(getActivity()); boolean defaultOrNoWidget = data.getBooleanExtra(EXTRA_NO_WIDGET, false) || @@ -669,16 +590,13 @@ public class SecuritySettings extends SettingsPreferenceFragment appWidget = appWidgetManager.getAppWidgetInfo(appWidgetId); } - int newRequestCode = requestCode == REQUEST_PICK_USER_SELECTED_APPWIDGET ? - REQUEST_CREATE_USER_SELECTED_APPWIDGET : - REQUEST_CREATE_STATUS_APPWIDGET; if (!defaultOrNoWidget && appWidget.configure != null) { // Launch over to configure widget, if needed Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_CONFIGURE); intent.setComponent(appWidget.configure); intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); - startActivityForResultSafely(intent, newRequestCode); + startActivityForResultSafely(intent, REQUEST_CREATE_APPWIDGET); } else { // Otherwise just add it if (defaultOrNoWidget) { @@ -686,22 +604,17 @@ public class SecuritySettings extends SettingsPreferenceFragment AppWidgetHost.deleteAppWidgetIdForSystem(appWidgetId); data.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, -1); } - onActivityResult(newRequestCode, Activity.RESULT_OK, data); + onActivityResult(REQUEST_CREATE_APPWIDGET, Activity.RESULT_OK, data); } - } else if ((requestCode == REQUEST_CREATE_USER_SELECTED_APPWIDGET || - requestCode == REQUEST_CREATE_STATUS_APPWIDGET) && - resultCode == Activity.RESULT_OK) { - // If a widget existed before, delete it - int oldAppWidgetId = requestCode == REQUEST_CREATE_USER_SELECTED_APPWIDGET ? - getUserSelectedAppWidgetId() : getStatusAppWidgetId(); - if (oldAppWidgetId != -1) { - AppWidgetHost.deleteAppWidgetIdForSystem(oldAppWidgetId); + } else if (requestCode == REQUEST_CREATE_APPWIDGET && resultCode == Activity.RESULT_OK) { + mLockPatternUtils.addAppWidget(appWidgetId, 0); + + IBinder b = ServiceManager.getService(Context.WINDOW_SERVICE); + IWindowManager iWm = IWindowManager.Stub.asInterface(b); + try { + iWm.lockNow(null); + } catch (RemoteException e) { } - Settings.Secure.putString(getContentResolver(), - (requestCode == REQUEST_CREATE_USER_SELECTED_APPWIDGET ? - Settings.Secure.LOCK_SCREEN_USER_SELECTED_APPWIDGET_ID : - Settings.Secure.LOCK_SCREEN_STATUS_APPWIDGET_ID), - Integer.toString(appWidgetId)); } else { AppWidgetHost.deleteAppWidgetIdForSystem(appWidgetId); } -- cgit v1.1