Commit 4d0a9bdf authored by Vladislav Bogdashkin's avatar Vladislav Bogdashkin 🎣

Merge branch 'feature/api_update' into develop

parents 7fcc5468 0990432a
......@@ -6,7 +6,6 @@ import com.biganto.visual.roompark.data.repository.db.requrey.model.ArticleEntit
import com.biganto.visual.roompark.data.repository.mapper.fromRaw
import com.biganto.visual.roompark.data.repository.mapper.fromRawList
import com.biganto.visual.roompark.domain.contract.FeedsContract
import com.biganto.visual.roompark.domain.custom_exception.CustomApiException
import com.biganto.visual.roompark.domain.model.ArticleModel
import com.biganto.visual.roompark.domain.model.ArticlesPreviewModel
import com.biganto.visual.roompark.domain.model.FeedModel
......@@ -31,11 +30,11 @@ class FeedsContractModule @Inject constructor(
override fun fetchFeeds(): Observable<List<FeedModel>> =
fetchAllFeeds().doOnError (::e)
override fun fetchFeedObservable(id: Int): Observable<ArticlesPreviewModel> =
fetchArticles(id)
override fun fetchFeedObservable(feedAlias: String): Observable<ArticlesPreviewModel> =
fetchArticles(feedAlias)
override fun fetchFeedObservable(id: Int,pageSize:Int, startIndex:Int)
: Observable<ArticlesPreviewModel> = fetchArticles(id,pageSize,startIndex)
override fun fetchFeedObservable(feedAlias: String,pageSize:Int, startIndex:Int)
: Observable<ArticlesPreviewModel> = fetchArticles(feedAlias,pageSize,startIndex)
override fun getArticle(id: Int): Observable<ArticleModel> =
fetchArticle(id)
......@@ -45,44 +44,36 @@ class FeedsContractModule @Inject constructor(
}
private fun fetchArticlessApi(feedId:Int,pageSize:Int, startIndex:Int): Observable<List<ArticleEntity>>? {
val feed = db.getFeed(feedId).firstOrNull()
if (feed == null) {
e("Unknown feedId: $feedId - cann't resolve feed_alias!")
throw CustomApiException.UnknownCustomApiException(-1,null,"Unknown Feed!")
}
else {
return api.getArticlesPage(
feed.alias
, pageSize
, floor(startIndex.toDouble()/pageSize.toDouble()).toInt()+1)
private fun fetchArticlessApi(feedAlias:String,pageSize:Int, startIndex:Int)
: Observable<List<ArticleEntity>>? =api.getArticlesPage(
feedAlias
,pageSize
,floor(startIndex.toDouble()/pageSize.toDouble()).toInt()+1
)
.doOnNext { Timber.d("raw0 $it") }
.map { it.items }
.map { fromRaw(it, feedId) }
.map { fromRaw(it, feedAlias) }
.doOnNext { Timber.d("raw enitites $it") }
.doOnNext(db::blockingUpsert)
.subscribeOn(Schedulers.io())
}
}
private fun fetchArticlesDb(feedId:Int,pageSize:Int, startIndex:Int): Observable<MutableList<ArticleEntity>>? {
val feed = db.getFeed(feedId).firstOrNull()
Timber.d("db startindex: $startIndex")
if (feed == null) {
e("Unknown feedId: $feedId - cann't resolve feed_alias!")
throw CustomApiException.UnknownCustomApiException(-1, null, "Unknown Feed!")
} else return db.fetchArticles(feed.alias, pageSize, startIndex)
private fun fetchArticlesDb(feedAlias: String,pageSize:Int, startIndex:Int)
: Observable<MutableList<ArticleEntity>>? =
db.fetchArticles(feedAlias, pageSize, startIndex)
.toList()
.toObservable()
.doOnNext { Timber.d("db items: ${it.size}") }
.subscribeOn(Schedulers.io())
}
private fun fetchArticles(feedId:Int,pageSize:Int = 10, startIndex:Int = 0): Observable<ArticlesPreviewModel> =
private fun fetchArticles(feedAlias: String,pageSize:Int = 10, startIndex:Int = 0)
: Observable<ArticlesPreviewModel> =
Observable.mergeDelayError(
arrayListOf(fetchArticlessApi(feedId,pageSize,startIndex),fetchArticlesDb(feedId,pageSize,startIndex))
).map { fromEntity(feedId,it) }
arrayListOf(fetchArticlessApi(feedAlias,pageSize
,startIndex),fetchArticlesDb(feedAlias,pageSize,startIndex)
)
).map { fromEntity(feedAlias,it) }
private val fetchFeedsApi =
......@@ -106,10 +97,7 @@ class FeedsContractModule @Inject constructor(
private fun fetchArticleApi(id:Int) =
api.getArticle(id)
.doOnNext { Timber.d("raw0 $it") }
.flatMap {article ->
db.getFeed(article.feed_alias).observable()
.map { fromRaw(article,it.id) }
}
.map ( ::fromRaw )
.flatMap { article ->
db.getArticle(article.id).observable()
.map { articleEntity ->
......
......@@ -40,12 +40,13 @@ interface IRoomParkApi {
showElectric: Boolean
): Observable<String>
fun getMultiTour(building: Int, flat: Int): Observable<List<PlanRaw>>
fun getMultiTour(building: Int, flat: Int): Observable<Int>
fun getArticlesPage(feedName:String,
pageSize:Int = DEFAULT_ARTICLE_PAGE_SIZE,
page:Int): Observable<ArticlesListPaginationRaw>
fun getAlbums(parentId: Int? = null): Observable<List<ImageAlbumRaw>>
fun getEstate(building: Int, flat: Int): Observable<EstateRaw>
}
......
......@@ -127,6 +127,13 @@ interface IRoomParkMobileApi{
//endregion
//region Get Estate
const val GET_ESTATE_ID="estates.getEstate"
const val ESTATE_BUILDING_NUMBER_PARAM="building "
const val ESTATE_FLAT_NUMBER_PARAM="number "
//endregion
}
......@@ -248,6 +255,7 @@ interface IRoomParkMobileApi{
): Observable<Response<String>>
@Deprecated("change to estates.getEstate method as more common")
@GET("$API_URL$GET_MULTITOUR_ID$DELIMITER")
fun getMultiTourId(
@Query(CLIENT_TYPE_PARAM) clientType: String = DEFAULT_CLIENT_TYPE,
......@@ -255,7 +263,16 @@ interface IRoomParkMobileApi{
@Query(API_VERSION_PARAM) apiVersion: String = DEFAULT_API_VERSION,
@Query(MULTITOUR_BUILDING_NUMBER_PARAM) building:Int,
@Query(MULTITOUR_FLAT_NUMBER_PARAM) flatNumber:Int
): Observable<Response<List<PlanRaw>>>
): Observable<Response<Int>>
@GET("$API_URL$GET_ESTATE_ID$DELIMITER")
fun getEstate(
@Query(CLIENT_TYPE_PARAM) clientType: String = DEFAULT_CLIENT_TYPE,
@Query(CLIENT_VERSION_PARAM) clientVersion: String = DEFAULT_CLIENT_VERSION,
@Query(API_VERSION_PARAM) apiVersion: String = DEFAULT_API_VERSION,
@Query(ESTATE_BUILDING_NUMBER_PARAM) building:Int,
@Query(ESTATE_FLAT_NUMBER_PARAM) flatNumber:Int
): Observable<Response<EstateRaw>>
}
\ No newline at end of file
......@@ -107,13 +107,22 @@ class RetrofitRepository @Inject constructor(retrofit: Retrofit) : IRoomParkApi
)
.compose(RetrofitResponseValidation())
override fun getMultiTour(building: Int, flat: Int): Observable<List<PlanRaw>> =
@Deprecated("hidden by states.getEstate method")
override fun getMultiTour(building: Int, flat: Int): Observable<Int> =
api.getMultiTourId(
building = building,
flatNumber = flat
)
.compose(RetrofitResponseValidation())
override fun getEstate(building: Int, flat: Int): Observable<EstateRaw> =
api.getEstate(
building = building,
flatNumber = flat
)
.compose(RetrofitResponseValidation())
}
enum class PlanTypeCatalog(val planId:Int, val planName:String ){
......
......@@ -74,7 +74,6 @@ data class EstateRoomRaw(
)
data class FeedRaw(
val id:Int,
val alias:String,
val title:String
)
......@@ -99,6 +98,8 @@ data class ArticleRaw(
val id : Int,
val published : Date,
val title : String,
val announce: String,
val preview: String?,
val body : String,
val feed_alias : String,
val photo : List<NewsPhotoRaw>?
......@@ -157,3 +158,15 @@ data class AppVersionRaw(
val critical : Boolean,
val errors : List<ErrorRaw>?
)
data class WebCamRaw(
val id:Int,
val title:String,
val Streams:List<StreamRaw>
)
data class StreamRaw(
val res_name:String,
val hls:String,
val rtmp:String
)
\ No newline at end of file
......@@ -18,7 +18,6 @@ interface IDb {
fun <T : List<Persistable>> blockingUpsert(entity: T)
fun userObservableResult(uuid: Int): Observable<ReactiveResult<UserEntity>>
fun fetchArticles(feedAlias: String, pageSize: Int, startIndex: Int): Observable<ArticleEntity>
fun getFeed(feedId: Int): ReactiveResult<FeedEntity>
fun getTopLevelAlbums(): Observable<ImageAlbumEntity>
fun getChildAlbums(parentId: Int): Observable<ImageAlbumEntity>
fun checkIfExistsAlbumJunction(albumId: Int, parentAlbumId: Int): ImageAlbumJunctionEntity?
......
......@@ -63,10 +63,6 @@ class RequeryRepository @Inject constructor(
override fun fetchFeeds(): Observable<FeedEntity> =
fetchAll<FeedEntity>().get().observable()
override fun getFeed(feedId:Int): ReactiveResult<FeedEntity> =
fetchAll<FeedEntity>().where(FeedEntity.ID.eq(feedId))
.get()
override fun getFeed(feedAlias:String): ReactiveResult<FeedEntity> =
fetchAll<FeedEntity>().where(FeedEntity.ALIAS.eq(feedAlias))
.get()
......@@ -89,7 +85,7 @@ class RequeryRepository @Inject constructor(
override fun fetchArticles(feedAlias:String,pageSize:Int,startIndex:Int)
: Observable<ArticleEntity> =
fetchAll<ArticleEntity>()
.where(ArticleEntity.FEED_ID.eq(1))
.where(ArticleEntity.FEED_ID.eq(feedAlias))
.orderBy(ArticleEntity.PUBLISHED.desc())
.limit(pageSize)
.offset(startIndex)
......
......@@ -22,7 +22,7 @@ interface Article : Persistable {
val preview : String?
@get:Nullable
val body : String?
@get:ForeignKey(references = Feed::class, referencedColumn = "id")
@get:ForeignKey(references = Feed::class, referencedColumn = "alias")
@get:ManyToOne(cascade = [CascadeAction.NONE])
val feed : Feed?
@get:Convert(TitledPhotoListConverter::class)
......
......@@ -9,11 +9,9 @@ import io.requery.*
@Entity
interface Feed : Persistable {
@get:Key
val id: Int
val title:String
val alias: String
val title:String
@get:JunctionTable(name= "FeedArticlesRule")
@get:OneToMany( cascade = [CascadeAction.DELETE])
val articles:Set<Article>?
......
......@@ -27,7 +27,6 @@ fun fromRaw(raw: AuthRaw) : UserEntity {
fun fromRaw(raw:FeedRaw) : FeedEntity {
val entity = FeedEntity()
entity.setId(raw.id)
entity.setTitle(raw.title)
entity.setAlias(raw.alias)
return entity
......@@ -36,9 +35,12 @@ fun fromRaw(raw:FeedRaw) : FeedEntity {
fun fromRaw(raw:ArticleRaw) : ArticleEntity {
val entity = ArticleEntity()
entity.setId(raw.id)
entity.setPublished(raw.published)
entity.setTitle(raw.title)
entity.setBody(raw.body)
entity.setPreview(raw.feed_alias)
entity.setAnnounce(raw.announce)
entity.setPreview(raw.preview)
raw.photo?.let {entity.photo = fromRawList(it, ::fromRaw)}
val feed = FeedEntity()
feed.setAlias(raw.feed_alias)
entity.setFeed(feed)
......@@ -47,7 +49,7 @@ fun fromRaw(raw:ArticleRaw) : ArticleEntity {
}
fun fromRaw(raw:NewsArticleRaw,feedId:Int):ArticleEntity{
fun fromRaw(raw:NewsArticleRaw,feedAlias:String):ArticleEntity{
val entity = ArticleEntity()
entity.setId(raw.id)
entity.setPreview(raw.preview)
......@@ -55,31 +57,12 @@ fun fromRaw(raw:NewsArticleRaw,feedId:Int):ArticleEntity{
entity.setPublished(raw.published)
entity.setTitle(raw.title)
val feed = FeedEntity()
feed.setId(feedId)
// feed.setAlias(feedAlias)
feed.setAlias(feedAlias)
entity.setFeed(feed)
return entity
}
fun fromRaw(raw:ArticleRaw,feedId: Int):ArticleEntity{
val entity = ArticleEntity()
entity.setId(raw.id)
entity.setPublished(raw.published)
entity.setTitle(raw.title)
entity.setBody(raw.body)
raw.photo?.let {
entity.photo = fromRawList(it,::fromRaw)
}
val feed = FeedEntity()
feed.setId(feedId)
// feed.setAlias(raw.feed_alias)
entity.setFeed(feed)
return entity
}
fun fromRaw(raw:NewsPhotoRaw):TitledPhoto{
return TitledPhoto(raw.title,raw.url)
}
......@@ -99,7 +82,7 @@ fun fromRaw(raw:ImageAlbumRaw) : ImageAlbumEntity {
fun <E,M> fromRawList(raw: List<E>,block:(E)->M):List<M> = List(raw.size) { index-> block(raw[index]) }
fun fromRaw(raw: List<NewsArticleRaw>,feedId:Int):List<ArticleEntity> =
List(raw.size) { index-> fromRaw(raw[index],feedId) }
fun fromRaw(raw: List<NewsArticleRaw>,feedAlias:String):List<ArticleEntity> =
List(raw.size) { index-> fromRaw(raw[index],feedAlias) }
val calcTargetResolution = max(display.widthPixels,display.heightPixels)
......@@ -21,7 +21,7 @@ const val ESTATES_CACHE_LIMIT_SECONDS_INACTIVE = 200L
const val FILES_CACHE_LIMIT_SIZE = 10000
const val FILES_CACHE_LIMIT_SECONDS_INACTIVE = 60L
const val DATABASE_VERSION = 7
const val DATABASE_VERSION = 8
@Module
abstract class AppModule{
......
......@@ -26,15 +26,12 @@ interface DataComponent{
@Module(includes = [DataModule::class, RetrofitModule::class, DbModule::class,LocalStorage::class])
abstract class ContractRepositoryModule {
@Singleton
@Binds
abstract fun provideAuth(contract:AuthContractModule):AuthContract
@Singleton
@Binds
abstract fun provideFeedsContract(impl: FeedsContractModule): FeedsContract
@Singleton
@Binds
abstract fun provideDevProgressContract(impl: AlbumsContractModule): DevProgressContract
}
......
......@@ -13,10 +13,11 @@ interface FeedsContract{
fun fetchFeeds(): Observable<List<FeedModel>>
fun getArticle(id:Int): Observable<ArticleModel>
fun fetchFeedObservable(id: Int): Observable<ArticlesPreviewModel>
fun fetchFeedObservable(
id: Int,
feedAlias: String,
pageSize: Int,
startIndex: Int
): Observable<ArticlesPreviewModel>
fun fetchFeedObservable(feedAlias: String): Observable<ArticlesPreviewModel>
}
\ No newline at end of file
......@@ -11,11 +11,11 @@ import javax.inject.Inject
class ArticlesInteractor @Inject constructor(
) {
fun fetchArticles(feedId: Int): Single<ArticlesPreviewModel> = Single.just(
when (feedId) {
1 -> FeedsInteractor.testNewsArticles
2 -> FeedsInteractor.testBlogsArticles
3 -> FeedsInteractor.testDevArticles
fun fetchArticles(feedAlias: String): Single<ArticlesPreviewModel> = Single.just(
when (feedAlias) {
"news" -> FeedsInteractor.testNewsArticles
"blog" -> FeedsInteractor.testBlogsArticles
"constructors_blog" -> FeedsInteractor.testDevArticles
else -> error("unknown feedId")
}
)
......
......@@ -20,8 +20,8 @@ class FeedsInteractor @Inject constructor(
feedsUseCase.getFeeds().map {FeedsHeaderModel(it)}
//Single.just(testFeeds)
fun fetchArticles(feedId: Int): Observable<ArticlesPreviewModel> =
feedsUseCase.getArticles(feedId)
fun fetchArticles(feedAlias:String): Observable<ArticlesPreviewModel> =
feedsUseCase.getArticles(feedAlias)
// Single.just(
// when (feedId) {
// 1 -> testNewsArticles
......@@ -30,8 +30,8 @@ class FeedsInteractor @Inject constructor(
// else -> error("unknown feedId")
// }
// )
fun fetchArticles(feedId: Int,pageSize:Int,startIndex:Int): Observable<ArticlesPreviewModel> =
feedsUseCase.fetchArticlesPage(feedId,pageSize,startIndex)
fun fetchArticles(feedAlias:String,pageSize:Int,startIndex:Int): Observable<ArticlesPreviewModel> =
feedsUseCase.fetchArticlesPage(feedAlias,pageSize,startIndex)
fun fetchAlbums(): Observable<List<AlbumPreviewModel>> = albumsUseCase.getProgressAlbums()
......@@ -50,14 +50,15 @@ class FeedsInteractor @Inject constructor(
val testFeeds = FeedsHeaderModel(
listOf(
FeedModel(1, "НОВОСТИ"),
FeedModel(2, "БЛОГИ"),
FeedModel(2, "БЛОГ СТРОИТЕЛЬСТВА")
FeedModel(
"news", "НОВОСТИ"),
FeedModel("news", "БЛОГИ"),
FeedModel("news", "БЛОГ СТРОИТЕЛЬСТВА")
)
)
val testNewsArticles = ArticlesPreviewModel(
1,
"news",
listOf(
ArticlePreviewModel(
1
......@@ -87,7 +88,7 @@ class FeedsInteractor @Inject constructor(
)
val testBlogsArticles = ArticlesPreviewModel(
2,
"news",
listOf(
ArticlePreviewModel(
1
......@@ -117,7 +118,7 @@ class FeedsInteractor @Inject constructor(
)
val testDevArticles = ArticlesPreviewModel(
3,
"news",
listOf(
ArticlePreviewModel(
1
......
......@@ -11,7 +11,7 @@ import java.util.*
const val DEFAULT_ROOM_PARK_PREVIEW = "https://room-park.ru/assets/news_articles/preview/00/00/00/15-fe1886.jpeg"
data class FeedModel(val feedId:Int, val title:String, val alias:String? = null)
data class FeedModel(val title:String, val alias:String)
data class FeedsHeaderModel(val feeds:List<FeedModel>)
......@@ -30,7 +30,7 @@ data class ArticlePreviewModel(
}
}
data class ArticlesPreviewModel(val parentFeedId:Int,val articles:List<ArticlePreviewModel>)
data class ArticlesPreviewModel(val parentFeedAlias:String,val articles:List<ArticlePreviewModel>)
data class ArticleModel(
......@@ -44,7 +44,6 @@ data class ArticleModel(
)
fun fromEntity(entity: FeedEntity):FeedModel = FeedModel(
feedId = entity.id,
title = entity.title,
alias = entity.alias
)
......@@ -58,9 +57,9 @@ fun fromEntity(entity: ArticleEntity):ArticlePreviewModel = ArticlePreviewModel(
isRead = false
)
fun fromEntity(parentId:Int,entity: List<ArticleEntity>):ArticlesPreviewModel =
fun fromEntity(parentId:String,entity: List<ArticleEntity>):ArticlesPreviewModel =
ArticlesPreviewModel(
parentFeedId = parentId,
parentFeedAlias = parentId,
articles = fromEntity(entity,::fromEntity)
)
......
......@@ -12,11 +12,11 @@ class FeedUseCase @Inject constructor(
){
fun getFeeds() = contract.fetchFeeds()
fun getArticles(feedId:Int) =
contract.fetchFeedObservable(feedId)
fun getArticles(feedAlias:String) =
contract.fetchFeedObservable(feedAlias)
fun fetchArticlesPage(feedId:Int,pageSize:Int,startIndex:Int) =
contract.fetchFeedObservable(feedId,pageSize,startIndex)
fun fetchArticlesPage(feedAlias:String,pageSize:Int,startIndex:Int) =
contract.fetchFeedObservable(feedAlias,pageSize,startIndex)
fun getArticle(articleId:Int) =
......
......@@ -21,7 +21,7 @@ import javax.inject.Inject
* Created by Vladislav Bogdashkin on 30.09.2019.
*/
private const val FEED_ID = "DIRECT_FEED_ID_KEY"
const val FEED_ALIAS = "DIRECT_FEED_ID_KEY"
class ArticlesScreenController :
BigantoBaseController<ArticlesScreenViewState
......@@ -32,7 +32,7 @@ class ArticlesScreenController :
constructor()
constructor(feedId:Int):super(bundleOf(FEED_ID to feedId))
constructor(feedAlias:String):super(bundleOf(FEED_ALIAS to feedAlias))
override fun injectDependencies() {
getComponent()
......@@ -102,7 +102,7 @@ class ArticlesScreenController :
}
private fun getComponent() = DaggerArticlesScreenComponent.factory()
.create(args.getInt(FEED_ID)
.create(args.getString(FEED_ALIAS)!!
,RoomParkApplication.component,activity as RoomParkMainActivity)
.inject(this)
......
......@@ -20,7 +20,7 @@ interface ArticlesScreenComponent {
@Component.Factory
interface Factory{
fun create(
@BindsInstance @Named("FEED_ID_INT") feed:Int
@BindsInstance @Named(FEED_ALIAS) feed:String
, appComponent: AppComponent
,@BindsInstance activity: RoomParkMainActivity
): ArticlesScreenComponent
......
......@@ -15,7 +15,7 @@ import javax.inject.Named
class ArticlesScreenPresenter @Inject constructor(
@Named("FEED_ID_INT") private val feedId:Int,
@Named(FEED_ALIAS) private val feedId:String,
private val interactor: ArticlesInteractor
)
: BigantoBasePresenter<ArticlesScreen, ArticlesScreenViewState>() {
......
......@@ -12,7 +12,7 @@ import io.reactivex.Observable
*/
interface FeedsScreen : BigantoBaseContract<FeedsScreenViewState> {
fun feedsTabSelected(): Observable<Int>
fun feedsTabSelected(): Observable<String>
fun requsetsNewArticles(): Observable<Pair<FeedModel, Int>>
fun onAllFeedArticles(): Observable<FeedModel>
fun onCameraSelected(): Observable<WebCamModel>
......
......@@ -60,11 +60,11 @@ class FeedsScreenController :
.debounce (120L, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
override fun feedsTabSelected(): Observable<Int>
override fun feedsTabSelected(): Observable<String>
= feedsTabs.selections()
.debounce (200L, TimeUnit.MILLISECONDS)
.map { it.position }
.map { storedFeedsList[it].feedId }
.map { storedFeedsList[it].alias }
.observeOn(AndroidSchedulers.mainThread())
.doOnNext { allFeedArticles.text = "ВСЕ ${allFeedName(it)} →" }
......@@ -170,7 +170,7 @@ class FeedsScreenController :
private fun render(viewState: FeedsScreenViewState.ToArticlesScreen) {
router.pushController(
RouterTransaction.with(ArticlesScreenController(viewState.feedId))
RouterTransaction.with(ArticlesScreenController(viewState.feedAlias))
.popChangeHandler(FadeChangeHandler())
.pushChangeHandler(FadeChangeHandler())
)
......@@ -201,7 +201,7 @@ class FeedsScreenController :
private fun render(viewState: FeedsScreenViewState.SomeError) =
showError(viewState.exception)
private fun allFeedName(feedId:Int) = if (feedId==1) "НОВОСТИ" else "БЛОГИ"
private fun allFeedName(feedAlias:String) = if (feedAlias=="news") "НОВОСТИ" else "БЛОГИ"
private fun render(viewState: FeedsScreenViewState.FeedsPages){
feedsTabs.removeAllTabs()
......@@ -209,7 +209,7 @@ class FeedsScreenController :
viewState.items.forEach {feed ->
val tab = feedsTabs.newTab()
.setCustomView(R.layout.feeds_tab_view)
.setTag(feed.feedId)
.setTag(feed.alias)
tab.customView
?.let {
it.findViewById<TextView>(R.id.tab_title)?.text = feed.title
......@@ -250,7 +250,7 @@ class FeedsScreenController :
viewState.restore.feeds.forEach {feed ->
val tab = feedsTabs.newTab()
.setCustomView(R.layout.feeds_tab_view)
.setTag(feed.feedId)
.setTag(feed.alias)
tab.customView
?.let {
it.findViewById<TextView>(R.id.tab_title)?.text = feed.title
......
......@@ -70,7 +70,7 @@ class FeedsScreenPresenter @Inject constructor(
val switchToAllArtiles = intent(FeedsScreen::onAllFeedArticles)
.map<FeedsScreenViewState> {
FeedsScreenViewState.ToArticlesScreen(it.feedId)
FeedsScreenViewState.ToArticlesScreen(it.alias)
}
.onErrorReturn (::parseError)
......@@ -91,7 +91,7 @@ class FeedsScreenPresenter @Inject constructor(
val getNewArticlesPage = intent(FeedsScreen::requsetsNewArticles)
.flatMap { interactor.fetchArticles(it.first.feedId, FEED_PREVIEW_PAGE_SIZE,it.second) }
.flatMap { interactor.fetchArticles(it.first.alias, FEED_PREVIEW_PAGE_SIZE,it.second) }
.map<FeedsScreenViewState> {
restoreModel.articles = it.articles
Timber.d("arrived list: ${it.articles.size}")
......
......@@ -25,7 +25,7 @@ sealed class FeedsScreenViewState : BigantoBaseViewState() {
class SomeError(val exception: ExceptionString) : FeedsScreenViewState()
class ToArticlesScreen(val feedId:Int) : FeedsScreenViewState()
class ToArticlesScreen(val feedAlias:String) : FeedsScreenViewState()
class ToArticle(val articleId:Int) : FeedsScreenViewState()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment