diff options
author | Ruben Brunk <rubenbrunk@google.com> | 2015-06-06 00:04:17 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-06-06 00:04:19 +0000 |
commit | e35df2ff3b8188bdf710f84390f0fc60ec329ab5 (patch) | |
tree | 806adf35360fc91df1e37c410bf7c71aa648c1d5 /src/com/android/settings/fuelgauge | |
parent | 26a42d1099fece0bc388db2b923ad5c5411bd4f3 (diff) | |
parent | 2627190bac86184ce7bfb64f3bb44b98b8c03ff6 (diff) | |
download | packages_apps_Settings-e35df2ff3b8188bdf710f84390f0fc60ec329ab5.zip packages_apps_Settings-e35df2ff3b8188bdf710f84390f0fc60ec329ab5.tar.gz packages_apps_Settings-e35df2ff3b8188bdf710f84390f0fc60ec329ab5.tar.bz2 |
Merge "Add UI for camera + flashlight battery reporting." into mnc-dev
Diffstat (limited to 'src/com/android/settings/fuelgauge')
3 files changed, 97 insertions, 10 deletions
diff --git a/src/com/android/settings/fuelgauge/BatteryEntry.java b/src/com/android/settings/fuelgauge/BatteryEntry.java index bfae578..8227c71 100644 --- a/src/com/android/settings/fuelgauge/BatteryEntry.java +++ b/src/com/android/settings/fuelgauge/BatteryEntry.java @@ -182,6 +182,10 @@ public class BatteryEntry { name = context.getResources().getString(R.string.power_overcounted); iconId = R.drawable.ic_power_system; break; + case CAMERA: + name = context.getResources().getString(R.string.power_camera); + iconId = R.drawable.ic_settings_camera; + break; } if (iconId > 0) { icon = context.getDrawable(iconId); diff --git a/src/com/android/settings/fuelgauge/BatteryHistoryChart.java b/src/com/android/settings/fuelgauge/BatteryHistoryChart.java index 9ec0565..76acf69 100644 --- a/src/com/android/settings/fuelgauge/BatteryHistoryChart.java +++ b/src/com/android/settings/fuelgauge/BatteryHistoryChart.java @@ -131,6 +131,8 @@ public class BatteryHistoryChart extends View { final Paint mChargingPaint = new Paint(); final Paint mScreenOnPaint = new Paint(); final Paint mGpsOnPaint = new Paint(); + final Paint mFlashlightOnPaint = new Paint(); + final Paint mCameraOnPaint = new Paint(); final Paint mWifiRunningPaint = new Paint(); final Paint mCpuRunningPaint = new Paint(); final Paint mDateLinePaint = new Paint(); @@ -147,6 +149,8 @@ public class BatteryHistoryChart extends View { final Path mChargingPath = new Path(); final Path mScreenOnPath = new Path(); final Path mGpsOnPath = new Path(); + final Path mFlashlightOnPath = new Path(); + final Path mCameraOnPath = new Path(); final Path mWifiRunningPath = new Path(); final Path mCpuRunningPath = new Path(); final Path mDateLinePath = new Path(); @@ -164,6 +168,8 @@ public class BatteryHistoryChart extends View { String mChargingLabel; String mScreenOnLabel; String mGpsOnLabel; + String mCameraOnLabel; + String mFlashlightOnLabel; String mWifiRunningLabel; String mCpuRunningLabel; String mPhoneSignalLabel; @@ -195,6 +201,8 @@ public class BatteryHistoryChart extends View { int mChargingOffset; int mScreenOnOffset; int mGpsOnOffset; + int mFlashlightOnOffset; + int mCameraOnOffset; int mWifiRunningOffset; int mCpuRunningOffset; int mPhoneSignalOffset; @@ -217,6 +225,8 @@ public class BatteryHistoryChart extends View { boolean mHaveWifi; boolean mHaveGps; boolean mHavePhoneSignal; + boolean mHaveCamera; + boolean mHaveFlashlight; final ArrayList<TimeLabel> mTimeLabels = new ArrayList<TimeLabel>(); final ArrayList<DateLabel> mDateLabels = new ArrayList<DateLabel>(); @@ -367,6 +377,8 @@ public class BatteryHistoryChart extends View { mChargingPaint.setStyle(Paint.Style.STROKE); mScreenOnPaint.setStyle(Paint.Style.STROKE); mGpsOnPaint.setStyle(Paint.Style.STROKE); + mCameraOnPaint.setStyle(Paint.Style.STROKE); + mFlashlightOnPaint.setStyle(Paint.Style.STROKE); mWifiRunningPaint.setStyle(Paint.Style.STROKE); mCpuRunningPaint.setStyle(Paint.Style.STROKE); mPhoneSignalChart.setColors(com.android.settings.Utils.BADNESS_COLORS); @@ -374,6 +386,8 @@ public class BatteryHistoryChart extends View { mDebugRectPaint.setStyle(Paint.Style.STROKE); mScreenOnPaint.setColor(0xFF009688); mGpsOnPaint.setColor(0xFF009688); + mCameraOnPaint.setColor(0xFF009688); + mFlashlightOnPaint.setColor(0xFF009688); mWifiRunningPaint.setColor(0xFF009688); mCpuRunningPaint.setColor(0xFF009688); mChargingPaint.setColor(0xFF009688); @@ -435,6 +449,8 @@ public class BatteryHistoryChart extends View { mBatteryBackgroundPaint.setColor(a.getInt(attr, 0)); mScreenOnPaint.setColor(a.getInt(attr, 0)); mGpsOnPaint.setColor(a.getInt(attr, 0)); + mCameraOnPaint.setColor(a.getInt(attr, 0)); + mFlashlightOnPaint.setColor(a.getInt(attr, 0)); mWifiRunningPaint.setColor(a.getInt(attr, 0)); mCpuRunningPaint.setColor(a.getInt(attr, 0)); mChargingPaint.setColor(a.getInt(attr, 0)); @@ -485,6 +501,8 @@ public class BatteryHistoryChart extends View { mChargingLabel = getContext().getString(R.string.battery_stats_charging_label); mScreenOnLabel = getContext().getString(R.string.battery_stats_screen_on_label); mGpsOnLabel = getContext().getString(R.string.battery_stats_gps_on_label); + mCameraOnLabel = getContext().getString(R.string.battery_stats_camera_on_label); + mFlashlightOnLabel = getContext().getString(R.string.battery_stats_flashlight_on_label); mWifiRunningLabel = getContext().getString(R.string.battery_stats_wifi_running_label); mCpuRunningLabel = getContext().getString(R.string.battery_stats_wake_lock_label); mPhoneSignalLabel = getContext().getString(R.string.battery_stats_phone_signal_label); @@ -599,6 +617,8 @@ public class BatteryHistoryChart extends View { mEndWallTime = mEndDataWallTime + (remainingTimeUs/1000); mNumHist = lastInteresting; mHaveGps = (aggrStates&HistoryItem.STATE_GPS_ON_FLAG) != 0; + mHaveFlashlight = (aggrStates2&HistoryItem.STATE2_FLASHLIGHT_FLAG) != 0; + mHaveCamera = (aggrStates2&HistoryItem.STATE2_CAMERA_FLAG) != 0; mHaveWifi = (aggrStates2&HistoryItem.STATE2_WIFI_RUNNING_FLAG) != 0 || (aggrStates&(HistoryItem.STATE_WIFI_FULL_LOCK_FLAG |HistoryItem.STATE_WIFI_MULTICAST_ON_FLAG @@ -628,7 +648,8 @@ public class BatteryHistoryChart extends View { void finishPaths(int w, int h, int levelh, int startX, int y, Path curLevelPath, int lastX, boolean lastCharging, boolean lastScreenOn, boolean lastGpsOn, - boolean lastWifiRunning, boolean lastCpuRunning, Path lastPath) { + boolean lastFlashlightOn, boolean lastCameraOn, boolean lastWifiRunning, + boolean lastCpuRunning, Path lastPath) { if (curLevelPath != null) { if (lastX >= 0 && lastX < w) { if (lastPath != null) { @@ -650,6 +671,12 @@ public class BatteryHistoryChart extends View { if (lastGpsOn) { mGpsOnPath.lineTo(w, h-mGpsOnOffset); } + if (lastFlashlightOn) { + mFlashlightOnPath.lineTo(w, h-mFlashlightOnOffset); + } + if (lastCameraOn) { + mCameraOnPath.lineTo(w, h-mCameraOnOffset); + } if (lastWifiRunning) { mWifiRunningPath.lineTo(w, h-mWifiRunningOffset); } @@ -720,6 +747,8 @@ public class BatteryHistoryChart extends View { mChargingPaint.setStrokeWidth(mLineWidth); mScreenOnPaint.setStrokeWidth(mLineWidth); mGpsOnPaint.setStrokeWidth(mLineWidth); + mCameraOnPaint.setStrokeWidth(mLineWidth); + mFlashlightOnPaint.setStrokeWidth(mLineWidth); mWifiRunningPaint.setStrokeWidth(mLineWidth); mCpuRunningPaint.setStrokeWidth(mLineWidth); mDebugRectPaint.setStrokeWidth(1); @@ -732,15 +761,18 @@ public class BatteryHistoryChart extends View { mCpuRunningOffset = mScreenOnOffset + fullBarOffset; mWifiRunningOffset = mCpuRunningOffset + fullBarOffset; mGpsOnOffset = mWifiRunningOffset + (mHaveWifi ? fullBarOffset : 0); - mPhoneSignalOffset = mGpsOnOffset + (mHaveGps ? fullBarOffset : 0); + mFlashlightOnOffset = mGpsOnOffset + (mHaveGps ? fullBarOffset : 0); + mCameraOnOffset = mFlashlightOnOffset + (mHaveFlashlight ? fullBarOffset : 0); + mPhoneSignalOffset = mCameraOnOffset + (mHaveCamera ? fullBarOffset : 0); mLevelOffset = mPhoneSignalOffset + (mHavePhoneSignal ? fullBarOffset : 0) + mLineWidth*2 + mLineWidth/2; if (mHavePhoneSignal) { mPhoneSignalChart.init(w); } } else { - mScreenOnOffset = mGpsOnOffset = mWifiRunningOffset - = mCpuRunningOffset = mChargingOffset = mPhoneSignalOffset = 0; + mScreenOnOffset = mGpsOnOffset = mCameraOnOffset = mFlashlightOnOffset = + mWifiRunningOffset = mCpuRunningOffset = mChargingOffset = + mPhoneSignalOffset = 0; mLevelOffset = fullBarOffset + mThinLineWidth*4; if (mHavePhoneSignal) { mPhoneSignalChart.init(0); @@ -754,6 +786,8 @@ public class BatteryHistoryChart extends View { mBatCriticalPath.reset(); mScreenOnPath.reset(); mGpsOnPath.reset(); + mFlashlightOnPath.reset(); + mCameraOnPath.reset(); mWifiRunningPath.reset(); mCpuRunningPath.reset(); mChargingPath.reset(); @@ -778,6 +812,7 @@ public class BatteryHistoryChart extends View { Path curLevelPath = null; Path lastLinePath = null; boolean lastCharging = false, lastScreenOn = false, lastGpsOn = false; + boolean lastFlashlightOn = false, lastCameraOn = false; boolean lastWifiRunning = false, lastWifiSupplRunning = false, lastCpuRunning = false; int lastWifiSupplState = BatteryStats.WIFI_SUPPL_STATE_INVALID; final int N = mNumHist; @@ -871,6 +906,28 @@ public class BatteryHistoryChart extends View { lastGpsOn = gpsOn; } + final boolean flashlightOn = + (rec.states2&HistoryItem.STATE2_FLASHLIGHT_FLAG) != 0; + if (flashlightOn != lastFlashlightOn) { + if (flashlightOn) { + mFlashlightOnPath.moveTo(x, h-mFlashlightOnOffset); + } else { + mFlashlightOnPath.lineTo(x, h-mFlashlightOnOffset); + } + lastFlashlightOn = flashlightOn; + } + + final boolean cameraOn = + (rec.states2&HistoryItem.STATE2_CAMERA_FLAG) != 0; + if (cameraOn != lastCameraOn) { + if (cameraOn) { + mCameraOnPath.moveTo(x, h-mCameraOnOffset); + } else { + mCameraOnPath.lineTo(x, h-mCameraOnOffset); + } + lastCameraOn = cameraOn; + } + final int wifiSupplState = ((rec.states2&HistoryItem.STATE2_WIFI_SUPPL_STATE_MASK) >> HistoryItem.STATE2_WIFI_SUPPL_STATE_SHIFT); @@ -952,12 +1009,13 @@ public class BatteryHistoryChart extends View { || Math.abs(lastWalltime-curWalltime) > (60*60*1000))) { if (curLevelPath != null) { finishPaths(x+1, h, levelh, startX, lastY, curLevelPath, lastX, - lastCharging, lastScreenOn, lastGpsOn, lastWifiRunning, - lastCpuRunning, lastLinePath); + lastCharging, lastScreenOn, lastGpsOn, lastFlashlightOn, + lastCameraOn, lastWifiRunning, lastCpuRunning, lastLinePath); lastX = lastY = -1; curLevelPath = null; lastLinePath = null; - lastCharging = lastScreenOn = lastGpsOn = lastCpuRunning = false; + lastCharging = lastScreenOn = lastGpsOn = lastFlashlightOn = + lastCameraOn = lastCpuRunning = false; } } } @@ -992,8 +1050,8 @@ public class BatteryHistoryChart extends View { } finishPaths(x, h, levelh, startX, lastY, curLevelPath, lastX, - lastCharging, lastScreenOn, lastGpsOn, lastWifiRunning, - lastCpuRunning, lastLinePath); + lastCharging, lastScreenOn, lastGpsOn, lastFlashlightOn, lastCameraOn, + lastWifiRunning, lastCpuRunning, lastLinePath); if (x < w) { // If we reserved room for the remaining time, create a final path to draw @@ -1237,6 +1295,18 @@ public class BatteryHistoryChart extends View { canvas.drawPath(mGpsOnPath, mGpsOnPaint); } } + if (mHaveFlashlight) { + if (!mFlashlightOnPath.isEmpty()) { + if (DEBUG) Log.d(TAG, "Drawing flashlight path"); + canvas.drawPath(mFlashlightOnPath, mFlashlightOnPaint); + } + } + if (mHaveCamera) { + if (!mCameraOnPath.isEmpty()) { + if (DEBUG) Log.d(TAG, "Drawing camera path"); + canvas.drawPath(mCameraOnPath, mCameraOnPaint); + } + } if (mHaveWifi) { if (!mWifiRunningPath.isEmpty()) { if (DEBUG) Log.d(TAG, "Drawing wifi path"); @@ -1260,6 +1330,14 @@ public class BatteryHistoryChart extends View { canvas.drawText(mGpsOnLabel, textStartX, height - mGpsOnOffset - mTextDescent, mTextPaint); } + if (mHaveFlashlight) { + canvas.drawText(mFlashlightOnLabel, textStartX, + height - mFlashlightOnOffset - mTextDescent, mTextPaint); + } + if (mHaveCamera) { + canvas.drawText(mCameraOnLabel, textStartX, + height - mCameraOnOffset - mTextDescent, mTextPaint); + } if (mHaveWifi) { canvas.drawText(mWifiRunningLabel, textStartX, height - mWifiRunningOffset - mTextDescent, mTextPaint); diff --git a/src/com/android/settings/fuelgauge/PowerUsageDetail.java b/src/com/android/settings/fuelgauge/PowerUsageDetail.java index 6313ff5..5cb6c24 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageDetail.java +++ b/src/com/android/settings/fuelgauge/PowerUsageDetail.java @@ -80,6 +80,7 @@ public class PowerUsageDetail extends PowerUsageBase implements Button.OnClickLi R.string.battery_desc_users, R.string.battery_desc_unaccounted, R.string.battery_desc_overcounted, + R.string.battery_desc_camera, }; public static void startBatteryDetailPage( @@ -126,6 +127,8 @@ public class PowerUsageDetail extends PowerUsageBase implements Button.OnClickLi R.string.usage_type_data_wifi_send, R.string.usage_type_audio, R.string.usage_type_video, + R.string.usage_type_camera, + R.string.usage_type_flashlight, }; values = new double[] { entry.sipper.cpuTimeMs, @@ -139,7 +142,9 @@ public class PowerUsageDetail extends PowerUsageBase implements Button.OnClickLi entry.sipper.wifiRxPackets, entry.sipper.wifiTxPackets, 0, - 0 + 0, + entry.sipper.cameraTimeMs, + entry.sipper.flashlightTimeMs, }; if (entry.sipper.drainType == BatterySipper.DrainType.APP) { |