blob: 75b6ce4983f7d0c1c5d7ec9e0a685e7eedd78325 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
package moe.yuuta.workmode.suspend
import android.content.Intent
import android.service.quicksettings.Tile
import android.service.quicksettings.TileService
import com.elvishew.xlog.XLog
import moe.yuuta.workmode.suspend.data.Status
import moe.yuuta.workmode.suspend.data.SuspendedStorage
import java.util.concurrent.TimeUnit
class SuspendTile : TileService() {
private val logger = XLog.tag("SuspendTile").build()
override fun onClick() {
val storage = SuspendedStorage.get(this)
storage.setStatus(
when (storage.getStatus()) {
Status.ON -> Status.OFF
Status.OFF -> Status.ON
}
)
sendBroadcast(Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS))
try {
AsyncSuspender(this).applyFromSettings()
.get(10, TimeUnit.SECONDS)
} catch (e: Throwable) {
logger.e("Cannot trigger", e)
}
}
override fun onStartListening() {
val tile = qsTile
tile.state = when (SuspendedStorage.get(this@SuspendTile).getStatus()) {
Status.ON -> Tile.STATE_ACTIVE
Status.OFF -> Tile.STATE_INACTIVE
}
tile.updateTile()
}
}
|