summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com/android/systemui/tuner
diff options
context:
space:
mode:
authorJason Monk <jmonk@google.com>2015-06-07 09:58:30 -0400
committerJason Monk <jmonk@google.com>2015-06-08 10:08:06 -0400
commit16ada3df306f3efcfc748fcd23e78cbe6375efa6 (patch)
treef98ba25594d15e315e17329928e8c243a21c93f3 /packages/SystemUI/src/com/android/systemui/tuner
parent6236a820a25d81f996c2de1477c1357d1fe2540b (diff)
downloadframeworks_base-16ada3df306f3efcfc748fcd23e78cbe6375efa6.zip
frameworks_base-16ada3df306f3efcfc748fcd23e78cbe6375efa6.tar.gz
frameworks_base-16ada3df306f3efcfc748fcd23e78cbe6375efa6.tar.bz2
Add demo mode to tuner
Allows turning on/off and setting to specific mode for screen shots. Change-Id: Iee95aff17189dea7a77c493e9b396b9f21052ee8
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/tuner')
-rw-r--r--packages/SystemUI/src/com/android/systemui/tuner/DemoModeFragment.java175
-rw-r--r--packages/SystemUI/src/com/android/systemui/tuner/TunerFragment.java13
2 files changed, 187 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/tuner/DemoModeFragment.java b/packages/SystemUI/src/com/android/systemui/tuner/DemoModeFragment.java
new file mode 100644
index 0000000..d9f0598
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/tuner/DemoModeFragment.java
@@ -0,0 +1,175 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.systemui.tuner;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.database.ContentObserver;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.preference.Preference;
+import android.preference.Preference.OnPreferenceChangeListener;
+import android.preference.PreferenceFragment;
+import android.preference.PreferenceScreen;
+import android.preference.SwitchPreference;
+import android.provider.Settings;
+
+import com.android.systemui.DemoMode;
+import com.android.systemui.R;
+
+public class DemoModeFragment extends PreferenceFragment implements OnPreferenceChangeListener {
+
+ private static final String DEMO_MODE_ALLOWED = "sysui_demo_allowed";
+ private static final String DEMO_MODE_ON = "sysui_tuner_demo_on";
+
+ private static final String[] STATUS_ICONS = {
+ "volume",
+ "bluetooth",
+ "location",
+ "alarm",
+ "zen",
+ "sync",
+ "tty",
+ "eri",
+ "mute",
+ "speakerphone",
+ "managed_profile",
+ };
+
+ private SwitchPreference mEnabledSwitch;
+ private SwitchPreference mOnSwitch;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ Context context = getContext();
+ mEnabledSwitch = new SwitchPreference(context);
+ mEnabledSwitch.setTitle(R.string.enable_demo_mode);
+ mEnabledSwitch.setOnPreferenceChangeListener(this);
+ mOnSwitch = new SwitchPreference(context);
+ mOnSwitch.setTitle(R.string.show_demo_mode);
+ mOnSwitch.setEnabled(false);
+ mOnSwitch.setOnPreferenceChangeListener(this);
+
+ PreferenceScreen screen = getPreferenceManager().createPreferenceScreen(context);
+ screen.addPreference(mEnabledSwitch);
+ screen.addPreference(mOnSwitch);
+ setPreferenceScreen(screen);
+
+ updateDemoModeEnabled();
+ updateDemoModeOn();
+ ContentResolver contentResolver = getContext().getContentResolver();
+ contentResolver.registerContentObserver(Settings.Global.getUriFor(DEMO_MODE_ALLOWED), false,
+ mDemoModeObserver);
+ contentResolver.registerContentObserver(Settings.Global.getUriFor(DEMO_MODE_ON), false,
+ mDemoModeObserver);
+ }
+
+ @Override
+ public void onDestroy() {
+ getContext().getContentResolver().unregisterContentObserver(mDemoModeObserver);
+ super.onDestroy();
+ }
+
+ private void updateDemoModeEnabled() {
+ boolean enabled = Settings.Global.getInt(getContext().getContentResolver(),
+ DEMO_MODE_ALLOWED, 0) != 0;
+ mEnabledSwitch.setChecked(enabled);
+ mOnSwitch.setEnabled(enabled);
+ }
+
+ private void updateDemoModeOn() {
+ boolean enabled = Settings.Global.getInt(getContext().getContentResolver(),
+ DEMO_MODE_ON, 0) != 0;
+ mOnSwitch.setChecked(enabled);
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ if (preference == mEnabledSwitch) {
+ setGlobal(DEMO_MODE_ALLOWED, newValue == Boolean.TRUE ? 1 : 0);
+ } else if (preference == mOnSwitch) {
+ if (newValue == Boolean.TRUE) {
+ startDemoMode();
+ } else {
+ stopDemoMode();
+ }
+ } else {
+ return false;
+ }
+ return true;
+ }
+
+ private void startDemoMode() {
+ Intent intent = new Intent(DemoMode.ACTION_DEMO);
+
+ intent.putExtra(DemoMode.EXTRA_COMMAND, DemoMode.COMMAND_ENTER);
+ getContext().sendBroadcast(intent);
+
+ intent.putExtra(DemoMode.EXTRA_COMMAND, DemoMode.COMMAND_CLOCK);
+ intent.putExtra("hhmm", "0520");
+ getContext().sendBroadcast(intent);
+
+ intent.putExtra(DemoMode.EXTRA_COMMAND, DemoMode.COMMAND_NETWORK);
+ intent.putExtra("wifi", "show");
+ intent.putExtra("mobile", "show");
+ intent.putExtra("sims", "1");
+ intent.putExtra("nosim", "false");
+ intent.putExtra("fully", "true");
+ intent.putExtra("level", "4");
+ intent.putExtra("datatypel", "");
+ getContext().sendBroadcast(intent);
+
+ intent.putExtra(DemoMode.EXTRA_COMMAND, DemoMode.COMMAND_BATTERY);
+ intent.putExtra("level", "100");
+ intent.putExtra("plugged", "false");
+ getContext().sendBroadcast(intent);
+
+ intent.putExtra(DemoMode.EXTRA_COMMAND, DemoMode.COMMAND_STATUS);
+ for (String icon : STATUS_ICONS) {
+ intent.putExtra(icon, "hide");
+ }
+ getContext().sendBroadcast(intent);
+
+ intent.putExtra(DemoMode.EXTRA_COMMAND, DemoMode.COMMAND_NOTIFICATIONS);
+ intent.putExtra("visible", "false");
+ getContext().sendBroadcast(intent);
+
+ setGlobal(DEMO_MODE_ON, 1);
+ }
+
+ private void stopDemoMode() {
+ Intent intent = new Intent(DemoMode.ACTION_DEMO);
+ intent.putExtra(DemoMode.EXTRA_COMMAND, DemoMode.COMMAND_EXIT);
+ getContext().sendBroadcast(intent);
+ setGlobal(DEMO_MODE_ON, 0);
+ }
+
+ private void setGlobal(String key, int value) {
+ Settings.Global.putInt(getContext().getContentResolver(), key, value);
+ }
+
+ private final ContentObserver mDemoModeObserver =
+ new ContentObserver(new Handler(Looper.getMainLooper())) {
+ public void onChange(boolean selfChange) {
+ updateDemoModeEnabled();
+ updateDemoModeOn();
+ };
+ };
+}
diff --git a/packages/SystemUI/src/com/android/systemui/tuner/TunerFragment.java b/packages/SystemUI/src/com/android/systemui/tuner/TunerFragment.java
index 7ac7306..4a8c2e4 100644
--- a/packages/SystemUI/src/com/android/systemui/tuner/TunerFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/tuner/TunerFragment.java
@@ -38,6 +38,7 @@ import com.android.systemui.tuner.TunerService.Tunable;
public class TunerFragment extends PreferenceFragment {
private static final String KEY_QS_TUNER = "qs_tuner";
+ private static final String KEY_DEMO_MODE = "demo_mode";
private static final String KEY_BATTERY_PCT = "battery_pct";
private final SettingObserver mSettingObserver = new SettingObserver();
@@ -58,7 +59,17 @@ public class TunerFragment extends PreferenceFragment {
ft.replace(android.R.id.content, new QsTuner(), "QsTuner");
ft.addToBackStack(null);
ft.commit();
- return false;
+ return true;
+ }
+ });
+ findPreference(KEY_DEMO_MODE).setOnPreferenceClickListener(new OnPreferenceClickListener() {
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ FragmentTransaction ft = getFragmentManager().beginTransaction();
+ ft.replace(android.R.id.content, new DemoModeFragment(), "DemoMode");
+ ft.addToBackStack(null);
+ ft.commit();
+ return true;
}
});
mBatteryPct = (SwitchPreference) findPreference(KEY_BATTERY_PCT);