Internal-270 Feature base classes and view state#249
Conversation
| plugins { | ||
| id 'com.android.library' | ||
| id 'org.jetbrains.kotlin.android' | ||
| } | ||
|
|
||
| android { | ||
| compileSdk 31 | ||
|
|
||
| defaultConfig { | ||
| minSdk 23 |
There was a problem hiding this comment.
Скрипты уже есть в android-configs/lib_config.gradle
Можешь просто прописать apply from: "../android-configs/lib-config.gradle"
| import android.graphics.Bitmap | ||
| import java.io.File | ||
|
|
||
| interface PdfViewRepository { | ||
|
|
||
| suspend fun renderSinglePage(filePath: String, width: Int) : Bitmap | ||
|
|
||
| } No newline at end of file |
There was a problem hiding this comment.
Не совсем понятен функционал этого Repository. Не стоит вытаскивать логику рендеринга и взаимодействия с ресурсами андроида на Model-уровень
|
|
||
| abstract class BaseFragment<VM : BaseViewModel> : Fragment() { | ||
|
|
||
| abstract val viewModel: VM | ||
|
|
There was a problem hiding this comment.
Лучше использовать уже готовую реализацию фрагментов и ViewModel. Я бы посоветовал в этот модуль добавить зависимость от mvi_arch и реализовать Fragment и ViewModel, как наследников MviFragment и MviViewModel соответственно.
Можешь почитать про архитектуру вот тут - https://github.com/TouchInstinct/Styleguide/blob/master/Android/Arch3.md
| ).show() | ||
| } | ||
|
|
||
| } No newline at end of file |
There was a problem hiding this comment.
Не стоит забывать прогонять линтеры. Тут например Detekt упадет, т.к. нет пустой строчки в конце
There was a problem hiding this comment.
а можно сделать так, чтобы они сами автоматически запускались?
There was a problem hiding this comment.
Пока не вижу в этом очевидных проблем. Теоретически можно плагин натравить на каждый из модулей в робосваге. Надо немного потрогать настройки StaticAnalysisAndroidPlugin
| protected val mStateLiveData = MutableLiveData<PdfReaderViewState>() | ||
| val stateLiveData get() = mStateLiveData as LiveData<PdfReaderViewState> | ||
|
|
||
| private val viewModelCoroutineScope = CoroutineScope( |
There was a problem hiding this comment.
Так ведь есть уже viewModelScope в реализации ViewModel
https://jira.touchin.ru/browse/INTERNAL-270
Добавлен базовый функционал для дальнейшей работы с отображение PDF файлов
Добавлен функционал для конвертации файла в Bitmap для дальнейшего использования в ImageView
Необходимо реализовать базовый функционал для отображения PDF-файлов:
В итоговой реализации должен быть RecyclerView, а внутри него ImageView. Суть в том, что PDF файл надо сконвертировать в Bitmap и положить в ImageView.
На данный момент реализована базовая ViewModel для работы с состояниями: успешная успешная отрисовка, ошибка, загрузка. В BaseViewModel также добавлен функционал для работы с корутинами (скоуп и билдер)
В PdfViewModel содержатся методы:
Для конвертации в Bitmap используются методы класса PdfRenerer из android.graphics.pdf