|
|
|
@ -89,15 +89,12 @@ abstract class BaseActivity : AppCompatActivity() { |
|
|
|
when (requestCode) { |
|
|
|
when (requestCode) { |
|
|
|
PERMISSION_REQUEST_ACCESS_FINE_LOCATION -> { |
|
|
|
PERMISSION_REQUEST_ACCESS_FINE_LOCATION -> { |
|
|
|
if (permissions.isNotEmpty() && permissions[0] == ACCESS_FINE_LOCATION |
|
|
|
if (permissions.isNotEmpty() && permissions[0] == ACCESS_FINE_LOCATION |
|
|
|
&& grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED |
|
|
|
&& grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) { |
|
|
|
) { |
|
|
|
|
|
|
|
permissionCallback?.invoke(true) |
|
|
|
permissionCallback?.invoke(true) |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
permissionCallback?.invoke(false) |
|
|
|
permissionCallback?.invoke(false) |
|
|
|
// permission denied, boo! Disable the |
|
|
|
|
|
|
|
// functionality that depends on this permission. |
|
|
|
|
|
|
|
// showMessage(getString(R.string.error)); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
this.permissionCallback = null |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -107,6 +104,7 @@ abstract class BaseActivity : AppCompatActivity() { |
|
|
|
val allPermissionsPresent = permissions.all { request.permissions.contains(it) } |
|
|
|
val allPermissionsPresent = permissions.all { request.permissions.contains(it) } |
|
|
|
val allGranted = grantResults.all { it == PackageManager.PERMISSION_GRANTED } |
|
|
|
val allGranted = grantResults.all { it == PackageManager.PERMISSION_GRANTED } |
|
|
|
request.callback.invoke(allPermissionsPresent && allGranted) |
|
|
|
request.callback.invoke(allPermissionsPresent && allGranted) |
|
|
|
|
|
|
|
this.permissionRequest = null |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -145,6 +143,14 @@ abstract class BaseActivity : AppCompatActivity() { |
|
|
|
return ContextCompat.checkSelfPermission(this, ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED |
|
|
|
return ContextCompat.checkSelfPermission(this, ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Ask for app permission |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
fun askForPermission(permissions: Array<String>, requestCode: Int, permissionCallback: ((granted: Boolean) -> Unit)) { |
|
|
|
|
|
|
|
this.permissionRequest = PermissionRequest(permissions, permissionCallback, requestCode) |
|
|
|
|
|
|
|
ActivityCompat.requestPermissions(this, permissions, requestCode) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Ask for location permission |
|
|
|
* Ask for location permission |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@ -155,24 +161,6 @@ abstract class BaseActivity : AppCompatActivity() { |
|
|
|
) |
|
|
|
) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Ask for places request |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
// fun askForPlacesRequest(callback: ((success: Boolean, places: ArrayList<PlaceLikelihood>) -> Unit)?) { |
|
|
|
|
|
|
|
// // Call findCurrentPlace and handle the response (first check that the user has granted permission). |
|
|
|
|
|
|
|
// if (ContextCompat.checkSelfPermission(this, ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) { |
|
|
|
|
|
|
|
// LocationManager(this).askForPlacesRequest(callback) |
|
|
|
|
|
|
|
// } else { |
|
|
|
|
|
|
|
// askForLocationPermission { granted -> |
|
|
|
|
|
|
|
// if (granted) { |
|
|
|
|
|
|
|
// LocationManager(this).askForPlacesRequest(callback) |
|
|
|
|
|
|
|
// } else { |
|
|
|
|
|
|
|
// callback?.invoke(false, ArrayList()) |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Find the nearest location from the user |
|
|
|
* Find the nearest location from the user |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
@ -194,14 +182,6 @@ abstract class BaseActivity : AppCompatActivity() { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Ask for app permission |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
fun askForPermission(permissions: Array<String>, requestCode: Int, permissionCallback: ((granted: Boolean) -> Unit)) { |
|
|
|
|
|
|
|
this.permissionRequest = PermissionRequest(permissions, permissionCallback, requestCode) |
|
|
|
|
|
|
|
ActivityCompat.requestPermissions(this, permissions, requestCode) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Find the current location |
|
|
|
* Find the current location |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
|