From 9c4f4d242a6c52e6d9e7a24a5332832ccc6968e7 Mon Sep 17 00:00:00 2001 From: tibbi Date: Wed, 16 May 2018 15:11:34 +0200 Subject: [PATCH] add a Settings button for customizing widget colors without recreating them --- .../clock/activities/SettingsActivity.kt | 12 ++++++++++ .../WidgetDateTimeConfigureActivity.kt | 15 ++++++++----- app/src/main/res/layout/activity_settings.xml | 22 +++++++++++++++++++ .../res/layout/widget_config_date_time.xml | 4 ++-- 4 files changed, 45 insertions(+), 8 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/clock/activities/SettingsActivity.kt index 15ee77c4..0f9af38c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/activities/SettingsActivity.kt @@ -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) + } + } + } } diff --git a/app/src/main/kotlin/com/simplemobiletools/clock/activities/WidgetDateTimeConfigureActivity.kt b/app/src/main/kotlin/com/simplemobiletools/clock/activities/WidgetDateTimeConfigureActivity.kt index 46dd8a72..fb7e87f3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/clock/activities/WidgetDateTimeConfigureActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/clock/activities/WidgetDateTimeConfigureActivity.kt @@ -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) } diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index b5fb5898..f8a62c1d 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -432,5 +432,27 @@ android:paddingStart="@dimen/medium_margin" android:text="@string/use_text_shadow"/> + + + + + + diff --git a/app/src/main/res/layout/widget_config_date_time.xml b/app/src/main/res/layout/widget_config_date_time.xml index 05346e5a..085cb48c 100644 --- a/app/src/main/res/layout/widget_config_date_time.xml +++ b/app/src/main/res/layout/widget_config_date_time.xml @@ -35,7 +35,7 @@ tools:text="Mon, 1 January"/> -