diff options
| author | Daniel Sandler <dsandler@google.com> | 2010-08-13 10:12:48 -0400 |
|---|---|---|
| committer | Daniel Sandler <dsandler@google.com> | 2010-08-13 15:04:40 -0400 |
| commit | 1e3ed8fc9537209920eea6adf5e576058f81d587 (patch) | |
| tree | 5700992c15e3babe262214eb5cdbd3ce280e6ea4 /packages | |
| parent | 3778a632a052fc1118fb430cb715beec38e97b42 (diff) | |
| download | frameworks_base-1e3ed8fc9537209920eea6adf5e576058f81d587.zip frameworks_base-1e3ed8fc9537209920eea6adf5e576058f81d587.tar.gz frameworks_base-1e3ed8fc9537209920eea6adf5e576058f81d587.tar.bz2 | |
Battery meter now functioning in the system bar and settings panel.
Change-Id: I08881a597f166eaeabd01d550a59109661535639
Diffstat (limited to 'packages')
31 files changed, 179 insertions, 10 deletions
diff --git a/packages/SystemUI/res/drawable-hdpi/battery_0.png b/packages/SystemUI/res/drawable-hdpi/battery_0.png Binary files differnew file mode 100644 index 0000000..f4103a8 --- /dev/null +++ b/packages/SystemUI/res/drawable-hdpi/battery_0.png diff --git a/packages/SystemUI/res/drawable-hdpi/battery_100.png b/packages/SystemUI/res/drawable-hdpi/battery_100.png Binary files differnew file mode 100644 index 0000000..061cbe5 --- /dev/null +++ b/packages/SystemUI/res/drawable-hdpi/battery_100.png diff --git a/packages/SystemUI/res/drawable-hdpi/battery_20.png b/packages/SystemUI/res/drawable-hdpi/battery_20.png Binary files differnew file mode 100644 index 0000000..0064027 --- /dev/null +++ b/packages/SystemUI/res/drawable-hdpi/battery_20.png diff --git a/packages/SystemUI/res/drawable-hdpi/battery_40.png b/packages/SystemUI/res/drawable-hdpi/battery_40.png Binary files differnew file mode 100644 index 0000000..10de0e7 --- /dev/null +++ b/packages/SystemUI/res/drawable-hdpi/battery_40.png diff --git a/packages/SystemUI/res/drawable-hdpi/battery_60.png b/packages/SystemUI/res/drawable-hdpi/battery_60.png Binary files differnew file mode 100644 index 0000000..aa2b8ef --- /dev/null +++ b/packages/SystemUI/res/drawable-hdpi/battery_60.png diff --git a/packages/SystemUI/res/drawable-hdpi/battery_80.png b/packages/SystemUI/res/drawable-hdpi/battery_80.png Binary files differnew file mode 100644 index 0000000..fe231f0 --- /dev/null +++ b/packages/SystemUI/res/drawable-hdpi/battery_80.png diff --git a/packages/SystemUI/res/drawable-hdpi/signal_0.png b/packages/SystemUI/res/drawable-hdpi/signal_0.png Binary files differnew file mode 100644 index 0000000..00e36c4 --- /dev/null +++ b/packages/SystemUI/res/drawable-hdpi/signal_0.png diff --git a/packages/SystemUI/res/drawable-hdpi/signal_100.png b/packages/SystemUI/res/drawable-hdpi/signal_100.png Binary files differnew file mode 100644 index 0000000..96e52ff --- /dev/null +++ b/packages/SystemUI/res/drawable-hdpi/signal_100.png diff --git a/packages/SystemUI/res/drawable-hdpi/signal_20.png b/packages/SystemUI/res/drawable-hdpi/signal_20.png Binary files differnew file mode 100644 index 0000000..c0f652a --- /dev/null +++ b/packages/SystemUI/res/drawable-hdpi/signal_20.png diff --git a/packages/SystemUI/res/drawable-hdpi/signal_40.png b/packages/SystemUI/res/drawable-hdpi/signal_40.png Binary files differnew file mode 100644 index 0000000..995dd8e --- /dev/null +++ b/packages/SystemUI/res/drawable-hdpi/signal_40.png diff --git a/packages/SystemUI/res/drawable-hdpi/signal_60.png b/packages/SystemUI/res/drawable-hdpi/signal_60.png Binary files differnew file mode 100644 index 0000000..51e31ba --- /dev/null +++ b/packages/SystemUI/res/drawable-hdpi/signal_60.png diff --git a/packages/SystemUI/res/drawable-hdpi/signal_80.png b/packages/SystemUI/res/drawable-hdpi/signal_80.png Binary files differnew file mode 100644 index 0000000..afa656e --- /dev/null +++ b/packages/SystemUI/res/drawable-hdpi/signal_80.png diff --git a/packages/SystemUI/res/drawable-mdpi/battery_0.png b/packages/SystemUI/res/drawable-mdpi/battery_0.png Binary files differnew file mode 100644 index 0000000..b5d36cc --- /dev/null +++ b/packages/SystemUI/res/drawable-mdpi/battery_0.png diff --git a/packages/SystemUI/res/drawable-mdpi/battery_100.png b/packages/SystemUI/res/drawable-mdpi/battery_100.png Binary files differnew file mode 100644 index 0000000..75cc409 --- /dev/null +++ b/packages/SystemUI/res/drawable-mdpi/battery_100.png diff --git a/packages/SystemUI/res/drawable-mdpi/battery_20.png b/packages/SystemUI/res/drawable-mdpi/battery_20.png Binary files differnew file mode 100644 index 0000000..c0d0030 --- /dev/null +++ b/packages/SystemUI/res/drawable-mdpi/battery_20.png diff --git a/packages/SystemUI/res/drawable-mdpi/battery_40.png b/packages/SystemUI/res/drawable-mdpi/battery_40.png Binary files differnew file mode 100644 index 0000000..e301c08 --- /dev/null +++ b/packages/SystemUI/res/drawable-mdpi/battery_40.png diff --git a/packages/SystemUI/res/drawable-mdpi/battery_60.png b/packages/SystemUI/res/drawable-mdpi/battery_60.png Binary files differnew file mode 100644 index 0000000..0fde1fa --- /dev/null +++ b/packages/SystemUI/res/drawable-mdpi/battery_60.png diff --git a/packages/SystemUI/res/drawable-mdpi/battery_80.png b/packages/SystemUI/res/drawable-mdpi/battery_80.png Binary files differnew file mode 100644 index 0000000..15c4e1c --- /dev/null +++ b/packages/SystemUI/res/drawable-mdpi/battery_80.png diff --git a/packages/SystemUI/res/drawable-mdpi/signal_0.png b/packages/SystemUI/res/drawable-mdpi/signal_0.png Binary files differnew file mode 100644 index 0000000..6533677 --- /dev/null +++ b/packages/SystemUI/res/drawable-mdpi/signal_0.png diff --git a/packages/SystemUI/res/drawable-mdpi/signal_100.png b/packages/SystemUI/res/drawable-mdpi/signal_100.png Binary files differnew file mode 100644 index 0000000..e8976a2 --- /dev/null +++ b/packages/SystemUI/res/drawable-mdpi/signal_100.png diff --git a/packages/SystemUI/res/drawable-mdpi/signal_20.png b/packages/SystemUI/res/drawable-mdpi/signal_20.png Binary files differnew file mode 100644 index 0000000..651e2a9 --- /dev/null +++ b/packages/SystemUI/res/drawable-mdpi/signal_20.png diff --git a/packages/SystemUI/res/drawable-mdpi/signal_40.png b/packages/SystemUI/res/drawable-mdpi/signal_40.png Binary files differnew file mode 100644 index 0000000..6ba7906 --- /dev/null +++ b/packages/SystemUI/res/drawable-mdpi/signal_40.png diff --git a/packages/SystemUI/res/drawable-mdpi/signal_60.png b/packages/SystemUI/res/drawable-mdpi/signal_60.png Binary files differnew file mode 100644 index 0000000..6d2e812 --- /dev/null +++ b/packages/SystemUI/res/drawable-mdpi/signal_60.png diff --git a/packages/SystemUI/res/drawable-mdpi/signal_80.png b/packages/SystemUI/res/drawable-mdpi/signal_80.png Binary files differnew file mode 100644 index 0000000..a152623 --- /dev/null +++ b/packages/SystemUI/res/drawable-mdpi/signal_80.png diff --git a/packages/SystemUI/res/drawable/battery.xml b/packages/SystemUI/res/drawable/battery.xml new file mode 100644 index 0000000..c2294d1 --- /dev/null +++ b/packages/SystemUI/res/drawable/battery.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* //device/apps/common/res/drawable/stat_sys_battery.xml +** +** Copyright 2007, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<level-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:maxLevel="1" android:drawable="@drawable/battery_0" /> + <item android:maxLevel="5"> + <animation-list android:oneshot="false"> + <item android:drawable="@drawable/battery_0" android:duration="250" /> + <item android:drawable="@drawable/battery_20" android:duration="250" /> + </animation-list> + </item> + <item android:maxLevel="20" android:drawable="@drawable/battery_20" /> + <item android:maxLevel="40" android:drawable="@drawable/battery_40" /> + <item android:maxLevel="60" android:drawable="@drawable/battery_60" /> + <item android:maxLevel="80" android:drawable="@drawable/battery_80" /> + <item android:maxLevel="101" android:drawable="@drawable/battery_100" /> +</level-list> + diff --git a/packages/SystemUI/res/drawable/battery_charging.xml b/packages/SystemUI/res/drawable/battery_charging.xml new file mode 100644 index 0000000..2fd0c6d --- /dev/null +++ b/packages/SystemUI/res/drawable/battery_charging.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* //device/apps/common/res/drawable/stat_sys_battery.xml +** +** Copyright 2007, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<level-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:maxLevel="20"> + <animation-list android:oneshot="false"> + <item android:drawable="@drawable/battery_0" android:duration="1000" /> + <item android:drawable="@drawable/battery_20" android:duration="1000" /> + </animation-list> + </item> + <item android:maxLevel="40"> + <animation-list android:oneshot="false"> + <item android:drawable="@drawable/battery_20" android:duration="1000" /> + <item android:drawable="@drawable/battery_40" android:duration="1000" /> + </animation-list> + </item> + <item android:maxLevel="60"> + <animation-list android:oneshot="false"> + <item android:drawable="@drawable/battery_40" android:duration="1000" /> + <item android:drawable="@drawable/battery_60" android:duration="1000" /> + </animation-list> + </item> + <item android:maxLevel="80"> + <animation-list android:oneshot="false"> + <item android:drawable="@drawable/battery_60" android:duration="1000" /> + <item android:drawable="@drawable/battery_80" android:duration="1000" /> + </animation-list> + </item> + <item android:maxLevel="92"> + <animation-list android:oneshot="false"> + <item android:drawable="@drawable/battery_80" android:duration="1000" /> + <item android:drawable="@drawable/battery_100" android:duration="1000" /> + </animation-list> + </item> + <item android:maxLevel="101" android:drawable="@drawable/battery_100" /> +</level-list> + diff --git a/packages/SystemUI/res/drawable/signal.xml b/packages/SystemUI/res/drawable/signal.xml new file mode 100644 index 0000000..8b4f56b --- /dev/null +++ b/packages/SystemUI/res/drawable/signal.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* //device/apps/common/res/drawable/stat_sys_battery.xml +** +** Copyright 2007, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<level-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:maxLevel="01" android:drawable="@drawable/signal_0" /> + <item android:maxLevel="20" android:drawable="@drawable/signal_20" /> + <item android:maxLevel="40" android:drawable="@drawable/signal_40" /> + <item android:maxLevel="60" android:drawable="@drawable/signal_60" /> + <item android:maxLevel="80" android:drawable="@drawable/signal_80" /> + <item android:maxLevel="101" android:drawable="@drawable/signal_100" /> + +</level-list> + diff --git a/packages/SystemUI/res/layout-xlarge/status_bar_center.xml b/packages/SystemUI/res/layout-xlarge/status_bar_center.xml index c32e997..775fea0 100644 --- a/packages/SystemUI/res/layout-xlarge/status_bar_center.xml +++ b/packages/SystemUI/res/layout-xlarge/status_bar_center.xml @@ -36,18 +36,20 @@ android:padding="2dip" /> <ImageView - android:layout_width="wrap_content" + android:id="@+id/battery" + android:layout_width="50dip" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@id/clock" - android:src="@drawable/dots_empty" + android:src="@drawable/battery" /> <ImageView - android:layout_width="wrap_content" + android:id="@+id/signal" + android:layout_width="50dip" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_below="@id/clock" - android:src="@drawable/dots_full" + android:src="@drawable/signal" /> </RelativeLayout> diff --git a/packages/SystemUI/res/layout-xlarge/sysbar_panel_system.xml b/packages/SystemUI/res/layout-xlarge/sysbar_panel_system.xml index fc37900..e5b2f53 100644 --- a/packages/SystemUI/res/layout-xlarge/sysbar_panel_system.xml +++ b/packages/SystemUI/res/layout-xlarge/sysbar_panel_system.xml @@ -96,6 +96,7 @@ <TextView android:id="@+id/battery_info" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:gravity="center" android:layout_below="@id/battery_meter" /> @@ -121,12 +122,13 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" - android:src="@drawable/dots_full" + android:src="@drawable/signal" /> <TextView android:id="@+id/signal_info" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:gravity="center" android:layout_below="@id/signal_meter" /> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/SystemPanel.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/SystemPanel.java index 236b521..c864daa 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/SystemPanel.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/SystemPanel.java @@ -78,14 +78,25 @@ public class SystemPanel extends LinearLayout { private ImageButton mOrientationButton; private ImageButton mAirplaneButton; + private ImageView mBatteryMeter; + private ImageView mSignalMeter; + + private TextView mBatteryText; + private TextView mSignalText; + private final AudioManager mAudioManager; private BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - if (intent.getAction().equals(AudioManager.RINGER_MODE_CHANGED_ACTION)) { + final String action = intent.getAction(); + if (action.equals(AudioManager.RINGER_MODE_CHANGED_ACTION)) { mSoundButton.setAlpha(getSilentMode() ? 0x7F : 0xFF); + } else if (action.equals(Intent.ACTION_BATTERY_CHANGED)) { + // hack for now + mBar.updateBatteryDisplay(intent.getIntExtra("level", 0), + (intent.getIntExtra("plugged", 0) != 0)); } } }; @@ -93,6 +104,12 @@ public class SystemPanel extends LinearLayout { public void setBar(TabletStatusBarService bar) { mBar = bar; } + + public void setBatteryLevel(int level, boolean plugged) { + mBatteryMeter.setImageResource(plugged ? R.drawable.battery_charging : R.drawable.battery); + mBatteryMeter.setImageLevel(level); + mBatteryText.setText(String.format("Battery: %d%%", level)); + } public SystemPanel(Context context, AttributeSet attrs) { this(context, attrs, 0); @@ -151,8 +168,21 @@ public class SystemPanel extends LinearLayout { } }); - IntentFilter filter = new IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION); + IntentFilter filter = new IntentFilter(); + filter.addAction(AudioManager.RINGER_MODE_CHANGED_ACTION); + filter.addAction(Intent.ACTION_BATTERY_CHANGED); + filter.addAction(Intent.ACTION_POWER_CONNECTED); getContext().registerReceiver(mReceiver, filter); + + mBatteryMeter = (ImageView)findViewById(R.id.battery_meter); + mBatteryMeter.setImageResource(R.drawable.battery); + mBatteryMeter.setImageLevel(0); + mSignalMeter = (ImageView)findViewById(R.id.signal_meter); + mBatteryMeter.setImageResource(R.drawable.signal); + mBatteryMeter.setImageLevel(0); + + mBatteryText = (TextView)findViewById(R.id.battery_info); + mSignalText = (TextView)findViewById(R.id.signal_info); } public void onDetachedFromWindow() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarService.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarService.java index 9c86f2d..b0ffaa5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarService.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarService.java @@ -75,6 +75,9 @@ public class TabletStatusBarService extends StatusBarService { ViewGroup mPile; TextView mClearButton; + ImageView mBatteryMeter; + ImageView mSignalMeter; + NotificationIconArea.IconLayout mIconLayout; KickerController mKicker; @@ -151,6 +154,10 @@ public class TabletStatusBarService extends StatusBarService { mKicker = new KickerController((Context)this, mStatusBarView); + // System info (center) + mBatteryMeter = (ImageView) sb.findViewById(R.id.battery); + mSignalMeter = (ImageView) sb.findViewById(R.id.signal); + // Add the windows addPanelWindows(); @@ -198,18 +205,27 @@ public class TabletStatusBarService extends StatusBarService { } } } + + StatusBarIcon mBatterySBI; + StatusBarIcon mSignalSBI; + public void updateBatteryDisplay(int level, boolean plugged) { + if (DEBUG) Slog.d(TAG, "battery=" + level + (plugged ? " - plugged" : " - unplugged")); + mBatteryMeter.setImageResource(plugged ? R.drawable.battery_charging : R.drawable.battery); + mBatteryMeter.setImageLevel(level); + mSystemPanel.setBatteryLevel(level, plugged); + } public void addIcon(String slot, int index, int viewIndex, StatusBarIcon icon) { - // TODO + if (DEBUG) Slog.d(TAG, "addIcon(" + slot + ") -> " + icon); } public void updateIcon(String slot, int index, int viewIndex, StatusBarIcon old, StatusBarIcon icon) { - // TODO + if (DEBUG) Slog.d(TAG, "updateIcon(" + slot + ") -> " + icon); } public void removeIcon(String slot, int index, int viewIndex) { - // TODO + if (DEBUG) Slog.d(TAG, "removeIcon(" + slot + ")"); } public void addNotification(IBinder key, StatusBarNotification notification) { |
