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

Commit bf649b32 authored by Josh Yang's avatar Josh Yang Committed by Android (Google) Code Review
Browse files

Merge "Add a new API to control task snapshot behavior."

parents f2d092ec b780cae7
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -875,4 +875,10 @@ interface IWindowManager
     * @see android.window.WindowProviderService#getLaunchedDisplayId
     */
    int getImeDisplayId();

    /**
     * Control if we should enable task snapshot features on this device.
     * @hide
     */
    void setTaskSnapshotEnabled(boolean enabled);
}
+12 −13
Original line number Diff line number Diff line
@@ -114,14 +114,9 @@ class TaskSnapshotController {
    private final boolean mIsRunningOnIoT;

    /**
     * Flag indicating whether we are running on an Android Wear device.
     * Flag indicating if task snapshot is enabled on this device.
     */
    private final boolean mIsRunningOnWear;

    /**
     * Flag indicating if device configuration has disabled app snapshots.
     */
    private final boolean mConfigDisableTaskSnapshots;
    private boolean mTaskSnapshotEnabled;

    TaskSnapshotController(WindowManagerService service) {
        mService = service;
@@ -132,12 +127,12 @@ class TaskSnapshotController {
                PackageManager.FEATURE_LEANBACK);
        mIsRunningOnIoT = mService.mContext.getPackageManager().hasSystemFeature(
                PackageManager.FEATURE_EMBEDDED);
        mIsRunningOnWear = mService.mContext.getPackageManager().hasSystemFeature(
            PackageManager.FEATURE_WATCH);
        mHighResTaskSnapshotScale = mService.mContext.getResources().getFloat(
                com.android.internal.R.dimen.config_highResTaskSnapshotScale);
        mConfigDisableTaskSnapshots = mService.mContext.getResources().getBoolean(
                com.android.internal.R.bool.config_disableTaskSnapshots);
        mTaskSnapshotEnabled =
                !mService.mContext
                        .getResources()
                        .getBoolean(com.android.internal.R.bool.config_disableTaskSnapshots);
    }

    void systemReady() {
@@ -494,9 +489,12 @@ class TaskSnapshotController {
        return builder.build();
    }

    void setTaskSnapshotEnabled(boolean enabled) {
        mTaskSnapshotEnabled = enabled;
    }

    boolean shouldDisableSnapshots() {
        return mIsRunningOnWear || mIsRunningOnTv || mIsRunningOnIoT
                || mConfigDisableTaskSnapshots;
        return mIsRunningOnTv || mIsRunningOnIoT || !mTaskSnapshotEnabled;
    }

    /**
@@ -696,6 +694,7 @@ class TaskSnapshotController {

    void dump(PrintWriter pw, String prefix) {
        pw.println(prefix + "mHighResTaskSnapshotScale=" + mHighResTaskSnapshotScale);
        pw.println(prefix + "mTaskSnapshotEnabled=" + mTaskSnapshotEnabled);
        mCache.dump(pw, prefix);
    }
}
+5 −0
Original line number Diff line number Diff line
@@ -8669,4 +8669,9 @@ public class WindowManagerService extends IWindowManager.Stub
                    : DEFAULT_DISPLAY;
        }
    }

    @Override
    public void setTaskSnapshotEnabled(boolean enabled) {
        mTaskSnapshotController.setTaskSnapshotEnabled(enabled);
    }
}