Merge "Use mWifiInfo to refresh Internet Tile when APM is enabled." into tm-qpr-dev am: 2632266bff am: bf1f5fa544

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20654680

Change-Id: Id190c11f54ac5cdf7a3936e69a9b401d7efede94
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2022-12-07 19:28:10 +00:00
committed by Automerger Merge Worker
2 changed files with 30 additions and 1 deletions

View File

@@ -333,7 +333,14 @@ public class InternetTile extends QSTileImpl<SignalState> {
mCellularInfo.mAirplaneModeEnabled = icon.visible;
mWifiInfo.mAirplaneModeEnabled = icon.visible;
if (!mSignalCallback.mEthernetInfo.mConnected) {
if (mWifiInfo.mEnabled && (mWifiInfo.mWifiSignalIconId > 0)
// Always use mWifiInfo to refresh the Internet Tile if airplane mode is enabled,
// because Internet Tile will show different information depending on whether WiFi
// is enabled or not.
if (mWifiInfo.mAirplaneModeEnabled) {
refreshState(mWifiInfo);
// If airplane mode is disabled, we will use mWifiInfo to refresh the Internet Tile
// if WiFi is currently connected to avoid any icon flickering.
} else if (mWifiInfo.mEnabled && (mWifiInfo.mWifiSignalIconId > 0)
&& (mWifiInfo.mSsid != null)) {
refreshState(mWifiInfo);
} else {

View File

@@ -23,6 +23,7 @@ import static org.mockito.Mockito.when;
import android.os.Handler;
import android.service.quicksettings.Tile;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
@@ -38,6 +39,7 @@ import com.android.systemui.qs.QSTileHost;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tiles.dialog.InternetDialogFactory;
import com.android.systemui.statusbar.connectivity.AccessPointController;
import com.android.systemui.statusbar.connectivity.IconState;
import com.android.systemui.statusbar.connectivity.NetworkController;
import org.junit.Before;
@@ -113,4 +115,24 @@ public class InternetTileTest extends SysuiTestCase {
.isNotEqualTo(mContext.getString(R.string.quick_settings_networks_available));
assertThat(mTile.getLastTileState()).isEqualTo(-1);
}
@Test
public void setIsAirplaneMode_APM_enabled_wifi_disabled() {
IconState state = new IconState(true, 0, "");
mTile.mSignalCallback.setIsAirplaneMode(state);
mTestableLooper.processAllMessages();
assertThat(mTile.getState().state).isEqualTo(Tile.STATE_INACTIVE);
assertThat(mTile.getState().secondaryLabel)
.isEqualTo(mContext.getString(R.string.status_bar_airplane));
}
@Test
public void setIsAirplaneMode_APM_enabled_wifi_enabled() {
IconState state = new IconState(false, 0, "");
mTile.mSignalCallback.setIsAirplaneMode(state);
mTestableLooper.processAllMessages();
assertThat(mTile.getState().state).isEqualTo(Tile.STATE_ACTIVE);
assertThat(mTile.getState().secondaryLabel)
.isNotEqualTo(mContext.getString(R.string.status_bar_airplane));
}
}