Чистая архитектура и единый поставщик местоположенийAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Чистая архитектура и единый поставщик местоположений

Сообщение Anonymous »

Я пытаюсь интегрировать библиотеку com.google.android.gms.location в свой проект, который в значительной степени ориентирован на чистую архитектуру.
Я понимаю, как все складывается воедино на уровне данных и как я могу вернуть данные о местоположении через домен в презентацию, но я хотел бы также использовать эту функцию:

Код: Выделить всё

settingsClient.checkLocationSettings(locationSettingsRequest)
Проблема связана с веткой addOnFailureListener: ResolvableApiException повторяется с PendingIntent, который должен быть передан в RegisterForActivityResult, но все это все находится на уровне данных.
Я не могу передать Intent как объект Any в домен, а затем вернуть его обратно, потому что это похоже на мошенничество.< /p>
Насколько я знаю, я не могу сделать то же самое, чтобы показать уведомление о включении местоположения в приложении, и после нажатия «Да» оно это сделает (как на картах Google).
Насколько я знаю, я не могу сделать то же самое, чтобы показать уведомление о включении местоположения в приложении, и после нажатия «Да» оно это сделает (как на картах Google).
p>
Пока код

Код: Выделить всё

class LocationTracking @Inject constructor(
private val fusedLocationProviderClient: FusedLocationProviderClient,
private val settingsClient: SettingsClient,
private val locationManager: LocationManager?,
) : LocationTracking {

override suspend fun isLocationTrackingReady() = suspendCancellableCoroutine { continuation ->
settingsClient.checkLocationSettings(locationSettingsRequest)
.addOnSuccessListener {
continuation.resume(Result.Success(true))
}
.addOnFailureListener {
val isGpsEnabled =
locationManager?.isProviderEnabled(LocationManager.GPS_PROVIDER) ?: false

val isNetworkEnabled =
locationManager?.isProviderEnabled(LocationManager.NETWORK_PROVIDER) ?: false

if (it is ResolvableApiException) {
Log.d("LOG", "LOG ${it.resolution}")
}

continuation.resumeWithException(it)
}
}

private companion object {
private val locationRequest = LocationRequest.Builder(
Priority.PRIORITY_BALANCED_POWER_ACCURACY,
2000L
).build()

private val locationSettingsRequest = LocationSettingsRequest.Builder()
.addLocationRequest(locationRequest)
.build()
}

}
Уровень домена не должен включать библиотеку Google
Архитектура является наиболее распространенной
презентация (android) -> домен (kotlin )

Подробнее здесь: https://stackoverflow.com/questions/791 ... n-provider
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»