From 40f8211e6849c4c7948d7fc19127f29f0cebbeb9 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Thu, 8 Nov 2012 11:54:55 -0800 Subject: [PATCH] Preventing more than five widgets from being added in the carousel (issue 7502935) Change-Id: I26e6e154992e56b128d541578ffd3891776a3f7a --- .../internal/policy/impl/keyguard/KeyguardHostView.java | 7 +++++++ .../internal/policy/impl/keyguard/KeyguardWidgetPager.java | 4 ++++ 2 files changed, 11 insertions(+) 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 964537c6941a6..de19bd57dcf6f 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java @@ -323,6 +323,13 @@ public class KeyguardHostView extends KeyguardViewBase { KeyguardHostView.this.onUserActivityTimeoutChanged(); } + @Override + public void onAddView(View v) { + if (numWidgets() >= MAX_WIDGETS) { + setAddWidgetEnabled(false); + } + }; + @Override public void onRemoveView(View v) { if (numWidgets() < MAX_WIDGETS) { diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetPager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetPager.java index 24eebffd1af42..25e278182f441 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetPager.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetPager.java @@ -236,6 +236,7 @@ public class KeyguardWidgetPager extends PagedView implements PagedView.PageSwit public interface Callbacks { public void userActivity(); public void onUserActivityTimeoutChanged(); + public void onAddView(View v); public void onRemoveView(View v); } @@ -262,6 +263,9 @@ public class KeyguardWidgetPager extends PagedView implements PagedView.PageSwit final int[] pagesRange = new int[mTempVisiblePagesRange.length]; getVisiblePages(pagesRange); boundByReorderablePages(true, pagesRange); + if (mCallbacks != null) { + mCallbacks.onAddView(v); + } // Subtract from the index to take into account pages before the reorderable // pages (e.g. the "add widget" page) mBackgroundWorkerHandler.post(new Runnable() {