summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java1
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java25
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());
+ }
}