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)); } } }