Skip to content

Commit e47eae7

Browse files
Merge pull request #198 from Link-MIND/feature/#197-edit-clip-change
refactor: edit clip drag and drop
2 parents 6a73978 + 350f8e3 commit e47eae7

File tree

5 files changed

+32
-65
lines changed

5 files changed

+32
-65
lines changed

app/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ android {
1010

1111
defaultConfig {
1212
applicationId = "org.sopt.linkmind"
13-
versionCode = 12
13+
versionCode = 13
1414
versionName = "1.2.0"
1515
}
1616
viewBinding.enable = true

feature/clip/src/main/java/org/sopt/clip/clipedit/ClipEditFragment.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class ClipEditFragment : BindingFragment<FragmentClipEditBinding>({ FragmentClip
4545
adapter = clipEditAdapter,
4646
recyclerView = binding.rvClipEdit,
4747
) { categoryId, newIndex ->
48-
if (categoryId != null) viewModel.updateCategoryEditPriorityState(categoryId, newIndex)
48+
if (categoryId != null) viewModel.updateCategoryEditPriorityState(categoryId, newIndex - 1)
4949
}
5050
ItemTouchHelper(callback).attachToRecyclerView(binding.rvClipEdit)
5151
updateEditListView()
@@ -58,9 +58,8 @@ class ClipEditFragment : BindingFragment<FragmentClipEditBinding>({ FragmentClip
5858
viewModel.categoryState.flowWithLifecycle(viewLifeCycle).onEach { state ->
5959
when (state) {
6060
is UiState.Success -> {
61-
val originalList = state.data ?: emptyList()
62-
val newList = originalList.filter { it.categoryId?.toInt() != 0 }
63-
clipEditAdapter.submitList(newList)
61+
val clipList = state.data
62+
clipEditAdapter.submitList(clipList)
6463
}
6564

6665
else -> {}

feature/clip/src/main/java/org/sopt/clip/clipedit/ItemTouchCallback.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,12 @@ class ItemTouchCallback(
1313
recyclerView: RecyclerView,
1414
viewHolder: RecyclerView.ViewHolder,
1515
): Int {
16-
val dragFlags = ItemTouchHelper.UP or ItemTouchHelper.DOWN or ItemTouchHelper.START or ItemTouchHelper.END
17-
return makeMovementFlags(dragFlags, 0)
16+
return if (viewHolder.bindingAdapterPosition == 0) {
17+
0
18+
} else {
19+
val dragFlags = ItemTouchHelper.UP or ItemTouchHelper.DOWN or ItemTouchHelper.START or ItemTouchHelper.END
20+
return makeMovementFlags(dragFlags, 0)
21+
}
1822
}
1923

2024
override fun onMove(
@@ -24,6 +28,10 @@ class ItemTouchCallback(
2428
): Boolean {
2529
val fromPosition = viewHolder.bindingAdapterPosition
2630
val toPosition = target.bindingAdapterPosition
31+
32+
if (fromPosition == 0 || toPosition == 0) {
33+
return false
34+
}
2735
adapter.moveItem(fromPosition, toPosition)
2836
return true
2937
}

feature/clip/src/main/res/layout/fragment_clip_edit.xml

Lines changed: 15 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -42,67 +42,25 @@
4242
app:layout_constraintStart_toStartOf="parent"
4343
app:layout_constraintTop_toBottomOf="@id/iv_clip_edit_back" />
4444

45-
<androidx.core.widget.NestedScrollView
46-
android:layout_width="match_parent"
47-
android:layout_height="0dp"
48-
android:layout_marginTop="22dp"
49-
app:layout_constraintBottom_toBottomOf="parent"
50-
app:layout_constraintStart_toStartOf="parent"
51-
app:layout_constraintTop_toBottomOf="@id/tv_clip_edit_guide_msg">
52-
53-
<androidx.constraintlayout.widget.ConstraintLayout
54-
android:layout_width="match_parent"
55-
android:layout_height="match_parent">
56-
57-
<ImageView
58-
android:id="@+id/iv_pin"
59-
android:layout_width="wrap_content"
60-
android:layout_height="wrap_content"
61-
android:layout_marginStart="20dp"
62-
android:src="@drawable/ic_pin_24"
63-
app:layout_constraintBottom_toBottomOf="@id/tv_all_clip"
64-
app:layout_constraintStart_toStartOf="parent"
65-
app:layout_constraintTop_toTopOf="@id/tv_all_clip" />
66-
67-
<TextView
68-
android:id="@+id/tv_all_clip"
69-
android:layout_width="0dp"
70-
android:layout_height="wrap_content"
71-
android:layout_marginStart="4dp"
72-
android:layout_marginEnd="20dp"
73-
android:background="@drawable/shape_white_fill_12_rect"
74-
android:paddingVertical="15dp"
75-
android:paddingStart="14dp"
76-
android:text="@string/clip_all_clip"
77-
android:textAppearance="@style/Typography.suit.semibold_16"
78-
android:textColor="@color/neutrals850"
79-
app:layout_constraintEnd_toEndOf="parent"
80-
app:layout_constraintStart_toEndOf="@id/iv_pin"
81-
app:layout_constraintTop_toTopOf="parent" />
82-
83-
<androidx.recyclerview.widget.RecyclerView
84-
android:id="@+id/rv_clip_edit"
85-
android:layout_width="0dp"
86-
android:layout_height="wrap_content"
87-
android:layout_marginStart="10dp"
88-
android:layout_marginTop="22dp"
89-
android:overScrollMode="never"
90-
android:nestedScrollingEnabled="false"
91-
android:layout_marginEnd="20dp"
92-
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
93-
app:layout_constraintBottom_toBottomOf="parent"
94-
app:layout_constraintEnd_toEndOf="parent"
95-
app:layout_constraintStart_toStartOf="parent"
96-
app:layout_constraintTop_toBottomOf="@id/iv_pin"
97-
tools:itemCount="3"
98-
tools:listitem="@layout/item_clip_edit_clip" />
99-
</androidx.constraintlayout.widget.ConstraintLayout>
45+
<androidx.recyclerview.widget.RecyclerView
46+
android:id="@+id/rv_clip_edit"
47+
android:layout_width="0dp"
48+
android:layout_height="0dp"
49+
android:layout_marginTop="44dp"
50+
android:paddingVertical="15dp"
51+
android:nestedScrollingEnabled="false"
52+
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
53+
app:layout_constraintBottom_toBottomOf="parent"
54+
app:layout_constraintEnd_toEndOf="parent"
55+
app:layout_constraintStart_toStartOf="parent"
56+
app:layout_constraintTop_toBottomOf="@id/iv_clip_edit_back"
57+
tools:itemCount="3"
58+
tools:listitem="@layout/item_clip_edit_clip" />
10059

101-
</androidx.core.widget.NestedScrollView>
10260
<View
10361
android:id="@+id/v_snack"
10462
android:layout_width="match_parent"
10563
android:layout_height="20dp"
106-
app:layout_constraintBottom_toBottomOf="parent"/>
64+
app:layout_constraintBottom_toBottomOf="parent" />
10765

10866
</androidx.constraintlayout.widget.ConstraintLayout>

feature/clip/src/main/res/layout/item_clip_edit_clip.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
xmlns:app="http://schemas.android.com/apk/res-auto"
44
android:layout_width="match_parent"
55
android:layout_height="wrap_content"
6-
android:layout_marginBottom="12dp">
6+
android:layout_marginStart="10dp"
7+
android:layout_marginBottom="12dp"
8+
android:layout_marginEnd="20dp">
79
<!--android:background="@color/transparent"-->
810

911
<ImageView

0 commit comments

Comments
 (0)