updating commons with some helper functions

This commit is contained in:
tibbi
2020-05-13 21:46:50 +02:00
parent 3b23125a58
commit 68f8e337fc
6 changed files with 27 additions and 62 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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