|
|
|
@ -22,10 +22,24 @@ import android.content.Context; |
|
|
|
|
import android.content.DialogInterface; |
|
|
|
|
|
|
|
|
|
import org.floens.chan.R; |
|
|
|
|
import org.floens.chan.chan.ChanUrls; |
|
|
|
|
import org.floens.chan.core.model.Loadable; |
|
|
|
|
import org.floens.chan.ui.layout.ThreadLayout; |
|
|
|
|
import org.floens.chan.ui.toolbar.ToolbarMenu; |
|
|
|
|
import org.floens.chan.ui.toolbar.ToolbarMenuItem; |
|
|
|
|
import org.floens.chan.ui.view.FloatingMenuItem; |
|
|
|
|
import org.floens.chan.utils.AndroidUtils; |
|
|
|
|
|
|
|
|
|
public class ViewThreadController extends ThreadController implements ThreadLayout.ThreadLayoutCallback { |
|
|
|
|
import java.util.Arrays; |
|
|
|
|
|
|
|
|
|
public class ViewThreadController extends ThreadController implements ThreadLayout.ThreadLayoutCallback, ToolbarMenuItem.ToolbarMenuItemCallback { |
|
|
|
|
private static final int POST_ID = 1; |
|
|
|
|
private static final int PIN_ID = 2; |
|
|
|
|
private static final int REFRESH_ID = 101; |
|
|
|
|
private static final int SEARCH_ID = 102; |
|
|
|
|
private static final int SHARE_ID = 103; |
|
|
|
|
|
|
|
|
|
private ToolbarMenuItem pinItem; |
|
|
|
|
private Loadable loadable; |
|
|
|
|
|
|
|
|
|
public ViewThreadController(Context context) { |
|
|
|
@ -46,6 +60,17 @@ public class ViewThreadController extends ThreadController implements ThreadLayo |
|
|
|
|
threadLayout.getPresenter().requestData(); |
|
|
|
|
|
|
|
|
|
navigationItem.title = loadable.title; |
|
|
|
|
navigationItem.menu = new ToolbarMenu(context); |
|
|
|
|
|
|
|
|
|
navigationItem.menu.addItem(new ToolbarMenuItem(context, this, POST_ID, R.drawable.ic_action_write)); |
|
|
|
|
pinItem = navigationItem.menu.addItem(new ToolbarMenuItem(context, this, PIN_ID, R.drawable.ic_bookmark)); |
|
|
|
|
navigationItem.createOverflow(context, this, Arrays.asList( |
|
|
|
|
new FloatingMenuItem(REFRESH_ID, context.getString(R.string.action_reload)), |
|
|
|
|
new FloatingMenuItem(SEARCH_ID, context.getString(R.string.action_search)), |
|
|
|
|
new FloatingMenuItem(SHARE_ID, context.getString(R.string.action_share)) |
|
|
|
|
)); |
|
|
|
|
|
|
|
|
|
setPinIconState(threadLayout.getPresenter().isPinned()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@ -63,4 +88,37 @@ public class ViewThreadController extends ThreadController implements ThreadLayo |
|
|
|
|
.setMessage("/" + threadLoadable.board + "/" + threadLoadable.no) |
|
|
|
|
.show(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onMenuItemClicked(ToolbarMenuItem item) { |
|
|
|
|
switch (item.getId()) { |
|
|
|
|
case PIN_ID: |
|
|
|
|
setPinIconState(threadLayout.getPresenter().pin()); |
|
|
|
|
break; |
|
|
|
|
case POST_ID: |
|
|
|
|
// TODO
|
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onSubMenuItemClicked(ToolbarMenuItem parent, FloatingMenuItem item) { |
|
|
|
|
switch ((Integer) item.getId()) { |
|
|
|
|
case REFRESH_ID: |
|
|
|
|
threadLayout.getPresenter().requestData(); |
|
|
|
|
break; |
|
|
|
|
case SEARCH_ID: |
|
|
|
|
// TODO
|
|
|
|
|
break; |
|
|
|
|
case SHARE_ID: |
|
|
|
|
Loadable loadable = threadLayout.getPresenter().getLoadable(); |
|
|
|
|
String link = ChanUrls.getThreadUrlDesktop(loadable.board, loadable.no); |
|
|
|
|
AndroidUtils.shareLink(link); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setPinIconState(boolean pinned) { |
|
|
|
|
pinItem.setImage(pinned ? R.drawable.ic_bookmark_filled : R.drawable.ic_bookmark); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|