From bfecd70422ddb1b8f5b5ca7e229c2b3c34557be9 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Fri, 11 Feb 2022 21:41:47 +0200 Subject: [PATCH] Started work on Android contacts --- app/src/main/AndroidManifest.xml | 52 ++++++++++++------- .../com/tutpro/baresip/ContactActivity.kt | 43 --------------- .../com/tutpro/baresip/ContactsActivity.kt | 17 ++++++ app/src/main/res/values/strings.xml | 3 ++ 4 files changed, 54 insertions(+), 61 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d0422216..137f8d57 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ + package="com.tutpro.baresip" > @@ -13,8 +13,10 @@ - + @@ -27,36 +29,38 @@ - + tools:remove="android:appComponentFactory" > + android:launchMode="singleTask" + android:theme="@style/AppTheme.Main" + android:windowSoftInputMode="adjustResize" > + + + @@ -81,9 +85,9 @@ + android:label="@string/baresip_contacts" + android:parentActivityName=".MainActivity" + android:windowSoftInputMode="adjustPan" > + + + + + android:parentActivityName=".MainActivity" > + android:permission="android.permission.FOREGROUND_SERVICE" + android:stopWithTask="false" > - - + \ No newline at end of file diff --git a/app/src/main/kotlin/com/tutpro/baresip/ContactActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/ContactActivity.kt index 0bc5e7c7..17f544d1 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/ContactActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/ContactActivity.kt @@ -567,49 +567,6 @@ class ContactActivity : AppCompatActivity() { null) } - @Suppress("UNUSED") - fun logAndroidContacts(ctx: Context, type: String): HashMap> { - val mimeType = if (type == "sip") - CommonDataKinds.SipAddress.CONTENT_ITEM_TYPE - else - CommonDataKinds.Phone.CONTENT_ITEM_TYPE - val contacts = HashMap>() - val projection = arrayOf(ContactsContract.Data.CONTACT_ID, ContactsContract.Data.DISPLAY_NAME, - ContactsContract.Data.MIMETYPE, ContactsContract.Data.DATA1, - ContactsContract.Data.PHOTO_THUMBNAIL_URI) - val selection = ContactsContract.Data.MIMETYPE + "='" + mimeType + "'" - val cur: Cursor? = ctx.contentResolver.query(ContactsContract.Data.CONTENT_URI, projection, - selection, null, null) - while (cur != null && cur.moveToNext()) { - val id = cur.getLong(0) - val name = cur.getString(1) // display name - val mime = cur.getString(2) // type of data - val data = cur.getString(3) // info - val thumb = cur.getString(4) // thumbnail - var kind = "unknown" - when (mime) { - CommonDataKinds.SipAddress.CONTENT_ITEM_TYPE -> kind = "sip" - CommonDataKinds.Photo.CONTENT_ITEM_TYPE -> kind = "thumb" - CommonDataKinds.Phone.CONTENT_ITEM_TYPE -> kind = "tel" - } - Log.d(TAG, "got $id, $name, $kind - $data") - var info: MutableList - if (contacts.containsKey(id)) { - info = contacts[id]!! - } else { - info = mutableListOf() - info.add("name = $name") - info.add("thumb = $thumb") - contacts[id] = info - } - info.add("$kind = $data") - } - cur?.close() - return contacts - } - } } - - diff --git a/app/src/main/kotlin/com/tutpro/baresip/ContactsActivity.kt b/app/src/main/kotlin/com/tutpro/baresip/ContactsActivity.kt index d87ce80f..93951c7f 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/ContactsActivity.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/ContactsActivity.kt @@ -4,6 +4,7 @@ import android.app.Activity import android.content.* import android.os.Bundle import android.os.SystemClock +import android.view.Menu import androidx.appcompat.app.AppCompatActivity import android.view.MenuItem import androidx.activity.result.contract.ActivityResultContracts @@ -57,6 +58,11 @@ class ContactsActivity : AppCompatActivity() { } + override fun onCreateOptionsMenu(menu: Menu): Boolean { + menuInflater.inflate(R.menu.swap_contacts_icon, menu) + return super.onCreateOptionsMenu(menu) + } + override fun onResume() { super.onResume() @@ -68,6 +74,17 @@ class ContactsActivity : AppCompatActivity() { when (item.itemId) { + R.id.swapContactsIcon -> { + if (SystemClock.elapsedRealtime() - lastClick > 1000) { + lastClick = SystemClock.elapsedRealtime() + val intent = Intent(this, AndroidContactsActivity::class.java) + intent.putExtra("aor", aor) + startActivity(intent) + finish() + return true + } + } + android.R.id.home -> { BaresipService.activities.remove("contacts,$aor") setResult(Activity.RESULT_OK, Intent()) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 164b8320..f844c98d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -358,10 +358,13 @@ Profile image Contacts + baresip Contacts Do you want to call or send message to \'%1$s\'? Send Message Do you want to delete contact \'%1$s\'? Your maximum number of contacts %1$d has been exceeded. + + Android Contacts Alert Info