summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/util/FeatureFlagUtils.java12
-rw-r--r--services/core/java/com/android/server/pm/CloneProfileResolver.java26
-rw-r--r--services/core/java/com/android/server/pm/CrossProfileIntentResolverEngine.java4
3 files changed, 27 insertions, 15 deletions
diff --git a/core/java/android/util/FeatureFlagUtils.java b/core/java/android/util/FeatureFlagUtils.java
index 4277d01c091a..2c4f38de2db0 100644
--- a/core/java/android/util/FeatureFlagUtils.java
+++ b/core/java/android/util/FeatureFlagUtils.java
@@ -52,16 +52,6 @@ public class FeatureFlagUtils {
public static final String SETTINGS_SUPPORT_LARGE_SCREEN = "settings_support_large_screen";
/**
- * Feature flag to allow/restrict intent redirection from/to clone profile.
- * Default value is false,this is to ensure that framework is not impacted by intent redirection
- * till we are ready to launch.
- * From Android U onwards, this would be set to true and eventually removed.
- * @hide
- */
- public static final String SETTINGS_ALLOW_INTENT_REDIRECTION_FOR_CLONE_PROFILE =
- "settings_allow_intent_redirection_for_clone_profile";
-
- /**
* Support locale opt-out and opt-in switch for per app's language.
* @hide
*/
@@ -174,7 +164,6 @@ public class FeatureFlagUtils {
DEFAULT_FLAGS.put(SETTINGS_ENABLE_SECURITY_HUB, "true");
DEFAULT_FLAGS.put(SETTINGS_SUPPORT_LARGE_SCREEN, "true");
DEFAULT_FLAGS.put("settings_search_always_expand", "true");
- DEFAULT_FLAGS.put(SETTINGS_ALLOW_INTENT_REDIRECTION_FOR_CLONE_PROFILE, "false");
DEFAULT_FLAGS.put(SETTINGS_APP_LOCALE_OPT_IN_ENABLED, "true");
DEFAULT_FLAGS.put(SETTINGS_VOLUME_PANEL_IN_SYSTEMUI, "false");
DEFAULT_FLAGS.put(SETTINGS_ENABLE_MONITOR_PHANTOM_PROCS, "true");
@@ -196,7 +185,6 @@ public class FeatureFlagUtils {
static {
PERSISTENT_FLAGS = new HashSet<>();
- PERSISTENT_FLAGS.add(SETTINGS_ALLOW_INTENT_REDIRECTION_FOR_CLONE_PROFILE);
PERSISTENT_FLAGS.add(SETTINGS_APP_LOCALE_OPT_IN_ENABLED);
PERSISTENT_FLAGS.add(SETTINGS_SUPPORT_LARGE_SCREEN);
PERSISTENT_FLAGS.add(SETTINGS_ENABLE_MONITOR_PHANTOM_PROCS);
diff --git a/services/core/java/com/android/server/pm/CloneProfileResolver.java b/services/core/java/com/android/server/pm/CloneProfileResolver.java
index d3113e12abe3..73036f12327a 100644
--- a/services/core/java/com/android/server/pm/CloneProfileResolver.java
+++ b/services/core/java/com/android/server/pm/CloneProfileResolver.java
@@ -18,6 +18,8 @@ package com.android.server.pm;
import android.content.Intent;
import android.content.pm.ResolveInfo;
+import android.os.Binder;
+import android.provider.DeviceConfig;
import com.android.server.pm.pkg.PackageStateInternal;
import com.android.server.pm.resolution.ComponentResolverApi;
@@ -32,6 +34,30 @@ import java.util.function.Function;
*/
public class CloneProfileResolver extends CrossProfileResolver {
+ /**
+ * Feature flag to allow/restrict intent redirection from/to clone profile.
+ * Default value is false,this is to ensure that framework is not impacted by intent redirection
+ * till we are ready to launch.
+ * From Android U onwards, this would be set to true and eventually removed.
+ * @hide
+ */
+ private static final String FLAG_ALLOW_INTENT_REDIRECTION_FOR_CLONE_PROFILE =
+ "allow_intent_redirection_for_clone_profile";
+
+ /**
+ * Returns true if intent redirection for clone profile feature flag is set
+ * @return value of flag allow_intent_redirection_for_clone_profile
+ */
+ public static boolean isIntentRedirectionForCloneProfileAllowed() {
+ final long token = Binder.clearCallingIdentity();
+ try {
+ return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_APP_CLONING,
+ FLAG_ALLOW_INTENT_REDIRECTION_FOR_CLONE_PROFILE, false /* defaultValue */);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
public CloneProfileResolver(ComponentResolverApi componentResolver,
UserManagerService userManagerService) {
super(componentResolver, userManagerService);
diff --git a/services/core/java/com/android/server/pm/CrossProfileIntentResolverEngine.java b/services/core/java/com/android/server/pm/CrossProfileIntentResolverEngine.java
index 5d97cb7c61ae..1e0822d6bd63 100644
--- a/services/core/java/com/android/server/pm/CrossProfileIntentResolverEngine.java
+++ b/services/core/java/com/android/server/pm/CrossProfileIntentResolverEngine.java
@@ -32,7 +32,6 @@ import android.content.pm.ResolveInfo;
import android.content.pm.UserInfo;
import android.os.Process;
import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
import android.util.Pair;
import android.util.Slog;
import android.util.SparseArray;
@@ -250,8 +249,7 @@ public class CrossProfileIntentResolverEngine {
* SETTINGS_ALLOW_INTENT_REDIRECTION_FOR_CLONE_PROFILE is enabled
*/
if (sourceUserInfo.isCloneProfile() || targetUserInfo.isCloneProfile()) {
- if (FeatureFlagUtils.isEnabled(mContext,
- FeatureFlagUtils.SETTINGS_ALLOW_INTENT_REDIRECTION_FOR_CLONE_PROFILE)) {
+ if (CloneProfileResolver.isIntentRedirectionForCloneProfileAllowed()) {
return new CloneProfileResolver(computer.getComponentResolver(),
mUserManager);
} else {