package com.bdc.ociney.adapter; import android.app.Activity; import android.app.AlertDialog; import android.app.WallpaperManager; import android.content.DialogInterface; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; import com.bdc.ociney.R; import com.squareup.picasso.Picasso; import java.net.URL; import java.util.List; import uk.co.senab.photoview.PhotoView; /** * Created by florentchampigny on 01/05/2014. */ public class ImagesPagerAdapter extends FragmentStatePagerAdapter { Activity activity; List<String> imagesUrl; int position; public ImagesPagerAdapter(FragmentManager fm, Activity activity, List<String> imagesUrl) { super(fm); this.activity = activity; this.imagesUrl = imagesUrl; } @Override public Fragment getItem(final int position) { final int p = position; return new Fragment() { PhotoView image; String urlImage; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = View.inflate(getActivity(), R.layout.image_pager_movie, null); image = (PhotoView) view.findViewById(R.id.parallaxContent); urlImage = imagesUrl.get(p); Picasso.with(getActivity()).load(urlImage).into(image); image.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { new AlertDialog.Builder(getActivity()) .setMessage(R.string.message_fond_ecran) .setTitle(R.string.titre_fond_ecran) .setPositiveButton(R.string.oui, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { dialogInterface.dismiss(); new LoadWalpaper().execute(); } }) .setNegativeButton(R.string.non, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { dialogInterface.dismiss(); } }).show(); return false; } }); try { getItem(position + 1); } catch (Exception e) { } return view; } class LoadWalpaper extends AsyncTask<Object, Void, Void> { @Override protected Void doInBackground(Object... objects) { DisplayMetrics metrics = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); int height = metrics.heightPixels; int width = metrics.widthPixels; WallpaperManager wallpaperManager = WallpaperManager.getInstance(activity); wallpaperManager.setWallpaperOffsetSteps(1, 1); wallpaperManager.suggestDesiredDimensions(width, height); try { String urlWalpaper = urlImage.replace("/r_10000_" + activity.getResources().getInteger(R.integer.fragment_movie_fond_height), "/r_" + (width) + "_" + (height)); wallpaperManager.setStream(new URL(urlWalpaper).openStream()); /* Bitmap bmap2 = BitmapFactory.decodeStream(new URL(urlWalpaper).openStream()); DisplayMetrics metrics = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); int height = metrics.heightPixels; int width = metrics.widthPixels; Bitmap bitmap = Bitmap.createScaledBitmap(bmap2, width, height, true); activity.setWallpaper(bitmap); // wallpaperManager.setBitmap(bitmap); */ } catch (Exception e) { if (e.getMessage() != null) e.printStackTrace(); } return null; } @Override protected void onPostExecute(Void v) { super.onPostExecute(v); activity.runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(activity, R.string.fond_ecran_change, Toast.LENGTH_LONG).show(); } }); } } }; } @Override public int getCount() { return imagesUrl.size(); } }