Add plugin hooks to DozeService
- Find out when the dreaming starts / stops
- Request the doze UI to show / hide
Bug: 62534409
Test: manual, have no plugin, check that doze still works as expected (i.e.
pick up gesture shows it, noti shows it)
Change-Id: I11618e47e0bab18423f0d89c8daf285d8c14d238
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
package com.android.systemui.plugins;
|
||||
|
||||
import com.android.systemui.plugins.annotations.ProvidesInterface;
|
||||
|
||||
@ProvidesInterface(action = DozeServicePlugin.ACTION, version = DozeServicePlugin.VERSION)
|
||||
public interface DozeServicePlugin extends Plugin {
|
||||
String ACTION = "com.android.systemui.action.PLUGIN_DOZE";
|
||||
int VERSION = 1;
|
||||
|
||||
public interface RequestDoze {
|
||||
void onRequestShowDoze();
|
||||
|
||||
void onRequestHideDoze();
|
||||
}
|
||||
|
||||
void onDreamingStarted();
|
||||
|
||||
void onDreamingStopped();
|
||||
|
||||
void setDozeRequester(RequestDoze requester);
|
||||
}
|
||||
@@ -16,23 +16,27 @@
|
||||
|
||||
package com.android.systemui.doze;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.PowerManager;
|
||||
import android.os.SystemClock;
|
||||
import android.service.dreams.DreamService;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.plugins.Plugin;
|
||||
import com.android.systemui.plugins.DozeServicePlugin;
|
||||
import com.android.systemui.plugins.PluginManager;
|
||||
|
||||
import com.android.systemui.plugins.DozeServicePlugin.RequestDoze;
|
||||
import com.android.systemui.plugins.PluginListener;
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
|
||||
public class DozeService extends DreamService implements DozeMachine.Service {
|
||||
public class DozeService extends DreamService
|
||||
implements DozeMachine.Service, RequestDoze, PluginListener<DozeServicePlugin> {
|
||||
private static final String TAG = "DozeService";
|
||||
static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
||||
|
||||
private DozeMachine mDozeMachine;
|
||||
private DozeServicePlugin mDozePlugin;
|
||||
|
||||
public DozeService() {
|
||||
setDebug(DEBUG);
|
||||
@@ -48,10 +52,25 @@ public class DozeService extends DreamService implements DozeMachine.Service {
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
Dependency.get(PluginManager.class).addPluginListener(this,
|
||||
DozeServicePlugin.class, false /* Allow multiple */);
|
||||
mDozeMachine = new DozeFactory().assembleMachine(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPluginConnected(DozeServicePlugin plugin, Context pluginContext) {
|
||||
mDozePlugin = plugin;
|
||||
mDozePlugin.setDozeRequester(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPluginDisconnected(DozeServicePlugin plugin) {
|
||||
if (mDozePlugin != null) {
|
||||
mDozePlugin.onDreamingStopped();
|
||||
mDozePlugin = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDreamingStarted() {
|
||||
super.onDreamingStarted();
|
||||
@@ -59,12 +78,18 @@ public class DozeService extends DreamService implements DozeMachine.Service {
|
||||
startDozing();
|
||||
setDozeScreenBrightness(getResources().getInteger(
|
||||
com.android.internal.R.integer.config_screenBrightnessDoze));
|
||||
if (mDozePlugin != null) {
|
||||
mDozePlugin.onDreamingStarted();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDreamingStopped() {
|
||||
super.onDreamingStopped();
|
||||
mDozeMachine.requestState(DozeMachine.State.FINISH);
|
||||
if (mDozePlugin != null) {
|
||||
mDozePlugin.onDreamingStopped();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -79,4 +104,18 @@ public class DozeService extends DreamService implements DozeMachine.Service {
|
||||
PowerManager pm = getSystemService(PowerManager.class);
|
||||
pm.wakeUp(SystemClock.uptimeMillis(), "com.android.systemui:NODOZE");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestShowDoze() {
|
||||
if (mDozeMachine != null) {
|
||||
mDozeMachine.requestState(DozeMachine.State.DOZE_AOD);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestHideDoze() {
|
||||
if (mDozeMachine != null) {
|
||||
mDozeMachine.requestState(DozeMachine.State.DOZE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user