Add EBS interface to BatteryController
Also, add a CurrentUserContentResolverProvider for testability and fix a
bug in CurrentUserContextTracker
Test: no test
Bug: 153940148
Change-Id: Ie450194ee34b319cff926a49aca99544dcca0e9c
Merged-In: Ie450194ee34b319cff926a49aca99544dcca0e9c
(cherry picked from commit c553798e85)
This commit is contained in:
@@ -111,6 +111,7 @@ public class BatterySaverTile extends QSTileImpl<BooleanState> implements
|
||||
: mPowerSave ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE;
|
||||
state.icon = mIcon;
|
||||
state.label = mContext.getString(R.string.battery_detail_switch_title);
|
||||
state.secondaryLabel = "";
|
||||
state.contentDescription = state.label;
|
||||
state.value = mPowerSave;
|
||||
state.expandedAccessibilityClassName = Switch.class.getName();
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.systemui.settings
|
||||
|
||||
import android.content.ContentResolver
|
||||
|
||||
interface CurrentUserContentResolverProvider {
|
||||
|
||||
val currentUserContentResolver: ContentResolver
|
||||
}
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.systemui.settings
|
||||
|
||||
import android.content.ContentResolver
|
||||
import android.content.Context
|
||||
import android.os.UserHandle
|
||||
import androidx.annotation.VisibleForTesting
|
||||
@@ -31,7 +32,7 @@ import java.lang.IllegalStateException
|
||||
class CurrentUserContextTracker internal constructor(
|
||||
private val sysuiContext: Context,
|
||||
broadcastDispatcher: BroadcastDispatcher
|
||||
) {
|
||||
) : CurrentUserContentResolverProvider {
|
||||
private val userTracker: CurrentUserTracker
|
||||
private var initialized = false
|
||||
|
||||
@@ -44,6 +45,9 @@ class CurrentUserContextTracker internal constructor(
|
||||
return _curUserContext!!
|
||||
}
|
||||
|
||||
override val currentUserContentResolver: ContentResolver
|
||||
get() = currentUserContext.contentResolver
|
||||
|
||||
init {
|
||||
userTracker = object : CurrentUserTracker(broadcastDispatcher) {
|
||||
override fun onUserSwitched(newUserId: Int) {
|
||||
@@ -54,8 +58,8 @@ class CurrentUserContextTracker internal constructor(
|
||||
|
||||
fun initialize() {
|
||||
initialized = true
|
||||
_curUserContext = makeUserContext(userTracker.currentUserId)
|
||||
userTracker.startTracking()
|
||||
_curUserContext = makeUserContext(userTracker.currentUserId)
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
|
||||
@@ -19,10 +19,12 @@ package com.android.systemui.settings.dagger;
|
||||
import android.content.Context;
|
||||
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.settings.CurrentUserContentResolverProvider;
|
||||
import com.android.systemui.settings.CurrentUserContextTracker;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import dagger.Binds;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
@@ -30,7 +32,7 @@ import dagger.Provides;
|
||||
* Dagger Module for classes found within the com.android.systemui.settings package.
|
||||
*/
|
||||
@Module
|
||||
public interface SettingsModule {
|
||||
public abstract class SettingsModule {
|
||||
|
||||
/**
|
||||
* Provides and initializes a CurrentUserContextTracker
|
||||
@@ -45,4 +47,9 @@ public interface SettingsModule {
|
||||
tracker.initialize();
|
||||
return tracker;
|
||||
}
|
||||
|
||||
@Binds
|
||||
@Singleton
|
||||
abstract CurrentUserContentResolverProvider bindCurrentUserContentResolverTracker(
|
||||
CurrentUserContextTracker tracker);
|
||||
}
|
||||
|
||||
@@ -78,6 +78,13 @@ public interface BatteryController extends DemoMode, Dumpable,
|
||||
*/
|
||||
default void setReverseState(boolean isReverse) {}
|
||||
|
||||
/**
|
||||
* Returns {@code true} if extreme battery saver is on.
|
||||
*/
|
||||
default boolean isExtremeSaverOn() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* A listener that will be notified whenever a change in battery level or power save mode has
|
||||
* occurred.
|
||||
@@ -92,6 +99,9 @@ public interface BatteryController extends DemoMode, Dumpable,
|
||||
|
||||
default void onReverseChanged(boolean isReverse, int level, String name) {
|
||||
}
|
||||
|
||||
default void onExtremeBatterySaverChanged(boolean isExtreme) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user