diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 08e374d..b3021ef 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -23,6 +23,15 @@ + + + + + diff --git a/app/src/main/java/org/itxtech/daedalus/service/DaedalusTileService.java b/app/src/main/java/org/itxtech/daedalus/service/DaedalusTileService.java new file mode 100644 index 0000000..b1e90a3 --- /dev/null +++ b/app/src/main/java/org/itxtech/daedalus/service/DaedalusTileService.java @@ -0,0 +1,48 @@ +package org.itxtech.daedalus.service; + +import android.content.Intent; +import android.os.Build; +import android.service.quicksettings.Tile; +import android.service.quicksettings.TileService; +import android.support.annotation.RequiresApi; + +import org.itxtech.daedalus.Daedalus; +import org.itxtech.daedalus.activity.MainActivity; + +/** + * Quick Tile Service + * Created by pcqpcq on 17/7/28. + */ +@RequiresApi(api = Build.VERSION_CODES.N) +public class DaedalusTileService extends TileService { + + @Override + public void onClick() { + Daedalus appContext = Daedalus.getInstance(); + boolean activate = appContext.isServiceActivated(); + + Intent intent = new Intent(appContext, MainActivity.class) + .setAction(Intent.ACTION_VIEW) + .putExtra(MainActivity.LAUNCH_ACTION, activate ? MainActivity.LAUNCH_ACTION_DEACTIVATE : MainActivity.LAUNCH_ACTION_ACTIVATE); + + startActivityAndCollapse(intent); + } + + @Override + public void onTileAdded() { + updateTile(); + } + + @Override + public void onStartListening() { + updateTile(); + } + + private void updateTile() { + boolean activate = Daedalus.getInstance().isServiceActivated(); + + Tile tile = getQsTile(); + tile.setState(activate ? Tile.STATE_ACTIVE : Tile.STATE_INACTIVE); + tile.updateTile(); + } +}