Rev 34 | 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.Constants;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;//private SlideRefreshUIViewModel mSlideRefreshUi;@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();mSlideViewModel = new ViewModelProvider(requireActivity()).get(SlideViewModel.class);adapter = new SlideListViewAdapter(getActivity(), mSlideViewModel.getSlideArrayList());adapter.setClickListener(this);listView = 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);loadData();}@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();Log.e("Cargando","desde oculto");}}private void loadData() {int fragmentIdxActive = iTwoGetSkills.getPreference().getFragmentIdxActive();if (fragmentIdxActive != Constants.IDX_FRAGMENT_GALLERY&& fragmentIdxActive != Constants.IDX_FRAGMENT_SLIDES) {return;}Log.d("BUG 2PLANO", "SlideFragment - loadData");Log.d("BUG 2PLANO", "SlideFragment - CapsuleUuid : " + iTwoGetSkills.getCapsuleUuidActive());String userUuid = iTwoGetSkills.getPreference().getUserUuid();//SlideRefreshUIViewData slideRefreshUIViewData = mSlideRefreshUi.getSlideRefreshUIViewData();List<Slide> dbSlides;SlideDao slideDao = iTwoGetSkills.getDatabase().getSlideDao();CapsuleDao capsuleDao = iTwoGetSkills.getDatabase().getCapsuleDao();Capsule capsule = capsuleDao.selectByUuid(iTwoGetSkills.getCapsuleUuidActive());iTwoGetSkills.setTitleActionBar(capsule.getName());dbSlides = slideDao.selectAllByCapsuleUuid(iTwoGetSkills.getCapsuleUuidActive());mSlideViewModel.getSlideArrayList().clear();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.selectBySlideUuidAndUserUuid(slide.getUuid(), userUuid);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);}}