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

Commit e1aab79a authored by Charles Chen's avatar Charles Chen
Browse files

Enable to override level by adb command for testing

This CL enables to overrde vendor API level by "adb shell setprop"
command, which is easier for testing among different API levels.

Test: manual
        1. adb shell setprop persist.wm.debug.ext_version_override 6
	2. kill demo app in recent apps
	3. launch overlay demo app
	4. observe the overlay container can be launched
Bug: 243518738
Flag: TEST_ONLY
Change-Id: I8d45a47b83e5044deb3606dbd580ffb6c444bf7a
parent bcc59ec1
Loading
Loading
Loading
Loading
+25 −3
Original line number Original line Diff line number Diff line
@@ -24,6 +24,7 @@ import android.app.Application;
import android.app.compat.CompatChanges;
import android.app.compat.CompatChanges;
import android.content.Context;
import android.content.Context;
import android.hardware.devicestate.DeviceStateManager;
import android.hardware.devicestate.DeviceStateManager;
import android.os.SystemProperties;
import android.util.Log;
import android.util.Log;


import androidx.annotation.NonNull;
import androidx.annotation.NonNull;
@@ -49,6 +50,11 @@ class WindowExtensionsImpl implements WindowExtensions {


    private static final String TAG = "WindowExtensionsImpl";
    private static final String TAG = "WindowExtensionsImpl";


    /**
     * The value of the system property that indicates no override is set.
     */
    private static final int NO_LEVEL_OVERRIDE = -1;

    /**
    /**
     * The min version of the WM Extensions that must be supported in the current platform version.
     * The min version of the WM Extensions that must be supported in the current platform version.
     */
     */
@@ -66,14 +72,30 @@ class WindowExtensionsImpl implements WindowExtensions {


    WindowExtensionsImpl() {
    WindowExtensionsImpl() {
        mIsActivityEmbeddingEnabled = isActivityEmbeddingEnabled();
        mIsActivityEmbeddingEnabled = isActivityEmbeddingEnabled();
        Log.i(TAG, "Initializing Window Extensions, vendor API level=" + mVersion

                + ", activity embedding enabled=" + mIsActivityEmbeddingEnabled);
        Log.i(TAG, generateLogMessage());
    }

    private String generateLogMessage() {
        final StringBuilder logBuilder = new StringBuilder("Initializing Window Extensions, "
                + "vendor API level=" + mVersion);
        final int levelOverride = getLevelOverride();
        if (levelOverride != NO_LEVEL_OVERRIDE) {
            logBuilder.append(", override to ").append(levelOverride);
        }
        logBuilder.append(", activity embedding enabled=").append(mIsActivityEmbeddingEnabled);
        return logBuilder.toString();
    }
    }


    // TODO(b/241126279) Introduce constants to better version functionality
    // TODO(b/241126279) Introduce constants to better version functionality
    @Override
    @Override
    public int getVendorApiLevel() {
    public int getVendorApiLevel() {
        return mVersion;
        final int levelOverride = getLevelOverride();
        return (levelOverride != NO_LEVEL_OVERRIDE) ? levelOverride : mVersion;
    }

    private int getLevelOverride() {
        return SystemProperties.getInt("persist.wm.debug.ext_version_override", NO_LEVEL_OVERRIDE);
    }
    }


    @NonNull
    @NonNull