diff options
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.java | 82 |
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; + } +} |