mirror of
https://github.com/SimpleMobileTools/Simple-Flashlight.git
synced 2025-02-17 04:10:46 +01:00
restore flashlight/stroboscope state on device rotation
This commit is contained in:
parent
71c9a038cd
commit
687dbe5e56
@ -25,9 +25,12 @@ import kotlinx.android.synthetic.main.activity_main.*
|
|||||||
class MainActivity : SimpleActivity() {
|
class MainActivity : SimpleActivity() {
|
||||||
private val MAX_STROBO_DELAY = 2000
|
private val MAX_STROBO_DELAY = 2000
|
||||||
private val MIN_STROBO_DELAY = 30
|
private val MIN_STROBO_DELAY = 30
|
||||||
|
private val FLASHLIGHT_STATE = "flashlight_state"
|
||||||
|
private val STROBOSCOPE_STATE = "stroboscope_state"
|
||||||
|
|
||||||
private var mBus: Bus? = null
|
private var mBus: Bus? = null
|
||||||
private var mCameraImpl: MyCameraImpl? = null
|
private var mCameraImpl: MyCameraImpl? = null
|
||||||
|
private var mIsFlashlightOn = false
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
@ -41,7 +44,7 @@ class MainActivity : SimpleActivity() {
|
|||||||
startActivity(Intent(applicationContext, BrightDisplayActivity::class.java))
|
startActivity(Intent(applicationContext, BrightDisplayActivity::class.java))
|
||||||
}
|
}
|
||||||
|
|
||||||
toggle_btn.setOnClickListener {
|
flashlight_btn.setOnClickListener {
|
||||||
mCameraImpl!!.toggleFlashlight()
|
mCameraImpl!!.toggleFlashlight()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,6 +103,25 @@ class MainActivity : SimpleActivity() {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onSaveInstanceState(outState: Bundle) {
|
||||||
|
outState.putBoolean(FLASHLIGHT_STATE, mIsFlashlightOn)
|
||||||
|
outState.putBoolean(STROBOSCOPE_STATE, stroboscope_bar.isVisible())
|
||||||
|
super.onSaveInstanceState(outState)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
|
||||||
|
super.onRestoreInstanceState(savedInstanceState)
|
||||||
|
val isFlashlightOn = savedInstanceState.getBoolean(FLASHLIGHT_STATE, false)
|
||||||
|
if (isFlashlightOn) {
|
||||||
|
mCameraImpl!!.toggleFlashlight()
|
||||||
|
}
|
||||||
|
|
||||||
|
val isStroboscopeOn = savedInstanceState.getBoolean(STROBOSCOPE_STATE, false)
|
||||||
|
if (isStroboscopeOn) {
|
||||||
|
toggleStroboscope()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun launchSettings() {
|
private fun launchSettings() {
|
||||||
startActivity(Intent(applicationContext, SettingsActivity::class.java))
|
startActivity(Intent(applicationContext, SettingsActivity::class.java))
|
||||||
}
|
}
|
||||||
@ -185,16 +207,18 @@ class MainActivity : SimpleActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun enableFlashlight() {
|
private fun enableFlashlight() {
|
||||||
changeIconColor(getAdjustedPrimaryColor(), toggle_btn)
|
changeIconColor(getAdjustedPrimaryColor(), flashlight_btn)
|
||||||
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||||
|
mIsFlashlightOn = true
|
||||||
|
|
||||||
changeIconColor(config.backgroundColor.getContrastColor(), stroboscope_btn)
|
changeIconColor(config.backgroundColor.getContrastColor(), stroboscope_btn)
|
||||||
stroboscope_bar.beInvisible()
|
stroboscope_bar.beInvisible()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun disableFlashlight() {
|
private fun disableFlashlight() {
|
||||||
changeIconColor(config.backgroundColor.getContrastColor(), toggle_btn)
|
changeIconColor(config.backgroundColor.getContrastColor(), flashlight_btn)
|
||||||
window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||||
|
mIsFlashlightOn = false
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun changeIconColor(color: Int, imageView: ImageView?) {
|
private fun changeIconColor(color: Int, imageView: ImageView?) {
|
||||||
|
@ -31,8 +31,8 @@ class MyWidgetProvider : AppWidgetProvider() {
|
|||||||
val views = RemoteViews(context.packageName, R.layout.widget)
|
val views = RemoteViews(context.packageName, R.layout.widget)
|
||||||
|
|
||||||
val pendingIntent = PendingIntent.getBroadcast(context, it, intent, 0)
|
val pendingIntent = PendingIntent.getBroadcast(context, it, intent, 0)
|
||||||
views.setOnClickPendingIntent(R.id.toggle_btn, pendingIntent)
|
views.setOnClickPendingIntent(R.id.flashlight_btn, pendingIntent)
|
||||||
views.setImageViewBitmap(R.id.toggle_btn, bmp)
|
views.setImageViewBitmap(R.id.flashlight_btn, bmp)
|
||||||
appWidgetManager.updateAppWidget(it, views)
|
appWidgetManager.updateAppWidget(it, views)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -62,7 +62,7 @@ class MyWidgetProvider : AppWidgetProvider() {
|
|||||||
val appWidgetManager = AppWidgetManager.getInstance(context)
|
val appWidgetManager = AppWidgetManager.getInstance(context)
|
||||||
appWidgetManager.getAppWidgetIds(getComponentName(context)).forEach {
|
appWidgetManager.getAppWidgetIds(getComponentName(context)).forEach {
|
||||||
val views = RemoteViews(context.packageName, R.layout.widget)
|
val views = RemoteViews(context.packageName, R.layout.widget)
|
||||||
views.setImageViewBitmap(R.id.toggle_btn, bmp)
|
views.setImageViewBitmap(R.id.flashlight_btn, bmp)
|
||||||
appWidgetManager.updateAppWidget(it, views)
|
appWidgetManager.updateAppWidget(it, views)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/toggle_btn"
|
android:id="@+id/flashlight_btn"
|
||||||
android:layout_width="@dimen/main_button_size"
|
android:layout_width="@dimen/main_button_size"
|
||||||
android:layout_height="@dimen/main_button_size"
|
android:layout_height="@dimen/main_button_size"
|
||||||
android:layout_marginBottom="@dimen/activity_margin"
|
android:layout_marginBottom="@dimen/activity_margin"
|
||||||
@ -37,7 +37,7 @@
|
|||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintHorizontal_bias="0.5"
|
app:layout_constraintHorizontal_bias="0.5"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/toggle_btn"/>
|
app:layout_constraintTop_toBottomOf="@+id/flashlight_btn"/>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/stroboscope_btn"
|
android:id="@+id/stroboscope_btn"
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<ImageView
|
<ImageView
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:id="@+id/toggle_btn"
|
android:id="@+id/flashlight_btn"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="5dp"/>
|
android:layout_margin="5dp"/>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user