Add 'Open in browser' for posts and threads

multisite
Nikola Yanakiev 10 years ago
parent 17705278ab
commit feb2a1203e
  1. 9
      Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java
  2. 16
      Clover/app/src/main/java/org/floens/chan/ui/controller/ViewThreadController.java

@ -68,6 +68,7 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt
private static final int POST_OPTION_SHARE = 10; private static final int POST_OPTION_SHARE = 10;
private static final int POST_OPTION_HIGHLIGHT_TRIPCODE = 11; private static final int POST_OPTION_HIGHLIGHT_TRIPCODE = 11;
private static final int POST_OPTION_HIDE = 12; private static final int POST_OPTION_HIDE = 12;
private static final int POST_OPTION_OPEN = 13;
private WatchManager watchManager; private WatchManager watchManager;
private DatabaseManager databaseManager; private DatabaseManager databaseManager;
@ -359,6 +360,7 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt
menu.add(new FloatingMenuItem(POST_OPTION_INFO, R.string.post_info)); menu.add(new FloatingMenuItem(POST_OPTION_INFO, R.string.post_info));
menu.add(new FloatingMenuItem(POST_OPTION_LINKS, R.string.post_show_links)); menu.add(new FloatingMenuItem(POST_OPTION_LINKS, R.string.post_show_links));
menu.add(new FloatingMenuItem(POST_OPTION_OPEN, R.string.action_open_browser));
menu.add(new FloatingMenuItem(POST_OPTION_SHARE, R.string.post_share)); menu.add(new FloatingMenuItem(POST_OPTION_SHARE, R.string.post_share));
menu.add(new FloatingMenuItem(POST_OPTION_COPY_TEXT, R.string.post_copy_text)); menu.add(new FloatingMenuItem(POST_OPTION_COPY_TEXT, R.string.post_copy_text));
menu.add(new FloatingMenuItem(POST_OPTION_REPORT, R.string.post_report)); menu.add(new FloatingMenuItem(POST_OPTION_REPORT, R.string.post_report));
@ -423,6 +425,13 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt
case POST_OPTION_PIN: case POST_OPTION_PIN:
watchManager.addPin(post); watchManager.addPin(post);
break; break;
case POST_OPTION_OPEN:
AndroidUtils.openLink(
post.isOP ?
ChanUrls.getThreadUrlDesktop(post.board, post.no) :
ChanUrls.getThreadUrlDesktop(post.board, loadable.no, post.no)
);
break;
case POST_OPTION_SHARE: case POST_OPTION_SHARE:
AndroidUtils.shareLink( AndroidUtils.shareLink(
post.isOP ? post.isOP ?

@ -45,6 +45,7 @@ public class ViewThreadController extends ThreadController implements ThreadLayo
private static final int SHARE_ID = 103; private static final int SHARE_ID = 103;
private static final int UP_ID = 104; private static final int UP_ID = 104;
private static final int DOWN_ID = 105; private static final int DOWN_ID = 105;
private static final int OPEN_ID = 106;
private ToolbarMenuItem pinItem; private ToolbarMenuItem pinItem;
private Loadable loadable; private Loadable loadable;
@ -72,6 +73,7 @@ public class ViewThreadController extends ThreadController implements ThreadLayo
navigationItem.createOverflow(context, this, Arrays.asList( navigationItem.createOverflow(context, this, Arrays.asList(
new FloatingMenuItem(REFRESH_ID, context.getString(R.string.action_reload)), new FloatingMenuItem(REFRESH_ID, context.getString(R.string.action_reload)),
new FloatingMenuItem(SEARCH_ID, context.getString(R.string.action_search)), new FloatingMenuItem(SEARCH_ID, context.getString(R.string.action_search)),
new FloatingMenuItem(OPEN_ID, context.getString(R.string.action_open_browser)),
new FloatingMenuItem(SHARE_ID, context.getString(R.string.action_share)), new FloatingMenuItem(SHARE_ID, context.getString(R.string.action_share)),
new FloatingMenuItem(UP_ID, context.getString(R.string.action_up)), new FloatingMenuItem(UP_ID, context.getString(R.string.action_up)),
new FloatingMenuItem(DOWN_ID, context.getString(R.string.action_down)) new FloatingMenuItem(DOWN_ID, context.getString(R.string.action_down))
@ -163,7 +165,9 @@ public class ViewThreadController extends ThreadController implements ThreadLayo
@Override @Override
public void onSubMenuItemClicked(ToolbarMenuItem parent, FloatingMenuItem item) { public void onSubMenuItemClicked(ToolbarMenuItem parent, FloatingMenuItem item) {
switch ((Integer) item.getId()) { Integer id = (Integer) item.getId();
switch (id) {
case REFRESH_ID: case REFRESH_ID:
threadLayout.getPresenter().requestData(); threadLayout.getPresenter().requestData();
break; break;
@ -171,13 +175,19 @@ public class ViewThreadController extends ThreadController implements ThreadLayo
navigationController.showSearch(); navigationController.showSearch();
break; break;
case SHARE_ID: case SHARE_ID:
case OPEN_ID:
Loadable loadable = threadLayout.getPresenter().getLoadable(); Loadable loadable = threadLayout.getPresenter().getLoadable();
String link = ChanUrls.getThreadUrlDesktop(loadable.board, loadable.no); String link = ChanUrls.getThreadUrlDesktop(loadable.board, loadable.no);
AndroidUtils.shareLink(link);
if(id == SHARE_ID)
AndroidUtils.shareLink(link);
else
AndroidUtils.openLink(link);
break; break;
case UP_ID: case UP_ID:
case DOWN_ID: case DOWN_ID:
boolean up = ((Integer)item.getId()) == UP_ID; boolean up = id == UP_ID;
threadLayout.getPresenter().scrollTo(up ? 0 : -1, false); threadLayout.getPresenter().scrollTo(up ? 0 : -1, false);
break; break;
} }

Loading…
Cancel
Save