diff --git a/src/com/android/settings/fuelgauge/BatteryStatsHelper.java b/src/com/android/settings/fuelgauge/BatteryStatsHelper.java index 2a3e6e85cc3..3b1ea935c0f 100644 --- a/src/com/android/settings/fuelgauge/BatteryStatsHelper.java +++ b/src/com/android/settings/fuelgauge/BatteryStatsHelper.java @@ -175,7 +175,8 @@ public class BatteryStatsHelper { } } - public void startBatteryDetailPage(PreferenceActivity caller, BatterySipper sipper) { + public void startBatteryDetailPage( + PreferenceActivity caller, BatterySipper sipper, boolean showLocationButton) { // Initialize mStats if necessary. getStats(); @@ -193,6 +194,7 @@ public class BatteryStatsHelper { args.putInt(PowerUsageDetail.EXTRA_UID, sipper.uidObj.getUid()); } args.putSerializable(PowerUsageDetail.EXTRA_DRAIN_TYPE, sipper.drainType); + args.putBoolean(PowerUsageDetail.EXTRA_SHOW_LOCATION_BUTTON, showLocationButton); int[] types; double[] values; diff --git a/src/com/android/settings/fuelgauge/PowerUsageDetail.java b/src/com/android/settings/fuelgauge/PowerUsageDetail.java index 7eba7926bb1..e9b8106eef0 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageDetail.java +++ b/src/com/android/settings/fuelgauge/PowerUsageDetail.java @@ -107,6 +107,7 @@ public class PowerUsageDetail extends Fragment implements Button.OnClickListener public static final String EXTRA_ICON_PACKAGE = "iconPackage"; // String public static final String EXTRA_NO_COVERAGE = "noCoverage"; public static final String EXTRA_ICON_ID = "iconId"; // Int + public static final String EXTRA_SHOW_LOCATION_BUTTON = "showLocationButton"; // Boolean private PackageManager mPm; private DevicePolicyManager mDpm; @@ -128,13 +129,14 @@ public class PowerUsageDetail extends Fragment implements Button.OnClickListener private double mNoCoverage; // Percentage of time that there was no coverage private boolean mUsesGps; + private boolean mShowLocationButton; private static final String TAG = "PowerUsageDetail"; private String[] mPackages; ApplicationInfo mApp; ComponentName mInstaller; - + @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); @@ -176,6 +178,7 @@ public class PowerUsageDetail extends Fragment implements Button.OnClickListener mNoCoverage = args.getDouble(EXTRA_NO_COVERAGE, 0); String iconPackage = args.getString(EXTRA_ICON_PACKAGE); int iconId = args.getInt(EXTRA_ICON_ID, 0); + mShowLocationButton = args.getBoolean(EXTRA_SHOW_LOCATION_BUTTON); if (!TextUtils.isEmpty(iconPackage)) { try { final PackageManager pm = getActivity().getPackageManager(); @@ -362,7 +365,9 @@ public class PowerUsageDetail extends Fragment implements Button.OnClickListener // If the application has a settings screen, jump to that // TODO: } - if (mUsesGps) { + // If power usage detail page is launched from location page, suppress "Location" + // button to prevent circular loops. + if (mUsesGps && mShowLocationButton) { addControl(R.string.location_settings_title, R.string.battery_sugg_apps_gps, ACTION_LOCATION_SETTINGS); removeHeader = false; diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index 1747e3ff355..480bb4eebcb 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -144,7 +144,7 @@ public class PowerUsageSummary extends PreferenceFragment { } PowerGaugePreference pgp = (PowerGaugePreference) preference; BatterySipper sipper = pgp.getInfo(); - mStatsHelper.startBatteryDetailPage((PreferenceActivity) getActivity(), sipper); + mStatsHelper.startBatteryDetailPage((PreferenceActivity) getActivity(), sipper, true); return super.onPreferenceTreeClick(preferenceScreen, preference); } diff --git a/src/com/android/settings/location/RecentLocationApps.java b/src/com/android/settings/location/RecentLocationApps.java index fe206b5f617..fda734cf228 100644 --- a/src/com/android/settings/location/RecentLocationApps.java +++ b/src/com/android/settings/location/RecentLocationApps.java @@ -69,7 +69,7 @@ public class RecentLocationApps { @Override public boolean onPreferenceClick(Preference preference) { - mStatsHelper.startBatteryDetailPage(mActivity, mSipper); + mStatsHelper.startBatteryDetailPage(mActivity, mSipper, false); return true; } }