Move visibility toggle to onResume

This commit is contained in:
Philipp Heckel 2022-01-18 19:10:34 -05:00
parent 9c616d3b7d
commit 30f7059172
3 changed files with 28 additions and 26 deletions

View file

@ -122,30 +122,22 @@ class MainActivity : AppCompatActivity(), ActionMode.Callback, AddFragment.Subsc
}
// Battery banner
val batteryRemindTimeReached = repository.getBatteryOptimizationsRemindTime() < System.currentTimeMillis()
val ignoringBatteryOptimizations = isIgnoringBatteryOptimizations(this)
val showBatteryBanner = batteryRemindTimeReached && !ignoringBatteryOptimizations
val batteryBanner = findViewById<View>(R.id.main_banner_battery)
batteryBanner.visibility = if (showBatteryBanner) View.VISIBLE else View.GONE
Log.d(TAG, "Battery: ignoring optimizations = $ignoringBatteryOptimizations (we want this to be true); remind time reached = $batteryRemindTimeReached")
if (showBatteryBanner) {
val dismissButton = findViewById<Button>(R.id.main_banner_battery_dismiss)
val askLaterButton = findViewById<Button>(R.id.main_banner_battery_ask_later)
val fixNowButton = findViewById<Button>(R.id.main_banner_battery_fix_now)
dismissButton.setOnClickListener {
batteryBanner.visibility = View.GONE
repository.setBatteryOptimizationsRemindTime(Repository.BATTERY_OPTIMIZATIONS_REMIND_TIME_NEVER)
}
askLaterButton.setOnClickListener {
batteryBanner.visibility = View.GONE
repository.setBatteryOptimizationsRemindTime(System.currentTimeMillis() + ONE_DAY_MILLIS)
}
fixNowButton.setOnClickListener {
batteryBanner.visibility = View.GONE
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val intent = Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS)
startActivity(intent)
}
val batteryBanner = findViewById<View>(R.id.main_banner_battery) // Banner visibility is toggled in onResume()
val dontAskAgainButton = findViewById<Button>(R.id.main_banner_battery_dontaskagain)
val askLaterButton = findViewById<Button>(R.id.main_banner_battery_ask_later)
val fixNowButton = findViewById<Button>(R.id.main_banner_battery_fix_now)
dontAskAgainButton.setOnClickListener {
batteryBanner.visibility = View.GONE
repository.setBatteryOptimizationsRemindTime(Repository.BATTERY_OPTIMIZATIONS_REMIND_TIME_NEVER)
}
askLaterButton.setOnClickListener {
batteryBanner.visibility = View.GONE
repository.setBatteryOptimizationsRemindTime(System.currentTimeMillis() + ONE_DAY_MILLIS)
}
fixNowButton.setOnClickListener {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val intent = Intent(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS)
startActivity(intent)
}
}
@ -162,8 +154,18 @@ class MainActivity : AppCompatActivity(), ActionMode.Callback, AddFragment.Subsc
override fun onResume() {
super.onResume()
// Menu and main list
showHideNotificationMenuItems()
redrawList()
// Battery banner
val batteryRemindTimeReached = repository.getBatteryOptimizationsRemindTime() < System.currentTimeMillis()
val ignoringBatteryOptimizations = isIgnoringBatteryOptimizations(this)
val showBatteryBanner = batteryRemindTimeReached && !ignoringBatteryOptimizations
val batteryBanner = findViewById<View>(R.id.main_banner_battery)
batteryBanner.visibility = if (showBatteryBanner) View.VISIBLE else View.GONE
Log.d(TAG, "Battery: ignoring optimizations = $ignoringBatteryOptimizations (we want this to be true); remind time reached = $batteryRemindTimeReached")
}
private fun startPeriodicPollWorker() {

View file

@ -51,7 +51,7 @@
android:layout_marginBottom="5dp"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/main_banner_battery_dismiss"
android:id="@+id/main_banner_battery_dontaskagain"
style="@style/Widget.MaterialComponents.Button.TextButton"
android:layout_width="0dp"
android:layout_height="wrap_content"

View file

@ -70,7 +70,7 @@
<!-- Main activity: Battery banner -->
<string name="main_banner_battery_text">Battery optimization should be disabled to avoid issues with notification delivery.</string>
<string name="main_banner_battery_button_ask_later">Ask later</string>
<string name="main_banner_battery_button_dismiss">Dismiss</string>
<string name="main_banner_battery_button_dismiss">Don\'t ask again</string>
<string name="main_banner_battery_button_fix_now">Fix now</string>
<!-- Add dialog -->