diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java | 1 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java | 25 |
2 files changed, 26 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java b/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java index 79a7df24e217..db77e08c204b 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java +++ b/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java @@ -118,6 +118,7 @@ public class TileQueryHelper { if (tile == null) { continue; } else if (!tile.isAvailable()) { + tile.setTileSpec(spec); tile.destroy(); continue; } diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java index 4c681023175b..72a65034922c 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java @@ -23,6 +23,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThat; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.any; import static org.mockito.Mockito.atLeastOnce; import static org.mockito.Mockito.doAnswer; @@ -49,6 +50,10 @@ import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.qs.QSTileHost; +import com.android.systemui.qs.logging.QSLogger; +import com.android.systemui.qs.tiles.HotspotTile; +import com.android.systemui.statusbar.policy.DataSaverController; +import com.android.systemui.statusbar.policy.HotspotController; import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.time.FakeSystemClock; @@ -94,6 +99,8 @@ public class TileQueryHelperTest extends SysuiTestCase { private QSTileHost mQSTileHost; @Mock private PackageManager mPackageManager; + @Mock + private QSLogger mQSLogger; @Captor private ArgumentCaptor<List<TileQueryHelper.TileInfo>> mCaptor; @@ -106,6 +113,7 @@ public class TileQueryHelperTest extends SysuiTestCase { public void setup() { MockitoAnnotations.initMocks(this); mContext.setMockPackageManager(mPackageManager); + when(mQSTileHost.getQSLogger()).thenReturn(mQSLogger); mState = new QSTile.State(); doAnswer(invocation -> { @@ -269,4 +277,21 @@ public class TileQueryHelperTest extends SysuiTestCase { STOCK_TILES); mTileQueryHelper.queryTiles(mQSTileHost); } + + @Test + public void testQueryTiles_notAvailableDestroyed_isNotNullSpec() { + HotspotController mockHC = mock(HotspotController.class); + DataSaverController mockDSC = mock(DataSaverController.class); + when(mockHC.isHotspotSupported()).thenReturn(false); + HotspotTile t = new HotspotTile(mQSTileHost, mockHC, mockDSC); + when(mQSTileHost.createTile("hotspot")).thenReturn(t); + + mContext.getOrCreateTestableResources().addOverride(R.string.quick_settings_tiles_stock, + "hotspot"); + + mTileQueryHelper.queryTiles(mQSTileHost); + + FakeExecutor.exhaustExecutors(mMainExecutor, mBgExecutor); + verify(mQSLogger).logTileDestroyed(eq("hotspot"), anyString()); + } } |