package typical_if.android.adapter; import android.graphics.Bitmap; import android.os.Bundle; import android.support.v4.app.FragmentManager; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.RelativeLayout; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.FailReason; import com.nostra13.universalimageloader.core.assist.ImageScaleType; import com.nostra13.universalimageloader.core.listener.ImageLoadingListener; import com.stanko.tools.Log; import com.vk.sdk.api.model.VKApiPhoto; import java.util.ArrayList; import typical_if.android.R; import typical_if.android.TIFApp; import typical_if.android.util.PhotoUrlHelper; /** * Created by LJ on 21.07.2014. */ public class FullScreenImageAdapter extends PagerAdapter { final int displayHeight = TIFApp.getDisplayHeight(); private final VKApiPhoto fromPhoto; LayoutInflater inflater; public ArrayList<VKApiPhoto> photos; // public int count ; public FragmentManager fragmentManager; public Bundle arguments; public View rootView; private DisplayImageOptions options = new DisplayImageOptions.Builder() .cacheOnDisc(true) .cacheInMemory(true) .resetViewBeforeLoading(false) .bitmapConfig(Bitmap.Config.RGB_565) .imageScaleType(ImageScaleType.EXACTLY).build(); public FullScreenImageAdapter(VKApiPhoto fromPhoto, ArrayList<VKApiPhoto> photos, LayoutInflater inflater, Bundle arguments, long groupID, long albumID, long userID, FragmentManager fragmentManager, View rootView) { this.fromPhoto = fromPhoto; this.rootView = rootView; this.photos = photos; this.inflater = inflater; this.arguments = arguments; this.fragmentManager = fragmentManager; // count = photos.size(); } @Override public int getCount() { return photos.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == ((RelativeLayout) object); } @Override public Object instantiateItem(ViewGroup container, final int position) { View viewPhotoFullScreen = inflater.inflate(R.layout.fragment_full_screen_item, null); final ImageView imageView = (ImageView) viewPhotoFullScreen.findViewById(R.id.full_screen_photo); final ProgressBar pbImageIsLoading = (ProgressBar) viewPhotoFullScreen.findViewById(R.id.pbImageIsLoading); ((ViewPager) container).addView(viewPhotoFullScreen); // Log.d("Current VIEW", position + ""); Log.d ("PHOTOS00"," = "+photos.get(position)+" = "+ imageView+ " ="+ pbImageIsLoading); loadPreview(/*position, */photos.get(position), imageView, pbImageIsLoading);/////////////////////////////////////////////////////////////////// return viewPhotoFullScreen; } @Override public void destroyItem(ViewGroup container, int position, Object object) { (container).removeView((RelativeLayout) object); } private void loadPreview(/*final int position, */final VKApiPhoto photo, final ImageView imageView, final ProgressBar pbImageIsLoading) { ImageLoader.getInstance().displayImage(photo.photo_75, imageView, options); Log.d("fromPhoto:" , "" +fromPhoto.getId()); final String urlOfPhotoPreview; if (photo.getId()==fromPhoto.getId()){ Log.i(this, "photo is SAME as fromPhoto!"); if (PhotoUrlHelper.isImageCached(fromPhoto.photo_604)) Log.i(this, "fromPhoto is cached!!!"); urlOfPhotoPreview = fromPhoto.photo_604; } else { urlOfPhotoPreview = PhotoUrlHelper.getPreviewUrl(photo); } final String urlOfFullScreenPhoto = PhotoUrlHelper.getBestQualityUrl(photo.src); Log.i(this, "urlOfFullScreenPhoto: "+urlOfFullScreenPhoto); // Glide.with(TIFApp.getAppContext()) // .load(urlOfPhotoPreview) // .placeholder(R.drawable.event_stub) //// .crossFade() // .into(new GlideDrawableImageViewTarget(imageView){ // @Override // public void onStart() { // pbImageIsLoading.setVisibility(View.VISIBLE); // super.onStart(); // } // // @Override // public void onLoadFailed(Exception e, Drawable errorDrawable) { // pbImageIsLoading.setVisibility(View.GONE); // super.onLoadFailed(e, errorDrawable); // } // // @Override // public void onLoadCleared(Drawable placeholder) { // pbImageIsLoading.setVisibility(View.GONE); // super.onLoadCleared(placeholder); // } // // @Override // public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> animation) { // pbImageIsLoading.setVisibility(View.GONE); // super.onResourceReady(resource, animation); // loadFullScreenPhoto(urlOfFullScreenPhoto, imageView, pbImageIsLoading); // } // }); ImageLoader.getInstance().displayImage(urlOfPhotoPreview, imageView, options, new ImageLoadingListener() { @Override public void onLoadingStarted(String imageUri, View view) { pbImageIsLoading.setVisibility(View.VISIBLE); } @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { pbImageIsLoading.setVisibility(View.GONE); } @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { loadFullScreenPhoto(urlOfFullScreenPhoto, imageView, pbImageIsLoading); } @Override public void onLoadingCancelled(String imageUri, View view) { pbImageIsLoading.setVisibility(View.GONE); } }); } void loadFullScreenPhoto(final String url, final ImageView imageView, final ProgressBar pbImageIsLoading) { // Glide.with(TIFApp.getAppContext()) // .load(url) //// .placeholder(R.drawable.event_stub) // .crossFade() // .into(new GlideDrawableImageViewTarget(imageView){ // @Override // public void onStart() { // pbImageIsLoading.setVisibility(View.VISIBLE); // super.onStart(); // } // // @Override // public void onLoadFailed(Exception e, Drawable errorDrawable) { // pbImageIsLoading.setVisibility(View.GONE); // super.onLoadFailed(e, errorDrawable); // } // // @Override // public void onLoadCleared(Drawable placeholder) { // pbImageIsLoading.setVisibility(View.GONE); // super.onLoadCleared(placeholder); // } // // @Override // public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> animation) { // pbImageIsLoading.setVisibility(View.GONE); // super.onResourceReady(resource, animation); // } // }); ImageLoader.getInstance().displayImage(url, imageView, options, new ImageLoadingListener() { @Override public void onLoadingStarted(String imageUri, View view) { pbImageIsLoading.setVisibility(View.VISIBLE); } @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { pbImageIsLoading.setVisibility(View.GONE); } @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { pbImageIsLoading.setVisibility(View.GONE); } @Override public void onLoadingCancelled(String imageUri, View view) { pbImageIsLoading.setVisibility(View.VISIBLE); } }); } }