From 43670879fa9accd7add74554c9049d9600579af2 Mon Sep 17 00:00:00 2001 From: John Spurlock Date: Thu, 5 Sep 2013 16:50:21 -0400 Subject: Add activity indicator icons to quick settings tiles. Wifi + RSSI now have activity in / activity out indicators wired up to information coming from NetworkController. Bug: 10634208 Change-Id: I3cf29dc905eeaeb4aea8e7df4fe46e70645e0013 --- .../SystemUI/res/drawable-hdpi/ic_qs_signal_in.png | Bin 0 -> 492 bytes .../res/drawable-hdpi/ic_qs_signal_inout.png | Bin 0 -> 615 bytes .../res/drawable-hdpi/ic_qs_signal_out.png | Bin 0 -> 471 bytes .../SystemUI/res/drawable-hdpi/ic_qs_wifi_in.png | Bin 0 -> 492 bytes .../res/drawable-hdpi/ic_qs_wifi_inout.png | Bin 0 -> 615 bytes .../SystemUI/res/drawable-hdpi/ic_qs_wifi_out.png | Bin 0 -> 471 bytes .../res/drawable-ldrtl-hdpi/ic_qs_signal_in.png | Bin 0 -> 571 bytes .../res/drawable-ldrtl-hdpi/ic_qs_signal_inout.png | Bin 0 -> 719 bytes .../res/drawable-ldrtl-hdpi/ic_qs_signal_out.png | Bin 0 -> 538 bytes .../res/drawable-ldrtl-mdpi/ic_qs_signal_in.png | Bin 0 -> 503 bytes .../res/drawable-ldrtl-mdpi/ic_qs_signal_inout.png | Bin 0 -> 552 bytes .../res/drawable-ldrtl-mdpi/ic_qs_signal_out.png | Bin 0 -> 501 bytes .../res/drawable-ldrtl-xhdpi/ic_qs_signal_in.png | Bin 0 -> 689 bytes .../drawable-ldrtl-xhdpi/ic_qs_signal_inout.png | Bin 0 -> 835 bytes .../res/drawable-ldrtl-xhdpi/ic_qs_signal_out.png | Bin 0 -> 675 bytes .../res/drawable-ldrtl-xxhdpi/ic_qs_signal_in.png | Bin 0 -> 1372 bytes .../drawable-ldrtl-xxhdpi/ic_qs_signal_inout.png | Bin 0 -> 1474 bytes .../res/drawable-ldrtl-xxhdpi/ic_qs_signal_out.png | Bin 0 -> 1361 bytes .../SystemUI/res/drawable-mdpi/ic_qs_signal_in.png | Bin 0 -> 425 bytes .../res/drawable-mdpi/ic_qs_signal_inout.png | Bin 0 -> 486 bytes .../res/drawable-mdpi/ic_qs_signal_out.png | Bin 0 -> 424 bytes .../SystemUI/res/drawable-mdpi/ic_qs_wifi_in.png | Bin 0 -> 425 bytes .../res/drawable-mdpi/ic_qs_wifi_inout.png | Bin 0 -> 486 bytes .../SystemUI/res/drawable-mdpi/ic_qs_wifi_out.png | Bin 0 -> 424 bytes .../res/drawable-xhdpi/ic_qs_signal_in.png | Bin 0 -> 550 bytes .../res/drawable-xhdpi/ic_qs_signal_inout.png | Bin 0 -> 721 bytes .../res/drawable-xhdpi/ic_qs_signal_out.png | Bin 0 -> 539 bytes .../SystemUI/res/drawable-xhdpi/ic_qs_wifi_in.png | Bin 0 -> 550 bytes .../res/drawable-xhdpi/ic_qs_wifi_inout.png | Bin 0 -> 721 bytes .../SystemUI/res/drawable-xhdpi/ic_qs_wifi_out.png | Bin 0 -> 539 bytes .../res/drawable-xxhdpi/ic_qs_signal_in.png | Bin 0 -> 1212 bytes .../res/drawable-xxhdpi/ic_qs_signal_inout.png | Bin 0 -> 1339 bytes .../res/drawable-xxhdpi/ic_qs_signal_out.png | Bin 0 -> 1186 bytes .../SystemUI/res/drawable-xxhdpi/ic_qs_wifi_in.png | Bin 0 -> 1212 bytes .../res/drawable-xxhdpi/ic_qs_wifi_inout.png | Bin 0 -> 1339 bytes .../res/drawable-xxhdpi/ic_qs_wifi_out.png | Bin 0 -> 1186 bytes .../res/layout/quick_settings_tile_rssi.xml | 31 ++++++++--- .../res/layout/quick_settings_tile_wifi.xml | 57 +++++++++++++++++++++ .../systemui/statusbar/phone/QuickSettings.java | 43 +++++++++++++--- .../statusbar/phone/QuickSettingsModel.java | 16 ++++-- .../statusbar/policy/NetworkController.java | 35 +++++++++---- 41 files changed, 156 insertions(+), 26 deletions(-) create mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_signal_in.png create mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_signal_inout.png create mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_signal_out.png create mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_in.png create mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_inout.png create mode 100644 packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_out.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_in.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_inout.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_out.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-mdpi/ic_qs_signal_in.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-mdpi/ic_qs_signal_inout.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-mdpi/ic_qs_signal_out.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_in.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_inout.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_out.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_in.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_inout.png create mode 100644 packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_out.png create mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_signal_in.png create mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_signal_inout.png create mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_signal_out.png create mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_in.png create mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_inout.png create mode 100644 packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_out.png create mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_in.png create mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_inout.png create mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_out.png create mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_in.png create mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_inout.png create mode 100644 packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_out.png create mode 100644 packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_in.png create mode 100644 packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_inout.png create mode 100644 packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_out.png create mode 100644 packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_in.png create mode 100644 packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_inout.png create mode 100644 packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_out.png create mode 100644 packages/SystemUI/res/layout/quick_settings_tile_wifi.xml (limited to 'packages') diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_in.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_in.png new file mode 100644 index 0000000..6ff215b Binary files /dev/null and b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_in.png differ diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_inout.png new file mode 100644 index 0000000..cf5e825 Binary files /dev/null and b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_inout.png differ diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_out.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_out.png new file mode 100644 index 0000000..5d8fd07 Binary files /dev/null and b/packages/SystemUI/res/drawable-hdpi/ic_qs_signal_out.png differ diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_in.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_in.png new file mode 100644 index 0000000..ebd2001 Binary files /dev/null and b/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_in.png differ diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_inout.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_inout.png new file mode 100644 index 0000000..cf5e825 Binary files /dev/null and b/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_inout.png differ diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_out.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_out.png new file mode 100644 index 0000000..5d8fd07 Binary files /dev/null and b/packages/SystemUI/res/drawable-hdpi/ic_qs_wifi_out.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_in.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_in.png new file mode 100644 index 0000000..e6a2f17 Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_in.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_inout.png new file mode 100644 index 0000000..fd40015 Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_inout.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_out.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_out.png new file mode 100644 index 0000000..0a6d20a Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_qs_signal_out.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_qs_signal_in.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_qs_signal_in.png new file mode 100644 index 0000000..9c8f3e7 Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_qs_signal_in.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_qs_signal_inout.png new file mode 100644 index 0000000..7e773f0 Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_qs_signal_inout.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_qs_signal_out.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_qs_signal_out.png new file mode 100644 index 0000000..2ecfd0b Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_qs_signal_out.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_in.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_in.png new file mode 100644 index 0000000..f3245a0 Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_in.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_inout.png new file mode 100644 index 0000000..9f02b9d Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_inout.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_out.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_out.png new file mode 100644 index 0000000..8452087 Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_qs_signal_out.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_in.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_in.png new file mode 100644 index 0000000..61b0df9 Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_in.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_inout.png new file mode 100644 index 0000000..e450506 Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_inout.png differ diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_out.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_out.png new file mode 100644 index 0000000..f8b63cb Binary files /dev/null and b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_qs_signal_out.png differ diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_in.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_in.png new file mode 100644 index 0000000..da4ffa2 Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_in.png differ diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_inout.png new file mode 100644 index 0000000..e1c7972 Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_inout.png differ diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_out.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_out.png new file mode 100644 index 0000000..b8c8b4e Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/ic_qs_signal_out.png differ diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_in.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_in.png new file mode 100644 index 0000000..5d0ad7c Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_in.png differ diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_inout.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_inout.png new file mode 100644 index 0000000..e1c7972 Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_inout.png differ diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_out.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_out.png new file mode 100644 index 0000000..b8c8b4e Binary files /dev/null and b/packages/SystemUI/res/drawable-mdpi/ic_qs_wifi_out.png differ diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_in.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_in.png new file mode 100644 index 0000000..46fd826 Binary files /dev/null and b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_in.png differ diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_inout.png new file mode 100644 index 0000000..c824b97 Binary files /dev/null and b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_inout.png differ diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_out.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_out.png new file mode 100644 index 0000000..fb9ecd0 Binary files /dev/null and b/packages/SystemUI/res/drawable-xhdpi/ic_qs_signal_out.png differ diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_in.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_in.png new file mode 100644 index 0000000..6cf0a4b Binary files /dev/null and b/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_in.png differ diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_inout.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_inout.png new file mode 100644 index 0000000..c824b97 Binary files /dev/null and b/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_inout.png differ diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_out.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_out.png new file mode 100644 index 0000000..fb9ecd0 Binary files /dev/null and b/packages/SystemUI/res/drawable-xhdpi/ic_qs_wifi_out.png differ diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_in.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_in.png new file mode 100644 index 0000000..1094bc3 Binary files /dev/null and b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_in.png differ diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_inout.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_inout.png new file mode 100644 index 0000000..1037b02 Binary files /dev/null and b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_inout.png differ diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_out.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_out.png new file mode 100644 index 0000000..f5595e3 Binary files /dev/null and b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_signal_out.png differ diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_in.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_in.png new file mode 100644 index 0000000..7183a07 Binary files /dev/null and b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_in.png differ diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_inout.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_inout.png new file mode 100644 index 0000000..3746328 Binary files /dev/null and b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_inout.png differ diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_out.png b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_out.png new file mode 100644 index 0000000..dbf54ce Binary files /dev/null and b/packages/SystemUI/res/drawable-xxhdpi/ic_qs_wifi_out.png differ diff --git a/packages/SystemUI/res/layout/quick_settings_tile_rssi.xml b/packages/SystemUI/res/layout/quick_settings_tile_rssi.xml index 34506b1..cabfaa5 100644 --- a/packages/SystemUI/res/layout/quick_settings_tile_rssi.xml +++ b/packages/SystemUI/res/layout/quick_settings_tile_rssi.xml @@ -13,32 +13,49 @@ See the License for the specific language governing permissions and limitations under the License. --> - + android:layout_gravity="top"> + + - \ No newline at end of file + \ No newline at end of file diff --git a/packages/SystemUI/res/layout/quick_settings_tile_wifi.xml b/packages/SystemUI/res/layout/quick_settings_tile_wifi.xml new file mode 100644 index 0000000..e61c595 --- /dev/null +++ b/packages/SystemUI/res/layout/quick_settings_tile_wifi.xml @@ -0,0 +1,57 @@ + + + + + + + + \ No newline at end of file diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java index 0d591ba..68ee2b5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.phone; +import android.animation.ValueAnimator; import android.app.ActivityManagerNative; import android.app.AlertDialog; import android.app.Dialog; @@ -62,6 +63,7 @@ import android.widget.ImageView; import android.widget.TextView; import com.android.systemui.R; +import com.android.systemui.statusbar.phone.QuickSettingsModel.ActivityState; import com.android.systemui.statusbar.phone.QuickSettingsModel.BluetoothState; import com.android.systemui.statusbar.phone.QuickSettingsModel.RSSIState; import com.android.systemui.statusbar.phone.QuickSettingsModel.State; @@ -401,8 +403,9 @@ class QuickSettings { private void addSystemTiles(ViewGroup parent, LayoutInflater inflater) { // Wi-fi - final QuickSettingsBasicTile wifiTile - = new QuickSettingsBasicTile(mContext); + final QuickSettingsTileView wifiTile = (QuickSettingsTileView) + inflater.inflate(R.layout.quick_settings_tile, parent, false); + wifiTile.setContent(R.layout.quick_settings_tile_wifi, inflater); wifiTile.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -433,12 +436,15 @@ class QuickSettings { return true; }} ); } - mModel.addWifiTile(wifiTile, new QuickSettingsModel.RefreshCallback() { + mModel.addWifiTile(wifiTile, new NetworkActivityCallback() { @Override - public void refreshView(QuickSettingsTileView unused, State state) { + public void refreshView(QuickSettingsTileView view, State state) { WifiState wifiState = (WifiState) state; - wifiTile.setImageResource(wifiState.iconId); - wifiTile.setText(wifiState.label); + ImageView iv = (ImageView) view.findViewById(R.id.image); + iv.setImageResource(wifiState.iconId); + setActivity(view, wifiState); + TextView tv = (TextView) view.findViewById(R.id.text); + tv.setText(wifiState.label); wifiTile.setContentDescription(mContext.getString( R.string.accessibility_quick_settings_wifi, wifiState.signalContentDescription, @@ -462,7 +468,7 @@ class QuickSettings { startSettingsActivity(intent); } }); - mModel.addRSSITile(rssiTile, new QuickSettingsModel.RefreshCallback() { + mModel.addRSSITile(rssiTile, new NetworkActivityCallback() { @Override public void refreshView(QuickSettingsTileView view, State state) { RSSIState rssiState = (RSSIState) state; @@ -478,6 +484,8 @@ class QuickSettings { } else { iov.setImageDrawable(null); } + setActivity(view, rssiState); + tv.setText(state.label); view.setContentDescription(mContext.getResources().getString( R.string.accessibility_quick_settings_mobile, @@ -942,4 +950,25 @@ class QuickSettings { } }; + + private abstract static class NetworkActivityCallback + implements QuickSettingsModel.RefreshCallback { + private final long mDefaultDuration = new ValueAnimator().getDuration(); + private final long mShortDuration = mDefaultDuration / 3; + + public void setActivity(View view, ActivityState state) { + setVisibility(view.findViewById(R.id.activity_in), state.activityIn); + setVisibility(view.findViewById(R.id.activity_out), state.activityOut); + } + + private void setVisibility(View view, boolean visible) { + final float newAlpha = visible ? 1 : 0; + if (view.getAlpha() != newAlpha) { + view.animate() + .setDuration(visible ? mShortDuration : mDefaultDuration) + .alpha(newAlpha) + .start(); + } + } + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java index b9e3059..9d0418d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java @@ -70,13 +70,17 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, int batteryLevel; boolean pluggedIn; } - static class RSSIState extends State { + static class ActivityState extends State { + boolean activityIn; + boolean activityOut; + } + static class RSSIState extends ActivityState { int signalIconId; String signalContentDescription; int dataTypeIconId; String dataContentDescription; } - static class WifiState extends State { + static class WifiState extends ActivityState { String signalContentDescription; boolean connected; } @@ -430,6 +434,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, // NetworkSignalChanged callback @Override public void onWifiSignalChanged(boolean enabled, int wifiSignalIconId, + boolean activityIn, boolean activityOut, String wifiSignalContentDescription, String enabledDesc) { // TODO: If view is in awaiting state, disable Resources r = mContext.getResources(); @@ -438,6 +443,8 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, boolean wifiNotConnected = (wifiSignalIconId > 0) && (enabledDesc == null); mWifiState.enabled = enabled; mWifiState.connected = wifiConnected; + mWifiState.activityIn = enabled && activityIn; + mWifiState.activityOut = enabled && activityOut; if (wifiConnected) { mWifiState.iconId = wifiSignalIconId; mWifiState.label = removeDoubleQuotes(enabledDesc); @@ -468,7 +475,8 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, @Override public void onMobileDataSignalChanged( boolean enabled, int mobileSignalIconId, String signalContentDescription, - int dataTypeIconId, String dataContentDescription, String enabledDesc) { + int dataTypeIconId, boolean activityIn, boolean activityOut, + String dataContentDescription,String enabledDesc) { if (deviceHasMobileData()) { // TODO: If view is in awaiting state, disable Resources r = mContext.getResources(); @@ -481,6 +489,8 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, mRSSIState.dataTypeIconId = enabled && (dataTypeIconId > 0) && !mWifiState.enabled ? dataTypeIconId : 0; + mRSSIState.activityIn = enabled && activityIn; + mRSSIState.activityOut = enabled && activityOut; mRSSIState.dataContentDescription = enabled && (dataTypeIconId > 0) && !mWifiState.enabled ? dataContentDescription : r.getString(R.string.accessibility_no_data); 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 1e7e692..a715450 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java @@ -165,9 +165,11 @@ public class NetworkController extends BroadcastReceiver implements DemoMode { public interface NetworkSignalChangedCallback { void onWifiSignalChanged(boolean enabled, int wifiSignalIconId, - String wifitSignalContentDescriptionId, String description); + boolean activityIn, boolean activityOut, + String wifiSignalContentDescriptionId, String description); void onMobileDataSignalChanged(boolean enabled, int mobileSignalIconId, String mobileSignalContentDescriptionId, int dataTypeIconId, + boolean activityIn, boolean activityOut, String dataTypeContentDescriptionId, String description); void onAirplaneModeChanged(boolean enabled); } @@ -313,22 +315,33 @@ public class NetworkController extends BroadcastReceiver implements DemoMode { boolean wifiEnabled = mWifiEnabled && (mWifiConnected || !mHasMobileDataFeature); String wifiDesc = wifiEnabled ? mWifiSsid : null; - cb.onWifiSignalChanged(wifiEnabled, mQSWifiIconId, mContentDescriptionWifi, wifiDesc); - + boolean wifiIn = wifiEnabled && mWifiSsid != null + && (mWifiActivity == WifiManager.DATA_ACTIVITY_INOUT + || mWifiActivity == WifiManager.DATA_ACTIVITY_IN); + boolean wifiOut = wifiEnabled && mWifiSsid != null + && (mWifiActivity == WifiManager.DATA_ACTIVITY_INOUT + || mWifiActivity == WifiManager.DATA_ACTIVITY_OUT); + cb.onWifiSignalChanged(wifiEnabled, mQSWifiIconId, wifiIn, wifiOut, + mContentDescriptionWifi, wifiDesc); + + boolean mobileIn = mDataConnected && (mDataActivity == TelephonyManager.DATA_ACTIVITY_INOUT + || mDataActivity == TelephonyManager.DATA_ACTIVITY_IN); + boolean mobileOut = mDataConnected && (mDataActivity == TelephonyManager.DATA_ACTIVITY_INOUT + || mDataActivity == TelephonyManager.DATA_ACTIVITY_OUT); if (isEmergencyOnly()) { cb.onMobileDataSignalChanged(false, mQSPhoneSignalIconId, - mContentDescriptionPhoneSignal, mQSDataTypeIconId, mContentDescriptionDataType, - null); + mContentDescriptionPhoneSignal, mQSDataTypeIconId, mobileIn, mobileOut, + mContentDescriptionDataType, null); } else { if (mIsWimaxEnabled && mWimaxConnected) { // Wimax is special cb.onMobileDataSignalChanged(true, mQSPhoneSignalIconId, - mContentDescriptionPhoneSignal, mQSDataTypeIconId, + mContentDescriptionPhoneSignal, mQSDataTypeIconId, mobileIn, mobileOut, mContentDescriptionDataType, mNetworkName); } else { // Normal mobile data cb.onMobileDataSignalChanged(mHasMobileDataFeature, mQSPhoneSignalIconId, - mContentDescriptionPhoneSignal, mQSDataTypeIconId, + mContentDescriptionPhoneSignal, mQSDataTypeIconId, mobileIn, mobileOut, mContentDescriptionDataType, mNetworkName); } } @@ -1125,6 +1138,11 @@ public class NetworkController extends BroadcastReceiver implements DemoMode { + " mBluetoothTetherIconId=0x" + Integer.toHexString(mBluetoothTetherIconId)); } + // update QS + for (NetworkSignalChangedCallback cb : mSignalsChangedCallbacks) { + notifySignalsChangedCallbacks(cb); + } + if (mLastPhoneSignalIconId != mPhoneSignalIconId || mLastWifiIconId != mWifiIconId || mLastWimaxIconId != mWimaxIconId @@ -1136,9 +1154,6 @@ public class NetworkController extends BroadcastReceiver implements DemoMode { for (SignalCluster cluster : mSignalClusters) { refreshSignalCluster(cluster); } - for (NetworkSignalChangedCallback cb : mSignalsChangedCallbacks) { - notifySignalsChangedCallbacks(cb); - } } if (mLastAirplaneMode != mAirplaneMode) { -- cgit v1.1