diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ed717a06c..06ca5f352 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -145,7 +145,6 @@ android { } } -/* testOptions { managedDevices { localDevices { @@ -157,7 +156,6 @@ android { } } } -*/ namespace = "org.tasks" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 74b147687..56184212e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -618,9 +618,7 @@ android:taskAffinity="" android:theme="@style/TranslucentDialog"/> - - - + ) + .fetch(data!!.getSerializableExtra(TagPickerActivity.EXTRA_TASKS) as ArrayList) .filterNot { it.readOnly }, - data.getParcelableArrayListExtra(TagPickerActivityCompose.EXTRA_PARTIALLY_SELECTED)!!, - data.getParcelableArrayListExtra(TagPickerActivityCompose.EXTRA_SELECTED)!! + data.getParcelableArrayListExtra(TagPickerActivity.EXTRA_PARTIALLY_SELECTED)!!, + data.getParcelableArrayListExtra(TagPickerActivity.EXTRA_SELECTED)!! ) taskDao.touch(modified) } @@ -724,13 +727,13 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL R.id.edit_tags -> { lifecycleScope.launch { val tags = tagDataDao.getTagSelections(selected) - val intent = Intent(context, TagPickerActivityCompose::class.java) - intent.putExtra(TagPickerActivityCompose.EXTRA_TASKS, selected) + val intent = Intent(context, TagPickerActivity::class.java) + intent.putExtra(TagPickerActivity.EXTRA_TASKS, selected) intent.putParcelableArrayListExtra( - TagPickerActivityCompose.EXTRA_PARTIALLY_SELECTED, + TagPickerActivity.EXTRA_PARTIALLY_SELECTED, ArrayList(tagDataDao.getByUuid(tags.first!!))) intent.putParcelableArrayListExtra( - TagPickerActivityCompose.EXTRA_SELECTED, ArrayList(tagDataDao.getByUuid(tags.second!!))) + TagPickerActivity.EXTRA_SELECTED, ArrayList(tagDataDao.getByUuid(tags.second!!))) startActivityForResult(intent, REQUEST_TAG_TASKS) } true diff --git a/app/src/main/java/com/todoroo/astrid/tags/TagsControlSet.kt b/app/src/main/java/com/todoroo/astrid/tags/TagsControlSet.kt index 65ebf79bc..e0c91e4d6 100644 --- a/app/src/main/java/com/todoroo/astrid/tags/TagsControlSet.kt +++ b/app/src/main/java/com/todoroo/astrid/tags/TagsControlSet.kt @@ -11,7 +11,7 @@ import kotlinx.coroutines.flow.update import org.tasks.R import org.tasks.compose.collectAsStateLifecycleAware import org.tasks.compose.edit.TagsRow -import org.tasks.tags.TagPickerActivityCompose +import org.tasks.tags.TagPickerActivity import org.tasks.ui.ChipProvider import org.tasks.ui.TaskEditControlFragment import javax.inject.Inject @@ -21,8 +21,8 @@ class TagsControlSet : TaskEditControlFragment() { @Inject lateinit var chipProvider: ChipProvider private fun onRowClick() { - val intent = Intent(context, TagPickerActivityCompose::class.java) - intent.putParcelableArrayListExtra(TagPickerActivityCompose.EXTRA_SELECTED, viewModel.selectedTags.value) + val intent = Intent(context, TagPickerActivity::class.java) + intent.putParcelableArrayListExtra(TagPickerActivity.EXTRA_SELECTED, viewModel.selectedTags.value) startActivityForResult(intent, REQUEST_TAG_PICKER_ACTIVITY) } @@ -48,7 +48,7 @@ class TagsControlSet : TaskEditControlFragment() { if (requestCode == REQUEST_TAG_PICKER_ACTIVITY) { if (resultCode == Activity.RESULT_OK && data != null) { viewModel.selectedTags.value = - data.getParcelableArrayListExtra(TagPickerActivityCompose.EXTRA_SELECTED) + data.getParcelableArrayListExtra(TagPickerActivity.EXTRA_SELECTED) ?: ArrayList() } } else { diff --git a/app/src/main/java/org/tasks/preferences/fragments/TaskDefaults.kt b/app/src/main/java/org/tasks/preferences/fragments/TaskDefaults.kt index 8fe7a1784..776c25edb 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/TaskDefaults.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/TaskDefaults.kt @@ -31,8 +31,8 @@ import org.tasks.preferences.Preferences import org.tasks.repeats.BasicRecurrenceDialog import org.tasks.repeats.BasicRecurrenceDialog.Companion.EXTRA_RRULE import org.tasks.repeats.RepeatRuleToString -import org.tasks.tags.TagPickerActivityCompose -import org.tasks.tags.TagPickerActivityCompose.Companion.EXTRA_SELECTED +import org.tasks.tags.TagPickerActivity +import org.tasks.tags.TagPickerActivity.Companion.EXTRA_SELECTED import javax.inject.Inject private const val FRAG_TAG_DEFAULT_LIST_SELECTION = "frag_tag_default_list_selection" @@ -108,7 +108,7 @@ class TaskDefaults : InjectingPreferenceFragment() { findPreference(R.string.p_default_tags) .setOnPreferenceClickListener { lifecycleScope.launch { - val intent = Intent(context, TagPickerActivityCompose::class.java) + val intent = Intent(context, TagPickerActivity::class.java) .putParcelableArrayListExtra( EXTRA_SELECTED, ArrayList(defaultTags()) diff --git a/app/src/main/java/org/tasks/tags/TagPickerActivityCompose.kt b/app/src/main/java/org/tasks/tags/TagPickerActivity.kt similarity index 90% rename from app/src/main/java/org/tasks/tags/TagPickerActivityCompose.kt rename to app/src/main/java/org/tasks/tags/TagPickerActivity.kt index 708d76f79..3bc683e09 100644 --- a/app/src/main/java/org/tasks/tags/TagPickerActivityCompose.kt +++ b/app/src/main/java/org/tasks/tags/TagPickerActivity.kt @@ -1,22 +1,5 @@ package org.tasks.tags -/* - * TagPickerActivityCompose is a replacement for TagPickerActivity reimplemented - * using JetPack Compose framework. - * - * The modification eliminates TagRecycleAdapter. - * TriStateCheckbox from Compose is used instead of CheckBoxTriState. - * Source code for TagRecycleAdapter and TagPickerActivity were deleted because they became incompatible - * with modified TagPickerViewModel, but were not excluded from build due to the hilt logic. - * - * There is a tag "FeatureReady" in the git commits log which marks the state when the main logic was - * already implemented via Compose but but viewModel was modified with backward compatibility so to - * switch back to View implementation its enough to find lines like this - * //val intent = Intent(context, TagPickerActivity::class.java) - * val intent = Intent(context, TagPickerActivityCompose::class.java) - * in TaskListFragment.kt and TagsControlSet.kt and move comment mark to another line. - */ - import android.app.Activity import android.content.Intent import android.os.Bundle @@ -67,7 +50,7 @@ import org.tasks.themes.Theme import javax.inject.Inject @AndroidEntryPoint -class TagPickerActivityCompose : ThemedInjectingAppCompatActivity() { +class TagPickerActivity : ThemedInjectingAppCompatActivity() { @Inject lateinit var theme: Theme @Inject lateinit var inventory: Inventory @Inject lateinit var colorProvider: ColorProvider diff --git a/app/src/main/java/org/tasks/tags/TagPickerViewHolder.kt b/app/src/main/java/org/tasks/tags/TagPickerViewHolder.kt deleted file mode 100644 index f42224830..000000000 --- a/app/src/main/java/org/tasks/tags/TagPickerViewHolder.kt +++ /dev/null @@ -1,70 +0,0 @@ -package org.tasks.tags - -import android.content.Context -import android.view.View -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import org.tasks.R -import org.tasks.data.TagData -import org.tasks.databinding.RowTagPickerBinding -import org.tasks.themes.DrawableUtil - -class TagPickerViewHolder internal constructor( - private val context: Context, - binding: RowTagPickerBinding, - private val callback: (TagData, TagPickerViewHolder) -> Unit -) : RecyclerView.ViewHolder(binding.root) { - - val isChecked: Boolean - get() = checkBox.isChecked - - private val text: TextView = binding.text - private val checkBox: CheckBoxTriStates = binding.checkbox.apply { - setOnCheckedChangeListener { _, _ -> onCheckedChanged() } - } - private var tagData: TagData? = null - - private fun onClickRow() { - if (tagData!!.id == null) { - callback(tagData!!, this) - } else { - checkBox.toggle() - } - } - - private fun onCheckedChanged() { - callback(tagData!!, this) - } - - fun bind( - tagData: TagData, color: Int, icon: Int?, state: CheckBoxTriStates.State) { - var icon = icon - this.tagData = tagData - if (tagData.id == null) { - text.text = context.getString(R.string.create_new_tag, tagData.name) - icon = R.drawable.ic_outline_add_24px - checkBox.visibility = View.GONE - } else { - text.text = tagData.name - if (state == CheckBoxTriStates.State.CHECKED) { - checkBox.isChecked = true - } else { - updateCheckbox(state) - } - if (icon == null) { - icon = R.drawable.ic_outline_label_24px - } - } - DrawableUtil.setLeftDrawable(context, text, icon) - DrawableUtil.setTint(DrawableUtil.getLeftDrawable(text), color) - } - - fun updateCheckbox(state: CheckBoxTriStates.State) { - checkBox.setState(state, false) - checkBox.visibility = View.VISIBLE - } - - init { - binding.tagRow.setOnClickListener { onClickRow() } - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_tag_picker.xml b/app/src/main/res/layout/activity_tag_picker.xml deleted file mode 100644 index b44a9a21b..000000000 --- a/app/src/main/res/layout/activity_tag_picker.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/row_tag_picker.xml b/app/src/main/res/layout/row_tag_picker.xml deleted file mode 100644 index 7e24c37a0..000000000 --- a/app/src/main/res/layout/row_tag_picker.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - -