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

Commit fc1331de authored by Shivangi Dubey's avatar Shivangi Dubey Committed by Android (Google) Code Review
Browse files

Merge "Add trunkstable flags for Fold Lock Setting" into main

parents 20994455 e741d1c7
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ aconfig_srcjars = [
    ":android.permission.flags-aconfig-java{.generated_srcjars}",
    ":hwui_flags_java_lib{.generated_srcjars}",
    ":display_flags_lib{.generated_srcjars}",
    ":com.android.internal.foldables.flags-aconfig-java{.generated_srcjars}",
    ":android.multiuser.flags-aconfig-java{.generated_srcjars}",
    ":android.app.flags-aconfig-java{.generated_srcjars}",
    ":android.credentials.flags-aconfig-java{.generated_srcjars}",
@@ -345,6 +346,12 @@ java_aconfig_library {
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

java_aconfig_library {
    name: "com.android.internal.foldables.flags-aconfig-java",
    aconfig_declarations: "fold_lock_setting_flags",
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

// Multi user
aconfig_declarations {
    name: "android.multiuser.flags-aconfig",
+7 −0
Original line number Diff line number Diff line
aconfig_declarations {
    name: "fold_lock_setting_flags",
    package: "com.android.internal.foldables.flags",
    srcs: [
        "fold_lock_setting_flags.aconfig",
    ],
}
+25 −2
Original line number Diff line number Diff line
@@ -17,16 +17,23 @@
package com.android.internal.foldables;

import android.content.res.Resources;
import android.os.Build;
import android.sysprop.FoldLockBehaviorProperties;
import android.util.Slog;

import com.android.internal.R;
import com.android.internal.foldables.flags.Flags;

import java.util.function.Supplier;

/**
 * Wrapper class to access {@link FoldLockBehaviorProperties} and also assists with testing
 */
public class FoldLockSettingAvailabilityProvider {

    boolean mFoldLockBehaviorResourceValue;
    private static final String TAG = "FoldLockSettingAvailabilityProvider";
    private final boolean mFoldLockBehaviorResourceValue;
    private final Supplier<Boolean> mFoldLockSettingEnabled = Flags::foldLockSettingEnabled;

    public FoldLockSettingAvailabilityProvider(Resources resources) {
        mFoldLockBehaviorResourceValue = resources.getBoolean(
@@ -35,6 +42,22 @@ public class FoldLockSettingAvailabilityProvider {

    public boolean isFoldLockBehaviorAvailable() {
        return mFoldLockBehaviorResourceValue
                && FoldLockBehaviorProperties.fold_lock_setting_enabled().orElse(false);
                && flagOrSystemProperty();
    }

    private boolean flagOrSystemProperty() {
        if ((Build.IS_ENG || Build.IS_USERDEBUG)
                && FoldLockBehaviorProperties.fold_lock_setting_enabled().orElse(false)) {
            return true;
        }
        try {
            return mFoldLockSettingEnabled.get();
        } catch (Throwable ex) {
            Slog.i(TAG,
                    "Flags not ready yet. Return false for "
                            + Flags.FLAG_FOLD_LOCK_SETTING_ENABLED,
                    ex);
            return false;
        }
    }
}
+9 −0
Original line number Diff line number Diff line
package: "com.android.internal.foldables.flags"

flag {
    name: "fold_lock_setting_enabled"
    namespace: "display_manager"
    description: "Feature flag for Fold Lock Setting"
    bug: "274447767"
    is_fixed_read_only: true
}