ChargingIOSActivity.kt raw
1 package io.github.domi04151309.alwayson.actions
2
3 import android.content.Intent
4 import android.content.IntentFilter
5 import android.graphics.Point
6 import android.hardware.display.DisplayManager
7 import android.os.BatteryManager
8 import android.os.Bundle
9 import android.view.Display
10 import android.widget.ImageView
11 import android.widget.LinearLayout
12 import android.widget.TextView
13 import io.github.domi04151309.alwayson.R
14 import io.github.domi04151309.alwayson.helpers.IconHelper
15
16 class ChargingIOSActivity : OffActivity() {
17 override fun onCreate(savedInstanceState: Bundle?) {
18 super.onCreate(savedInstanceState)
19 setContentView(R.layout.activity_charging_ios)
20
21 val content = findViewById<LinearLayout>(R.id.content)
22 val batteryIcn = findViewById<ImageView>(R.id.batteryIcn)
23
24 turnOnScreen()
25 fullscreen(content)
26
27 val level =
28 registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED))
29 ?.getIntExtra(BatteryManager.EXTRA_LEVEL, 0)
30 ?: 0
31 findViewById<TextView>(R.id.batteryTxt).text = resources.getString(R.string.charged, level)
32 batteryIcn.setImageResource(IconHelper.getBatteryIcon(level))
33
34 object : Thread() {
35 override fun run() {
36 while (content.height == 0) sleep(TINY_DELAY)
37 val size = Point()
38 (getSystemService(DISPLAY_SERVICE) as DisplayManager)
39 .getDisplay(Display.DEFAULT_DISPLAY)
40 .getSize(size)
41 runOnUiThread {
42 content.translationY = (size.y - content.height).toFloat() / FRACTIONAL_VIEW_POSITION
43 }
44 sleep(ANIMATION_DELAY)
45 content.animate().alpha(0f).duration = ANIMATION_DURATION
46 sleep(ANIMATION_DURATION)
47 runOnUiThread {
48 finishAndOff()
49 }
50 }
51 }.start()
52 }
53
54 companion object {
55 private const val TINY_DELAY = 10L
56 private const val ANIMATION_DELAY = 3000L
57 private const val ANIMATION_DURATION = 1000L
58 private const val FRACTIONAL_VIEW_POSITION = 8
59 }
60 }
61