Proyectos de Subversion Android Microlearning

Rev

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

package com.cesams.twogetskills.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.recyclerview.widget.RecyclerView;

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.Constants;
import com.cesams.twogetskills.R;
import com.cesams.twogetskills.library.MD5;
import com.cesams.twogetskills.viewdata.UserProfileViewData;
import com.cesams.twogetskills.skeleton.ITwoGetSkills;
import com.cesams.twogetskills.skeleton.IUserProfileDelegateAdapter;

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

public class UserProfileListViewHeaderAdapter implements IUserProfileDelegateAdapter {
    private final static String TAG = "C2GS - UserProfileListViewHeaderAdapter";
    private List<UserProfileViewData> mData;
    private LayoutInflater mInflater;
    private Context mContext;
    private ITwoGetSkills iTwoGetSkills;

    public UserProfileListViewHeaderAdapter(Context context)
    {
        this.mContext = context;
        this.mInflater = LayoutInflater.from(context);

        if(context instanceof ITwoGetSkills) {
            iTwoGetSkills = (ITwoGetSkills)  context;
        }

    }



    // inflates the row layout from xml when needed
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = mInflater.inflate(R.layout.fragment_userprofile_item_header, parent, false);
        return new HeaderViewHolder(view);
    }

    // binds the data to the TextView in each row
    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, UserProfileViewData userProfileViewData) {
        HeaderViewHolder mHolder = (HeaderViewHolder) holder;


        mHolder.mItem.setText(userProfileViewData.getLabelOrCompanyName());

        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);


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


        String secret = MD5.generar(password + ':' +  created + ':' + rand);

        GlideUrl url = new GlideUrl(userProfileViewData.getValueOrImage(), 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(mContext).load(url)
                .thumbnail()
                .apply(options)
                .into(mHolder.mImage);

    }

    public class HeaderViewHolder extends RecyclerView.ViewHolder  {
        TextView mItem;
        ImageView mImage;

        HeaderViewHolder(View itemView) {
            super(itemView);

            mItem = (TextView) itemView.findViewById(R.id.fragment_userprofile_item_header_company_name);
            mImage = (ImageView) itemView.findViewById(R.id.fragment_userprofile_item_header_company_image);

        }


    }

}