add a Settings button for customizing widget colors without recreating them

This commit is contained in:
tibbi
2018-05-16 15:11:34 +02:00
parent 2f42edd2b1
commit 9c4f4d242a
4 changed files with 45 additions and 8 deletions

View File

@ -1,5 +1,6 @@
package com.simplemobiletools.clock.activities
import android.content.Intent
import android.os.Bundle
import com.simplemobiletools.clock.R
import com.simplemobiletools.clock.extensions.config
@ -7,6 +8,7 @@ import com.simplemobiletools.clock.extensions.updateWidgets
import com.simplemobiletools.clock.helpers.DEFAULT_MAX_ALARM_REMINDER_SECS
import com.simplemobiletools.clock.helpers.DEFAULT_MAX_TIMER_REMINDER_SECS
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.IS_CUSTOMIZING_COLORS
import com.simplemobiletools.commons.helpers.MINUTE_SECONDS
import kotlinx.android.synthetic.main.activity_settings.*
import java.util.*
@ -33,6 +35,7 @@ class SettingsActivity : SimpleActivity() {
setupVibrate()
setupTimerMaxReminder()
setupUseTextShadow()
setupCustomizeWidgetColors()
updateTextColors(settings_holder)
setupSectionColors()
}
@ -169,4 +172,13 @@ class SettingsActivity : SimpleActivity() {
private fun updateTimerMaxReminderText() {
settings_timer_max_reminder.text = formatSecondsToTimeString(config.timerMaxReminderSecs)
}
private fun setupCustomizeWidgetColors() {
settings_customize_widget_colors_holder.setOnClickListener {
Intent(this, WidgetDateTimeConfigureActivity::class.java).apply {
putExtra(IS_CUSTOMIZING_COLORS, true)
startActivity(this)
}
}
}
}

View File

@ -14,6 +14,8 @@ import com.simplemobiletools.clock.helpers.MyWidgetDateTimeProvider
import com.simplemobiletools.clock.helpers.getPassedSeconds
import com.simplemobiletools.commons.dialogs.ColorPickerDialog
import com.simplemobiletools.commons.extensions.adjustAlpha
import com.simplemobiletools.commons.extensions.setFillWithStroke
import com.simplemobiletools.commons.helpers.IS_CUSTOMIZING_COLORS
import kotlinx.android.synthetic.main.widget_config_date_time.*
import java.util.*
@ -24,6 +26,7 @@ class WidgetDateTimeConfigureActivity : SimpleActivity() {
private var mBgColor = 0
private var mTextColorWithoutTransparency = 0
private var mTextColor = 0
private var mIsCustomizingColors = false
public override fun onCreate(savedInstanceState: Bundle?) {
useDynamicTheme = false
@ -32,12 +35,12 @@ class WidgetDateTimeConfigureActivity : SimpleActivity() {
setContentView(R.layout.widget_config_date_time)
initVariables()
val extras = intent.extras
if (extras != null)
mWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID)
mIsCustomizingColors = intent.extras?.getBoolean(IS_CUSTOMIZING_COLORS) ?: false
mWidgetId = intent.extras?.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID) ?: AppWidgetManager.INVALID_APPWIDGET_ID
if (mWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID)
if (mWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID && !mIsCustomizingColors) {
finish()
}
config_save.setOnClickListener { saveConfig() }
config_bg_color.setOnClickListener { pickBackgroundColor() }
@ -123,7 +126,7 @@ class WidgetDateTimeConfigureActivity : SimpleActivity() {
private fun updateColors() {
mTextColor = mTextColorWithoutTransparency
config_text_color.setBackgroundColor(mTextColor)
config_text_color.setFillWithStroke(mTextColor, Color.BLACK)
config_save.setTextColor(mTextColor)
config_time.setTextColor(mTextColor)
config_date.setTextColor(mTextColor)
@ -131,7 +134,7 @@ class WidgetDateTimeConfigureActivity : SimpleActivity() {
private fun updateBgColor() {
mBgColor = mBgColorWithoutTransparency.adjustAlpha(mBgAlpha)
config_bg_color.setBackgroundColor(mBgColor)
config_bg_color.setFillWithStroke(mBgColor, Color.BLACK)
config_save.setBackgroundColor(mBgColor)
config_date_time_wrapper.setBackgroundColor(mBgColor)
}