Change name to "Spoiler image" when the image is a spoiler.

filtering
Floens 10 years ago
parent 6188d44612
commit e599b1313c
  1. 21
      Clover/app/src/main/java/org/floens/chan/core/presenter/ImageViewerPresenter.java
  2. 7
      Clover/app/src/main/java/org/floens/chan/ui/controller/ImageViewerController.java
  3. 1
      Clover/app/src/main/res/values/strings.xml

@ -68,7 +68,8 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager.
public void onViewMeasured() { public void onViewMeasured() {
// Pager is measured, but still invisible // Pager is measured, but still invisible
callback.startPreviewInTransition(images.get(selectedPosition)); callback.startPreviewInTransition(images.get(selectedPosition));
callback.setTitle(images.get(selectedPosition), selectedPosition, images.size()); PostImage postImage = images.get(selectedPosition);
callback.setTitle(postImage, selectedPosition, images.size(), postImage.spoiler);
} }
public void onInTransitionEnd() { public void onInTransitionEnd() {
@ -146,19 +147,24 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager.
onLowResInCenter(); onLowResInCenter();
} }
} }
} else {
if (multiImageView.getPostImage() == images.get(selectedPosition)) {
setTitle(images.get(selectedPosition), selectedPosition);
}
} }
} }
private void onPageSwipedTo(int position) { private void onPageSwipedTo(int position) {
callback.setTitle(images.get(selectedPosition), position, images.size()); PostImage postImage = images.get(selectedPosition);
callback.scrollToImage(images.get(selectedPosition)); setTitle(postImage, position);
callback.scrollToImage(postImage);
for (PostImage other : getOther(position, false)) { for (PostImage other : getOther(position, false)) {
callback.setImageMode(other, MultiImageView.Mode.LOWRES); callback.setImageMode(other, MultiImageView.Mode.LOWRES);
} }
// Already in LOWRES mode // Already in LOWRES mode
if (callback.getImageMode(images.get(selectedPosition)) == MultiImageView.Mode.LOWRES) { if (callback.getImageMode(postImage) == MultiImageView.Mode.LOWRES) {
onLowResInCenter(); onLowResInCenter();
} }
// Else let onModeChange handle it // Else let onModeChange handle it
@ -251,6 +257,11 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager.
callback.onVideoError(multiImageView); callback.onVideoError(multiImageView);
} }
private void setTitle(PostImage postImage, int position) {
callback.setTitle(postImage, position, images.size(),
postImage.spoiler && callback.getImageMode(postImage) == MultiImageView.Mode.LOWRES);
}
private List<PostImage> getOther(int position, boolean all) { private List<PostImage> getOther(int position, boolean all) {
List<PostImage> other = new ArrayList<>(3); List<PostImage> other = new ArrayList<>(3);
if (position - 1 >= 0) { if (position - 1 >= 0) {
@ -278,7 +289,7 @@ public class ImageViewerPresenter implements MultiImageView.Callback, ViewPager.
void setImageMode(PostImage postImage, MultiImageView.Mode mode); void setImageMode(PostImage postImage, MultiImageView.Mode mode);
void setTitle(PostImage postImage, int index, int count); void setTitle(PostImage postImage, int index, int count, boolean spoiler);
void scrollToImage(PostImage postImage); void scrollToImage(PostImage postImage);

@ -74,6 +74,7 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import static org.floens.chan.utils.AndroidUtils.dp; import static org.floens.chan.utils.AndroidUtils.dp;
import static org.floens.chan.utils.AndroidUtils.getString;
public class ImageViewerController extends Controller implements View.OnClickListener, ImageViewerPresenter.Callback, ToolbarMenuItem.ToolbarMenuItemCallback { public class ImageViewerController extends Controller implements View.OnClickListener, ImageViewerPresenter.Callback, ToolbarMenuItem.ToolbarMenuItemCallback {
private static final String TAG = "ImageViewerController"; private static final String TAG = "ImageViewerController";
@ -245,8 +246,12 @@ public class ImageViewerController extends Controller implements View.OnClickLis
return ((ImageViewerAdapter) pager.getAdapter()).getMode(postImage); return ((ImageViewerAdapter) pager.getAdapter()).getMode(postImage);
} }
public void setTitle(PostImage postImage, int index, int count) { public void setTitle(PostImage postImage, int index, int count, boolean spoiler) {
if (spoiler) {
navigationItem.title = getString(R.string.image_spoiler_filename);
} else {
navigationItem.title = postImage.filename + "." + postImage.extension; navigationItem.title = postImage.filename + "." + postImage.extension;
}
navigationItem.subtitle = (index + 1) + "/" + count; navigationItem.subtitle = (index + 1) + "/" + count;
navigationItem.updateTitle(); navigationItem.updateTitle();
} }

@ -74,6 +74,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<string name="image_not_found">Image not found</string> <string name="image_not_found">Image not found</string>
<string name="image_open_failed">Failed to open image</string> <string name="image_open_failed">Failed to open image</string>
<string name="image_download_confirm">%1$s images will be downloaded to %2$s</string> <string name="image_download_confirm">%1$s images will be downloaded to %2$s</string>
<string name="image_spoiler_filename">Spoiler image</string>
<string name="thread_board_select_add">Add more&#8230;</string> <string name="thread_board_select_add">Add more&#8230;</string>
<string name="thread_load_failed_ssl">HTTPS error</string> <string name="thread_load_failed_ssl">HTTPS error</string>

Loading…
Cancel
Save