mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-22 12:03:09 -04:00
Add ZimHostContract, ZimHostPresenter and ZimHostModule
This commit is contained in:
parent
0cf9393bfd
commit
4486c06b3c
@ -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();
|
||||
}
|
||||
|
@ -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<Presenter> {
|
||||
interface View extends BaseContract.View<Presenter> {
|
||||
void addBooks(List<BooksOnDiskListItem> books);
|
||||
|
||||
void refreshBookmarksUrl(List<String> urls);
|
||||
}
|
||||
|
||||
public interface Presenter extends BaseContract.Presenter<View> {
|
||||
interface Presenter extends BaseContract.Presenter<View> {
|
||||
void loadBooks();
|
||||
|
||||
void saveBooks(List<BooksOnDiskListItem.BookOnDisk> books);
|
||||
|
@ -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<BooksOnDiskListItem> books) {
|
||||
booksAdapter.setItems(books);
|
||||
}
|
||||
|
||||
@Override public void refreshBookmarksUrl(List<String> urls) {
|
||||
//Do nothing
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user