remove deprecated methods, move chanloader to site package

refactor-toolbar
Floens 8 years ago
parent bfa5fcaca7
commit 78f37e6b4a
  1. 53
      Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java
  2. 2
      Clover/app/src/main/java/org/floens/chan/core/di/AppModule.java
  3. 2
      Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java
  4. 4
      Clover/app/src/main/java/org/floens/chan/core/pool/ChanLoaderFactory.java
  5. 23
      Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java
  6. 2
      Clover/app/src/main/java/org/floens/chan/core/site/ImageSearch.java
  7. 9
      Clover/app/src/main/java/org/floens/chan/core/site/Sites.java
  8. 4
      Clover/app/src/main/java/org/floens/chan/core/site/common/ChanReaderRequest.java
  9. 2
      Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoader.java
  10. 2
      Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoaderRequest.java
  11. 2
      Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoaderRequestParams.java
  12. 2
      Clover/app/src/main/java/org/floens/chan/core/site/loader/ChanLoaderResponse.java
  13. 4
      Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java
  14. 2
      Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java
  15. 22
      Clover/app/src/main/java/org/floens/chan/ui/controller/ThemeSettingsController.java
  16. 11
      Clover/app/src/main/java/org/floens/chan/ui/controller/ThreadController.java
  17. 3
      Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java
  18. 2
      Clover/app/src/main/res/values/strings.xml

@ -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 <http://www.gnu.org/licenses/>.
*/
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";
}
}

@ -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;

@ -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;

@ -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.
* <p>Each reference to a loader is a {@link org.floens.chan.chan.ChanLoader.ChanLoaderCallback}, these
* <p>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)}.
*/

@ -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);
}

@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.floens.chan.chan;
package org.floens.chan.core.site;
import java.util.ArrayList;
import java.util.List;

@ -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<Site> sites) {
Sites.defaultSite = sites.isEmpty() ? null : sites.get(0);
Sites.ALL_SITES = Collections.unmodifiableList(new ArrayList<>(sites));
}
}

@ -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;

@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.floens.chan.chan;
package org.floens.chan.core.site.loader;
import android.text.TextUtils;

@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.floens.chan.chan;
package org.floens.chan.core.site.loader;
import com.android.volley.Request;

@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.floens.chan.chan;
package org.floens.chan.core.site.loader;
import com.android.volley.Response;

@ -15,7 +15,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.floens.chan.chan;
package org.floens.chan.core.site.loader;
import org.floens.chan.core.model.Post;

@ -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);

@ -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;

@ -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;

@ -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) {

@ -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);

@ -367,7 +367,7 @@ Re-enable this permission in the app settings if you permanently disabled it."</
<string name="settings_group_browsing">Browsing</string>
<string name="setting_theme">Theme</string>
<string name="setting_theme_explanation">Swipe to change the theme.\nTap the toolbar to change its color.\n</string>
<string name="setting_theme_explanation">Swipe to change the theme.\nTap the toolbar menu to change its color.\n</string>
<string name="setting_theme_accent">Click here to change the FAB color</string>
<string name="setting_layout_mode">Layout mode</string>
<string name="setting_layout_mode_auto">Auto</string>

Loading…
Cancel
Save