update the monthly wdget font size appropriately

This commit is contained in:
tibbi
2017-07-06 20:53:54 +02:00
parent aab856555a
commit f88b9425bd
3 changed files with 34 additions and 11 deletions

View File

@ -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()
}
}
}

View File

@ -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
}

View File

@ -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)
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)