From d96911734c08c498ec45882fe4c0be8666f612e5 Mon Sep 17 00:00:00 2001 From: Justin Gross Date: Thu, 18 May 2023 19:27:08 +0000 Subject: [PATCH] Enable vendors to add preference controllers in mobile network settings Implement AbstractSubscriptionPreferenceController so that vendor code can add preference controllers to MobileNetworkSettings. Bug: 280323952 Test: manual Change-Id: I6b1916d8956ebd4163958155a448e7fb27942951 --- ...tractSubscriptionPreferenceController.java | 34 +++++++++++++++++++ .../telephony/MobileNetworkSettings.java | 7 ++++ 2 files changed, 41 insertions(+) create mode 100644 src/com/android/settings/network/telephony/AbstractSubscriptionPreferenceController.java diff --git a/src/com/android/settings/network/telephony/AbstractSubscriptionPreferenceController.java b/src/com/android/settings/network/telephony/AbstractSubscriptionPreferenceController.java new file mode 100644 index 00000000000..5f6c0eec924 --- /dev/null +++ b/src/com/android/settings/network/telephony/AbstractSubscriptionPreferenceController.java @@ -0,0 +1,34 @@ +/* + * 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 com.android.settings.network.telephony; + +import android.content.Context; + +/** + * {@link TelephonyBasePreferenceController} used to add vendor preference controllers in {@link + * MobileNetworkSettings}. + */ +public abstract class AbstractSubscriptionPreferenceController + extends TelephonyBasePreferenceController { + public AbstractSubscriptionPreferenceController(Context context, String key) { + super(context, key); + } + + public void init(int subId) { + mSubId = subId; + } +} diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java index d6d9df4a992..1d862f3385f 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkSettings.java +++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java @@ -300,6 +300,13 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings impleme if (convertToEsimPreferenceController != null) { convertToEsimPreferenceController.init(mSubId, mSubscriptionInfoEntity); } + + List subscriptionPreferenceControllers = + useAll(AbstractSubscriptionPreferenceController.class); + for (AbstractSubscriptionPreferenceController controller : + subscriptionPreferenceControllers) { + controller.init(mSubId); + } } @Override