Add ZimHostContract, ZimHostPresenter and ZimHostModule

This commit is contained in:
Adeel Zafar 2019-08-12 17:07:37 +05:00
parent 0cf9393bfd
commit 4486c06b3c
6 changed files with 85 additions and 13 deletions

View File

@ -18,6 +18,7 @@ import org.kiwix.kiwixmobile.search.SearchActivity;
import org.kiwix.kiwixmobile.settings.KiwixSettingsActivity; import org.kiwix.kiwixmobile.settings.KiwixSettingsActivity;
import org.kiwix.kiwixmobile.splash.SplashActivity; import org.kiwix.kiwixmobile.splash.SplashActivity;
import org.kiwix.kiwixmobile.webserver.ZimHostActivity; import org.kiwix.kiwixmobile.webserver.ZimHostActivity;
import org.kiwix.kiwixmobile.webserver.ZimHostModule;
import org.kiwix.kiwixmobile.zim_manager.ZimManageActivity; import org.kiwix.kiwixmobile.zim_manager.ZimManageActivity;
/** /**
@ -73,6 +74,6 @@ public abstract class ActivityBindingModule {
public abstract HelpActivity provideHelpActivity(); public abstract HelpActivity provideHelpActivity();
@PerActivity @PerActivity
@ContributesAndroidInjector(modules = MainModule.class) @ContributesAndroidInjector(modules = ZimHostModule.class)
public abstract ZimHostActivity provideZimHostActivity(); public abstract ZimHostActivity provideZimHostActivity();
} }

View File

@ -10,15 +10,15 @@ import org.kiwix.kiwixmobile.zim_manager.fileselect_view.adapter.BooksOnDiskList
* The contract between {@link MainActivity} and {@link MainPresenter}. * The contract between {@link MainActivity} and {@link MainPresenter}.
*/ */
public class MainContract { class MainContract {
public interface View extends BaseContract.View<Presenter> { interface View extends BaseContract.View<Presenter> {
void addBooks(List<BooksOnDiskListItem> books); void addBooks(List<BooksOnDiskListItem> books);
void refreshBookmarksUrl(List<String> urls); void refreshBookmarksUrl(List<String> urls);
} }
public interface Presenter extends BaseContract.Presenter<View> { interface Presenter extends BaseContract.Presenter<View> {
void loadBooks(); void loadBooks();
void saveBooks(List<BooksOnDiskListItem.BookOnDisk> books); void saveBooks(List<BooksOnDiskListItem.BookOnDisk> books);

View File

@ -47,11 +47,8 @@ import kotlin.Unit;
import org.kiwix.kiwixmobile.R; import org.kiwix.kiwixmobile.R;
import org.kiwix.kiwixmobile.base.BaseActivity; import org.kiwix.kiwixmobile.base.BaseActivity;
import org.kiwix.kiwixmobile.main.MainActivity; import org.kiwix.kiwixmobile.main.MainActivity;
import org.kiwix.kiwixmobile.main.MainContract;
import org.kiwix.kiwixmobile.wifi_hotspot.HotspotService; 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.BookOnDiskDelegate;
import org.kiwix.kiwixmobile.zim_manager.fileselect_view.adapter.BooksOnDiskAdapter;
import org.kiwix.kiwixmobile.zim_manager.fileselect_view.adapter.BooksOnDiskListItem; import org.kiwix.kiwixmobile.zim_manager.fileselect_view.adapter.BooksOnDiskListItem;
import static org.kiwix.kiwixmobile.utils.StyleUtils.dialogStyle; 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; import static org.kiwix.kiwixmobile.webserver.WebServerHelper.isServerStarted;
public class ZimHostActivity extends BaseActivity implements public class ZimHostActivity extends BaseActivity implements
ServerStateListener, MainContract.View { ServerStateListener, ZimHostContract.View {
@BindView(R.id.startServerButton) @BindView(R.id.startServerButton)
Button startServerButton; Button startServerButton;
@ -67,7 +64,7 @@ public class ZimHostActivity extends BaseActivity implements
TextView serverTextView; TextView serverTextView;
@Inject @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_ON_AFTER_O = "Turn_on_hotspot_after_oreo";
public static final String ACTION_TURN_OFF_AFTER_O = "Turn_off_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<BooksOnDiskListItem> books) { @Override public void addBooks(List<BooksOnDiskListItem> books) {
booksAdapter.setItems(books); booksAdapter.setItems(books);
} }
@Override public void refreshBookmarksUrl(List<String> urls) {
//Do nothing
}
} }

View File

@ -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<org.kiwix.kiwixmobile.webserver.ZimHostContract.Presenter> {
void addBooks(List<BooksOnDiskListItem> books);
}
interface Presenter
extends BaseContract.Presenter<org.kiwix.kiwixmobile.webserver.ZimHostContract.View> {
void loadBooks();
}
}

View File

@ -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;
}
}

View File

@ -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<ZimHostContract.View>
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<List<BooksOnDiskListItem>>() {
@Override
public void onSubscribe(Disposable d) {
compositeDisposable.add(d);
}
@Override
public void onSuccess(List<BooksOnDiskListItem> books) {
view.addBooks(books);
}
@Override
public void onError(Throwable e) {
Log.e(TAG, "Unable to load books", e);
}
});
}
}