mirror of https://github.com/kurisufriend/Clover
parent
cf7af07382
commit
3d6fe34518
@ -1,17 +1,35 @@ |
||||
package org.floens.chan.core.model; |
||||
|
||||
public class PostImage { |
||||
public enum Type { |
||||
STATIC, GIF, MOVIE |
||||
} |
||||
|
||||
public String thumbnailUrl; |
||||
public String imageUrl; |
||||
public String filename; |
||||
public int imageWidth; |
||||
public int imageHeight; |
||||
|
||||
public PostImage(String thumbnailUrl, String imageUrl, String filename, int imageWidth, int imageHeight) { |
||||
public Type type; |
||||
|
||||
public PostImage(String thumbnailUrl, String imageUrl, String filename, String extension, int imageWidth, int imageHeight) { |
||||
this.thumbnailUrl = thumbnailUrl; |
||||
this.imageUrl = imageUrl; |
||||
this.filename = filename; |
||||
this.imageWidth = imageWidth; |
||||
this.imageHeight = imageHeight; |
||||
|
||||
switch (extension) { |
||||
case "gif": |
||||
type = Type.GIF; |
||||
break; |
||||
case "webm": |
||||
type = Type.MOVIE; |
||||
break; |
||||
default: |
||||
type = Type.STATIC; |
||||
break; |
||||
} |
||||
} |
||||
} |
||||
|
@ -0,0 +1,40 @@ |
||||
package org.floens.chan.core.presenter; |
||||
|
||||
import org.floens.chan.core.model.PostImage; |
||||
|
||||
import java.util.List; |
||||
|
||||
public class ImageViewerPresenter { |
||||
private final Callback callback; |
||||
|
||||
private boolean exiting = false; |
||||
private List<PostImage> images; |
||||
private int selectedIndex; |
||||
|
||||
public ImageViewerPresenter(Callback callback) { |
||||
this.callback = callback; |
||||
} |
||||
|
||||
public void showImages(List<PostImage> images, int index) { |
||||
callback.startPreviewInTransition(); |
||||
|
||||
this.images = images; |
||||
selectedIndex = index; |
||||
} |
||||
|
||||
public void onExit() { |
||||
if (exiting) return; |
||||
exiting = true; |
||||
callback.startPreviewOutTransition(); |
||||
} |
||||
|
||||
public void onInTransitionEnd() { |
||||
PostImage image = images.get(selectedIndex); |
||||
} |
||||
|
||||
public interface Callback { |
||||
public void startPreviewInTransition(); |
||||
|
||||
public void startPreviewOutTransition(); |
||||
} |
||||
} |
@ -0,0 +1,35 @@ |
||||
package org.floens.chan.ui.adapter; |
||||
|
||||
import android.content.Context; |
||||
import android.view.View; |
||||
|
||||
import org.floens.chan.core.model.PostImage; |
||||
import org.floens.chan.ui.view.MultiImageView; |
||||
import org.floens.chan.ui.view.ViewPagerAdapter; |
||||
|
||||
import java.util.List; |
||||
|
||||
public class ImageViewerAdapter extends ViewPagerAdapter { |
||||
private final Context context; |
||||
private final List<PostImage> images; |
||||
private final MultiImageView.Callback multiImageViewCallback; |
||||
|
||||
public ImageViewerAdapter(Context context, List<PostImage> images, MultiImageView.Callback multiImageViewCallback) { |
||||
this.context = context; |
||||
this.images = images; |
||||
this.multiImageViewCallback = multiImageViewCallback; |
||||
} |
||||
|
||||
@Override |
||||
public View getView(int position) { |
||||
MultiImageView view = new MultiImageView(context); |
||||
view.bindPostImage(images.get(position), multiImageViewCallback); |
||||
|
||||
return view; |
||||
} |
||||
|
||||
@Override |
||||
public int getCount() { |
||||
return images.size(); |
||||
} |
||||
} |
@ -0,0 +1,25 @@ |
||||
package org.floens.chan.ui.view; |
||||
|
||||
import android.support.v4.view.PagerAdapter; |
||||
import android.view.View; |
||||
import android.view.ViewGroup; |
||||
|
||||
import org.floens.chan.utils.AndroidUtils; |
||||
|
||||
public abstract class ViewPagerAdapter extends PagerAdapter { |
||||
@Override |
||||
public Object instantiateItem(ViewGroup container, int position) { |
||||
return getView(position); |
||||
} |
||||
|
||||
@Override |
||||
public void destroyItem(ViewGroup container, int position, Object object) { |
||||
AndroidUtils.removeFromParentView((View) object); |
||||
} |
||||
|
||||
public boolean isViewFromObject(View view, Object object) { |
||||
return view == object; |
||||
} |
||||
|
||||
public abstract View getView(int position); |
||||
} |
Loading…
Reference in new issue