Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eee2c2d8 authored by Eghosa Ewansiha-Vlachavas's avatar Eghosa Ewansiha-Vlachavas Committed by Android (Google) Code Review
Browse files

Merge "Don't set freeform bounds for fullscreen task on desktop enabled devices" into main

parents ebd1caeb 33aa3bc4
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.ActivityOptions;
import android.app.WindowConfiguration.WindowingMode;
import android.content.Context;
import android.content.pm.ActivityInfo.WindowLayout;
import android.graphics.Rect;

@@ -68,9 +69,10 @@ class LaunchParamsController {
     */
    void registerDefaultModifiers(ActivityTaskSupervisor supervisor) {
        // {@link TaskLaunchParamsModifier} handles window layout preferences.
        registerModifier(new TaskLaunchParamsModifier(supervisor));
        registerModifier(new DesktopModeLaunchParamsModifier(mService.mContext, supervisor,
                new DesktopModeCompatPolicy(mService.mContext)));
        final Context context = mService.mContext;
        registerModifier(new TaskLaunchParamsModifier(supervisor, context));
        registerModifier(new DesktopModeLaunchParamsModifier(context, supervisor,
                new DesktopModeCompatPolicy(context)));
    }

    /**
+9 −3
Original line number Diff line number Diff line
@@ -36,12 +36,14 @@ import static android.util.DisplayMetrics.DENSITY_DEFAULT;
import static android.window.DisplayAreaOrganizer.FEATURE_UNDEFINED;

import static com.android.server.wm.ActivityStarter.Request;
import static com.android.server.wm.DesktopModeHelper.canEnterDesktopMode;
import static com.android.server.wm.LaunchParamsUtil.getPreferredLaunchTaskDisplayArea;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.ActivityOptions;
import android.app.WindowConfiguration;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.graphics.Rect;
@@ -77,6 +79,7 @@ class TaskLaunchParamsModifier implements LaunchParamsModifier {
    private static final int MINIMAL_STEP = 1;

    private final ActivityTaskSupervisor mSupervisor;
    private final Context mContext;
    private final Rect mTmpBounds = new Rect();
    private final Rect mTmpStableBounds = new Rect();
    private final int[] mTmpDirections = new int[2];
@@ -85,8 +88,9 @@ class TaskLaunchParamsModifier implements LaunchParamsModifier {

    private StringBuilder mLogBuilder;

    TaskLaunchParamsModifier(ActivityTaskSupervisor supervisor) {
    TaskLaunchParamsModifier(ActivityTaskSupervisor supervisor, Context context) {
        mSupervisor = supervisor;
        mContext = context;
    }

    @Override
@@ -557,9 +561,11 @@ class TaskLaunchParamsModifier implements LaunchParamsModifier {
            @NonNull ActivityInfo.WindowLayout layout, int resolvedMode, boolean hasInitialBounds,
            @NonNull Rect inOutBounds) {
        if (resolvedMode != WINDOWING_MODE_FREEFORM
                && resolvedMode != WINDOWING_MODE_FULLSCREEN) {
                && (resolvedMode != WINDOWING_MODE_FULLSCREEN || canEnterDesktopMode(mContext))) {
            // This function should be used only for freeform bounds adjustment. Freeform bounds
            // needs to be set to fullscreen tasks too as restore bounds.
            // needs to be set to fullscreen tasks too as restore bounds for legacy use case only.
            // If desktop mode is available on the device do not set freeform bounds for fullscreen
            // task.
            appendLog("skip-bounds-" + WindowConfiguration.windowingModeToString(resolvedMode));
            return;
        }
+1 −1
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ public class TaskLaunchParamsModifierTests extends
        mActivity.info.applicationInfo.targetSdkVersion = Build.VERSION_CODES.N_MR1;
        mActivity.info.applicationInfo.flags |= ApplicationInfo.FLAG_SUPPORTS_SCREEN_DENSITIES;

        mTarget = new TaskLaunchParamsModifier(mSupervisor);
        mTarget = new TaskLaunchParamsModifier(mSupervisor, mContext);

        mCurrent = new LaunchParams();
        mCurrent.reset();