diff --git a/packages/SystemUI/res/drawable/qs_hotspot_icon_off.xml b/packages/SystemUI/res/drawable/qs_hotspot_icon_off.xml new file mode 100644 index 0000000000000..eb160de7f249d --- /dev/null +++ b/packages/SystemUI/res/drawable/qs_hotspot_icon_off.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/qs_hotspot_icon_on.xml b/packages/SystemUI/res/drawable/qs_hotspot_icon_on.xml new file mode 100644 index 0000000000000..de972a62d7f74 --- /dev/null +++ b/packages/SystemUI/res/drawable/qs_hotspot_icon_on.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/res/drawable/qs_hotspot_icon_search.xml b/packages/SystemUI/res/drawable/qs_hotspot_icon_search.xml new file mode 100644 index 0000000000000..e33b264ad528b --- /dev/null +++ b/packages/SystemUI/res/drawable/qs_hotspot_icon_search.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java index b6f6e933bf84d..624def60276b9 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/HotspotTile.java @@ -51,8 +51,6 @@ import javax.inject.Inject; /** Quick settings tile: Hotspot **/ public class HotspotTile extends QSTileImpl { - private final Icon mEnabledStatic = ResourceIcon.get(R.drawable.ic_hotspot); - private final HotspotController mHotspotController; private final DataSaverController mDataSaverController; @@ -129,9 +127,6 @@ public class HotspotTile extends QSTileImpl { @Override protected void handleUpdateState(BooleanState state, Object arg) { final boolean transientEnabling = arg == ARG_SHOW_TRANSIENT_ENABLING; - if (state.slash == null) { - state.slash = new SlashState(); - } final int numConnectedDevices; final boolean isTransient = transientEnabling || mHotspotController.isHotspotTransient(); @@ -150,13 +145,14 @@ public class HotspotTile extends QSTileImpl { isDataSaverEnabled = mDataSaverController.isDataSaverEnabled(); } - state.icon = mEnabledStatic; state.label = mContext.getString(R.string.quick_settings_hotspot_label); state.isTransient = isTransient; - state.slash.isSlashed = !state.value && !state.isTransient; if (state.isTransient) { state.icon = ResourceIcon.get( - com.android.internal.R.drawable.ic_hotspot_transient_animation); + R.drawable.qs_hotspot_icon_search); + } else { + state.icon = ResourceIcon.get(state.value + ? R.drawable.qs_hotspot_icon_on : R.drawable.qs_hotspot_icon_off); } state.expandedAccessibilityClassName = Switch.class.getName(); state.contentDescription = state.label; diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/HotspotTileTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/HotspotTileTest.java index b86713d0890b9..451e9119f2971 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/HotspotTileTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/HotspotTileTest.java @@ -39,6 +39,7 @@ import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.logging.QSLogger; +import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.statusbar.policy.DataSaverController; import com.android.systemui.statusbar.policy.HotspotController; @@ -122,4 +123,40 @@ public class HotspotTileTest extends SysuiTestCase { .isEqualTo(mContext.getString(R.string.wifitrackerlib_admin_restricted_network)); mockitoSession.finishMocking(); } + + @Test + public void testIcon_whenDisabled_isOffState() { + QSTile.BooleanState state = new QSTile.BooleanState(); + when(mHotspotController.isHotspotTransient()).thenReturn(false); + when(mHotspotController.isHotspotEnabled()).thenReturn(false); + + mTile.handleUpdateState(state, /* arg= */ null); + + assertThat(state.icon) + .isEqualTo(QSTileImpl.ResourceIcon.get(R.drawable.qs_hotspot_icon_off)); + } + + @Test + public void testIcon_whenTransient_isSearchState() { + QSTile.BooleanState state = new QSTile.BooleanState(); + when(mHotspotController.isHotspotTransient()).thenReturn(true); + when(mHotspotController.isHotspotEnabled()).thenReturn(true); + + mTile.handleUpdateState(state, /* arg= */ null); + + assertThat(state.icon) + .isEqualTo(QSTileImpl.ResourceIcon.get(R.drawable.qs_hotspot_icon_search)); + } + + @Test + public void testIcon_whenEnabled_isOnState() { + QSTile.BooleanState state = new QSTile.BooleanState(); + when(mHotspotController.isHotspotTransient()).thenReturn(false); + when(mHotspotController.isHotspotEnabled()).thenReturn(true); + + mTile.handleUpdateState(state, /* arg= */ null); + + assertThat(state.icon) + .isEqualTo(QSTileImpl.ResourceIcon.get(R.drawable.qs_hotspot_icon_on)); + } }