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 ,
@@ -57,6 +60,8 @@ public class KeyguardWidgetPager extends PagedView implements PagedView.PageSwit
5760 private int mPage = 0 ;
5861 private Callbacks mCallbacks ;
5962
63+ private boolean mCameraWidgetEnabled ;
64+
6065 public KeyguardWidgetPager (Context context , AttributeSet attrs ) {
6166 this (context , attrs , 0 );
6267 }
@@ -72,6 +77,9 @@ public KeyguardWidgetPager(Context context, AttributeSet attrs, int defStyle) {
7277 }
7378
7479 setPageSwitchListener (this );
80+
81+ Resources r = getResources ();
82+ mCameraWidgetEnabled = r .getBoolean (R .bool .kg_enable_camera_default_widget );
7583 }
7684
7785 public void setViewStateManager (KeyguardViewStateManager viewStateManager ) {
@@ -377,6 +385,36 @@ protected void screenScrolled(int screenCenter) {
377385 }
378386 }
379387 }
388+ @ Override
389+ void boundByReorderablePages (boolean isReordering , int [] range ) {
390+ if (isReordering ) {
391+ if (isAddWidgetPageVisible ()) {
392+ range [0 ]++;
393+ }
394+ if (isMusicWidgetVisible ()) {
395+ range [1 ]--;
396+ }
397+ if (isCameraWidgetVisible ()) {
398+ range [1 ]--;
399+ }
400+ }
401+ }
402+
403+ /*
404+ * Special widgets
405+ */
406+ boolean isAddWidgetPageVisible () {
407+ // TODO: Make proper test once we decide whether the add-page is always showing
408+ return true ;
409+ }
410+ boolean isMusicWidgetVisible () {
411+ // TODO: Make proper test once we have music in the list
412+ return false ;
413+ }
414+ boolean isCameraWidgetVisible () {
415+ return mCameraWidgetEnabled ;
416+ }
417+
380418 @ Override
381419 protected void onStartReordering () {
382420 super .onStartReordering ();
0 commit comments