package net.iubris.ulysses.ui.fragments.details.gallery; import java.util.List; import net.iubris.ulysses.R; import net.iubris.ulysses.model.Location; import net.iubris.ulysses.model.Place; import net.iubris.ulysses.ui.activity.details.PlaceProvideable; import net.iubris.ulysses.ui.fragments._base.DetailsFragmentBase; import net.iubris.ulysses.ui.gallery.ImagePagerAdapter; import net.iubris.ulysses.ui.utils.menu.MenuUtils; import roboguice.util.Ln; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class DetailsFragmentGallery extends DetailsFragmentBase implements PlaceProvideable { public static String TAG = DetailsFragmentGallery.class.getSimpleName(); // my own private ViewPager galleryPager; private ImagePagerAdapter imagePagerAdapter; // external // private ImagePager zoomImagesGalleryPager; // private SimpleImagePagerAdapter simpleImagePagerAdapter; // private TextView galleryComments; private TextView galleryLabelNoPhoto; private List<String> photosUrls; // private Button buttonGetPanorama; private Location location; // private TextView galleryCounter; // private ImageView imageviewTest; public final static String EXTRA_ULYSSES_LOCATION = "EXTRA_ULYSSES_LOCATION"; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // View rootView = inflater.inflate(R.layout.fragment_details_gallery, container, false); ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_details_gallery, container, false); // using my imagepageradapter // if (galleryPager==null) { galleryPager = (ViewPager) rootView.findViewById(R.id.gallery_pager); // galleryPager.setPageTransformer(false, new AlphaTransformer()); galleryPager.setPageTransformer(false, new DepthPageTransformer()); Ln.d("new galleryPager:"+galleryPager); // } // external /*if (zoomImagesGalleryPager==null) { zoomImagesGalleryPager = (ImagePager) rootView.findViewById(R.id.zoom_images_gallery_pager); zoomImagesGalleryPager.setPageTransformer(false, new DepthPageTransformer()); Ln.d("new galleryPager"); }*/ // galleryCounter = (TextView) rootView.findViewById(R.id.gallery_counter); // galleryComments = (TextView) rootView.findViewById(R.id.gallery_comments); galleryLabelNoPhoto = (TextView) rootView.findViewById(R.id.gallery_label_no_photo); // buttonGetPanorama = (Button) rootView.findViewById(R.id.button_get_panorama); // buttonGetPanorama.setOnClickListener( buttonPanoramaOnClickListener ); return rootView; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); /*if (imagePagerAdapter==null) { imagePagerAdapter = new ImagePagerAdapter(getView().getContext()); // new SimpleImagePagerAdapter(getView().getContext()); Ln.d("new ImagePagerAdapter"); // galleryPager.setPageTransformer(false, new DepthPageTransformer()); }*/ // using my if (imagePagerAdapter==null) { imagePagerAdapter = new ImagePagerAdapter(getView().getContext()); galleryPager.setAdapter(imagePagerAdapter); Ln.d("new ImagePagerAdapter:"+imagePagerAdapter); } // instancing every time // imagePagerAdapter = new ImagePagerAdapter(getView().getContext()/*, galleryCounter*/); // galleryPager.setAdapter(imagePagerAdapter); // Ln.d("new ImagePagerAdapter:"+imagePagerAdapter); /*if (simpleImagePagerAdapter==null) { simpleImagePagerAdapter = buildSimpleImagePagerAdapter(); Ln.d("new SimpleImagePagerAdapter"); zoomImagesGalleryPager.setAdapter(simpleImagePagerAdapter); }*/ } @Override public void onResume() { super.onResume(); // if (imagePagerAdapter==null) { // imagePagerAdapter = //// new ImagePagerAdapter(getView().getContext()); // new SimpleImagePagerAdapter(getView().getContext()); //// galleryPager.setPageTransformer(false, new DepthPageTransformer()); // } final Place place = getPlace(); photosUrls = place.getPhotosUrls(); location = place.getLocation(); retrievePhotos(); } private void retrievePhotos() { // List<Photo> photos = place.getPhotos(); if (photosUrls==null || photosUrls.size()==0) { // test // galleryPager.setVisibility(View.VISIBLE); // remove // Image image = new Image(getActivity()); // image.setImageResId(R.drawable.ic_launcher); // imagePagerAdapter.setImages(new ArrayList<Image>()); // imagePagerAdapter.addImage(image); // imagePagerAdapter.notifyDataSetChanged(); // imagePagerAdapter.setPhotoURLS("R.drawable.ic_launcher"); // galleryPager.setAdapter(imagePagerAdapter); // galleryPager.setCurrentItem( 0 ); // imagePagerAdapter.notifyDataSetChanged(); // Ln.d("no photo, added ic_drawer"); // end test // TODO restore // my own galleryPager.setVisibility(View.GONE); // external not working // zoomImagesGalleryPager.setVisibility(View.GONE); galleryLabelNoPhoto.setVisibility(View.VISIBLE); // buttonGetPanorama.setVisibility(View.VISIBLE); } // if (photosUrls.size()>0) { else { Ln.d(getPlace().getPlaceName()+", getting photos: "+photosUrls.size()); galleryLabelNoPhoto.setVisibility(View.GONE); // buttonGetPanorama.setVisibility(View.GONE); // my own galleryPager.setVisibility(View.VISIBLE); imagePagerAdapter.setPhotoURLS(photosUrls/*.toArray(new String[]{})*/); galleryPager.setCurrentItem( 0 ); // external not completely working // zoomImagesGalleryPager.setVisibility(View.VISIBLE); // simpleImagePagerAdapter.setImages(new ArrayList<Image>()); // for (String photoUrl: photosUrls) { // Image image = new Image(getContext()); // image.setImageUrl(photoUrl); // simpleImagePagerAdapter.addImage(image); // Ln.d("added image: "+photoUrl); // simpleImagePagerAdapter.notifyDataSetChanged(); // } // test // ImageLoader.getInstance().displayImage(photosUrls.get(0), imageviewTest); } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { MenuUtils.addPanorama(menu, location, getActivity()); } /*OnClickListener buttonPanoramaOnClickListener = new OnClickListener() { @Override public void onClick(View v) { Ln.d("clicked for panorama"); Location location = DetailsFragmentGallery.this.getPlace().getLocation(); // method 1 // UlyssesStreetViewPanoramaFragment streetViewFragment = UlyssesStreetViewPanoramaFragment.newInstance(location.getLatitude(), location.getLongitude()); // getFragmentManager().beginTransaction().attach(streetViewFragment).show(streetViewFragment).commit(); // method 2 // UlyssesStreetViewPanoramaFragment ulyssesStreetViewPanoramaFragment = (UlyssesStreetViewPanoramaFragment) getFragmentManager().findFragmentById(R.id.fragment_streetviewpanorama); // if (ulyssesStreetViewPanoramaFragment==null) { // Ln.d("ulyssesStreetViewPanoramaFragment is null, instancing"); // ulyssesStreetViewPanoramaFragment = UlyssesStreetViewPanoramaFragment.newInstance(location.getLatitude(), location.getLongitude()); // getChildFragmentManager().beginTransaction().add(R.id.fragment_streetviewpanorama, ulyssesStreetViewPanoramaFragment).commit(); // } // ulyssesStreetViewPanoramaFragment.setLocation(location); // method 3 // UlyssesStreetViewPanoramaFragment findFragmentById = (UlyssesStreetViewPanoramaFragment) getFragmentManager().findFragmentById(R.id.fragment_streetviewpanorama); // if (findFragmentById ==null) // findFragmentById = UlyssesStreetViewPanoramaFragment.newInstance(location.getLatitude(), location.getLongitude()); // if (!findFragmentById.isVisible()) // getFragmentManager().beginTransaction().show(findFragmentById).commit(); // method 4 - working Intent intent = new Intent(); intent.putExtra(EXTRA_ULYSSES_LOCATION, location); intent.setClass(getActivity(), StreetViewPanoramaActivity.class); startActivity(intent); } };*/ /*private SimpleImagePagerAdapter buildSimpleImagePagerAdapter() { final ProgressBar spinner = (ProgressBar) getActivity().findViewById(R.id.gallery_progress_bar); return new SimpleImagePagerAdapter(getView().getContext()) { @Override protected void tryToGetImageFromInternet(final PhotoView imageView, final int position) { String url = getImages().get(position).getImageUrl(); ImageLoader imageLoader = ImageLoader.getInstance(); Ln.d("ImageLoader:"+imageLoader); imageLoader.displayImage(url, imageView, new SimpleImageLoadingListener() { @Override public void onLoadingStarted(String imageUri, View view) { // if (spinner!=null) { // spinner.setVisibility(View.VISIBLE); // } Ln.d("loading"); } @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { String message = null; switch (failReason.getType()) { case IO_ERROR: message = "Input/Output error"; break; case DECODING_ERROR: message = "Image can't be decoded"; break; case NETWORK_DENIED: message = "Downloads are denied"; break; case OUT_OF_MEMORY: message = "Out Of Memory error"; break; case UNKNOWN: message = "Unknown error"; break; } Toast.makeText(view.getContext(), message, Toast.LENGTH_SHORT).show(); // spinner.setVisibility(View.GONE); } @Override public void onLoadingComplete(final String imageUri, final View view, final Bitmap loadedImage) { // Ln.d("completed: "+imageUri); // Ln.d(loadedImage); new Handler().post(new Runnable() { @Override public void run() { // ImageLoader.getInstance().displayImage(imageUri, imageView); // ((ImageView)view).setImageBitmap(loadedImage); Image image = new Image(getContext()); image.setImageUrl(imageUri); addImage(position, image, loadedImage); imageView.setImageBitmap(loadedImage); Ln.d("loaded in handler"); } }); imageView.setImageBitmap(loadedImage); // ((ImageView)view).setImageBitmap(loadedImage); // spinner.setVisibility(View.GONE); Ln.d("loaded"); } }); } }; }*/ }