parent
8dca7fe79a
commit
4630a5ed1a
@ -0,0 +1,120 @@
|
||||
package eu.kanade.mangafeed.ui.catalogue;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.jsoup.nodes.Document;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import eu.kanade.mangafeed.R;
|
||||
import eu.kanade.mangafeed.data.database.models.Chapter;
|
||||
import eu.kanade.mangafeed.data.database.models.Manga;
|
||||
import eu.kanade.mangafeed.data.source.base.Source;
|
||||
import eu.kanade.mangafeed.data.source.model.MangasPage;
|
||||
|
||||
public class CatalogueSpinnerAdapter extends ArrayAdapter<Source> {
|
||||
|
||||
public CatalogueSpinnerAdapter(Context context, int resource, List<Source> sources) {
|
||||
super(context, resource, sources);
|
||||
sources.add(new SimpleSource());
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
|
||||
View v = super.getView(position, convertView, parent);
|
||||
if (position == getCount()) {
|
||||
((TextView)v.findViewById(android.R.id.text1)).setText("");
|
||||
((TextView)v.findViewById(android.R.id.text1)).setHint(getItem(getCount()).getName());
|
||||
}
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return super.getCount()-1; // you dont display last item. It is used as hint.
|
||||
}
|
||||
|
||||
public int getEmptyIndex() {
|
||||
return getCount();
|
||||
}
|
||||
|
||||
private class SimpleSource extends Source {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return getContext().getString(R.string.select_source);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBaseUrl() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLoginRequired() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getInitialPopularMangasUrl() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getInitialSearchUrl(String query) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<Manga> parsePopularMangasFromHtml(Document parsedHtml) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String parseNextPopularMangasUrl(Document parsedHtml, MangasPage page) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<Manga> parseSearchFromHtml(Document parsedHtml) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String parseNextSearchUrl(Document parsedHtml, MangasPage page, String query) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Manga parseHtmlToManga(String mangaUrl, String unparsedHtml) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<Chapter> parseHtmlToChapters(String unparsedHtml) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> parseHtmlToPageUrls(String unparsedHtml) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String parseHtmlToImageUrl(String unparsedHtml) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,69 +0,0 @@
|
||||
package eu.kanade.mangafeed.ui.catalogue;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ListView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.Bind;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnItemClick;
|
||||
import eu.kanade.mangafeed.R;
|
||||
import eu.kanade.mangafeed.data.source.base.Source;
|
||||
import eu.kanade.mangafeed.ui.main.MainActivity;
|
||||
import eu.kanade.mangafeed.ui.base.fragment.BaseRxFragment;
|
||||
import nucleus.factory.RequiresPresenter;
|
||||
import uk.co.ribot.easyadapter.EasyAdapter;
|
||||
|
||||
@RequiresPresenter(SourcePresenter.class)
|
||||
public class SourceFragment extends BaseRxFragment<SourcePresenter> {
|
||||
|
||||
@Bind(R.id.catalogue_list) ListView source_list;
|
||||
|
||||
private EasyAdapter<Source> adapter;
|
||||
|
||||
public static SourceFragment newInstance() {
|
||||
return new SourceFragment();
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
// Inflate the layout for this fragment
|
||||
View view = inflater.inflate(R.layout.fragment_source, container, false);
|
||||
ButterKnife.bind(this, view);
|
||||
|
||||
setToolbarTitle(R.string.label_catalogues);
|
||||
|
||||
createAdapter();
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@OnItemClick(R.id.catalogue_list)
|
||||
public void onSourceClick(int position) {
|
||||
Source source = adapter.getItem(position);
|
||||
MainActivity activity = (MainActivity) getActivity();
|
||||
|
||||
if (getPresenter().isValidSource(source)) {
|
||||
CatalogueFragment fragment = CatalogueFragment.newInstance(source.getSourceId());
|
||||
activity.setFragment(fragment);
|
||||
} else {
|
||||
Toast.makeText(getActivity(), R.string.source_requires_login, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
private void createAdapter() {
|
||||
adapter = new EasyAdapter<>(getActivity(), SourceHolder.class);
|
||||
source_list.setAdapter(adapter);
|
||||
}
|
||||
|
||||
public void setItems(List<Source> items) {
|
||||
adapter.setItems(items);
|
||||
}
|
||||
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
package eu.kanade.mangafeed.ui.catalogue;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import eu.kanade.mangafeed.R;
|
||||
import eu.kanade.mangafeed.data.source.base.Source;
|
||||
import uk.co.ribot.easyadapter.ItemViewHolder;
|
||||
import uk.co.ribot.easyadapter.PositionInfo;
|
||||
import uk.co.ribot.easyadapter.annotations.LayoutId;
|
||||
import uk.co.ribot.easyadapter.annotations.ViewId;
|
||||
|
||||
|
||||
@LayoutId(R.layout.item_source)
|
||||
public class SourceHolder extends ItemViewHolder<Source> {
|
||||
|
||||
@ViewId(R.id.source_name)
|
||||
TextView source_name;
|
||||
|
||||
public SourceHolder(View view) {
|
||||
super(view);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetValues(Source item, PositionInfo positionInfo) {
|
||||
source_name.setText(item.getName());
|
||||
}
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
package eu.kanade.mangafeed.ui.catalogue;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import eu.kanade.mangafeed.data.preference.PreferencesHelper;
|
||||
import eu.kanade.mangafeed.data.source.SourceManager;
|
||||
import eu.kanade.mangafeed.data.source.base.Source;
|
||||
import eu.kanade.mangafeed.ui.base.presenter.BasePresenter;
|
||||
|
||||
|
||||
public class SourcePresenter extends BasePresenter<SourceFragment> {
|
||||
|
||||
@Inject SourceManager sourceManager;
|
||||
@Inject PreferencesHelper prefs;
|
||||
|
||||
@Override
|
||||
protected void onTakeView(SourceFragment view) {
|
||||
super.onTakeView(view);
|
||||
|
||||
view.setItems(sourceManager.getSources());
|
||||
}
|
||||
|
||||
public boolean isValidSource(Source source) {
|
||||
if (!source.isLoginRequired() || source.isLogged())
|
||||
return true;
|
||||
|
||||
return !(prefs.getSourceUsername(source).equals("")
|
||||
|| prefs.getSourcePassword(source).equals(""));
|
||||
}
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="eu.kanade.mangafeed.ui.catalogue.SourceFragment">
|
||||
|
||||
|
||||
<ListView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/catalogue_list" />
|
||||
|
||||
</LinearLayout>
|
@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
tools:text="New Text"
|
||||
android:id="@+id/source_name"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingLeft="15dp"/>
|
||||
|
||||
</LinearLayout>
|
Loading…
Reference in new issue