Merge "Add EBS interface to BatteryController" into rvc-qpr-dev am: 05afc4f43b

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12333942

Change-Id: I5d2e8d98aef1137d57136dd10af9ffbe07ea3f2a
This commit is contained in:
TreeHugger Robot
2020-08-11 15:35:43 +00:00
committed by Automerger Merge Worker
5 changed files with 49 additions and 3 deletions

View File

@@ -111,6 +111,7 @@ public class BatterySaverTile extends QSTileImpl<BooleanState> implements
: mPowerSave ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE; : mPowerSave ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE;
state.icon = mIcon; state.icon = mIcon;
state.label = mContext.getString(R.string.battery_detail_switch_title); state.label = mContext.getString(R.string.battery_detail_switch_title);
state.secondaryLabel = "";
state.contentDescription = state.label; state.contentDescription = state.label;
state.value = mPowerSave; state.value = mPowerSave;
state.expandedAccessibilityClassName = Switch.class.getName(); 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 package com.android.systemui.settings
import android.content.ContentResolver
import android.content.Context import android.content.Context
import android.os.UserHandle import android.os.UserHandle
import androidx.annotation.VisibleForTesting import androidx.annotation.VisibleForTesting
@@ -31,7 +32,7 @@ import java.lang.IllegalStateException
class CurrentUserContextTracker internal constructor( class CurrentUserContextTracker internal constructor(
private val sysuiContext: Context, private val sysuiContext: Context,
broadcastDispatcher: BroadcastDispatcher broadcastDispatcher: BroadcastDispatcher
) { ) : CurrentUserContentResolverProvider {
private val userTracker: CurrentUserTracker private val userTracker: CurrentUserTracker
private var initialized = false private var initialized = false
@@ -44,6 +45,9 @@ class CurrentUserContextTracker internal constructor(
return _curUserContext!! return _curUserContext!!
} }
override val currentUserContentResolver: ContentResolver
get() = currentUserContext.contentResolver
init { init {
userTracker = object : CurrentUserTracker(broadcastDispatcher) { userTracker = object : CurrentUserTracker(broadcastDispatcher) {
override fun onUserSwitched(newUserId: Int) { override fun onUserSwitched(newUserId: Int) {
@@ -54,8 +58,8 @@ class CurrentUserContextTracker internal constructor(
fun initialize() { fun initialize() {
initialized = true initialized = true
_curUserContext = makeUserContext(userTracker.currentUserId)
userTracker.startTracking() userTracker.startTracking()
_curUserContext = makeUserContext(userTracker.currentUserId)
} }
@VisibleForTesting @VisibleForTesting

View File

@@ -19,10 +19,12 @@ package com.android.systemui.settings.dagger;
import android.content.Context; import android.content.Context;
import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.settings.CurrentUserContentResolverProvider;
import com.android.systemui.settings.CurrentUserContextTracker; import com.android.systemui.settings.CurrentUserContextTracker;
import javax.inject.Singleton; import javax.inject.Singleton;
import dagger.Binds;
import dagger.Module; import dagger.Module;
import dagger.Provides; import dagger.Provides;
@@ -30,7 +32,7 @@ import dagger.Provides;
* Dagger Module for classes found within the com.android.systemui.settings package. * Dagger Module for classes found within the com.android.systemui.settings package.
*/ */
@Module @Module
public interface SettingsModule { public abstract class SettingsModule {
/** /**
* Provides and initializes a CurrentUserContextTracker * Provides and initializes a CurrentUserContextTracker
@@ -45,4 +47,9 @@ public interface SettingsModule {
tracker.initialize(); tracker.initialize();
return tracker; 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) {} 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 * A listener that will be notified whenever a change in battery level or power save mode has
* occurred. * occurred.
@@ -92,6 +99,9 @@ public interface BatteryController extends DemoMode, Dumpable,
default void onReverseChanged(boolean isReverse, int level, String name) { default void onReverseChanged(boolean isReverse, int level, String name) {
} }
default void onExtremeBatterySaverChanged(boolean isExtreme) {
}
} }
/** /**