Rev 39 | 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 android.widget.ImageButton;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.viewpager2.widget.ViewPager2;import com.cesams.twogetskills.Constants;import com.cesams.twogetskills.R;import com.cesams.twogetskills.adapter.GalleryViewPageAdapter;import com.cesams.twogetskills.dao.ProgressDao;import com.cesams.twogetskills.dao.SlideDao;import com.cesams.twogetskills.entity.Progress;import com.cesams.twogetskills.entity.Slide;import com.cesams.twogetskills.skeleton.ITwoGetSkills;import com.cesams.twogetskills.viewmodel.GalleryViewModel;import com.wajahatkarim3.easyflipviewpager.BookFlipPageTransformer2;import java.util.List;import java.util.ArrayList;//IResultActivitypublic class GalleryFragment extends Fragment implements LifecycleOwner {private final String TAG = "C2GS - GalleryFragment";private ViewPager2 viewPager2;private ImageButton mButtonNext;private ImageButton mButtonPrevious;private GalleryViewPageAdapter adapter;private ITwoGetSkills iTwoGetSkills;private GalleryViewModel mGalleryViewModel;@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_gallery, container, false);}@Overridepublic void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {super.onViewCreated(view, savedInstanceState);iTwoGetSkills = (ITwoGetSkills) getActivity();mGalleryViewModel = new ViewModelProvider(requireActivity()).get(GalleryViewModel.class);adapter = new GalleryViewPageAdapter(getActivity(), mGalleryViewModel.getSlideArrayList());viewPager2 = (ViewPager2) getView().findViewById(R.id.fragment_gallery_viewpager2);viewPager2.setAdapter(adapter);Observer<ArrayList<Slide>> slideArrayListUpdateObserver = new Observer<ArrayList<Slide>>() {@Overridepublic void onChanged(ArrayList<Slide> slideArrayList) {adapter.notifyDataSetChanged();}};mGalleryViewModel.getSlideMutableLiveData().observe(requireActivity(),slideArrayListUpdateObserver);mButtonNext = (ImageButton) getView().findViewById(R.id.fragment_gallery_button_next);mButtonNext.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Log.d("Gallery ViewPager2", "CurrentItem = " + viewPager2.getCurrentItem() );if(viewPager2.getCurrentItem() < (mGalleryViewModel.getSlideArrayList().size() - 1)) {viewPager2.setCurrentItem(viewPager2.getCurrentItem() + 1);}}});mButtonPrevious = (ImageButton) getView().findViewById(R.id.fragment_gallery_button_previous);mButtonPrevious.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Log.d("Gallery ViewPager2", "CurrentItem = " + viewPager2.getCurrentItem() );if(viewPager2.getCurrentItem() > 0 && mGalleryViewModel.getSlideArrayList().size() > 0 ) {viewPager2.setCurrentItem(viewPager2.getCurrentItem() - 1 );}}});// Create an object of page transformerBookFlipPageTransformer2 bookFlipPageTransformer = new BookFlipPageTransformer2();// Enable / Disable scaling while flipping. If true, then next page will scale in (zoom in). By default, its true.bookFlipPageTransformer.setEnableScale(false);// The amount of scale the page will zoom. By default, its 5 percent.bookFlipPageTransformer.setScaleAmountPercent(10f);// Assign the page transformer to the ViewPager2.viewPager2.setPageTransformer(bookFlipPageTransformer);// viewPager2.setPageTransformer(new ZoomOutPageTransformer());viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {@Overridepublic void onPageSelected(int position) {super.onPageSelected(position);Log.d(TAG, "registerOnPageChangeCallback");Slide mItem = mGalleryViewModel.getSlideArrayList().get(position);iTwoGetSkills.setTitleActionBar(mItem.getName());iTwoGetSkills.changeSlideActive(mItem.getUuid(), mItem.getType(), false);loadData(true);}});}@Overridepublic void onResume() {super.onResume();Log.d(TAG, "onResume");loadData(true);}@Overridepublic void onHiddenChanged(boolean hidden) {super.onHiddenChanged(hidden);Log.d(TAG, "onHiddenChanged : " + (hidden ? "true" : "false"));if(!hidden) {loadData(true);}}private void loadData(boolean setValue) {int fragmentIdxActive = iTwoGetSkills.getPreference().getFragmentIdxActive();if (fragmentIdxActive != Constants.IDX_FRAGMENT_GALLERY&& fragmentIdxActive != Constants.IDX_FRAGMENT_SLIDES) {return;}Log.d("BUG 2PLANO", "GalleryFragment - loadData");Log.d("BUG 2PLANO", "GalleryFragment - CapsuleUuid : " + iTwoGetSkills.getCapsuleUuidActive());String userUuid = iTwoGetSkills.getPreference().getUserUuid();SlideDao slideDao = iTwoGetSkills.getDatabase().getSlideDao();List<Slide> dbSlides = slideDao.selectAllByCapsuleUuid(iTwoGetSkills.getCapsuleUuidActive());Progress progress;ProgressDao progressDao = iTwoGetSkills.getDatabase().getProgressDao();boolean showFinish = false;progress = progressDao.selectByTopicUuidAndUserUuid(iTwoGetSkills.getTopicUuidActive(), userUuid);if(progress != null) {showFinish = progress.getProgress() >= 100 && progress.getCompleted() == 0;}if(!showFinish) {progress = progressDao.selectByCapsuleUuidAndUserUuid(iTwoGetSkills.getCapsuleUuidActive(), userUuid);if(progress != null) {showFinish = progress.getProgress() >= 100 && progress.getCompleted() == 0;}}mGalleryViewModel.getSlideArrayList().clear();int i = 0;int position = 0;Slide slide;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());if(slide.getUuid().equals(iTwoGetSkills.getSlideUuidActive())) {position = i;}progress = progressDao.selectBySlideUuidAndUserUuid(slide.getUuid(), userUuid);if(progress != null) {slide.setCompleted(progress.getCompleted());} else {slide.setCompleted(0);}slide.setShowFinish(showFinish);i++;mGalleryViewModel.getSlideArrayList().add(slide);}Log.d(TAG, "slide position : " + position);// if(setValue) {mGalleryViewModel.getSlideMutableLiveData().setValue(mGalleryViewModel.getSlideArrayList());//} else {//mGalleryViewModel.getSlideMutableLiveData().postValue(mGalleryViewModel.getSlideArrayList());//}iTwoGetSkills.setTitleActionBar(mGalleryViewModel.getSlideArrayList().get(position).getName());viewPager2.setCurrentItem(position, false);}}