Commit Graph

622 Commits

Author SHA1 Message Date
Xin Li
419086d8b3 DO NOT MERGE - Merge pie-platform-release (PPRL.181205.001) into master
Bug: 120502534
Change-Id: I63bedf30fa0a4629cfab1dbe94359b4d36cf9ac1
2018-12-11 15:24:05 -08:00
Aurimas Liutikas
b1af85d155 Migrate Settings to androidx.
Test: make Settings
Bug: 76692459
Change-Id: I941dea40562170649bf056e675cc32e5163c0e39
Merged-In: I941dea40562170649bf056e675cc32e5163c0e39
(cherry picked from commit a290b873d0)
2018-08-28 11:48:56 -07:00
Fan Zhang
f722e59a51 Fix memory leaks in Settings
Bug: 80507279
Test: inspected hprof before and after fix
Change-Id: I6ea2925695deb6261263649e858484e1667ec522
Merged-In: I6ea2925695deb6261263649e858484e1667ec522
2018-08-07 18:06:56 +00:00
Matthew Fritze
5e8005db42 Conditionally block battery percantage from search
The PowerUsageSummary fragment doesn't use the regular pattern
of a static method to build preference controllers, which can be
accessed by both DashboardFragment and BaseSearchIndexProvider,
because it depends on the Activity & Fragment in the creation of
the preference controllers.

The correct & long-term solution here would be to move those dependencies
out of the getPreferenceControllers method, such that the we could use a
static buildPreferenceControllers method, as seen in DisplaySettings.java.

In the mean time, we know that BatteryPercentagePrefController should not
show up on devices, so we conditionally add the the preference controller's
into getNonIndexableKeys method based on controller Availability, which
BasePreferenceController normally does automatically with a getPreferenceController
method in the host fragment's SEARCH_INDEX_DATA_PROVIDER.

Since this is a short-term solution, it should not be merged into master, and thus
I am not marking the bug as fixed.

Bug: 110894466
Test: Robotests
Change-Id: I06f814571d0b72fbf020dd11a9d23a9eb9907bfd
Merged-In: I5993d332dbd218c981ef5432aebb735d0000f67a
2018-07-03 18:32:35 +00:00
TreeHugger Robot
cf2e1fd593 Merge "Plumb context object to PowerWhitelistBackend." into pi-dev 2018-05-30 03:08:20 +00:00
Fan Zhang
3489f65024 Plumb context object to PowerWhitelistBackend.
Change-Id: Ice0d037625d47f1f668b00499a7f1ad2302cc0ba
Merged-In: Ice0d037625d47f1f668b00499a7f1ad2302cc0ba
Fixes: 76435804
Test: robotests
2018-05-29 22:33:01 +00:00
Matthew Fritze
61227fb093 Add remaining whitelisted controllers
Because I missed them in the long whitelist the first time...

Change-Id: I9fbd7b33e06b3f2f6e5e5778f78abfdb1a52006a
Merged-In: I01c8c80fe306667c1d3ac007b16fad546c5a5f40
Fixes: 79779103
Test: robotests
2018-05-24 17:29:03 +00:00
Fan Zhang
db03de4e80 Convert BatterySaverButton controller to Slice compatible.
- Update preference key to match the key defined in SettingsSlicesContract
- Model TwoStateButtonPreference similar to TwoStatePreference (add
  setChecked, isChecked method)
- Remove TwoStateButtonPreferenceController entirely because all methods
  are moved into Preference directly for better encapsulation.
- Make BatterySaverButtonPrefController direclty implement
  TogglePreferenceController. It was not possible before because the
  interface between TwoStateButtonPreferene is too different from
  TwoStatePreference.

Bug: 80106671
Test: robotests
Change-Id: Ib72807dcf1b36e959e08df8d80538c3f9f79b76d
Merged-In: Ib72807dcf1b36e959e08df8d80538c3f9f79b76d
2018-05-23 08:00:41 -07:00
Lei Yu
d06d1165eb When restrict, use uid inside AppInfo
Before this CL, we use packageManager to get uid for battery
restriction. However it may not be correct all the time.

For example, RestrictedAppDetails will be opened as main user
however inside we also show work profile apps, in this case
we can't get correct uid by only using normal API in PackageManager.

This CL change it to use uid from AppInfo, which is correct all
the time.

Bug: 79992590
Test: RunSettingsRoboTests
Change-Id: Id33a5f6409d6bace0d756e5ac06432acb8b2cf65
2018-05-22 02:02:06 +00:00
TreeHugger Robot
8075586a2e Merge "Add action log in "Restrict app page"." into pi-dev 2018-05-22 01:32:14 +00:00
Lei Yu
95d067760b Add action log in "Restrict app page".
This CL adds confirmation dialog in "Restrict app page". By go through
BatteryTipDialogFragment, it will find the correct action, in which
we already have log:
1. RestrictAppAction
2. UnRestrictAppAction

Bug: 79992590
Test: RunSettingsRoboTests
Change-Id: I179fbd17a012528fdfacf42e4a93943eaefff23d
Merged-In: I179fbd17a012528fdfacf42e4a93943eaefff23d
2018-05-22 00:35:12 +00:00
TreeHugger Robot
018548b320 Merge "Refine update process for restrict tip." into pi-dev 2018-05-19 01:55:05 +00:00
Lei Yu
551a1a0176 Refine update process for restrict tip.
When restrict tip update, we should also update app list unless it goes
from NEW to INVISIBLE. After that it won't show "0 apps been
restricted".

Change-Id: Iedf4288fcddfe632a9ba8c16afdfb5bc044bce2e
Fix: 79890132
Test: RunSettingsRoboTests
2018-05-18 13:00:03 -07:00
Lei Yu
a866d6bd56 Merge "Don't drop log about excessive O anomaly." into pi-dev 2018-05-18 17:09:44 +00:00
Lei Yu
1439c6179a Don't drop log about excessive O anomaly.
Before this CL, we will drop log for excessive bg anomaly that
target O or higher. This CL doesn't drop it however merge it to
ACTION_ANOMALY_IGNORED

Bug: 79944380
Test: RunSettingsRoboTests
Change-Id: I46d0bdb1191d8843ba373e59afb1b0ba16057661
2018-05-17 16:49:11 -07:00
TreeHugger Robot
3feb2f87ff Merge "Update method isSmartBatteryEnabled()" into pi-dev 2018-05-17 02:43:22 +00:00
Lei Yu
1254049038 Update method isSmartBatteryEnabled()
Check the config value from framework.

Bug: 79698191
Test: RunSettingsRoboTests
Change-Id: I14424e2a96fb3ef3bb7d0f10218266d53e86370d
2018-05-15 18:24:13 -07:00
Lei Yu
a924a1e2ae Merge "Update the battery broadcast receiver." into pi-dev 2018-05-14 20:45:57 +00:00
Lei Yu
6d2aaed8ae Update the battery broadcast receiver.
Add a type for battery receiver, then in callback client know for
which reason it been invoked:
1. battery level change
2. battery saver state change
3. battery plug state change

So in this CL, we won't update battery tip for battery level change,
then battery tip won't be dismissed by itself.

Also note in onResume() we will manually update battery tip. So if
user stay in battery settings page and close the screen, once he opens
it we will still force update everything.

Fixes: 79171742
Test: RunSettingsRoboTests

Change-Id: I997844216fd8267e545d74e0d434de9e338f76a1
Merged-In: I997844216fd8267e545d74e0d434de9e338f76a1
2018-05-14 19:40:50 +00:00
TreeHugger Robot
e70e27ccea Merge "Unrestricting app when put on power whitelist" into pi-dev 2018-05-11 23:06:49 +00:00
Suprabh Shukla
0f447022cf Unrestricting app when put on power whitelist
Power whitelisting and background restrictions are opposing rules, so to
keep apps out of confusing states, unrestricting an app whenever it is
put on the power whitelist.

Test: atest RunSettingsRoboTests:HighPowerDetailTest

Bug: 77924141
Change-Id: I4952ac6c893bc7e98aa1b6ad3a86906fc299dea5
2018-05-11 14:00:28 -07:00
Lei Yu
b98039e263 Merge "Fix a bug in AnomalyDetectionJobService" into pi-dev 2018-05-11 00:49:22 +00:00
TreeHugger Robot
ed7101cd2a Merge "Add action for low battery tip" into pi-dev 2018-05-10 21:52:43 +00:00
TreeHugger Robot
faa5c2281e Merge "Update strings in battery settings." into pi-dev 2018-05-10 21:28:31 +00:00
Lei Yu
d257c1a2d9 Merge "Use user doze whitelist in anomaly detection" into pi-dev 2018-05-10 20:10:42 +00:00
Lei Yu
8d538ef12d Add action for low battery tip
The action should be same as EarlyWarningTip.
1. Option to "turn on battery saver" is battery is low
2. Or show "battery saver is on" and take user to "battery saver" page.

Fixes: 76113067
Test: RunSettingsRoboTests

Change-Id: I896358305a8ae4cd97c3864bbf6e556b4d025dd7
2018-05-10 12:58:47 -07:00
Lei Yu
bc54cedabd Update strings in battery settings.
1. Message in high usage dialog
2. Title in app usage list

Change-Id: Iac610483e10e8d2a93a18ca664aec17d9561aaf8
Fixes: 78638843
Test: RunSettingsRoboTests
2018-05-10 11:31:29 -07:00
Lei Yu
a00e39365c Fix a bug in AnomalyDetectionJobService
Even though onStopJob is called, the service may still exist, so
we need to reset the mIsJobCanceled in onStartJob

Also remove the batteryStats since we don't need it anymore.

Change-Id: I6d48efecb750ad4e464569cac426d87014a8db90
Fixes: 77968649
Test: RunSettingsRoboTests
2018-05-10 11:07:17 -07:00
Lei Yu
d71e8d8c87 Use user doze whitelist in anomaly detection
Bug: 77924141
Test: RunSettingsRoboTests
Change-Id: Id9503c9468292f128b76ea872d6603c49965d919
2018-05-09 19:22:57 -07:00
Lei Yu
d067cbcfc9 Merge changes Ifa91ad93,I14f9696a into pi-dev
* changes:
  Update the BatteryTipPolicy
  Update and expose the low battery tip.
2018-05-10 02:06:19 +00:00
TreeHugger Robot
ab68a8107c Merge "Establish permanently unavailable settings" into pi-dev 2018-05-09 21:13:44 +00:00
Lei Yu
df83cf3c29 Update the BatteryTipPolicy
1. Add "testLowBatteryTip"
2. Update default value for low battery threshold

Change-Id: Ifa91ad93f484dc806dfc176ad5ffd912824f5063
Bug: 76113067
Test: RunSettingsRoboTests
2018-05-09 12:31:54 -07:00
Lei Yu
b2f089c468 Update and expose the low battery tip.
This tip was punted however we need to bring it back to P. It happens
when battery level is low or remaining time is less than 3 hour. The
suggestion is to turn on battery saver.

1. Extend tip from EarlyWarningTip since it has most common logic
2. Update the detector to align it to battery saver notifcation in
systemui.
3. Update tip order to surface low battery tip.

Follow CL will:
1. Hook up the low battery threshold to server side
2. Add test stub for this tip, so we could trigger it by adb.

Change-Id: I14f9696a549393bf980e31838fb86afd5d9efbc7
Bug: 76113067
Test: RunSettingsRoboTests
2018-05-09 12:31:41 -07:00
android-build-team Robot
27f1e8e1e9 Merge "Don't check battery usage in excessive bg anomaly" into pi-dev 2018-05-09 17:54:30 +00:00
Matthew Fritze
bd376296cd Establish permanently unavailable settings
Distinguish between settings which are permanently unavailable on
the device, and temporarily unavailable. This enables us to restrict
which setting slices are exposed in onSliceGetDescendants.

The primary changes in this CL are renaming:
"DISABLED_UNSUPPORTED" -> "UNSUPPORTED_ON_DEVICE"
to be more clear the the setting will cannot be accessed on the device, and,
adding a new enum to encapsulate settings which are currently unavailable, but
could be enabled in the future.

Also remove UNAVAILABLE_UNKNOWN. Devs should never need this enum.

Bug: 78910582
Fixes: 79245656
Test: robotests
Change-Id: I42c2cedab66be2d76999795f46470a079cc1ec71
Merged-In: I58821a6cfd6134b3b351657b6edf5f74ead00643
2018-05-09 10:03:40 -07:00
android-build-team Robot
0e7cff80ef Merge "Update strings for summary tip." into pi-dev 2018-05-09 00:44:18 +00:00
Lei Yu
06efc034e6 Don't check battery usage in excessive bg anomaly
We don't need it anymore because we don't auto restrict this
anomaly.

Bug: 79210436
Test: robo test still pass
Change-Id: I186213a57f9bf54a0e19985f2c92169c6dc0571c
2018-05-08 16:29:25 -07:00
Lei Yu
db5c1cef71 Merge "Fix crash in anomaly job service" into pi-dev 2018-05-08 22:52:59 +00:00
Lei Yu
adddc30c64 Update strings for summary tip.
1. Strings for the tip preference
2. Strings for the tip dialog

Change-Id: I59c371328ec735a0b22f707d440f3be85cf59c77
Fixes: 79171948
Test: Manual & RunSettingsRoboTests
2018-05-08 15:46:07 -07:00
Lei Yu
162c81e1d5 Fix crash in anomaly job service
If job has been stopped by any reason, we should cancel the background
thread, otherwise it will throw SecurityException when dequeuing from
JobParams.

This CL adds a lock to synchronize the method and stops dequeue work
if job has been canceled.

Change-Id: I7732b7f7d444a55a4b4ba6645cd2c16b6f840a6c
Merged-In: I7732b7f7d444a55a4b4ba6645cd2c16b6f840a6c
Fixes: 77968649
Test: RunSettingsRoboTests
2018-05-07 15:19:28 -07:00
Lei Yu
3f34ce9a5b Merge "Don't show high usage tip when device is charing" into pi-dev 2018-04-26 22:08:55 +00:00
Lei Yu
d2e9b56996 Merge "Hook up Adaptive Battery to new flag." into pi-dev 2018-04-26 22:07:53 +00:00
Lei Yu
69c370f594 Don't show high usage tip when device is charing
The summary is "Battery may run out soon", it doesn't make sense
when device is charging.

Change-Id: I27394c8a75dac4dcad171e5e215102d39cb33546
Fixes: 78261389
Test: RunSettingsRoboTests
2018-04-23 10:10:20 -07:00
Lei Yu
f6e2c19fcc Merge "Fix bugs in auto restriction." into pi-dev 2018-04-23 17:03:39 +00:00
Lei Yu
10280a53b0 Merge "Fix the bug using wrong TimeUnit" into pi-dev 2018-04-23 16:59:47 +00:00
Lei Yu
4c94926ba5 Fix the bug using wrong TimeUnit
It should use DAYS, not HOURS.

Change-Id: I26784822c86e58cad93d35b6772ea54af7efb8f5
Fixes: 78362305
Test: RunSettingsRoboTests
2018-04-20 16:45:02 -07:00
Salvador Martinez
681353f725 Merge "Update settings main page battery string" into pi-dev 2018-04-20 23:27:25 +00:00
Lei Yu
252d4e1fc0 Fix bugs in auto restriction.
1. Dismiss this tip once user clicks it and goes to detail page.
2. In auto restriction, since apps are automatically restricted,
we need to remove apps in list that unrestricted by user.
3. Refactor the code to remove the unnecessary parameter(i.e.
SettingsActivity)

Bug: 78187414
Test: RunSettingsRoboTests
Change-Id: I1c950f7c55df35795641c2ea8579ce9e011dba28
2018-04-20 12:55:53 -07:00
Lei Yu
df5beee68b Hook up Adaptive Battery to new flag.
APP_STANDBY_ENABLED is controlled by server side to do experiment.
Before this CL, Adaptive Battery is hooked up to this flag, so
even though if user turns it off, it may be turned on by server.

Add a high level ADAPTIVE_BATTERY_MANAGEMENT_ENABLED to control
the feature in settings UI side.

Bug: 78153913
Test: RunSettingsRoboTests
Change-Id: I1a18d622ddc31ec4d45db918bf981516fbb926c1
2018-04-19 10:46:37 -07:00
Lei Yu
cff99cc2e3 Merge "update checkbox based on FAS API" into pi-dev 2018-04-19 17:01:23 +00:00