Proyectos de Subversion Android Microlearning

Rev

Rev 39 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

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