Я разрабатываю приложение для Android, в котором я должен запрашивать разрешения во время выполнения. Мне интересно, как наилучшим образом реализовать это с помощью архитектуры Model-View-Presenter.Каков наилучший способ проверки разрешений во время выполнения с использованием архитектуры MVP?
Моя первоначальная мысль заключалась в том, что ведущий вызывал компонент, отвечающий за разрешения (например, PermissionHandler
), и соответственно обновляйте представление.
Проблема в том, что код для проверки разрешений тесно связан с классом Activity. Вот некоторые из методов, участвующих, которые требуют активности или контекста:
ContextCompat.checkSelfPermission()
ActivityCompat.shouldShowRequestPermissionRationale()
ActivityCompat.requestPermissions()
onRequestPermissionsResult()
(обратный вызов)
Это означает, что я должен был бы пройти объект активности для ведущего, которого мне не очень понравилось, потому что я слышал, что держать презентатора бесплатно от кода Android хорошо для testin г.
В связи с этим я тогда подумал о том, как обращаться с разрешениями на уровне представления (в действии), но тогда я предполагаю, что это повредит цели оставлять представление ответственным только за обновления пользовательского интерфейса без бизнес-логики.
Я не уверен, что было бы лучшим подходом к решению проблемы с тем, чтобы код был как можно более разборчивым и поддерживаемым. Есть идеи?
Будет ли этот подход безопасным? Разве это не приведет к утечке памяти? – fobo66