Merge "Do not destroy CustomTile when in QSCustomizer" into qt-qpr1-dev

This commit is contained in:
Fabian Kozynski
2020-01-30 18:44:10 +00:00
committed by Android (Google) Code Review
2 changed files with 18 additions and 1 deletions

View File

@@ -103,7 +103,9 @@ public class TileQueryHelper {
final ArrayList<QSTile> tilesToAdd = new ArrayList<>();
for (String spec : possibleTiles) {
// Only add current and stock tiles that can be created from QSFactoryImpl
// Only add current and stock tiles that can be created from QSFactoryImpl.
// Do not include CustomTile. Those will be created by `addPackageTiles`.
if (spec.startsWith(CustomTile.PREFIX)) continue;
final QSTile tile = host.createTile(spec);
if (tile == null) {
continue;

View File

@@ -27,6 +27,7 @@ import static org.mockito.Mockito.any;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -79,12 +80,14 @@ public class TileQueryHelperTest extends SysuiTestCase {
private static final Set<String> FACTORY_TILES = new ArraySet<>();
private static final String TEST_PKG = "test_pkg";
private static final String TEST_CLS = "test_cls";
private static final String CUSTOM_TILE = "custom(" + TEST_PKG + "/" + TEST_CLS + ")";
static {
FACTORY_TILES.addAll(Arrays.asList(
new String[]{"wifi", "bt", "cell", "dnd", "inversion", "airplane", "work",
"rotation", "flashlight", "location", "cast", "hotspot", "user", "battery",
"saver", "night", "nfc"}));
FACTORY_TILES.add(CUSTOM_TILE);
}
@Mock
@@ -227,6 +230,18 @@ public class TileQueryHelperTest extends SysuiTestCase {
assertFalse(specs.contains("other"));
}
@Test
public void testCustomTileNotCreated() {
Settings.Secure.putString(mContext.getContentResolver(), Settings.Secure.QS_TILES,
CUSTOM_TILE);
mTileQueryHelper.queryTiles(mQSTileHost);
mBGLooper.processAllMessages();
waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER));
verify(mQSTileHost, never()).createTile(CUSTOM_TILE);
}
@Test
public void testThirdPartyTilesInactive() {
ResolveInfo resolveInfo = new ResolveInfo();