From 61a606f0ae39e0b8605ae843390364df783d69af Mon Sep 17 00:00:00 2001 From: Agnieszka C <85929121+Aga-C@users.noreply.github.com> Date: Tue, 1 Feb 2022 18:28:48 +0100 Subject: [PATCH 1/2] Fixed text styling in checklist widget (#347) --- .../notes/pro/adapters/WidgetAdapter.kt | 34 +++++-- .../main/res/layout/item_checklist_widget.xml | 93 ++++++++++++++++--- 2 files changed, 108 insertions(+), 19 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/WidgetAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/WidgetAdapter.kt index eac07966..ccef1b97 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/WidgetAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/WidgetAdapter.kt @@ -25,6 +25,8 @@ import com.simplemobiletools.notes.pro.models.Note class WidgetAdapter(val context: Context, val intent: Intent) : RemoteViewsService.RemoteViewsFactory { private val textIds = arrayOf(R.id.widget_text_left, R.id.widget_text_center, R.id.widget_text_right, R.id.widget_text_left_monospace, R.id.widget_text_center_monospace, R.id.widget_text_right_monospace) + private val checklistIds = arrayOf(R.id.checklist_text_left, R.id.checklist_text_center, R.id.checklist_text_right, + R.id.checklist_text_left_monospace, R.id.checklist_text_center_monospace, R.id.checklist_text_right_monospace) private var widgetTextColor = DEFAULT_WIDGET_TEXT_COLOR private var note: Note? = null private var checklistItems = ArrayList() @@ -41,18 +43,22 @@ class WidgetAdapter(val context: Context, val intent: Intent) : RemoteViewsServi if (note!!.type == NoteType.TYPE_CHECKLIST.value) { remoteView = RemoteViews(context.packageName, R.layout.item_checklist_widget).apply { val checklistItem = checklistItems.getOrNull(position) ?: return@apply - setText(checklist_title, checklistItem.title) - val widgetNewTextColor = if (checklistItem.isDone) widgetTextColor.adjustAlpha(DONE_CHECKLIST_ITEM_ALPHA) else widgetTextColor - setTextColor(checklist_title, widgetNewTextColor) - setTextSize(checklist_title, textSize) - val paintFlags = if (checklistItem.isDone) Paint.STRIKE_THRU_TEXT_FLAG or Paint.ANTI_ALIAS_FLAG else Paint.ANTI_ALIAS_FLAG - setInt(checklist_title, "setPaintFlags", paintFlags) + + for (id in checklistIds) { + setText(id, checklistItem.title) + setTextColor(id, widgetNewTextColor) + setTextSize(id, textSize) + setInt(id, "setPaintFlags", paintFlags) + setViewVisibility(id, View.GONE) + } + + setViewVisibility(getProperChecklistTextView(context), View.VISIBLE) Intent().apply { putExtra(OPEN_NOTE_ID, noteId) - setOnClickFillInIntent(checklist_title, this) + setOnClickFillInIntent(R.id.checklist_text_holder, this) } } } else { @@ -90,6 +96,20 @@ class WidgetAdapter(val context: Context, val intent: Intent) : RemoteViewsServi } } + private fun getProperChecklistTextView(context: Context): Int { + val gravity = context.config.gravity + val isMonospaced = context.config.monospacedFont + + return when { + gravity == GRAVITY_CENTER && isMonospaced -> R.id.checklist_text_center_monospace + gravity == GRAVITY_CENTER -> R.id.checklist_text_center + gravity == GRAVITY_RIGHT && isMonospaced -> R.id.checklist_text_right_monospace + gravity == GRAVITY_RIGHT -> R.id.checklist_text_right + isMonospaced -> R.id.checklist_text_left_monospace + else -> R.id.checklist_text_left + } + } + override fun onCreate() {} override fun getLoadingView() = null diff --git a/app/src/main/res/layout/item_checklist_widget.xml b/app/src/main/res/layout/item_checklist_widget.xml index 3753b837..e270c68f 100644 --- a/app/src/main/res/layout/item_checklist_widget.xml +++ b/app/src/main/res/layout/item_checklist_widget.xml @@ -1,14 +1,83 @@ - + android:layout_height="match_parent" + android:layout_toStartOf="@+id/checklist_image"> + + + + + + + + + + + + + + From e0d8a361e3a15ee92effe05eabafafed071fb9e7 Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Thu, 3 Feb 2022 22:51:05 +0100 Subject: [PATCH 2/2] autoformatting the code --- .../notes/pro/adapters/WidgetAdapter.kt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/WidgetAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/WidgetAdapter.kt index ccef1b97..419d1529 100644 --- a/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/WidgetAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/notes/pro/adapters/WidgetAdapter.kt @@ -13,7 +13,6 @@ import com.simplemobiletools.commons.extensions.setText import com.simplemobiletools.commons.extensions.setTextSize import com.simplemobiletools.commons.helpers.WIDGET_TEXT_COLOR import com.simplemobiletools.notes.pro.R -import com.simplemobiletools.notes.pro.R.id.checklist_title import com.simplemobiletools.notes.pro.R.id.widget_text_holder import com.simplemobiletools.notes.pro.extensions.config import com.simplemobiletools.notes.pro.extensions.getPercentageFontSize @@ -23,10 +22,14 @@ import com.simplemobiletools.notes.pro.models.ChecklistItem import com.simplemobiletools.notes.pro.models.Note class WidgetAdapter(val context: Context, val intent: Intent) : RemoteViewsService.RemoteViewsFactory { - private val textIds = arrayOf(R.id.widget_text_left, R.id.widget_text_center, R.id.widget_text_right, - R.id.widget_text_left_monospace, R.id.widget_text_center_monospace, R.id.widget_text_right_monospace) - private val checklistIds = arrayOf(R.id.checklist_text_left, R.id.checklist_text_center, R.id.checklist_text_right, - R.id.checklist_text_left_monospace, R.id.checklist_text_center_monospace, R.id.checklist_text_right_monospace) + private val textIds = arrayOf( + R.id.widget_text_left, R.id.widget_text_center, R.id.widget_text_right, + R.id.widget_text_left_monospace, R.id.widget_text_center_monospace, R.id.widget_text_right_monospace + ) + private val checklistIds = arrayOf( + R.id.checklist_text_left, R.id.checklist_text_center, R.id.checklist_text_right, + R.id.checklist_text_left_monospace, R.id.checklist_text_center_monospace, R.id.checklist_text_right_monospace + ) private var widgetTextColor = DEFAULT_WIDGET_TEXT_COLOR private var note: Note? = null private var checklistItems = ArrayList()