Fix crash when opening battery page

The settings crashes when opening battery usage detail page from
installed app page. Main reason is that it trying to open obsolete
page. This cl directs it to open AdvancedPowerUsageDetail instead.

Following cl will make InstalledAppDetail show calibrated percentage,
which is trakced in b/36816681

Bug: 36792973
Test: RunSettingsRoboTests
Change-Id: Ie63e64e543ed3b28974ffdda8b42c97e7749a0f7
(cherry picked from commit fac713318c)
This commit is contained in:
jackqdyulei
2017-03-31 14:26:38 -07:00
parent 9b271041a9
commit cdbc114376
3 changed files with 50 additions and 14 deletions

View File

@@ -88,6 +88,7 @@ import com.android.settings.applications.defaultapps.DefaultSmsPreferenceControl
import com.android.settings.datausage.AppDataUsage;
import com.android.settings.datausage.DataUsageList;
import com.android.settings.datausage.DataUsageSummary;
import com.android.settings.fuelgauge.AdvancedPowerUsageDetail;
import com.android.settings.fuelgauge.BatteryEntry;
import com.android.settings.fuelgauge.PowerUsageDetail;
import com.android.settings.notification.AppNotificationSettings;
@@ -182,15 +183,18 @@ public class InstalledAppDetails extends AppInfoBase
private ChartData mChartData;
private INetworkStatsSession mStatsSession;
private Preference mBatteryPreference;
private BatteryStatsHelper mBatteryHelper;
private BatterySipper mSipper;
@VisibleForTesting
Preference mBatteryPreference;
@VisibleForTesting
BatterySipper mSipper;
@VisibleForTesting
BatteryStatsHelper mBatteryHelper;
protected ProcStatsData mStatsManager;
protected ProcStatsPackageEntry mStats;
private AppStorageStats mLastResult;
private String mBatteryPercent;
private boolean handleDisableable(Button button) {
boolean disableable = false;
@@ -683,7 +687,8 @@ public class InstalledAppDetails extends AppInfoBase
BatteryStats.STATS_SINCE_CHARGED);
final int percentOfMax = (int) ((mSipper.totalPowerMah)
/ mBatteryHelper.getTotalPower() * dischargeAmount + .5f);
mBatteryPreference.setSummary(getString(R.string.battery_summary, percentOfMax));
mBatteryPercent = Utils.formatPercentage(percentOfMax);
mBatteryPreference.setSummary(getString(R.string.battery_summary, mBatteryPercent));
} else {
mBatteryPreference.setEnabled(false);
mBatteryPreference.setSummary(getString(R.string.no_battery_summary));
@@ -954,9 +959,9 @@ public class InstalledAppDetails extends AppInfoBase
} else if (preference == mDataPreference) {
startAppInfoFragment(AppDataUsage.class, getString(R.string.app_data_usage));
} else if (preference == mBatteryPreference) {
BatteryEntry entry = new BatteryEntry(getActivity(), null, mUserManager, mSipper);
PowerUsageDetail.startBatteryDetailPage((SettingsActivity) getActivity(), this,
mBatteryHelper, BatteryStats.STATS_SINCE_CHARGED, entry, true, false);
BatteryEntry entry = new BatteryEntry(getContext(), null, mUserManager, mSipper);
AdvancedPowerUsageDetail.startBatteryDetailPage((SettingsActivity) getActivity(), this,
mBatteryHelper, BatteryStats.STATS_SINCE_CHARGED, entry, mBatteryPercent);
} else {
return false;
}