diff options
author | John Spurlock <jspurlock@google.com> | 2014-02-27 13:09:35 -0500 |
---|---|---|
committer | John Spurlock <jspurlock@google.com> | 2014-02-27 13:09:35 -0500 |
commit | 110e5b10d73bc59a641f00339852b5717de73389 (patch) | |
tree | 566d36e6dd112a989a9e7b828d31b5cd4522e20e /packages | |
parent | dfae159bb8a25a84dc24591d791ce1d743ba4252 (diff) | |
download | frameworks_base-110e5b10d73bc59a641f00339852b5717de73389.zip frameworks_base-110e5b10d73bc59a641f00339852b5717de73389.tar.gz frameworks_base-110e5b10d73bc59a641f00339852b5717de73389.tar.bz2 |
Disable zen mode UI until provisioned.
Change-Id: Ib7fb9a793176ec38c4958dba7ee546ee1f47fba1
Diffstat (limited to 'packages')
4 files changed, 54 insertions, 11 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java index 5f62554..c3ed1f7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java @@ -1023,6 +1023,7 @@ public abstract class BaseStatusBar extends SystemUI implements } protected void setZenMode(int mode) { + if (!isDeviceProvisioned()) return; final boolean change = mZenMode != mode; mZenMode = mode; final int N = mNotificationData.size(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 51c7b96..51d0669 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -346,6 +346,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode { public void setZenMode(int mode) { super.setZenMode(mode); if (mModeIcon == null) return; + if (!isDeviceProvisioned()) return; final boolean limited = mode == Settings.Global.ZEN_MODE_LIMITED; final boolean full = mode == Settings.Global.ZEN_MODE_FULL; mModeIcon.setVisibility(full || limited ? View.VISIBLE : View.GONE); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ZenModeView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ZenModeView.java index a89dacf..f5dc4d9 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ZenModeView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ZenModeView.java @@ -175,6 +175,10 @@ public class ZenModeView extends RelativeLayout { addView(mHintText, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); } + private boolean isApplicable() { + return mAdapter != null && mAdapter.isApplicable(); + } + private void close() { mClosing = true; final int startBottom = mBottom; @@ -217,6 +221,11 @@ public class ZenModeView extends RelativeLayout { } private void updateState(boolean animate) { + final boolean applicable = isApplicable(); + setVisibility(applicable ? VISIBLE : GONE); + if (!applicable) { + return; + } if (mAdapter != null && mAdapter.getMode() == Adapter.MODE_OFF && !mPeekable) { close(); } else { @@ -303,7 +312,8 @@ public class ZenModeView extends RelativeLayout { public boolean onInterceptTouchEvent(MotionEvent ev) { final boolean rt = super.onInterceptTouchEvent(ev); if (DEBUG) logTouchEvent("onInterceptTouchEvent", rt, ev); - if (ev.getAction() == MotionEvent.ACTION_DOWN + if (isApplicable() + && ev.getAction() == MotionEvent.ACTION_DOWN && ev.getY() > mCloseButton.getBottom() && mPeekable) { return true; @@ -326,7 +336,7 @@ public class ZenModeView extends RelativeLayout { public boolean onTouchEvent(MotionEvent event) { boolean rt = super.onTouchEvent(event); if (DEBUG) logTouchEvent("onTouchEvent", rt, event); - if (!mPeekable) { + if (!isApplicable() || !mPeekable) { return rt; } if (event.getAction() == MotionEvent.ACTION_DOWN) { @@ -398,7 +408,9 @@ public class ZenModeView extends RelativeLayout { } public void dispatchExternalTouchEvent(MotionEvent ev) { - onTouchEvent(ev); + if (isApplicable()) { + onTouchEvent(ev); + } } private static void bounce(final View v, final Runnable midBounce) { @@ -584,6 +596,7 @@ public class ZenModeView extends RelativeLayout { public static final int MODE_LIMITED = 1; public static final int MODE_FULL = 2; + boolean isApplicable(); int getMode(); void setMode(int mode); void select(ExitCondition ec); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ZenModeViewAdapter.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ZenModeViewAdapter.java index 2078b3c..c9ac89f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ZenModeViewAdapter.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ZenModeViewAdapter.java @@ -33,27 +33,30 @@ public class ZenModeViewAdapter implements ZenModeView.Adapter { private final Context mContext; private final ContentResolver mResolver; private final Handler mHandler = new Handler(); + private final SettingsObserver mObserver; private final List<ExitCondition> mExits = Arrays.asList( newExit("Until you delete this", "Until", "You delete this")); private Callbacks mCallbacks; private int mExitIndex; + private boolean mDeviceProvisioned; + private int mMode; public ZenModeViewAdapter(Context context) { mContext = context; mResolver = mContext.getContentResolver(); - mResolver.registerContentObserver( - Settings.Global.getUriFor(Settings.Global.ZEN_MODE), - false, new SettingsObserver(mHandler)); + mObserver = new SettingsObserver(mHandler); + mObserver.init(); + } + + @Override + public boolean isApplicable() { + return mDeviceProvisioned; } @Override public int getMode() { - final int v = Settings.Global.getInt(mContext.getContentResolver(), - Settings.Global.ZEN_MODE, Settings.Global.ZEN_MODE_OFF); - if (v == Settings.Global.ZEN_MODE_LIMITED) return MODE_LIMITED; - if (v == Settings.Global.ZEN_MODE_FULL) return MODE_FULL; - return MODE_OFF; + return mMode; } @Override @@ -137,9 +140,34 @@ public class ZenModeViewAdapter implements ZenModeView.Adapter { super(handler); } + public void init() { + loadSettings(); + mResolver.registerContentObserver( + Settings.Global.getUriFor(Settings.Global.ZEN_MODE), + false, this); + mResolver.registerContentObserver( + Settings.Global.getUriFor(Settings.Global.DEVICE_PROVISIONED), + false, this); + } + @Override public void onChange(boolean selfChange) { + loadSettings(); mChange.run(); // already on handler } + + private void loadSettings() { + mDeviceProvisioned = Settings.Global.getInt(mResolver, + Settings.Global.DEVICE_PROVISIONED, 0) != 0; + mMode = getMode(); + } + + private int getMode() { + final int v = Settings.Global.getInt(mResolver, + Settings.Global.ZEN_MODE, Settings.Global.ZEN_MODE_OFF); + if (v == Settings.Global.ZEN_MODE_LIMITED) return MODE_LIMITED; + if (v == Settings.Global.ZEN_MODE_FULL) return MODE_FULL; + return MODE_OFF; + } } } |