Loading res/xml/network_provider_settings.xml +0 −6 Original line number Original line Diff line number Diff line Loading @@ -27,12 +27,6 @@ android:key="connected_access_point" android:key="connected_access_point" android:layout="@layout/preference_category_no_label"/> android:layout="@layout/preference_category_no_label"/> <PreferenceCategory android:key="provider_model_mobile_network" android:title="@string/summary_placeholder" android:layout="@layout/preference_category_no_label" settings:controller="com.android.settings.network.NetworkMobileProviderController"/> <PreferenceCategory <PreferenceCategory android:key="access_points" android:key="access_points" android:layout="@layout/preference_category_no_label"/> android:layout="@layout/preference_category_no_label"/> Loading src/com/android/settings/network/MultiNetworkHeaderController.java +3 −8 Original line number Original line Diff line number Diff line Loading @@ -27,14 +27,9 @@ import com.android.settings.core.BasePreferenceController; import com.android.settings.wifi.WifiConnectionPreferenceController; import com.android.settings.wifi.WifiConnectionPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle; /** // This controls a header at the top of the Network & internet page that only appears when there * This controls a header at the top of the Network & internet page that only appears when there // are two or more active mobile subscriptions. It shows an overview of available network * are two or more active mobile subscriptions. It shows an overview of available network // connections with an entry for wifi (if connected) and an entry for each subscription. * connections with an entry for wifi (if connected) and an entry for each subscription. * * TODO(tomhsu) when provider model is completed, this class will be replaced * by {@link NetworkMobileProviderController} */ public class MultiNetworkHeaderController extends BasePreferenceController implements public class MultiNetworkHeaderController extends BasePreferenceController implements WifiConnectionPreferenceController.UpdateListener, WifiConnectionPreferenceController.UpdateListener, SubscriptionsPreferenceController.UpdateListener { SubscriptionsPreferenceController.UpdateListener { Loading src/com/android/settings/network/NetworkMobileProviderController.javadeleted 100644 → 0 +0 −118 Original line number Original line Diff line number Diff line /* * Copyright (C) 2020 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; import android.content.Context; import android.util.Log; import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceScreen; import com.android.settings.core.BasePreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; /** * This controls mobile network display of the internet page that only appears when there * are active mobile subscriptions. It shows an overview of available mobile network * connections with an entry for each subscription. * * {@link NetworkMobileProviderController} is used to show subscription status on internet * page for provider model. This original class can refer to {@link MultiNetworkHeaderController}, * */ public class NetworkMobileProviderController extends BasePreferenceController implements SubscriptionsPreferenceController.UpdateListener { private static final String TAG = NetworkMobileProviderController.class.getSimpleName(); public static final String PREF_KEY_PROVIDER_MOBILE_NETWORK = "provider_model_mobile_network"; private static final int PREFERENCE_START_ORDER = 10; private PreferenceCategory mPreferenceCategory; private PreferenceScreen mPreferenceScreen; private SubscriptionsPreferenceController mSubscriptionsController; private int mOriginalExpandedChildrenCount; public NetworkMobileProviderController(Context context, String key) { super(context, key); } /** * Initialize NetworkMobileProviderController * @param lifecycle Lifecycle of Settings */ public void init(Lifecycle lifecycle) { mSubscriptionsController = createSubscriptionsController(lifecycle); } @VisibleForTesting SubscriptionsPreferenceController createSubscriptionsController(Lifecycle lifecycle) { if (mSubscriptionsController == null) { return new SubscriptionsPreferenceController( mContext, lifecycle, this, PREF_KEY_PROVIDER_MOBILE_NETWORK, PREFERENCE_START_ORDER); } return mSubscriptionsController; } @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); if (mSubscriptionsController == null) { Log.e(TAG, "[displayPreference] SubscriptionsController is null."); return; } mPreferenceScreen = screen; mOriginalExpandedChildrenCount = mPreferenceScreen.getInitialExpandedChildrenCount(); mPreferenceCategory = screen.findPreference(PREF_KEY_PROVIDER_MOBILE_NETWORK); mPreferenceCategory.setVisible(isAvailable()); // TODO(tomhsu) For the provider model, subscriptionsController shall do more // implementation of preference type change and summary control. mSubscriptionsController.displayPreference(screen); } @Override public int getAvailabilityStatus() { if (mSubscriptionsController == null) { return CONDITIONALLY_UNAVAILABLE; } return mSubscriptionsController.isAvailable() ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } @Override public void onChildrenUpdated() { final boolean available = isAvailable(); // TODO(b/129893781) we need a better way to express where the advanced collapsing starts // for preference groups that have items dynamically added/removed in the top expanded // section. if (mOriginalExpandedChildrenCount != Integer.MAX_VALUE) { if (available) { mPreferenceScreen.setInitialExpandedChildrenCount( mOriginalExpandedChildrenCount + mPreferenceCategory.getPreferenceCount()); } else { mPreferenceScreen.setInitialExpandedChildrenCount(mOriginalExpandedChildrenCount); } } mPreferenceCategory.setVisible(available); } } src/com/android/settings/network/NetworkProviderSettings.java +0 −15 Original line number Original line Diff line number Diff line Loading @@ -207,12 +207,6 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment DataUsagePreference mDataUsagePreference; DataUsagePreference mDataUsagePreference; private LinkablePreference mStatusMessagePreference; private LinkablePreference mStatusMessagePreference; /** * Mobile networks list for provider model */ private static final String PREF_KEY_PROVIDER_MOBILE_NETWORK = "provider_model_mobile_network"; private NetworkMobileProviderController mNetworkMobileProviderController; /** /** * Tracks whether the user initiated a connection via clicking in order to autoscroll to the * Tracks whether the user initiated a connection via clicking in order to autoscroll to the * network once connected. * network once connected. Loading Loading @@ -261,8 +255,6 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment mDataUsagePreference.setTemplate(NetworkTemplate.buildTemplateWifiWildcard(), mDataUsagePreference.setTemplate(NetworkTemplate.buildTemplateWifiWildcard(), 0 /*subId*/, 0 /*subId*/, null /*service*/); null /*service*/); mNetworkMobileProviderController.init(getSettingsLifecycle()); mNetworkMobileProviderController.displayPreference(getPreferenceScreen()); } } @Override @Override Loading Loading @@ -348,13 +340,6 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment } } } } @Override public void onAttach(Context context) { super.onAttach(context); mNetworkMobileProviderController = new NetworkMobileProviderController(context, PREF_KEY_PROVIDER_MOBILE_NETWORK); } @Override @Override public void onDestroyView() { public void onDestroyView() { mWorkerThread.quit(); mWorkerThread.quit(); Loading src/com/android/settings/network/SubscriptionsPreferenceController.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -41,7 +41,6 @@ import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.network.telephony.DataConnectivityListener; import com.android.settings.network.telephony.DataConnectivityListener; import com.android.settings.network.telephony.MobileNetworkActivity; import com.android.settings.network.telephony.MobileNetworkActivity; import com.android.settings.network.telephony.MobileNetworkUtils; import com.android.settings.network.telephony.MobileNetworkUtils; Loading Loading @@ -78,6 +77,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl // Map of subscription id to Preference // Map of subscription id to Preference private Map<Integer, Preference> mSubscriptionPreferences; private Map<Integer, Preference> mSubscriptionPreferences; private int mStartOrder; private int mStartOrder; /** /** * This interface lets a parent of this class know that some change happened - this could * This interface lets a parent of this class know that some change happened - this could * either be because overall availability changed, or because we've added/removed/updated some * either be because overall availability changed, or because we've added/removed/updated some Loading Loading @@ -291,7 +291,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl // subscriptions with same group UUID. // subscriptions with same group UUID. .filter(subInfo -> .filter(subInfo -> isSubscriptionCanBeDisplayed(mContext, subInfo.getSubscriptionId())) isSubscriptionCanBeDisplayed(mContext, subInfo.getSubscriptionId())) .count() >= (Utils.isProviderModelEnabled(mContext) ? 1 : 2); .count() >= 2; } } @Override @Override Loading Loading
res/xml/network_provider_settings.xml +0 −6 Original line number Original line Diff line number Diff line Loading @@ -27,12 +27,6 @@ android:key="connected_access_point" android:key="connected_access_point" android:layout="@layout/preference_category_no_label"/> android:layout="@layout/preference_category_no_label"/> <PreferenceCategory android:key="provider_model_mobile_network" android:title="@string/summary_placeholder" android:layout="@layout/preference_category_no_label" settings:controller="com.android.settings.network.NetworkMobileProviderController"/> <PreferenceCategory <PreferenceCategory android:key="access_points" android:key="access_points" android:layout="@layout/preference_category_no_label"/> android:layout="@layout/preference_category_no_label"/> Loading
src/com/android/settings/network/MultiNetworkHeaderController.java +3 −8 Original line number Original line Diff line number Diff line Loading @@ -27,14 +27,9 @@ import com.android.settings.core.BasePreferenceController; import com.android.settings.wifi.WifiConnectionPreferenceController; import com.android.settings.wifi.WifiConnectionPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle; /** // This controls a header at the top of the Network & internet page that only appears when there * This controls a header at the top of the Network & internet page that only appears when there // are two or more active mobile subscriptions. It shows an overview of available network * are two or more active mobile subscriptions. It shows an overview of available network // connections with an entry for wifi (if connected) and an entry for each subscription. * connections with an entry for wifi (if connected) and an entry for each subscription. * * TODO(tomhsu) when provider model is completed, this class will be replaced * by {@link NetworkMobileProviderController} */ public class MultiNetworkHeaderController extends BasePreferenceController implements public class MultiNetworkHeaderController extends BasePreferenceController implements WifiConnectionPreferenceController.UpdateListener, WifiConnectionPreferenceController.UpdateListener, SubscriptionsPreferenceController.UpdateListener { SubscriptionsPreferenceController.UpdateListener { Loading
src/com/android/settings/network/NetworkMobileProviderController.javadeleted 100644 → 0 +0 −118 Original line number Original line Diff line number Diff line /* * Copyright (C) 2020 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; import android.content.Context; import android.util.Log; import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceScreen; import com.android.settings.core.BasePreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; /** * This controls mobile network display of the internet page that only appears when there * are active mobile subscriptions. It shows an overview of available mobile network * connections with an entry for each subscription. * * {@link NetworkMobileProviderController} is used to show subscription status on internet * page for provider model. This original class can refer to {@link MultiNetworkHeaderController}, * */ public class NetworkMobileProviderController extends BasePreferenceController implements SubscriptionsPreferenceController.UpdateListener { private static final String TAG = NetworkMobileProviderController.class.getSimpleName(); public static final String PREF_KEY_PROVIDER_MOBILE_NETWORK = "provider_model_mobile_network"; private static final int PREFERENCE_START_ORDER = 10; private PreferenceCategory mPreferenceCategory; private PreferenceScreen mPreferenceScreen; private SubscriptionsPreferenceController mSubscriptionsController; private int mOriginalExpandedChildrenCount; public NetworkMobileProviderController(Context context, String key) { super(context, key); } /** * Initialize NetworkMobileProviderController * @param lifecycle Lifecycle of Settings */ public void init(Lifecycle lifecycle) { mSubscriptionsController = createSubscriptionsController(lifecycle); } @VisibleForTesting SubscriptionsPreferenceController createSubscriptionsController(Lifecycle lifecycle) { if (mSubscriptionsController == null) { return new SubscriptionsPreferenceController( mContext, lifecycle, this, PREF_KEY_PROVIDER_MOBILE_NETWORK, PREFERENCE_START_ORDER); } return mSubscriptionsController; } @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); if (mSubscriptionsController == null) { Log.e(TAG, "[displayPreference] SubscriptionsController is null."); return; } mPreferenceScreen = screen; mOriginalExpandedChildrenCount = mPreferenceScreen.getInitialExpandedChildrenCount(); mPreferenceCategory = screen.findPreference(PREF_KEY_PROVIDER_MOBILE_NETWORK); mPreferenceCategory.setVisible(isAvailable()); // TODO(tomhsu) For the provider model, subscriptionsController shall do more // implementation of preference type change and summary control. mSubscriptionsController.displayPreference(screen); } @Override public int getAvailabilityStatus() { if (mSubscriptionsController == null) { return CONDITIONALLY_UNAVAILABLE; } return mSubscriptionsController.isAvailable() ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } @Override public void onChildrenUpdated() { final boolean available = isAvailable(); // TODO(b/129893781) we need a better way to express where the advanced collapsing starts // for preference groups that have items dynamically added/removed in the top expanded // section. if (mOriginalExpandedChildrenCount != Integer.MAX_VALUE) { if (available) { mPreferenceScreen.setInitialExpandedChildrenCount( mOriginalExpandedChildrenCount + mPreferenceCategory.getPreferenceCount()); } else { mPreferenceScreen.setInitialExpandedChildrenCount(mOriginalExpandedChildrenCount); } } mPreferenceCategory.setVisible(available); } }
src/com/android/settings/network/NetworkProviderSettings.java +0 −15 Original line number Original line Diff line number Diff line Loading @@ -207,12 +207,6 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment DataUsagePreference mDataUsagePreference; DataUsagePreference mDataUsagePreference; private LinkablePreference mStatusMessagePreference; private LinkablePreference mStatusMessagePreference; /** * Mobile networks list for provider model */ private static final String PREF_KEY_PROVIDER_MOBILE_NETWORK = "provider_model_mobile_network"; private NetworkMobileProviderController mNetworkMobileProviderController; /** /** * Tracks whether the user initiated a connection via clicking in order to autoscroll to the * Tracks whether the user initiated a connection via clicking in order to autoscroll to the * network once connected. * network once connected. Loading Loading @@ -261,8 +255,6 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment mDataUsagePreference.setTemplate(NetworkTemplate.buildTemplateWifiWildcard(), mDataUsagePreference.setTemplate(NetworkTemplate.buildTemplateWifiWildcard(), 0 /*subId*/, 0 /*subId*/, null /*service*/); null /*service*/); mNetworkMobileProviderController.init(getSettingsLifecycle()); mNetworkMobileProviderController.displayPreference(getPreferenceScreen()); } } @Override @Override Loading Loading @@ -348,13 +340,6 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment } } } } @Override public void onAttach(Context context) { super.onAttach(context); mNetworkMobileProviderController = new NetworkMobileProviderController(context, PREF_KEY_PROVIDER_MOBILE_NETWORK); } @Override @Override public void onDestroyView() { public void onDestroyView() { mWorkerThread.quit(); mWorkerThread.quit(); Loading
src/com/android/settings/network/SubscriptionsPreferenceController.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -41,7 +41,6 @@ import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.R; import com.android.settings.Utils; import com.android.settings.network.telephony.DataConnectivityListener; import com.android.settings.network.telephony.DataConnectivityListener; import com.android.settings.network.telephony.MobileNetworkActivity; import com.android.settings.network.telephony.MobileNetworkActivity; import com.android.settings.network.telephony.MobileNetworkUtils; import com.android.settings.network.telephony.MobileNetworkUtils; Loading Loading @@ -78,6 +77,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl // Map of subscription id to Preference // Map of subscription id to Preference private Map<Integer, Preference> mSubscriptionPreferences; private Map<Integer, Preference> mSubscriptionPreferences; private int mStartOrder; private int mStartOrder; /** /** * This interface lets a parent of this class know that some change happened - this could * This interface lets a parent of this class know that some change happened - this could * either be because overall availability changed, or because we've added/removed/updated some * either be because overall availability changed, or because we've added/removed/updated some Loading Loading @@ -291,7 +291,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl // subscriptions with same group UUID. // subscriptions with same group UUID. .filter(subInfo -> .filter(subInfo -> isSubscriptionCanBeDisplayed(mContext, subInfo.getSubscriptionId())) isSubscriptionCanBeDisplayed(mContext, subInfo.getSubscriptionId())) .count() >= (Utils.isProviderModelEnabled(mContext) ? 1 : 2); .count() >= 2; } } @Override @Override Loading