2020import android .animation .TimeInterpolator ;
2121import android .appwidget .AppWidgetHostView ;
2222import android .content .Context ;
23+ import android .content .res .Resources ;
2324import android .util .AttributeSet ;
2425import android .view .Gravity ;
2526import android .view .MotionEvent ;
3031import android .view .animation .DecelerateInterpolator ;
3132import android .widget .FrameLayout ;
3233
34+ import com .android .internal .R ;
35+
3336import com .android .internal .widget .LockPatternUtils ;
3437
3538public class KeyguardWidgetPager extends PagedView implements PagedView .PageSwitchListener ,
@@ -61,6 +64,8 @@ public class KeyguardWidgetPager extends PagedView implements PagedView.PageSwit
6164 private int mPage = 0 ;
6265 private Callbacks mCallbacks ;
6366
67+ private boolean mCameraWidgetEnabled ;
68+
6469 public KeyguardWidgetPager (Context context , AttributeSet attrs ) {
6570 this (context , attrs , 0 );
6671 }
@@ -76,6 +81,9 @@ public KeyguardWidgetPager(Context context, AttributeSet attrs, int defStyle) {
7681 }
7782
7883 setPageSwitchListener (this );
84+
85+ Resources r = getResources ();
86+ mCameraWidgetEnabled = r .getBoolean (R .bool .kg_enable_camera_default_widget );
7987 }
8088
8189 public void setViewStateManager (KeyguardViewStateManager viewStateManager ) {
@@ -419,6 +427,36 @@ protected void screenScrolled(int screenCenter) {
419427 }
420428 }
421429
430+ @ Override
431+ void boundByReorderablePages (boolean isReordering , int [] range ) {
432+ if (isReordering ) {
433+ if (isAddWidgetPageVisible ()) {
434+ range [0 ]++;
435+ }
436+ if (isMusicWidgetVisible ()) {
437+ range [1 ]--;
438+ }
439+ if (isCameraWidgetVisible ()) {
440+ range [1 ]--;
441+ }
442+ }
443+ }
444+
445+ /*
446+ * Special widgets
447+ */
448+ boolean isAddWidgetPageVisible () {
449+ // TODO: Make proper test once we decide whether the add-page is always showing
450+ return true ;
451+ }
452+ boolean isMusicWidgetVisible () {
453+ // TODO: Make proper test once we have music in the list
454+ return false ;
455+ }
456+ boolean isCameraWidgetVisible () {
457+ return mCameraWidgetEnabled ;
458+ }
459+
422460 @ Override
423461 protected void onStartReordering () {
424462 super .onStartReordering ();
0 commit comments