Merge "Developer tile for toggling desktop mode" into tm-qpr-dev am: 3f000fa764 am: 7dad9f50a9

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/18975659

Change-Id: I45d7ac7982ea7306ae2ed069920c201f3116ba54
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Ats Jenk
2022-08-12 17:06:30 +00:00
committed by Automerger Merge Worker
3 changed files with 112 additions and 0 deletions

View File

@@ -476,4 +476,77 @@ public abstract class DevelopmentTiles extends TileService {
Settings.System.SHOW_TOUCHES, isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
}
}
/**
* Tile to enable desktop mode
*/
public static class DesktopMode extends DevelopmentTiles {
private static final int SETTING_VALUE_ON = 1;
private static final int SETTING_VALUE_OFF = 0;
private Context mContext;
@Override
public void onCreate() {
super.onCreate();
mContext = getApplicationContext();
}
@Override
protected boolean isEnabled() {
return Settings.System.getInt(mContext.getContentResolver(),
Settings.System.DESKTOP_MODE, SETTING_VALUE_OFF) == SETTING_VALUE_ON;
}
private boolean isDesktopModeFlagEnabled() {
return SystemProperties.getBoolean("persist.wm.debug.desktop_mode", false);
}
private boolean isFreeformFlagEnabled() {
return Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, SETTING_VALUE_OFF)
== SETTING_VALUE_ON;
}
private boolean isCaptionOnShellEnabled() {
return SystemProperties.getBoolean("persist.wm.debug.caption_on_shell", false);
}
@Override
protected void setIsEnabled(boolean isEnabled) {
if (isEnabled) {
// Check that all required features are enabled
if (!isDesktopModeFlagEnabled()) {
closeShade();
showMessage(
"Enable 'Desktop Windowing Proto 1' from the Flag Flipper app");
return;
}
if (!isCaptionOnShellEnabled()) {
closeShade();
showMessage("Enable 'Captions in Shell' from the Flag Flipper app");
return;
}
if (!isFreeformFlagEnabled()) {
closeShade();
showMessage(
"Enable freeform windows from developer settings");
return;
}
}
Settings.System.putInt(mContext.getContentResolver(),
Settings.System.DESKTOP_MODE,
isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
closeShade();
}
private void closeShade() {
sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
}
private void showMessage(String message) {
Toast.makeText(mContext, message, Toast.LENGTH_LONG).show();
}
}
}