properly handle setting default navigation bar color

This commit is contained in:
tibbi 2019-07-22 23:28:42 +02:00
parent 4c5255ef12
commit 2a35cd1f16
6 changed files with 24 additions and 8 deletions

View file

@ -112,9 +112,11 @@ abstract class BaseSimpleActivity : AppCompatActivity() {
}
fun updateNavigationBarColor(color: Int = baseConfig.navigationBarColor) {
try {
window.navigationBarColor = color
} catch (ignored: Exception) {
if (baseConfig.navigationBarColor != INVALID_NAVIGATION_BAR_COLOR) {
try {
window.navigationBarColor = color
} catch (ignored: Exception) {
}
}
}

View file

@ -27,7 +27,7 @@ class CustomizationActivity : BaseSimpleActivity() {
private var curBackgroundColor = 0
private var curPrimaryColor = 0
private var curAppIconColor = 0
private var curNavigationBarColor = DEFAULT_NAVIGATION_BAR_COLOR
private var curNavigationBarColor = INVALID_NAVIGATION_BAR_COLOR
private var curSelectedThemeId = 0
private var originalAppIconColor = 0
private var hasUnsavedChanges = false
@ -43,6 +43,11 @@ class CustomizationActivity : BaseSimpleActivity() {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_customization)
if (baseConfig.defaultNavigationBarColor == INVALID_NAVIGATION_BAR_COLOR) {
baseConfig.defaultNavigationBarColor = window.navigationBarColor
baseConfig.navigationBarColor = window.navigationBarColor
}
initColorVariables()
setupColorsPickers()

View file

@ -12,7 +12,7 @@ import android.widget.ImageView
import androidx.appcompat.app.AlertDialog
import com.simplemobiletools.commons.R
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.DEFAULT_NAVIGATION_BAR_COLOR
import com.simplemobiletools.commons.helpers.INVALID_NAVIGATION_BAR_COLOR
import com.simplemobiletools.commons.views.ColorPickerSquare
import kotlinx.android.synthetic.main.dialog_color_picker.view.*
@ -158,7 +158,7 @@ class ColorPickerDialog(val activity: Activity, color: Int, val removeDimmedBack
}
private fun useDefault() {
callback(true, DEFAULT_NAVIGATION_BAR_COLOR)
callback(true, activity.baseConfig.defaultNavigationBarColor)
}
private fun getHexCode(color: Int) = color.toHex().substring(1)

View file

@ -73,6 +73,10 @@ fun Activity.appLaunched(appId: String) {
baseConfig.wasRateUsPromptShown = true
RateUsDialog(this)
}
if (baseConfig.navigationBarColor == INVALID_NAVIGATION_BAR_COLOR) {
baseConfig.navigationBarColor = window.navigationBarColor
}
}
fun Activity.showDonateOrUpgradeDialog() {

View file

@ -65,9 +65,13 @@ open class BaseConfig(val context: Context) {
set(primaryColor) = prefs.edit().putInt(PRIMARY_COLOR, primaryColor).apply()
var navigationBarColor: Int
get() = prefs.getInt(NAVIGATION_BAR_COLOR, DEFAULT_NAVIGATION_BAR_COLOR)
get() = prefs.getInt(NAVIGATION_BAR_COLOR, INVALID_NAVIGATION_BAR_COLOR)
set(navigationBarColor) = prefs.edit().putInt(NAVIGATION_BAR_COLOR, navigationBarColor).apply()
var defaultNavigationBarColor: Int
get() = prefs.getInt(DEFAULT_NAVIGATION_BAR_COLOR, INVALID_NAVIGATION_BAR_COLOR)
set(defaultNavigationBarColor) = prefs.edit().putInt(DEFAULT_NAVIGATION_BAR_COLOR, defaultNavigationBarColor).apply()
var lastHandledShortcutColor: Int
get() = prefs.getInt(LAST_HANDLED_SHORTCUT_COLOR, 1)
set(lastHandledShortcutColor) = prefs.edit().putInt(LAST_HANDLED_SHORTCUT_COLOR, lastHandledShortcutColor).apply()

View file

@ -21,7 +21,7 @@ const val ALARM_SOUND_TYPE_ALARM = 1
const val ALARM_SOUND_TYPE_NOTIFICATION = 2
const val YOUR_ALARM_SOUNDS_MIN_ID = 1000
const val SHOW_FAQ_BEFORE_MAIL = "show_faq_before_mail"
const val DEFAULT_NAVIGATION_BAR_COLOR = -1
const val INVALID_NAVIGATION_BAR_COLOR = -1
val DEFAULT_WIDGET_BG_COLOR = Color.parseColor("#33000000")
const val HOUR_MINUTES = 60
@ -51,6 +51,7 @@ const val BACKGROUND_COLOR = "background_color"
const val PRIMARY_COLOR = "primary_color_2"
const val APP_ICON_COLOR = "app_icon_color"
const val NAVIGATION_BAR_COLOR = "navigation_bar_color"
const val DEFAULT_NAVIGATION_BAR_COLOR = "default_navigation_bar_color"
const val LAST_HANDLED_SHORTCUT_COLOR = "last_handled_shortcut_color"
const val LAST_ICON_COLOR = "last_icon_color"
const val CUSTOM_TEXT_COLOR = "custom_text_color"