mirror of
https://github.com/SimpleMobileTools/Simple-Dialer.git
synced 2025-06-05 21:49:23 +02:00
updating commons with some helper functions
This commit is contained in:
@ -56,6 +56,6 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'com.simplemobiletools:commons:5.27.29'
|
implementation 'com.simplemobiletools:commons:5.28.1'
|
||||||
implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a'
|
implementation 'com.github.tibbi:IndicatorFastScroll:08f512858a'
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@ class DialpadActivity : SimpleActivity() {
|
|||||||
dialpad_clear_char.setOnLongClickListener { clearInput(); true }
|
dialpad_clear_char.setOnLongClickListener { clearInput(); true }
|
||||||
dialpad_call_button.setOnClickListener { initCall() }
|
dialpad_call_button.setOnClickListener { initCall() }
|
||||||
dialpad_input.onTextChangeListener { dialpadValueChanged(it) }
|
dialpad_input.onTextChangeListener { dialpadValueChanged(it) }
|
||||||
SimpleContactsHelper(this).getAvailableContacts { gotContacts(it) }
|
SimpleContactsHelper(this).getAvailableContacts(false) { gotContacts(it) }
|
||||||
disableKeyboardPopping()
|
disableKeyboardPopping()
|
||||||
|
|
||||||
val callIcon = resources.getColoredDrawableWithColor(R.drawable.ic_phone_vector, if (isBlackAndWhiteTheme()) Color.BLACK else config.primaryColor.getContrastColor())
|
val callIcon = resources.getColoredDrawableWithColor(R.drawable.ic_phone_vector, if (isBlackAndWhiteTheme()) Color.BLACK else config.primaryColor.getContrastColor())
|
||||||
|
@ -5,7 +5,6 @@ import android.app.SearchManager
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.pm.ShortcutInfo
|
import android.content.pm.ShortcutInfo
|
||||||
import android.content.pm.ShortcutManager
|
|
||||||
import android.graphics.drawable.ColorDrawable
|
import android.graphics.drawable.ColorDrawable
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.graphics.drawable.Icon
|
import android.graphics.drawable.Icon
|
||||||
@ -192,7 +191,7 @@ class MainActivity : SimpleActivity() {
|
|||||||
val launchDialpad = getLaunchDialpadShortcut(appIconColor)
|
val launchDialpad = getLaunchDialpadShortcut(appIconColor)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
getSystemService(ShortcutManager::class.java)!!.dynamicShortcuts = listOf(launchDialpad)
|
shortcutManager.dynamicShortcuts = listOf(launchDialpad)
|
||||||
config.lastHandledShortcutColor = appIconColor
|
config.lastHandledShortcutColor = appIconColor
|
||||||
} catch (ignored: Exception) {
|
} catch (ignored: Exception) {
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,7 @@ class ManageSpeedDialActivity : SimpleActivity(), RemoveSpeedDialListener {
|
|||||||
|
|
||||||
speedDialValues = config.getSpeedDialValues()
|
speedDialValues = config.getSpeedDialValues()
|
||||||
updateAdapter()
|
updateAdapter()
|
||||||
SimpleContactsHelper(this).getAvailableContacts { contacts ->
|
SimpleContactsHelper(this).getAvailableContacts(false) { contacts ->
|
||||||
allContacts = contacts
|
allContacts = contacts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,9 +3,6 @@ package com.simplemobiletools.dialer.adapters
|
|||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.pm.ShortcutInfo
|
import android.content.pm.ShortcutInfo
|
||||||
import android.content.pm.ShortcutManager
|
|
||||||
import android.graphics.Bitmap
|
|
||||||
import android.graphics.drawable.BitmapDrawable
|
|
||||||
import android.graphics.drawable.Icon
|
import android.graphics.drawable.Icon
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.util.TypedValue
|
import android.util.TypedValue
|
||||||
@ -16,16 +13,13 @@ import android.widget.FrameLayout
|
|||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
import com.bumptech.glide.load.DecodeFormat
|
|
||||||
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
|
||||||
import com.bumptech.glide.request.RequestOptions
|
|
||||||
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
|
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
|
||||||
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
||||||
import com.simplemobiletools.commons.extensions.getAdjustedPrimaryColor
|
import com.simplemobiletools.commons.extensions.*
|
||||||
import com.simplemobiletools.commons.extensions.getTextSize
|
import com.simplemobiletools.commons.helpers.PERMISSION_CALL_PHONE
|
||||||
import com.simplemobiletools.commons.extensions.highlightTextFromNumbers
|
import com.simplemobiletools.commons.helpers.PERMISSION_WRITE_CONTACTS
|
||||||
import com.simplemobiletools.commons.extensions.highlightTextPart
|
import com.simplemobiletools.commons.helpers.SimpleContactsHelper
|
||||||
import com.simplemobiletools.commons.helpers.*
|
import com.simplemobiletools.commons.helpers.isOreoPlus
|
||||||
import com.simplemobiletools.commons.models.SimpleContact
|
import com.simplemobiletools.commons.models.SimpleContact
|
||||||
import com.simplemobiletools.commons.views.MyRecyclerView
|
import com.simplemobiletools.commons.views.MyRecyclerView
|
||||||
import com.simplemobiletools.dialer.R
|
import com.simplemobiletools.dialer.R
|
||||||
@ -144,52 +138,24 @@ class ContactsAdapter(activity: SimpleActivity, var contacts: ArrayList<SimpleCo
|
|||||||
@SuppressLint("NewApi")
|
@SuppressLint("NewApi")
|
||||||
private fun createShortcut() {
|
private fun createShortcut() {
|
||||||
val contact = contacts.firstOrNull { selectedKeys.contains(it.rawId) } ?: return
|
val contact = contacts.firstOrNull { selectedKeys.contains(it.rawId) } ?: return
|
||||||
val manager = activity.getSystemService(ShortcutManager::class.java)!!
|
val manager = activity.shortcutManager
|
||||||
if (manager.isRequestPinShortcutSupported) {
|
if (manager.isRequestPinShortcutSupported) {
|
||||||
getShortcutImage(contact.photoUri, contact.name) { image ->
|
SimpleContactsHelper(activity).getShortcutImage(contact.photoUri, contact.name) { image ->
|
||||||
activity.handlePermission(PERMISSION_CALL_PHONE) { hasPermission ->
|
activity.runOnUiThread {
|
||||||
val action = if (hasPermission) Intent.ACTION_CALL else Intent.ACTION_DIAL
|
activity.handlePermission(PERMISSION_CALL_PHONE) { hasPermission ->
|
||||||
val intent = Intent(action).apply {
|
val action = if (hasPermission) Intent.ACTION_CALL else Intent.ACTION_DIAL
|
||||||
data = Uri.fromParts("tel", contact.phoneNumber, null)
|
val intent = Intent(action).apply {
|
||||||
|
data = Uri.fromParts("tel", contact.phoneNumber, null)
|
||||||
|
}
|
||||||
|
|
||||||
|
val shortcut = ShortcutInfo.Builder(activity, contact.hashCode().toString())
|
||||||
|
.setShortLabel(contact.name)
|
||||||
|
.setIcon(Icon.createWithBitmap(image))
|
||||||
|
.setIntent(intent)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
manager.requestPinShortcut(shortcut, null)
|
||||||
}
|
}
|
||||||
|
|
||||||
val shortcut = ShortcutInfo.Builder(activity, contact.hashCode().toString())
|
|
||||||
.setShortLabel(contact.name)
|
|
||||||
.setIcon(Icon.createWithBitmap(image))
|
|
||||||
.setIntent(intent)
|
|
||||||
.build()
|
|
||||||
|
|
||||||
manager.requestPinShortcut(shortcut, null)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun getShortcutImage(path: String, placeholderName: String, callback: (image: Bitmap) -> Unit) {
|
|
||||||
ensureBackgroundThread {
|
|
||||||
val placeholder = BitmapDrawable(activity.resources, SimpleContactsHelper(activity).getContactLetterIcon(placeholderName))
|
|
||||||
try {
|
|
||||||
val options = RequestOptions()
|
|
||||||
.format(DecodeFormat.PREFER_ARGB_8888)
|
|
||||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
|
||||||
.error(placeholder)
|
|
||||||
.centerCrop()
|
|
||||||
|
|
||||||
val size = resources.getDimension(R.dimen.shortcut_size).toInt()
|
|
||||||
val bitmap = Glide.with(activity).asBitmap()
|
|
||||||
.load(path)
|
|
||||||
.placeholder(placeholder)
|
|
||||||
.apply(options)
|
|
||||||
.apply(RequestOptions.circleCropTransform())
|
|
||||||
.into(size, size)
|
|
||||||
.get()
|
|
||||||
|
|
||||||
activity.runOnUiThread {
|
|
||||||
callback(bitmap)
|
|
||||||
}
|
|
||||||
} catch (ignored: Exception) {
|
|
||||||
activity.runOnUiThread {
|
|
||||||
callback(placeholder.bitmap)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun refreshItems() {
|
override fun refreshItems() {
|
||||||
SimpleContactsHelper(context).getAvailableContacts { contacts ->
|
SimpleContactsHelper(context).getAvailableContacts(false) { contacts ->
|
||||||
allContacts = contacts
|
allContacts = contacts
|
||||||
activity?.runOnUiThread {
|
activity?.runOnUiThread {
|
||||||
gotContacts(contacts)
|
gotContacts(contacts)
|
||||||
@ -138,7 +138,7 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag
|
|||||||
fragment_placeholder.text = context.getString(R.string.no_contacts_found)
|
fragment_placeholder.text = context.getString(R.string.no_contacts_found)
|
||||||
fragment_placeholder_2.text = context.getString(R.string.create_new)
|
fragment_placeholder_2.text = context.getString(R.string.create_new)
|
||||||
|
|
||||||
SimpleContactsHelper(context).getAvailableContacts { contacts ->
|
SimpleContactsHelper(context).getAvailableContacts(false) { contacts ->
|
||||||
activity?.runOnUiThread {
|
activity?.runOnUiThread {
|
||||||
gotContacts(contacts)
|
gotContacts(contacts)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user