mirror of
https://github.com/SimpleMobileTools/Simple-Dialer.git
synced 2025-04-01 12:10:10 +02:00
adding some permission handling
This commit is contained in:
parent
e604a3e88b
commit
d55bc9104a
@ -4,8 +4,8 @@
|
|||||||
package="com.simplemobiletools.dialer"
|
package="com.simplemobiletools.dialer"
|
||||||
android:installLocation="auto">
|
android:installLocation="auto">
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.READ_CONTACTS"/>
|
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||||
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
|
<uses-permission android:name="android.permission.READ_CALL_LOG" />
|
||||||
|
|
||||||
<uses-permission
|
<uses-permission
|
||||||
android:name="android.permission.USE_FINGERPRINT"
|
android:name="android.permission.USE_FINGERPRINT"
|
||||||
|
@ -9,9 +9,7 @@ import android.view.Menu
|
|||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import androidx.viewpager.widget.ViewPager
|
import androidx.viewpager.widget.ViewPager
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.*
|
||||||
import com.simplemobiletools.commons.helpers.ContactsHelper
|
import com.simplemobiletools.commons.helpers.*
|
||||||
import com.simplemobiletools.commons.helpers.PERMISSION_GET_ACCOUNTS
|
|
||||||
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS
|
|
||||||
import com.simplemobiletools.commons.models.FAQItem
|
import com.simplemobiletools.commons.models.FAQItem
|
||||||
import com.simplemobiletools.dialer.BuildConfig
|
import com.simplemobiletools.dialer.BuildConfig
|
||||||
import com.simplemobiletools.dialer.R
|
import com.simplemobiletools.dialer.R
|
||||||
@ -159,7 +157,7 @@ class MainActivity : SimpleActivity() {
|
|||||||
private fun getAllFragments() = arrayListOf(contacts_fragment)
|
private fun getAllFragments() = arrayListOf(contacts_fragment)
|
||||||
|
|
||||||
private fun launchAbout() {
|
private fun launchAbout() {
|
||||||
val licenses = 0
|
val licenses = LICENSE_GLIDE or LICENSE_INDICATOR_FAST_SCROLL
|
||||||
|
|
||||||
val faqItems = arrayListOf(
|
val faqItems = arrayListOf(
|
||||||
FAQItem(R.string.faq_2_title_commons, R.string.faq_2_text_commons),
|
FAQItem(R.string.faq_2_title_commons, R.string.faq_2_text_commons),
|
||||||
|
@ -4,21 +4,38 @@ import android.content.Context
|
|||||||
import android.util.AttributeSet
|
import android.util.AttributeSet
|
||||||
import com.reddit.indicatorfastscroll.FastScrollItemIndicator
|
import com.reddit.indicatorfastscroll.FastScrollItemIndicator
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.*
|
||||||
|
import com.simplemobiletools.commons.helpers.ContactsHelper
|
||||||
|
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS
|
||||||
import com.simplemobiletools.commons.models.SimpleContact
|
import com.simplemobiletools.commons.models.SimpleContact
|
||||||
|
import com.simplemobiletools.dialer.R
|
||||||
import com.simplemobiletools.dialer.activities.SimpleActivity
|
import com.simplemobiletools.dialer.activities.SimpleActivity
|
||||||
import com.simplemobiletools.dialer.adapters.ContactsAdapter
|
import com.simplemobiletools.dialer.adapters.ContactsAdapter
|
||||||
import com.simplemobiletools.dialer.extensions.config
|
import com.simplemobiletools.dialer.extensions.config
|
||||||
import kotlinx.android.synthetic.main.fragment_letters_layout.view.*
|
import kotlinx.android.synthetic.main.fragment_letters_layout.view.*
|
||||||
import kotlinx.android.synthetic.main.fragment_recents.view.*
|
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet) {
|
class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet) {
|
||||||
override fun setupFragment() {
|
override fun setupFragment() {
|
||||||
|
val placeholderResId = if (context.hasPermission(PERMISSION_READ_CONTACTS)) {
|
||||||
|
R.string.no_contacts_found
|
||||||
|
} else {
|
||||||
|
R.string.could_not_access_contacts
|
||||||
|
}
|
||||||
|
|
||||||
|
fragment_placeholder.text = context.getString(placeholderResId)
|
||||||
|
|
||||||
|
val placeholderActionResId = if (context.hasPermission(PERMISSION_READ_CONTACTS)) {
|
||||||
|
R.string.create_new
|
||||||
|
} else {
|
||||||
|
R.string.request_access
|
||||||
|
}
|
||||||
|
|
||||||
fragment_placeholder_2.apply {
|
fragment_placeholder_2.apply {
|
||||||
|
text = context.getString(placeholderActionResId)
|
||||||
setTextColor(context.config.primaryColor)
|
setTextColor(context.config.primaryColor)
|
||||||
underlineText()
|
underlineText()
|
||||||
setOnClickListener {
|
setOnClickListener {
|
||||||
|
requestReadContactsPermission()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,4 +73,19 @@ class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPag
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun requestReadContactsPermission() {
|
||||||
|
activity?.handlePermission(PERMISSION_READ_CONTACTS) {
|
||||||
|
if (it) {
|
||||||
|
fragment_placeholder.text = context.getString(R.string.no_contacts_found)
|
||||||
|
fragment_placeholder_2.text = context.getString(R.string.create_new)
|
||||||
|
|
||||||
|
ContactsHelper(context).getAvailableContacts { contacts ->
|
||||||
|
activity?.runOnUiThread {
|
||||||
|
refreshContacts(contacts)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import com.simplemobiletools.commons.extensions.*
|
|||||||
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CALL_LOG
|
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CALL_LOG
|
||||||
import com.simplemobiletools.dialer.R
|
import com.simplemobiletools.dialer.R
|
||||||
import com.simplemobiletools.dialer.extensions.config
|
import com.simplemobiletools.dialer.extensions.config
|
||||||
|
import com.simplemobiletools.dialer.helpers.RecentsHelper
|
||||||
import com.simplemobiletools.dialer.models.RecentCall
|
import com.simplemobiletools.dialer.models.RecentCall
|
||||||
import kotlinx.android.synthetic.main.fragment_recents.view.*
|
import kotlinx.android.synthetic.main.fragment_recents.view.*
|
||||||
|
|
||||||
@ -18,12 +19,11 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
|
|||||||
}
|
}
|
||||||
|
|
||||||
recents_placeholder.text = context.getString(placeholderResId)
|
recents_placeholder.text = context.getString(placeholderResId)
|
||||||
|
|
||||||
recents_placeholder_2.apply {
|
recents_placeholder_2.apply {
|
||||||
setTextColor(context.config.primaryColor)
|
setTextColor(context.config.primaryColor)
|
||||||
underlineText()
|
underlineText()
|
||||||
setOnClickListener {
|
setOnClickListener {
|
||||||
|
requestCallLogPermission()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -39,4 +39,19 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
|
|||||||
recents_list.beVisible()
|
recents_list.beVisible()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun requestCallLogPermission() {
|
||||||
|
activity?.handlePermission(PERMISSION_READ_CALL_LOG) {
|
||||||
|
if (it) {
|
||||||
|
recents_placeholder.text = context.getString(R.string.no_previous_calls)
|
||||||
|
recents_placeholder_2.beGone()
|
||||||
|
|
||||||
|
RecentsHelper(context).getRecentCalls { recents ->
|
||||||
|
activity?.runOnUiThread {
|
||||||
|
updateRecents(recents)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
<string name="app_name">Simple Dialer</string>
|
<string name="app_name">Simple Dialer</string>
|
||||||
<string name="app_launcher_name">Dialer</string>
|
<string name="app_launcher_name">Dialer</string>
|
||||||
|
|
||||||
|
<!-- Contacts -->
|
||||||
|
<string name="could_not_access_contacts">Could not access your contacts</string>
|
||||||
|
|
||||||
<!-- Recents -->
|
<!-- Recents -->
|
||||||
<string name="no_previous_calls">No previous calls have been found</string>
|
<string name="no_previous_calls">No previous calls have been found</string>
|
||||||
<string name="could_not_access_the_call_history">Could not access the call history</string>
|
<string name="could_not_access_the_call_history">Could not access the call history</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user