diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SettingsActivity.kt index a7f933fb7..c46cb0314 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/activities/SettingsActivity.kt @@ -10,9 +10,7 @@ import android.os.Parcelable import com.simplemobiletools.calendar.R import com.simplemobiletools.calendar.dialogs.CustomEventReminderDialog import com.simplemobiletools.calendar.dialogs.SnoozePickerDialog -import com.simplemobiletools.calendar.extensions.config -import com.simplemobiletools.calendar.extensions.dbHelper -import com.simplemobiletools.calendar.extensions.getFormattedMinutes +import com.simplemobiletools.calendar.extensions.* import com.simplemobiletools.calendar.helpers.FONT_SIZE_LARGE import com.simplemobiletools.calendar.helpers.FONT_SIZE_MEDIUM import com.simplemobiletools.calendar.helpers.FONT_SIZE_SMALL @@ -263,6 +261,8 @@ class SettingsActivity : SimpleActivity() { RadioGroupDialog(this@SettingsActivity, items, config.fontSize) { config.fontSize = it as Int settings_font_size.text = getFontSizeText() + updateWidgets() + updateListWidget() } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Config.kt index c88ab35f8..fcbf38af8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Config.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/Config.kt @@ -3,6 +3,7 @@ package com.simplemobiletools.calendar.helpers import android.content.Context import android.media.RingtoneManager import android.text.format.DateFormat +import com.simplemobiletools.calendar.R import com.simplemobiletools.commons.helpers.BaseConfig import java.util.* @@ -100,4 +101,14 @@ class Config(context: Context) : BaseConfig(context) { return "" } } + + fun getFontSize() = when (fontSize) { + FONT_SIZE_SMALL -> getSmallFontSize() + FONT_SIZE_MEDIUM -> getMediumFontSize() + else -> getLargeFontSize() + } + + fun getSmallFontSize() = getMediumFontSize() - 3f + fun getMediumFontSize() = context.resources.getDimension(R.dimen.day_text_size) / context.resources.displayMetrics.density + fun getLargeFontSize() = getMediumFontSize() + 3f } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/MyWidgetMonthlyProvider.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/MyWidgetMonthlyProvider.kt index c08a46e6a..1c7642ed6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/MyWidgetMonthlyProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/MyWidgetMonthlyProvider.kt @@ -32,6 +32,10 @@ class MyWidgetMonthlyProvider : AppWidgetProvider(), MonthlyCalendar { private var mCalendar: MonthlyCalendarImpl? = null private var mRemoteViews: RemoteViews? = null + private var mSmallerFontSize = 0f + private var mMediumFontSize = 0f + private var mLargerFontSize = 0f + lateinit var mRes: Resources lateinit var mContext: Context lateinit var mWidgetManager: AppWidgetManager @@ -51,20 +55,23 @@ class MyWidgetMonthlyProvider : AppWidgetProvider(), MonthlyCalendar { mContext = context mRes = mContext.resources mCalendar = MonthlyCalendarImpl(this, mContext) - - val config = context.config - mTextColor = config.widgetTextColor - mWeakTextColor = config.widgetTextColor.adjustAlpha(LOW_ALPHA) - mWidgetManager = AppWidgetManager.getInstance(mContext) - mRemoteViews = RemoteViews(mContext.packageName, R.layout.fragment_month_widget) + context.config.apply { + mTextColor = widgetTextColor + mWeakTextColor = widgetTextColor.adjustAlpha(LOW_ALPHA) + mMediumFontSize = getFontSize() + mSmallerFontSize = getFontSize() - 3f + mLargerFontSize = getFontSize() + 3f + + mRemoteViews = RemoteViews(mContext.packageName, R.layout.fragment_month_widget) + mRemoteViews?.setInt(R.id.calendar_holder, "setBackgroundColor", widgetBgColor) + } + mIntent = Intent(mContext, MyWidgetMonthlyProvider::class.java) setupButtons() updateLabelColor() updateTopViews() - - mRemoteViews?.setInt(R.id.calendar_holder, "setBackgroundColor", config.widgetBgColor) mCalendar?.updateMonthlyCalendar(mTargetDate, false) } @@ -130,6 +137,7 @@ class MyWidgetMonthlyProvider : AppWidgetProvider(), MonthlyCalendar { val len = days.size val packageName = mContext.packageName mRemoteViews?.setInt(R.id.week_num, "setTextColor", mTextColor) + mRemoteViews?.setFloat(R.id.week_num, "setTextSize", mSmallerFontSize) mRemoteViews?.setViewVisibility(R.id.week_num, if (displayWeekNumbers) View.VISIBLE else View.GONE) for (i in 0..5) { @@ -137,6 +145,7 @@ class MyWidgetMonthlyProvider : AppWidgetProvider(), MonthlyCalendar { mRemoteViews?.apply { setTextViewText(id, days[i * 7 + 3].weekOfYear.toString() + ":") setInt(id, "setTextColor", mTextColor) + setFloat(id, "setTextSize", mSmallerFontSize) setViewVisibility(id, if (displayWeekNumbers) View.VISIBLE else View.GONE) } } @@ -171,6 +180,7 @@ class MyWidgetMonthlyProvider : AppWidgetProvider(), MonthlyCalendar { } mRemoteViews?.setInt(id, "setTextColor", curTextColor) + mRemoteViews?.setFloat(id, "setTextSize", mMediumFontSize) setupDayOpenIntent(id, day.code) } } @@ -186,6 +196,7 @@ class MyWidgetMonthlyProvider : AppWidgetProvider(), MonthlyCalendar { private fun updateTopViews() { mRemoteViews?.setInt(R.id.top_value, "setTextColor", mTextColor) + mRemoteViews?.setFloat(R.id.top_value, "setTextSize", mLargerFontSize) var bmp = getColoredIcon(mContext, mTextColor, R.drawable.ic_pointer_left) mRemoteViews?.setImageViewBitmap(R.id.top_left_arrow, bmp) @@ -214,6 +225,7 @@ class MyWidgetMonthlyProvider : AppWidgetProvider(), MonthlyCalendar { for (i in 0..6) { val id = mRes.getIdentifier("label_$i", "id", packageName) mRemoteViews?.setInt(id, "setTextColor", mTextColor) + mRemoteViews?.setFloat(id, "setTextSize", mSmallerFontSize) var index = i if (!mSundayFirst)