mirror of
https://github.com/SimpleMobileTools/Simple-Dialer.git
synced 2025-06-05 21:49:23 +02:00
Merge pull request #371 from pavelpoley/task/extra-items
Add some new items at floating contextual action menu
This commit is contained in:
@@ -8,6 +8,7 @@ import android.text.TextUtils
|
|||||||
import android.util.TypedValue
|
import android.util.TypedValue
|
||||||
import android.view.*
|
import android.view.*
|
||||||
import android.widget.PopupMenu
|
import android.widget.PopupMenu
|
||||||
|
import androidx.core.view.isVisible
|
||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
|
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
|
||||||
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
||||||
@@ -26,7 +27,11 @@ import com.simplemobiletools.dialer.models.RecentCall
|
|||||||
import kotlinx.android.synthetic.main.item_recent_call.view.*
|
import kotlinx.android.synthetic.main.item_recent_call.view.*
|
||||||
|
|
||||||
class RecentCallsAdapter(
|
class RecentCallsAdapter(
|
||||||
activity: SimpleActivity, var recentCalls: ArrayList<RecentCall>, recyclerView: MyRecyclerView, val refreshItemsListener: RefreshItemsListener?,
|
activity: SimpleActivity,
|
||||||
|
var recentCalls: ArrayList<RecentCall>,
|
||||||
|
recyclerView: MyRecyclerView,
|
||||||
|
private val refreshItemsListener: RefreshItemsListener?,
|
||||||
|
private val showOverflowMenu: Boolean,
|
||||||
itemClick: (Any) -> Unit
|
itemClick: (Any) -> Unit
|
||||||
) : MyRecyclerViewAdapter(activity, recyclerView, itemClick) {
|
) : MyRecyclerViewAdapter(activity, recyclerView, itemClick) {
|
||||||
|
|
||||||
@@ -315,13 +320,15 @@ class RecentCallsAdapter(
|
|||||||
|
|
||||||
item_recents_type.setImageDrawable(drawable)
|
item_recents_type.setImageDrawable(drawable)
|
||||||
|
|
||||||
overflow_menu_icon.drawable.apply {
|
overflow_menu_icon.beVisibleIf(showOverflowMenu)
|
||||||
mutate()
|
if (showOverflowMenu) {
|
||||||
setTint(activity.getProperTextColor())
|
overflow_menu_icon.drawable.apply {
|
||||||
}
|
mutate()
|
||||||
|
setTint(activity.getProperTextColor())
|
||||||
overflow_menu_icon.setOnClickListener {
|
}
|
||||||
showPopupMenu(overflow_menu_anchor, call)
|
overflow_menu_icon.setOnClickListener {
|
||||||
|
showPopupMenu(overflow_menu_anchor, call)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -369,6 +376,24 @@ class RecentCallsAdapter(
|
|||||||
launchContactDetailsIntent(contact)
|
launchContactDetailsIntent(contact)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
R.id.cab_add_number -> {
|
||||||
|
executeItemMenuOperation(callId) {
|
||||||
|
addNumberToContact()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
R.id.cab_show_call_details -> {
|
||||||
|
executeItemMenuOperation(callId) {
|
||||||
|
showCallDetails()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
R.id.cab_block_number -> {
|
||||||
|
selectedKeys.add(callId)
|
||||||
|
askConfirmBlock()
|
||||||
|
}
|
||||||
|
R.id.cab_remove -> {
|
||||||
|
selectedKeys.add(callId)
|
||||||
|
askConfirmRemove()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
@@ -9,7 +9,6 @@ import com.simplemobiletools.dialer.adapters.RecentCallsAdapter
|
|||||||
import com.simplemobiletools.dialer.helpers.RecentsHelper
|
import com.simplemobiletools.dialer.helpers.RecentsHelper
|
||||||
import com.simplemobiletools.dialer.models.RecentCall
|
import com.simplemobiletools.dialer.models.RecentCall
|
||||||
import kotlinx.android.synthetic.main.dialog_show_grouped_calls.view.*
|
import kotlinx.android.synthetic.main.dialog_show_grouped_calls.view.*
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
class ShowGroupedCallsDialog(val activity: BaseSimpleActivity, callIds: ArrayList<Int>) {
|
class ShowGroupedCallsDialog(val activity: BaseSimpleActivity, callIds: ArrayList<Int>) {
|
||||||
private var dialog: AlertDialog? = null
|
private var dialog: AlertDialog? = null
|
||||||
@@ -20,7 +19,7 @@ class ShowGroupedCallsDialog(val activity: BaseSimpleActivity, callIds: ArrayLis
|
|||||||
RecentsHelper(activity).getRecentCalls(false) { allRecents ->
|
RecentsHelper(activity).getRecentCalls(false) { allRecents ->
|
||||||
val recents = allRecents.filter { callIds.contains(it.id) }.toMutableList() as ArrayList<RecentCall>
|
val recents = allRecents.filter { callIds.contains(it.id) }.toMutableList() as ArrayList<RecentCall>
|
||||||
activity.runOnUiThread {
|
activity.runOnUiThread {
|
||||||
RecentCallsAdapter(activity as SimpleActivity, recents, select_grouped_calls_list, null) {
|
RecentCallsAdapter(activity as SimpleActivity, recents, select_grouped_calls_list, null, false) {
|
||||||
}.apply {
|
}.apply {
|
||||||
select_grouped_calls_list.adapter = this
|
select_grouped_calls_list.adapter = this
|
||||||
}
|
}
|
||||||
|
@@ -90,7 +90,7 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
|
|||||||
|
|
||||||
val currAdapter = recents_list.adapter
|
val currAdapter = recents_list.adapter
|
||||||
if (currAdapter == null) {
|
if (currAdapter == null) {
|
||||||
RecentCallsAdapter(activity as SimpleActivity, recents, recents_list, this) {
|
RecentCallsAdapter(activity as SimpleActivity, recents, recents_list, this, true) {
|
||||||
val recentCall = it as RecentCall
|
val recentCall = it as RecentCall
|
||||||
if (context.config.showCallConfirmation) {
|
if (context.config.showCallConfirmation) {
|
||||||
CallConfirmationDialog(activity as SimpleActivity, recentCall.name) {
|
CallConfirmationDialog(activity as SimpleActivity, recentCall.name) {
|
||||||
|
@@ -20,4 +20,20 @@
|
|||||||
android:id="@+id/cab_view_details"
|
android:id="@+id/cab_view_details"
|
||||||
android:icon="@drawable/ic_view_contact_details_vector"
|
android:icon="@drawable/ic_view_contact_details_vector"
|
||||||
android:title="@string/view_contact_details" />
|
android:title="@string/view_contact_details" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/cab_add_number"
|
||||||
|
android:icon="@drawable/ic_add_person_vector"
|
||||||
|
android:title="@string/add_number_to_contact" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/cab_show_call_details"
|
||||||
|
android:icon="@drawable/ic_info_vector"
|
||||||
|
android:title="@string/show_call_details" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/cab_block_number"
|
||||||
|
android:icon="@drawable/ic_minus_circle_vector"
|
||||||
|
android:title="@string/block_number" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/cab_remove"
|
||||||
|
android:icon="@drawable/ic_delete_vector"
|
||||||
|
android:title="@string/delete" />
|
||||||
</menu>
|
</menu>
|
||||||
|
Reference in New Issue
Block a user