// Path: PhotoPaper/src/main/java/com/lukekorth/photo_paper/helpers/PicassoHelper.java
// public class PicassoHelper {
// 
//     public static Picasso getPicasso(Context context) {
//         return new Picasso.Builder(context.getApplicationContext())
//                 .downloader(new OkHttp3Downloader(context.getApplicationContext(), 512000000)) // 512mb
//                 .indicatorsEnabled(BuildConfig.DEBUG)
//                 .build();
//     }
// 
//     public static void clearCache(Context context) {
//         PicassoTools.clearCache(PicassoHelper.getPicasso(context));
//     }
// }
// 
// Path: PhotoPaper/src/main/java/com/lukekorth/photo_paper/helpers/Utils.java
// public class Utils {
// 
//     public static boolean shouldGetPhotos(Context context, Realm realm) {
//         return Settings.isEnabled(context) && Utils.needMorePhotos(context, realm) &&
//                 isCurrentNetworkOk(context);
//     }
// 
//     public static boolean shouldUpdateWallpaper(Context context) {
//         return Settings.isEnabled(context) && (((Settings.getLastUpdated(context) +
//                  (Settings.getUpdateInterval(context) * 1000)) < System.currentTimeMillis()));
//     }
// 
//     public static boolean isCurrentNetworkOk(Context context) {
//         return !Settings.useOnlyWifi(context) ||
//                 (Settings.useOnlyWifi(context) && Utils.isConnectedToWifi(context));
//     }
// 
//     public static boolean needMorePhotos(Context context, Realm realm) {
//         return Photos.unseenPhotoCount(context, realm) <= 10;
//     }
// 
//     public static boolean isConnectedToWifi(Context context) {
//         ConnectivityManager connectivityManager =
//                 (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//         NetworkInfo activeNetwork = connectivityManager.getActiveNetworkInfo();
//         return (activeNetwork != null && activeNetwork.isConnectedOrConnecting() &&
//                 activeNetwork.getType() == ConnectivityManager.TYPE_WIFI);
//     }
// 
//     public static int dpToPx(Context context, double dp) {
//         return (int) Math.round(dp * (context.getResources().getDisplayMetrics().xdpi / DisplayMetrics.DENSITY_DEFAULT));
//     }
// 
//     public static int getWallpaperHeight(Context context) {
//         return WallpaperManager.getInstance(context).getDesiredMinimumHeight();
//     }
// 
//     public static int getWallpaperWidth(Context context) {
//         return WallpaperManager.getInstance(context).getDesiredMinimumWidth();
//     }
// 
//     public static int getScreenHeight(Context context) {
//         return getScreenResolution(context).y;
//     }
// 
//     public static int getScreenWidth(Context context) {
//         return getScreenResolution(context).x;
//     }
// 
//     private static Point getScreenResolution(Context context) {
//         WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
//         Point point = new Point();
//         windowManager.getDefaultDisplay().getSize(point);
//         return point;
//     }
// 
//     public static boolean supportsParallax(Context context) {
//         return ((double) getWallpaperWidth(context) / getScreenWidth(context)) >= 2;
//     }
// 
//     public static String getListSummary(Context context, int indexArrayId, int valueArrayId,
//                                         String index, String defaultValue) {
//         String[] indexArray = context.getResources().getStringArray(indexArrayId);
//         String[] valueArray = context.getResources().getStringArray(valueArrayId);
//         int i;
//         for (i = 0; i < indexArray.length; i++) {
//             if (indexArray[i].equals(index)) {
//                 return valueArray[i];
//             }
//         }
//         return defaultValue;
//     }
// }
// 
// Path: PhotoPaper/src/main/java/com/lukekorth/photo_paper/models/Photo.java
// public class Photo {
// 
//     @Expose public String id;
//     @Expose public String name;
//     @Expose public String description;
//     @Expose @SerializedName("created_at") public String createdAt;
//     @Expose public int category;
//     @Expose @SerializedName("votes_count") public int votes;
//     @Expose public boolean nsfw;
//     @Expose @SerializedName("highest_rating") public double highestRating;
//     @Expose @SerializedName("times_viewed") public int views;
//     @Expose @SerializedName("image_url") public String imageUrl;
//     @Expose public String url;
//     @Expose public User user;
//     @Expose public boolean voted;
//     @Expose public boolean favorited;
// 
// }
// 
// Path: PhotoPaper/src/main/java/com/lukekorth/photo_paper/views/SquareImageView.java
// public class SquareImageView extends ImageView {
// 
//     public SquareImageView(Context context) {
//         super(context);
//     }
// 
//     public SquareImageView(Context context, AttributeSet attrs) {
//         super(context, attrs);
//     }
// 
//     @Override
//     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
//         setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth());
//     }
// }


import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import com.lukekorth.photo_paper.R;
import com.lukekorth.photo_paper.helpers.PicassoHelper;
import com.lukekorth.photo_paper.helpers.Utils;
import com.lukekorth.photo_paper.models.Photo;
import com.lukekorth.photo_paper.views.SquareImageView;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
import java.util.List;
import static android.widget.ImageView.ScaleType.CENTER_CROP;
package com.lukekorth.photo_paper.adapters;





public class GridPhotoAdapter extends BaseAdapter {

    public static final String TAG = "GridPhotoAdapter";

    private Context mContext;
    private List<Photo> mPhotos;
    private Picasso mPicasso;
    private int mOneDpInPx;

    public GridPhotoAdapter(Context context, ArrayList<Photo> photos) {
        mContext = context;
        mPhotos = photos;
        mPicasso = PicassoHelper.getPicasso(context);
        mOneDpInPx = Utils.dpToPx(mContext, 0.5);
    }

// Path: PhotoPaper/src/main/java/com/lukekorth/photo_paper/helpers/PicassoHelper.java
// public class PicassoHelper {
// 
//     public static Picasso getPicasso(Context context) {
//         return new Picasso.Builder(context.getApplicationContext())
//                 .downloader(new OkHttp3Downloader(context.getApplicationContext(), 512000000)) // 512mb
//                 .indicatorsEnabled(BuildConfig.DEBUG)
//                 .build();
//     }
// 
//     public static void clearCache(Context context) {
//         PicassoTools.clearCache(PicassoHelper.getPicasso(context));
//     }
// }
// 
// Path: PhotoPaper/src/main/java/com/lukekorth/photo_paper/helpers/Utils.java
// public class Utils {
// 
//     public static boolean shouldGetPhotos(Context context, Realm realm) {
//         return Settings.isEnabled(context) && Utils.needMorePhotos(context, realm) &&
//                 isCurrentNetworkOk(context);
//     }
// 
//     public static boolean shouldUpdateWallpaper(Context context) {
//         return Settings.isEnabled(context) && (((Settings.getLastUpdated(context) +
//                  (Settings.getUpdateInterval(context) * 1000)) < System.currentTimeMillis()));
//     }
// 
//     public static boolean isCurrentNetworkOk(Context context) {
//         return !Settings.useOnlyWifi(context) ||
//                 (Settings.useOnlyWifi(context) && Utils.isConnectedToWifi(context));
//     }
// 
//     public static boolean needMorePhotos(Context context, Realm realm) {
//         return Photos.unseenPhotoCount(context, realm) <= 10;
//     }
// 
//     public static boolean isConnectedToWifi(Context context) {
//         ConnectivityManager connectivityManager =
//                 (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//         NetworkInfo activeNetwork = connectivityManager.getActiveNetworkInfo();
//         return (activeNetwork != null && activeNetwork.isConnectedOrConnecting() &&
//                 activeNetwork.getType() == ConnectivityManager.TYPE_WIFI);
//     }
// 
//     public static int dpToPx(Context context, double dp) {
//         return (int) Math.round(dp * (context.getResources().getDisplayMetrics().xdpi / DisplayMetrics.DENSITY_DEFAULT));
//     }
// 
//     public static int getWallpaperHeight(Context context) {
//         return WallpaperManager.getInstance(context).getDesiredMinimumHeight();
//     }
// 
//     public static int getWallpaperWidth(Context context) {
//         return WallpaperManager.getInstance(context).getDesiredMinimumWidth();
//     }
// 
//     public static int getScreenHeight(Context context) {
//         return getScreenResolution(context).y;
//     }
// 
//     public static int getScreenWidth(Context context) {
//         return getScreenResolution(context).x;
//     }
// 
//     private static Point getScreenResolution(Context context) {
//         WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
//         Point point = new Point();
//         windowManager.getDefaultDisplay().getSize(point);
//         return point;
//     }
// 
//     public static boolean supportsParallax(Context context) {
//         return ((double) getWallpaperWidth(context) / getScreenWidth(context)) >= 2;
//     }
// 
//     public static String getListSummary(Context context, int indexArrayId, int valueArrayId,
//                                         String index, String defaultValue) {
//         String[] indexArray = context.getResources().getStringArray(indexArrayId);
//         String[] valueArray = context.getResources().getStringArray(valueArrayId);
//         int i;
//         for (i = 0; i < indexArray.length; i++) {
//             if (indexArray[i].equals(index)) {
//                 return valueArray[i];
//             }
//         }
//         return defaultValue;
//     }
// }
// 
// Path: PhotoPaper/src/main/java/com/lukekorth/photo_paper/models/Photo.java
// public class Photo {
// 
//     @Expose public String id;
//     @Expose public String name;
//     @Expose public String description;
//     @Expose @SerializedName("created_at") public String createdAt;
//     @Expose public int category;
//     @Expose @SerializedName("votes_count") public int votes;
//     @Expose public boolean nsfw;
//     @Expose @SerializedName("highest_rating") public double highestRating;
//     @Expose @SerializedName("times_viewed") public int views;
//     @Expose @SerializedName("image_url") public String imageUrl;
//     @Expose public String url;
//     @Expose public User user;
//     @Expose public boolean voted;
//     @Expose public boolean favorited;
// 
// }
// 
// Path: PhotoPaper/src/main/java/com/lukekorth/photo_paper/views/SquareImageView.java
// public class SquareImageView extends ImageView {
// 
//     public SquareImageView(Context context) {
//         super(context);
//     }
// 
//     public SquareImageView(Context context, AttributeSet attrs) {
//         super(context, attrs);
//     }
// 
//     @Override
//     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
//         setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth());
//     }
// }


// Path: PhotoPaper/src/main/java/com/lukekorth/photo_paper/adapters/GridPhotoAdapter.java
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import com.lukekorth.photo_paper.R;
import com.lukekorth.photo_paper.helpers.PicassoHelper;
import com.lukekorth.photo_paper.helpers.Utils;
import com.lukekorth.photo_paper.models.Photo;
import com.lukekorth.photo_paper.views.SquareImageView;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
import java.util.List;
import static android.widget.ImageView.ScaleType.CENTER_CROP;

package com.lukekorth.photo_paper.adapters;





public class GridPhotoAdapter extends BaseAdapter {

    public static final String TAG = "GridPhotoAdapter";

    private Context mContext;
    private List<Photo> mPhotos;
    private Picasso mPicasso;
    private int mOneDpInPx;

    public GridPhotoAdapter(Context context, ArrayList<Photo> photos) {
        mContext = context;
        mPhotos = photos;
        mPicasso = PicassoHelper.getPicasso(context);
        mOneDpInPx = Utils.dpToPx(mContext, 0.5);
    }

    public void setPhotos(List<Photo> photos) {