From 3f98c0ce510ba95f8ecb3d815a4e722002fcf9f2 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Fri, 12 Jun 2015 18:13:54 -0700 Subject: [PATCH] Fix issue #21813831: Need API for asking to be added to power whitelist When launching the battery whitelist for a particular app, we now default to the app being asked to enable adding to the whitelist, and dismissing the dialog will dismiss the entire whitelist UI. You can now launch the whitelist without specifying an app to just get the regular UI. Change-Id: Idf3840b8a30febe71fbd600969c257d72809643f --- AndroidManifest.xml | 4 ++++ .../applications/ManageApplications.java | 15 +++++++++--- .../settings/fuelgauge/HighPowerDetail.java | 23 ++++++++++++++++--- 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 358eae9125a..6627f8bcb24 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -956,6 +956,10 @@ + + + + (getString(R.string.ignore_optimizations_on), getString(R.string.ignore_optimizations_on_desc))); mAdapter.add(new Pair(getString(R.string.ignore_optimizations_off), getString(R.string.ignore_optimizations_off_desc))); - mSelectedIndex = mBackend.isWhitelisted(mPackageName) ? 0 : 1; + mSelectedIndex = mDefaultOn || mBackend.isWhitelisted(mPackageName) ? 0 : 1; if (mBackend.isSysWhitelisted(mPackageName)) { mAdapter.setEnabled(1, false); } @@ -97,6 +102,15 @@ public class HighPowerDetail extends DialogFragment implements OnClickListener { } } + @Override + public void onDismiss(DialogInterface dialog) { + super.onDismiss(dialog); + Fragment target = getTargetFragment(); + if (target != null) { + target.onActivityResult(getTargetRequestCode(), 0, null); + } + } + public static CharSequence getSummary(Context context, AppEntry entry) { return getSummary(context, entry.info.packageName); } @@ -106,12 +120,15 @@ public class HighPowerDetail extends DialogFragment implements OnClickListener { ? R.string.high_power_on : R.string.high_power_off); } - public static void show(Activity activity, String packageName) { + public static void show(Fragment caller, String packageName, int requestCode, + boolean defaultToOn) { HighPowerDetail fragment = new HighPowerDetail(); Bundle args = new Bundle(); args.putString(AppInfoBase.ARG_PACKAGE_NAME, packageName); + args.putBoolean(ARG_DEFAULT_ON, defaultToOn); fragment.setArguments(args); - fragment.show(activity.getFragmentManager(), HighPowerDetail.class.getSimpleName()); + fragment.setTargetFragment(caller, requestCode); + fragment.show(caller.getFragmentManager(), HighPowerDetail.class.getSimpleName()); } private class Adapter extends ArrayAdapter> {