Loading packages/SystemUI/src/com/android/systemui/qs/QSFooterViewController.java +2 −3 Original line number Diff line number Diff line Loading @@ -95,7 +95,6 @@ public class QSFooterViewController extends ViewController<QSFooterView> impleme mActivityStarter.postQSRunnableDismissingKeyguard(() -> { if (isTunerEnabled()) { mTunerService.showResetRequest( mUserTracker.getUserHandle(), () -> { // Relaunch settings so that the tuner disappears. startSettingsActivity(); Loading @@ -103,7 +102,7 @@ public class QSFooterViewController extends ViewController<QSFooterView> impleme } else { Toast.makeText(getContext(), R.string.tuner_toast, Toast.LENGTH_LONG).show(); mTunerService.setTunerEnabled(mUserTracker.getUserHandle(), true); mTunerService.setTunerEnabled(true); } startSettingsActivity(); Loading Loading @@ -238,6 +237,6 @@ public class QSFooterViewController extends ViewController<QSFooterView> impleme } private boolean isTunerEnabled() { return mTunerService.isTunerEnabled(mUserTracker.getUserHandle()); return mTunerService.isTunerEnabled(); } } packages/SystemUI/src/com/android/systemui/tuner/TunerActivity.java +4 −2 Original line number Diff line number Diff line Loading @@ -43,11 +43,13 @@ public class TunerActivity extends Activity implements private static final String TAG_TUNER = "tuner"; private final DemoModeController mDemoModeController; private final TunerService mTunerService; @Inject TunerActivity(DemoModeController demoModeController) { TunerActivity(DemoModeController demoModeController, TunerService tunerService) { super(); mDemoModeController = demoModeController; mTunerService = tunerService; } protected void onCreate(Bundle savedInstanceState) { Loading @@ -67,7 +69,7 @@ public class TunerActivity extends Activity implements "com.android.settings.action.DEMO_MODE"); final PreferenceFragment fragment = showDemoMode ? new DemoModeFragment(mDemoModeController) : new TunerFragment(); : new TunerFragment(mTunerService); getFragmentManager().beginTransaction().replace(R.id.content_frame, fragment, TAG_TUNER).commit(); } Loading packages/SystemUI/src/com/android/systemui/tuner/TunerFragment.java +13 −9 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ */ package com.android.systemui.tuner; import android.app.ActivityManager; import android.annotation.SuppressLint; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; Loading @@ -23,7 +23,6 @@ import android.content.DialogInterface; import android.hardware.display.AmbientDisplayConfiguration; import android.os.Build; import android.os.Bundle; import android.os.UserHandle; import android.provider.Settings; import android.view.Menu; import android.view.MenuInflater; Loading Loading @@ -56,6 +55,15 @@ public class TunerFragment extends PreferenceFragment { private static final int MENU_REMOVE = Menu.FIRST + 1; private final TunerService mTunerService; // We are the only ones who ever call this constructor, so don't worry about the warning @SuppressLint("ValidFragment") public TunerFragment(TunerService tunerService) { super(); mTunerService = tunerService; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Loading Loading @@ -124,14 +132,10 @@ public class TunerFragment extends PreferenceFragment { getActivity().finish(); return true; case MENU_REMOVE: UserHandle user = new UserHandle(ActivityManager.getCurrentUser()); TunerService.showResetRequest(getContext(), user, new Runnable() { @Override public void run() { mTunerService.showResetRequest(() -> { if (getActivity() != null) { getActivity().finish(); } } }); return true; } Loading packages/SystemUI/src/com/android/systemui/tuner/TunerService.java +11 −70 Original line number Diff line number Diff line Loading @@ -15,19 +15,10 @@ package com.android.systemui.tuner; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.os.UserHandle; import android.provider.Settings; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.statusbar.phone.SystemUIDialog; public abstract class TunerService { Loading @@ -47,6 +38,16 @@ public abstract class TunerService { public abstract void addTunable(Tunable tunable, String... keys); public abstract void removeTunable(Tunable tunable); /** * Sets the state of the {@link TunerActivity} component for the current user */ public abstract void setTunerEnabled(boolean enabled); /** * Returns true if the tuner is enabled for the current user. */ public abstract boolean isTunerEnabled(); public interface Tunable { void onTuningChanged(String key, String newValue); } Loading @@ -55,38 +56,6 @@ public abstract class TunerService { mContext = context; } private static Context userContext(Context context, UserHandle user) { try { return context.createPackageContextAsUser(context.getPackageName(), 0, user); } catch (NameNotFoundException e) { return context; } } /** Enables or disables the tuner for the supplied user. */ public void setTunerEnabled(UserHandle user, boolean enabled) { setTunerEnabled(mContext, user, enabled); } public static final void setTunerEnabled(Context context, UserHandle user, boolean enabled) { userContext(context, user).getPackageManager().setComponentEnabledSetting( new ComponentName(context, TunerActivity.class), enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); } /** Returns true if the tuner is enabled for the supplied user. */ public boolean isTunerEnabled(UserHandle user) { return isTunerEnabled(mContext, user); } public static final boolean isTunerEnabled(Context context, UserHandle user) { return userContext(context, user).getPackageManager().getComponentEnabledSetting( new ComponentName(context, TunerActivity.class)) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED; } public static class ClearReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Loading @@ -97,35 +66,7 @@ public abstract class TunerService { } /** */ public void showResetRequest(UserHandle user, final Runnable onDisabled) { showResetRequest(mContext, user, onDisabled); } public static final void showResetRequest(final Context context, UserHandle user, final Runnable onDisabled) { SystemUIDialog dialog = new SystemUIDialog(context); dialog.setShowForAllUsers(true); dialog.setMessage(R.string.remove_from_settings_prompt); dialog.setButton(DialogInterface.BUTTON_NEGATIVE, context.getString(R.string.cancel), (OnClickListener) null); dialog.setButton(DialogInterface.BUTTON_POSITIVE, context.getString(R.string.guest_exit_guest_dialog_remove), new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // Tell the tuner (in main SysUI process) to clear all its settings. context.sendBroadcast(new Intent(TunerService.ACTION_CLEAR)); // Disable access to tuner. TunerService.setTunerEnabled(context, user, false); // Make them sit through the warning dialog again. Settings.Secure.putInt(context.getContentResolver(), TunerFragment.SETTING_SEEN_TUNER_WARNING, 0); if (onDisabled != null) { onDisabled.run(); } } }); dialog.show(); } public abstract void showResetRequest(Runnable onDisabled); public static boolean parseIntegerSwitch(String value, boolean defaultValue) { try { Loading packages/SystemUI/src/com/android/systemui/tuner/TunerServiceImpl.java +49 −3 Original line number Diff line number Diff line Loading @@ -15,8 +15,12 @@ */ package com.android.systemui.tuner; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.database.ContentObserver; import android.net.Uri; Loading @@ -32,13 +36,14 @@ import android.util.ArraySet; import com.android.internal.util.ArrayUtils; import com.android.systemui.DejankUtils; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.R; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.demomode.DemoModeController; import com.android.systemui.qs.QSTileHost; import com.android.systemui.settings.UserTracker; import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.phone.SystemUIDialog; import com.android.systemui.util.leak.LeakDetector; import java.util.HashSet; Loading Loading @@ -83,6 +88,7 @@ public class TunerServiceImpl extends TunerService { private int mCurrentUser; private UserTracker.Callback mCurrentUserTracker; private UserTracker mUserTracker; private final ComponentName mTunerComponent; /** */ Loading @@ -92,7 +98,6 @@ public class TunerServiceImpl extends TunerService { @Main Handler mainHandler, LeakDetector leakDetector, DemoModeController demoModeController, BroadcastDispatcher broadcastDispatcher, UserTracker userTracker) { super(context); mContext = context; Loading @@ -100,6 +105,7 @@ public class TunerServiceImpl extends TunerService { mLeakDetector = leakDetector; mDemoModeController = demoModeController; mUserTracker = userTracker; mTunerComponent = new ComponentName(mContext, TunerActivity.class); for (UserInfo user : UserManager.get(mContext).getUsers()) { mCurrentUser = user.getUserHandle().getIdentifier(); Loading Loading @@ -142,7 +148,7 @@ public class TunerServiceImpl extends TunerService { } } if (oldVersion < 2) { setTunerEnabled(mContext, mUserTracker.getUserHandle(), false); setTunerEnabled(false); } // 3 Removed because of a revert. if (oldVersion < 4) { Loading Loading @@ -269,6 +275,46 @@ public class TunerServiceImpl extends TunerService { } } @Override public void setTunerEnabled(boolean enabled) { mUserTracker.getUserContext().getPackageManager().setComponentEnabledSetting( mTunerComponent, enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP ); } @Override public boolean isTunerEnabled() { return mUserTracker.getUserContext().getPackageManager().getComponentEnabledSetting( mTunerComponent) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED; } @Override public void showResetRequest(Runnable onDisabled) { SystemUIDialog dialog = new SystemUIDialog(mContext); dialog.setShowForAllUsers(true); dialog.setMessage(R.string.remove_from_settings_prompt); dialog.setButton(DialogInterface.BUTTON_NEGATIVE, mContext.getString(R.string.cancel), (DialogInterface.OnClickListener) null); dialog.setButton(DialogInterface.BUTTON_POSITIVE, mContext.getString(R.string.guest_exit_guest_dialog_remove), (d, which) -> { // Tell the tuner (in main SysUI process) to clear all its settings. mContext.sendBroadcast(new Intent(TunerService.ACTION_CLEAR)); // Disable access to tuner. setTunerEnabled(false); // Make them sit through the warning dialog again. Secure.putInt(mContext.getContentResolver(), TunerFragment.SETTING_SEEN_TUNER_WARNING, 0); if (onDisabled != null) { onDisabled.run(); } }); dialog.show(); } private class Observer extends ContentObserver { public Observer() { super(new Handler(Looper.getMainLooper())); Loading Loading
packages/SystemUI/src/com/android/systemui/qs/QSFooterViewController.java +2 −3 Original line number Diff line number Diff line Loading @@ -95,7 +95,6 @@ public class QSFooterViewController extends ViewController<QSFooterView> impleme mActivityStarter.postQSRunnableDismissingKeyguard(() -> { if (isTunerEnabled()) { mTunerService.showResetRequest( mUserTracker.getUserHandle(), () -> { // Relaunch settings so that the tuner disappears. startSettingsActivity(); Loading @@ -103,7 +102,7 @@ public class QSFooterViewController extends ViewController<QSFooterView> impleme } else { Toast.makeText(getContext(), R.string.tuner_toast, Toast.LENGTH_LONG).show(); mTunerService.setTunerEnabled(mUserTracker.getUserHandle(), true); mTunerService.setTunerEnabled(true); } startSettingsActivity(); Loading Loading @@ -238,6 +237,6 @@ public class QSFooterViewController extends ViewController<QSFooterView> impleme } private boolean isTunerEnabled() { return mTunerService.isTunerEnabled(mUserTracker.getUserHandle()); return mTunerService.isTunerEnabled(); } }
packages/SystemUI/src/com/android/systemui/tuner/TunerActivity.java +4 −2 Original line number Diff line number Diff line Loading @@ -43,11 +43,13 @@ public class TunerActivity extends Activity implements private static final String TAG_TUNER = "tuner"; private final DemoModeController mDemoModeController; private final TunerService mTunerService; @Inject TunerActivity(DemoModeController demoModeController) { TunerActivity(DemoModeController demoModeController, TunerService tunerService) { super(); mDemoModeController = demoModeController; mTunerService = tunerService; } protected void onCreate(Bundle savedInstanceState) { Loading @@ -67,7 +69,7 @@ public class TunerActivity extends Activity implements "com.android.settings.action.DEMO_MODE"); final PreferenceFragment fragment = showDemoMode ? new DemoModeFragment(mDemoModeController) : new TunerFragment(); : new TunerFragment(mTunerService); getFragmentManager().beginTransaction().replace(R.id.content_frame, fragment, TAG_TUNER).commit(); } Loading
packages/SystemUI/src/com/android/systemui/tuner/TunerFragment.java +13 −9 Original line number Diff line number Diff line Loading @@ -15,7 +15,7 @@ */ package com.android.systemui.tuner; import android.app.ActivityManager; import android.annotation.SuppressLint; import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; Loading @@ -23,7 +23,6 @@ import android.content.DialogInterface; import android.hardware.display.AmbientDisplayConfiguration; import android.os.Build; import android.os.Bundle; import android.os.UserHandle; import android.provider.Settings; import android.view.Menu; import android.view.MenuInflater; Loading Loading @@ -56,6 +55,15 @@ public class TunerFragment extends PreferenceFragment { private static final int MENU_REMOVE = Menu.FIRST + 1; private final TunerService mTunerService; // We are the only ones who ever call this constructor, so don't worry about the warning @SuppressLint("ValidFragment") public TunerFragment(TunerService tunerService) { super(); mTunerService = tunerService; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Loading Loading @@ -124,14 +132,10 @@ public class TunerFragment extends PreferenceFragment { getActivity().finish(); return true; case MENU_REMOVE: UserHandle user = new UserHandle(ActivityManager.getCurrentUser()); TunerService.showResetRequest(getContext(), user, new Runnable() { @Override public void run() { mTunerService.showResetRequest(() -> { if (getActivity() != null) { getActivity().finish(); } } }); return true; } Loading
packages/SystemUI/src/com/android/systemui/tuner/TunerService.java +11 −70 Original line number Diff line number Diff line Loading @@ -15,19 +15,10 @@ package com.android.systemui.tuner; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.os.UserHandle; import android.provider.Settings; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.statusbar.phone.SystemUIDialog; public abstract class TunerService { Loading @@ -47,6 +38,16 @@ public abstract class TunerService { public abstract void addTunable(Tunable tunable, String... keys); public abstract void removeTunable(Tunable tunable); /** * Sets the state of the {@link TunerActivity} component for the current user */ public abstract void setTunerEnabled(boolean enabled); /** * Returns true if the tuner is enabled for the current user. */ public abstract boolean isTunerEnabled(); public interface Tunable { void onTuningChanged(String key, String newValue); } Loading @@ -55,38 +56,6 @@ public abstract class TunerService { mContext = context; } private static Context userContext(Context context, UserHandle user) { try { return context.createPackageContextAsUser(context.getPackageName(), 0, user); } catch (NameNotFoundException e) { return context; } } /** Enables or disables the tuner for the supplied user. */ public void setTunerEnabled(UserHandle user, boolean enabled) { setTunerEnabled(mContext, user, enabled); } public static final void setTunerEnabled(Context context, UserHandle user, boolean enabled) { userContext(context, user).getPackageManager().setComponentEnabledSetting( new ComponentName(context, TunerActivity.class), enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); } /** Returns true if the tuner is enabled for the supplied user. */ public boolean isTunerEnabled(UserHandle user) { return isTunerEnabled(mContext, user); } public static final boolean isTunerEnabled(Context context, UserHandle user) { return userContext(context, user).getPackageManager().getComponentEnabledSetting( new ComponentName(context, TunerActivity.class)) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED; } public static class ClearReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Loading @@ -97,35 +66,7 @@ public abstract class TunerService { } /** */ public void showResetRequest(UserHandle user, final Runnable onDisabled) { showResetRequest(mContext, user, onDisabled); } public static final void showResetRequest(final Context context, UserHandle user, final Runnable onDisabled) { SystemUIDialog dialog = new SystemUIDialog(context); dialog.setShowForAllUsers(true); dialog.setMessage(R.string.remove_from_settings_prompt); dialog.setButton(DialogInterface.BUTTON_NEGATIVE, context.getString(R.string.cancel), (OnClickListener) null); dialog.setButton(DialogInterface.BUTTON_POSITIVE, context.getString(R.string.guest_exit_guest_dialog_remove), new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // Tell the tuner (in main SysUI process) to clear all its settings. context.sendBroadcast(new Intent(TunerService.ACTION_CLEAR)); // Disable access to tuner. TunerService.setTunerEnabled(context, user, false); // Make them sit through the warning dialog again. Settings.Secure.putInt(context.getContentResolver(), TunerFragment.SETTING_SEEN_TUNER_WARNING, 0); if (onDisabled != null) { onDisabled.run(); } } }); dialog.show(); } public abstract void showResetRequest(Runnable onDisabled); public static boolean parseIntegerSwitch(String value, boolean defaultValue) { try { Loading
packages/SystemUI/src/com/android/systemui/tuner/TunerServiceImpl.java +49 −3 Original line number Diff line number Diff line Loading @@ -15,8 +15,12 @@ */ package com.android.systemui.tuner; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.database.ContentObserver; import android.net.Uri; Loading @@ -32,13 +36,14 @@ import android.util.ArraySet; import com.android.internal.util.ArrayUtils; import com.android.systemui.DejankUtils; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.R; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.demomode.DemoModeController; import com.android.systemui.qs.QSTileHost; import com.android.systemui.settings.UserTracker; import com.android.systemui.statusbar.phone.StatusBarIconController; import com.android.systemui.statusbar.phone.SystemUIDialog; import com.android.systemui.util.leak.LeakDetector; import java.util.HashSet; Loading Loading @@ -83,6 +88,7 @@ public class TunerServiceImpl extends TunerService { private int mCurrentUser; private UserTracker.Callback mCurrentUserTracker; private UserTracker mUserTracker; private final ComponentName mTunerComponent; /** */ Loading @@ -92,7 +98,6 @@ public class TunerServiceImpl extends TunerService { @Main Handler mainHandler, LeakDetector leakDetector, DemoModeController demoModeController, BroadcastDispatcher broadcastDispatcher, UserTracker userTracker) { super(context); mContext = context; Loading @@ -100,6 +105,7 @@ public class TunerServiceImpl extends TunerService { mLeakDetector = leakDetector; mDemoModeController = demoModeController; mUserTracker = userTracker; mTunerComponent = new ComponentName(mContext, TunerActivity.class); for (UserInfo user : UserManager.get(mContext).getUsers()) { mCurrentUser = user.getUserHandle().getIdentifier(); Loading Loading @@ -142,7 +148,7 @@ public class TunerServiceImpl extends TunerService { } } if (oldVersion < 2) { setTunerEnabled(mContext, mUserTracker.getUserHandle(), false); setTunerEnabled(false); } // 3 Removed because of a revert. if (oldVersion < 4) { Loading Loading @@ -269,6 +275,46 @@ public class TunerServiceImpl extends TunerService { } } @Override public void setTunerEnabled(boolean enabled) { mUserTracker.getUserContext().getPackageManager().setComponentEnabledSetting( mTunerComponent, enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP ); } @Override public boolean isTunerEnabled() { return mUserTracker.getUserContext().getPackageManager().getComponentEnabledSetting( mTunerComponent) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED; } @Override public void showResetRequest(Runnable onDisabled) { SystemUIDialog dialog = new SystemUIDialog(mContext); dialog.setShowForAllUsers(true); dialog.setMessage(R.string.remove_from_settings_prompt); dialog.setButton(DialogInterface.BUTTON_NEGATIVE, mContext.getString(R.string.cancel), (DialogInterface.OnClickListener) null); dialog.setButton(DialogInterface.BUTTON_POSITIVE, mContext.getString(R.string.guest_exit_guest_dialog_remove), (d, which) -> { // Tell the tuner (in main SysUI process) to clear all its settings. mContext.sendBroadcast(new Intent(TunerService.ACTION_CLEAR)); // Disable access to tuner. setTunerEnabled(false); // Make them sit through the warning dialog again. Secure.putInt(mContext.getContentResolver(), TunerFragment.SETTING_SEEN_TUNER_WARNING, 0); if (onDisabled != null) { onDisabled.run(); } }); dialog.show(); } private class Observer extends ContentObserver { public Observer() { super(new Handler(Looper.getMainLooper())); Loading