Fix Battery Saver location bugs.
1) Actively disabling LOCATION_MODE instead of LOCATION_PROVIDERS_ALLOWED since the latter is deprecated and not supported. 2) The LOCATION_MODE_FOREGROUND_ONLY flag wasn't used anywhere. As such, it was essentially no different from LOCATION_MODE_NO_CHANGE. I've implemented the behavior in LocationManagerService so it works properly. 3) GnssLocationProvider only turned off GPS when the location mode was LOCATION_MODE_GPS_DISABLED_WHEN_SCREEN_OFF, but not the mode was LOCATION_MODE_ALL_DISABLED_WHEN_SCREEN_OFF. I've fixed it so GPS is turned off in both modes. 4) PowerManager looked at the global battery saver state to determine if the location mode should be used. This was fine for full Battery Saver, but would be a problem with adaptive Battery Saver. The proper thing to do is to just look at the local 'batterySaverEnabled' flag. Bug: 121256487 Bug: 122849003 Bug: 119261320 Test: atest CtsBatterySavingTestCases Change-Id: I8973d27fb050d9892bb97021712d9cf9743e8939
Loading
Please register or sign in to comment