Merge "SystemUI: res array for statusbar blocked icons" into tm-dev

This commit is contained in:
TreeHugger Robot
2022-03-18 17:19:33 +00:00
committed by Android (Google) Code Review
3 changed files with 33 additions and 9 deletions

View File

@@ -707,4 +707,18 @@
<integer name="complicationFadeInMs">500</integer> <integer name="complicationFadeInMs">500</integer>
<integer name="complicationRestoreMs">1000</integer> <integer name="complicationRestoreMs">1000</integer>
<!-- Icons that don't show in a collapsed non-keyguard statusbar -->
<string-array name="config_collapsed_statusbar_icon_blocklist" translatable="false">
<item>@*android:string/status_bar_volume</item>
<item>@*android:string/status_bar_alarm_clock</item>
<item>@*android:string/status_bar_call_strength</item>
</string-array>
<!-- Icons that don't show in a collapsed statusbar on keyguard -->
<string-array name="config_keyguard_statusbar_icon_blocklist" translatable="false">
<item>@*android:string/status_bar_volume</item>
<item>@*android:string/status_bar_alarm_clock</item>
<item>@*android:string/status_bar_call_strength</item>
</string-array>
</resources> </resources>

View File

@@ -58,7 +58,6 @@ import com.android.systemui.util.ViewController;
import java.io.FileDescriptor; import java.io.FileDescriptor;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
@@ -289,10 +288,8 @@ public class KeyguardStatusBarViewController extends ViewController<KeyguardStat
); );
Resources r = getResources(); Resources r = getResources();
mBlockedIcons = Collections.unmodifiableList(Arrays.asList( mBlockedIcons = Arrays.asList(r.getStringArray(
r.getString(com.android.internal.R.string.status_bar_volume), R.array.config_keyguard_statusbar_icon_blocklist));
r.getString(com.android.internal.R.string.status_bar_alarm_clock),
r.getString(com.android.internal.R.string.status_bar_call_strength)));
mNotificationsHeaderCollideDistance = r.getDimensionPixelSize( mNotificationsHeaderCollideDistance = r.getDimensionPixelSize(
R.dimen.header_notifications_collide_distance); R.dimen.header_notifications_collide_distance);

View File

@@ -72,6 +72,7 @@ import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.settings.SecureSettings; import com.android.systemui.util.settings.SecureSettings;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
@@ -217,11 +218,23 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
void updateBlockedIcons() { void updateBlockedIcons() {
mBlockedIcons.clear(); mBlockedIcons.clear();
if (mSecureSettings.getInt(Settings.Secure.STATUS_BAR_SHOW_VIBRATE_ICON, 0) == 0) { // Reload the blocklist from res
mBlockedIcons.add(getString(com.android.internal.R.string.status_bar_volume)); List<String> blockList = Arrays.asList(getResources().getStringArray(
R.array.config_collapsed_statusbar_icon_blocklist));
String vibrateIconSlot = getString(com.android.internal.R.string.status_bar_volume);
boolean showVibrateIcon =
mSecureSettings.getInt(Settings.Secure.STATUS_BAR_SHOW_VIBRATE_ICON, 0) == 0;
// Filter out vibrate icon from the blocklist if the setting is on
for (int i = 0; i < blockList.size(); i++) {
if (blockList.get(i).equals(vibrateIconSlot)) {
if (showVibrateIcon) {
mBlockedIcons.add(blockList.get(i));
}
} else {
mBlockedIcons.add(blockList.get(i));
}
} }
mBlockedIcons.add(getString(com.android.internal.R.string.status_bar_alarm_clock));
mBlockedIcons.add(getString(com.android.internal.R.string.status_bar_call_strength));
mMainExecutor.execute(() -> mDarkIconManager.setBlockList(mBlockedIcons)); mMainExecutor.execute(() -> mDarkIconManager.setBlockList(mBlockedIcons));
} }