Show last message in contacts list.
This commit is contained in:
parent
a06884f204
commit
da7fd6e5f7
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:minHeight="?attr/listPreferredItemHeight"
|
||||||
|
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
|
||||||
|
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
|
||||||
|
android:orientation="vertical" >
|
||||||
|
|
||||||
|
<TextView android:id="@android:id/text1"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceListItem"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<TextView android:id="@android:id/text2"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@android:id/text1"
|
||||||
|
android:layout_alignStart="@android:id/text1"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceListItemSecondary" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
|
@ -1,21 +1,38 @@
|
||||||
package com.nutomic.ensichat.util
|
package com.nutomic.ensichat.util
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.view.{View, ViewGroup}
|
import android.view.{LayoutInflater, View, ViewGroup}
|
||||||
import android.widget.{ArrayAdapter, TextView}
|
import android.widget.{ArrayAdapter, TextView}
|
||||||
import com.nutomic.ensichat.bluetooth.Device
|
import com.nutomic.ensichat.bluetooth.Device
|
||||||
import com.nutomic.ensichat.protocol.User
|
import com.nutomic.ensichat.protocol.User
|
||||||
|
import com.nutomic.ensichat.protocol.body.Text
|
||||||
|
import com.nutomic.ensichat.R
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays [[Device]]s in ListView.
|
* Displays [[Device]]s in ListView.
|
||||||
*/
|
*/
|
||||||
class UsersAdapter(context: Context) extends
|
class UsersAdapter(context: Context) extends
|
||||||
ArrayAdapter[User](context, android.R.layout.simple_list_item_1) {
|
ArrayAdapter[User](context, 0) {
|
||||||
|
|
||||||
|
private lazy val database = new Database(context)
|
||||||
|
|
||||||
override def getView(position: Int, convertView: View, parent: ViewGroup): View = {
|
override def getView(position: Int, convertView: View, parent: ViewGroup): View = {
|
||||||
val view = super.getView(position, convertView, parent)
|
val view =
|
||||||
val title: TextView = view.findViewById(android.R.id.text1).asInstanceOf[TextView]
|
if (convertView == null) {
|
||||||
title.setText(getItem(position).name)
|
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)
|
||||||
|
.asInstanceOf[LayoutInflater]
|
||||||
|
.inflate(R.layout.item_user, parent, false)
|
||||||
|
} else
|
||||||
|
convertView
|
||||||
|
val title = view.findViewById(android.R.id.text1).asInstanceOf[TextView]
|
||||||
|
val summary = view.findViewById(android.R.id.text2).asInstanceOf[TextView]
|
||||||
|
val item = getItem(position)
|
||||||
|
title.setText(item.name)
|
||||||
|
database.getMessages(item.address, 1)
|
||||||
|
.map(_.body)
|
||||||
|
.foreach {
|
||||||
|
case m: Text => summary.setText(m.text)
|
||||||
|
}
|
||||||
view
|
view
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in New Issue