From 78f37e6b4a8591652bd89c63e97156cc9e95b04b Mon Sep 17 00:00:00 2001 From: Floens Date: Mon, 1 Jan 2018 13:06:22 +0100 Subject: [PATCH] remove deprecated methods, move chanloader to site package --- .../java/org/floens/chan/chan/ChanUrls.java | 53 ------------------- .../org/floens/chan/core/di/AppModule.java | 2 +- .../chan/core/manager/WatchManager.java | 2 +- .../chan/core/pool/ChanLoaderFactory.java | 4 +- .../chan/core/presenter/ThreadPresenter.java | 23 ++++---- .../chan/{chan => core/site}/ImageSearch.java | 2 +- .../java/org/floens/chan/core/site/Sites.java | 9 ---- .../core/site/common/ChanReaderRequest.java | 4 +- .../site/loader}/ChanLoader.java | 2 +- .../site/loader}/ChanLoaderRequest.java | 2 +- .../site/loader}/ChanLoaderRequestParams.java | 2 +- .../site/loader}/ChanLoaderResponse.java | 2 +- .../chan/ui/controller/BrowseController.java | 4 +- .../ui/controller/ImageViewerController.java | 2 +- .../controller/ThemeSettingsController.java | 22 +++++--- .../chan/ui/controller/ThreadController.java | 11 ++-- .../ui/controller/ViewThreadController.java | 3 +- Clover/app/src/main/res/values/strings.xml | 2 +- 18 files changed, 44 insertions(+), 107 deletions(-) delete mode 100644 Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java rename Clover/app/src/main/java/org/floens/chan/{chan => core/site}/ImageSearch.java (98%) rename Clover/app/src/main/java/org/floens/chan/{chan => core/site/loader}/ChanLoader.java (99%) rename Clover/app/src/main/java/org/floens/chan/{chan => core/site/loader}/ChanLoaderRequest.java (96%) rename Clover/app/src/main/java/org/floens/chan/{chan => core/site/loader}/ChanLoaderRequestParams.java (97%) rename Clover/app/src/main/java/org/floens/chan/{chan => core/site/loader}/ChanLoaderResponse.java (96%) diff --git a/Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java b/Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java deleted file mode 100644 index e7379e71..00000000 --- a/Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Clover - 4chan browser https://github.com/Floens/Clover/ - * Copyright (C) 2014 Floens - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package org.floens.chan.chan; - -import org.floens.chan.core.settings.ChanSettings; - -@Deprecated -public class ChanUrls { - @Deprecated - public static String getCaptchaSiteKey() { - return "6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc"; - } - - @Deprecated - public static String getBoardUrlDesktop(String board) { - return scheme() + "://boards.4chan.org/" + board + "/"; - } - - @Deprecated - public static String getThreadUrlDesktop(String board, int no) { - return scheme() + "://boards.4chan.org/" + board + "/thread/" + no; - } - - @Deprecated - public static String getThreadUrlDesktop(String board, int no, int postNo) { - return scheme() + "://boards.4chan.org/" + board + "/thread/" + no + "#p" + postNo; - } - - @Deprecated - public static String getCatalogUrlDesktop(String board) { - return scheme() + "://boards.4chan.org/" + board + "/catalog"; - } - - @Deprecated - private static String scheme() { - return ChanSettings.networkHttps.get() ? "https" : "http"; - } -} diff --git a/Clover/app/src/main/java/org/floens/chan/core/di/AppModule.java b/Clover/app/src/main/java/org/floens/chan/core/di/AppModule.java index 7d77283b..5ecc180b 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/di/AppModule.java +++ b/Clover/app/src/main/java/org/floens/chan/core/di/AppModule.java @@ -6,7 +6,7 @@ import com.android.volley.RequestQueue; import com.android.volley.toolbox.ImageLoader; import org.floens.chan.ChanApplication; -import org.floens.chan.chan.ChanLoader; +import org.floens.chan.core.site.loader.ChanLoader; import org.floens.chan.core.cache.FileCache; import org.floens.chan.core.database.DatabaseManager; import org.floens.chan.core.database.LoadableProvider; diff --git a/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java b/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java index e362516e..31675916 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java +++ b/Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java @@ -27,7 +27,7 @@ import android.os.Message; import android.os.PowerManager; import org.floens.chan.Chan; -import org.floens.chan.chan.ChanLoader; +import org.floens.chan.core.site.loader.ChanLoader; import org.floens.chan.core.database.DatabaseManager; import org.floens.chan.core.database.DatabasePinManager; import org.floens.chan.core.exception.ChanLoaderException; diff --git a/Clover/app/src/main/java/org/floens/chan/core/pool/ChanLoaderFactory.java b/Clover/app/src/main/java/org/floens/chan/core/pool/ChanLoaderFactory.java index 0555e56b..5d0e6a6e 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/pool/ChanLoaderFactory.java +++ b/Clover/app/src/main/java/org/floens/chan/core/pool/ChanLoaderFactory.java @@ -19,7 +19,7 @@ package org.floens.chan.core.pool; import android.util.LruCache; -import org.floens.chan.chan.ChanLoader; +import org.floens.chan.core.site.loader.ChanLoader; import org.floens.chan.core.model.orm.Loadable; import java.util.HashMap; @@ -30,7 +30,7 @@ import javax.inject.Singleton; /** * ChanLoaderFactory is a factory for ChanLoaders. ChanLoaders for threads are cached. - *

Each reference to a loader is a {@link org.floens.chan.chan.ChanLoader.ChanLoaderCallback}, these + *

Each reference to a loader is a {@link ChanLoader.ChanLoaderCallback}, these * references can be obtained with {@link #obtain(Loadable, ChanLoader.ChanLoaderCallback)}} and released * with {@link #release(ChanLoader, ChanLoader.ChanLoaderCallback)}. */ diff --git a/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java b/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java index fef4f3aa..f6bfabf1 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java +++ b/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java @@ -21,8 +21,7 @@ import android.text.TextUtils; import org.floens.chan.Chan; import org.floens.chan.R; -import org.floens.chan.chan.ChanLoader; -import org.floens.chan.chan.ChanUrls; +import org.floens.chan.core.site.loader.ChanLoader; import org.floens.chan.core.database.DatabaseManager; import org.floens.chan.core.exception.ChanLoaderException; import org.floens.chan.core.manager.WatchManager; @@ -513,20 +512,16 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt Loadable pinLoadable = databaseManager.getDatabaseLoadableManager().get(Loadable.forThread(loadable.site, post.board, post.no)); watchManager.createPin(pinLoadable, post); break; - case POST_OPTION_OPEN_BROWSER: - AndroidUtils.openLink( - post.isOP ? - ChanUrls.getThreadUrlDesktop(post.boardId, post.no) : - ChanUrls.getThreadUrlDesktop(post.boardId, loadable.no, post.no) - ); + case POST_OPTION_OPEN_BROWSER: { + String url = loadable.site.desktopUrl(loadable, post.isOP ? null : post); + AndroidUtils.openLink(url); break; - case POST_OPTION_SHARE: - AndroidUtils.shareLink( - post.isOP ? - ChanUrls.getThreadUrlDesktop(post.boardId, post.no) : - ChanUrls.getThreadUrlDesktop(post.boardId, loadable.no, post.no) - ); + } + case POST_OPTION_SHARE: { + String url = loadable.site.desktopUrl(loadable, post.isOP ? null : post); + AndroidUtils.shareLink(url); break; + } case POST_OPTION_HIDE: threadPresenterCallback.hideThread(post); } diff --git a/Clover/app/src/main/java/org/floens/chan/chan/ImageSearch.java b/Clover/app/src/main/java/org/floens/chan/core/site/ImageSearch.java similarity index 98% rename from Clover/app/src/main/java/org/floens/chan/chan/ImageSearch.java rename to Clover/app/src/main/java/org/floens/chan/core/site/ImageSearch.java index 315857cf..f79686d0 100644 --- a/Clover/app/src/main/java/org/floens/chan/chan/ImageSearch.java +++ b/Clover/app/src/main/java/org/floens/chan/core/site/ImageSearch.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package org.floens.chan.chan; +package org.floens.chan.core.site; import java.util.ArrayList; import java.util.List; diff --git a/Clover/app/src/main/java/org/floens/chan/core/site/Sites.java b/Clover/app/src/main/java/org/floens/chan/core/site/Sites.java index 673d6b9c..87b2a67e 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/site/Sites.java +++ b/Clover/app/src/main/java/org/floens/chan/core/site/Sites.java @@ -40,9 +40,6 @@ public class Sites { return ALL_SITES; } - @Deprecated - private static Site defaultSite; - public static Site forId(int id) { // TODO: better datastructure for (Site site : ALL_SITES) { @@ -54,13 +51,7 @@ public class Sites { return null; } - @Deprecated - public static Site defaultSite() { - return defaultSite; - } - static void initialize(List sites) { - Sites.defaultSite = sites.isEmpty() ? null : sites.get(0); Sites.ALL_SITES = Collections.unmodifiableList(new ArrayList<>(sites)); } } diff --git a/Clover/app/src/main/java/org/floens/chan/core/site/common/ChanReaderRequest.java b/Clover/app/src/main/java/org/floens/chan/core/site/common/ChanReaderRequest.java index 34fa06cf..9fe2582a 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/site/common/ChanReaderRequest.java +++ b/Clover/app/src/main/java/org/floens/chan/core/site/common/ChanReaderRequest.java @@ -19,8 +19,8 @@ package org.floens.chan.core.site.common; import android.util.JsonReader; -import org.floens.chan.chan.ChanLoaderRequestParams; -import org.floens.chan.chan.ChanLoaderResponse; +import org.floens.chan.core.site.loader.ChanLoaderRequestParams; +import org.floens.chan.core.site.loader.ChanLoaderResponse; import org.floens.chan.core.database.DatabaseManager; import org.floens.chan.core.database.DatabaseSavedReplyManager; import org.floens.chan.core.manager.FilterEngine; diff --git a/Clover/app/src/main/java/org/floens/chan/chan/ChanLoader.java b/Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoader.java similarity index 99% rename from Clover/app/src/main/java/org/floens/chan/chan/ChanLoader.java rename to Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoader.java index 2e58000f..0b8ea957 100644 --- a/Clover/app/src/main/java/org/floens/chan/chan/ChanLoader.java +++ b/Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoader.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package org.floens.chan.chan; +package org.floens.chan.core.site.loader; import android.text.TextUtils; diff --git a/Clover/app/src/main/java/org/floens/chan/chan/ChanLoaderRequest.java b/Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoaderRequest.java similarity index 96% rename from Clover/app/src/main/java/org/floens/chan/chan/ChanLoaderRequest.java rename to Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoaderRequest.java index 8df98937..951a1fcd 100644 --- a/Clover/app/src/main/java/org/floens/chan/chan/ChanLoaderRequest.java +++ b/Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoaderRequest.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package org.floens.chan.chan; +package org.floens.chan.core.site.loader; import com.android.volley.Request; diff --git a/Clover/app/src/main/java/org/floens/chan/chan/ChanLoaderRequestParams.java b/Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoaderRequestParams.java similarity index 97% rename from Clover/app/src/main/java/org/floens/chan/chan/ChanLoaderRequestParams.java rename to Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoaderRequestParams.java index 6a7b8b52..3bd1b86d 100644 --- a/Clover/app/src/main/java/org/floens/chan/chan/ChanLoaderRequestParams.java +++ b/Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoaderRequestParams.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package org.floens.chan.chan; +package org.floens.chan.core.site.loader; import com.android.volley.Response; diff --git a/Clover/app/src/main/java/org/floens/chan/chan/ChanLoaderResponse.java b/Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoaderResponse.java similarity index 96% rename from Clover/app/src/main/java/org/floens/chan/chan/ChanLoaderResponse.java rename to Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoaderResponse.java index d13a7f62..e45e6c68 100644 --- a/Clover/app/src/main/java/org/floens/chan/chan/ChanLoaderResponse.java +++ b/Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoaderResponse.java @@ -15,7 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -package org.floens.chan.chan; +package org.floens.chan.core.site.loader; import org.floens.chan.core.model.Post; diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java index 438aedf9..5f20d341 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java @@ -25,7 +25,6 @@ import android.view.animation.DecelerateInterpolator; import android.widget.ImageView; import org.floens.chan.R; -import org.floens.chan.chan.ChanUrls; import org.floens.chan.core.model.orm.Board; import org.floens.chan.core.model.orm.Loadable; import org.floens.chan.core.model.orm.Pin; @@ -217,7 +216,8 @@ public class BrowseController extends ThreadController implements ToolbarMenuIte private void handleShareAndOpenInBrowser(ThreadPresenter presenter, Integer id) { if (presenter.isBound()) { - String link = ChanUrls.getCatalogUrlDesktop(presenter.getLoadable().boardCode); + Loadable loadable = presenter.getLoadable(); + String link = loadable.site.desktopUrl(loadable, null); if (id == SHARE_ID) { AndroidUtils.shareLink(link); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java index a5a653d5..bf9753c1 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java @@ -46,7 +46,7 @@ import com.android.volley.toolbox.ImageLoader; import com.davemorrissey.labs.subscaleview.ImageViewState; import org.floens.chan.R; -import org.floens.chan.chan.ImageSearch; +import org.floens.chan.core.site.ImageSearch; import org.floens.chan.controller.Controller; import org.floens.chan.core.model.PostImage; import org.floens.chan.core.presenter.ImageViewerPresenter; diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/ThemeSettingsController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/ThemeSettingsController.java index 20e6ce41..c7f2aff9 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/ThemeSettingsController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/ThemeSettingsController.java @@ -63,18 +63,28 @@ import org.floens.chan.utils.Time; import java.util.ArrayList; import java.util.List; -import static org.floens.chan.Chan.getGraph; import static org.floens.chan.utils.AndroidUtils.dp; import static org.floens.chan.utils.AndroidUtils.getAttrColor; import static org.floens.chan.utils.AndroidUtils.getString; public class ThemeSettingsController extends Controller implements View.OnClickListener { - private PostCell.PostCellCallback DUMMY_POST_CALLBACK = new PostCell.PostCellCallback() { - private Loadable loadable = Loadable.forThread(Sites.defaultSite(), new Board(Sites.defaultSite(), "a", "a", false, false), 1234); + private Board dummyBoard; + { + dummyBoard = new Board(); + dummyBoard.name = "name"; + dummyBoard.code = "code"; + } + + private Loadable dummyLoadable; + { + dummyLoadable = Loadable.emptyLoadable(); + dummyLoadable.mode = Loadable.Mode.THREAD; + } + private PostCell.PostCellCallback dummyPostCallback = new PostCell.PostCellCallback() { @Override public Loadable getLoadable() { - return loadable; + return dummyLoadable; } @Override @@ -247,7 +257,7 @@ public class ThemeSettingsController extends Controller implements View.OnClickL Context themeContext = new ContextThemeWrapper(context, theme.resValue); Post.Builder builder = new Post.Builder() - .board(new Board(Sites.defaultSite(), "a", "a", false, false)) + .board(dummyBoard) .id(123456789) .opId(1) .setUnixTimestampSeconds((Time.get() - (30 * 60 * 1000)) / 1000) @@ -325,7 +335,7 @@ public class ThemeSettingsController extends Controller implements View.OnClickL themeContext.getResources().getDimensionPixelSize(R.dimen.toolbar_height))); PostCell postCell = (PostCell) LayoutInflater.from(themeContext).inflate(R.layout.cell_post, null); - postCell.setPost(theme, post, DUMMY_POST_CALLBACK, false, false, false, -1, true, ChanSettings.PostViewMode.LIST); + postCell.setPost(theme, post, dummyPostCallback, false, false, false, -1, true, ChanSettings.PostViewMode.LIST); linearLayout.addView(postCell, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)); return linearLayout; diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/ThreadController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/ThreadController.java index 36c94cca..0300147d 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/ThreadController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/ThreadController.java @@ -28,14 +28,13 @@ import android.view.LayoutInflater; import org.floens.chan.Chan; import org.floens.chan.R; -import org.floens.chan.chan.ChanUrls; import org.floens.chan.controller.Controller; import org.floens.chan.core.manager.FilterType; +import org.floens.chan.core.model.Post; +import org.floens.chan.core.model.PostImage; import org.floens.chan.core.model.orm.Filter; import org.floens.chan.core.model.orm.Loadable; import org.floens.chan.core.model.orm.Pin; -import org.floens.chan.core.model.Post; -import org.floens.chan.core.model.PostImage; import org.floens.chan.core.settings.ChanSettings; import org.floens.chan.ui.helper.RefreshUIMessage; import org.floens.chan.ui.layout.ThreadLayout; @@ -141,11 +140,7 @@ public abstract class ThreadController extends Controller implements ThreadLayou NdefMessage message = null; if (loadable != null) { - if (loadable.isThreadMode()) { - url = ChanUrls.getThreadUrlDesktop(loadable.boardCode, loadable.no); - } else if (loadable.isCatalogMode()) { - url = ChanUrls.getCatalogUrlDesktop(loadable.boardCode); - } + url = loadable.site.desktopUrl(loadable, null); } if (url != null) { diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java index 8b0c0d3b..d01a0beb 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java @@ -23,7 +23,6 @@ import android.content.DialogInterface; import android.support.v7.app.AlertDialog; import org.floens.chan.R; -import org.floens.chan.chan.ChanUrls; import org.floens.chan.controller.Controller; import org.floens.chan.controller.NavigationController; import org.floens.chan.core.manager.WatchManager; @@ -204,7 +203,7 @@ public class ViewThreadController extends ThreadController implements ThreadLayo case SHARE_ID: case OPEN_BROWSER_ID: Loadable loadable = threadLayout.getPresenter().getLoadable(); - String link = ChanUrls.getThreadUrlDesktop(loadable.boardCode, loadable.no); + String link = loadable.site.desktopUrl(loadable, null); if (id == SHARE_ID) { AndroidUtils.shareLink(link); diff --git a/Clover/app/src/main/res/values/strings.xml b/Clover/app/src/main/res/values/strings.xml index 75b99d6d..3d88b63e 100644 --- a/Clover/app/src/main/res/values/strings.xml +++ b/Clover/app/src/main/res/values/strings.xml @@ -367,7 +367,7 @@ Re-enable this permission in the app settings if you permanently disabled it."Browsing Theme - Swipe to change the theme.\nTap the toolbar to change its color.\n + Swipe to change the theme.\nTap the toolbar menu to change its color.\n Click here to change the FAB color Layout mode Auto