Proyectos de Subversion Android Microlearning - Inconcert

Rev

Autoría | Ultima modificación | Ver Log |

package com.cesams.twogetskills.inconcert.library;

import android.content.Context;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.model.GlideUrl;
import com.bumptech.glide.load.model.LazyHeaders;
import com.bumptech.glide.request.RequestOptions;
import com.cesams.twogetskills.inconcert.Constants;
import com.cesams.twogetskills.inconcert.preference.Preference;
import com.cesams.twogetskills.inconcert.skeleton.ITwoGetSkills;

import java.util.Calendar;
import java.util.Random;
import java.util.TimeZone;

public abstract class ImageService {

    public static void retrieve(Context context, String imageName, ImageView imageView)
    {
        TimeZone timeZone = TimeZone.getTimeZone("UTC");
        Calendar calendar = Calendar.getInstance(timeZone);
        TimeZone tz = calendar.getTimeZone();
        int created = (int) (calendar.getTimeInMillis() / 1000);

        Random random = new Random(created);
        int rand = 1000 + random.nextInt(8999);

        ITwoGetSkills iTwoGetSkills = (ITwoGetSkills) context;

        String deviceUuid = iTwoGetSkills.getPreference().getDeviceUuid();
        String password = iTwoGetSkills.getPreference().getPassword();


        String secret = MD5.generar(password + ':' + created + ':' + rand);
        GlideUrl url = new GlideUrl(imageName, new LazyHeaders.Builder()
                .addHeader(Constants.HTTP_HEADER_ACCEPT, Constants.HTTP_HEADER_ACCEPT_VALUE)
                .addHeader(Constants.HTTP_HEADER_SECURITY_TOKEN, deviceUuid)
                .addHeader(Constants.HTTP_HEADER_SECURITY_SECRET, secret)
                .addHeader(Constants.HTTP_HEADER_SECURITY_CREATED, String.valueOf(created))
                .addHeader(Constants.HTTP_HEADER_SECURITY_RAND, String.valueOf(rand))
                .build());

        RequestOptions options = new RequestOptions()
                .diskCacheStrategy(DiskCacheStrategy.ALL);

        Glide.with(context).load(url)
                .thumbnail()
                .apply(options)
                .into(imageView);

    }
}