浏览代码

All activities using Nucleus

inorichi 9 年之前
父节点
当前提交
8c0994747f

+ 2 - 25
app/src/main/java/eu/kanade/mangafeed/presenter/MangaCataloguePresenter.java

@@ -1,30 +1,7 @@
 package eu.kanade.mangafeed.presenter;
 
-import eu.kanade.mangafeed.App;
-import eu.kanade.mangafeed.data.models.Manga;
-import eu.kanade.mangafeed.view.MangaCatalogueView;
+import eu.kanade.mangafeed.ui.activity.MangaCatalogueActivity;
 
-public class MangaCataloguePresenter extends BasePresenter {
+public class MangaCataloguePresenter extends BasePresenter2<MangaCatalogueActivity> {
 
-    private MangaCatalogueView view;
-    private Manga manga;
-
-    public MangaCataloguePresenter(MangaCatalogueView view) {
-        this.view = view;
-        App.getComponent(view.getActivity()).inject(this);
-    }
-
-    public void initialize() {
-
-    }
-
-    public void onEventMainThread(Manga manga) {
-        this.manga = manga;
-        initializeManga();
-    }
-
-    private void initializeManga() {
-        view.setTitle(manga.title);
-        view.setMangaInformation(manga);
-    }
 }

+ 22 - 8
app/src/main/java/eu/kanade/mangafeed/ui/activity/BaseActivity.java

@@ -1,13 +1,31 @@
 package eu.kanade.mangafeed.ui.activity;
 
 import android.content.Context;
-import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
 import android.support.v7.widget.Toolbar;
 
 import eu.kanade.mangafeed.App;
-import eu.kanade.mangafeed.AppComponent;
+import nucleus.factory.PresenterFactory;
+import nucleus.presenter.Presenter;
+import nucleus.view.NucleusAppCompatActivity;
+import timber.log.Timber;
 
-public class BaseActivity extends AppCompatActivity {
+public class BaseActivity<P extends Presenter> extends NucleusAppCompatActivity<P> {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        final PresenterFactory<P> superFactory = super.getPresenterFactory();
+        setPresenterFactory(() -> {
+            P presenter = superFactory.createPresenter();
+            try {
+                App.getComponentReflection(getActivity()).inject(presenter);
+            } catch(Exception e) {
+                Timber.w("No injection for " + presenter.getClass().toString());
+            }
+            return presenter;
+        });
+        super.onCreate(savedInstanceState);
+    }
 
     protected void setupToolbar(Toolbar toolbar) {
         setSupportActionBar(toolbar);
@@ -18,11 +36,7 @@ public class BaseActivity extends AppCompatActivity {
         getSupportActionBar().setTitle(title);
     }
 
-    protected AppComponent applicationComponent() {
-        return App.get(this).getComponent();
-    }
-
     public Context getActivity() {
         return this;
     }
-}
+}

+ 0 - 37
app/src/main/java/eu/kanade/mangafeed/ui/activity/BaseActivity2.java

@@ -1,37 +0,0 @@
-package eu.kanade.mangafeed.ui.activity;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.support.v7.widget.Toolbar;
-
-import eu.kanade.mangafeed.App;
-import nucleus.factory.PresenterFactory;
-import nucleus.presenter.Presenter;
-import nucleus.view.NucleusAppCompatActivity;
-
-public class BaseActivity2<P extends Presenter> extends NucleusAppCompatActivity<P> {
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        final PresenterFactory<P> superFactory = super.getPresenterFactory();
-        setPresenterFactory(() -> {
-            P presenter = superFactory.createPresenter();
-            App.getComponentReflection(getActivity()).inject(presenter);
-            return presenter;
-        });
-        super.onCreate(savedInstanceState);
-    }
-
-    protected void setupToolbar(Toolbar toolbar) {
-        setSupportActionBar(toolbar);
-        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
-    }
-
-    public void setToolbarTitle(String title) {
-        getSupportActionBar().setTitle(title);
-    }
-
-    public Context getActivity() {
-        return this;
-    }
-}

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/activity/CatalogueActivity.java

@@ -22,7 +22,7 @@ import nucleus.factory.RequiresPresenter;
 import uk.co.ribot.easyadapter.EasyAdapter;
 
 @RequiresPresenter(CataloguePresenter.class)
-public class CatalogueActivity extends BaseActivity2<CataloguePresenter> {
+public class CatalogueActivity extends BaseActivity<CataloguePresenter> {
 
     @Bind(R.id.toolbar)
     Toolbar toolbar;

+ 4 - 1
app/src/main/java/eu/kanade/mangafeed/ui/activity/MainActivity.java

@@ -13,10 +13,13 @@ import com.mikepenz.materialdrawer.model.PrimaryDrawerItem;
 import butterknife.Bind;
 import butterknife.ButterKnife;
 import eu.kanade.mangafeed.R;
+import eu.kanade.mangafeed.presenter.BasePresenter2;
 import eu.kanade.mangafeed.ui.fragment.LibraryFragment;
 import eu.kanade.mangafeed.ui.fragment.SourceFragment;
+import nucleus.factory.RequiresPresenter;
 
-public class MainActivity extends BaseActivity {
+@RequiresPresenter(BasePresenter2.class)
+public class MainActivity extends BaseActivity<BasePresenter2> {
 
     @Bind(R.id.toolbar)
     Toolbar toolbar;

+ 4 - 28
app/src/main/java/eu/kanade/mangafeed/ui/activity/MangaCatalogueActivity.java

@@ -13,9 +13,10 @@ import butterknife.ButterKnife;
 import eu.kanade.mangafeed.R;
 import eu.kanade.mangafeed.data.models.Manga;
 import eu.kanade.mangafeed.presenter.MangaCataloguePresenter;
-import eu.kanade.mangafeed.view.MangaCatalogueView;
+import nucleus.factory.RequiresPresenter;
 
-public class MangaCatalogueActivity extends BaseActivity implements MangaCatalogueView {
+@RequiresPresenter(MangaCataloguePresenter.class)
+public class MangaCatalogueActivity extends BaseActivity<MangaCataloguePresenter> {
 
     @Bind(R.id.toolbar) Toolbar toolbar;
 
@@ -27,8 +28,6 @@ public class MangaCatalogueActivity extends BaseActivity implements MangaCatalog
     @Bind(R.id.manga_summary) TextView mDescription;
     @Bind(R.id.manga_cover) ImageView mCover;
 
-    private MangaCataloguePresenter presenter;
-
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -36,32 +35,9 @@ public class MangaCatalogueActivity extends BaseActivity implements MangaCatalog
         ButterKnife.bind(this);
 
         setupToolbar(toolbar);
-
-        presenter = new MangaCataloguePresenter(this);
-        presenter.initialize();
     }
 
-    @Override
-    public void onStart() {
-        super.onStart();
-        presenter.registerForStickyEvents();
-    }
-
-    @Override
-    public void onStop() {
-        presenter.unregisterForEvents();
-        super.onStop();
-    }
-
-    // MangaCatalogueView
-
-    @Override
-    public void setTitle(String title) {
-        setToolbarTitle(title);
-    }
-
-    @Override
-    public void setMangaInformation(Manga manga) {
+    public void setMangaInfo(Manga manga) {
         mArtist.setText(manga.artist);
         mAuthor.setText(manga.author);
         mChapters.setText("0"); // TODO

+ 1 - 1
app/src/main/java/eu/kanade/mangafeed/ui/activity/MangaDetailActivity.java

@@ -21,7 +21,7 @@ import eu.kanade.mangafeed.ui.fragment.MangaInfoFragment;
 import nucleus.factory.RequiresPresenter;
 
 @RequiresPresenter(MangaDetailPresenter.class)
-public class MangaDetailActivity extends BaseActivity2<MangaDetailPresenter> {
+public class MangaDetailActivity extends BaseActivity<MangaDetailPresenter> {
 
     @Bind(R.id.toolbar)
     Toolbar toolbar;