Magisk/app/src/main/java/com/topjohnwu/magisk/QuickSettingTileService.java
2016-09-21 01:08:05 +08:00

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();
}
}