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() {