From b550eca115a2986a29ce454ad3f7d5826a48d34d Mon Sep 17 00:00:00 2001 From: PhilKes Date: Fri, 25 Oct 2024 19:10:36 +0200 Subject: [PATCH 1/2] Always align right select note button in Widget --- .../notallyx/presentation/widget/WidgetFactory.kt | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/philkes/notallyx/presentation/widget/WidgetFactory.kt b/app/src/main/java/com/philkes/notallyx/presentation/widget/WidgetFactory.kt index 924dfe91..41d0f9f6 100644 --- a/app/src/main/java/com/philkes/notallyx/presentation/widget/WidgetFactory.kt +++ b/app/src/main/java/com/philkes/notallyx/presentation/widget/WidgetFactory.kt @@ -67,10 +67,7 @@ class WidgetFactory(private val app: Application, private val id: Long, private TypedValue.COMPLEX_UNIT_SP, TextSize.getDisplayTitleSize(preferences.textSize.value), ) - if (note.title.isNotEmpty()) { - setTextViewText(R.id.Title, note.title) - setViewVisibility(R.id.Title, View.VISIBLE) - } else setViewVisibility(R.id.Title, View.GONE) + setTextViewText(R.id.Title, note.title) val bodyTextSize = TextSize.getDisplayBodySize(preferences.textSize.value) @@ -97,10 +94,7 @@ class WidgetFactory(private val app: Application, private val id: Long, private TypedValue.COMPLEX_UNIT_SP, TextSize.getDisplayTitleSize(preferences.textSize.value), ) - if (list.title.isNotEmpty()) { - setTextViewText(R.id.Title, list.title) - setViewVisibility(R.id.Title, View.VISIBLE) - } else setViewVisibility(R.id.Title, View.GONE) + setTextViewText(R.id.Title, list.title) val bodyTextSize = TextSize.getDisplayBodySize(preferences.textSize.value) From 9cdc151fea3f5c2060fd09caa60234717872e7c4 Mon Sep 17 00:00:00 2001 From: PhilKes Date: Fri, 25 Oct 2024 18:51:38 +0200 Subject: [PATCH 2/2] Add EditActivity title EditText to ChangeHistory --- .../activity/note/EditActivity.kt | 25 +++++++++++++------ .../activity/note/EditListActivity.kt | 1 + .../activity/note/EditNoteActivity.kt | 7 ++++++ 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/philkes/notallyx/presentation/activity/note/EditActivity.kt b/app/src/main/java/com/philkes/notallyx/presentation/activity/note/EditActivity.kt index 173c764d..f5c7a887 100644 --- a/app/src/main/java/com/philkes/notallyx/presentation/activity/note/EditActivity.kt +++ b/app/src/main/java/com/philkes/notallyx/presentation/activity/note/EditActivity.kt @@ -11,6 +11,7 @@ import android.os.Build import android.os.Bundle import android.provider.Settings import android.text.Editable +import android.text.TextWatcher import android.util.TypedValue import android.view.MenuItem import android.view.View @@ -20,7 +21,6 @@ import androidx.activity.viewModels import androidx.annotation.RequiresApi import androidx.core.content.FileProvider import androidx.core.view.isVisible -import androidx.core.widget.doAfterTextChanged import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.PagerSnapHelper @@ -41,11 +41,11 @@ import com.philkes.notallyx.presentation.view.note.audio.AudioAdapter import com.philkes.notallyx.presentation.view.note.preview.PreviewFileAdapter import com.philkes.notallyx.presentation.view.note.preview.PreviewImageAdapter import com.philkes.notallyx.presentation.viewmodel.NotallyModel -import com.philkes.notallyx.presentation.widget.WidgetProvider import com.philkes.notallyx.utils.FileError import com.philkes.notallyx.utils.Operations import com.philkes.notallyx.utils.add import com.philkes.notallyx.utils.changehistory.ChangeHistory +import com.philkes.notallyx.utils.createTextWatcherWithHistory import com.philkes.notallyx.utils.displayFormattedTimestamp import java.io.File import kotlinx.coroutines.Dispatchers @@ -54,6 +54,7 @@ import kotlinx.coroutines.launch abstract class EditActivity(private val type: Type) : LockedActivity() { internal val model: NotallyModel by viewModels() internal lateinit var changeHistory: ChangeHistory + internal lateinit var enterTitleTextWatcher: TextWatcher override fun finish() { lifecycleScope.launch(Dispatchers.Main) { @@ -72,8 +73,6 @@ abstract class EditActivity(private val type: Type) : LockedActivity - model.title = requireNotNull(text).trim().toString() + enterTitleTextWatcher = run { + binding.EnterTitle.createTextWatcherWithHistory(changeHistory) { text: Editable -> + model.title = text.trim().toString() + } } + binding.EnterTitle.addTextChangedListener(enterTitleTextWatcher) } open fun setStateFromModel() { binding.DateCreated.displayFormattedTimestamp(model.timestamp, preferences.dateFormat.value) - - binding.EnterTitle.setText(model.title) + updateEnterTitle() Operations.bindLabels(binding.LabelGroup, model.labels, model.textSize) setColor() } + private fun updateEnterTitle() { + binding.EnterTitle.apply { + removeTextChangedListener(enterTitleTextWatcher) + setText(model.title) + addTextChangedListener(enterTitleTextWatcher) + } + } + private fun handleSharedNote() { val title = intent.getStringExtra(Intent.EXTRA_SUBJECT) diff --git a/app/src/main/java/com/philkes/notallyx/presentation/activity/note/EditListActivity.kt b/app/src/main/java/com/philkes/notallyx/presentation/activity/note/EditListActivity.kt index 52ef14b0..9be85e46 100644 --- a/app/src/main/java/com/philkes/notallyx/presentation/activity/note/EditListActivity.kt +++ b/app/src/main/java/com/philkes/notallyx/presentation/activity/note/EditListActivity.kt @@ -26,6 +26,7 @@ class EditListActivity : EditActivity(Type.LIST) { private lateinit var listManager: ListManager override suspend fun saveNote() { + super.saveNote() model.saveNote(items.toMutableList()) WidgetProvider.sendBroadcast(application, longArrayOf(model.id)) } diff --git a/app/src/main/java/com/philkes/notallyx/presentation/activity/note/EditNoteActivity.kt b/app/src/main/java/com/philkes/notallyx/presentation/activity/note/EditNoteActivity.kt index d98eb68b..4ba4181b 100644 --- a/app/src/main/java/com/philkes/notallyx/presentation/activity/note/EditNoteActivity.kt +++ b/app/src/main/java/com/philkes/notallyx/presentation/activity/note/EditNoteActivity.kt @@ -24,6 +24,7 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.philkes.notallyx.R import com.philkes.notallyx.data.model.Type import com.philkes.notallyx.databinding.TextInputDialogBinding +import com.philkes.notallyx.presentation.widget.WidgetProvider import com.philkes.notallyx.utils.LinkMovementMethod import com.philkes.notallyx.utils.add import com.philkes.notallyx.utils.changehistory.EditTextChange @@ -37,6 +38,12 @@ class EditNoteActivity : EditActivity(Type.NOTE) { private lateinit var enterBodyTextWatcher: TextWatcher + override suspend fun saveNote() { + super.saveNote() + model.saveNote() + WidgetProvider.sendBroadcast(application, longArrayOf(model.id)) + } + override fun configureUI() { binding.EnterTitle.setOnNextAction { binding.EnterBody.requestFocus() }