diff --git a/packages/SystemUI/res/drawable/ic_activity_down.xml b/packages/SystemUI/res/drawable/ic_activity_down.xml
new file mode 100644
index 0000000000000..526c98728be03
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_activity_down.xml
@@ -0,0 +1,24 @@
+
+
+
+
diff --git a/packages/SystemUI/res/drawable/ic_activity_up.xml b/packages/SystemUI/res/drawable/ic_activity_up.xml
new file mode 100644
index 0000000000000..8d18bebf4784a
--- /dev/null
+++ b/packages/SystemUI/res/drawable/ic_activity_up.xml
@@ -0,0 +1,24 @@
+
+
+
+
diff --git a/packages/SystemUI/res/layout/mobile_signal_group.xml b/packages/SystemUI/res/layout/mobile_signal_group.xml
index d988acc78411b..33effba53059f 100644
--- a/packages/SystemUI/res/layout/mobile_signal_group.xml
+++ b/packages/SystemUI/res/layout/mobile_signal_group.xml
@@ -16,48 +16,67 @@
** limitations under the License.
*/
-->
-
-
-
-
-
-
+
+
+
+
-
+ android:layout_height="wrap_content">
+
+
+
+
+
+
diff --git a/packages/SystemUI/res/layout/signal_cluster_view.xml b/packages/SystemUI/res/layout/signal_cluster_view.xml
index 4d03f0f3459dc..da7e4d79fc463 100644
--- a/packages/SystemUI/res/layout/signal_cluster_view.xml
+++ b/packages/SystemUI/res/layout/signal_cluster_view.xml
@@ -52,6 +52,26 @@
android:alpha="0.0"
/>
+
+
+
+
true
+
+ false
+
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
index 88711febe18d0..c5e1438c272e5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
@@ -83,7 +83,8 @@ public class SignalClusterView extends LinearLayout implements NetworkController
private int mWifiStrengthId = 0;
private int mLastWifiBadgeId = -1;
private int mLastWifiStrengthId = -1;
- private int mWifiActivityId = 0;
+ private boolean mWifiIn;
+ private boolean mWifiOut;
private int mLastWifiActivityId = -1;
private boolean mIsAirplaneMode = false;
private int mAirplaneIconId = 0;
@@ -99,7 +100,8 @@ public class SignalClusterView extends LinearLayout implements NetworkController
ViewGroup mEthernetGroup, mWifiGroup;
View mNoSimsCombo;
ImageView mVpn, mEthernet, mWifi, mAirplane, mNoSims, mEthernetDark, mWifiDark, mNoSimsDark;
- ImageView mWifiActivity;
+ ImageView mWifiActivityIn;
+ ImageView mWifiActivityOut;
View mWifiAirplaneSpacer;
View mWifiSignalSpacer;
LinearLayout mMobileSignalGroup;
@@ -116,6 +118,7 @@ public class SignalClusterView extends LinearLayout implements NetworkController
private boolean mBlockMobile;
private boolean mBlockWifi;
private boolean mBlockEthernet;
+ private boolean mActivityEnabled;
public SignalClusterView(Context context) {
this(context, null);
@@ -144,6 +147,7 @@ public class SignalClusterView extends LinearLayout implements NetworkController
mIconScaleFactor = typedValue.getFloat();
mNetworkController = Dependency.get(NetworkController.class);
mSecurityController = Dependency.get(SecurityController.class);
+ updateActivityEnabled();
}
@Override
@@ -180,7 +184,8 @@ public class SignalClusterView extends LinearLayout implements NetworkController
mWifiGroup = (ViewGroup) findViewById(R.id.wifi_combo);
mWifi = (ImageView) findViewById(R.id.wifi_signal);
mWifiDark = (ImageView) findViewById(R.id.wifi_signal_dark);
- mWifiActivity = (ImageView) findViewById(R.id.wifi_inout);
+ mWifiActivityIn = (ImageView) findViewById(R.id.wifi_in);
+ mWifiActivityOut= (ImageView) findViewById(R.id.wifi_out);
mAirplane = (ImageView) findViewById(R.id.airplane);
mNoSims = (ImageView) findViewById(R.id.no_sims);
mNoSimsDark = (ImageView) findViewById(R.id.no_sims_dark);
@@ -264,6 +269,10 @@ public class SignalClusterView extends LinearLayout implements NetworkController
});
}
+ private void updateActivityEnabled() {
+ mActivityEnabled = mContext.getResources().getBoolean(R.bool.config_showActivity);
+ }
+
@Override
public void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon,
boolean activityIn, boolean activityOut, String description, boolean isTransient) {
@@ -271,10 +280,8 @@ public class SignalClusterView extends LinearLayout implements NetworkController
mWifiStrengthId = statusIcon.icon;
mWifiBadgeId = statusIcon.iconOverlay;
mWifiDescription = statusIcon.contentDescription;
- mWifiActivityId = activityIn && activityOut ? R.drawable.stat_sys_wifi_inout
- : activityIn ? R.drawable.stat_sys_wifi_in
- : activityOut ? R.drawable.stat_sys_wifi_out
- : 0;
+ mWifiIn = activityIn && mActivityEnabled;
+ mWifiOut = activityOut && mActivityEnabled;
apply();
}
@@ -294,10 +301,8 @@ public class SignalClusterView extends LinearLayout implements NetworkController
state.mMobileTypeDescription = typeContentDescription;
state.mIsMobileTypeIconWide = statusType != 0 && isWide;
state.mRoaming = roaming;
- state.mMobileActivityId = activityIn && activityOut ? R.drawable.stat_sys_signal_inout
- : activityIn ? R.drawable.stat_sys_signal_in
- : activityOut ? R.drawable.stat_sys_signal_out
- : 0;
+ state.mActivityIn = activityIn && mActivityEnabled;
+ state.mActivityOut = activityOut && mActivityEnabled;
apply();
}
@@ -421,10 +426,6 @@ public class SignalClusterView extends LinearLayout implements NetworkController
mLastWifiStrengthId = -1;
mLastWifiBadgeId = -1;
}
- if (mWifiActivity != null) {
- mWifiActivity.setImageDrawable(null);
- mLastWifiActivityId = -1;
- }
for (PhoneState state : mPhoneStates) {
if (state.mMobile != null) {
@@ -441,10 +442,6 @@ public class SignalClusterView extends LinearLayout implements NetworkController
state.mMobileType.setImageDrawable(null);
state.mLastMobileTypeId = -1;
}
- if (state.mMobileActivity != null) {
- state.mMobileActivity.setImageDrawable(null);
- state.mLastMobileActivityId = -1;
- }
}
if (mAirplane != null) {
@@ -504,12 +501,6 @@ public class SignalClusterView extends LinearLayout implements NetworkController
mLastWifiStrengthId = mWifiStrengthId;
mLastWifiBadgeId = mWifiBadgeId;
}
- if (mWifiActivityId != mLastWifiActivityId) {
- if (mWifiActivityId != 0) {
- setIconForView(mWifiActivity, mWifiActivityId);
- }
- mLastWifiActivityId = mWifiActivityId;
- }
mWifiGroup.setContentDescription(mWifiDescription);
mWifiGroup.setVisibility(View.VISIBLE);
} else {
@@ -521,7 +512,8 @@ public class SignalClusterView extends LinearLayout implements NetworkController
(mWifiVisible ? "VISIBLE" : "GONE"),
mWifiStrengthId));
- mWifiActivity.setVisibility(mWifiActivityId != 0 ? View.VISIBLE : View.GONE);
+ mWifiActivityIn.setVisibility(mWifiIn ? View.VISIBLE : View.GONE);
+ mWifiActivityOut.setVisibility(mWifiOut ? View.VISIBLE : View.GONE);
boolean anyMobileVisible = false;
int firstMobileTypeId = 0;
@@ -631,8 +623,10 @@ public class SignalClusterView extends LinearLayout implements NetworkController
applyDarkIntensity(
DarkIconDispatcher.getDarkIntensity(mTintArea, mWifi, mDarkIntensity),
mWifi, mWifiDark);
- setTint(mWifiActivity,
- DarkIconDispatcher.getTint(mTintArea, mWifiActivity, mIconTint));
+ setTint(mWifiActivityIn,
+ DarkIconDispatcher.getTint(mTintArea, mWifiActivityIn, mIconTint));
+ setTint(mWifiActivityOut,
+ DarkIconDispatcher.getTint(mTintArea, mWifiActivityOut, mIconTint));
applyDarkIntensity(
DarkIconDispatcher.getDarkIntensity(mTintArea, mEthernet, mDarkIntensity),
mEthernet, mEthernetDark);
@@ -657,7 +651,7 @@ public class SignalClusterView extends LinearLayout implements NetworkController
private class PhoneState {
private final int mSubId;
private boolean mMobileVisible = false;
- private int mMobileStrengthId = 0, mMobileTypeId = 0, mMobileActivityId = 0;
+ private int mMobileStrengthId = 0, mMobileTypeId = 0;
private int mLastMobileStrengthId = -1;
private int mLastMobileTypeId = -1;
private int mLastMobileActivityId = -1;
@@ -667,7 +661,10 @@ public class SignalClusterView extends LinearLayout implements NetworkController
private ViewGroup mMobileGroup;
private ImageView mMobile, mMobileDark, mMobileType, mMobileRoaming;
public boolean mRoaming;
- private ImageView mMobileActivity;
+ private ImageView mMobileActivityIn;
+ private ImageView mMobileActivityOut;
+ public boolean mActivityIn;
+ public boolean mActivityOut;
public PhoneState(int subId, Context context) {
ViewGroup root = (ViewGroup) LayoutInflater.from(context)
@@ -678,11 +675,12 @@ public class SignalClusterView extends LinearLayout implements NetworkController
public void setViews(ViewGroup root) {
mMobileGroup = root;
- mMobile = (ImageView) root.findViewById(R.id.mobile_signal);
- mMobileDark = (ImageView) root.findViewById(R.id.mobile_signal_dark);
- mMobileType = (ImageView) root.findViewById(R.id.mobile_type);
- mMobileRoaming = (ImageView) root.findViewById(R.id.mobile_roaming);
- mMobileActivity = (ImageView) root.findViewById(R.id.mobile_inout);
+ mMobile = root.findViewById(R.id.mobile_signal);
+ mMobileDark = root.findViewById(R.id.mobile_signal_dark);
+ mMobileType = root.findViewById(R.id.mobile_type);
+ mMobileRoaming = root.findViewById(R.id.mobile_roaming);
+ mMobileActivityIn = root.findViewById(R.id.mobile_in);
+ mMobileActivityOut = root.findViewById(R.id.mobile_out);
}
public boolean apply(boolean isSecondaryIcon) {
@@ -698,10 +696,6 @@ public class SignalClusterView extends LinearLayout implements NetworkController
mLastMobileTypeId = mMobileTypeId;
}
- if (mLastMobileActivityId != mMobileActivityId) {
- mMobileActivity.setImageResource(mMobileActivityId);
- mLastMobileActivityId = mMobileActivityId;
- }
mMobileGroup.setContentDescription(mMobileTypeDescription
+ " " + mMobileDescription);
mMobileGroup.setVisibility(View.VISIBLE);
@@ -724,7 +718,8 @@ public class SignalClusterView extends LinearLayout implements NetworkController
mMobileType.setVisibility(mMobileTypeId != 0 ? View.VISIBLE : View.GONE);
mMobileRoaming.setVisibility(mRoaming ? View.VISIBLE : View.GONE);
- mMobileActivity.setVisibility(mMobileActivityId != 0 ? View.VISIBLE : View.GONE);
+ mMobileActivityIn.setVisibility(mActivityIn ? View.VISIBLE : View.GONE);
+ mMobileActivityOut.setVisibility(mActivityOut ? View.VISIBLE : View.GONE);
return mMobileVisible;
}
@@ -786,8 +781,10 @@ public class SignalClusterView extends LinearLayout implements NetworkController
setTint(mMobileType, DarkIconDispatcher.getTint(tintArea, mMobileType, tint));
setTint(mMobileRoaming, DarkIconDispatcher.getTint(tintArea, mMobileRoaming,
tint));
- setTint(mMobileActivity,
- DarkIconDispatcher.getTint(tintArea, mMobileActivity, tint));
+ setTint(mMobileActivityIn,
+ DarkIconDispatcher.getTint(tintArea, mMobileActivityIn, tint));
+ setTint(mMobileActivityOut,
+ DarkIconDispatcher.getTint(tintArea, mMobileActivityOut, tint));
}
}
}