summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com/android/systemui/quicksettings/DockBatteryTile.java
diff options
context:
space:
mode:
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/quicksettings/DockBatteryTile.java')
-rw-r--r--packages/SystemUI/src/com/android/systemui/quicksettings/DockBatteryTile.java91
1 files changed, 91 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/quicksettings/DockBatteryTile.java b/packages/SystemUI/src/com/android/systemui/quicksettings/DockBatteryTile.java
new file mode 100644
index 0000000..9367fcb
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/quicksettings/DockBatteryTile.java
@@ -0,0 +1,91 @@
+package com.android.systemui.quicksettings;
+
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.LevelListDrawable;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.android.systemui.R;
+import com.android.systemui.statusbar.phone.QuickSettingsContainerView;
+import com.android.systemui.statusbar.phone.QuickSettingsController;
+import com.android.systemui.statusbar.policy.DockBatteryController;
+import com.android.systemui.statusbar.policy.DockBatteryController.DockBatteryStateChangeCallback;
+
+public class DockBatteryTile extends QuickSettingsTile implements DockBatteryStateChangeCallback {
+
+ private boolean mPresent = false;
+ private boolean mCharging = false;
+ private int mDockBatteryLevel = 0;
+ private Drawable mDockBatteryIcon;
+
+ private LevelListDrawable mDockBatteryLevels;
+ private LevelListDrawable mChargingDockBatteryLevels;
+
+ public DockBatteryTile(Context context, LayoutInflater inflater,
+ QuickSettingsContainerView container, QuickSettingsController qsc) {
+ super(context, inflater, container, qsc);
+
+ mTileLayout = R.layout.quick_settings_tile_dock_battery;
+
+ mOnClick = new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ startSettingsActivity(Intent.ACTION_POWER_USAGE_SUMMARY);
+ }
+ };
+ }
+
+ @Override
+ void onPostCreate() {
+ updateTile();
+ DockBatteryController controller = new DockBatteryController(mContext);
+ controller.addStateChangedCallback(this);
+ super.onPostCreate();
+ }
+
+ @Override
+ public void onDockBatteryLevelChanged(int level, boolean present, boolean pluggedIn) {
+ mDockBatteryLevel = level;
+ mCharging = pluggedIn;
+ mPresent = present;
+ updateResources();
+ }
+
+ @Override
+ public void updateResources() {
+ updateTile();
+ super.updateResources();
+ }
+
+ private synchronized void updateTile() {
+ mTile.setVisibility(mPresent ? View.VISIBLE : View.GONE);
+ mDockBatteryLevels = (LevelListDrawable) mContext.getResources().getDrawable(R.drawable.qs_sys_dock_battery);
+ mChargingDockBatteryLevels = (LevelListDrawable) mContext.getResources().getDrawable(R.drawable.qs_sys_dock_battery_charging);
+ mDockBatteryIcon = mCharging
+ ? mChargingDockBatteryLevels :
+ mDockBatteryLevels;
+ if(mDockBatteryLevel == 100) {
+ mLabel = mContext.getString(R.string.quick_settings_battery_charged_label);
+ }else{
+ mLabel = mCharging
+ ? mContext.getString(R.string.quick_settings_battery_charging_label,
+ mDockBatteryLevel)
+ : mContext.getString(R.string.status_bar_settings_battery_meter_format,
+ mDockBatteryLevel);
+ }
+ }
+
+ @Override
+ void updateQuickSettings() {
+ TextView tv = (TextView) mTile.findViewById(R.id.dock_battery_textview);
+ tv.setText(mLabel);
+ ImageView iv = (ImageView) mTile.findViewById(R.id.dock_battery_image);
+ iv.setImageDrawable(mDockBatteryIcon);
+ iv.setImageLevel(mDockBatteryLevel);
+ }
+
+}