|
|
@ -2,28 +2,26 @@ package com.todoroo.astrid.tags
|
|
|
|
|
|
|
|
|
|
|
|
import android.app.Activity
|
|
|
|
import android.app.Activity
|
|
|
|
import android.content.Intent
|
|
|
|
import android.content.Intent
|
|
|
|
import android.view.ViewGroup
|
|
|
|
|
|
|
|
import androidx.compose.foundation.layout.padding
|
|
|
|
import androidx.compose.foundation.layout.padding
|
|
|
|
import androidx.compose.material.MaterialTheme
|
|
|
|
import androidx.compose.material.MaterialTheme
|
|
|
|
import androidx.compose.material.Text
|
|
|
|
import androidx.compose.material.Text
|
|
|
|
|
|
|
|
import androidx.compose.runtime.Composable
|
|
|
|
import androidx.compose.runtime.collectAsState
|
|
|
|
import androidx.compose.runtime.collectAsState
|
|
|
|
import androidx.compose.ui.Modifier
|
|
|
|
import androidx.compose.ui.Modifier
|
|
|
|
import androidx.compose.ui.platform.ComposeView
|
|
|
|
|
|
|
|
import androidx.compose.ui.res.colorResource
|
|
|
|
import androidx.compose.ui.res.colorResource
|
|
|
|
import androidx.compose.ui.res.stringResource
|
|
|
|
import androidx.compose.ui.res.stringResource
|
|
|
|
import androidx.compose.ui.unit.dp
|
|
|
|
import androidx.compose.ui.unit.dp
|
|
|
|
import com.google.accompanist.flowlayout.FlowRow
|
|
|
|
|
|
|
|
import com.google.android.material.composethemeadapter.MdcTheme
|
|
|
|
|
|
|
|
import dagger.hilt.android.AndroidEntryPoint
|
|
|
|
import dagger.hilt.android.AndroidEntryPoint
|
|
|
|
import org.tasks.R
|
|
|
|
import org.tasks.R
|
|
|
|
import org.tasks.data.TagData
|
|
|
|
import org.tasks.data.TagData
|
|
|
|
import org.tasks.tags.TagPickerActivity
|
|
|
|
import org.tasks.tags.TagPickerActivity
|
|
|
|
|
|
|
|
import org.tasks.ui.ChipGroup
|
|
|
|
import org.tasks.ui.ChipProvider
|
|
|
|
import org.tasks.ui.ChipProvider
|
|
|
|
import org.tasks.ui.TaskEditControlFragment
|
|
|
|
import org.tasks.ui.TaskEditControlComposeFragment
|
|
|
|
import javax.inject.Inject
|
|
|
|
import javax.inject.Inject
|
|
|
|
|
|
|
|
|
|
|
|
@AndroidEntryPoint
|
|
|
|
@AndroidEntryPoint
|
|
|
|
class TagsControlSet : TaskEditControlFragment() {
|
|
|
|
class TagsControlSet : TaskEditControlComposeFragment() {
|
|
|
|
@Inject lateinit var chipProvider: ChipProvider
|
|
|
|
@Inject lateinit var chipProvider: ChipProvider
|
|
|
|
|
|
|
|
|
|
|
|
override fun onRowClick() {
|
|
|
|
override fun onRowClick() {
|
|
|
@ -32,31 +30,23 @@ class TagsControlSet : TaskEditControlFragment() {
|
|
|
|
startActivityForResult(intent, REQUEST_TAG_PICKER_ACTIVITY)
|
|
|
|
startActivityForResult(intent, REQUEST_TAG_PICKER_ACTIVITY)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override fun bind(parent: ViewGroup?) =
|
|
|
|
@Composable
|
|
|
|
(parent?.findViewById(R.id.compose_view) as ComposeView).apply {
|
|
|
|
override fun Body() {
|
|
|
|
setContent {
|
|
|
|
val tags = viewModel.selectedTags.collectAsState()
|
|
|
|
MdcTheme {
|
|
|
|
ChipGroup(modifier = Modifier.padding(top = 20.dp, bottom = 20.dp, end = 16.dp)) {
|
|
|
|
val tags = viewModel.selectedTags.collectAsState()
|
|
|
|
if (tags.value.isEmpty()) {
|
|
|
|
FlowRow(
|
|
|
|
Text(
|
|
|
|
mainAxisSpacing = 4.dp,
|
|
|
|
text = stringResource(id = R.string.add_tags),
|
|
|
|
crossAxisSpacing = 4.dp,
|
|
|
|
style = MaterialTheme.typography.body1,
|
|
|
|
modifier = Modifier.padding(top = 20.dp, bottom = 20.dp, end = 16.dp)
|
|
|
|
color = colorResource(id = R.color.text_tertiary),
|
|
|
|
) {
|
|
|
|
)
|
|
|
|
if (tags.value.isEmpty()) {
|
|
|
|
} else {
|
|
|
|
Text(
|
|
|
|
tags.value.sortedBy(TagData::name).forEach { tag ->
|
|
|
|
text = stringResource(id = R.string.add_tags),
|
|
|
|
chipProvider.TagChip(tag, this@TagsControlSet::onRowClick)
|
|
|
|
style = MaterialTheme.typography.body1,
|
|
|
|
|
|
|
|
color = colorResource(id = R.color.text_tertiary),
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
tags.value.sortedBy(TagData::name).forEach { tag ->
|
|
|
|
|
|
|
|
chipProvider.TagChip(tag, this@TagsControlSet::onRowClick)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
override val isClickable = true
|
|
|
|
override val isClickable = true
|
|
|
|
|
|
|
|
|
|
|
@ -64,8 +54,6 @@ class TagsControlSet : TaskEditControlFragment() {
|
|
|
|
|
|
|
|
|
|
|
|
override fun controlId() = TAG
|
|
|
|
override fun controlId() = TAG
|
|
|
|
|
|
|
|
|
|
|
|
override val rootLayout = R.layout.control_set_template_compose
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
|
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
|
|
|
if (requestCode == REQUEST_TAG_PICKER_ACTIVITY) {
|
|
|
|
if (requestCode == REQUEST_TAG_PICKER_ACTIVITY) {
|
|
|
|
if (resultCode == Activity.RESULT_OK && data != null) {
|
|
|
|
if (resultCode == Activity.RESULT_OK && data != null) {
|
|
|
|