diff --git a/presentation/src/main/java/com/moez/QKSMS/common/util/extensions/AdapterExtensions.kt b/presentation/src/main/java/com/moez/QKSMS/common/util/extensions/AdapterExtensions.kt
index 50a808db..b5e4540b 100644
--- a/presentation/src/main/java/com/moez/QKSMS/common/util/extensions/AdapterExtensions.kt
+++ b/presentation/src/main/java/com/moez/QKSMS/common/util/extensions/AdapterExtensions.kt
@@ -23,6 +23,14 @@ import androidx.recyclerview.widget.RecyclerView
fun RecyclerView.Adapter<*>.autoScrollToStart(recyclerView: RecyclerView) {
registerAdapterDataObserver(object : RecyclerView.AdapterDataObserver() {
+ override fun onChanged() {
+ val layoutManager = recyclerView.layoutManager as? LinearLayoutManager ?: return
+
+ if (layoutManager.stackFromEnd) {
+ recyclerView.scrollToPosition(itemCount - 1)
+ }
+ }
+
override fun onItemRangeInserted(positionStart: Int, itemCount: Int) {
val layoutManager = recyclerView.layoutManager as? LinearLayoutManager ?: return
diff --git a/presentation/src/main/java/com/moez/QKSMS/feature/qkreply/QkReplyActivity.kt b/presentation/src/main/java/com/moez/QKSMS/feature/qkreply/QkReplyActivity.kt
index de72ba7b..c273e87a 100644
--- a/presentation/src/main/java/com/moez/QKSMS/feature/qkreply/QkReplyActivity.kt
+++ b/presentation/src/main/java/com/moez/QKSMS/feature/qkreply/QkReplyActivity.kt
@@ -27,7 +27,6 @@ import android.view.Window
import android.view.WindowManager
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.ViewModelProviders
-import androidx.recyclerview.widget.LinearLayoutManager
import com.jakewharton.rxbinding2.view.clicks
import com.jakewharton.rxbinding2.widget.textChanges
import com.moez.QKSMS.R
@@ -68,10 +67,8 @@ class QkReplyActivity : QkThemedActivity(), QkReplyView {
toolbar.clipToOutline = true
- adapter.autoScrollToStart(messages)
-
- messages.layoutManager = LinearLayoutManager(this).apply { stackFromEnd = true }
messages.adapter = adapter
+ messages.adapter?.autoScrollToStart(messages)
// These theme attributes don't apply themselves on API 21
if (Build.VERSION.SDK_INT <= 22) {
diff --git a/presentation/src/main/res/drawable/ic_unfold_less_black_24dp.xml b/presentation/src/main/res/drawable/ic_unfold_less_black_24dp.xml
new file mode 100644
index 00000000..7282a975
--- /dev/null
+++ b/presentation/src/main/res/drawable/ic_unfold_less_black_24dp.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/presentation/src/main/res/drawable/ic_unfold_more_black_24dp.xml b/presentation/src/main/res/drawable/ic_unfold_more_black_24dp.xml
new file mode 100644
index 00000000..e9ba7540
--- /dev/null
+++ b/presentation/src/main/res/drawable/ic_unfold_more_black_24dp.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/presentation/src/main/res/layout/qkreply_activity.xml b/presentation/src/main/res/layout/qkreply_activity.xml
index d838382a..c04c2cdb 100644
--- a/presentation/src/main/res/layout/qkreply_activity.xml
+++ b/presentation/src/main/res/layout/qkreply_activity.xml
@@ -41,12 +41,14 @@
android:clipToPadding="false"
android:paddingBottom="8dp"
android:paddingTop="8dp"
+ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constrainedHeight="true"
app:layout_constraintBottom_toBottomOf="@id/composeBackground"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHeight_max="220dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar"
+ app:stackFromEnd="true"
tools:listitem="@layout/message_list_item_in" />
-
-
+ android:icon="@drawable/ic_unfold_more_black_24dp"
+ android:title="@string/qkreply_menu_expand"
+ app:showAsAction="ifRoom" />
+ android:visible="false"
+ app:showAsAction="ifRoom" />
+
+