mirror of
https://github.com/mihonapp/mihon.git
synced 2025-11-19 07:27:28 +01:00
Catalogue now has a dropdown menu to select or change the source
This commit is contained in:
@@ -88,17 +88,17 @@ public class PreferencesHelper {
|
||||
}
|
||||
|
||||
public String getSourceUsername(Source source) {
|
||||
return prefs.getString(SOURCE_ACCOUNT_USERNAME + source.getSourceId(), "");
|
||||
return prefs.getString(SOURCE_ACCOUNT_USERNAME + source.getId(), "");
|
||||
}
|
||||
|
||||
public String getSourcePassword(Source source) {
|
||||
return prefs.getString(SOURCE_ACCOUNT_PASSWORD + source.getSourceId(), "");
|
||||
return prefs.getString(SOURCE_ACCOUNT_PASSWORD + source.getId(), "");
|
||||
}
|
||||
|
||||
public void setSourceCredentials(Source source, String username, String password) {
|
||||
prefs.edit()
|
||||
.putString(SOURCE_ACCOUNT_USERNAME + source.getSourceId(), username)
|
||||
.putString(SOURCE_ACCOUNT_PASSWORD + source.getSourceId(), password)
|
||||
.putString(SOURCE_ACCOUNT_USERNAME + source.getId(), username)
|
||||
.putString(SOURCE_ACCOUNT_PASSWORD + source.getId(), password)
|
||||
.apply();
|
||||
}
|
||||
|
||||
|
||||
@@ -19,21 +19,21 @@ public class SourceManager {
|
||||
public static final int MANGAFOX = 3;
|
||||
public static final int KISSMANGA = 4;
|
||||
|
||||
private HashMap<Integer, Source> mSourcesMap;
|
||||
private HashMap<Integer, Source> sourcesMap;
|
||||
private Context context;
|
||||
|
||||
public SourceManager(Context context) {
|
||||
mSourcesMap = new HashMap<>();
|
||||
sourcesMap = new HashMap<>();
|
||||
this.context = context;
|
||||
|
||||
initializeSources();
|
||||
}
|
||||
|
||||
public Source get(int sourceKey) {
|
||||
if (!mSourcesMap.containsKey(sourceKey)) {
|
||||
mSourcesMap.put(sourceKey, createSource(sourceKey));
|
||||
if (!sourcesMap.containsKey(sourceKey)) {
|
||||
sourcesMap.put(sourceKey, createSource(sourceKey));
|
||||
}
|
||||
return mSourcesMap.get(sourceKey);
|
||||
return sourcesMap.get(sourceKey);
|
||||
}
|
||||
|
||||
private Source createSource(int sourceKey) {
|
||||
@@ -52,14 +52,14 @@ public class SourceManager {
|
||||
}
|
||||
|
||||
private void initializeSources() {
|
||||
mSourcesMap.put(BATOTO, createSource(BATOTO));
|
||||
mSourcesMap.put(MANGAHERE, createSource(MANGAHERE));
|
||||
mSourcesMap.put(MANGAFOX, createSource(MANGAFOX));
|
||||
mSourcesMap.put(KISSMANGA, createSource(KISSMANGA));
|
||||
sourcesMap.put(BATOTO, createSource(BATOTO));
|
||||
sourcesMap.put(MANGAHERE, createSource(MANGAHERE));
|
||||
sourcesMap.put(MANGAFOX, createSource(MANGAFOX));
|
||||
sourcesMap.put(KISSMANGA, createSource(KISSMANGA));
|
||||
}
|
||||
|
||||
public List<Source> getSources() {
|
||||
return new ArrayList<>(mSourcesMap.values());
|
||||
return new ArrayList<>(sourcesMap.values());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ public abstract class BaseSource {
|
||||
public abstract String getName();
|
||||
|
||||
// Id of the source (must be declared and obtained from SourceManager to avoid conflicts)
|
||||
public abstract int getSourceId();
|
||||
public abstract int getId();
|
||||
|
||||
// Base url of the source, like: http://example.com
|
||||
public abstract String getBaseUrl();
|
||||
@@ -95,4 +95,8 @@ public abstract class BaseSource {
|
||||
return builder;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getName();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,6 +34,8 @@ public abstract class Source extends BaseSource {
|
||||
protected Headers requestHeaders;
|
||||
protected LazyHeaders glideHeaders;
|
||||
|
||||
public Source() {}
|
||||
|
||||
public Source(Context context) {
|
||||
App.get(context).getComponent().inject(this);
|
||||
requestHeaders = headersBuilder().build();
|
||||
@@ -188,7 +190,7 @@ public abstract class Source extends BaseSource {
|
||||
}
|
||||
|
||||
protected String getChapterCacheKey(String chapterUrl) {
|
||||
return getSourceId() + chapterUrl;
|
||||
return getId() + chapterUrl;
|
||||
}
|
||||
|
||||
protected LazyHeaders.Builder glideHeadersBuilder() {
|
||||
|
||||
@@ -70,7 +70,7 @@ public class Batoto extends Source {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSourceId() {
|
||||
public int getId() {
|
||||
return SourceManager.BATOTO;
|
||||
}
|
||||
|
||||
@@ -218,7 +218,7 @@ public class Batoto extends Source {
|
||||
Element urlElement = htmlBlock.select("a[href^=http://bato.to]").first();
|
||||
Element updateElement = htmlBlock.select("td").get(5);
|
||||
|
||||
mangaFromHtmlBlock.source = getSourceId();
|
||||
mangaFromHtmlBlock.source = getId();
|
||||
|
||||
if (urlElement != null) {
|
||||
mangaFromHtmlBlock.setUrl(urlElement.attr("href"));
|
||||
|
||||
@@ -55,7 +55,7 @@ public class Kissmanga extends Source {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSourceId() {
|
||||
public int getId() {
|
||||
return SourceManager.KISSMANGA;
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ public class Kissmanga extends Source {
|
||||
|
||||
private Manga constructPopularMangaFromHtmlBlock(Element htmlBlock) {
|
||||
Manga mangaFromHtmlBlock = new Manga();
|
||||
mangaFromHtmlBlock.source = getSourceId();
|
||||
mangaFromHtmlBlock.source = getId();
|
||||
|
||||
Element urlElement = htmlBlock.select("td a:eq(0)").first();
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ public class Mangafox extends Source {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSourceId() {
|
||||
public int getId() {
|
||||
return SourceManager.MANGAFOX;
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ public class Mangafox extends Source {
|
||||
|
||||
private Manga constructPopularMangaFromHtmlBlock(Element htmlBlock) {
|
||||
Manga mangaFromHtmlBlock = new Manga();
|
||||
mangaFromHtmlBlock.source = getSourceId();
|
||||
mangaFromHtmlBlock.source = getId();
|
||||
|
||||
Element urlElement = htmlBlock.select("a.title").first();
|
||||
|
||||
@@ -115,7 +115,7 @@ public class Mangafox extends Source {
|
||||
|
||||
private Manga constructSearchMangaFromHtmlBlock(Element htmlBlock) {
|
||||
Manga mangaFromHtmlBlock = new Manga();
|
||||
mangaFromHtmlBlock.source = getSourceId();
|
||||
mangaFromHtmlBlock.source = getId();
|
||||
|
||||
Element urlElement = htmlBlock.select("a.series_preview").first();
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ public class Mangahere extends Source {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSourceId() {
|
||||
public int getId() {
|
||||
return SourceManager.MANGAHERE;
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@ public class Mangahere extends Source {
|
||||
|
||||
private Manga constructPopularMangaFromHtmlBlock(Element htmlBlock) {
|
||||
Manga mangaFromHtmlBlock = new Manga();
|
||||
mangaFromHtmlBlock.source = getSourceId();
|
||||
mangaFromHtmlBlock.source = getId();
|
||||
|
||||
Element urlElement = htmlBlock.select("div.title > a").first();
|
||||
|
||||
@@ -153,7 +153,7 @@ public class Mangahere extends Source {
|
||||
|
||||
private Manga constructSearchMangaFromHtmlBlock(Element htmlBlock) {
|
||||
Manga mangaFromHtmlBlock = new Manga();
|
||||
mangaFromHtmlBlock.source = getSourceId();
|
||||
mangaFromHtmlBlock.source = getId();
|
||||
|
||||
Element urlElement = htmlBlock.select("a.manga_info").first();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user