diff options
author | alk3pInjection <webmaster@raspii.tech> | 2022-08-05 20:43:06 +0800 |
---|---|---|
committer | alk3pInjection <webmaster@raspii.tech> | 2022-08-05 20:43:06 +0800 |
commit | 2421590cd1bf7c844002c217f7e726a0d4887bde (patch) | |
tree | d7be99a9f5094bff3e3fce516f7e082d16242b02 | |
parent | 3008f5ade14bf5a079a565061e96900cce2dc74b (diff) | |
parent | a8f32342c189d1470647d49f63fec2cb3e86fe99 (diff) |
Merge tag 'LA.QSSI.12.0.r1-08300-qssi.0' into sugisawa-mr1HEADsugisawa-mr1
"LA.QSSI.12.0.r1-08300-qssi.0"
Change-Id: I4693d4e59416ffc3f2679fc8959757e92325b445
9 files changed, 71 insertions, 31 deletions
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml index ae4b8aa604..34ce000c53 100644 --- a/res/xml/development_settings.xml +++ b/res/xml/development_settings.xml @@ -315,7 +315,7 @@ android:title="@string/tethering_hardware_offload" android:summary="@string/tethering_hardware_offload_summary" /> - <com.android.settingslib.RestrictedSwitchPreference + <com.android.settingslib.RestrictedPreference android:key="default_usb_configuration" android:fragment="com.android.settings.connecteddevice.usb.UsbDefaultFragment" android:title="@string/usb_default_label"/> diff --git a/src/com/android/settings/development/DefaultUsbConfigurationPreferenceController.java b/src/com/android/settings/development/DefaultUsbConfigurationPreferenceController.java index be7704fd73..7c3d3b120e 100644 --- a/src/com/android/settings/development/DefaultUsbConfigurationPreferenceController.java +++ b/src/com/android/settings/development/DefaultUsbConfigurationPreferenceController.java @@ -24,7 +24,7 @@ import android.os.UserHandle; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; -import com.android.settingslib.RestrictedSwitchPreference; +import com.android.settingslib.RestrictedPreference; import com.android.settingslib.development.DeveloperOptionsPreferenceController; public class DefaultUsbConfigurationPreferenceController extends @@ -32,7 +32,7 @@ public class DefaultUsbConfigurationPreferenceController extends private static final String PREFERENCE_KEY = "default_usb_configuration"; - private RestrictedSwitchPreference mPreference; + private RestrictedPreference mPreference; public DefaultUsbConfigurationPreferenceController(Context context) { super(context); diff --git a/src/com/android/settings/development/SmartDdsSwitchPreferenceController.java b/src/com/android/settings/development/SmartDdsSwitchPreferenceController.java index d216ed40b4..0a3a167dd0 100644 --- a/src/com/android/settings/development/SmartDdsSwitchPreferenceController.java +++ b/src/com/android/settings/development/SmartDdsSwitchPreferenceController.java @@ -29,12 +29,16 @@ THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED package com.android.settings.development; +import android.content.BroadcastReceiver; import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.os.RemoteException; import android.provider.Settings; +import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.util.Log; import androidx.preference.Preference; @@ -69,6 +73,12 @@ public class SmartDdsSwitchPreferenceController extends DeveloperOptionsPreferen private boolean mFeatureAvailable = false; private boolean mServiceConnected = false; private boolean mSwitchEnabled = false; + private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + updateState(mPreference); + } + }; private SmartDdsSwitchPreferenceController(Context context) { super(context); @@ -78,6 +88,9 @@ public class SmartDdsSwitchPreferenceController extends DeveloperOptionsPreferen mTelephonyManager = mContext.getSystemService(TelephonyManager.class); mExtTelephonyManager = ExtTelephonyManager.getInstance(mContext); mExtTelephonyManager.connectService(mExtTelManagerServiceCallback); + IntentFilter filter = new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED); + filter.addAction(TelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED); + mContext.registerReceiver(mBroadcastReceiver, filter); } public static SmartDdsSwitchPreferenceController getInstance(Context context) { @@ -96,7 +109,7 @@ public class SmartDdsSwitchPreferenceController extends DeveloperOptionsPreferen private ServiceCallback mExtTelManagerServiceCallback = new ServiceCallback() { @Override public void onConnected() { - Log.d(TAG, "mExtTelManagerServiceCallback: service connected"); + Log.d(TAG, "ExtTelephonyService connected"); mServiceConnected = true; mClient = mExtTelephonyManager.registerCallback(mPackageName, mCallback); Log.d(TAG, "Client = " + mClient); @@ -104,7 +117,8 @@ public class SmartDdsSwitchPreferenceController extends DeveloperOptionsPreferen @Override public void onDisconnected() { - Log.d(TAG, "mExtTelManagerServiceCallback: service disconnected"); + Log.d(TAG, "ExtTelephonyService disconnected"); + mContext.unregisterReceiver(mBroadcastReceiver); mServiceConnected = false; mClient = null; } @@ -183,7 +197,7 @@ public class SmartDdsSwitchPreferenceController extends DeveloperOptionsPreferen if (mFeatureAvailable) { String defaultSummary = mContext.getResources().getString( R.string.smart_dds_switch_summary); - updateUi(defaultSummary, true); + updateUi(defaultSummary, isAvailable()); } else { Log.d(TAG, "Feature unavailable"); preference.setVisible(false); @@ -204,10 +218,17 @@ public class SmartDdsSwitchPreferenceController extends DeveloperOptionsPreferen @Override public boolean isAvailable() { - // Only show the toggle if more than one phone is active - int numActiveModemCount = mTelephonyManager.getActiveModemCount(); - Log.d(TAG, "numActiveModemCount: " + numActiveModemCount); - return numActiveModemCount > 1; + // Only show the toggle if 1) APM is off and 2) more than one subscription is active + SubscriptionManager subscriptionManager = mContext.getSystemService( + SubscriptionManager.class); + int numActiveSubscriptionInfoCount = subscriptionManager.getActiveSubscriptionInfoCount(); + Log.d(TAG, "numActiveSubscriptionInfoCount: " + numActiveSubscriptionInfoCount); + return !isAirplaneModeOn() && (numActiveSubscriptionInfoCount > 1); + } + + private boolean isAirplaneModeOn() { + return Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.AIRPLANE_MODE_ON, 0) != 0; } private void putSwitchValue(int state) { @@ -218,4 +239,4 @@ public class SmartDdsSwitchPreferenceController extends DeveloperOptionsPreferen return Settings.Global.getInt(mContext.getContentResolver(), getPreferenceKey(), SETTING_VALUE_OFF); } -} +}
\ No newline at end of file diff --git a/src/com/android/settings/network/PrivateDnsPreferenceController.java b/src/com/android/settings/network/PrivateDnsPreferenceController.java index 07d57140ec..ed6f9ed955 100644 --- a/src/com/android/settings/network/PrivateDnsPreferenceController.java +++ b/src/com/android/settings/network/PrivateDnsPreferenceController.java @@ -85,9 +85,12 @@ public class PrivateDnsPreferenceController extends BasePreferenceController @Override public int getAvailabilityStatus() { - return mContext.getResources().getBoolean(R.bool.config_show_private_dns_settings) - ? AVAILABLE - : UNSUPPORTED_ON_DEVICE; + if (!mContext.getResources().getBoolean(R.bool.config_show_private_dns_settings)) { + return UNSUPPORTED_ON_DEVICE; + } + final UserManager userManager = mContext.getSystemService(UserManager.class); + if (userManager.isGuestUser()) return DISABLED_FOR_USER; + return AVAILABLE; } @Override diff --git a/src/com/android/settings/network/telephony/NetworkScanHelper.java b/src/com/android/settings/network/telephony/NetworkScanHelper.java index 081a4978ab..cd686db046 100644 --- a/src/com/android/settings/network/telephony/NetworkScanHelper.java +++ b/src/com/android/settings/network/telephony/NetworkScanHelper.java @@ -232,20 +232,20 @@ public class NetworkScanHelper { if (mNetworkScanRequester != null) { mNetworkScanRequester.stopScan(); mNetworkScanRequester = null; - } - - try { - int slotIndex = mTelephonyManager.getSlotIndex(); - if (slotIndex >= 0 && slotIndex < mTelephonyManager.getActiveModemCount()) { - TelephonyUtils.abortIncrementalScan(mContext, slotIndex); - } else { - Log.d(TAG, "slotIndex is invalid, skipping abort"); + } else { + try { + int slotIndex = mTelephonyManager.getSlotIndex(); + if (slotIndex >= 0 && slotIndex < mTelephonyManager.getActiveModemCount()) { + TelephonyUtils.abortIncrementalScan(mContext, slotIndex); + } else { + Log.d(TAG, "slotIndex is invalid, skipping abort"); + } + mContext.unregisterReceiver(mLegacyIncrScanReceiver); + } catch (NullPointerException ex) { + Log.e(TAG, "abortIncrementalScan Exception: ", ex); + } catch (IllegalArgumentException ex) { + Log.e(TAG, "IllegalArgumentException"); } - mContext.unregisterReceiver(mLegacyIncrScanReceiver); - } catch (NullPointerException ex) { - Log.e(TAG, "abortIncrementalScan Exception: ", ex); - } catch (IllegalArgumentException ex) { - Log.e(TAG, "IllegalArgumentException"); } } diff --git a/src/com/android/settings/network/telephony/UserPLMNEditorActivity.java b/src/com/android/settings/network/telephony/UserPLMNEditorActivity.java index 47e0836dda..dfac3fa180 100755 --- a/src/com/android/settings/network/telephony/UserPLMNEditorActivity.java +++ b/src/com/android/settings/network/telephony/UserPLMNEditorActivity.java @@ -40,6 +40,7 @@ import android.content.Intent; import android.content.IntentFilter; import android.text.InputType; import android.text.Editable; +import android.text.TextUtils; import android.text.TextWatcher; import android.view.Menu; import android.view.MenuItem; @@ -318,7 +319,9 @@ public class UserPLMNEditorActivity extends PreferenceActivity implements Log.d(LOG_TAG, "plmn = " + plmn); String[] CuPlmnArray = getResources().getStringArray(R.array.uplmn_cu_mcc_mnc_values); for (String CuPlmn : CuPlmnArray) { - if (plmn.equals(CuPlmn)) return R.array.uplmn_prefer_network_mode_w_choices; + if (!TextUtils.isEmpty(plmn) && plmn.equals(CuPlmn)) { + return R.array.uplmn_prefer_network_mode_w_choices; + } } return R.array.uplmn_prefer_network_mode_td_choices; } diff --git a/src/com/android/settings/network/telephony/UserPLMNListActivity.java b/src/com/android/settings/network/telephony/UserPLMNListActivity.java index 283b1b4bf8..a49ce87e43 100755 --- a/src/com/android/settings/network/telephony/UserPLMNListActivity.java +++ b/src/com/android/settings/network/telephony/UserPLMNListActivity.java @@ -598,7 +598,9 @@ public class UserPLMNListActivity extends PreferenceActivity list.add(mUPLMNList.get(i)); } - list.remove(position); + if (position >= 0) { + list.remove(position); + } network.setOperatorNumeric(null); list.add(network); diff --git a/tests/robotests/src/com/android/settings/development/DefaultUsbConfigurationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DefaultUsbConfigurationPreferenceControllerTest.java index c9b13e27a0..a386473020 100644 --- a/tests/robotests/src/com/android/settings/development/DefaultUsbConfigurationPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/DefaultUsbConfigurationPreferenceControllerTest.java @@ -32,7 +32,7 @@ import android.os.UserHandle; import androidx.preference.PreferenceScreen; import com.android.settingslib.RestrictedLockUtils; -import com.android.settingslib.RestrictedSwitchPreference; +import com.android.settingslib.RestrictedPreference; import org.junit.Before; import org.junit.Test; @@ -48,7 +48,7 @@ public class DefaultUsbConfigurationPreferenceControllerTest { private static final ComponentName TEST_COMPONENT_NAME = new ComponentName("test", "test"); @Mock - private RestrictedSwitchPreference mPreference; + private RestrictedPreference mPreference; @Mock private PreferenceScreen mPreferenceScreen; @Mock diff --git a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java index e31d959622..057b6cbf0b 100644 --- a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java @@ -26,6 +26,7 @@ import static androidx.lifecycle.Lifecycle.Event.ON_START; import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import static com.android.settings.core.BasePreferenceController.AVAILABLE; +import static com.android.settings.core.BasePreferenceController.DISABLED_FOR_USER; import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.google.common.truth.Truth.assertThat; @@ -35,6 +36,7 @@ import static org.mockito.ArgumentMatchers.nullable; import static org.mockito.Mockito.CALLS_REAL_METHODS; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.spy; @@ -109,6 +111,8 @@ public class PrivateDnsPreferenceControllerTest { private Network mNetwork; @Mock private Preference mPreference; + @Mock + private UserManager mUserManager; @Captor private ArgumentCaptor<NetworkCallback> mCallbackCaptor; private PrivateDnsPreferenceController mController; @@ -127,6 +131,7 @@ public class PrivateDnsPreferenceControllerTest { mShadowContentResolver = Shadow.extract(mContentResolver); when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE)) .thenReturn(mConnectivityManager); + when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager); doNothing().when(mConnectivityManager).registerDefaultNetworkCallback( mCallbackCaptor.capture(), nullable(Handler.class)); @@ -174,6 +179,12 @@ public class PrivateDnsPreferenceControllerTest { } @Test + public void getAvailabilityStatus_disabledForGuestUser() { + doReturn(true).when(mUserManager).isGuestUser(); + assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_FOR_USER); + } + + @Test public void goThroughLifecycle_shouldRegisterUnregisterSettingsObserver() { mLifecycle.handleLifecycleEvent(ON_START); verify(mContext, atLeastOnce()).getContentResolver(); |