summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Tom Hsu <tomhsu@google.com> 2024-12-06 19:12:36 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-12-06 19:12:36 +0000
commit4ebe13b1232bf3ee5641945ae14c280fa061729c (patch)
treeb35b1493c4827e4ad5ccfb8154da98142d1c2251
parent319ca84db64db86daa7d68b99c0ee4531d1c722d (diff)
parentb91f29b93382886e46833c4fe9793a86d9a95031 (diff)
Merge "Improve binder call usage and UI adjustment" into main
-rw-r--r--packages/SystemUI/res/layout/internet_connectivity_dialog.xml3
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java44
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegate.java17
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateControllerTest.java36
4 files changed, 63 insertions, 37 deletions
diff --git a/packages/SystemUI/res/layout/internet_connectivity_dialog.xml b/packages/SystemUI/res/layout/internet_connectivity_dialog.xml
index 2b40df47667a..5922a7dcdcf0 100644
--- a/packages/SystemUI/res/layout/internet_connectivity_dialog.xml
+++ b/packages/SystemUI/res/layout/internet_connectivity_dialog.xml
@@ -149,7 +149,8 @@
android:clickable="false"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:gravity="start|center_vertical">
+ android:minHeight="72dp"
+ android:gravity="center_vertical">
<TextView
android:id="@+id/mobile_title"
android:maxLines="1"
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java
index bed802163b1a..dbe1ae90b3f6 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java
@@ -195,8 +195,11 @@ public class InternetDialogController implements AccessPointController.AccessPoi
private boolean mHasWifiEntries;
private WifiStateWorker mWifiStateWorker;
private boolean mHasActiveSubIdOnDds;
+ private boolean mIsMobileDataEnabled = false;
@VisibleForTesting
+ Map<Integer, ServiceState> mSubIdServiceState = new HashMap<>();
+ @VisibleForTesting
static final float TOAST_PARAMS_HORIZONTAL_WEIGHT = 1.0f;
@VisibleForTesting
static final float TOAST_PARAMS_VERTICAL_WEIGHT = 1.0f;
@@ -453,7 +456,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi
return mContext.getText(SUBTITLE_TEXT_ALL_CARRIER_NETWORK_UNAVAILABLE);
}
- if (mCanConfigWifi && !isMobileDataEnabled()) {
+ if (mCanConfigWifi && !mIsMobileDataEnabled) {
if (DEBUG) {
Log.d(TAG, "Mobile data off");
}
@@ -551,7 +554,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi
numLevels += 1;
}
return getSignalStrengthIcon(subId, mContext, level, numLevels, NO_CELL_DATA_TYPE_ICON,
- !isMobileDataEnabled());
+ !mIsMobileDataEnabled);
}
Drawable getSignalStrengthIcon(int subId, Context context, int level, int numLevels,
@@ -681,6 +684,12 @@ public class InternetDialogController implements AccessPointController.AccessPoi
// sets the non-DDS to be not found to hide its visual
return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
}
+ int activeDataSubId = SubscriptionManager.getActiveDataSubscriptionId();
+ if (activeDataSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID
+ || mDefaultDataSubId == activeDataSubId) {
+ return SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
SubscriptionInfo subInfo = mSubscriptionManager.getActiveSubscriptionInfo(
SubscriptionManager.getActiveDataSubscriptionId());
if (subInfo != null && subInfo.getSubscriptionId() != mDefaultDataSubId
@@ -740,7 +749,6 @@ public class InternetDialogController implements AccessPointController.AccessPoi
if (!isMobileDataEnabled()) {
return context.getString(R.string.mobile_data_off_summary);
}
-
String summary = networkTypeDescription;
boolean isForDds = subId == mDefaultDataSubId;
int activeSubId = getActiveAutoSwitchNonDdsSubId();
@@ -753,8 +761,8 @@ public class InternetDialogController implements AccessPointController.AccessPoi
context.getString(
isForDds // if nonDds is active, explains Dds status as poor connection
? (isOnNonDds ? R.string.mobile_data_poor_connection
- : R.string.mobile_data_connection_active)
- : R.string.mobile_data_temp_connection_active),
+ : R.string.mobile_data_connection_active)
+ : R.string.mobile_data_temp_connection_active),
networkTypeDescription);
} else if (!isDataStateInService(subId)) {
summary = context.getString(R.string.mobile_data_no_connection);
@@ -963,10 +971,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi
* Return {@code true} if mobile data is enabled
*/
boolean isMobileDataEnabled() {
- if (mTelephonyManager == null || !mTelephonyManager.isDataEnabled()) {
- return false;
- }
- return true;
+ return mIsMobileDataEnabled;
}
/**
@@ -1019,8 +1024,8 @@ public class InternetDialogController implements AccessPointController.AccessPoi
}
boolean isDataStateInService(int subId) {
- TelephonyManager tm = mSubIdTelephonyManagerMap.getOrDefault(subId, mTelephonyManager);
- final ServiceState serviceState = tm.getServiceState();
+ final ServiceState serviceState = mSubIdServiceState.getOrDefault(subId,
+ new ServiceState());
NetworkRegistrationInfo regInfo =
(serviceState == null) ? null : serviceState.getNetworkRegistrationInfo(
NetworkRegistrationInfo.DOMAIN_PS,
@@ -1036,8 +1041,8 @@ public class InternetDialogController implements AccessPointController.AccessPoi
return false;
}
- TelephonyManager tm = mSubIdTelephonyManagerMap.getOrDefault(subId, mTelephonyManager);
- final ServiceState serviceState = tm.getServiceState();
+ final ServiceState serviceState = mSubIdServiceState.getOrDefault(subId,
+ new ServiceState());
return serviceState != null
&& serviceState.getState() == serviceState.STATE_IN_SERVICE;
}
@@ -1056,6 +1061,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi
final Network activeNetwork = mConnectivityManager.getActiveNetwork();
if (activeNetwork == null) {
+ Log.d(TAG, "getActiveNetwork is null.");
return false;
}
final NetworkCapabilities networkCapabilities =
@@ -1183,14 +1189,16 @@ public class InternetDialogController implements AccessPointController.AccessPoi
}
private class InternetTelephonyCallback extends TelephonyCallback implements
+ TelephonyCallback.DataEnabledListener,
TelephonyCallback.DataConnectionStateListener,
TelephonyCallback.DisplayInfoListener,
TelephonyCallback.ServiceStateListener,
TelephonyCallback.SignalStrengthsListener,
TelephonyCallback.UserMobileDataStateListener,
- TelephonyCallback.CarrierNetworkListener{
+ TelephonyCallback.CarrierNetworkListener {
private final int mSubId;
+
private InternetTelephonyCallback(int subId) {
mSubId = subId;
}
@@ -1200,6 +1208,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi
if (mCallback != null) {
mCallback.onServiceStateChanged(serviceState);
}
+ mSubIdServiceState.put(mSubId, serviceState);
}
@Override
@@ -1238,6 +1247,13 @@ public class InternetDialogController implements AccessPointController.AccessPoi
mCallback.onCarrierNetworkChange(active);
}
}
+
+ @Override
+ public void onDataEnabledChanged(boolean b, int i) {
+ if (mSubId == mDefaultDataSubId) {
+ mIsMobileDataEnabled = b;
+ }
+ }
}
private class InternetOnSubscriptionChangedListener
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegate.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegate.java
index 0ab533bb9838..378d553065e0 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegate.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegate.java
@@ -416,9 +416,10 @@ public class InternetDialogDelegate implements
internetContent.mHasEthernet = mInternetDialogController.hasEthernet();
internetContent.mIsWifiEnabled = mInternetDialogController.isWifiEnabled();
internetContent.mHasActiveSubIdOnDds = mInternetDialogController.hasActiveSubIdOnDds();
- internetContent.mIsMobileDataEnabled = mInternetDialogController.isMobileDataEnabled();
internetContent.mIsDeviceLocked = mInternetDialogController.isDeviceLocked();
internetContent.mIsWifiScanEnabled = mInternetDialogController.isWifiScanEnabled();
+ internetContent.mActiveAutoSwitchNonDdsSubId =
+ mInternetDialogController.getActiveAutoSwitchNonDdsSubId();
return internetContent;
}
@@ -433,7 +434,11 @@ public class InternetDialogDelegate implements
private void setOnClickListener(SystemUIDialog dialog) {
mMobileNetworkLayout.setOnClickListener(v -> {
- int autoSwitchNonDdsSubId = mInternetDialogController.getActiveAutoSwitchNonDdsSubId();
+ int autoSwitchNonDdsSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ if (mDataInternetContent.getValue() != null) {
+ autoSwitchNonDdsSubId =
+ mDataInternetContent.getValue().mActiveAutoSwitchNonDdsSubId;
+ }
if (autoSwitchNonDdsSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
showTurnOffAutoDataSwitchDialog(dialog, autoSwitchNonDdsSubId);
}
@@ -524,7 +529,7 @@ public class InternetDialogDelegate implements
}
} else {
mMobileNetworkLayout.setVisibility(View.VISIBLE);
- mMobileDataToggle.setChecked(internetContent.mIsMobileDataEnabled);
+ mMobileDataToggle.setChecked(mInternetDialogController.isMobileDataEnabled());
mMobileTitleText.setText(getMobileNetworkTitle(mDefaultDataSubId));
String summary = getMobileNetworkSummary(mDefaultDataSubId);
if (!TextUtils.isEmpty(summary)) {
@@ -549,9 +554,9 @@ public class InternetDialogDelegate implements
? R.color.connected_network_primary_color
: R.color.disconnected_network_primary_color;
mMobileToggleDivider.setBackgroundColor(dialog.getContext().getColor(primaryColor));
-
// Display the info for the non-DDS if it's actively being used
- int autoSwitchNonDdsSubId = mInternetDialogController.getActiveAutoSwitchNonDdsSubId();
+ int autoSwitchNonDdsSubId = internetContent.mActiveAutoSwitchNonDdsSubId;
+
int nonDdsVisibility = autoSwitchNonDdsSubId
!= SubscriptionManager.INVALID_SUBSCRIPTION_ID ? View.VISIBLE : View.GONE;
@@ -983,8 +988,8 @@ public class InternetDialogDelegate implements
boolean mIsCarrierNetworkActive = false;
boolean mIsWifiEnabled = false;
boolean mHasActiveSubIdOnDds = false;
- boolean mIsMobileDataEnabled = false;
boolean mIsDeviceLocked = false;
boolean mIsWifiScanEnabled = false;
+ int mActiveAutoSwitchNonDdsSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateControllerTest.java
index 5ada2f3fd63d..b26f0a6e71a3 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogDelegateControllerTest.java
@@ -260,7 +260,8 @@ public class InternetDialogDelegateControllerTest extends SysuiTestCase {
@Test
public void connectCarrierNetwork_mergedCarrierEntryCanConnect_connectAndCreateSysUiToast() {
- when(mTelephonyManager.isDataEnabled()).thenReturn(true);
+ InternetDialogController spyController = spy(mInternetDialogController);
+ when(spyController.isMobileDataEnabled()).thenReturn(true);
when(mKeyguardStateController.isUnlocked()).thenReturn(true);
when(mConnectivityManager.getActiveNetwork()).thenReturn(mNetwork);
when(mConnectivityManager.getNetworkCapabilities(mNetwork))
@@ -272,7 +273,7 @@ public class InternetDialogDelegateControllerTest extends SysuiTestCase {
mTestableResources.addOverride(R.string.wifi_wont_autoconnect_for_now,
TOAST_MESSAGE_STRING);
- mInternetDialogController.connectCarrierNetwork();
+ spyController.connectCarrierNetwork();
verify(mMergedCarrierEntry).connect(null /* callback */, false /* showToast */);
verify(mToastFactory).createToast(any(), any(), eq(TOAST_MESSAGE_STRING), anyString(),
@@ -281,11 +282,12 @@ public class InternetDialogDelegateControllerTest extends SysuiTestCase {
@Test
public void connectCarrierNetwork_mergedCarrierEntryCanConnect_doNothingWhenSettingsOff() {
- when(mTelephonyManager.isDataEnabled()).thenReturn(false);
-
+ InternetDialogController spyController = spy(mInternetDialogController);
+ when(spyController.isMobileDataEnabled()).thenReturn(false);
mTestableResources.addOverride(R.string.wifi_wont_autoconnect_for_now,
TOAST_MESSAGE_STRING);
- mInternetDialogController.connectCarrierNetwork();
+
+ spyController.connectCarrierNetwork();
verify(mMergedCarrierEntry, never()).connect(null /* callback */, false /* showToast */);
verify(mToastFactory, never()).createToast(any(), any(), anyString(), anyString(), anyInt(),
@@ -294,12 +296,13 @@ public class InternetDialogDelegateControllerTest extends SysuiTestCase {
@Test
public void connectCarrierNetwork_mergedCarrierEntryCanConnect_doNothingWhenKeyguardLocked() {
- when(mTelephonyManager.isDataEnabled()).thenReturn(true);
+ InternetDialogController spyController = spy(mInternetDialogController);
+ when(spyController.isMobileDataEnabled()).thenReturn(true);
when(mKeyguardStateController.isUnlocked()).thenReturn(false);
mTestableResources.addOverride(R.string.wifi_wont_autoconnect_for_now,
TOAST_MESSAGE_STRING);
- mInternetDialogController.connectCarrierNetwork();
+ spyController.connectCarrierNetwork();
verify(mMergedCarrierEntry, never()).connect(null /* callback */, false /* showToast */);
verify(mToastFactory, never()).createToast(any(), any(), anyString(), anyString(), anyInt(),
@@ -308,7 +311,8 @@ public class InternetDialogDelegateControllerTest extends SysuiTestCase {
@Test
public void connectCarrierNetwork_mergedCarrierEntryCanConnect_doNothingWhenMobileIsPrimary() {
- when(mTelephonyManager.isDataEnabled()).thenReturn(true);
+ InternetDialogController spyController = spy(mInternetDialogController);
+ when(spyController.isMobileDataEnabled()).thenReturn(true);
when(mKeyguardStateController.isUnlocked()).thenReturn(true);
when(mConnectivityManager.getActiveNetwork()).thenReturn(mNetwork);
when(mConnectivityManager.getNetworkCapabilities(mNetwork))
@@ -446,10 +450,9 @@ public class InternetDialogDelegateControllerTest extends SysuiTestCase {
when(mWifiStateWorker.isWifiEnabled()).thenReturn(true);
spyController.onAccessPointsChanged(null /* accessPoints */);
- doReturn(SUB_ID2).when(spyController).getActiveAutoSwitchNonDdsSubId();
+ doReturn(SUB_ID).when(spyController).getActiveAutoSwitchNonDdsSubId();
doReturn(ServiceState.STATE_OUT_OF_SERVICE).when(mServiceState).getState();
- doReturn(mServiceState).when(mTelephonyManager).getServiceState();
- doReturn(TelephonyManager.DATA_DISCONNECTED).when(mTelephonyManager).getDataState();
+ spyController.mSubIdServiceState.put(SUB_ID2, mServiceState);
assertFalse(TextUtils.equals(spyController.getSubtitleText(false),
getResourcesString("all_network_unavailable")));
@@ -469,8 +472,7 @@ public class InternetDialogDelegateControllerTest extends SysuiTestCase {
spyController.onAccessPointsChanged(null /* accessPoints */);
doReturn(ServiceState.STATE_OUT_OF_SERVICE).when(mServiceState).getState();
- doReturn(mServiceState).when(mTelephonyManager).getServiceState();
- doReturn(TelephonyManager.DATA_DISCONNECTED).when(mTelephonyManager).getDataState();
+ spyController.mSubIdServiceState.put(SUB_ID, mServiceState);
assertTrue(TextUtils.equals(spyController.getSubtitleText(false),
getResourcesString("all_network_unavailable")));
@@ -487,11 +489,10 @@ public class InternetDialogDelegateControllerTest extends SysuiTestCase {
fakeAirplaneModeEnabled(false);
when(mWifiStateWorker.isWifiEnabled()).thenReturn(true);
mInternetDialogController.onAccessPointsChanged(null /* accessPoints */);
+ InternetDialogController spyController = spy(mInternetDialogController);
doReturn(ServiceState.STATE_IN_SERVICE).when(mServiceState).getState();
- doReturn(mServiceState).when(mTelephonyManager).getServiceState();
-
- when(mTelephonyManager.isDataEnabled()).thenReturn(false);
+ spyController.mSubIdServiceState.put(SUB_ID, mServiceState);
assertThat(mInternetDialogController.getSubtitleText(false))
.isEqualTo(getResourcesString("non_carrier_network_unavailable"));
@@ -499,6 +500,9 @@ public class InternetDialogDelegateControllerTest extends SysuiTestCase {
// if the Wi-Fi disallow config, then don't return Wi-Fi related string.
mInternetDialogController.mCanConfigWifi = false;
+ when(spyController.isMobileDataEnabled()).thenReturn(false);
+
+
assertThat(mInternetDialogController.getSubtitleText(false))
.isNotEqualTo(getResourcesString("non_carrier_network_unavailable"));
}