Proyectos de Subversion Android Microlearning - Nuevo Interface

Rev

Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
5 gabriel 1
package com.cesams.twogetskills.adapter;
2
 
3
 
4
import android.content.Context;
11 gabriel 5
import android.text.Html;
6
import android.util.Log;
5 gabriel 7
import android.view.LayoutInflater;
8
import android.view.View;
9
import android.view.ViewGroup;
11 gabriel 10
import android.widget.AdapterView;
11
import android.widget.Button;
5 gabriel 12
import android.widget.ImageView;
13
import android.widget.TextView;
11 gabriel 14
import android.widget.Toast;
5 gabriel 15
 
16
import androidx.annotation.NonNull;
17
import androidx.recyclerview.widget.RecyclerView;
18
 
19
import com.bumptech.glide.Glide;
20
import com.bumptech.glide.load.engine.DiskCacheStrategy;
21
import com.bumptech.glide.load.model.GlideUrl;
22
import com.bumptech.glide.load.model.LazyHeaders;
23
import com.bumptech.glide.request.RequestOptions;
24
import com.cesams.twogetskills.Constants;
25
import com.cesams.twogetskills.R;
26
import com.cesams.twogetskills.library.MD5;
27
import com.cesams.twogetskills.skeleton.ITwoGetSkills;
28
 
29
import java.util.ArrayList;
30
import java.util.Calendar;
31
import java.util.HashMap;
32
import java.util.Random;
33
import java.util.TimeZone;
34
 
35
public class TabsCapsulesAdapter extends RecyclerView.Adapter<TabsCapsulesAdapter.MyViewHolder> {
36
 
37
    private ArrayList<HashMap<String, String>> mDataSet;
38
 
39
    private Context mContext;
40
    private ITwoGetSkills iTwoGetSkills;
11 gabriel 41
    private ClickListener clickListener;
5 gabriel 42
 
11 gabriel 43
 
44
 
5 gabriel 45
    public TabsCapsulesAdapter(Context context, ArrayList<HashMap<String, String>> mDataSet) {
46
        this.mDataSet = mDataSet;
47
        this.mContext = context;
48
        this.iTwoGetSkills = (ITwoGetSkills) context;
49
    }
50
 
51
    @NonNull
52
    @Override
53
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
54
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.capsuleitemcategory, parent, false);
11 gabriel 55
 
56
        MyViewHolder viewHolder = new MyViewHolder(v);
57
 
58
        viewHolder.entrar.setOnClickListener(new View.OnClickListener() {
59
            @Override
60
            public void onClick(View v) {
61
                //Toast.makeText(mContext, "Click"+viewHolder.getAbsoluteAdapterPosition(), Toast.LENGTH_SHORT).show();
62
 
63
                iTwoGetSkills.getPreference().setCapsuleUuidActive(mDataSet.get(viewHolder.getAbsoluteAdapterPosition()).get("uuid"));
64
                iTwoGetSkills.invokeFragment(Constants.IDX_FRAGMENT_SLIDES);
65
 
66
 
67
            }
68
        });
69
 
70
        return viewHolder;
5 gabriel 71
    }
72
 
73
    @Override
74
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
75
        HashMap<String, String> data = mDataSet.get(position);
76
        holder.bindData(data);
77
    }
78
 
79
    @Override
80
    public int getItemCount() {
81
        return (mDataSet != null) ? mDataSet.size() : 0;
82
    }
83
 
84
    void setOnItemClickListener(ClickListener clickListener) {
85
        this.clickListener = clickListener;
86
    }
87
 
88
 
89
    public class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
90
 
91
        private TextView titulo;
92
        private TextView fecha;
11 gabriel 93
        private Button entrar;
5 gabriel 94
        private ImageView imagen;
95
 
96
 
97
        public MyViewHolder(@NonNull View itemView) {
98
            super(itemView);
11 gabriel 99
            titulo = itemView.findViewById(R.id.description);
5 gabriel 100
            fecha = itemView.findViewById(R.id.progressview);
101
            imagen = itemView.findViewById(R.id.imagelist);
11 gabriel 102
            entrar = itemView.findViewById(R.id.button);
5 gabriel 103
            if (clickListener != null) {
104
                itemView.setFocusable(true);
105
                itemView.setOnClickListener(this);
106
            }
107
        }
108
 
109
        public void bindData(final HashMap<String, String> data) {
110
 
111
            data.entrySet();
112
 
6 gabriel 113
            String view, total,  nombre;
5 gabriel 114
 
11 gabriel 115
            view= data.get("description");
5 gabriel 116
            total=data.get("total");
117
            nombre = data.get("nombre");
118
 
119
            if(nombre != null)
120
            {
121
                titulo.setText(nombre);
122
 
123
            }
124
 
11 gabriel 125
            if(view != null )
5 gabriel 126
            {
11 gabriel 127
                fecha.setText((Html.fromHtml(view)));
5 gabriel 128
            }
129
 
130
            String imagens;
131
            imagens=data.get("imagen");
132
 
133
 
134
            //Verificamos que las imagenes no esten vacias
135
            if (imagens != null && !imagens.equals("")) {
136
 
137
                TimeZone timeZone = TimeZone.getTimeZone("UTC");
138
                Calendar calendar = Calendar.getInstance(timeZone);
139
                TimeZone tz = calendar.getTimeZone();
140
                int created =  (int) (calendar.getTimeInMillis() / 1000);
141
 
142
                Random random = new Random(created);
143
                int rand = 1000 + random.nextInt(8999);
144
 
145
 
146
                String deviceUuid = iTwoGetSkills.getPreference().getDeviceUuid();
147
                String password =  iTwoGetSkills.getPreference().getPassword();
148
 
149
 
150
 
151
                String secret = MD5.generar(password + ':' +  created + ':' + rand);
152
                GlideUrl url = new GlideUrl(imagens, new LazyHeaders.Builder()
153
                        .addHeader(Constants.HTTP_HEADER_ACCEPT, Constants.HTTP_HEADER_ACCEPT_VALUE)
154
                        .addHeader(Constants.HTTP_HEADER_SECURITY_TOKEN, deviceUuid)
155
                        .addHeader(Constants.HTTP_HEADER_SECURITY_SECRET, secret)
156
                        .addHeader(Constants.HTTP_HEADER_SECURITY_CREATED, String.valueOf(created))
157
                        .addHeader(Constants.HTTP_HEADER_SECURITY_RAND, String.valueOf(rand))
158
                        .build());
159
 
160
                RequestOptions options = new RequestOptions()
161
                        .diskCacheStrategy(DiskCacheStrategy.ALL);
162
 
163
                Glide.with(mContext).load(url)
164
                        .thumbnail()
165
                        .apply(options)
166
                        .into(imagen);
167
            }
168
 
169
        }
170
 
171
        @Override
172
        public void onClick(View v) {
173
            if (clickListener != null) {
11 gabriel 174
                clickListener.onItemClick(getAdapterPosition(), v);
5 gabriel 175
            }
176
        }
177
 
178
 
11 gabriel 179
}
5 gabriel 180
 
181
    public interface ClickListener {
182
        void onItemClick(int position, View v);
11 gabriel 183
    }}