Add ability to add clock widget to keyguard
Change-Id: I70e6fbb664181efc2906ed33d732695279462a95
This commit is contained in:
@@ -76,7 +76,6 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
private static final String KEY_DEVICE_ADMIN_CATEGORY = "device_admin_category";
|
private static final String KEY_DEVICE_ADMIN_CATEGORY = "device_admin_category";
|
||||||
private static final String KEY_LOCK_AFTER_TIMEOUT = "lock_after_timeout";
|
private static final String KEY_LOCK_AFTER_TIMEOUT = "lock_after_timeout";
|
||||||
private static final String KEY_OWNER_INFO_SETTINGS = "owner_info_settings";
|
private static final String KEY_OWNER_INFO_SETTINGS = "owner_info_settings";
|
||||||
private static final String EXTRA_NO_WIDGET = "com.android.settings.NO_WIDGET";
|
|
||||||
private static final String EXTRA_DEFAULT_WIDGET = "com.android.settings.DEFAULT_WIDGET";
|
private static final String EXTRA_DEFAULT_WIDGET = "com.android.settings.DEFAULT_WIDGET";
|
||||||
private static final int SET_OR_CHANGE_LOCK_METHOD_REQUEST = 123;
|
private static final int SET_OR_CHANGE_LOCK_METHOD_REQUEST = 123;
|
||||||
private static final int CONFIRM_EXISTING_FOR_BIOMETRIC_WEAK_IMPROVE_REQUEST = 124;
|
private static final int CONFIRM_EXISTING_FOR_BIOMETRIC_WEAK_IMPROVE_REQUEST = 124;
|
||||||
@@ -493,8 +492,16 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
startFragment(this, "com.android.settings.ChooseLockGeneric$ChooseLockGenericFragment",
|
startFragment(this, "com.android.settings.ChooseLockGeneric$ChooseLockGenericFragment",
|
||||||
SET_OR_CHANGE_LOCK_METHOD_REQUEST, null);
|
SET_OR_CHANGE_LOCK_METHOD_REQUEST, null);
|
||||||
} else if (KEY_CHOOSE_LOCKSCREEN_WIDGET.equals(key)) {
|
} else if (KEY_CHOOSE_LOCKSCREEN_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_NONE,
|
launchPickActivityIntent(AppWidgetProviderInfo.WIDGET_FEATURES_NONE,
|
||||||
R.string.widget_none, 0, new ComponentName("", ""), EXTRA_NO_WIDGET,
|
R.string.widget_default, defaultIconId, clock, EXTRA_DEFAULT_WIDGET,
|
||||||
REQUEST_PICK_APPWIDGET);
|
REQUEST_PICK_APPWIDGET);
|
||||||
} else if (KEY_BIOMETRIC_WEAK_IMPROVE_MATCHING.equals(key)) {
|
} else if (KEY_BIOMETRIC_WEAK_IMPROVE_MATCHING.equals(key)) {
|
||||||
ChooseLockSettingsHelper helper =
|
ChooseLockSettingsHelper helper =
|
||||||
@@ -582,15 +589,14 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
if ((requestCode == REQUEST_PICK_APPWIDGET) &&
|
if ((requestCode == REQUEST_PICK_APPWIDGET) &&
|
||||||
resultCode == Activity.RESULT_OK) {
|
resultCode == Activity.RESULT_OK) {
|
||||||
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(getActivity());
|
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(getActivity());
|
||||||
boolean defaultOrNoWidget = data.getBooleanExtra(EXTRA_NO_WIDGET, false) ||
|
boolean defaultWidget = data.getBooleanExtra(EXTRA_DEFAULT_WIDGET, false);
|
||||||
data.getBooleanExtra(EXTRA_DEFAULT_WIDGET, false);
|
|
||||||
|
|
||||||
AppWidgetProviderInfo appWidget = null;
|
AppWidgetProviderInfo appWidget = null;
|
||||||
if (!defaultOrNoWidget) {
|
if (!defaultWidget) {
|
||||||
appWidget = appWidgetManager.getAppWidgetInfo(appWidgetId);
|
appWidget = appWidgetManager.getAppWidgetInfo(appWidgetId);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!defaultOrNoWidget && appWidget.configure != null) {
|
if (!defaultWidget && appWidget.configure != null) {
|
||||||
// Launch over to configure widget, if needed
|
// Launch over to configure widget, if needed
|
||||||
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_CONFIGURE);
|
Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_CONFIGURE);
|
||||||
intent.setComponent(appWidget.configure);
|
intent.setComponent(appWidget.configure);
|
||||||
@@ -599,10 +605,11 @@ public class SecuritySettings extends SettingsPreferenceFragment
|
|||||||
startActivityForResultSafely(intent, REQUEST_CREATE_APPWIDGET);
|
startActivityForResultSafely(intent, REQUEST_CREATE_APPWIDGET);
|
||||||
} else {
|
} else {
|
||||||
// Otherwise just add it
|
// Otherwise just add it
|
||||||
if (defaultOrNoWidget) {
|
if (defaultWidget) {
|
||||||
// If we selected "none", delete the allocated id
|
// If we selected "none", delete the allocated id
|
||||||
AppWidgetHost.deleteAppWidgetIdForSystem(appWidgetId);
|
AppWidgetHost.deleteAppWidgetIdForSystem(appWidgetId);
|
||||||
data.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, -1);
|
data.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
|
||||||
|
LockPatternUtils.ID_DEFAULT_STATUS_WIDGET);
|
||||||
}
|
}
|
||||||
onActivityResult(REQUEST_CREATE_APPWIDGET, Activity.RESULT_OK, data);
|
onActivityResult(REQUEST_CREATE_APPWIDGET, Activity.RESULT_OK, data);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user