Create presenter and view for CatalogueList

This commit is contained in:
inorichi 2015-10-11 15:48:17 +02:00
parent 18be01e4c5
commit 381bedf68d
5 changed files with 55 additions and 9 deletions

View file

@ -6,6 +6,7 @@ import javax.inject.Singleton;
import dagger.Component; import dagger.Component;
import eu.kanade.mangafeed.data.DataModule; import eu.kanade.mangafeed.data.DataModule;
import eu.kanade.mangafeed.presenter.CatalogueListPresenter;
import eu.kanade.mangafeed.presenter.CataloguePresenter; import eu.kanade.mangafeed.presenter.CataloguePresenter;
import eu.kanade.mangafeed.presenter.LibraryPresenter; import eu.kanade.mangafeed.presenter.LibraryPresenter;
import eu.kanade.mangafeed.presenter.MangaDetailPresenter; import eu.kanade.mangafeed.presenter.MangaDetailPresenter;
@ -25,6 +26,7 @@ public interface AppComponent {
void inject(LibraryPresenter libraryPresenter); void inject(LibraryPresenter libraryPresenter);
void inject(MangaDetailPresenter mangaDetailPresenter); void inject(MangaDetailPresenter mangaDetailPresenter);
void inject(CataloguePresenter cataloguePresenter); void inject(CataloguePresenter cataloguePresenter);
void inject(CatalogueListPresenter catalogueListPresenter);
Application application(); Application application();
} }

View file

@ -0,0 +1,27 @@
package eu.kanade.mangafeed.presenter;
import android.content.Intent;
import javax.inject.Inject;
import eu.kanade.mangafeed.App;
import eu.kanade.mangafeed.data.helpers.SourceManager;
import eu.kanade.mangafeed.view.CatalogueListView;
public class CatalogueListPresenter {
CatalogueListView view;
@Inject SourceManager sourceManager;
public CatalogueListPresenter(CatalogueListView view) {
this.view = view;
App.getComponent(view.getActivity()).inject(this);
}
public void initializeSource() {
Intent intent = view.getIntent();
int sourceId = intent.getIntExtra(Intent.EXTRA_UID, -1);
view.setSource(sourceManager.get(sourceId));
}
}

View file

@ -1,23 +1,23 @@
package eu.kanade.mangafeed.ui.activity; package eu.kanade.mangafeed.ui.activity;
import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.View;
import butterknife.Bind; import butterknife.Bind;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import eu.kanade.mangafeed.R; import eu.kanade.mangafeed.R;
import eu.kanade.mangafeed.presenter.CatalogueListPresenter;
import eu.kanade.mangafeed.sources.Source; import eu.kanade.mangafeed.sources.Source;
import eu.kanade.mangafeed.view.CatalogueListView;
public class CatalogueListActivity extends BaseActivity { public class CatalogueListActivity extends BaseActivity implements CatalogueListView {
@Bind(R.id.toolbar) @Bind(R.id.toolbar)
Toolbar toolbar; Toolbar toolbar;
private CatalogueListPresenter presenter;
private Source source;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -25,6 +25,14 @@ public class CatalogueListActivity extends BaseActivity {
ButterKnife.bind(this); ButterKnife.bind(this);
setupToolbar(toolbar); setupToolbar(toolbar);
presenter = new CatalogueListPresenter(this);
presenter.initializeSource();
}
public void setSource(Source source) {
this.source = source;
setToolbarTitle(source.getName());
} }
} }

View file

@ -47,7 +47,6 @@ public class CatalogueFragment extends BaseFragment implements CatalogueView {
ButterKnife.bind(this, view); ButterKnife.bind(this, view);
presenter.initializeSources(); presenter.initializeSources();
return view; return view;
} }

View file

@ -0,0 +1,10 @@
package eu.kanade.mangafeed.view;
import android.content.Intent;
import eu.kanade.mangafeed.sources.Source;
public interface CatalogueListView extends BaseView {
Intent getIntent();
void setSource(Source source);
}