diff --git a/app/src/main/java/net/underdesk/circolapp/adapters/CircularLetterAdapter.kt b/app/src/main/java/net/underdesk/circolapp/adapters/CircularLetterAdapter.kt index 63e65b3..04eeecc 100644 --- a/app/src/main/java/net/underdesk/circolapp/adapters/CircularLetterAdapter.kt +++ b/app/src/main/java/net/underdesk/circolapp/adapters/CircularLetterAdapter.kt @@ -39,6 +39,7 @@ import net.underdesk.circolapp.data.Circular class CircularLetterAdapter(private val circulars: List) : RecyclerView.Adapter() { private lateinit var context: Context + private var collapsedItems = -1 inner class CircularLetterViewHolder(view: View) : RecyclerView.ViewHolder(view) { var title: TextView = view.circular_title_textview @@ -69,6 +70,33 @@ class CircularLetterAdapter(private val circulars: List) : holder.title.text = circulars[position].name holder.date.text = circulars[position].date + if (collapsedItems != position) { + holder.collapseButton.setImageDrawable(context.getDrawable(R.drawable.baseline_expand_more_24)) + + holder.viewButton.visibility = View.GONE + holder.downloadButton.visibility = View.GONE + holder.favouriteButton.visibility = View.GONE + holder.reminderButton.visibility = View.GONE + + holder.attachmentsList.visibility = View.GONE + holder.attachmentsList.adapter = null + } else { + holder.collapseButton.setImageDrawable(context.getDrawable(R.drawable.baseline_expand_less_24)) + + holder.viewButton.visibility = View.VISIBLE + holder.downloadButton.visibility = View.VISIBLE + holder.favouriteButton.visibility = View.VISIBLE + holder.reminderButton.visibility = View.VISIBLE + + if (circulars[position].attachmentsNames.isNotEmpty()) { + holder.attachmentsList.visibility = View.VISIBLE + holder.attachmentsList.adapter = AttachmentAdapter( + circulars[position].attachmentsNames, + circulars[position].attachmentsUrls + ) + } + } + holder.viewButton.setOnClickListener { val viewIntent = Intent(Intent.ACTION_VIEW) viewIntent.setDataAndType(Uri.parse(circulars[position].url), "application/pdf") @@ -96,28 +124,14 @@ class CircularLetterAdapter(private val circulars: List) : } holder.collapseButton.setOnClickListener { - if (holder.viewButton.visibility == View.VISIBLE) { - holder.viewButton.visibility = View.GONE - holder.downloadButton.visibility = View.GONE - holder.favouriteButton.visibility = View.GONE - holder.reminderButton.visibility = View.GONE - - holder.attachmentsList.visibility = View.GONE - holder.attachmentsList.adapter = null + collapsedItems = if (collapsedItems == position) { + -1 } else { - holder.viewButton.visibility = View.VISIBLE - holder.downloadButton.visibility = View.VISIBLE - holder.favouriteButton.visibility = View.VISIBLE - holder.reminderButton.visibility = View.VISIBLE - - if (circulars[position].attachmentsNames.isNotEmpty()) { - holder.attachmentsList.visibility = View.VISIBLE - holder.attachmentsList.adapter = AttachmentAdapter( - circulars[position].attachmentsNames, - circulars[position].attachmentsUrls - ) - } + if (collapsedItems > -1) notifyItemChanged(collapsedItems) + position } + + notifyItemChanged(position) } } diff --git a/app/src/main/res/drawable/baseline_keyboard_arrow_down_24.xml b/app/src/main/res/drawable/baseline_expand_less_24.xml similarity index 78% rename from app/src/main/res/drawable/baseline_keyboard_arrow_down_24.xml rename to app/src/main/res/drawable/baseline_expand_less_24.xml index 8b1c911..0a1e170 100755 --- a/app/src/main/res/drawable/baseline_keyboard_arrow_down_24.xml +++ b/app/src/main/res/drawable/baseline_expand_less_24.xml @@ -6,5 +6,5 @@ android:tint="?attr/colorControlNormal"> + android:pathData="M12,8l-6,6 1.41,1.41L12,10.83l4.59,4.58L18,14z"/> diff --git a/app/src/main/res/drawable/baseline_expand_more_24.xml b/app/src/main/res/drawable/baseline_expand_more_24.xml new file mode 100755 index 0000000..d6d7c3c --- /dev/null +++ b/app/src/main/res/drawable/baseline_expand_more_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/fragment_circular_letters.xml b/app/src/main/res/layout/fragment_circular_letters.xml index 966a0a6..f92642b 100644 --- a/app/src/main/res/layout/fragment_circular_letters.xml +++ b/app/src/main/res/layout/fragment_circular_letters.xml @@ -1,13 +1,10 @@ + android:layout_height="match_parent" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_circular.xml b/app/src/main/res/layout/item_circular.xml index f8c11c2..68f2759 100644 --- a/app/src/main/res/layout/item_circular.xml +++ b/app/src/main/res/layout/item_circular.xml @@ -51,7 +51,7 @@ android:layout_height="wrap_content" android:layout_marginEnd="8dp" android:adjustViewBounds="true" - android:src="@drawable/baseline_keyboard_arrow_down_24" + android:src="@drawable/baseline_expand_more_24" app:layout_constraintBottom_toTopOf="@+id/circular_reminder_button" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" />