aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/moe/yuuta/sysuicontroller/core/Controller.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/moe/yuuta/sysuicontroller/core/Controller.java')
-rw-r--r--app/src/main/java/moe/yuuta/sysuicontroller/core/Controller.java82
1 files changed, 82 insertions, 0 deletions
diff --git a/app/src/main/java/moe/yuuta/sysuicontroller/core/Controller.java b/app/src/main/java/moe/yuuta/sysuicontroller/core/Controller.java
new file mode 100644
index 0000000..0c0362a
--- /dev/null
+++ b/app/src/main/java/moe/yuuta/sysuicontroller/core/Controller.java
@@ -0,0 +1,82 @@
+package moe.yuuta.sysuicontroller.core;
+
+import android.os.Bundle;
+import android.os.RemoteException;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+/**
+ * User-friendly controller
+ */
+public final class Controller<T extends IController> implements IController {
+ private final T mTargetController;
+
+ public Controller(T mTargetController) {
+ this.mTargetController = mTargetController;
+ }
+
+ @Override
+ public void startAsync() {
+ mTargetController.startAsync();
+ }
+
+ @Override
+ public boolean isServiceReady() {
+ return mTargetController.isServiceReady();
+ }
+
+ @Override
+ public void disable(int flags) throws RemoteException {
+ mTargetController.disable(flags);
+ }
+
+ @Override
+ public void disable2(int flags) throws RemoteException {
+ mTargetController.disable2(flags);
+ }
+
+ @Override
+ public int getDisableFlags() throws RemoteException {
+ return mTargetController.getDisableFlags();
+ }
+
+ @Override
+ public int getDisable2Flags() throws RemoteException {
+ return mTargetController.getDisable2Flags();
+ }
+
+ @Override
+ public void restoreStatus(@Nullable Bundle savedInstanceState) {
+ if (isServiceReady()) mTargetController.restoreStatus(savedInstanceState);
+ }
+
+ @Override
+ public void saveStatus(@NonNull Bundle savedInstanceState) {
+ if (isServiceReady()) mTargetController.saveStatus(savedInstanceState);
+ }
+
+ @Override
+ public void destroy() {
+ if (isServiceReady()) mTargetController.destroy();
+ }
+
+ @Override
+ public void stopSync() {
+ if (isServiceReady()) mTargetController.stopSync();
+ }
+
+ @Override
+ public boolean canStop() {
+ return mTargetController.canStop();
+ }
+
+ @Override
+ public void revert() {
+ mTargetController.revert();
+ }
+
+ public T controller() {
+ return mTargetController;
+ }
+}