mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-03-28 15:22:16 +00:00
77 lines
2.2 KiB
Java
77 lines
2.2 KiB
Java
package com.topjohnwu.magisk;
|
|
|
|
import android.annotation.SuppressLint;
|
|
import android.graphics.drawable.Icon;
|
|
import android.service.quicksettings.Tile;
|
|
import android.service.quicksettings.TileService;
|
|
import android.util.Log;
|
|
|
|
import com.topjohnwu.magisk.utils.Utils;
|
|
|
|
@SuppressLint("NewApi")
|
|
public class QuickSettingTileService extends TileService {
|
|
private int STATE_CURRENT;
|
|
|
|
public QuickSettingTileService() {
|
|
}
|
|
|
|
@Override
|
|
public void onTileAdded() {
|
|
super.onTileAdded();
|
|
setupState();
|
|
}
|
|
|
|
@Override
|
|
public void onClick() {
|
|
switchState();
|
|
|
|
}
|
|
|
|
private void setupState() {
|
|
Icon iconRoot = Icon.createWithResource(getApplicationContext(), R.drawable.root);
|
|
Icon iconAuto = Icon.createWithResource(getApplicationContext(), R.drawable.ic_autoroot);
|
|
Tile tile = this.getQsTile();
|
|
boolean autoRootStatus = Utils.autoRootEnabled(getApplicationContext());
|
|
boolean rootStatus = Utils.rootEnabled();
|
|
Log.d("Magisk", "QST: Auto and root are " + autoRootStatus + " and " + rootStatus);
|
|
if (autoRootStatus) {
|
|
tile.setLabel("Auto-root");
|
|
tile.setIcon(iconAuto);
|
|
tile.setState(Tile.STATE_ACTIVE);
|
|
STATE_CURRENT = 0;
|
|
} else {
|
|
if (rootStatus) {
|
|
tile.setLabel("Root enabled");
|
|
tile.setIcon(iconRoot);
|
|
tile.setState(Tile.STATE_ACTIVE);
|
|
STATE_CURRENT = 1;
|
|
|
|
} else {
|
|
tile.setLabel("Root disabled");
|
|
tile.setIcon(iconRoot);
|
|
tile.setState(Tile.STATE_INACTIVE);
|
|
STATE_CURRENT = 2;
|
|
|
|
}
|
|
}
|
|
tile.updateTile();
|
|
}
|
|
|
|
private void switchState() {
|
|
Log.d("Magisk", "QST: Switching state to " + STATE_CURRENT);
|
|
switch (STATE_CURRENT) {
|
|
case 0:
|
|
Utils.toggleRoot(false);
|
|
Utils.toggleAutoRoot(false, getApplicationContext());
|
|
break;
|
|
case 1:
|
|
Utils.toggleAutoRoot(true, getApplicationContext());
|
|
break;
|
|
case 2:
|
|
Utils.toggleRoot(true);
|
|
break;
|
|
}
|
|
setupState();
|
|
|
|
}
|
|
} |