11package com.simplemobiletools.contacts.activities
22
3- import android.Manifest
43import android.app.SearchManager
54import android.content.Context
65import android.content.Intent
76import android.graphics.drawable.ColorDrawable
87import android.net.Uri
98import android.os.Bundle
109import android.os.Handler
11- import android.support.v4.app.ActivityCompat
1210import android.support.v4.view.MenuItemCompat
1311import android.support.v4.view.ViewPager
1412import android.support.v7.widget.SearchView
@@ -41,10 +39,6 @@ import kotlinx.android.synthetic.main.fragment_recents.*
4139import java.io.FileOutputStream
4240
4341class MainActivity : SimpleActivity (), RefreshContactsListener {
44- // just some random constants
45- private val GET_ACCOUNTS_PERMISSION = 34
46- private val WRITE_CALL_LOG_PERMISSION = 35
47-
4842 private var isSearchOpen = false
4943 private var searchMenuItem: MenuItem ? = null
5044 private var werePermissionsHandled = false
@@ -70,29 +64,36 @@ class MainActivity : SimpleActivity(), RefreshContactsListener {
7064 // just get a reference to the database to make sure it is created properly
7165 dbHelper
7266
67+ handlePermission(PERMISSION_READ_CALL_LOG ) {
68+ if (it) {
69+ handlePermission(PERMISSION_WRITE_CALL_LOG ) {
70+ checkContactPermissions()
71+ }
72+ } else {
73+ checkContactPermissions()
74+ }
75+
76+ }
77+ storeStateVariables()
78+ checkWhatsNewDialog()
79+ }
80+
81+ private fun checkContactPermissions () {
7382 handlePermission(PERMISSION_READ_CONTACTS ) {
7483 werePermissionsHandled = true
7584 if (it) {
7685 handlePermission(PERMISSION_WRITE_CONTACTS ) {
7786 // workaround for upgrading from version 3.x to 4.x as we added a new permission from an already granted permissions group
78- if (! hasPermission(PERMISSION_GET_ACCOUNTS )) {
79- ActivityCompat .requestPermissions(this , arrayOf(Manifest .permission.GET_ACCOUNTS ), GET_ACCOUNTS_PERMISSION )
80- }
81-
82- if (! hasPermission(PERMISSION_WRITE_CALL_LOG )) {
83- ActivityCompat .requestPermissions(this , arrayOf(Manifest .permission.WRITE_CALL_LOG ), WRITE_CALL_LOG_PERMISSION )
87+ handlePermission(PERMISSION_GET_ACCOUNTS ) {
88+ storeLocalAccountData()
89+ initFragments()
8490 }
85-
86- storeLocalAccountData()
87- initFragments()
8891 }
8992 } else {
9093 storeLocalAccountData()
9194 initFragments()
9295 }
9396 }
94- storeStateVariables()
95- checkWhatsNewDialog()
9697 }
9798
9899 override fun onResume () {
0 commit comments