srctree

Robin Lindén parent 69c1064f e7667ccf
Implement a contact list view

inlinesplit
filename was Deleted added: 97, removed: 8, total 89
@@ -0,0 +1,42 @@
package ltd.evilcorp.atox
 
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import android.widget.TextView
 
class ContactAdapter(private val context: Context, private val contacts: ArrayList<ContactModel>) :
BaseAdapter() {
 
override fun getCount(): Int = contacts.size
override fun getItem(position: Int): Any = contacts[position]
override fun getItemId(position: Int): Long = position.toLong()
 
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
val view: View?
val vh: ViewHolder
 
if (convertView == null) {
val inflater = context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
view = inflater.inflate(R.layout.contact_list_view_item, null, true)
vh = ViewHolder(view)
view.tag = vh
} else {
view = convertView
vh = view.tag as ViewHolder
}
 
vh.name.text = contacts[position].name
vh.toxId.text = contacts[position].toxId
 
return view!!
}
 
private class ViewHolder(row: View) {
val name: TextView = row.findViewById(R.id.name) as TextView
val toxId: TextView = row.findViewById(R.id.toxId) as TextView
}
}
 
app/src/main/java/ltd/evilcorp/atox/ContactListActivity.kt added: 97, removed: 8, total 89
@@ -2,11 +2,27 @@ package ltd.evilcorp.atox
 
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.ListView
 
class ContactListActivity : AppCompatActivity() {
 
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_contact_list)
 
val listView = findViewById<ListView>(R.id.contactList)
val contacts = ArrayList<ContactModel>()
contacts.add(
ContactModel(
"EchoBot",
"76518406F6A9F2217E8DC487CC783C25CC16A15EB36FF32E335A235342C48A39218F515C39A6"
)
)
contacts.add(
ContactModel(
"Also EchoBot",
"76518406F6A9F2217E8DC487CC783C25CC16A15EB36FF32E335A235342C48A39218F515C39A6"
)
)
listView.adapter = ContactAdapter(this, contacts)
}
}
 
filename was Deleted added: 97, removed: 8, total 89
@@ -0,0 +1,3 @@
package ltd.evilcorp.atox
 
class ContactModel(var name: String, val toxId: String)
 
app/src/main/res/layout/activity_contact_list.xml added: 97, removed: 8, total 89
@@ -2,9 +2,11 @@
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ContactListActivity">
 
<ListView
android:id="@+id/contactList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</android.support.constraint.ConstraintLayout>
 
filename was Deleted added: 97, removed: 8, total 89
@@ -0,0 +1,26 @@
<?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="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_marginStart="10dp">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:textStyle="bold"/>
<TextView
android:id="@+id/toxId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:ellipsize="end"/>
</LinearLayout>
</LinearLayout>