diff options
author | 2023-08-21 16:05:32 -0700 | |
---|---|---|
committer | 2023-08-30 11:25:39 -0700 | |
commit | 1c5b7f61668479bf801595ff19eeee088f2a9651 (patch) | |
tree | 5550df363cf3c94b11d67da40803cec6bfe3e49c | |
parent | 944293dbb0ddd975ffe59886c858cf99c0a10ef7 (diff) |
Add work profile feature flag
Fix: 296290011
Test: basic voice call + data browsing
Change-Id: I8404d5c68324dc6764eb2e238227883276fc7898
-rw-r--r-- | Android.bp | 1 | ||||
-rw-r--r-- | flags/Android.bp | 37 | ||||
-rw-r--r-- | flags/data.aconfig | 1 | ||||
-rw-r--r-- | flags/ims.aconfig | 1 | ||||
-rw-r--r-- | flags/messaging.aconfig | 1 | ||||
-rw-r--r-- | flags/misc.aconfig | 1 | ||||
-rw-r--r-- | flags/subscription.aconfig | 8 | ||||
-rw-r--r-- | flags/uicc.aconfig | 1 | ||||
-rw-r--r-- | src/java/com/android/internal/telephony/PhoneFactory.java | 14 | ||||
-rw-r--r-- | src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java | 9 | ||||
-rw-r--r-- | tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java | 7 |
11 files changed, 74 insertions, 7 deletions
diff --git a/Android.bp b/Android.bp index 66cca32a1a..b56ee2a53f 100644 --- a/Android.bp +++ b/Android.bp @@ -108,6 +108,7 @@ java_library { "telephony-protos", "modules-utils-build_system", "modules-utils-statemachine", + "telephony_flags-lib", ], optimize: { diff --git a/flags/Android.bp b/flags/Android.bp new file mode 100644 index 0000000000..184f71664d --- /dev/null +++ b/flags/Android.bp @@ -0,0 +1,37 @@ +// +// Copyright (C) 2023 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +package { + default_applicable_licenses: ["Android-Apache-2.0"], +} + +aconfig_declarations { + name: "telephony_flags", + package: "com.android.internal.telephony.flags", + srcs: [ + "data.aconfig", + "ims.aconfig", + "messaging.aconfig", + "misc.aconfig", + "subscription.aconfig", + "uicc.aconfig", + ], +} + +java_aconfig_library { + name: "telephony_flags-lib", + aconfig_declarations: "telephony_flags" +} diff --git a/flags/data.aconfig b/flags/data.aconfig new file mode 100644 index 0000000000..9a5b506349 --- /dev/null +++ b/flags/data.aconfig @@ -0,0 +1 @@ +package: "com.android.internal.telephony.flags" diff --git a/flags/ims.aconfig b/flags/ims.aconfig new file mode 100644 index 0000000000..84e491e7bb --- /dev/null +++ b/flags/ims.aconfig @@ -0,0 +1 @@ +package: "com.android.internal.telephony.flags"
\ No newline at end of file diff --git a/flags/messaging.aconfig b/flags/messaging.aconfig new file mode 100644 index 0000000000..84e491e7bb --- /dev/null +++ b/flags/messaging.aconfig @@ -0,0 +1 @@ +package: "com.android.internal.telephony.flags"
\ No newline at end of file diff --git a/flags/misc.aconfig b/flags/misc.aconfig new file mode 100644 index 0000000000..84e491e7bb --- /dev/null +++ b/flags/misc.aconfig @@ -0,0 +1 @@ +package: "com.android.internal.telephony.flags"
\ No newline at end of file diff --git a/flags/subscription.aconfig b/flags/subscription.aconfig new file mode 100644 index 0000000000..0521cb998b --- /dev/null +++ b/flags/subscription.aconfig @@ -0,0 +1,8 @@ +package: "com.android.internal.telephony.flags" + +flag { + name: "work_profile_api_split" + namespace: "telephony" + description: "To support separation between personal and work from TelephonyManager and SubscriptionManager API perspective." + bug: "296076674" +}
\ No newline at end of file diff --git a/flags/uicc.aconfig b/flags/uicc.aconfig new file mode 100644 index 0000000000..84e491e7bb --- /dev/null +++ b/flags/uicc.aconfig @@ -0,0 +1 @@ +package: "com.android.internal.telephony.flags"
\ No newline at end of file diff --git a/src/java/com/android/internal/telephony/PhoneFactory.java b/src/java/com/android/internal/telephony/PhoneFactory.java index 57a375b9b4..1b05ffdb21 100644 --- a/src/java/com/android/internal/telephony/PhoneFactory.java +++ b/src/java/com/android/internal/telephony/PhoneFactory.java @@ -23,6 +23,7 @@ import static com.android.internal.telephony.PhoneConstants.PHONE_TYPE_CDMA_LTE; import static java.util.Arrays.copyOf; +import android.annotation.NonNull; import android.annotation.Nullable; import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; @@ -47,6 +48,7 @@ import com.android.internal.telephony.data.PhoneSwitcher; import com.android.internal.telephony.data.TelephonyNetworkFactory; import com.android.internal.telephony.euicc.EuiccCardController; import com.android.internal.telephony.euicc.EuiccController; +import com.android.internal.telephony.flags.FeatureFlags; import com.android.internal.telephony.imsphone.ImsPhone; import com.android.internal.telephony.imsphone.ImsPhoneFactory; import com.android.internal.telephony.metrics.MetricsCollector; @@ -105,8 +107,12 @@ public class PhoneFactory { //***** Class Methods - public static void makeDefaultPhones(Context context) { - makeDefaultPhone(context); + /** + * @param context The context. + * @param featureFlags The feature flag. + */ + public static void makeDefaultPhones(Context context, @NonNull FeatureFlags featureFlags) { + makeDefaultPhone(context, featureFlags); } /** @@ -114,7 +120,7 @@ public class PhoneFactory { * instances */ @UnsupportedAppUsage - public static void makeDefaultPhone(Context context) { + public static void makeDefaultPhone(Context context, @NonNull FeatureFlags featureFlags) { synchronized (sLockProxyPhones) { if (!sMadeDefaults) { sContext = context; @@ -198,7 +204,7 @@ public class PhoneFactory { Rlog.i(LOG_TAG, "Creating SubscriptionManagerService"); sSubscriptionManagerService = new SubscriptionManagerService(context, - Looper.myLooper()); + Looper.myLooper(), featureFlags); TelephonyComponentFactory.getInstance().inject(MultiSimSettingController.class. getName()).initMultiSimSettingController(context); diff --git a/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java b/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java index 8c8620e7d5..8a35649938 100644 --- a/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java +++ b/src/java/com/android/internal/telephony/subscription/SubscriptionManagerService.java @@ -95,6 +95,7 @@ import com.android.internal.telephony.TelephonyIntents; import com.android.internal.telephony.TelephonyPermissions; import com.android.internal.telephony.data.PhoneSwitcher; import com.android.internal.telephony.euicc.EuiccController; +import com.android.internal.telephony.flags.FeatureFlags; import com.android.internal.telephony.subscription.SubscriptionDatabaseManager.SubscriptionDatabaseManagerCallback; import com.android.internal.telephony.uicc.IccRecords; import com.android.internal.telephony.uicc.IccUtils; @@ -194,6 +195,10 @@ public class SubscriptionManagerService extends ISub.Stub { @NonNull private final Context mContext; + /** Feature flags */ + @NonNull + private final FeatureFlags mFeatureFlags; + /** App Ops manager instance. */ @NonNull private final AppOpsManager mAppOpsManager; @@ -406,10 +411,12 @@ public class SubscriptionManagerService extends ISub.Stub { * @param context The context * @param looper The looper for the handler. */ - public SubscriptionManagerService(@NonNull Context context, @NonNull Looper looper) { + public SubscriptionManagerService(@NonNull Context context, @NonNull Looper looper, + @NonNull FeatureFlags featureFlags) { logl("Created SubscriptionManagerService"); sInstance = this; mContext = context; + mFeatureFlags = featureFlags; mTelephonyManager = context.getSystemService(TelephonyManager.class); mSubscriptionManager = context.getSystemService(SubscriptionManager.class); mEuiccManager = context.getSystemService(EuiccManager.class); diff --git a/tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java b/tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java index aea79656c1..ab531a6e10 100644 --- a/tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java +++ b/tests/telephonytests/src/com/android/internal/telephony/subscription/SubscriptionManagerServiceTest.java @@ -104,6 +104,7 @@ import com.android.internal.telephony.RILConstants; import com.android.internal.telephony.TelephonyIntents; import com.android.internal.telephony.TelephonyTest; import com.android.internal.telephony.euicc.EuiccController; +import com.android.internal.telephony.flags.FeatureFlags; import com.android.internal.telephony.subscription.SubscriptionDatabaseManagerTest.SubscriptionProvider; import com.android.internal.telephony.subscription.SubscriptionManagerService.SubscriptionManagerServiceCallback; import com.android.internal.telephony.subscription.SubscriptionManagerService.SubscriptionMap; @@ -153,7 +154,7 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { // mocked private SubscriptionManagerServiceCallback mMockedSubscriptionManagerServiceCallback; private EuiccController mEuiccController; - + private FeatureFlags mFlags; private Set<Integer> mActiveSubs = new ArraySet<>(); @Rule @@ -199,7 +200,9 @@ public class SubscriptionManagerServiceTest extends TelephonyTest { ((MockContentResolver) mContext.getContentResolver()).addProvider( Telephony.Carriers.CONTENT_URI.getAuthority(), mSubscriptionProvider); - mSubscriptionManagerServiceUT = new SubscriptionManagerService(mContext, Looper.myLooper()); + mFlags = Mockito.mock(FeatureFlags.class); + mSubscriptionManagerServiceUT = new SubscriptionManagerService(mContext, Looper.myLooper(), + mFlags); monitorTestableLooper(new TestableLooper(getBackgroundHandler().getLooper())); monitorTestableLooper(new TestableLooper(getSubscriptionDatabaseManager().getLooper())); |