Add VOLTE icon
Extracted from CAF and adapted to AOSP by @xyyx
Added switch to statusbar icon blacklist by @xyyx
modified back to caf base by @xlxfoxxlx
Original commits:
https://github.com/codeaurora-unofficial/platform-frameworks-base/commit/8c968e8d64abca36987d90d95e6dd1cc951c0e0a
https://github.com/AOSPA/android_frameworks_base/commit/4dabbbe7df5f51f517c13da98809c22b34175964
Change-Id: Ie85b73fa9f5818aeb237742340fd45e6e7affefd
diff --git a/packages/SystemUI/res/values/bliss_strings.xml b/packages/SystemUI/res/values/bliss_strings.xml
index 927975f..310a945 100644
--- a/packages/SystemUI/res/values/bliss_strings.xml
+++ b/packages/SystemUI/res/values/bliss_strings.xml
@@ -234,4 +234,7 @@
<!-- data saver icon switch -->
<string name="status_bar_datasaver">Data saver</string>
+ <!-- VOLTE icon switch -->
+ <string name="status_bar_volte">VoLTE</string>
+
</resources>
diff --git a/packages/SystemUI/res/xml/tuner_prefs.xml b/packages/SystemUI/res/xml/tuner_prefs.xml
index caff6eb..1813053 100644
--- a/packages/SystemUI/res/xml/tuner_prefs.xml
+++ b/packages/SystemUI/res/xml/tuner_prefs.xml
@@ -71,6 +71,10 @@
android:title="@string/quick_settings_cellular_detail_title" />
<com.android.systemui.tuner.StatusBarSwitch
+ android:key="volte"
+ android:title="@string/status_bar_volte" />
+
+ <com.android.systemui.tuner.StatusBarSwitch
android:key="airplane"
android:title="@string/status_bar_airplane" />
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java
index 9314bec..0c5d9d8 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java
@@ -221,7 +221,7 @@
public void setMobileDataIndicators(IconState statusIcon, IconState qsIcon, int statusType,
int qsType, boolean activityIn, boolean activityOut, int dataActivityId,
int mobileActivityId, int stackedDataIcon, int stackedVoiceIcon,
- String typeContentDescription, String description, boolean isWide, int subId) {
+ String typeContentDescription, String description, boolean isWide, int subId, boolean isMobileIms) {
if (qsIcon == null) {
// Not data sim, don't display.
return;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
index c36d2da..d7bd6bd 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
@@ -64,6 +64,7 @@
private static final String SLOT_WIFI = "wifi";
private static final String SLOT_ETHERNET = "ethernet";
private static final String SLOT_VPN = "vpn";
+ private static final String SLOT_VOLTE = "volte";
NetworkControllerImpl mNC;
SecurityController mSC;
@@ -115,6 +116,7 @@
private boolean mBlockWifi;
private boolean mBlockEthernet;
private boolean mBlockVpn;
+ private boolean mBlockVolte;
private TelephonyManager mTelephonyManager;
@@ -157,14 +159,16 @@
boolean blockWifi = blockList.contains(SLOT_WIFI);
boolean blockEthernet = blockList.contains(SLOT_ETHERNET);
boolean blockVpn = blockList.contains(SLOT_VPN);
+ boolean blockVolte = blockList.contains(SLOT_VOLTE);
if (blockAirplane != mBlockAirplane || blockMobile != mBlockMobile
- || blockEthernet != mBlockEthernet || blockWifi != mBlockWifi || blockVpn != mBlockVpn) {
+ || blockEthernet != mBlockEthernet || blockWifi != mBlockWifi || blockVpn != mBlockVpn || blockVolte != mBlockVolte) {
mBlockAirplane = blockAirplane;
mBlockMobile = blockMobile;
mBlockEthernet = blockEthernet;
mBlockWifi = blockWifi;
mBlockVpn = blockVpn;
+ mBlockVolte = blockVolte;
// Re-register to get new callbacks.
mNC.removeSignalCallback(this);
mNC.addSignalCallback(this);
@@ -301,7 +305,7 @@
public void setMobileDataIndicators(IconState statusIcon, IconState qsIcon, int statusType,
int qsType, boolean activityIn, boolean activityOut, int dataActivityId,
int mobileActivityId, int stackedDataId, int stackedVoiceId,
- String typeContentDescription, String description, boolean isWide, int subId) {
+ String typeContentDescription, String description, boolean isWide, int subId, boolean isMobileIms) {
PhoneState state = getState(subId);
if (state == null) {
return;
@@ -316,6 +320,7 @@
state.mMobileActivityId = mobileActivityId;
state.mStackedDataId = stackedDataId;
state.mStackedVoiceId = stackedVoiceId;
+ mMobileIms = isMobileIms;
apply();
}
@@ -336,7 +341,7 @@
mMobileIms = isMobileIms;
this.setMobileDataIndicators(statusIcon, qsIcon, statusType, qsType, activityIn,
activityOut, dataActivityId, mobileActivityId, stackedDataId,
- stackedVoiceId, typeContentDescription, description, isWide, subId);
+ stackedVoiceId, typeContentDescription, description, isWide, subId, isMobileIms);
}
@Override
@@ -626,7 +631,7 @@
mImsOverWifiImageView.setVisibility(View.GONE);
}
- if (mMobileIms){
+ if (mMobileIms && !mBlockVolte){
mMobileImsImageView.setVisibility(View.VISIBLE);
} else {
mMobileImsImageView.setVisibility(View.GONE);
@@ -682,6 +687,7 @@
private void applyIconTint() {
setTint(mVpn, StatusBarIconController.getTint(mTintArea, mVpn, mIconTint));
+ setTint(mMobileImsImageView, StatusBarIconController.getTint(mTintArea, mMobileImsImageView, mIconTint));
setTint(mAirplane, StatusBarIconController.getTint(mTintArea, mAirplane, mIconTint));
applyDarkIntensity(
StatusBarIconController.getDarkIntensity(mTintArea, mNoSims, mDarkIntensity),
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/CallbackHandler.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/CallbackHandler.java
index c0f7984..2cc75e7 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/CallbackHandler.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/CallbackHandler.java
@@ -128,7 +128,7 @@
final boolean activityOut, final int dataActivityId, final int mobileActivityId,
final int stackedDataIcon, final int stackedVoiceIcon,
final String typeContentDescription, final String description, final boolean isWide,
- final int subId) {
+ final int subId, final boolean isMobileIms) {
post(new Runnable() {
@Override
public void run() {
@@ -136,7 +136,7 @@
signalCluster.setMobileDataIndicators(statusIcon, qsIcon, statusType, qsType,
activityIn, activityOut, dataActivityId, mobileActivityId,
stackedDataIcon, stackedVoiceIcon,
- typeContentDescription, description, isWide, subId);
+ typeContentDescription, description, isWide, subId, isMobileIms);
}
}
});
@@ -165,7 +165,7 @@
signalCluster.setMobileDataIndicators(statusIcon, qsIcon, statusType,
qsType, activityIn, activityOut, dataActivityId,
mobileActivityId, stackedDataIcon, stackedVoiceIcon,
- typeContentDescription, description, isWide, subId);
+ typeContentDescription, description, isWide, subId, isMobileIms);
}
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
index b9bea0b..6bd5338 100755
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java
@@ -52,7 +52,6 @@
import java.util.Objects;
import java.util.List;
-
public class MobileSignalController extends SignalController<
MobileSignalController.MobileState, MobileSignalController.MobileIconGroup> {
private final TelephonyManager mPhone;
@@ -388,7 +387,7 @@
activityIn, activityOut, dataActivityId, mobileActivityId,
icons.mStackedDataIcon, icons.mStackedVoiceIcon,
dataContentDescription, description, icons.mIsWide,
- mSubscriptionInfo.getSubscriptionId());
+ mSubscriptionInfo.getSubscriptionId(), isMobileIms());
}
mCallbackHandler.post(new Runnable() {
@Override
@@ -435,9 +434,6 @@
}
private boolean isMobileIms() {
- if (mStyle != STATUS_BAR_STYLE_EXTENDED) {
- return false;
- }
List<SubscriptionInfo> subInfos = SubscriptionManager.from(mContext)
.getActiveSubscriptionInfoList();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
index 89c3b7e..e0e6cd1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java
@@ -49,7 +49,7 @@
int qsType, boolean activityIn, boolean activityOut, int dataActivityId,
int mobileActivityId, int stackedDataIcon, int stackedVoiceIcon,
String typeContentDescription, String description,
- boolean isWide, int subId) {}
+ boolean isWide, int subId, boolean isMobileIms) {}
default void setSubs(List<SubscriptionInfo> subs) {}
default void setNoSims(boolean show) {}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SignalCallbackAdapter.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SignalCallbackAdapter.java
index 511ad2b..58cc6ee 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SignalCallbackAdapter.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SignalCallbackAdapter.java
@@ -38,7 +38,7 @@
public void setMobileDataIndicators(IconState statusIcon, IconState qsIcon, int statusType,
int qsType, boolean activityIn, boolean activityOut, int dataActivity,
int mobileActivity, int stackedDataIcon, int stackedVoiceIcon,
- String typeContentDescription, String description, boolean isWide, int subId) {
+ String typeContentDescription, String description, boolean isWide, int subId, boolean isMobileIms) {
}
@Override