Fix crash in battery screen

Also add a fake app item

Bug: 21624653
Change-Id: I1a8598472e014f773d2396a9a08fd03e8e32b400
This commit is contained in:
Jason Monk
2015-06-04 10:50:25 -04:00
parent fb32790adc
commit 6880ec09cd
3 changed files with 250 additions and 2 deletions

View File

@@ -40,7 +40,7 @@ public class TintablePreference extends Preference {
super.onBindView(view); super.onBindView(view);
if (mTintColor != 0) { if (mTintColor != 0) {
((ImageView) view.findViewById(R.id.icon)).setImageTintList( ((ImageView) view.findViewById(android.R.id.icon)).setImageTintList(
ColorStateList.valueOf(mTintColor)); ColorStateList.valueOf(mTintColor));
} }
} }

View File

@@ -0,0 +1,246 @@
/*
* Copyright (C) 2015 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.
*/
package com.android.settings.fuelgauge;
import android.os.BatteryStats.Timer;
import android.os.BatteryStats.Uid;
import android.os.Process;
import android.util.ArrayMap;
import android.util.SparseArray;
/**
* Fake UID for testing power usage screen.
*/
public class FakeUid extends Uid {
@Override
public int getUid() {
return Process.FIRST_APPLICATION_UID;
}
@Override
public ArrayMap<String, ? extends Wakelock> getWakelockStats() {
return null;
}
@Override
public ArrayMap<String, ? extends Timer> getSyncStats() {
return null;
}
@Override
public ArrayMap<String, ? extends Timer> getJobStats() {
return null;
}
@Override
public SparseArray<? extends Sensor> getSensorStats() {
return null;
}
@Override
public SparseArray<? extends Pid> getPidStats() {
return null;
}
@Override
public ArrayMap<String, ? extends Proc> getProcessStats() {
return null;
}
@Override
public ArrayMap<String, ? extends Pkg> getPackageStats() {
return null;
}
@Override
public long getWifiControllerActivity(int type, int which) {
return 0;
}
@Override
public void noteWifiRunningLocked(long elapsedRealtime) {
}
@Override
public void noteWifiStoppedLocked(long elapsedRealtime) {
}
@Override
public void noteFullWifiLockAcquiredLocked(long elapsedRealtime) {
}
@Override
public void noteFullWifiLockReleasedLocked(long elapsedRealtime) {
}
@Override
public void noteWifiScanStartedLocked(long elapsedRealtime) {
}
@Override
public void noteWifiScanStoppedLocked(long elapsedRealtime) {
}
@Override
public void noteWifiBatchedScanStartedLocked(int csph, long elapsedRealtime) {
}
@Override
public void noteWifiBatchedScanStoppedLocked(long elapsedRealtime) {
}
@Override
public void noteWifiMulticastEnabledLocked(long elapsedRealtime) {
}
@Override
public void noteWifiMulticastDisabledLocked(long elapsedRealtime) {
}
@Override
public void noteActivityResumedLocked(long elapsedRealtime) {
}
@Override
public void noteActivityPausedLocked(long elapsedRealtime) {
}
@Override
public long getWifiRunningTime(long elapsedRealtimeUs, int which) {
return 0;
}
@Override
public long getFullWifiLockTime(long elapsedRealtimeUs, int which) {
return 0;
}
@Override
public long getWifiScanTime(long elapsedRealtimeUs, int which) {
return 0;
}
@Override
public int getWifiScanCount(int which) {
return 0;
}
@Override
public long getWifiBatchedScanTime(int csphBin, long elapsedRealtimeUs, int which) {
return 0;
}
@Override
public int getWifiBatchedScanCount(int csphBin, int which) {
return 0;
}
@Override
public long getWifiMulticastTime(long elapsedRealtimeUs, int which) {
return 0;
}
@Override
public Timer getAudioTurnedOnTimer() {
return null;
}
@Override
public Timer getVideoTurnedOnTimer() {
return null;
}
@Override
public Timer getFlashlightTurnedOnTimer() {
return null;
}
@Override
public Timer getCameraTurnedOnTimer() {
return null;
}
@Override
public Timer getForegroundActivityTimer() {
return null;
}
@Override
public long getProcessStateTime(int state, long elapsedRealtimeUs, int which) {
return 0;
}
@Override
public Timer getVibratorOnTimer() {
return null;
}
@Override
public void noteUserActivityLocked(int type) {
}
@Override
public boolean hasUserActivity() {
return false;
}
@Override
public int getUserActivityCount(int type, int which) {
return 0;
}
@Override
public boolean hasNetworkActivity() {
return false;
}
@Override
public long getNetworkActivityBytes(int type, int which) {
return 0;
}
@Override
public long getNetworkActivityPackets(int type, int which) {
return 0;
}
@Override
public long getMobileRadioActiveTime(int which) {
return 0;
}
@Override
public int getMobileRadioActiveCount(int which) {
return 0;
}
@Override
public long getUserCpuTimeUs(int which) {
return 0;
}
@Override
public long getSystemCpuTimeUs(int which) {
return 0;
}
@Override
public long getTimeAtCpuSpeed(int step, int which) {
return 0;
}
}

View File

@@ -35,8 +35,8 @@ import android.view.MenuItem;
import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.MetricsLogger;
import com.android.internal.os.BatterySipper; import com.android.internal.os.BatterySipper;
import com.android.internal.os.PowerProfile;
import com.android.internal.os.BatterySipper.DrainType; import com.android.internal.os.BatterySipper.DrainType;
import com.android.internal.os.PowerProfile;
import com.android.settings.HelpUtils; import com.android.settings.HelpUtils;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Settings.HighPowerApplicationsActivity; import com.android.settings.Settings.HighPowerApplicationsActivity;
@@ -282,6 +282,8 @@ public class PowerUsageSummary extends PowerUsageBase {
stats.add(new BatterySipper(type, null, use)); stats.add(new BatterySipper(type, null, use));
use += 5; use += 5;
} }
BatterySipper sipper = new BatterySipper(DrainType.APP, new FakeUid(), use);
stats.add(sipper);
return stats; return stats;
} }