All activities using Nucleus
This commit is contained in:
		
							parent
							
								
									0e52c81970
								
							
						
					
					
						commit
						8c0994747f
					
				| @ -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); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @ -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; | ||||
|     } | ||||
| } | ||||
| } | ||||
| @ -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; | ||||
|     } | ||||
| } | ||||
| @ -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; | ||||
|  | ||||
| @ -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; | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
| @ -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; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 inorichi
						inorichi