Add EBS interface to BatteryController

Also, add a CurrentUserContentResolverProvider for testability and fix a
bug in CurrentUserContextTracker

Test: no test
Bug: 153940148
Change-Id: Ie6abbbb451b281472e05c3135e366101ef7cfc38
This commit is contained in:
Fabian Kozynski
2020-07-28 14:10:47 -04:00
parent 4163b81985
commit 6ae0640c32
5 changed files with 49 additions and 3 deletions

View File

@@ -130,6 +130,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();

View File

@@ -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
}

View File

@@ -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

View File

@@ -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);
}

View File

@@ -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) {
}
}
/**