diff options
| author | 2017-06-13 08:16:56 -0700 | |
|---|---|---|
| committer | 2017-06-13 10:28:40 -0700 | |
| commit | f33a097232f153e8dfeabd222d8809cd6a8d9457 (patch) | |
| tree | ab61358bc35cbf41f4e91d151abf7099d49770e0 | |
| parent | 6ef238a51c27abbeb90b5e187be2eab9dfdfecbe (diff) | |
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
| -rw-r--r-- | packages/SystemUI/plugin/src/com/android/systemui/plugins/DozeServicePlugin.java | 21 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/doze/DozeService.java | 47 |
2 files changed, 64 insertions, 4 deletions
diff --git a/packages/SystemUI/plugin/src/com/android/systemui/plugins/DozeServicePlugin.java b/packages/SystemUI/plugin/src/com/android/systemui/plugins/DozeServicePlugin.java new file mode 100644 index 000000000000..3ca5690af474 --- /dev/null +++ b/packages/SystemUI/plugin/src/com/android/systemui/plugins/DozeServicePlugin.java @@ -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); +} diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java index 3271caf598cf..d9fb087a6041 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java @@ -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,23 +52,44 @@ 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(); mDozeMachine.requestState(DozeMachine.State.INITIALIZED); 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); + } + } } |