Loading res/values/strings.xml +6 −0 Original line number Diff line number Diff line Loading @@ -13047,6 +13047,12 @@ <string name="to_switch_networks_disconnect_ethernet">To switch networks, disconnect ethernet</string> <!-- Panel subtitle for Wi-Fi turned on. [CHAR LIMIT=60] --> <string name="wifi_is_turned_on_subtitle">Wi\u2011Fi is turned on</string> <!-- Title for merged carrier Wi-Fi offload toggle. [CHAR LIMIT=NONE] --> <string name="carrier_wifi_offload_title">W+ connections</string> <!-- Summary for merged carrier Wi-Fi offload toggle. [CHAR LIMIT=NONE] --> <string name="carrier_wifi_offload_summary">Allow Google Fi to use W+ networks to improve speed and coverage</string> <!-- Title for merged carrier Wi-Fi network information. [CHAR LIMIT=NONE] --> <string name="carrier_wifi_network_title">W+ network</string> <!-- Summary text separator for preferences including a short description (eg. "Connected / 5G"). [CHAR LIMIT=50] --> res/xml/mobile_network_settings.xml +11 −2 Original line number Diff line number Diff line Loading @@ -16,8 +16,7 @@ <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:settings="http://schemas.android.com/apk/res-auto" android:key="mobile_network_pref_screen" settings:initialExpandedChildrenCount="8"> android:key="mobile_network_pref_screen"> <com.android.settings.widget.SettingsMainSwitchPreference android:key="use_sim_switch" Loading Loading @@ -78,6 +77,16 @@ android:title="@string/billing_cycle" settings:controller="com.android.settings.datausage.BillingCyclePreferenceController"/> <SwitchPreference android:key="carrier_wifi_toggle" android:title="@string/carrier_wifi_offload_title" android:summary="@string/carrier_wifi_offload_summary" settings:controller="com.android.settings.network.CarrierWifiTogglePreferenceController"/> <Preference android:key="carrier_wifi_network" android:title="@string/carrier_wifi_network_title"/> <SwitchPreference android:key="mms_message" android:title="@string/mms_message_title" Loading src/com/android/settings/network/CarrierWifiTogglePreferenceController.java 0 → 100644 +134 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 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 androidx.lifecycle.Lifecycle; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.Utils; import com.android.settings.core.TogglePreferenceController; import com.android.settings.wifi.WifiPickerTrackerHelper; import com.android.wifitrackerlib.WifiPickerTracker; /** * Preference controller for "Carrier Wi-Fi network" */ public class CarrierWifiTogglePreferenceController extends TogglePreferenceController implements WifiPickerTracker.WifiPickerTrackerCallback { private static final String TAG = "CarrierWifiTogglePreferenceController"; protected static final String CARRIER_WIFI_TOGGLE_PREF_KEY = "carrier_wifi_toggle"; protected static final String CARRIER_WIFI_NETWORK_PREF_KEY = "carrier_wifi_network"; protected final Context mContext; protected boolean mIsProviderModelEnabled; protected int mSubId; protected WifiPickerTrackerHelper mWifiPickerTrackerHelper; protected boolean mIsCarrierProvisionWifiEnabled; protected Preference mCarrierNetworkPreference; public CarrierWifiTogglePreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); mContext = context; mIsProviderModelEnabled = Utils.isProviderModelEnabled(context); } /** Initialize related properties */ public void init(Lifecycle lifecycle, int subId) { mSubId = subId; mWifiPickerTrackerHelper = new WifiPickerTrackerHelper(lifecycle, mContext, this); mIsCarrierProvisionWifiEnabled = mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(mSubId); } @Override public int getAvailabilityStatus() { if (!mIsProviderModelEnabled) { return CONDITIONALLY_UNAVAILABLE; } return mIsCarrierProvisionWifiEnabled ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } @Override public boolean isChecked() { return mWifiPickerTrackerHelper.isCarrierNetworkEnabled(mSubId); } @Override public boolean setChecked(boolean isChecked) { if (mWifiPickerTrackerHelper == null) { return false; } mWifiPickerTrackerHelper.setCarrierNetworkEnabled(isChecked); updateCarrierNetworkPreference(isChecked); return true; } @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mCarrierNetworkPreference = screen.findPreference(CARRIER_WIFI_NETWORK_PREF_KEY); updateCarrierNetworkPreference(isChecked()); } @Override public void onWifiStateChanged() { if (mCarrierNetworkPreference != null && mCarrierNetworkPreference.isVisible()) { mCarrierNetworkPreference.setSummary(getCarrierNetworkSsid()); } } @Override public void onWifiEntriesChanged() { if (mCarrierNetworkPreference != null && mCarrierNetworkPreference.isVisible()) { mCarrierNetworkPreference.setSummary(getCarrierNetworkSsid()); } } @Override public void onNumSavedNetworksChanged() { // Do nothing } @Override public void onNumSavedSubscriptionsChanged() { // Do nothing } protected void updateCarrierNetworkPreference(boolean isCarrierNetworkEnabled) { if (mCarrierNetworkPreference == null) { return; } if (!isCarrierNetworkEnabled || getAvailabilityStatus() != AVAILABLE) { mCarrierNetworkPreference.setVisible(false); return; } mCarrierNetworkPreference.setVisible(true); mCarrierNetworkPreference.setSummary(getCarrierNetworkSsid()); } protected String getCarrierNetworkSsid() { if (mWifiPickerTrackerHelper == null) { return null; } return mWifiPickerTrackerHelper.getCarrierNetworkSsid(); } } src/com/android/settings/network/telephony/MobileDataDialogFragment.java +4 −2 Original line number Diff line number Diff line Loading @@ -131,7 +131,8 @@ public class MobileDataDialogFragment extends InstrumentedDialogFragment impleme case TYPE_DISABLE_DIALOG: MobileNetworkUtils.setMobileDataEnabled(getContext(), mSubId, false /* enabled */, false /* disableOtherSubscriptions */); if (mWifiPickerTrackerHelper != null) { if (mWifiPickerTrackerHelper != null && !mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(mSubId)) { mWifiPickerTrackerHelper.setCarrierNetworkEnabled(false); } break; Loading @@ -139,7 +140,8 @@ public class MobileDataDialogFragment extends InstrumentedDialogFragment impleme mSubscriptionManager.setDefaultDataSubId(mSubId); MobileNetworkUtils.setMobileDataEnabled(getContext(), mSubId, true /* enabled */, true /* disableOtherSubscriptions */); if (mWifiPickerTrackerHelper != null) { if (mWifiPickerTrackerHelper != null && !mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(mSubId)) { mWifiPickerTrackerHelper.setCarrierNetworkEnabled(true); } break; Loading src/com/android/settings/network/telephony/MobileDataPreferenceController.java +2 −1 Original line number Diff line number Diff line Loading @@ -110,7 +110,8 @@ public class MobileDataPreferenceController extends TelephonyTogglePreferenceCon if (!mNeedDialog) { // Update data directly if we don't need dialog MobileNetworkUtils.setMobileDataEnabled(mContext, mSubId, isChecked, false); if (mWifiPickerTrackerHelper != null) { if (mWifiPickerTrackerHelper != null && !mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(mSubId)) { mWifiPickerTrackerHelper.setCarrierNetworkEnabled(isChecked); } return true; Loading Loading
res/values/strings.xml +6 −0 Original line number Diff line number Diff line Loading @@ -13047,6 +13047,12 @@ <string name="to_switch_networks_disconnect_ethernet">To switch networks, disconnect ethernet</string> <!-- Panel subtitle for Wi-Fi turned on. [CHAR LIMIT=60] --> <string name="wifi_is_turned_on_subtitle">Wi\u2011Fi is turned on</string> <!-- Title for merged carrier Wi-Fi offload toggle. [CHAR LIMIT=NONE] --> <string name="carrier_wifi_offload_title">W+ connections</string> <!-- Summary for merged carrier Wi-Fi offload toggle. [CHAR LIMIT=NONE] --> <string name="carrier_wifi_offload_summary">Allow Google Fi to use W+ networks to improve speed and coverage</string> <!-- Title for merged carrier Wi-Fi network information. [CHAR LIMIT=NONE] --> <string name="carrier_wifi_network_title">W+ network</string> <!-- Summary text separator for preferences including a short description (eg. "Connected / 5G"). [CHAR LIMIT=50] -->
res/xml/mobile_network_settings.xml +11 −2 Original line number Diff line number Diff line Loading @@ -16,8 +16,7 @@ <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:settings="http://schemas.android.com/apk/res-auto" android:key="mobile_network_pref_screen" settings:initialExpandedChildrenCount="8"> android:key="mobile_network_pref_screen"> <com.android.settings.widget.SettingsMainSwitchPreference android:key="use_sim_switch" Loading Loading @@ -78,6 +77,16 @@ android:title="@string/billing_cycle" settings:controller="com.android.settings.datausage.BillingCyclePreferenceController"/> <SwitchPreference android:key="carrier_wifi_toggle" android:title="@string/carrier_wifi_offload_title" android:summary="@string/carrier_wifi_offload_summary" settings:controller="com.android.settings.network.CarrierWifiTogglePreferenceController"/> <Preference android:key="carrier_wifi_network" android:title="@string/carrier_wifi_network_title"/> <SwitchPreference android:key="mms_message" android:title="@string/mms_message_title" Loading
src/com/android/settings/network/CarrierWifiTogglePreferenceController.java 0 → 100644 +134 −0 Original line number Diff line number Diff line /* * Copyright (C) 2021 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 androidx.lifecycle.Lifecycle; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.Utils; import com.android.settings.core.TogglePreferenceController; import com.android.settings.wifi.WifiPickerTrackerHelper; import com.android.wifitrackerlib.WifiPickerTracker; /** * Preference controller for "Carrier Wi-Fi network" */ public class CarrierWifiTogglePreferenceController extends TogglePreferenceController implements WifiPickerTracker.WifiPickerTrackerCallback { private static final String TAG = "CarrierWifiTogglePreferenceController"; protected static final String CARRIER_WIFI_TOGGLE_PREF_KEY = "carrier_wifi_toggle"; protected static final String CARRIER_WIFI_NETWORK_PREF_KEY = "carrier_wifi_network"; protected final Context mContext; protected boolean mIsProviderModelEnabled; protected int mSubId; protected WifiPickerTrackerHelper mWifiPickerTrackerHelper; protected boolean mIsCarrierProvisionWifiEnabled; protected Preference mCarrierNetworkPreference; public CarrierWifiTogglePreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); mContext = context; mIsProviderModelEnabled = Utils.isProviderModelEnabled(context); } /** Initialize related properties */ public void init(Lifecycle lifecycle, int subId) { mSubId = subId; mWifiPickerTrackerHelper = new WifiPickerTrackerHelper(lifecycle, mContext, this); mIsCarrierProvisionWifiEnabled = mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(mSubId); } @Override public int getAvailabilityStatus() { if (!mIsProviderModelEnabled) { return CONDITIONALLY_UNAVAILABLE; } return mIsCarrierProvisionWifiEnabled ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; } @Override public boolean isChecked() { return mWifiPickerTrackerHelper.isCarrierNetworkEnabled(mSubId); } @Override public boolean setChecked(boolean isChecked) { if (mWifiPickerTrackerHelper == null) { return false; } mWifiPickerTrackerHelper.setCarrierNetworkEnabled(isChecked); updateCarrierNetworkPreference(isChecked); return true; } @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mCarrierNetworkPreference = screen.findPreference(CARRIER_WIFI_NETWORK_PREF_KEY); updateCarrierNetworkPreference(isChecked()); } @Override public void onWifiStateChanged() { if (mCarrierNetworkPreference != null && mCarrierNetworkPreference.isVisible()) { mCarrierNetworkPreference.setSummary(getCarrierNetworkSsid()); } } @Override public void onWifiEntriesChanged() { if (mCarrierNetworkPreference != null && mCarrierNetworkPreference.isVisible()) { mCarrierNetworkPreference.setSummary(getCarrierNetworkSsid()); } } @Override public void onNumSavedNetworksChanged() { // Do nothing } @Override public void onNumSavedSubscriptionsChanged() { // Do nothing } protected void updateCarrierNetworkPreference(boolean isCarrierNetworkEnabled) { if (mCarrierNetworkPreference == null) { return; } if (!isCarrierNetworkEnabled || getAvailabilityStatus() != AVAILABLE) { mCarrierNetworkPreference.setVisible(false); return; } mCarrierNetworkPreference.setVisible(true); mCarrierNetworkPreference.setSummary(getCarrierNetworkSsid()); } protected String getCarrierNetworkSsid() { if (mWifiPickerTrackerHelper == null) { return null; } return mWifiPickerTrackerHelper.getCarrierNetworkSsid(); } }
src/com/android/settings/network/telephony/MobileDataDialogFragment.java +4 −2 Original line number Diff line number Diff line Loading @@ -131,7 +131,8 @@ public class MobileDataDialogFragment extends InstrumentedDialogFragment impleme case TYPE_DISABLE_DIALOG: MobileNetworkUtils.setMobileDataEnabled(getContext(), mSubId, false /* enabled */, false /* disableOtherSubscriptions */); if (mWifiPickerTrackerHelper != null) { if (mWifiPickerTrackerHelper != null && !mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(mSubId)) { mWifiPickerTrackerHelper.setCarrierNetworkEnabled(false); } break; Loading @@ -139,7 +140,8 @@ public class MobileDataDialogFragment extends InstrumentedDialogFragment impleme mSubscriptionManager.setDefaultDataSubId(mSubId); MobileNetworkUtils.setMobileDataEnabled(getContext(), mSubId, true /* enabled */, true /* disableOtherSubscriptions */); if (mWifiPickerTrackerHelper != null) { if (mWifiPickerTrackerHelper != null && !mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(mSubId)) { mWifiPickerTrackerHelper.setCarrierNetworkEnabled(true); } break; Loading
src/com/android/settings/network/telephony/MobileDataPreferenceController.java +2 −1 Original line number Diff line number Diff line Loading @@ -110,7 +110,8 @@ public class MobileDataPreferenceController extends TelephonyTogglePreferenceCon if (!mNeedDialog) { // Update data directly if we don't need dialog MobileNetworkUtils.setMobileDataEnabled(mContext, mSubId, isChecked, false); if (mWifiPickerTrackerHelper != null) { if (mWifiPickerTrackerHelper != null && !mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(mSubId)) { mWifiPickerTrackerHelper.setCarrierNetworkEnabled(isChecked); } return true; Loading