improved contact list by adding edit button and made possible to click

contact for a call or message
This commit is contained in:
Juha Heinanen
2018-08-07 16:13:17 +03:00
parent 71de679219
commit 4453c45ff4
7 changed files with 63 additions and 13 deletions

View File

@ -23,7 +23,6 @@ import java.util.GregorianCalendar
class CallsActivity : AppCompatActivity() { class CallsActivity : AppCompatActivity() {
internal var uaHistory = ArrayList<CallRow>() internal var uaHistory = ArrayList<CallRow>()
internal var aor: String = ""
public override fun onCreate(savedInstanceState: Bundle?) { public override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -31,7 +30,7 @@ class CallsActivity : AppCompatActivity() {
val listview = findViewById(R.id.history) as ListView val listview = findViewById(R.id.history) as ListView
aor = intent.extras.getString("aor") val aor = intent.extras.getString("aor")
aorGenerateHistory(aor) aorGenerateHistory(aor)
val adapter = CallListAdapter(this, uaHistory) val adapter = CallListAdapter(this, uaHistory)

View File

@ -2,6 +2,7 @@ package com.tutpro.baresip
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
import android.content.DialogInterface
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.support.v7.app.AlertDialog import android.support.v7.app.AlertDialog
@ -9,13 +10,15 @@ import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.AdapterView
import android.widget.ArrayAdapter import android.widget.ArrayAdapter
import android.widget.ImageButton import android.widget.ImageButton
import android.widget.TextView import android.widget.TextView
import java.util.* import java.util.*
class ContactListAdapter(private val cxt: Context, private val rows: ArrayList<Contact>) : class ContactListAdapter(private val cxt: Context, private val rows: ArrayList<Contact>,
private val aor: String) :
ArrayAdapter<Contact>(cxt, R.layout.contact_row, rows) { ArrayAdapter<Contact>(cxt, R.layout.contact_row, rows) {
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
@ -26,7 +29,37 @@ class ContactListAdapter(private val cxt: Context, private val rows: ArrayList<C
nameView.text = row.name nameView.text = row.name
nameView.textSize = 20f nameView.textSize = 20f
nameView.setPadding(6, 6, 0, 6) nameView.setPadding(6, 6, 0, 6)
nameView.setOnClickListener { _ -> if (aor != "") {
nameView.setOnClickListener {_ ->
val i = Intent(cxt, MessageActivity::class.java)
val b = Bundle()
b.putString("aor", aor)
b.putString("peer", ContactsActivity.contacts[position].uri)
i.putExtras(b)
(cxt as Activity).startActivityForResult(i, MainActivity.MESSAGE_CODE)
}
}
nameView.setOnLongClickListener { _ ->
val dialogClickListener = DialogInterface.OnClickListener { _, which ->
when (which) {
DialogInterface.BUTTON_NEGATIVE -> {
ContactsActivity.contacts.removeAt(position)
ContactsActivity.saveContacts()
this.notifyDataSetChanged()
}
DialogInterface.BUTTON_POSITIVE -> {
}
}
}
val builder = AlertDialog.Builder(cxt, R.style.Theme_AppCompat)
builder.setMessage("Do you want to delete ${ContactsActivity.contacts[position].name}?")
.setPositiveButton("Cancel", dialogClickListener)
.setNegativeButton("Delete Contact", dialogClickListener)
.show()
true
}
val actionView = rowView.findViewById(R.id.action) as ImageButton
actionView.setOnClickListener { _ ->
val i = Intent(cxt, ContactActivity::class.java) val i = Intent(cxt, ContactActivity::class.java)
val b = Bundle() val b = Bundle()
b.putBoolean("new", false) b.putBoolean("new", false)

View File

@ -23,8 +23,10 @@ class ContactsActivity : AppCompatActivity() {
setContentView(R.layout.activity_contacts) setContentView(R.layout.activity_contacts)
val listView = findViewById(R.id.contacts) as ListView val listView = findViewById(R.id.contacts) as ListView
Log.d("Baresip", "Got ${contacts.size} contacts") Log.d("Baresip", "Got ${contacts.size} contacts")
clAdapter = ContactListAdapter(this, contacts) val aor = intent.extras.getString("aor")
clAdapter = ContactListAdapter(this, contacts, aor)
listView.adapter = clAdapter listView.adapter = clAdapter
listView.onItemLongClickListener = AdapterView.OnItemLongClickListener { _, _, pos, _ -> listView.onItemLongClickListener = AdapterView.OnItemLongClickListener { _, _, pos, _ ->

View File

@ -292,6 +292,12 @@ class MainActivity : AppCompatActivity() {
contactsButton.setOnClickListener { contactsButton.setOnClickListener {
val i = Intent(this@MainActivity, ContactsActivity::class.java) val i = Intent(this@MainActivity, ContactsActivity::class.java)
val b = Bundle()
if (aorSpinner.selectedItemPosition >= 0)
b.putString("aor", uas[aorSpinner.selectedItemPosition].account.aor)
else
b.putString("aor", "")
i.putExtras(b)
startActivityForResult(i, CONTACTS_CODE) startActivityForResult(i, CONTACTS_CODE)
} }
@ -787,11 +793,6 @@ class MainActivity : AppCompatActivity() {
startActivityForResult(i, ACCOUNTS_CODE) startActivityForResult(i, ACCOUNTS_CODE)
return true return true
} }
R.id.contacts -> {
i = Intent(this, ContactsActivity::class.java)
startActivityForResult(i, CONTACTS_CODE)
return true
}
R.id.config -> { R.id.config -> {
i = Intent(this, EditConfigActivity::class.java) i = Intent(this, EditConfigActivity::class.java)
startActivityForResult(i, EDIT_CONFIG_CODE) startActivityForResult(i, EDIT_CONFIG_CODE)

View File

@ -21,7 +21,7 @@
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:paddingTop="5dp" android:paddingTop="5dp"
android:paddingBottom="5dp" android:paddingBottom="5dp"
android:layout_marginLeft="6dp" android:layout_marginStart="6dp"
android:icon="@android:drawable/ic_menu_delete" android:icon="@android:drawable/ic_menu_delete"
android:scaleType="centerCrop" > android:scaleType="centerCrop" >
</ImageButton> </ImageButton>

View File

@ -7,7 +7,7 @@
android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.tutpro.baresip.HistoryActivity"> tools:context=".CallsActivity">
<ListView <ListView
android:id="@+id/history" android:id="@+id/history"

View File

@ -2,7 +2,8 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/contactRow" android:id="@+id/contactRow"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" > android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView <TextView
android:id="@+id/contactName" android:id="@+id/contactName"
@ -13,4 +14,18 @@
android:layout_marginBottom="6dp"> android:layout_marginBottom="6dp">
</TextView> </TextView>
<ImageButton
android:id="@+id/action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:layout_marginStart="6dp"
android:src="@drawable/edit"
android:background="@null"
android:scaleType="centerCrop" >
</ImageButton>
</RelativeLayout> </RelativeLayout>