diff options
author | Trumeet <liangyuteng12345@gmail.com> | 2018-11-27 15:32:01 -0800 |
---|---|---|
committer | Trumeet <liangyuteng12345@gmail.com> | 2018-11-27 15:32:01 -0800 |
commit | 288320e10e1eb93bc7f539a6394b1b0c64932c68 (patch) | |
tree | 80b2d0a26b3c6a1f2139a442638d9471df933a53 /app/src | |
parent | 4ec6cda3df823f1c0d65742b2d22555875b7a497 (diff) | |
download | SysUIController-288320e10e1eb93bc7f539a6394b1b0c64932c68.tar SysUIController-288320e10e1eb93bc7f539a6394b1b0c64932c68.tar.gz SysUIController-288320e10e1eb93bc7f539a6394b1b0c64932c68.tar.bz2 SysUIController-288320e10e1eb93bc7f539a6394b1b0c64932c68.zip |
feat: allow customize package name in setIcon method
Diffstat (limited to 'app/src')
-rw-r--r-- | app/src/main/aidl/moe/yuuta/sysuicontroller/IStatusController.aidl | 2 | ||||
-rw-r--r-- | app/src/main/java/moe/yuuta/sysuicontroller/core/ControllerService.java | 18 |
2 files changed, 16 insertions, 4 deletions
diff --git a/app/src/main/aidl/moe/yuuta/sysuicontroller/IStatusController.aidl b/app/src/main/aidl/moe/yuuta/sysuicontroller/IStatusController.aidl index 0938103..e14284a 100644 --- a/app/src/main/aidl/moe/yuuta/sysuicontroller/IStatusController.aidl +++ b/app/src/main/aidl/moe/yuuta/sysuicontroller/IStatusController.aidl @@ -11,7 +11,7 @@ interface IStatusController { void expandNotificationsPanel (); void collapsePanels (); void expandSettingsPanel (in String subPanel); - void setIcon(in String slot, int iconId, int iconLevel, in String contentDescription); + void setIcon(in String slot, in String packageName, int iconId, int iconLevel, in String contentDescription); void removeIcon(in String slot); void setIconVisibility(in String slot, boolean visible); diff --git a/app/src/main/java/moe/yuuta/sysuicontroller/core/ControllerService.java b/app/src/main/java/moe/yuuta/sysuicontroller/core/ControllerService.java index 994492c..236f05f 100644 --- a/app/src/main/java/moe/yuuta/sysuicontroller/core/ControllerService.java +++ b/app/src/main/java/moe/yuuta/sysuicontroller/core/ControllerService.java @@ -9,7 +9,10 @@ import android.os.Looper; import android.os.RemoteException; import android.util.Log; +import com.android.internal.statusbar.IStatusBarService; + import java.lang.reflect.Field; +import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Collections; @@ -35,9 +38,15 @@ public class ControllerService extends IStatusController.Stub { private StatusBarManager mManager; private Context mContext; private Intent mKeepWakeUpIntent; + private IStatusBarService mService; public static void main (String... args) throws Throwable { - new ControllerService().run(args); + try { + new ControllerService().run(args); + } catch (Throwable throwable) { + Log.e(TAG, "FETAL EXCEPTION during init", throwable); + System.exit(throwable.hashCode()); + } } @SuppressLint({"WrongConstant", "MissingPermission"}) @@ -45,6 +54,9 @@ public class ControllerService extends IStatusController.Stub { Looper.prepare(); mContext = RootJava.getSystemContext(); mManager = (StatusBarManager) mContext.getSystemService("statusbar"); + @SuppressLint("PrivateApi") Method mGetService = StatusBarManager.class.getDeclaredMethod("getService"); + mGetService.setAccessible(true); + mService = (IStatusBarService) mGetService.invoke(mManager); RootDaemon.daemonize(BuildConfig.APPLICATION_ID, CODE_SERVICE); RootJava.restoreOriginalLdLibraryPath(); RootDaemon.register(BuildConfig.APPLICATION_ID, this, CODE_SERVICE); @@ -111,9 +123,9 @@ public class ControllerService extends IStatusController.Stub { } @Override - public void setIcon(String slot, int iconId, int iconLevel, String contentDescription) throws RemoteException { + public void setIcon(String slot, String packageName, int iconId, int iconLevel, String contentDescription) throws RemoteException { enforcePermission(); - mManager.setIcon(slot, iconId, iconLevel, contentDescription); + mService.setIcon(slot, packageName, iconId, iconLevel, contentDescription); } @Override |