Rev 4 | 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.SlideListViewAdapter;import com.cesams.twogetskills.dao.CapsuleDao;import com.cesams.twogetskills.dao.ProgressDao;import com.cesams.twogetskills.dao.SlideDao;import com.cesams.twogetskills.entity.Capsule;import com.cesams.twogetskills.entity.Progress;import com.cesams.twogetskills.entity.Slide;import com.cesams.twogetskills.skeleton.ITwoGetSkills;import com.cesams.twogetskills.viewmodel.SlideViewModel;import java.util.List;import java.util.ArrayList;//, IReloadDatapublic class SlideFragment extends Fragment implements SlideListViewAdapter.ItemClickListener, LifecycleOwner {private final String TAG = "C2GS - SlideFragment";private RecyclerView listView;//private List<Slide> items;private SlideListViewAdapter adapter;private ITwoGetSkills iTwoGetSkills;private SlideViewModel mSlideViewModel;@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_slide, container, false);}@Overridepublic void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {super.onViewCreated(view, savedInstanceState);iTwoGetSkills = (ITwoGetSkills) getActivity();//GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), 2);//items = new List<>();mSlideViewModel = new ViewModelProvider(requireActivity()).get(SlideViewModel.class);adapter = new SlideListViewAdapter(getActivity(), mSlideViewModel.getSlideArrayList());adapter.setClickListener(this);listView = (RecyclerView) getView().findViewById(R.id.fragment_slide_listview);listView.setAdapter(adapter);//listView.setLayoutManager( gridLayoutManager);listView.setHasFixedSize(true);Observer<ArrayList<Slide>> slideArrayListUpdateObserver = new Observer<ArrayList<Slide>>() {@Overridepublic void onChanged(ArrayList<Slide> slideArrayList) {adapter.notifyDataSetChanged();}};mSlideViewModel.getSlideMutableLiveData().observe(requireActivity(),slideArrayListUpdateObserver);}@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() {CapsuleDao capsuleDao = iTwoGetSkills.getDatabase().getCapsuleDao();Capsule capsule = capsuleDao.selectByUuid(iTwoGetSkills.getCapsuleUuidActive());iTwoGetSkills.setTitleActionBar(capsule.getName());mSlideViewModel.getSlideArrayList().clear();SlideDao slideDao = iTwoGetSkills.getDatabase().getSlideDao();List<Slide> dbSlides = slideDao.selectAllByCapsuleUuid(iTwoGetSkills.getCapsuleUuidActive());Slide slide;Progress progress;ProgressDao progressDao = iTwoGetSkills.getDatabase().getProgressDao();for(Slide dbSlide : dbSlides){slide = new Slide();slide.setTopicUuid(dbSlide.getTopicUuid());slide.setCapsuleUuid(dbSlide.getCapsuleUuid());slide.setQuizUuid(dbSlide.getQuizUuid());slide.setUuid(dbSlide.getUuid());slide.setName(dbSlide.getName());slide.setDescription(dbSlide.getDescription());slide.setType(dbSlide.getType());slide.setFile(dbSlide.getFile());slide.setBackground(dbSlide.getBackground());slide.setPosition(dbSlide.getPosition());progress = progressDao.selectBySlideUuid(slide.getUuid());if(progress != null) {slide.setCompleted(progress.getCompleted());} else {slide.setCompleted(0);}slide.setShowFinish(false);mSlideViewModel.getSlideArrayList().add(slide);}mSlideViewModel.getSlideMutableLiveData().setValue(mSlideViewModel.getSlideArrayList());}@Overridepublic void onItemClick(View view, int position){iTwoGetSkills.changeSlideActive(mSlideViewModel.getSlideArrayList().get(position).getUuid(), mSlideViewModel.getSlideArrayList().get(position).getType(), true);}}