mirror of
https://github.com/SimpleMobileTools/Simple-Dialer.git
synced 2025-03-14 02:10:10 +01:00
adding some permission handling
This commit is contained in:
parent
e604a3e88b
commit
d55bc9104a
@ -4,8 +4,8 @@
|
||||
package="com.simplemobiletools.dialer"
|
||||
android:installLocation="auto">
|
||||
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS"/>
|
||||
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS" />
|
||||
<uses-permission android:name="android.permission.READ_CALL_LOG" />
|
||||
|
||||
<uses-permission
|
||||
android:name="android.permission.USE_FINGERPRINT"
|
||||
|
@ -9,9 +9,7 @@ import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import androidx.viewpager.widget.ViewPager
|
||||
import com.simplemobiletools.commons.extensions.*
|
||||
import com.simplemobiletools.commons.helpers.ContactsHelper
|
||||
import com.simplemobiletools.commons.helpers.PERMISSION_GET_ACCOUNTS
|
||||
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS
|
||||
import com.simplemobiletools.commons.helpers.*
|
||||
import com.simplemobiletools.commons.models.FAQItem
|
||||
import com.simplemobiletools.dialer.BuildConfig
|
||||
import com.simplemobiletools.dialer.R
|
||||
@ -159,7 +157,7 @@ class MainActivity : SimpleActivity() {
|
||||
private fun getAllFragments() = arrayListOf(contacts_fragment)
|
||||
|
||||
private fun launchAbout() {
|
||||
val licenses = 0
|
||||
val licenses = LICENSE_GLIDE or LICENSE_INDICATOR_FAST_SCROLL
|
||||
|
||||
val faqItems = arrayListOf(
|
||||
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 com.reddit.indicatorfastscroll.FastScrollItemIndicator
|
||||
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.dialer.R
|
||||
import com.simplemobiletools.dialer.activities.SimpleActivity
|
||||
import com.simplemobiletools.dialer.adapters.ContactsAdapter
|
||||
import com.simplemobiletools.dialer.extensions.config
|
||||
import kotlinx.android.synthetic.main.fragment_letters_layout.view.*
|
||||
import kotlinx.android.synthetic.main.fragment_recents.view.*
|
||||
import java.util.*
|
||||
|
||||
class ContactsFragment(context: Context, attributeSet: AttributeSet) : MyViewPagerFragment(context, attributeSet) {
|
||||
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 {
|
||||
text = context.getString(placeholderActionResId)
|
||||
setTextColor(context.config.primaryColor)
|
||||
underlineText()
|
||||
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.dialer.R
|
||||
import com.simplemobiletools.dialer.extensions.config
|
||||
import com.simplemobiletools.dialer.helpers.RecentsHelper
|
||||
import com.simplemobiletools.dialer.models.RecentCall
|
||||
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_2.apply {
|
||||
setTextColor(context.config.primaryColor)
|
||||
underlineText()
|
||||
setOnClickListener {
|
||||
|
||||
requestCallLogPermission()
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -39,4 +39,19 @@ class RecentsFragment(context: Context, attributeSet: AttributeSet) : MyViewPage
|
||||
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_launcher_name">Dialer</string>
|
||||
|
||||
<!-- Contacts -->
|
||||
<string name="could_not_access_contacts">Could not access your contacts</string>
|
||||
|
||||
<!-- Recents -->
|
||||
<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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user