Rev 15 | Autoría | Ultima modificación | Ver Log |
package com.cesams.twogetskills.inconcert.fragment;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.LifecycleOwner;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
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.R;
import com.cesams.twogetskills.inconcert.adapter.TabsCapsulesAdapter;
import com.cesams.twogetskills.inconcert.dao.CapsuleDao;
import com.cesams.twogetskills.inconcert.dao.ProgressDao;
import com.cesams.twogetskills.inconcert.dao.SlideDao;
import com.cesams.twogetskills.inconcert.dao.TopicDao;
import com.cesams.twogetskills.inconcert.entity.Capsule;
import com.cesams.twogetskills.inconcert.entity.Progress;
import com.cesams.twogetskills.inconcert.entity.Slide;
import com.cesams.twogetskills.inconcert.entity.Topic;
import com.cesams.twogetskills.inconcert.library.MD5;
import com.cesams.twogetskills.inconcert.skeleton.ITwoGetSkills;
import com.google.android.material.tabs.TabLayout;
import java.text.Normalizer;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Random;
import java.util.TimeZone;
/**
* A simple {@link Fragment} subclass.
* Use the {@link WelcomeFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class WelcomeFragment extends Fragment implements TabsCapsulesAdapter.ClickListener, LifecycleOwner {
TextView username, titulotarjeta, progresoporcentaje, empezar, ningunelemento; ProgressBar progresotarjeta;
private ITwoGetSkills iTwoGetSkills; View card;
ArrayList<HashMap<String, String>> capsuleList;
ImageView imagetarjeta;
TabsCapsulesAdapter adapter2;
RecyclerView categorizados;
EditText busqueda; TextView textowelcome; Button continuar;
TabLayout tabs; String tabactual="pendientes";
public WelcomeFragment() {
// Required empty public constructor
}
public static WelcomeFragment newInstance() {
WelcomeFragment fragment = new WelcomeFragment();
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
iTwoGetSkills = (ITwoGetSkills) getActivity();
View view= inflater.inflate(R.layout.fragment_welcome, container, false);
username=view.findViewById(R.id.textView14); ningunelemento=view.findViewById(R.id.textView25);
textowelcome= view.findViewById(R.id.textView15);
busqueda=view.findViewById(R.id.busqueda);
card= view.findViewById(R.id.include); empezar= view.findViewById(R.id.titlenotifi); tabs=view.findViewById(R.id.tabLayout);
capsuleList = new ArrayList<>();
//Tarjeta Principal
titulotarjeta = view.findViewById(R.id.description); progresotarjeta= view.findViewById(R.id.progressBar2); imagetarjeta= view.findViewById(R.id.imagelist);
continuar = view.findViewById(R.id.button); progresoporcentaje = view.findViewById(R.id.textView16);
username.setText("¡Hola, "+(iTwoGetSkills.getPreference().getFirstName() +"!"));
tabs.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
int position=tab.getPosition();
capsuleList.clear();
adapter2.notifyDataSetChanged();
if(position==0)
{
tabactual="pendientes";
loadData(tabactual,"");
adapter2.notifyDataSetChanged();
}
else if(position==1)
{
tabactual="cursando";
loadData("cursando","");
adapter2.notifyDataSetChanged();
}
else if(position==2)
{
tabactual="finalizados";
loadData("finalizados","");
adapter2.notifyDataSetChanged();
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
loadData("pendientes","");
busqueda.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus)
{
card.setVisibility(View.GONE);
username.setVisibility(View.GONE);
textowelcome.setVisibility(View.GONE);
Log.e("Tengo foco"," Oculto");
}
}
});
busqueda.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// Log.e("El texto","buscado: "+s);
capsuleList.clear();
adapter2.notifyDataSetChanged();
loadData(tabactual, s.toString());
}
@Override
public void afterTextChanged(Editable s) {
}
});
adapter2 = new TabsCapsulesAdapter(getContext(),capsuleList);
categorizados = view.findViewById(R.id.categorizados);
GridLayoutManager layoutcategoria = new GridLayoutManager(getContext(),1,GridLayoutManager.VERTICAL, false);
categorizados.setLayoutManager(layoutcategoria);
categorizados.setAdapter(adapter2);
adapter2.setClickListener(this);
categorizados.setOnFlingListener(new RecyclerView.OnFlingListener() {
@Override
public boolean onFling(int velocityX, int velocityY) {
if (categorizados.canScrollVertically(-1) ) {
// Log.e("Se activa", "On fling");
card.setVisibility(View.GONE);
username.setVisibility(View.GONE);
textowelcome.setVisibility(View.GONE);
}else
{
card.setVisibility(View.VISIBLE);
username.setVisibility(View.VISIBLE);
textowelcome.setVisibility(View.VISIBLE);
}
return false;
}
});
/* categorizados.setOnScrollChangeListener(new View.OnScrollChangeListener() {
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
if (!categorizados.canScrollVertically(-1)) {
// Toast.makeText(getActivity(), "Last", Toast.LENGTH_LONG).show();
capsulas.setVisibility(View.VISIBLE);
username.setVisibility(View.VISIBLE);
textowelcome.setVisibility(View.VISIBLE);
Log.e("On scroll"," se activa");
}
}
});
*/
getActivity().runOnUiThread(() -> {
String message = capsuleList.size() == 1
? "Hay 1 cápsula nueva disponible"
: "Tiene " + capsuleList.size() + " cápsulas pendientes para ver";
Toast.makeText(getContext(), ""+message, Toast.LENGTH_LONG).show();
iTwoGetSkills.saveNotificationCenter("Contenidos disponibles","",message);
});
iTwoGetSkills.showNavigationAndToolbar();
return view;
}
@Override
public void onResume() {
super.onResume();
getActivity().runOnUiThread(() -> {
int fragmentIdxActive = iTwoGetSkills.getPreference().getFragmentIdxActive();
if (fragmentIdxActive != Constants.IDX_FRAGMENT_WELCOME
) {
return;
}
loadContinuecard();
});
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
// Log.e("TAG", "onHiddenChanged : " + (hidden ? "true" : "false"));
if(!hidden) {
// Log.e("Esta oculto", "el fragmento");
getActivity().runOnUiThread(() -> {
capsuleList.clear();
loadContinuecard();
loadData("pendientes","");
if (capsuleList.size() == 0) //Si no tenemos capsulas pendientes nos vamos a en curso
{
capsuleList.clear();
loadData("cursando","");
tabs.selectTab(tabs.getTabAt(1),true);
}
else
{
tabs.selectTab(tabs.getTabAt(0),true);
}
adapter2.notifyDataSetChanged();
});
}
}
private void loadContinuecard(){
//Log.e("Cargo datos"," en tarjeta principal");
//Capsula de primera tarjeta
CapsuleDao capsuleDao = iTwoGetSkills.getDatabase().getCapsuleDao();
boolean continues=false;
Progress progress;
ProgressDao progressDao = iTwoGetSkills.getDatabase().getProgressDao();
List<Capsule> dbCapsules= capsuleDao.selectAll();
for(Capsule dbCapsule : dbCapsules)
{
progress = progressDao.selectByCapsuleUuid(dbCapsule.getUuid());
if (progress != null) {
if (progress.getProgress() <=100 && progress.getCompleted()==0)
{
titulotarjeta.setText(dbCapsule.getName());
if (dbCapsule.getImage() != null && !dbCapsule.getImage().equals("")) {
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(dbCapsule.getImage(), 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(getContext()).load(url)
.thumbnail()
.apply(options)
.into(imagetarjeta);
iTwoGetSkills.setCapsulaActiva(dbCapsule.getUuid());
}
}
if (progress.getProgress() < 100 && progress.getCompleted()==0) {
// Log.e("Es menor"," a 100");
continues=true;
titulotarjeta.setText(dbCapsule.getName());
progresotarjeta.setVisibility(View.VISIBLE);
progresoporcentaje.setVisibility(View.VISIBLE);
progresotarjeta.setProgress((int) progress.getProgress());
progresoporcentaje.setText("" + progress.getProgress() + " %");
empezar.setText("En curso");
iTwoGetSkills.getPreference().setOrigennavigation("welcome");
int fragmentIdxActive = iTwoGetSkills.getPreference().getFragmentIdxActive();
if (fragmentIdxActive != Constants.IDX_FRAGMENT_WELCOME
) {
return;
}
iTwoGetSkills.setCapsulaActiva(dbCapsule.getUuid());
// Log.e("La capsula","activa en loadcurso"+dbCapsule.getUuid());
iTwoGetSkills.getPreference().setTopicUuidActive(dbCapsule.getTopicUuid());
if (dbCapsule.getImage() != null && !dbCapsule.getImage().equals("")) {
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(dbCapsule.getImage(), 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(getContext()).load(url)
.thumbnail()
.apply(options)
.into(imagetarjeta);
}
}
}
}
if(titulotarjeta.getText().equals(""))
{
// Log.e("Nombre","vacio");
SlideDao slideDao = iTwoGetSkills.getDatabase().getSlideDao();
//Despues del recorrido no se encontro progreso en ninguna capsula, por lo cual la tarjeta queda vacia
// vamos a llenarla con la ultima capsula, que debe ser nueva al no tener progreso
for(Capsule dbCapsule : dbCapsules)
{
List<Slide> slides = slideDao.selectAllByCapsuleUuid(dbCapsule.getUuid());
if (slides.isEmpty()) {
} else {
progress = progressDao.selectByCapsuleUuid(dbCapsule.getUuid());
// Log.e("Capsula","Es omitida, no tiene slides");
if (progress == null) {
// Log.e("Es nueva","");
titulotarjeta.setText(dbCapsule.getName());
progresotarjeta.setVisibility(View.INVISIBLE);
progresoporcentaje.setVisibility(View.INVISIBLE);
empezar.setText("Nueva");
continuar.setText("Ver cápsula");
iTwoGetSkills.getPreference().setOrigennavigation("welcome");
int fragmentIdxActive = iTwoGetSkills.getPreference().getFragmentIdxActive();
if (fragmentIdxActive != Constants.IDX_FRAGMENT_WELCOME
) {
return;
}
iTwoGetSkills.setCapsulaActiva(dbCapsule.getUuid());
// Log.e("La capsula","activa en load"+dbCapsule.getUuid());
iTwoGetSkills.getPreference().setTopicUuidActive(dbCapsule.getTopicUuid());
if (dbCapsule.getImage() != null && !dbCapsule.getImage().equals("")) {
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(dbCapsule.getImage(), 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(getContext()).load(url)
.thumbnail()
.apply(options)
.into(imagetarjeta);
}
}
}
}
}
else if (!titulotarjeta.getText().equals("") && !continues)
{
// Log.e("Nombre","vacio");
SlideDao slideDao = iTwoGetSkills.getDatabase().getSlideDao();
//Despues del recorrido no se encontro progreso en ninguna capsula, por lo cual la tarjeta queda vacia
// vamos a llenarla con la ultima capsula, que debe ser nueva al no tener progreso
for(Capsule dbCapsule : dbCapsules)
{
List<Slide> slides = slideDao.selectAllByCapsuleUuid(dbCapsule.getUuid());
if (slides.isEmpty()) {
} else {
progress = progressDao.selectByCapsuleUuid(dbCapsule.getUuid());
// Log.e("Capsula","Es omitida, no tiene slides");
if (progress == null) {
// Log.e("Es nueva","");
titulotarjeta.setText(dbCapsule.getName());
progresotarjeta.setVisibility(View.INVISIBLE);
progresoporcentaje.setVisibility(View.INVISIBLE);
empezar.setText("Nueva");
continuar.setText("Ver cápsula");
iTwoGetSkills.getPreference().setOrigennavigation("welcome");
int fragmentIdxActive = iTwoGetSkills.getPreference().getFragmentIdxActive();
if (fragmentIdxActive != Constants.IDX_FRAGMENT_WELCOME
) {
return;
}
iTwoGetSkills.setCapsulaActiva(dbCapsule.getUuid());
// Log.e("La capsula","activa en load"+dbCapsule.getUuid());
iTwoGetSkills.getPreference().setTopicUuidActive(dbCapsule.getTopicUuid());
if (dbCapsule.getImage() != null && !dbCapsule.getImage().equals("")) {
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(dbCapsule.getImage(), 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(getContext()).load(url)
.thumbnail()
.apply(options)
.into(imagetarjeta);
}
}
}
}
}
continuar.setOnClickListener(v -> {
// Log.e("Guardo",""+iTwoGetSkills.getPreference().getOrigenNavigation());
// Log.e("Capsule","active"+iTwoGetSkills.getPreference().getCapsuleUuidActive());
Progress progresscontinue; ProgressDao progressDaocontinue = iTwoGetSkills.getDatabase().getProgressDao();
progresscontinue = progressDaocontinue.selectByCapsuleUuid(iTwoGetSkills.getCapsuleUuidActive());
if (progresscontinue != null) {
if (progresscontinue.getProgress() >= 100 && progresscontinue.getCompleted() == 1) {
iTwoGetSkills.invokeFragment(Constants.IDX_FRAGMENT_DETAIL_CAPSULE);
} else {
iTwoGetSkills.invokeFragment(Constants.IDX_FRAGMENT_SLIDES);
}
iTwoGetSkills.getPreference().setOrigennavigation("welcome");
iTwoGetSkills.hideKeyboard(v); //Ocultamos el teclado
}
else
{
iTwoGetSkills.invokeFragment(Constants.IDX_FRAGMENT_SLIDES);
}
});
//Fin de primer tarjeta
}
private void loadData(String tabposition, String buscar)
{
TopicDao topicDao = iTwoGetSkills.getDatabase().getTopicDao();
ArrayList<Topic> dbTopics = (ArrayList<Topic>) topicDao.selectAll();
List<Capsule> dbCapsules;
CapsuleDao capsuleDao = iTwoGetSkills.getDatabase().getCapsuleDao();
ProgressDao progressDao = iTwoGetSkills.getDatabase().getProgressDao();
SlideDao slideDao = iTwoGetSkills.getDatabase().getSlideDao();
if (tabposition.equals("pendientes"))
{
for (Topic dbTopic : dbTopics) {
dbCapsules = capsuleDao.selectAllByTopicUuidandOrder(dbTopic.getUuid());
Capsule capsule;
Progress progress;
HashMap<String, String> m_li;
for(Capsule dbCapsule : dbCapsules) {
capsule = new Capsule();
capsule.setTopicUuid(dbCapsule.getTopicUuid());
capsule.setUuid(dbCapsule.getUuid());
capsule.setName(dbCapsule.getName());
capsule.setDescription(dbCapsule.getDescription());
capsule.setImage(dbCapsule.getImage());
capsule.setPosition(dbCapsule.getPosition());
capsule.setUpdatedOn(dbCapsule.getUpdatedOn());
m_li = new HashMap<>();
//m_li.put("copyright",copy);
progress = progressDao.selectByCapsuleUuid(capsule.getUuid());
if (progress != null) {
capsule.setCompleted(progress.getCompleted());
capsule.setViewSlides(progress.getViewSlides());
capsule.setTotalSlides(progress.getTotalSlides());
capsule.setProgress(progress.getProgress());
capsule.setAddedOn(progress.getAddedOn());
// Log.e("Agregado en"," "+progress.getAddedOn());
// m_li.put("addedon",progress.getAddedOn());
m_li.put("view", String.valueOf(progress.getViewSlides()));
m_li.put("total", String.valueOf(progress.getTotalSlides()));
m_li.put("progress", String.valueOf(progress.getProgress()));
m_li.put("completado",String.valueOf(progress.getCompleted()));
m_li.put("agregado",progress.getAddedOn());
}
m_li.put("imagen", capsule.getImage());
m_li.put("nombre", capsule.getName());
m_li.put("uuid", capsule.getUuid());
m_li.put("topicuuid", capsule.getTopicUuid());
m_li.put("description", capsule.getDescription());
//Lleno la lista segun el requerimiento de filtro accionado por el usuario
List<Slide> slides = slideDao.selectAllByCapsuleUuid(capsule.getUuid());
if (slides.isEmpty()) {
// Log.e("Capsula","Es omitida, no tiene slides");
} else {
if (progress == null) {
if (buscar.equals("")) {
capsuleList.add(m_li);
} else {
String nombre= capsule.getName();
String normalizada= Normalizer.normalize(nombre, Normalizer.Form.NFD);
normalizada= normalizada.replaceAll("[^\\p{ASCII}]", "");
if (normalizada.matches("(?i).*" + buscar + ".*")) {
capsuleList.add(m_li);
}
}
}
}
}
}
}
else if (tabposition.equals("cursando"))
{
HashMap<String, String> m_li;
List<Progress> progress;
Capsule capsule;
progress = progressDao.selectAllCapsulesProgress();
for(Progress dbProgress : progress) {
m_li = new HashMap<>();
capsule = capsuleDao.selectByUuid(dbProgress.getCapsuleUuid());
m_li.put("view", String.valueOf(dbProgress.getViewSlides()));
m_li.put("total", String.valueOf(dbProgress.getTotalSlides()));
m_li.put("progress", String.valueOf(dbProgress.getProgress()));
m_li.put("completado",String.valueOf(dbProgress.getCompleted()));
m_li.put("agregado",dbProgress.getAddedOn());
if(capsule == null)
{
Log.e("El objeto es"," nulo");
}
else {
m_li.put("imagen", capsule.getImage());
m_li.put("nombre", capsule.getName());
m_li.put("uuid", capsule.getUuid());
m_li.put("topicuuid", capsule.getTopicUuid());
m_li.put("description", capsule.getDescription());
//Log.e("Lista",""+m_li);
//Lleno la lista segun el requerimiento de filtro accionado por el usuario
List<Slide> slides = slideDao.selectAllByCapsuleUuid(capsule.getUuid());
if (slides.isEmpty()) {
// Log.e("Capsula","Es omitida, no tiene slides");
} else {
if(dbProgress.getProgress() <= 100 && dbProgress.getCompleted()==0)
{
if (buscar.equals("")) {
capsuleList.add(m_li);
} else {
String nombre= capsule.getName();
String normalizada= Normalizer.normalize(nombre, Normalizer.Form.NFD);
normalizada= normalizada.replaceAll("[^\\p{ASCII}]", "");
if (normalizada.matches("(?i).*" + buscar + ".*")) {
capsuleList.add(m_li);
}
}
}}
}}}
else if (tabposition.equals("finalizados")){
HashMap<String, String> m_li;
List<Progress> progress;
Capsule capsule;
progress = progressDao.selectAllCapsulesProgress();
for(Progress dbProgress : progress) {
m_li = new HashMap<>();
capsule = capsuleDao.selectByUuid(dbProgress.getCapsuleUuid());
m_li.put("view", String.valueOf(dbProgress.getViewSlides()));
m_li.put("total", String.valueOf(dbProgress.getTotalSlides()));
m_li.put("progress", String.valueOf(dbProgress.getProgress()));
m_li.put("completado",String.valueOf(dbProgress.getCompleted()));
m_li.put("agregado",dbProgress.getAddedOn());
if(capsule == null)
{
Log.e("El objeto esta", "nulo");
}
else{
m_li.put("imagen", capsule.getImage());
m_li.put("nombre", capsule.getName());
m_li.put("uuid", capsule.getUuid());
m_li.put("topicuuid", capsule.getTopicUuid());
m_li.put("description", capsule.getDescription());
//Lleno la lista segun el requerimiento de filtro accionado por el usuario
List<Slide> slides = slideDao.selectAllByCapsuleUuid(capsule.getUuid());
if (slides.isEmpty()) {
// Log.e("Capsula","Es omitida, no tiene slides");
} else {
if(dbProgress.getProgress() >= 100 && dbProgress.getCompleted()==1){
if (buscar.equals("")) {
//capsule.getCompleted();
capsuleList.add(m_li);
} else {
String nombre= capsule.getName();
String normalizada= Normalizer.normalize(nombre, Normalizer.Form.NFD);
normalizada= normalizada.replaceAll("[^\\p{ASCII}]", "");
if (normalizada.matches("(?i).*" + buscar + ".*")) {
capsuleList.add(m_li);
}
}
}
}
}}}
if(capsuleList.size() == 0)
{
ningunelemento.setVisibility(View.VISIBLE);
}
else
{
ningunelemento.setVisibility(View.GONE);
}
}
@Override
public void onItemClick(int position, View v) {
iTwoGetSkills.setCapsulaActiva(capsuleList.get(position).get("uuid"));
iTwoGetSkills.getPreference().setTopicUuidActive(capsuleList.get(position).get("topicuuid"));
Progress progress; ProgressDao progressDao = iTwoGetSkills.getDatabase().getProgressDao();
progress = progressDao.selectByCapsuleUuid(capsuleList.get(position).get("uuid"));
if (progress != null) {
if (progress.getProgress() >= 100 && progress.getCompleted() == 1) {
iTwoGetSkills.invokeFragment(Constants.IDX_FRAGMENT_DETAIL_CAPSULE);
} else {
iTwoGetSkills.invokeFragment(Constants.IDX_FRAGMENT_SLIDES);
}
iTwoGetSkills.getPreference().setOrigennavigation("welcome");
iTwoGetSkills.hideKeyboard(v); //Ocultamos el teclado
}
else
{
iTwoGetSkills.invokeFragment(Constants.IDX_FRAGMENT_SLIDES);
}
}
}