Add the new Desktop Experience dev options

This option, when available, replaces the enable freeform ones.

Bug: 390625230
Bug: 389092752
Test: atest DesktopExperiencePreferenceControllerTest
Test: atest DesktopModeSecondaryDisplayPreferenceControllerTest
Test: atest DesktopModePreferenceControllerTest
Test: atest FreeformWindowsPreferenceControllerTest
Flag: com.android.window.flags.show_desktop_experience_dev_option
Change-Id: Ib2eaa99fab1fbcae6ed9afa997cfe92676a75c70
This commit is contained in:
Pierre Barbier de Reuille
2025-01-16 22:23:58 +00:00
parent f956509b8c
commit 8a42cd7171
11 changed files with 392 additions and 17 deletions

View File

@@ -29,6 +29,7 @@ import androidx.preference.TwoStatePreference;
import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.development.DeveloperOptionsPreferenceController;
import com.android.wm.shell.shared.desktopmode.DesktopModeStatus;
public class FreeformWindowsPreferenceController extends DeveloperOptionsPreferenceController
implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin,
@@ -54,7 +55,9 @@ public class FreeformWindowsPreferenceController extends DeveloperOptionsPrefere
public boolean isAvailable() {
// When devices have the system feature FEATURE_FREEFORM_WINDOW_MANAGEMENT, freeform
// mode is enabled automatically, and this toggle is not needed.
return !mContext.getPackageManager().hasSystemFeature(FEATURE_FREEFORM_WINDOW_MANAGEMENT);
return !mContext.getPackageManager().hasSystemFeature(FEATURE_FREEFORM_WINDOW_MANAGEMENT)
&& !DesktopModeStatus.canShowDesktopExperienceDevOption(mContext)
&& !DesktopModeStatus.canShowDesktopModeDevOption(mContext);
}
@Override