summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
diff options
context:
space:
mode:
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java')
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java69
1 files changed, 58 insertions, 11 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
index 325a605..65b022a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar;
import android.content.Context;
import android.util.AttributeSet;
+import android.util.Slog;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
@@ -32,8 +33,16 @@ public class SignalClusterView
extends LinearLayout
implements NetworkController.SignalCluster {
+ static final boolean DEBUG = false;
+ static final String TAG = "SignalClusterView";
+
NetworkController mNC;
+ private boolean mWifiVisible = false;
+ private int mWifiStrengthId = 0, mWifiActivityId = 0;
+ private boolean mMobileVisible = false;
+ private int mMobileStrengthId = 0, mMobileActivityId = 0, mMobileTypeId = 0;
+
ViewGroup mWifiGroup, mMobileGroup;
ImageView mWifi, mMobile, mWifiActivity, mMobileActivity, mMobileType;
@@ -50,6 +59,7 @@ public class SignalClusterView
}
public void setNetworkController(NetworkController nc) {
+ if (DEBUG) Slog.d(TAG, "NetworkController=" + nc);
mNC = nc;
}
@@ -64,37 +74,74 @@ public class SignalClusterView
mMobile = (ImageView) findViewById(R.id.mobile_signal);
mMobileActivity = (ImageView) findViewById(R.id.mobile_inout);
mMobileType = (ImageView) findViewById(R.id.mobile_type);
+
+ apply();
}
@Override
protected void onDetachedFromWindow() {
+ mWifiGroup = null;
+ mWifi = null;
+ mWifiActivity = null;
+ mMobileGroup = null;
+ mMobile = null;
+ mMobileActivity = null;
+ mMobileType = null;
+
super.onDetachedFromWindow();
}
public void setWifiIndicators(boolean visible, int strengthIcon, int activityIcon) {
+ mWifiVisible = visible;
+ mWifiStrengthId = strengthIcon;
+ mWifiActivityId = activityIcon;
+
+ apply();
+ }
+
+ public void setMobileDataIndicators(boolean visible, int strengthIcon, int activityIcon,
+ int typeIcon) {
+ mMobileVisible = visible;
+ mMobileStrengthId = strengthIcon;
+ mMobileActivityId = activityIcon;
+ mMobileTypeId = typeIcon;
+
+ apply();
+ }
+
+ // Run after each indicator change.
+ private void apply() {
if (mWifiGroup == null) return;
- if (visible) {
+ if (mWifiVisible) {
mWifiGroup.setVisibility(View.VISIBLE);
- mWifi.setImageResource(strengthIcon);
- mWifiActivity.setImageResource(activityIcon);
+ mWifi.setImageResource(mWifiStrengthId);
+ mWifiActivity.setImageResource(mWifiActivityId);
} else {
mWifiGroup.setVisibility(View.GONE);
}
- }
- public void setMobileDataIndicators(boolean visible, int strengthIcon, int activityIcon,
- int typeIcon) {
- if (mMobileGroup == null) return;
+ if (DEBUG) Slog.d(TAG,
+ String.format("wifi: %s sig=%d act=%d",
+ (mWifiVisible ? "VISIBLE" : "GONE"),
+ mWifiStrengthId, mWifiActivityId));
- if (visible) {
+ if (mMobileVisible) {
mMobileGroup.setVisibility(View.VISIBLE);
- mMobile.setImageResource(strengthIcon);
- mMobileActivity.setImageResource(activityIcon);
- mMobileType.setImageResource(typeIcon);
+ mMobile.setImageResource(mMobileStrengthId);
+ mMobileActivity.setImageResource(mMobileActivityId);
+ mMobileType.setImageResource(mMobileTypeId);
} else {
mMobileGroup.setVisibility(View.GONE);
}
+
+ if (DEBUG) Slog.d(TAG,
+ String.format("mobile: %s sig=%d act=%d typ=%d",
+ (mMobileVisible ? "VISIBLE" : "GONE"),
+ mMobileStrengthId, mMobileActivityId, mMobileTypeId));
+
+ mMobileType.setVisibility(
+ !mWifiVisible ? View.VISIBLE : View.GONE);
}
}