diff options
author | Michael Jurka <mikejurka@google.com> | 2012-09-21 01:10:53 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-09-21 01:10:53 -0700 |
commit | 7566abd305a2b3060ae541055ed04f087f5266ec (patch) | |
tree | f6eecf5777a01f96537abab36306398b41d9c042 | |
parent | c9cc62b96561933dd9257a78c6749195fbe8fdd3 (diff) | |
parent | 20c41d5382b70fa5a24e9ef68f19ce0aedea5234 (diff) | |
download | frameworks_base-7566abd305a2b3060ae541055ed04f087f5266ec.zip frameworks_base-7566abd305a2b3060ae541055ed04f087f5266ec.tar.gz frameworks_base-7566abd305a2b3060ae541055ed04f087f5266ec.tar.bz2 |
Merge "Add support for changing status widget on security screen" into jb-mr1-dev
3 files changed, 31 insertions, 3 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index cc9abff..66738a1 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -3219,8 +3219,8 @@ public final class Settings { * Id of the time appwidget on the lockscreen, or -1 if none * @hide */ - public static final String LOCK_SCREEN_CLOCK_APPWIDGET_ID = - "lock_screen_clock_appwidget_id"; + public static final String LOCK_SCREEN_STATUS_APPWIDGET_ID = + "lock_screen_status_appwidget_id"; /** * Id of the user-selected appwidget on the lockscreen, or -1 if none diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java index 8756950..f3bef08 100644 --- a/core/java/com/android/internal/widget/LockPatternUtils.java +++ b/core/java/com/android/internal/widget/LockPatternUtils.java @@ -1044,6 +1044,17 @@ public class LockPatternUtils { return new int[] { appWidgetId }; } + public int getStatusWidget() { + int appWidgetId = -1; + String appWidgetIdString = Settings.Secure.getString( + mContentResolver, Settings.Secure.LOCK_SCREEN_STATUS_APPWIDGET_ID); + if (appWidgetIdString != null) { + appWidgetId = (int) Integer.decode(appWidgetIdString); + } + + return appWidgetId; + } + private long getLong(String secureSettingKey, long defaultValue) { try { return getLockSettings().getLong(secureSettingKey, defaultValue, diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java index 4e47770..e6d6e36 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java @@ -33,7 +33,6 @@ import android.content.res.Resources; import android.graphics.Canvas; import android.graphics.Rect; import android.os.Looper; -import android.os.UserHandle; import android.os.UserManager; import android.util.AttributeSet; import android.util.Log; @@ -42,6 +41,7 @@ import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; +import android.view.ViewGroup; import android.view.WindowManager; import android.view.animation.AnimationUtils; import android.widget.RemoteViews.OnClickHandler; @@ -691,6 +691,23 @@ public class KeyguardHostView extends KeyguardViewBase { } inflateAndAddUserSelectorWidgetIfNecessary(); + // Add status widget + int statusWidgetId = mLockPatternUtils.getStatusWidget(); + if (statusWidgetId != -1) { + addWidget(statusWidgetId); + View newStatusWidget = mAppWidgetContainer.getChildAt( + mAppWidgetContainer.getChildCount() - 1); + + int oldStatusWidgetPosition = getWidgetPosition(R.id.keyguard_status_view); + mAppWidgetContainer.removeViewAt(oldStatusWidgetPosition); + + // Re-add new status widget at position of old one + mAppWidgetContainer.removeView(newStatusWidget); + newStatusWidget.setId(R.id.keyguard_status_view); + mAppWidgetContainer.addView(newStatusWidget, oldStatusWidgetPosition); + } + + // Add user-selected widget final int[] widgets = mLockPatternUtils.getUserDefinedWidgets(); for (int i = 0; i < widgets.length; i++) { if (widgets[i] != -1) { |