Rev 16 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
package com.cesams.twogetskills.fragment;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuInflater;import android.view.View;import android.view.ViewGroup;import androidx.annotation.NonNull;import androidx.annotation.Nullable;import androidx.fragment.app.Fragment;import androidx.lifecycle.LifecycleOwner;import androidx.lifecycle.Observer;import androidx.lifecycle.ViewModelProvider;import androidx.recyclerview.widget.RecyclerView;import com.cesams.twogetskills.R;import com.cesams.twogetskills.adapter.CapsuleListViewAdapter;import com.cesams.twogetskills.dao.CapsuleDao;import com.cesams.twogetskills.dao.ProgressDao;import com.cesams.twogetskills.dao.TopicDao;import com.cesams.twogetskills.entity.Capsule;import com.cesams.twogetskills.entity.Progress;import com.cesams.twogetskills.entity.Topic;import com.cesams.twogetskills.skeleton.ITwoGetSkills;import com.cesams.twogetskills.viewmodel.CapsuleViewModel;import java.util.ArrayList;import java.util.List;public class CapsuleFragment extends Fragment implements CapsuleListViewAdapter.ItemClickListener, LifecycleOwner {private final String TAG = "C2GS - CapsuleFragment";private RecyclerView listView;private CapsuleListViewAdapter adapter;private ITwoGetSkills iTwoGetSkills;private CapsuleViewModel mCapsuleViewModel;@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setHasOptionsMenu(true);}@Overridepublic void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {super.onCreateOptionsMenu(menu, inflater);menu.clear();}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {return inflater.inflate(R.layout.fragment_capsule, container, false);}@Overridepublic void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {super.onViewCreated(view, savedInstanceState);iTwoGetSkills = (ITwoGetSkills) getActivity();// GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), 2);mCapsuleViewModel = new ViewModelProvider(requireActivity()).get(CapsuleViewModel.class);adapter = new CapsuleListViewAdapter(requireActivity(), mCapsuleViewModel.getCapsuleArrayList());adapter.setClickListener(this);Log.d(TAG, "Declarando el Observador");Observer<ArrayList<Capsule>> capsuleListUpdateObserver = new Observer<ArrayList<Capsule>>() {@Overridepublic void onChanged(ArrayList<Capsule> capsuleArrayList) {Log.d(TAG, "Observador - Actualizar lista de cápsulas");//adapter.updateCapsuleList(capsuleArrayList);adapter.notifyDataSetChanged();}};mCapsuleViewModel.getCapsuleMutableLiveData().observe(requireActivity(),capsuleListUpdateObserver);listView = (RecyclerView) getView().findViewById(R.id.fragment_capsule_listview);listView.setAdapter(adapter);// listView.setLayoutManager( gridLayoutManager);listView.setHasFixedSize(true);}@Overridepublic void onItemClick(View view, int position){iTwoGetSkills.changeCapsuleActive(mCapsuleViewModel.getCapsuleArrayList().get(position).getUuid());}@Overridepublic void onResume() {super.onResume();Log.d(TAG, "onResume");loadData();}@Overridepublic void onHiddenChanged(boolean hidden) {super.onHiddenChanged(hidden);Log.d(TAG, "onHiddenChanged : " + (hidden ? "true" : "false"));if(!hidden) {loadData();}}private void loadData(){TopicDao topicDao = iTwoGetSkills.getDatabase().getTopicDao();Topic topic = topicDao.selectByUuid(iTwoGetSkills.getTopicUuidActive());iTwoGetSkills.setTitleActionBar(topic.getName());CapsuleDao capsuleDao = iTwoGetSkills.getDatabase().getCapsuleDao();List<Capsule> dbCapsules = capsuleDao.selectAllByTopicUuid(topic.getUuid());mCapsuleViewModel.getCapsuleArrayList().clear();Capsule capsule;Progress progress;ProgressDao progressDao = iTwoGetSkills.getDatabase().getProgressDao();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());progress = progressDao.selectByCapsuleUuid(capsule.getUuid());if(progress != null) {capsule.setCompleted( progress.getCompleted());capsule.setViewSlides(progress.getViewSlides());capsule.setTotalSlides( progress.getTotalSlides());capsule.setProgress(progress.getProgress());}mCapsuleViewModel.getCapsuleArrayList().add(capsule);}mCapsuleViewModel.getCapsuleMutableLiveData().setValue(mCapsuleViewModel.getCapsuleArrayList());}}