Merge pull request #371 from pavelpoley/task/extra-items

Add some new items at floating contextual action menu
This commit is contained in:
Tibor Kaputa
2022-06-08 14:59:08 +02:00
committed by GitHub
4 changed files with 51 additions and 11 deletions

View File

@@ -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
} }

View File

@@ -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
} }

View File

@@ -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) {

View File

@@ -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>