mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-21 19:41:38 -04:00
basic mvp for old (bookmarks)
This commit is contained in:
parent
53bfd184f3
commit
8c84688108
@ -146,7 +146,7 @@
|
|||||||
|
|
||||||
<activity android:name=".settings.KiwixSettingsActivity" />
|
<activity android:name=".settings.KiwixSettingsActivity" />
|
||||||
<activity android:name=".SearchActivity" />
|
<activity android:name=".SearchActivity" />
|
||||||
<activity android:name=".BookmarksActivity" />
|
<activity android:name=".bookmarksView.BookmarksActivity" />
|
||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name=".ZimContentProvider"
|
android:name=".ZimContentProvider"
|
||||||
|
@ -82,6 +82,7 @@ import java.util.Locale;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
|
import org.kiwix.kiwixmobile.bookmarksView.BookmarksActivity;
|
||||||
import org.kiwix.kiwixmobile.database.BookmarksDao;
|
import org.kiwix.kiwixmobile.database.BookmarksDao;
|
||||||
import org.kiwix.kiwixmobile.database.KiwixDatabase;
|
import org.kiwix.kiwixmobile.database.KiwixDatabase;
|
||||||
import org.kiwix.kiwixmobile.di.components.ApplicationComponent;
|
import org.kiwix.kiwixmobile.di.components.ApplicationComponent;
|
||||||
|
@ -0,0 +1,40 @@
|
|||||||
|
package org.kiwix.kiwixmobile.bookmarksView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by EladKeyshawn on 05/04/2017.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class BasePresenter<T extends ViewCallback> implements Presenter<T> {
|
||||||
|
|
||||||
|
private T mMvpView;
|
||||||
|
@Override
|
||||||
|
public void attachView(T mvpView) {
|
||||||
|
this.mMvpView = mvpView;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void detachView() {
|
||||||
|
mMvpView = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isViewAttached() {
|
||||||
|
return mMvpView != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public T getMvpView() {
|
||||||
|
return mMvpView;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void checkViewAttached() {
|
||||||
|
if (!isViewAttached()) throw new MvpViewNotAttachedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class MvpViewNotAttachedException extends RuntimeException {
|
||||||
|
public MvpViewNotAttachedException() {
|
||||||
|
super("Please call Presenter.attachView(MvpView) before" +
|
||||||
|
" requesting data to the Presenter");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -18,16 +18,17 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package org.kiwix.kiwixmobile;
|
package org.kiwix.kiwixmobile.bookmarksView;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
import android.support.design.widget.CoordinatorLayout;
|
import android.support.design.widget.CoordinatorLayout;
|
||||||
import android.support.design.widget.Snackbar;
|
import android.support.design.widget.Snackbar;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
|
||||||
import android.support.v7.widget.Toolbar;
|
import android.support.v7.widget.Toolbar;
|
||||||
import android.util.SparseBooleanArray;
|
import android.util.SparseBooleanArray;
|
||||||
import android.view.ActionMode;
|
import android.view.ActionMode;
|
||||||
@ -42,29 +43,31 @@ import android.widget.AdapterView;
|
|||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.RelativeLayout;
|
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import org.kiwix.kiwixmobile.database.BookmarksDao;
|
import org.kiwix.kiwixmobile.BaseActivity;
|
||||||
import org.kiwix.kiwixmobile.database.KiwixDatabase;
|
import org.kiwix.kiwixmobile.KiwixMobileActivity;
|
||||||
import org.kiwix.kiwixmobile.utils.DimenUtils;
|
import org.kiwix.kiwixmobile.R;
|
||||||
|
import org.kiwix.kiwixmobile.di.components.ApplicationComponent;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class BookmarksActivity extends AppCompatActivity
|
import javax.inject.Inject;
|
||||||
implements AdapterView.OnItemClickListener {
|
|
||||||
|
import butterknife.BindView;
|
||||||
|
import butterknife.ButterKnife;
|
||||||
|
|
||||||
|
public class BookmarksActivity extends BaseActivity
|
||||||
|
implements AdapterView.OnItemClickListener, BookmarksViewCallback {
|
||||||
|
|
||||||
private SparseBooleanArray sparseBooleanArray;
|
|
||||||
private ArrayList<String> bookmarks;
|
private ArrayList<String> bookmarks;
|
||||||
private ArrayList<String> bookmarkUrls;
|
private ArrayList<String> bookmarkUrls;
|
||||||
private ArrayList<String> tempContents;
|
@BindView(R.id.bookmarks_list) ListView bookmarksList;
|
||||||
private ListView bookmarksList;
|
private BookmarksArrayAdapter adapter;
|
||||||
private ArrayAdapter adapter;
|
@BindView(R.id.bookmarks_activity_layout) CoordinatorLayout snackbarLayout;
|
||||||
private ArrayList<String> selected;
|
@BindView(R.id.bookmarks_none_linlayout) LinearLayout noBookmarksLayout;
|
||||||
private int numOfSelected;
|
@Inject BookmarksPresenter presenter;
|
||||||
private CoordinatorLayout snackbarLayout;
|
private ActionModeListener actionModeListener;
|
||||||
private LinearLayout noBookmarksLayout;
|
|
||||||
private BookmarksDao bookmarksDao;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@ -74,84 +77,29 @@ public class BookmarksActivity extends AppCompatActivity
|
|||||||
}
|
}
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_bookmarks);
|
setContentView(R.layout.activity_bookmarks);
|
||||||
|
ButterKnife.bind(this);
|
||||||
|
|
||||||
setUpToolbar();
|
setUpToolbar();
|
||||||
snackbarLayout = (CoordinatorLayout) findViewById(R.id.bookmarks_activity_layout);
|
bookmarks = new ArrayList<>();
|
||||||
selected = new ArrayList<>();
|
bookmarkUrls = new ArrayList<>();
|
||||||
bookmarksList = (ListView) findViewById(R.id.bookmarks_list);
|
|
||||||
noBookmarksLayout = (LinearLayout) findViewById(R.id.bookmarks_none_linlayout);
|
|
||||||
|
|
||||||
bookmarksDao = new BookmarksDao(KiwixDatabase.getInstance(this));
|
actionModeListener = new ActionModeListener();
|
||||||
bookmarks = bookmarksDao.getBookmarkTitles(ZimContentProvider.getId(), ZimContentProvider.getName());
|
adapter = new BookmarksArrayAdapter(getApplicationContext(), R.layout.bookmarks_row, R.id.bookmark_title, bookmarks);
|
||||||
bookmarkUrls = bookmarksDao.getBookmarks(ZimContentProvider.getId(), ZimContentProvider.getName());
|
|
||||||
|
|
||||||
adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.bookmarks_row, R.id.bookmark_title, bookmarks) {
|
|
||||||
@Override
|
|
||||||
public View getView(int position, View convertView, ViewGroup parent) {
|
|
||||||
if(convertView == null){
|
|
||||||
LayoutInflater inflater = getLayoutInflater();
|
|
||||||
convertView = inflater.inflate(R.layout.bookmarks_row, null);
|
|
||||||
}
|
|
||||||
return super.getView(position, convertView, parent);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
bookmarksList.setAdapter(adapter);
|
bookmarksList.setAdapter(adapter);
|
||||||
setNoBookmarksState();
|
|
||||||
|
|
||||||
bookmarksList.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE_MODAL);
|
bookmarksList.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE_MODAL);
|
||||||
bookmarksList.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
|
bookmarksList.setMultiChoiceModeListener(actionModeListener);
|
||||||
@Override
|
|
||||||
public void onItemCheckedStateChanged(ActionMode mode, int position, long id,
|
|
||||||
boolean checked) {
|
|
||||||
if (checked) {
|
|
||||||
selected.add(bookmarks.get(position));
|
|
||||||
numOfSelected++;
|
|
||||||
mode.setTitle(Integer.toString(numOfSelected));
|
|
||||||
} else if (selected.contains(bookmarks.get(position))) {
|
|
||||||
selected.remove(bookmarks.get(position));
|
|
||||||
numOfSelected--;
|
|
||||||
if (numOfSelected == 0) {
|
|
||||||
mode.finish();
|
|
||||||
} else {
|
|
||||||
mode.setTitle(Integer.toString(numOfSelected));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
|
|
||||||
MenuInflater inflater = mode.getMenuInflater();
|
|
||||||
inflater.inflate(R.menu.menu_bookmarks, menu);
|
|
||||||
numOfSelected = 0;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
|
|
||||||
|
|
||||||
switch (item.getItemId()) {
|
|
||||||
case R.id.menu_bookmarks_delete:
|
|
||||||
deleteSelectedItems();
|
|
||||||
popDeleteBookmarksSnackbar();
|
|
||||||
mode.finish();
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDestroyActionMode(ActionMode mode) {
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
bookmarksList.setOnItemClickListener(this);
|
bookmarksList.setOnItemClickListener(this);
|
||||||
|
|
||||||
|
presenter.attachView(this);
|
||||||
|
presenter.loadBookmarks(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setupDagger(ApplicationComponent appComponent) {
|
||||||
|
appComponent.inject(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void setNoBookmarksState() {
|
private void setNoBookmarksState() {
|
||||||
if (bookmarksList.getCount() == 0) {
|
if (bookmarksList.getCount() == 0) {
|
||||||
noBookmarksLayout.setVisibility(View.VISIBLE);
|
noBookmarksLayout.setVisibility(View.VISIBLE);
|
||||||
@ -160,31 +108,9 @@ public class BookmarksActivity extends AppCompatActivity
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void popDeleteBookmarksSnackbar() {
|
|
||||||
Snackbar bookmarkDeleteSnackbar =
|
|
||||||
Snackbar.make(snackbarLayout, numOfSelected + " " + getString(R.string.deleted_message), Snackbar.LENGTH_LONG);
|
|
||||||
// .setAction(ShortcutUtils.stringsGetter(R.string.undo, this), v -> {
|
|
||||||
// restoreBookmarks();
|
|
||||||
// setNoBookmarksState();
|
|
||||||
// Toast.makeText(getApplicationContext(), ShortcutUtils.stringsGetter(R.string.bookmarks_restored, getBaseContext()), Toast.LENGTH_SHORT)
|
|
||||||
// .show();
|
|
||||||
// });
|
|
||||||
|
|
||||||
bookmarkDeleteSnackbar.setActionTextColor(getResources().getColor(R.color.white));
|
|
||||||
bookmarkDeleteSnackbar.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
/*private void restoreBookmarks() {
|
|
||||||
bookmarksDao.resetBookmarksToPrevious(tempContents);
|
|
||||||
bookmarks = bookmarksDao.getBookmarks();
|
|
||||||
adapter.notifyDataSetChanged();
|
|
||||||
setNoBookmarksState();
|
|
||||||
refreshBookmarksList();
|
|
||||||
}*/
|
|
||||||
|
|
||||||
private void deleteSelectedItems() {
|
private void deleteSelectedItems() {
|
||||||
sparseBooleanArray = bookmarksList.getCheckedItemPositions();
|
SparseBooleanArray sparseBooleanArray = bookmarksList.getCheckedItemPositions();
|
||||||
tempContents = new ArrayList<>(bookmarks);
|
|
||||||
for (int i = sparseBooleanArray.size() - 1; i >= 0; i--) {
|
for (int i = sparseBooleanArray.size() - 1; i >= 0; i--) {
|
||||||
deleteBookmark(bookmarkUrls.get(sparseBooleanArray.keyAt(i)));
|
deleteBookmark(bookmarkUrls.get(sparseBooleanArray.keyAt(i)));
|
||||||
bookmarks.remove(sparseBooleanArray.keyAt(i));
|
bookmarks.remove(sparseBooleanArray.keyAt(i));
|
||||||
@ -195,15 +121,9 @@ public class BookmarksActivity extends AppCompatActivity
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void deleteBookmark(String article) {
|
private void deleteBookmark(String article) {
|
||||||
bookmarksDao.deleteBookmark(article, ZimContentProvider.getId(), ZimContentProvider.getName());
|
presenter.deleteBookmark(article);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*private void refreshBookmarksList() {
|
|
||||||
bookmarks.clear();
|
|
||||||
bookmarks = bookmarksDao.getBookmarks();
|
|
||||||
adapter.notifyDataSetChanged();
|
|
||||||
setNoBookmarksState();
|
|
||||||
}*/
|
|
||||||
|
|
||||||
private void setUpToolbar() {
|
private void setUpToolbar() {
|
||||||
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
|
||||||
@ -243,9 +163,118 @@ public class BookmarksActivity extends AppCompatActivity
|
|||||||
startActivity(startIntent);
|
startActivity(startIntent);
|
||||||
|
|
||||||
} else { // we have a parent activity waiting...
|
} else { // we have a parent activity waiting...
|
||||||
setResult(RESULT_OK,startIntent );
|
setResult(RESULT_OK, startIntent);
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showBookmarks(ArrayList<String> bookmarks, ArrayList<String> bookmarkUrls) {
|
||||||
|
this.bookmarks.clear();
|
||||||
|
this.bookmarkUrls.clear();
|
||||||
|
this.bookmarks.addAll(bookmarks);
|
||||||
|
this.bookmarkUrls.addAll(bookmarkUrls);
|
||||||
|
adapter.notifyDataSetChanged();
|
||||||
|
setNoBookmarksState();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateAdapter() {
|
||||||
|
adapter.notifyDataSetChanged();
|
||||||
|
setNoBookmarksState();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void popDeleteBookmarksSnackbar() {
|
||||||
|
Snackbar bookmarkDeleteSnackbar =
|
||||||
|
Snackbar.make(snackbarLayout, actionModeListener.getNumOfSelected() + " " + getString(R.string.deleted_message), Snackbar.LENGTH_LONG);
|
||||||
|
|
||||||
|
|
||||||
|
bookmarkDeleteSnackbar.setActionTextColor(getResources().getColor(R.color.white));
|
||||||
|
bookmarkDeleteSnackbar.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class ActionModeListener implements AbsListView.MultiChoiceModeListener {
|
||||||
|
private ArrayList<String> selected = new ArrayList<>();
|
||||||
|
private int numOfSelected = 0;
|
||||||
|
|
||||||
|
public ActionModeListener() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getNumOfSelected() {
|
||||||
|
return numOfSelected;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onItemCheckedStateChanged(ActionMode mode, int position, long id,
|
||||||
|
boolean checked) {
|
||||||
|
if (checked) {
|
||||||
|
selected.add(bookmarks.get(position));
|
||||||
|
numOfSelected++;
|
||||||
|
mode.setTitle(Integer.toString(numOfSelected));
|
||||||
|
} else if (selected.contains(bookmarks.get(position))) {
|
||||||
|
selected.remove(bookmarks.get(position));
|
||||||
|
numOfSelected--;
|
||||||
|
if (numOfSelected == 0) {
|
||||||
|
mode.finish();
|
||||||
|
} else {
|
||||||
|
mode.setTitle(Integer.toString(numOfSelected));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
|
||||||
|
MenuInflater inflater = mode.getMenuInflater();
|
||||||
|
inflater.inflate(R.menu.menu_bookmarks, menu);
|
||||||
|
numOfSelected = 0;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
|
||||||
|
|
||||||
|
switch (item.getItemId()) {
|
||||||
|
case R.id.menu_bookmarks_delete:
|
||||||
|
deleteSelectedItems();
|
||||||
|
popDeleteBookmarksSnackbar();
|
||||||
|
mode.finish();
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroyActionMode(ActionMode mode) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class BookmarksArrayAdapter extends ArrayAdapter<String> {
|
||||||
|
|
||||||
|
public BookmarksArrayAdapter(Context context, int resource, int textViewResourceId, List<String> objects) {
|
||||||
|
super(context, resource, textViewResourceId, objects);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public View getView(int position, View convertView, ViewGroup parent) {
|
||||||
|
if(convertView == null){
|
||||||
|
LayoutInflater inflater = getLayoutInflater();
|
||||||
|
convertView = inflater.inflate(R.layout.bookmarks_row, null);
|
||||||
|
}
|
||||||
|
return super.getView(position, convertView, parent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -0,0 +1,56 @@
|
|||||||
|
package org.kiwix.kiwixmobile.bookmarksView;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import org.kiwix.kiwixmobile.ZimContentProvider;
|
||||||
|
import org.kiwix.kiwixmobile.database.BookmarksDao;
|
||||||
|
import org.kiwix.kiwixmobile.database.KiwixDatabase;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by EladKeyshawn on 05/04/2017.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class BookmarksPresenter extends BasePresenter<BookmarksViewCallback> {
|
||||||
|
|
||||||
|
|
||||||
|
private BookmarksDao bookmarksDao;
|
||||||
|
private ArrayList<String> bookmarks;
|
||||||
|
private ArrayList<String> bookmarkUrls;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public BookmarksPresenter() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void loadBookmarks(Context context) {
|
||||||
|
bookmarksDao = new BookmarksDao(KiwixDatabase.getInstance(context));
|
||||||
|
bookmarks = bookmarksDao.getBookmarkTitles(ZimContentProvider.getId(), ZimContentProvider.getName());
|
||||||
|
bookmarkUrls = bookmarksDao.getBookmarks(ZimContentProvider.getId(), ZimContentProvider.getName());
|
||||||
|
getMvpView().showBookmarks(bookmarks,bookmarkUrls);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void deleteBookmark(String article) {
|
||||||
|
bookmarksDao.deleteBookmark(article, ZimContentProvider.getId(), ZimContentProvider.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void attachView(BookmarksViewCallback mvpView) {
|
||||||
|
super.attachView(mvpView);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void detachView() {
|
||||||
|
super.detachView();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
package org.kiwix.kiwixmobile.bookmarksView;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by EladKeyshawn on 05/04/2017.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public interface BookmarksViewCallback extends ViewCallback{
|
||||||
|
void showBookmarks(ArrayList<String> bookmarks, ArrayList<String> bookmarkUrls);
|
||||||
|
void updateAdapter();
|
||||||
|
|
||||||
|
void popDeleteBookmarksSnackbar();
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package org.kiwix.kiwixmobile.bookmarksView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by EladKeyshawn on 05/04/2017.
|
||||||
|
*/
|
||||||
|
public interface Presenter<V extends ViewCallback> {
|
||||||
|
|
||||||
|
void attachView(V mvpView);
|
||||||
|
|
||||||
|
void detachView();
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
package org.kiwix.kiwixmobile.bookmarksView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by EladKeyshawn on 05/04/2017.
|
||||||
|
*/
|
||||||
|
public interface ViewCallback {
|
||||||
|
}
|
@ -4,6 +4,7 @@ import dagger.Component;
|
|||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
import org.kiwix.kiwixmobile.KiwixMobileActivity;
|
import org.kiwix.kiwixmobile.KiwixMobileActivity;
|
||||||
import org.kiwix.kiwixmobile.LibraryFragment;
|
import org.kiwix.kiwixmobile.LibraryFragment;
|
||||||
|
import org.kiwix.kiwixmobile.bookmarksView.BookmarksActivity;
|
||||||
import org.kiwix.kiwixmobile.di.modules.ApplicationModule;
|
import org.kiwix.kiwixmobile.di.modules.ApplicationModule;
|
||||||
import org.kiwix.kiwixmobile.di.modules.NetworkModule;
|
import org.kiwix.kiwixmobile.di.modules.NetworkModule;
|
||||||
import org.kiwix.kiwixmobile.downloader.DownloadService;
|
import org.kiwix.kiwixmobile.downloader.DownloadService;
|
||||||
@ -19,4 +20,6 @@ public interface ApplicationComponent {
|
|||||||
void inject(DownloadService service);
|
void inject(DownloadService service);
|
||||||
|
|
||||||
void inject(LibraryFragment libraryFragment);
|
void inject(LibraryFragment libraryFragment);
|
||||||
|
|
||||||
|
void inject(BookmarksActivity bookmarksActivity);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user