mirror of
https://github.com/SimpleMobileTools/Simple-Dialer.git
synced 2025-04-26 07:48:42 +02:00
allow adding numbers from Recents to contacts
This commit is contained in:
parent
910ddf87b2
commit
067fbf1b45
@ -1,5 +1,6 @@
|
||||
package com.simplemobiletools.dialer.adapters
|
||||
|
||||
import android.content.Intent
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.provider.CallLog.Calls
|
||||
import android.util.TypedValue
|
||||
@ -15,6 +16,7 @@ import com.simplemobiletools.commons.views.MyRecyclerView
|
||||
import com.simplemobiletools.dialer.R
|
||||
import com.simplemobiletools.dialer.activities.SimpleActivity
|
||||
import com.simplemobiletools.dialer.extensions.config
|
||||
import com.simplemobiletools.dialer.helpers.KEY_PHONE
|
||||
import com.simplemobiletools.dialer.helpers.RecentsHelper
|
||||
import com.simplemobiletools.dialer.interfaces.RefreshRecentsListener
|
||||
import com.simplemobiletools.dialer.models.RecentCall
|
||||
@ -33,9 +35,13 @@ class RecentCallsAdapter(activity: SimpleActivity, var recentCalls: ArrayList<Re
|
||||
setupDragListener(true)
|
||||
}
|
||||
|
||||
override fun getActionMenuId() = R.menu.cab_remove_only
|
||||
override fun getActionMenuId() = R.menu.cab_recent_calls
|
||||
|
||||
override fun prepareActionMode(menu: Menu) {}
|
||||
override fun prepareActionMode(menu: Menu) {
|
||||
menu.apply {
|
||||
findItem(R.id.cab_add_number).isVisible = isOneItemSelected()
|
||||
}
|
||||
}
|
||||
|
||||
override fun actionItemPressed(id: Int) {
|
||||
if (selectedKeys.isEmpty()) {
|
||||
@ -44,6 +50,7 @@ class RecentCallsAdapter(activity: SimpleActivity, var recentCalls: ArrayList<Re
|
||||
|
||||
when (id) {
|
||||
R.id.cab_remove -> askConfirmRemove()
|
||||
R.id.cab_add_number -> addNumberToContact()
|
||||
}
|
||||
}
|
||||
|
||||
@ -83,6 +90,20 @@ class RecentCallsAdapter(activity: SimpleActivity, var recentCalls: ArrayList<Re
|
||||
outgoingCallIcon = activity.resources.getColoredDrawableWithColor(R.drawable.ic_outgoing_call_vector, activity.config.textColor)
|
||||
}
|
||||
|
||||
private fun addNumberToContact() {
|
||||
val recentCall = getSelectedItems().firstOrNull() ?: return
|
||||
Intent().apply {
|
||||
action = Intent.ACTION_INSERT_OR_EDIT
|
||||
type = "vnd.android.cursor.item/contact"
|
||||
putExtra(KEY_PHONE, recentCall.phoneNumber)
|
||||
|
||||
if (resolveActivity(activity.packageManager) != null) {
|
||||
activity.startActivity(this)
|
||||
} else {
|
||||
activity.toast(R.string.no_app_found)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun askConfirmRemove() {
|
||||
ConfirmationDialog(activity, activity.getString(R.string.remove_confirmation)) {
|
||||
|
15
app/src/main/res/menu/cab_recent_calls.xml
Normal file
15
app/src/main/res/menu/cab_recent_calls.xml
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/cab_add_number"
|
||||
android:icon="@drawable/ic_add_person_vector"
|
||||
android:title="@string/add_number_to_contact"
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
<item
|
||||
android:id="@+id/cab_remove"
|
||||
android:icon="@drawable/ic_minus_circle_vector"
|
||||
android:title="@string/remove"
|
||||
app:showAsAction="ifRoom" />
|
||||
</menu>
|
Loading…
x
Reference in New Issue
Block a user