Proyectos de Subversion Android Microlearning - Nuevo Interface

Rev

Rev 3 | Rev 20 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3 Rev 19
Línea 1... Línea 1...
1
package com.cesams.twogetskills.fragment;
1
package com.cesams.twogetskills.fragment;
Línea 2... Línea -...
2
 
-
 
-
 
2
 
Línea 3... Línea 3...
3
import static androidx.viewpager2.widget.ViewPager2.SCROLL_STATE_IDLE;
3
 
4
 
4
 
5
import android.os.Bundle;
5
import android.os.Bundle;
6
import android.util.Log;
6
import android.util.Log;
Línea 21... Línea 21...
21
 
21
 
22
 
22
 
23
import com.cesams.twogetskills.Constants;
23
import com.cesams.twogetskills.Constants;
24
import com.cesams.twogetskills.R;
-
 
-
 
24
import com.cesams.twogetskills.R;
25
import com.cesams.twogetskills.adapter.GalleryViewPageAdapter;
25
import com.cesams.twogetskills.adapter.GalleryViewPageAdapter;
26
import com.cesams.twogetskills.dao.DatabaseHelper;
26
 
27
import com.cesams.twogetskills.dao.ProgressDao;
27
import com.cesams.twogetskills.dao.ProgressDao;
28
import com.cesams.twogetskills.dao.SlideDao;
28
import com.cesams.twogetskills.dao.SlideDao;
Línea 29... Línea -...
29
import com.cesams.twogetskills.entity.Progress;
-
 
-
 
29
import com.cesams.twogetskills.entity.Progress;
30
import com.cesams.twogetskills.entity.Slide;
30
import com.cesams.twogetskills.entity.Slide;
31
 
-
 
32
 
-
 
33
import com.cesams.twogetskills.room.ResultCount;
-
 
34
import com.cesams.twogetskills.skeleton.ITwoGetSkills;
31
 
35
import com.cesams.twogetskills.viewdata.GalleryRefreshUIViewData;
-
 
-
 
32
 
36
import com.cesams.twogetskills.viewdata.SlideRefreshUIViewData;
33
 
Línea 37... Línea 34...
37
import com.cesams.twogetskills.viewmodel.GalleryRefreshUIViewModel;
34
import com.cesams.twogetskills.skeleton.ITwoGetSkills;
38
import com.cesams.twogetskills.viewmodel.GalleryViewModel;
35
import com.cesams.twogetskills.viewmodel.GalleryViewModel;
Línea 49... Línea 46...
49
    private ImageButton mButtonNext;
46
    private ImageButton mButtonNext;
50
    private ImageButton mButtonPrevious;
47
    private ImageButton mButtonPrevious;
51
    private GalleryViewPageAdapter adapter;
48
    private GalleryViewPageAdapter adapter;
52
    private ITwoGetSkills iTwoGetSkills;
49
    private ITwoGetSkills iTwoGetSkills;
53
    private GalleryViewModel mGalleryViewModel;
50
    private GalleryViewModel mGalleryViewModel;
54
    private SlideRefreshUIViewModel mSlideRefreshUIViewModel;
-
 
55
    private GalleryRefreshUIViewModel mGalleryRefreshUIView;
-
 
Línea 56... Línea 51...
56
 
51
 
57
 
52
 
58
    @Override
53
    @Override
Línea 77... Línea 72...
77
 
72
 
78
    @Override
73
    @Override
79
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
74
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
80
        super.onViewCreated(view, savedInstanceState);
75
        super.onViewCreated(view, savedInstanceState);
81
        iTwoGetSkills = (ITwoGetSkills) getActivity();
-
 
82
 
-
 
83
        mGalleryRefreshUIView = new ViewModelProvider(requireActivity()).get(GalleryRefreshUIViewModel.class);
-
 
84
        mSlideRefreshUIViewModel = new ViewModelProvider(requireActivity()).get(SlideRefreshUIViewModel.class);
76
        iTwoGetSkills = (ITwoGetSkills) getActivity();
85
        mGalleryViewModel = new ViewModelProvider(requireActivity()).get(GalleryViewModel.class);
77
	mGalleryViewModel = new ViewModelProvider(requireActivity()).get(GalleryViewModel.class);
Línea 86... Línea 78...
86
        adapter = new GalleryViewPageAdapter(requireActivity(), mGalleryViewModel.getSlideArrayList());
78
        adapter = new GalleryViewPageAdapter(getActivity(), mGalleryViewModel.getSlideArrayList());
87
 
79
 
Línea 88... Línea -...
88
        viewPager2 = getView().findViewById(R.id.fragment_gallery_viewpager2);
-
 
89
        viewPager2.setAdapter(adapter);
-
 
90
 
-
 
91
 
-
 
92
        // Create an object of page transformer
-
 
93
        BookFlipPageTransformer2 bookFlipPageTransformer = new BookFlipPageTransformer2();
-
 
94
 
-
 
95
        // Enable / Disable scaling while flipping. If true, then next page will scale in (zoom in). By default, its true.
-
 
Línea 96... Línea -...
96
        bookFlipPageTransformer.setEnableScale(false);
-
 
97
 
-
 
98
        // The amount of scale the page will zoom. By default, its 5 percent.
-
 
99
        bookFlipPageTransformer.setScaleAmountPercent(10f);
-
 
100
 
80
        viewPager2 = getView().findViewById(R.id.fragment_gallery_viewpager2);
101
        // Assign the page transformer to the ViewPager2.
81
        viewPager2.setAdapter(adapter);
102
        viewPager2.setPageTransformer(bookFlipPageTransformer);
82
 
103
 
83
 
104
/*
-
 
105
        Observer<ArrayList<Slide>> slideArrayListUpdateObserver = new Observer<ArrayList<Slide>>() {
-
 
106
            @Override
-
 
107
            public void onChanged(ArrayList<Slide> slideArrayList) {
-
 
108
                //Este metodo se ejecuta si el slide Array sufre cambios
-
 
109
 
84
 
110
 
85
        Observer<ArrayList<Slide>> slideArrayListUpdateObserver = new Observer<ArrayList<Slide>>() {
111
 
-
 
112
 
-
 
113
 
86
            @Override
114
            }
-
 
115
        };
-
 
116
*/
-
 
117
 
-
 
Línea -... Línea 87...
-
 
87
            public void onChanged(ArrayList<Slide> slideArrayList) {
118
        //mGalleryViewModel.getSlideMutableLiveData().observe(requireActivity(),slideArrayListUpdateObserver);
88
                adapter.notifyDataSetChanged();
119
 
89
            }
120
 
90
        };
121
 
91
	mGalleryViewModel.getSlideMutableLiveData().observe(requireActivity(),slideArrayListUpdateObserver);
122
        mButtonNext = getView().findViewById(R.id.fragment_gallery_button_next);
-
 
123
 
92
 
124
 
-
 
125
 
93
 
-
 
94
 
126
        mButtonNext.setOnClickListener(new View.OnClickListener() {
95
        mButtonNext = (ImageButton) getView().findViewById(R.id.fragment_gallery_button_next);
127
            @Override
96
        mButtonNext.setOnClickListener(new View.OnClickListener() {
Línea 128... Línea 97...
128
            public void onClick(View view) {
97
            @Override
129
                SlideRefreshUIViewData slideRefreshUIViewData = mSlideRefreshUIViewModel.getSlideRefreshUIViewData();
-
 
130
                slideRefreshUIViewData.setNextFromButton(true);
98
            public void onClick(View view) {
131
                mSlideRefreshUIViewModel.getSlideRefreshUIMutableLiveData().setValue(slideRefreshUIViewData);
99
                Log.d("Gallery ViewPager2", "CurrentItem = " + viewPager2.getCurrentItem()  );
132
 
100
                if(viewPager2.getCurrentItem() < (mGalleryViewModel.getSlideArrayList().size() - 1)) {
133
                viewPager2.setCurrentItem(getItem(+1), true); //getItem(-1) for previous
101
                    viewPager2.setCurrentItem(viewPager2.getCurrentItem() + 1);
134
            }
102
                }
135
        });
103
            }
136
 
-
 
137
        mButtonPrevious = getView().findViewById(R.id.fragment_gallery_button_previous);
-
 
138
 
104
        });
139
        mButtonPrevious.setOnClickListener(new View.OnClickListener() {
-
 
140
            @Override
105
 
141
            public void onClick(View view) {
106
        mButtonPrevious = (ImageButton) getView().findViewById(R.id.fragment_gallery_button_previous);
-
 
107
        mButtonPrevious.setOnClickListener(new View.OnClickListener() {
-
 
108
            @Override
Línea -... Línea 109...
-
 
109
            public void onClick(View view) {
-
 
110
                Log.d("Gallery ViewPager2", "CurrentItem = " + viewPager2.getCurrentItem()  );
Línea -... Línea 111...
-
 
111
                if(viewPager2.getCurrentItem() > 0 && mGalleryViewModel.getSlideArrayList().size() > 0 ) {
-
 
112
                    viewPager2.setCurrentItem(viewPager2.getCurrentItem() - 1 );
Línea -... Línea 113...
-
 
113
                }
-
 
114
            }
-
 
115
        });
-
 
116
        // Create an object of page transformer
-
 
117
        BookFlipPageTransformer2 bookFlipPageTransformer = new BookFlipPageTransformer2();
142
              //  Log.d("Gallery ViewPager2", "CurrentItem = " + viewPager2.getCurrentItem()  );
118
 
Línea 143... Línea 119...
143
                SlideRefreshUIViewData slideRefreshUIViewData = mSlideRefreshUIViewModel.getSlideRefreshUIViewData();
119
        // Enable / Disable scaling while flipping. If true, then next page will scale in (zoom in). By default, its true.
144
                slideRefreshUIViewData.setNextFromButton(true);
120
        bookFlipPageTransformer.setEnableScale(false);
145
                mSlideRefreshUIViewModel.getSlideRefreshUIMutableLiveData().setValue(slideRefreshUIViewData);
121
 
Línea 165... Línea 141...
165
                Log.e("ONPageSelecte","aqui¡ "+mItem.getType());
141
                Log.e("ONPageSelecte","aqui¡ "+mItem.getType());
Línea 166... Línea 142...
166
 
142
 
167
                iTwoGetSkills.setTitleActionBar(mItem.getName());
143
                iTwoGetSkills.setTitleActionBar(mItem.getName());
Línea 168... Línea -...
168
                iTwoGetSkills.changeSlideActive(mItem.getUuid(), mItem.getType(), false);
-
 
169
 
-
 
170
 
-
 
171
 
144
                iTwoGetSkills.changeSlideActive(mItem.getUuid(), mItem.getType(), false);
172
                //Resuelve el fix de pagina vista de imagenes no marcada
-
 
173
                loadData(false);
-
 
174
 
-
 
175
 
-
 
176
            }
-
 
177
 
-
 
178
 
-
 
179
            @Override
-
 
180
            public void onPageScrollStateChanged(int state) {
-
 
181
                super.onPageScrollStateChanged(state);
-
 
182
 
-
 
183
 
-
 
184
                SlideRefreshUIViewData slideRefreshUIViewData = mSlideRefreshUIViewModel.getSlideRefreshUIViewData();
-
 
185
 
-
 
186
 
-
 
187
                if (slideRefreshUIViewData.isImagenViewerControl() && state==ViewPager2.SCROLL_STATE_IDLE) {
-
 
188
 
-
 
189
 
-
 
190
                    adapter.notifyItemChanged(viewPager2.getCurrentItem());
-
 
Línea 191... Línea 145...
191
 
145
 
192
                }
146
                loadData();
Línea 193... Línea -...
193
 
-
 
Línea 194... Línea -...
194
            }
-
 
Línea 195... Línea -...
195
        });
-
 
196
 
-
 
197
 
147
 
Línea 198... Línea -...
198
 
-
 
199
        loadData(false);
-
 
200
 
-
 
201
    }
148
            }
Línea 202... Línea 149...
202
 
149
        });
203
    private int getItem(int i) {
150
 
204
        return viewPager2.getCurrentItem() + i;
151
 
Línea 205... Línea 152...
205
    }
152
 
-
 
153
 
-
 
154
 
Línea 206... Línea -...
206
 
-
 
207
    @Override
-
 
208
    public void onPause() {
-
 
Línea 209... Línea -...
209
        super.onPause();
-
 
210
    }
-
 
211
 
-
 
Línea 212... Línea 155...
212
    @Override
155
    }
213
    public void onResume() {
156
 
214
        super.onResume();
157
 
Línea 215... Línea -...
215
 
-
 
216
        iTwoGetSkills.getPreference().save();
-
 
217
 
158
 
Línea 218... Línea 159...
218
        SlideRefreshUIViewData slideRefreshUIViewData = mSlideRefreshUIViewModel.getSlideRefreshUIViewData();
159
    @Override
219
        slideRefreshUIViewData.setResumenVisores(true);
160
    public void onResume() {
220
        mSlideRefreshUIViewModel.getSlideRefreshUIMutableLiveData().setValue(slideRefreshUIViewData);
-
 
221
 
161
        super.onResume();
222
 
162
 
Línea 223... Línea 163...
223
        loadData(true);
163
        Log.d(TAG, "onResume");
Línea -... Línea 164...
-
 
164
        loadData();
Línea -... Línea 165...
-
 
165
    }
224
    }
166
 
-
 
167
 
-
 
168
 
-
 
169
 
Línea 225... Línea -...
225
 
-
 
226
 
-
 
227
    @Override
-
 
228
    public void onHiddenChanged(boolean hidden) {
-
 
229
        super.onHiddenChanged(hidden);
-
 
Línea 230... Línea -...
230
 
-
 
231
        adapter.notifyDataSetChanged();
-
 
232
 
-
 
233
        iTwoGetSkills.getPreference().save();
-
 
Línea 234... Línea 170...
234
 
170
    @Override
235
        if(!hidden) {
171
    public void onHiddenChanged(boolean hidden) {
Línea 236... Línea -...
236
            loadData( false);
-
 
Línea 237... Línea -...
237
 
-
 
238
        }
-
 
Línea 239... Línea 172...
239
    }
172
        super.onHiddenChanged(hidden);
240
 
173
 
241
    private void loadData( boolean background) {
174
        Log.d(TAG, "onHiddenChanged : " + (hidden ? "true" : "false"));
Línea 242... Línea -...
242
 
-
 
Línea -... Línea 175...
-
 
175
 
-
 
176
        if(!hidden) {
-
 
177
            loadData();
-
 
178
        }
-
 
179
    }
-
 
180
 
243
 
181
    private void loadData() {
244
        GalleryRefreshUIViewData galleryRefreshUIViewData = mGalleryRefreshUIView.getGalleryRefreshUIViewData();
182
 
245
 
183
        int fragmentIdxActive = iTwoGetSkills.getPreference().getFragmentIdxActive();
246
        SlideDao slideDao = iTwoGetSkills.getDatabase().getSlideDao();
184
 
247
        Progress progress;
185
        if (fragmentIdxActive != Constants.IDX_FRAGMENT_GALLERY
248
        boolean showFinish = false;
186
            && fragmentIdxActive != Constants.IDX_FRAGMENT_SLIDES
249
        List<Slide> dbSlides;
187
        ) {
250
        ProgressDao progressDao = iTwoGetSkills.getDatabase().getProgressDao();
188
            return;
251
 
189
        }
Línea 252... Línea 190...
252
        if(!background)
190
 
Línea 253... Línea 191...
253
        {
191
 
254
            dbSlides = slideDao.selectAllByCapsuleUuid(iTwoGetSkills.getCapsuleUuidActive());
192
 
255
            progress = progressDao.selectByTopicUuid(iTwoGetSkills.getTopicUuidActive());
193
        Log.d("BUG 2PLANO", "GalleryFragment - loadData");
256
 
194
        Log.d("BUG 2PLANO", "GalleryFragment - CapsuleUuid : " + iTwoGetSkills.getCapsuleUuidActive());
-
 
195
 
257
            galleryRefreshUIViewData.setDbSlidesActive(dbSlides);
196
 
258
            galleryRefreshUIViewData.setProgreso(progress);
197
 
259
 
198
        String userUuid = iTwoGetSkills.getPreference().getUserUuid();
260
            mGalleryRefreshUIView.getGalleryRefreshUIMutableLiveData().setValue(galleryRefreshUIViewData);
199
        SlideDao slideDao = iTwoGetSkills.getDatabase().getSlideDao();
261
 
200
        List<Slide> dbSlides = slideDao.selectAllByCapsuleUuid(iTwoGetSkills.getCapsuleUuidActive());
Línea 295... Línea 234...
295
            slide.setFile(dbSlide.getFile());
234
            slide.setFile(dbSlide.getFile());
296
            slide.setBackground(dbSlide.getBackground());
235
            slide.setBackground(dbSlide.getBackground());
297
            slide.setPosition(dbSlide.getPosition());
236
            slide.setPosition(dbSlide.getPosition());
Línea 298... Línea 237...
298
 
237
 
299
 
238
 
300
            if (slide.getUuid().equals(iTwoGetSkills.getSlideUuidActive())) {
239
            if(slide.getUuid().equals(iTwoGetSkills.getSlideUuidActive())) {
Línea 301... Línea 240...
301
                position = i;
240
                position = i;
302
            }
241
            }
303
 
242
 
304
            progress = progressDao.selectBySlideUuid(slide.getUuid());
243
            progress = progressDao.selectBySlideUuidAndUserUuid(slide.getUuid(), userUuid);
305
            if (progress != null) {
244
            if(progress != null) {
306
                slide.setCompleted(progress.getCompleted());
245
                slide.setCompleted(progress.getCompleted());
307
            } else {
246
            } else {
Línea 313... Línea 252...
313
            mGalleryViewModel.getSlideArrayList().add(slide);
252
            mGalleryViewModel.getSlideArrayList().add(slide);
314
        }
253
        }
Línea 315... Línea 254...
315
 
254
 
Línea -... Línea 255...
-
 
255
           iTwoGetSkills.setTitleActionBar(mGalleryViewModel.getSlideArrayList().get(position).getName());
Línea 316... Línea -...
316
           iTwoGetSkills.setTitleActionBar(mGalleryViewModel.getSlideArrayList().get(position).getName());
-
 
317
 
-
 
318
 
-
 
319
            SlideRefreshUIViewData slideRefreshUIViewData = mSlideRefreshUIViewModel.getSlideRefreshUIViewData();
-
 
320
 
-
 
321
            if (!slideRefreshUIViewData.isNextFromButton()) {
256
 
322
                if (slideRefreshUIViewData.isCambioSlide()) {
-
 
323
                    viewPager2.setCurrentItem(position, false);
-
 
324
                }
-
 
325
 
-
 
326
            }
-
 
327
 
-
 
328
            //Cuando ejecuto los visores de capsula como el reproductor de video y regreso, me aseguro de marcar vista el slide
-
 
329
            if (slideRefreshUIViewData.isResumenVisores()) {
-
 
330
 
-
 
331
                adapter.notifyItemChanged(viewPager2.getCurrentItem());
-
 
332
 
-
 
333
            }
-
 
334
 
-
 
335
            slideRefreshUIViewData.setCambioSlide(false);
-
 
336
            slideRefreshUIViewData.setResumenVisores(false);
-
 
337
            slideRefreshUIViewData.setNextFromButton(false);
-
 
338
 
-
 
339
            mSlideRefreshUIViewModel.getSlideRefreshUIMutableLiveData().setValue(slideRefreshUIViewData);
-
 
340
 
257
        Log.d(TAG, "slide position : " + position);
-
 
258
 
-
 
259
       // if(setValue) {
-
 
260
            mGalleryViewModel.getSlideMutableLiveData().setValue(mGalleryViewModel.getSlideArrayList());
Línea -... Línea 261...
-
 
261
        //} else {
341
 
262
            //mGalleryViewModel.getSlideMutableLiveData().postValue(mGalleryViewModel.getSlideArrayList());
342
 
-
 
343
            mGalleryViewModel.getSlideMutableLiveData().setValue(mGalleryViewModel.getSlideArrayList());
-
 
Línea -... Línea 263...
-
 
263
        //}
Línea 344... Línea -...
344
 
-
 
345
        }
264
 
-
 
265
        iTwoGetSkills.setTitleActionBar(mGalleryViewModel.getSlideArrayList().get(position).getName());