1
0
Fork 0
mirror of https://github.com/anyproto/anytype-kotlin.git synced 2025-06-07 21:37:02 +09:00

DROID-534 Sets | Enhancement | Design review fixes (#2717)

* DROID-534 data-view-customize-view screen redesign

* DROID-534 relation format icon fixes

* DROID-534 fixed item decoration on data-view-view-sort screen

* DROID-534 fixed empty state design in sorts and filters
This commit is contained in:
Evgenii Kozlov 2022-11-24 17:51:50 +03:00 committed by GitHub
parent 3d1bbb73da
commit 11fdf626c1
Signed by: github
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 249 additions and 165 deletions

View file

@ -7,13 +7,19 @@ import android.view.ViewGroup
import androidx.core.os.bundleOf
import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.anytypeio.anytype.R
import com.anytypeio.anytype.core_models.Id
import com.anytypeio.anytype.core_ui.extensions.drawable
import com.anytypeio.anytype.core_ui.features.sets.ViewerSortAdapter
import com.anytypeio.anytype.core_ui.layout.DividerVerticalItemDecoration
import com.anytypeio.anytype.core_ui.reactive.clicks
import com.anytypeio.anytype.core_utils.ext.*
import com.anytypeio.anytype.core_utils.ext.arg
import com.anytypeio.anytype.core_utils.ext.gone
import com.anytypeio.anytype.core_utils.ext.invisible
import com.anytypeio.anytype.core_utils.ext.subscribe
import com.anytypeio.anytype.core_utils.ext.visible
import com.anytypeio.anytype.core_utils.ui.BaseBottomSheetFragment
import com.anytypeio.anytype.databinding.FragmentViewerSortBinding
import com.anytypeio.anytype.di.common.componentManager
@ -39,8 +45,8 @@ open class ViewerSortFragment : BaseBottomSheetFragment<FragmentViewerSortBindin
)
}
private lateinit var dividerItem: DividerItemDecoration
private lateinit var dividerItemEdit: DividerItemDecoration
private lateinit var dividerItem: RecyclerView.ItemDecoration
private lateinit var dividerItemEdit: RecyclerView.ItemDecoration
private fun navigateToSelectSort() {
val fr = SelectSortRelationFragment.new(ctx)
@ -54,12 +60,14 @@ open class ViewerSortFragment : BaseBottomSheetFragment<FragmentViewerSortBindin
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
dividerItem = DividerItemDecoration(context, DividerItemDecoration.VERTICAL).apply {
setDrawable(drawable(R.drawable.decoration_viewer_sort))
}
dividerItemEdit = DividerItemDecoration(context, DividerItemDecoration.VERTICAL).apply {
setDrawable(drawable(R.drawable.decoration_viewer_sort_edit))
}
dividerItem = DividerVerticalItemDecoration(
divider = requireContext().drawable(R.drawable.decoration_viewer_sort),
isShowInLastItem = false
)
dividerItemEdit = DividerVerticalItemDecoration(
divider = requireContext().drawable(R.drawable.decoration_viewer_sort_edit),
isShowInLastItem = false
)
binding.viewerSortRecycler.apply {
layoutManager = LinearLayoutManager(context)
adapter = viewerSortAdapter

View file

@ -77,6 +77,17 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/txtEmptyState"
android:layout_width="match_parent"
android:layout_height="68dp"
android:textSize="15sp"
android:fontFamily="@font/inter_regular"
android:textColor="@color/glyph_active"
android:gravity="center"
android:layout_marginBottom="@dimen/dp_20"
android:text="@string/filter_empty_state" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler"
android:layout_width="match_parent"
@ -85,18 +96,4 @@
tools:listitem="@layout/item_modify_viewer_relation_order"
tools:visibility="invisible" />
<TextView
android:id="@+id/txtEmptyState"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="12dp"
android:fontFamily="@font/inter_regular"
android:gravity="center"
android:paddingTop="23dp"
android:paddingBottom="43dp"
android:text="@string/filter_empty_state"
android:textColor="#CBC9BD"
android:textSize="15sp"
android:visibility="visible" />
</LinearLayout>

View file

@ -54,7 +54,7 @@
android:layout_height="68dp"
android:textSize="15sp"
android:fontFamily="@font/inter_regular"
android:textColor="#CBC9BD"
android:textColor="@color/glyph_active"
android:gravity="center"
android:layout_marginBottom="@dimen/dp_20"
android:text="@string/sort_empty_state" />
@ -65,6 +65,7 @@
android:layout_height="match_parent"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:paddingBottom="@dimen/dp_16"
tools:listitem="@layout/item_viewer_sort" />
</LinearLayout>

View file

@ -3,8 +3,13 @@ package com.anytypeio.anytype.core_ui.features.dataview.modals
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.anytypeio.anytype.core_ui.R
import com.anytypeio.anytype.core_ui.databinding.*
import com.anytypeio.anytype.core_ui.databinding.ItemDvViewerFilterCheckboxBinding
import com.anytypeio.anytype.core_ui.databinding.ItemDvViewerFilterDateBinding
import com.anytypeio.anytype.core_ui.databinding.ItemDvViewerFilterNumberBinding
import com.anytypeio.anytype.core_ui.databinding.ItemDvViewerFilterObjectBinding
import com.anytypeio.anytype.core_ui.databinding.ItemDvViewerFilterStatusBinding
import com.anytypeio.anytype.core_ui.databinding.ItemDvViewerFilterTagBinding
import com.anytypeio.anytype.core_ui.databinding.ItemDvViewerFilterTextBinding
import com.anytypeio.anytype.presentation.sets.filter.FilterClick
import com.anytypeio.anytype.presentation.sets.model.FilterView
import com.anytypeio.anytype.presentation.sets.model.FilterView.Companion.HOLDER_CHECKBOX
@ -133,7 +138,6 @@ class FilterByAdapter(
}
}
HOLDER_OBJECT -> {
val views = inflater.inflate(R.layout.item_dv_viewer_filter_object, parent, false)
FilterObjectViewHolder(
ItemDvViewerFilterObjectBinding.inflate(
inflater, parent, false

View file

@ -4,6 +4,7 @@ import android.widget.ImageView
import android.widget.TextView
import com.anytypeio.anytype.core_ui.R
import com.anytypeio.anytype.core_ui.databinding.ItemDvViewerFilterCheckboxBinding
import com.anytypeio.anytype.core_ui.widgets.RelationFormatIconWidget
import com.anytypeio.anytype.core_utils.ext.invisible
import com.anytypeio.anytype.core_utils.ext.visible
import com.anytypeio.anytype.presentation.extension.hasValue
@ -15,7 +16,7 @@ class FilterCheckboxViewHolder(
override val textTitle: TextView get() = binding.tvTitle
override val textCondition: TextView get() = binding.tvCondition
override val iconFormat: ImageView get() = binding.iconFormat
override val iconFormat: RelationFormatIconWidget get() = binding.iconFormat
override val iconArrow: ImageView get() = binding.iconArrow
override val iconRemove: ImageView get() = binding.iconRemoveCheckbox

View file

@ -4,6 +4,7 @@ import android.widget.ImageView
import android.widget.TextView
import com.anytypeio.anytype.core_models.DVFilterQuickOption
import com.anytypeio.anytype.core_ui.databinding.ItemDvViewerFilterDateBinding
import com.anytypeio.anytype.core_ui.widgets.RelationFormatIconWidget
import com.anytypeio.anytype.core_utils.ext.formatTimestamp
import com.anytypeio.anytype.core_utils.ext.invisible
import com.anytypeio.anytype.core_utils.ext.visible
@ -16,7 +17,7 @@ class FilterDateViewHolder(val binding: ItemDvViewerFilterDateBinding) :
override val textTitle: TextView get() = binding.tvTitle
override val textCondition: TextView get() = binding.tvCondition
override val iconFormat: ImageView get() = binding.iconFormat
override val iconFormat: RelationFormatIconWidget get() = binding.iconFormat
override val iconArrow: ImageView get() = binding.iconArrow
override val iconRemove: ImageView get() = binding.iconRemoveDate

View file

@ -4,6 +4,7 @@ import android.widget.ImageView
import android.widget.TextView
import com.anytypeio.anytype.core_ui.R
import com.anytypeio.anytype.core_ui.databinding.ItemDvViewerFilterNumberBinding
import com.anytypeio.anytype.core_ui.widgets.RelationFormatIconWidget
import com.anytypeio.anytype.core_utils.ext.invisible
import com.anytypeio.anytype.core_utils.ext.visible
import com.anytypeio.anytype.presentation.extension.hasValue
@ -13,7 +14,7 @@ class FilterNumberViewHolder(val binding: ItemDvViewerFilterNumberBinding) : Fil
override val textTitle: TextView get() = binding.tvTitle
override val textCondition: TextView get() = binding.tvCondition
override val iconFormat: ImageView get() = binding.iconFormat
override val iconFormat: RelationFormatIconWidget get() = binding.iconFormat
override val iconArrow: ImageView get() = binding.iconArrow
override val iconRemove: ImageView get() = binding.iconRemoveNumber

View file

@ -4,6 +4,7 @@ import android.widget.ImageView
import android.widget.TextView
import com.anytypeio.anytype.core_ui.databinding.ItemDvViewerFilterObjectBinding
import com.anytypeio.anytype.core_ui.widgets.ObjectIconTextWidget
import com.anytypeio.anytype.core_ui.widgets.RelationFormatIconWidget
import com.anytypeio.anytype.core_utils.ext.gone
import com.anytypeio.anytype.core_utils.ext.visible
import com.anytypeio.anytype.presentation.extension.hasValue
@ -15,7 +16,7 @@ class FilterObjectViewHolder(val binding: ItemDvViewerFilterObjectBinding) : Fil
override val textTitle: TextView get() = binding.tvTitle
override val textCondition: TextView get() = binding.tvCondition
override val iconFormat: ImageView get() = binding.iconFormat
override val iconFormat: RelationFormatIconWidget get() = binding.iconFormat
override val iconArrow: ImageView get() = binding.iconArrow
override val iconRemove: ImageView get() = binding.iconRemoveObject

View file

@ -2,13 +2,14 @@ package com.anytypeio.anytype.core_ui.features.dataview.modals
import android.widget.ImageView
import android.widget.TextView
import com.anytypeio.anytype.core_models.ThemeColor
import com.anytypeio.anytype.core_ui.R
import com.anytypeio.anytype.core_ui.databinding.ItemDvViewerFilterStatusBinding
import com.anytypeio.anytype.core_ui.extensions.color
import com.anytypeio.anytype.core_ui.extensions.dark
import com.anytypeio.anytype.core_ui.widgets.RelationFormatIconWidget
import com.anytypeio.anytype.core_utils.ext.invisible
import com.anytypeio.anytype.core_utils.ext.visible
import com.anytypeio.anytype.core_models.ThemeColor
import com.anytypeio.anytype.presentation.extension.hasValue
import com.anytypeio.anytype.presentation.sets.model.FilterView
import timber.log.Timber
@ -18,7 +19,7 @@ class FilterStatusViewHolder(val binding: ItemDvViewerFilterStatusBinding) :
override val textTitle: TextView get() = binding.tvTitle
override val textCondition: TextView get() = binding.tvCondition
override val iconFormat: ImageView get() = binding.iconFormat
override val iconFormat: RelationFormatIconWidget get() = binding.iconFormat
override val iconArrow: ImageView get() = binding.iconArrow
override val iconRemove: ImageView get() = binding.iconRemoveStatus

View file

@ -3,15 +3,16 @@ package com.anytypeio.anytype.core_ui.features.dataview.modals
import android.content.res.ColorStateList
import android.widget.ImageView
import android.widget.TextView
import com.anytypeio.anytype.core_models.ThemeColor
import com.anytypeio.anytype.core_ui.R
import com.anytypeio.anytype.core_ui.databinding.ItemDvViewerFilterTagBinding
import com.anytypeio.anytype.core_ui.extensions.color
import com.anytypeio.anytype.core_ui.extensions.dark
import com.anytypeio.anytype.core_ui.extensions.light
import com.anytypeio.anytype.core_ui.widgets.RelationFormatIconWidget
import com.anytypeio.anytype.core_utils.ext.gone
import com.anytypeio.anytype.core_utils.ext.invisible
import com.anytypeio.anytype.core_utils.ext.visible
import com.anytypeio.anytype.core_models.ThemeColor
import com.anytypeio.anytype.presentation.extension.hasValue
import com.anytypeio.anytype.presentation.sets.model.FilterView
import com.anytypeio.anytype.presentation.sets.model.TagView
@ -21,7 +22,7 @@ class FilterTagViewHolder(val binding: ItemDvViewerFilterTagBinding) : FilterVie
override val textTitle: TextView get() = binding.tvTitle
override val textCondition: TextView get() = binding.tvCondition
override val iconFormat: ImageView get() = binding.iconFormat
override val iconFormat: RelationFormatIconWidget get() = binding.iconFormat
override val iconArrow: ImageView get() = binding.iconArrow
override val iconRemove: ImageView get() = binding.iconRemoveTag

View file

@ -4,6 +4,7 @@ import android.widget.ImageView
import android.widget.TextView
import com.anytypeio.anytype.core_ui.R
import com.anytypeio.anytype.core_ui.databinding.ItemDvViewerFilterTextBinding
import com.anytypeio.anytype.core_ui.widgets.RelationFormatIconWidget
import com.anytypeio.anytype.core_utils.ext.invisible
import com.anytypeio.anytype.core_utils.ext.visible
import com.anytypeio.anytype.presentation.extension.hasValue
@ -14,7 +15,7 @@ class FilterTextViewHolder(val binding: ItemDvViewerFilterTextBinding) : FilterV
override val textTitle: TextView get() = binding.tvTitle
override val textCondition: TextView get() = binding.tvCondition
override val iconFormat: ImageView get() = binding.iconFormat
override val iconFormat: RelationFormatIconWidget get() = binding.iconFormat
override val iconArrow: ImageView get() = binding.iconArrow
override val iconRemove: ImageView get() = binding.iconRemoveText

View file

@ -4,8 +4,7 @@ import android.view.View
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.anytypeio.anytype.core_models.Relation
import com.anytypeio.anytype.core_ui.extensions.relationIcon
import com.anytypeio.anytype.core_ui.widgets.RelationFormatIconWidget
import com.anytypeio.anytype.core_utils.ext.gone
import com.anytypeio.anytype.core_utils.ext.visible
import com.anytypeio.anytype.presentation.sets.model.ColumnView
@ -14,7 +13,7 @@ abstract class FilterViewHolder(view: View) : RecyclerView.ViewHolder(view) {
abstract val textTitle: TextView
abstract val textCondition: TextView
abstract val iconFormat: ImageView
abstract val iconFormat: RelationFormatIconWidget
abstract val iconArrow: ImageView
abstract val iconRemove: ImageView
@ -28,6 +27,6 @@ abstract class FilterViewHolder(view: View) : RecyclerView.ViewHolder(view) {
}
textTitle.text = title
textCondition.text = condition
iconFormat.setBackgroundResource(format.relationIcon(isMedium = true))
iconFormat.bind(format)
}
}

View file

@ -6,7 +6,6 @@ import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import com.anytypeio.anytype.core_ui.databinding.ItemViewerSortBinding
import com.anytypeio.anytype.core_ui.extensions.icon
import com.anytypeio.anytype.core_ui.extensions.text
import com.anytypeio.anytype.core_utils.diff.DefaultDiffUtil
import com.anytypeio.anytype.core_utils.ext.gone
@ -62,7 +61,7 @@ class ViewerSortAdapter(
}
tvTitle.text = item.name
tvSubtitle.setText(item.type.text(item.format))
ivRelation.setImageResource(item.format.icon(isMedium = true))
ivRelation.bind(item.format)
}
}
}

View file

@ -3,7 +3,7 @@ package com.anytypeio.anytype.core_ui.widgets
import android.content.Context
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatImageView
import com.anytypeio.anytype.core_models.Relation
import com.anytypeio.anytype.core_models.RelationFormat
import com.anytypeio.anytype.core_ui.R
import com.anytypeio.anytype.presentation.sets.model.ColumnView
import timber.log.Timber
@ -12,20 +12,20 @@ class RelationFormatIconWidget @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null
) : AppCompatImageView(context, attrs) {
fun bind(format: Relation.Format) {
fun bind(format: RelationFormat) {
when (format) {
Relation.Format.SHORT_TEXT -> setImageResource(R.drawable.ic_relation_format_text_small)
Relation.Format.LONG_TEXT -> setImageResource(R.drawable.ic_relation_format_text_small)
Relation.Format.NUMBER -> setImageResource(R.drawable.ic_relation_format_number_small)
Relation.Format.STATUS -> setImageResource(R.drawable.ic_relation_format_status_small)
Relation.Format.TAG -> setImageResource(R.drawable.ic_relation_format_tag_small)
Relation.Format.DATE -> setImageResource(R.drawable.ic_relation_format_date_small)
Relation.Format.FILE -> setImageResource(R.drawable.ic_relation_format_attachment_small)
Relation.Format.CHECKBOX -> setImageResource(R.drawable.ic_relation_format_checkbox_small)
Relation.Format.URL -> setImageResource(R.drawable.ic_relation_format_url_small)
Relation.Format.EMAIL -> setImageResource(R.drawable.ic_relation_format_email_small)
Relation.Format.PHONE -> setImageResource(R.drawable.ic_relation_format_phone_number_small)
Relation.Format.OBJECT -> setImageResource(R.drawable.ic_relation_format_object_small)
RelationFormat.SHORT_TEXT -> setImageResource(R.drawable.ic_relation_format_text_small)
RelationFormat.LONG_TEXT -> setImageResource(R.drawable.ic_relation_format_text_small)
RelationFormat.NUMBER -> setImageResource(R.drawable.ic_relation_format_number_small)
RelationFormat.STATUS -> setImageResource(R.drawable.ic_relation_format_status_small)
RelationFormat.TAG -> setImageResource(R.drawable.ic_relation_format_tag_small)
RelationFormat.DATE -> setImageResource(R.drawable.ic_relation_format_date_small)
RelationFormat.FILE -> setImageResource(R.drawable.ic_relation_format_attachment_small)
RelationFormat.CHECKBOX -> setImageResource(R.drawable.ic_relation_format_checkbox_small)
RelationFormat.URL -> setImageResource(R.drawable.ic_relation_format_url_small)
RelationFormat.EMAIL -> setImageResource(R.drawable.ic_relation_format_email_small)
RelationFormat.PHONE -> setImageResource(R.drawable.ic_relation_format_phone_number_small)
RelationFormat.OBJECT -> setImageResource(R.drawable.ic_relation_format_object_small)
else -> Timber.d("Unexpected format: $format")
}
}

View file

@ -5,6 +5,6 @@
android:viewportHeight="24">
<path
android:pathData="M8.9599,18.0303C8.667,17.7374 8.667,17.2626 8.9599,16.9697L13.9296,12L8.9599,7.0303C8.667,6.7374 8.667,6.2626 8.9599,5.9697C9.2528,5.6768 9.7277,5.6768 10.0206,5.9697L16.0509,12L10.0206,18.0303C9.7277,18.3232 9.2528,18.3232 8.9599,18.0303Z"
android:fillColor="#CBC9BD"
android:fillColor="@color/glyph_active"
android:fillType="evenOdd"/>
</vector>

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/shape_transparent" />
<corners android:radius="12dp" />
</shape>

View file

@ -5,15 +5,23 @@
android:layout_width="match_parent"
android:layout_height="@dimen/dv_viewer_filter_item_height">
<ImageView
android:id="@+id/iconFormat"
<FrameLayout
android:id="@+id/iconFormatContainer"
style="@style/DVFilterFormatIcon"
android:layout_width="48dp"
android:layout_height="48dp"
app:layout_constraintStart_toEndOf="@+id/iconRemoveCheckbox"
style="@style/DVFilterFormatIcon"
android:background="@drawable/ic_relation_format_background"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@drawable/ic_relation_checkbox_32" />
app:layout_constraintStart_toEndOf="@+id/iconRemoveCheckbox"
app:layout_constraintTop_toTopOf="parent">
<com.anytypeio.anytype.core_ui.widgets.RelationFormatIconWidget
android:id="@+id/iconFormat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</FrameLayout>
<TextView
android:id="@+id/tvTitle"
@ -24,32 +32,32 @@
android:layout_marginTop="12dp"
android:layout_marginEnd="12dp"
app:layout_constraintEnd_toStartOf="@+id/iconArrow"
app:layout_constraintStart_toEndOf="@+id/iconFormat"
app:layout_constraintStart_toEndOf="@+id/iconFormatContainer"
app:layout_constraintTop_toTopOf="parent"
tools:text="Name" />
<TextView
android:id="@+id/tvCondition"
style="@style/ViewerFilterConditionStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
style="@style/ViewerFilterConditionStyle"
app:layout_constraintStart_toEndOf="@+id/iconFormat"
app:layout_constraintStart_toEndOf="@+id/iconFormatContainer"
app:layout_constraintTop_toBottomOf="@+id/tvTitle"
tools:text="Is" />
<TextView
android:id="@+id/tvValue"
style="@style/ViewerFilterTextValueStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginEnd="12dp"
app:layout_goneMarginEnd="@dimen/dp_20"
style="@style/ViewerFilterTextValueStyle"
app:layout_constraintBottom_toBottomOf="@+id/tvCondition"
app:layout_constraintEnd_toStartOf="@+id/iconArrow"
app:layout_constraintStart_toEndOf="@+id/tvCondition"
app:layout_constraintTop_toTopOf="@+id/tvCondition"
app:layout_goneMarginEnd="@dimen/dp_20"
tools:text="'checked'" />
<ImageView
@ -64,9 +72,9 @@
<ImageView
android:id="@+id/iconRemoveCheckbox"
style="@style/DVFilterRemoveIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/DVFilterRemoveIcon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

View file

@ -5,15 +5,23 @@
android:layout_width="match_parent"
android:layout_height="@dimen/dv_viewer_filter_item_height">
<ImageView
android:id="@+id/iconFormat"
<FrameLayout
android:id="@+id/iconFormatContainer"
style="@style/DVFilterFormatIcon"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="@drawable/ic_relation_format_background"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/iconRemoveDate"
style="@style/DVFilterFormatIcon"
app:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@drawable/ic_relation_checkbox_32" />
app:layout_constraintTop_toTopOf="parent">
<com.anytypeio.anytype.core_ui.widgets.RelationFormatIconWidget
android:id="@+id/iconFormat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</FrameLayout>
<TextView
android:id="@+id/tvTitle"
@ -24,33 +32,33 @@
android:layout_marginTop="12dp"
android:layout_marginEnd="12dp"
app:layout_constraintEnd_toStartOf="@+id/iconArrow"
app:layout_constraintStart_toEndOf="@+id/iconFormat"
app:layout_constraintStart_toEndOf="@+id/iconFormatContainer"
app:layout_constraintTop_toTopOf="parent"
tools:text="Name" />
<TextView
android:id="@+id/tvCondition"
style="@style/ViewerFilterConditionStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
style="@style/ViewerFilterConditionStyle"
app:layout_constraintStart_toEndOf="@+id/iconFormat"
app:layout_constraintStart_toEndOf="@+id/iconFormatContainer"
app:layout_constraintTop_toBottomOf="@+id/tvTitle"
tools:text="Contains" />
<TextView
android:id="@+id/tvValue"
style="@style/ViewerFilterTextValueStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginEnd="12dp"
app:layout_goneMarginEnd="@dimen/dp_20"
android:maxLines="2"
style="@style/ViewerFilterTextValueStyle"
app:layout_constraintBottom_toBottomOf="@+id/tvCondition"
app:layout_constraintEnd_toStartOf="@+id/iconArrow"
app:layout_constraintStart_toEndOf="@+id/tvCondition"
app:layout_constraintTop_toTopOf="@+id/tvCondition"
app:layout_goneMarginEnd="@dimen/dp_20"
tools:text="'World'" />
<ImageView
@ -65,9 +73,9 @@
<ImageView
android:id="@+id/iconRemoveDate"
style="@style/DVFilterRemoveIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/DVFilterRemoveIcon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

View file

@ -5,15 +5,23 @@
android:layout_width="match_parent"
android:layout_height="@dimen/dv_viewer_filter_item_height">
<ImageView
android:id="@+id/iconFormat"
<FrameLayout
android:id="@+id/iconFormatContainer"
style="@style/DVFilterFormatIcon"
android:layout_width="48dp"
android:layout_height="48dp"
app:layout_constraintStart_toEndOf="@+id/iconRemoveNumber"
style="@style/DVFilterFormatIcon"
android:background="@drawable/ic_relation_format_background"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@drawable/ic_relation_checkbox_32" />
app:layout_constraintStart_toEndOf="@+id/iconRemoveNumber"
app:layout_constraintTop_toTopOf="parent">
<com.anytypeio.anytype.core_ui.widgets.RelationFormatIconWidget
android:id="@+id/iconFormat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</FrameLayout>
<TextView
android:id="@+id/tvTitle"
@ -24,32 +32,32 @@
android:layout_marginTop="12dp"
android:layout_marginEnd="12dp"
app:layout_constraintEnd_toStartOf="@+id/iconArrow"
app:layout_constraintStart_toEndOf="@+id/iconFormat"
app:layout_constraintStart_toEndOf="@+id/iconFormatContainer"
app:layout_constraintTop_toTopOf="parent"
tools:text="Name" />
<TextView
android:id="@+id/tvCondition"
style="@style/ViewerFilterConditionStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
style="@style/ViewerFilterConditionStyle"
app:layout_constraintStart_toEndOf="@+id/iconFormat"
app:layout_constraintStart_toEndOf="@+id/iconFormatContainer"
app:layout_constraintTop_toBottomOf="@+id/tvTitle"
tools:text="Contains" />
<TextView
android:id="@+id/tvValue"
style="@style/ViewerFilterTextValueStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginEnd="12dp"
app:layout_goneMarginEnd="@dimen/dp_20"
style="@style/ViewerFilterTextValueStyle"
app:layout_constraintBottom_toBottomOf="@+id/tvCondition"
app:layout_constraintEnd_toStartOf="@+id/iconArrow"
app:layout_constraintStart_toEndOf="@+id/tvCondition"
app:layout_constraintTop_toTopOf="@+id/tvCondition"
app:layout_goneMarginEnd="@dimen/dp_20"
tools:text="'World'" />
<ImageView
@ -64,9 +72,9 @@
<ImageView
android:id="@+id/iconRemoveNumber"
style="@style/DVFilterRemoveIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/DVFilterRemoveIcon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

View file

@ -1,19 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/dv_viewer_filter_item_height"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="@dimen/dv_viewer_filter_item_height">
<ImageView
android:id="@+id/iconFormat"
<FrameLayout
android:id="@+id/iconFormatContainer"
style="@style/DVFilterFormatIcon"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="@drawable/ic_relation_format_background"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/iconRemoveObject"
app:layout_constraintTop_toTopOf="parent"
style="@style/DVFilterFormatIcon"
tools:srcCompat="@drawable/ic_relation_checkbox_32" />
app:layout_constraintTop_toTopOf="parent">
<com.anytypeio.anytype.core_ui.widgets.RelationFormatIconWidget
android:id="@+id/iconFormat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</FrameLayout>
<TextView
android:id="@+id/tvTitle"
@ -23,19 +31,19 @@
android:layout_marginStart="12dp"
android:layout_marginTop="12dp"
android:layout_marginEnd="12dp"
app:layout_goneMarginEnd="@dimen/dp_20"
app:layout_constraintEnd_toStartOf="@+id/iconArrow"
app:layout_constraintStart_toEndOf="@+id/iconFormat"
app:layout_constraintStart_toEndOf="@+id/iconFormatContainer"
app:layout_constraintTop_toTopOf="parent"
app:layout_goneMarginEnd="@dimen/dp_20"
tools:text="Using the Hello World guide, youll start a branch" />
<TextView
android:id="@+id/tvCondition"
style="@style/ViewerFilterConditionStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
style="@style/ViewerFilterConditionStyle"
app:layout_constraintStart_toEndOf="@+id/iconFormat"
app:layout_constraintStart_toEndOf="@+id/iconFormatContainer"
app:layout_constraintTop_toBottomOf="@+id/tvTitle"
tools:text="Contains" />
@ -43,11 +51,11 @@
android:layout_width="0dp"
android:layout_height="22dp"
android:layout_marginEnd="12dp"
app:layout_goneMarginEnd="@dimen/dp_20"
app:layout_constraintBottom_toBottomOf="@id/tvCondition"
app:layout_constraintEnd_toStartOf="@id/iconArrow"
app:layout_constraintStart_toEndOf="@id/tvCondition"
app:layout_constraintTop_toTopOf="@+id/tvCondition">
app:layout_constraintTop_toTopOf="@+id/tvCondition"
app:layout_goneMarginEnd="@dimen/dp_20">
<com.anytypeio.anytype.core_ui.widgets.ObjectIconTextWidget
android:id="@+id/object0"
@ -56,8 +64,8 @@
android:layout_marginStart="8dp"
android:visibility="gone"
app:emojiSize="18dp"
app:nameTextSize="15sp"
app:nameTextColor="#6C6A5F"
app:nameTextSize="15sp"
tools:visibility="visible" />
<com.anytypeio.anytype.core_ui.widgets.ObjectIconTextWidget
@ -67,8 +75,8 @@
android:layout_marginStart="8dp"
android:visibility="gone"
app:emojiSize="18dp"
app:nameTextSize="15sp"
app:nameTextColor="#6C6A5F"
app:nameTextSize="15sp"
tools:visibility="visible" />
<com.anytypeio.anytype.core_ui.widgets.ObjectIconTextWidget
@ -76,10 +84,10 @@
android:layout_width="wrap_content"
android:layout_height="22dp"
android:layout_marginStart="8dp"
app:emojiSize="18dp"
app:nameTextSize="15sp"
app:nameTextColor="#6C6A5F"
android:visibility="gone"
app:emojiSize="18dp"
app:nameTextColor="#6C6A5F"
app:nameTextSize="15sp"
tools:visibility="visible" />
</LinearLayout>
@ -95,9 +103,9 @@
<ImageView
android:id="@+id/iconRemoveObject"
style="@style/DVFilterRemoveIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/DVFilterRemoveIcon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

View file

@ -5,15 +5,23 @@
android:layout_width="match_parent"
android:layout_height="@dimen/dv_viewer_filter_item_height">
<ImageView
android:id="@+id/iconFormat"
<FrameLayout
android:id="@+id/iconFormatContainer"
style="@style/DVFilterFormatIcon"
android:layout_width="48dp"
android:layout_height="48dp"
app:layout_constraintStart_toEndOf="@+id/iconRemoveStatus"
style="@style/DVFilterFormatIcon"
android:background="@drawable/ic_relation_format_background"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@drawable/ic_relation_checkbox_32" />
app:layout_constraintStart_toEndOf="@+id/iconRemoveStatus"
app:layout_constraintTop_toTopOf="parent">
<com.anytypeio.anytype.core_ui.widgets.RelationFormatIconWidget
android:id="@+id/iconFormat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</FrameLayout>
<TextView
android:id="@+id/tvTitle"
@ -24,32 +32,32 @@
android:layout_marginTop="12dp"
android:layout_marginEnd="12dp"
app:layout_constraintEnd_toStartOf="@+id/iconArrow"
app:layout_constraintStart_toEndOf="@+id/iconFormat"
app:layout_constraintStart_toEndOf="@+id/iconFormatContainer"
app:layout_constraintTop_toTopOf="parent"
tools:text="Name" />
<TextView
android:id="@+id/tvCondition"
style="@style/ViewerFilterConditionStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
style="@style/ViewerFilterConditionStyle"
app:layout_constraintStart_toEndOf="@+id/iconFormat"
app:layout_constraintStart_toEndOf="@+id/iconFormatContainer"
app:layout_constraintTop_toBottomOf="@+id/tvTitle"
tools:text="Contains" />
<TextView
android:id="@+id/tvValue"
style="@style/ViewerFilterTextValueStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginEnd="12dp"
app:layout_goneMarginEnd="@dimen/dp_20"
style="@style/ViewerFilterTextValueStyle"
app:layout_constraintBottom_toBottomOf="@+id/tvCondition"
app:layout_constraintEnd_toStartOf="@+id/iconArrow"
app:layout_constraintStart_toEndOf="@+id/tvCondition"
app:layout_constraintTop_toTopOf="@+id/tvCondition"
app:layout_goneMarginEnd="@dimen/dp_20"
tools:text="'World'" />
<ImageView
@ -64,9 +72,9 @@
<ImageView
android:id="@+id/iconRemoveStatus"
style="@style/DVFilterRemoveIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/DVFilterRemoveIcon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

View file

@ -5,15 +5,23 @@
android:layout_width="match_parent"
android:layout_height="@dimen/dv_viewer_filter_item_height">
<ImageView
android:id="@+id/iconFormat"
<FrameLayout
android:id="@+id/iconFormatContainer"
style="@style/DVFilterFormatIcon"
android:layout_width="48dp"
android:layout_height="48dp"
style="@style/DVFilterFormatIcon"
app:layout_constraintStart_toEndOf="@+id/iconRemoveTag"
android:background="@drawable/ic_relation_format_background"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@drawable/ic_relation_checkbox_32" />
app:layout_constraintStart_toEndOf="@+id/iconRemoveTag"
app:layout_constraintTop_toTopOf="parent">
<com.anytypeio.anytype.core_ui.widgets.RelationFormatIconWidget
android:id="@+id/iconFormat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</FrameLayout>
<TextView
android:id="@+id/tvTitle"
@ -24,17 +32,17 @@
android:layout_marginTop="12dp"
android:layout_marginEnd="12dp"
app:layout_constraintEnd_toStartOf="@+id/iconArrow"
app:layout_constraintStart_toEndOf="@+id/iconFormat"
app:layout_constraintStart_toEndOf="@+id/iconFormatContainer"
app:layout_constraintTop_toTopOf="parent"
tools:text="Name" />
<TextView
android:id="@+id/tvCondition"
style="@style/ViewerFilterConditionStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
style="@style/ViewerFilterConditionStyle"
app:layout_constraintStart_toEndOf="@+id/iconFormat"
app:layout_constraintStart_toEndOf="@+id/iconFormatContainer"
app:layout_constraintTop_toBottomOf="@+id/tvTitle"
tools:text="Contains" />
@ -45,11 +53,11 @@
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_marginEnd="12dp"
app:layout_goneMarginEnd="@dimen/dp_20"
app:layout_constraintBottom_toBottomOf="@+id/tvCondition"
app:layout_constraintEnd_toStartOf="@+id/iconArrow"
app:layout_constraintStart_toEndOf="@+id/tvCondition"
app:layout_constraintTop_toTopOf="@+id/tvCondition" />
app:layout_constraintTop_toTopOf="@+id/tvCondition"
app:layout_goneMarginEnd="@dimen/dp_20" />
<ImageView
android:id="@+id/iconArrow"
@ -63,10 +71,10 @@
<ImageView
android:id="@+id/iconRemoveTag"
style="@style/DVFilterRemoveIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/DVFilterRemoveIcon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -5,15 +5,23 @@
android:layout_width="match_parent"
android:layout_height="@dimen/dv_viewer_filter_item_height">
<ImageView
android:id="@+id/iconFormat"
<FrameLayout
android:id="@+id/iconFormatContainer"
style="@style/DVFilterFormatIcon"
android:layout_width="48dp"
android:layout_height="48dp"
style="@style/DVFilterFormatIcon"
android:background="@drawable/ic_relation_format_background"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/iconRemoveText"
app:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@drawable/ic_relation_checkbox_32" />
app:layout_constraintTop_toTopOf="parent">
<com.anytypeio.anytype.core_ui.widgets.RelationFormatIconWidget
android:id="@+id/iconFormat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</FrameLayout>
<TextView
android:id="@+id/tvTitle"
@ -24,17 +32,17 @@
android:layout_marginTop="12dp"
android:layout_marginEnd="12dp"
app:layout_constraintEnd_toStartOf="@+id/iconArrow"
app:layout_constraintStart_toEndOf="@+id/iconFormat"
app:layout_constraintStart_toEndOf="@+id/iconFormatContainer"
app:layout_constraintTop_toTopOf="parent"
tools:text="Name" />
<TextView
android:id="@+id/tvCondition"
style="@style/ViewerFilterConditionStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
style="@style/ViewerFilterConditionStyle"
app:layout_constraintStart_toEndOf="@+id/iconFormat"
app:layout_constraintStart_toEndOf="@+id/iconFormatContainer"
app:layout_constraintTop_toBottomOf="@+id/tvTitle"
tools:text="Contains" />
@ -66,9 +74,9 @@
<ImageView
android:id="@+id/iconRemoveText"
style="@style/DVFilterRemoveIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/DVFilterRemoveIcon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

View file

@ -17,14 +17,23 @@
android:visibility="gone"
tools:visibility="visible" />
<ImageView
android:id="@+id/ivRelation"
<FrameLayout
android:id="@+id/ivRelationContainer"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginStart="8dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
tools:src="@drawable/ic_relation_name_48" />
android:background="@drawable/ic_relation_format_background">
<com.anytypeio.anytype.core_ui.widgets.RelationFormatIconWidget
android:id="@+id/ivRelation"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:src="@drawable/ic_relation_format_checkbox_small"/>
</FrameLayout>
<LinearLayout
android:layout_width="0dp"

View file

@ -16,7 +16,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"
android:layout_marginTop="6dp"
android:contentDescription="@string/content_description_modal_icon"
android:src="@drawable/sheet_top"
app:layout_constraintEnd_toEndOf="parent"
@ -27,10 +27,9 @@
android:id="@+id/btnFilter"
android:layout_width="52dp"
android:layout_height="52dp"
android:layout_marginTop="12dp"
android:layout_marginStart="20dp"
android:layout_marginTop="14dp"
android:background="@drawable/rect_data_view_customize_view_button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/btnSort"
app:layout_constraintTop_toBottomOf="@+id/dragger">
@ -46,10 +45,10 @@
android:id="@+id/btnView"
android:layout_width="52dp"
android:layout_height="52dp"
android:layout_marginTop="12dp"
android:layout_marginStart="16dp"
android:layout_marginTop="14dp"
android:background="@drawable/rect_data_view_customize_view_button"
app:layout_constraintEnd_toStartOf="@+id/btnSettings"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/dragger">
@ -65,10 +64,9 @@
android:id="@+id/btnSettings"
android:layout_width="52dp"
android:layout_height="52dp"
android:layout_marginTop="12dp"
android:layout_marginStart="20dp"
android:layout_marginTop="14dp"
android:background="@drawable/rect_data_view_customize_view_button"
app:layout_constraintEnd_toStartOf="@+id/btnSort"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/btnView"
app:layout_constraintTop_toBottomOf="@+id/dragger">
@ -84,10 +82,10 @@
android:id="@+id/btnSort"
android:layout_width="52dp"
android:layout_height="52dp"
android:layout_marginTop="12dp"
android:layout_marginStart="20dp"
android:layout_marginTop="14dp"
android:background="@drawable/rect_data_view_customize_view_button"
app:layout_constraintEnd_toStartOf="@+id/btnFilter"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/btnSettings"
app:layout_constraintTop_toBottomOf="@+id/dragger">
@ -105,7 +103,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:layout_marginBottom="13dp"
android:text="@string/view"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/btnView"
@ -118,7 +116,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:layout_marginBottom="13dp"
android:text="@string/settings"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/btnSettings"
@ -131,7 +129,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:layout_marginBottom="13dp"
android:text="@string/sort"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/btnSort"
@ -144,7 +142,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:layout_marginBottom="13dp"
android:text="@string/filter"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/btnFilter"