From 4486c06b3c2453c4a77c78cb2a1fd00406c040cc Mon Sep 17 00:00:00 2001 From: Adeel Zafar Date: Mon, 12 Aug 2019 17:07:37 +0500 Subject: [PATCH] Add ZimHostContract, ZimHostPresenter and ZimHostModule --- .../di/modules/ActivityBindingModule.java | 3 +- .../kiwix/kiwixmobile/main/MainContract.java | 6 +-- .../webserver/ZimHostActivity.java | 11 +---- .../webserver/ZimHostContract.java | 18 ++++++++ .../kiwixmobile/webserver/ZimHostModule.java | 16 +++++++ .../webserver/ZimHostPresenter.java | 44 +++++++++++++++++++ 6 files changed, 85 insertions(+), 13 deletions(-) create mode 100644 app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostContract.java create mode 100644 app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostModule.java create mode 100644 app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostPresenter.java diff --git a/app/src/main/java/org/kiwix/kiwixmobile/di/modules/ActivityBindingModule.java b/app/src/main/java/org/kiwix/kiwixmobile/di/modules/ActivityBindingModule.java index e68a3ec10..36f68a287 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/di/modules/ActivityBindingModule.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/di/modules/ActivityBindingModule.java @@ -18,6 +18,7 @@ import org.kiwix.kiwixmobile.search.SearchActivity; import org.kiwix.kiwixmobile.settings.KiwixSettingsActivity; import org.kiwix.kiwixmobile.splash.SplashActivity; import org.kiwix.kiwixmobile.webserver.ZimHostActivity; +import org.kiwix.kiwixmobile.webserver.ZimHostModule; import org.kiwix.kiwixmobile.zim_manager.ZimManageActivity; /** @@ -73,6 +74,6 @@ public abstract class ActivityBindingModule { public abstract HelpActivity provideHelpActivity(); @PerActivity - @ContributesAndroidInjector(modules = MainModule.class) + @ContributesAndroidInjector(modules = ZimHostModule.class) public abstract ZimHostActivity provideZimHostActivity(); } diff --git a/app/src/main/java/org/kiwix/kiwixmobile/main/MainContract.java b/app/src/main/java/org/kiwix/kiwixmobile/main/MainContract.java index aa66a5012..5aa973afe 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/main/MainContract.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/main/MainContract.java @@ -10,15 +10,15 @@ import org.kiwix.kiwixmobile.zim_manager.fileselect_view.adapter.BooksOnDiskList * The contract between {@link MainActivity} and {@link MainPresenter}. */ -public class MainContract { +class MainContract { - public interface View extends BaseContract.View { + interface View extends BaseContract.View { void addBooks(List books); void refreshBookmarksUrl(List urls); } - public interface Presenter extends BaseContract.Presenter { + interface Presenter extends BaseContract.Presenter { void loadBooks(); void saveBooks(List books); diff --git a/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostActivity.java b/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostActivity.java index 0ca374902..f30af048f 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostActivity.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostActivity.java @@ -47,11 +47,8 @@ import kotlin.Unit; import org.kiwix.kiwixmobile.R; import org.kiwix.kiwixmobile.base.BaseActivity; import org.kiwix.kiwixmobile.main.MainActivity; -import org.kiwix.kiwixmobile.main.MainContract; import org.kiwix.kiwixmobile.wifi_hotspot.HotspotService; -import org.kiwix.kiwixmobile.zim_manager.fileselect_view.ZimFileSelectFragment; import org.kiwix.kiwixmobile.zim_manager.fileselect_view.adapter.BookOnDiskDelegate; -import org.kiwix.kiwixmobile.zim_manager.fileselect_view.adapter.BooksOnDiskAdapter; import org.kiwix.kiwixmobile.zim_manager.fileselect_view.adapter.BooksOnDiskListItem; import static org.kiwix.kiwixmobile.utils.StyleUtils.dialogStyle; @@ -59,7 +56,7 @@ import static org.kiwix.kiwixmobile.webserver.WebServerHelper.getAddress; import static org.kiwix.kiwixmobile.webserver.WebServerHelper.isServerStarted; public class ZimHostActivity extends BaseActivity implements - ServerStateListener, MainContract.View { + ServerStateListener, ZimHostContract.View { @BindView(R.id.startServerButton) Button startServerButton; @@ -67,7 +64,7 @@ public class ZimHostActivity extends BaseActivity implements TextView serverTextView; @Inject - MainContract.Presenter presenter; + ZimHostContract.Presenter presenter; public static final String ACTION_TURN_ON_AFTER_O = "Turn_on_hotspot_after_oreo"; public static final String ACTION_TURN_OFF_AFTER_O = "Turn_off_hotspot_after_oreo"; @@ -510,8 +507,4 @@ public class ZimHostActivity extends BaseActivity implements @Override public void addBooks(List books) { booksAdapter.setItems(books); } - - @Override public void refreshBookmarksUrl(List urls) { - //Do nothing - } } diff --git a/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostContract.java b/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostContract.java new file mode 100644 index 000000000..a20cb7b5d --- /dev/null +++ b/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostContract.java @@ -0,0 +1,18 @@ +package org.kiwix.kiwixmobile.webserver; + +import java.util.List; +import org.kiwix.kiwixmobile.base.BaseContract; +import org.kiwix.kiwixmobile.zim_manager.fileselect_view.adapter.BooksOnDiskListItem; + +class ZimHostContract { + + interface View + extends BaseContract.View { + void addBooks(List books); + } + + interface Presenter + extends BaseContract.Presenter { + void loadBooks(); + } +} diff --git a/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostModule.java b/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostModule.java new file mode 100644 index 000000000..8da47e208 --- /dev/null +++ b/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostModule.java @@ -0,0 +1,16 @@ +package org.kiwix.kiwixmobile.webserver; + +import dagger.Module; +import dagger.Provides; +import org.kiwix.kiwixmobile.di.PerActivity; + +@Module +public class ZimHostModule { + + @PerActivity + @Provides + ZimHostContract.Presenter provideZimHostPresenter(ZimHostPresenter zimHostPresenter) { + return zimHostPresenter; + } +} + diff --git a/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostPresenter.java b/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostPresenter.java new file mode 100644 index 000000000..56b62ae79 --- /dev/null +++ b/app/src/main/java/org/kiwix/kiwixmobile/webserver/ZimHostPresenter.java @@ -0,0 +1,44 @@ +package org.kiwix.kiwixmobile.webserver; + +import android.util.Log; +import io.reactivex.SingleObserver; +import io.reactivex.disposables.Disposable; +import java.util.List; +import javax.inject.Inject; +import org.kiwix.kiwixmobile.base.BasePresenter; +import org.kiwix.kiwixmobile.data.DataSource; +import org.kiwix.kiwixmobile.di.PerActivity; +import org.kiwix.kiwixmobile.zim_manager.fileselect_view.adapter.BooksOnDiskListItem; + +@PerActivity +class ZimHostPresenter extends BasePresenter + implements ZimHostContract.Presenter { + + private static final String TAG = "ZimHostPresenter"; + private final DataSource dataSource; + + @Inject ZimHostPresenter(DataSource dataSource) { + this.dataSource = dataSource; + } + + @Override + public void loadBooks() { + dataSource.getLanguageCategorizedBooks() + .subscribe(new SingleObserver>() { + @Override + public void onSubscribe(Disposable d) { + compositeDisposable.add(d); + } + + @Override + public void onSuccess(List books) { + view.addBooks(books); + } + + @Override + public void onError(Throwable e) { + Log.e(TAG, "Unable to load books", e); + } + }); + } +} \ No newline at end of file