Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Типизированный презентер #261

Open
Everhustle opened this issue Jul 27, 2019 · 1 comment
Open

Типизированный презентер #261

Everhustle opened this issue Jul 27, 2019 · 1 comment

Comments

@Everhustle
Copy link

Everhustle commented Jul 27, 2019

Объявление моего презентера выглядит вот так:


class SearchPresenter<T>(val network: Network) : BasePresenter<SearchView<T>>() {
//pass
}

T - data clas который будет передан. Т может иметь один из 5 типов data class не имеющих общих предков.
Тип data class известен только фрагменту, который инстанциирует этот презентер.

Вот так работаю с презентером в одном из фрагментов

class SearchNewsFragment : SearchBaseFragment(), NewsView<NewsShortEntity> {
 
    @InjectPresenter
    lateinit var presenter: SearchPresenter<NewsShortEntity>

  @ProvidePresenter
    fun provideSearchPresenter(): SearchPresenter<NewsShortEntity> {
        return SearchPresenter(network)
    }


Интерфейс:


interface NewsView<T> : SearchView<T> {
//pass
}

При сборке получаю

error: You can not use @InjectPresenter in classes that are not View, which is typified target Presenter
public SearchPresenter<ru.x5.ideal.entity.KnowledgebaseCategoryEntity.KnowledgebaseShortEntity> presenter;

Как победить?

@ReCursia
Copy link

ReCursia commented Aug 2, 2019

Насколько я понял интерфейс SearchView должен расширять интерфейс MvpView, если это не так, возможно проблема кроется в этом

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants