Proyectos de Subversion Android Microlearning - Nuevo Interface

Rev

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

Rev 2 Rev 3
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
 
2
 
Línea 3... Línea 3...
3
import static java.lang.Thread.sleep;
3
import static androidx.viewpager2.widget.ViewPager2.SCROLL_STATE_IDLE;
4
 
-
 
5
import android.os.Bundle;
4
 
6
import android.os.Handler;
5
import android.os.Bundle;
7
import android.util.Log;
6
import android.util.Log;
8
import android.view.LayoutInflater;
7
import android.view.LayoutInflater;
9
import android.view.Menu;
8
import android.view.Menu;
Línea 16... Línea 15...
16
import androidx.annotation.Nullable;
15
import androidx.annotation.Nullable;
17
import androidx.fragment.app.Fragment;
16
import androidx.fragment.app.Fragment;
18
import androidx.lifecycle.LifecycleOwner;
17
import androidx.lifecycle.LifecycleOwner;
19
import androidx.lifecycle.Observer;
18
import androidx.lifecycle.Observer;
20
import androidx.lifecycle.ViewModelProvider;
19
import androidx.lifecycle.ViewModelProvider;
21
import androidx.room.Database;
-
 
22
import androidx.viewpager2.widget.ViewPager2;
20
import androidx.viewpager2.widget.ViewPager2;
Línea -... Línea 21...
-
 
21
 
23
 
22
 
24
 
23
import com.cesams.twogetskills.Constants;
25
import com.cesams.twogetskills.R;
24
import com.cesams.twogetskills.R;
26
import com.cesams.twogetskills.adapter.GalleryViewPageAdapter;
25
import com.cesams.twogetskills.adapter.GalleryViewPageAdapter;
27
import com.cesams.twogetskills.dao.DatabaseHelper;
26
import com.cesams.twogetskills.dao.DatabaseHelper;
28
import com.cesams.twogetskills.dao.ProgressDao;
27
import com.cesams.twogetskills.dao.ProgressDao;
29
import com.cesams.twogetskills.dao.SlideDao;
28
import com.cesams.twogetskills.dao.SlideDao;
-
 
29
import com.cesams.twogetskills.entity.Progress;
-
 
30
import com.cesams.twogetskills.entity.Slide;
-
 
31
 
30
import com.cesams.twogetskills.entity.Progress;
32
 
-
 
33
import com.cesams.twogetskills.room.ResultCount;
-
 
34
import com.cesams.twogetskills.skeleton.ITwoGetSkills;
-
 
35
import com.cesams.twogetskills.viewdata.GalleryRefreshUIViewData;
31
import com.cesams.twogetskills.entity.Slide;
36
import com.cesams.twogetskills.viewdata.SlideRefreshUIViewData;
-
 
37
import com.cesams.twogetskills.viewmodel.GalleryRefreshUIViewModel;
32
import com.cesams.twogetskills.skeleton.ITwoGetSkills;
38
import com.cesams.twogetskills.viewmodel.GalleryViewModel;
Línea 33... Línea 39...
33
import com.cesams.twogetskills.viewmodel.GalleryViewModel;
39
import com.cesams.twogetskills.viewmodel.SlideRefreshUIViewModel;
34
import com.wajahatkarim3.easyflipviewpager.BookFlipPageTransformer2;
40
import com.wajahatkarim3.easyflipviewpager.BookFlipPageTransformer2;
35
 
-
 
36
import java.util.List;
-
 
Línea 37... Línea 41...
37
import java.util.ArrayList;
41
 
38
import java.util.Timer;
42
import java.util.List;
39
import java.util.TimerTask;
43
import java.util.ArrayList;
40
 
44
 
41
//IResultActivity
45
//IResultActivity
42
public class GalleryFragment extends Fragment implements LifecycleOwner {
46
public class GalleryFragment extends Fragment implements LifecycleOwner {
43
    private final String TAG = "C2GS - GalleryFragment";
47
    private final String TAG = "C2GS - GalleryFragment";
44
    private ViewPager2 viewPager2;
48
    private ViewPager2 viewPager2;
45
    private ImageButton mButtonNext;
49
    private ImageButton mButtonNext;
-
 
50
    private ImageButton mButtonPrevious;
46
    private ImageButton mButtonPrevious;
51
    private GalleryViewPageAdapter adapter;
-
 
52
    private ITwoGetSkills iTwoGetSkills;
Línea 47... Línea 53...
47
    private GalleryViewPageAdapter adapter;
53
    private GalleryViewModel mGalleryViewModel;
48
    private ITwoGetSkills iTwoGetSkills;
54
    private SlideRefreshUIViewModel mSlideRefreshUIViewModel;
49
    private GalleryViewModel mGalleryViewModel;
55
    private GalleryRefreshUIViewModel mGalleryRefreshUIView;
50
    boolean isnextfrombutton = false;
56
 
Línea 51... Línea -...
51
 
-
 
52
    @Override
-
 
53
    public void onCreate(@Nullable Bundle savedInstanceState) {
57
 
Línea 54... Línea 58...
54
        super.onCreate(savedInstanceState);
58
    @Override
55
        setHasOptionsMenu(true);
59
    public void onCreate(@Nullable Bundle savedInstanceState) {
56
 
60
        super.onCreate(savedInstanceState);
Línea 74... Línea 78...
74
    @Override
78
    @Override
75
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
79
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
76
        super.onViewCreated(view, savedInstanceState);
80
        super.onViewCreated(view, savedInstanceState);
77
        iTwoGetSkills = (ITwoGetSkills) getActivity();
81
        iTwoGetSkills = (ITwoGetSkills) getActivity();
Línea 78... Línea 82...
78
 
82
 
79
        Handler handler = new Handler();
-
 
80
 
-
 
-
 
83
        mGalleryRefreshUIView = new ViewModelProvider(requireActivity()).get(GalleryRefreshUIViewModel.class);
81
 
84
        mSlideRefreshUIViewModel = new ViewModelProvider(requireActivity()).get(SlideRefreshUIViewModel.class);
82
        mGalleryViewModel = new ViewModelProvider(requireActivity()).get(GalleryViewModel.class);
85
        mGalleryViewModel = new ViewModelProvider(requireActivity()).get(GalleryViewModel.class);
Línea 83... Línea 86...
83
        adapter = new GalleryViewPageAdapter(getActivity(), mGalleryViewModel.getSlideArrayList());
86
        adapter = new GalleryViewPageAdapter(requireActivity(), mGalleryViewModel.getSlideArrayList());
84
 
87
 
Línea 96... Línea 99...
96
        bookFlipPageTransformer.setScaleAmountPercent(10f);
99
        bookFlipPageTransformer.setScaleAmountPercent(10f);
Línea 97... Línea 100...
97
 
100
 
98
        // Assign the page transformer to the ViewPager2.
101
        // Assign the page transformer to the ViewPager2.
Línea 99... Línea -...
99
        viewPager2.setPageTransformer(bookFlipPageTransformer);
-
 
100
 
102
        viewPager2.setPageTransformer(bookFlipPageTransformer);
101
 
103
 
102
 
104
/*
103
        Observer<ArrayList<Slide>> slideArrayListUpdateObserver = new Observer<ArrayList<Slide>>() {
105
        Observer<ArrayList<Slide>> slideArrayListUpdateObserver = new Observer<ArrayList<Slide>>() {
-
 
106
            @Override
-
 
107
            public void onChanged(ArrayList<Slide> slideArrayList) {
Línea 104... Línea -...
104
            @Override
-
 
Línea 105... Línea -...
105
            public void onChanged(ArrayList<Slide> slideArrayList) {
-
 
Línea 106... Línea -...
106
 
-
 
Línea 107... Línea 108...
107
                        if(DatabaseHelper.imagenviewerontrol.equals("SI")) {
108
                //Este metodo se ejecuta si el slide Array sufre cambios
108
 
109
 
-
 
110
 
Línea 109... Línea 111...
109
                            adapter.notifyItemChanged(viewPager2.getCurrentItem());
111
 
Línea 110... Línea 112...
110
 
112
 
Línea 111... Línea 113...
111
                        }
113
 
112
 
114
            }
113
            }
115
        };
114
        };
116
*/
115
 
117
 
116
        mGalleryViewModel.getSlideMutableLiveData().observe(requireActivity(),slideArrayListUpdateObserver);
118
        //mGalleryViewModel.getSlideMutableLiveData().observe(requireActivity(),slideArrayListUpdateObserver);
Línea 117... Línea 119...
117
 
119
 
118
 
120
 
119
 
121
 
Línea 120... Línea 122...
120
        mButtonNext = getView().findViewById(R.id.fragment_gallery_button_next);
122
        mButtonNext = getView().findViewById(R.id.fragment_gallery_button_next);
-
 
123
 
121
 
124
 
122
 
125
 
123
 
126
        mButtonNext.setOnClickListener(new View.OnClickListener() {
124
        mButtonNext.setOnClickListener(new View.OnClickListener() {
127
            @Override
-
 
128
            public void onClick(View view) {
125
            @Override
129
                SlideRefreshUIViewData slideRefreshUIViewData = mSlideRefreshUIViewModel.getSlideRefreshUIViewData();
-
 
130
                slideRefreshUIViewData.setNextFromButton(true);
-
 
131
                mSlideRefreshUIViewModel.getSlideRefreshUIMutableLiveData().setValue(slideRefreshUIViewData);
126
            public void onClick(View view) {
132
 
Línea 127... Línea 133...
127
              //  Log.e("Gallery ViewPager2", "CurrentItem = " + viewPager2.getCurrentItem()+1  );
133
                viewPager2.setCurrentItem(getItem(+1), true); //getItem(-1) for previous
128
              //  Log.e("Gallery ViewPager2", "Size = " + mGalleryViewModel.getSlideArrayList().size()  );
134
            }
Línea 129... Línea -...
129
                isnextfrombutton = true;
-
 
-
 
135
        });
-
 
136
 
130
 
137
        mButtonPrevious = getView().findViewById(R.id.fragment_gallery_button_previous);
-
 
138
 
131
                viewPager2.setCurrentItem(getItem(+1), true); //getItem(-1) for previous
139
        mButtonPrevious.setOnClickListener(new View.OnClickListener() {
132
            }
140
            @Override
133
        });
141
            public void onClick(View view) {
Línea 134... Línea 142...
134
 
142
              //  Log.d("Gallery ViewPager2", "CurrentItem = " + viewPager2.getCurrentItem()  );
135
        mButtonPrevious = getView().findViewById(R.id.fragment_gallery_button_previous);
143
                SlideRefreshUIViewData slideRefreshUIViewData = mSlideRefreshUIViewModel.getSlideRefreshUIViewData();
136
        mButtonPrevious.setOnClickListener(new View.OnClickListener() {
144
                slideRefreshUIViewData.setNextFromButton(true);
Línea -... Línea 145...
-
 
145
                mSlideRefreshUIViewModel.getSlideRefreshUIMutableLiveData().setValue(slideRefreshUIViewData);
Línea 137... Línea 146...
137
            @Override
146
 
138
            public void onClick(View view) {
147
                viewPager2.setCurrentItem(getItem(-1), true);
Línea -... Línea 148...
-
 
148
 
-
 
149
            }
-
 
150
        });
139
              //  Log.d("Gallery ViewPager2", "CurrentItem = " + viewPager2.getCurrentItem()  );
151
 
-
 
152
 
-
 
153
 
-
 
154
        viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
-
 
155
 
-
 
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
 
Línea 140... Línea 171...
140
                isnextfrombutton = true;
171
 
141
                viewPager2.setCurrentItem(getItem(-1), true);
172
                //Resuelve el fix de pagina vista de imagenes no marcada
Línea -... Línea 173...
-
 
173
                loadData(false);
-
 
174
 
-
 
175
 
142
 
176
            }
Línea 143... Línea 177...
143
            }
177
 
144
        });
178
 
145
 
179
            @Override
-
 
180
            public void onPageScrollStateChanged(int state) {
-
 
181
                super.onPageScrollStateChanged(state);
-
 
182
 
-
 
183
 
-
 
184
                SlideRefreshUIViewData slideRefreshUIViewData = mSlideRefreshUIViewModel.getSlideRefreshUIViewData();
-
 
185
 
146
       // viewPager2.setPageTransformer(new ZoomOutPageTransformer());
186
 
147
        viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
187
                if (slideRefreshUIViewData.isImagenViewerControl() && state==ViewPager2.SCROLL_STATE_IDLE) {
148
            @Override
188
 
Línea 149... Línea 189...
149
            public void onPageSelected(int position) {
189
 
-
 
190
                    adapter.notifyItemChanged(viewPager2.getCurrentItem());
-
 
191
 
150
                super.onPageSelected(position);
192
                }
151
 
193
 
-
 
194
            }
Línea 152... Línea 195...
152
 
195
        });
153
                Log.e("Seleccion","de pagina");
196
 
Línea 154... Línea 197...
154
              //  Log.d(TAG, "registerOnPageChangeCallback");
197
 
155
                Slide mItem = mGalleryViewModel.getSlideArrayList().get(position);
198
 
156
 
199
        loadData(false);
Línea 157... Línea -...
157
 
-
 
158
                iTwoGetSkills.setTitleActionBar(mItem.getName());
200
 
Línea 159... Línea -...
159
                iTwoGetSkills.changeSlideActive(mItem.getUuid(), mItem.getType(), false);
-
 
160
 
201
    }
161
                loadData(true);
-
 
162
 
-
 
Línea 163... Línea 202...
163
            }
202
 
164
        });
203
    private int getItem(int i) {
-
 
204
        return viewPager2.getCurrentItem() + i;
165
 
205
    }
166
 
206
 
Línea 167... Línea 207...
167
    }
207
    @Override
168
 
-
 
Línea 169... Línea -...
169
    private int getItem(int i) {
-
 
170
        return viewPager2.getCurrentItem() + i;
-
 
Línea -... Línea 208...
-
 
208
    public void onPause() {
Línea -... Línea 209...
-
 
209
        super.onPause();
171
    }
210
    }
-
 
211
 
-
 
212
    @Override
172
    @Override
213
    public void onResume() {
Línea 173... Línea 214...
173
    public void onResume() {
214
        super.onResume();
-
 
215
 
-
 
216
        iTwoGetSkills.getPreference().save();
174
        super.onResume();
217
 
-
 
218
        SlideRefreshUIViewData slideRefreshUIViewData = mSlideRefreshUIViewModel.getSlideRefreshUIViewData();
-
 
219
        slideRefreshUIViewData.setResumenVisores(true);
-
 
220
        mSlideRefreshUIViewModel.getSlideRefreshUIMutableLiveData().setValue(slideRefreshUIViewData);
-
 
221
 
-
 
222
 
Línea -... Línea 223...
-
 
223
        loadData(true);
-
 
224
    }
-
 
225
 
-
 
226
 
-
 
227
    @Override
-
 
228
    public void onHiddenChanged(boolean hidden) {
-
 
229
        super.onHiddenChanged(hidden);
-
 
230
 
Línea 175... Línea 231...
175
 
231
        adapter.notifyDataSetChanged();
176
        iTwoGetSkills.getPreference().save(requireActivity());
232
 
177
        DatabaseHelper.ResumenVisores="SI";
233
        iTwoGetSkills.getPreference().save();
178
        Log.e("OnResumen"," Aqui llegue");
234
 
Línea 255... Línea 311...
255
            i++;
311
            i++;
Línea 256... Línea 312...
256
 
312
 
257
            mGalleryViewModel.getSlideArrayList().add(slide);
313
            mGalleryViewModel.getSlideArrayList().add(slide);
Línea -... Línea 314...
-
 
314
        }
Línea 258... Línea -...
258
        }
-
 
Línea -... Línea 315...
-
 
315
 
Línea 259... Línea -...
259
 
-
 
260
 
-
 
261
        Log.d(TAG, "slide position : " + position);
-
 
262
 
-
 
263
 
-
 
264
        //Falta aplicar la correccion del preference
-
 
265
        if (mGalleryViewModel.getSlideArrayList().size() == 0 || mGalleryViewModel.getSlideArrayList() == null) {
-
 
266
            Log.e("Me voy", "Atras");
-
 
267
            getActivity().onBackPressed();
-
 
268
            //  getActivity().getSupportFragmentManager().popBackStack();
-
 
269
 
-
 
270
        } else {
-
 
271
 
-
 
272
            iTwoGetSkills.setTitleActionBar(mGalleryViewModel.getSlideArrayList().get(position).getName());
-
 
273
 
-
 
274
            //Entrar a ver una pagina especifica que quieras ver de la lista, pero colisiona con el next and back buttons
316
           iTwoGetSkills.setTitleActionBar(mGalleryViewModel.getSlideArrayList().get(position).getName());
275
 
317
 
276
            //viewPager2.setCurrentItem(position, false);
318
 
277
            Log.e("Lo que viene", " En el booleano: " + isnextfrombutton);
-
 
278
 
319
            SlideRefreshUIViewData slideRefreshUIViewData = mSlideRefreshUIViewModel.getSlideRefreshUIViewData();
Línea 279... Línea 320...
279
            if (!isnextfrombutton) {
320
 
-
 
321
            if (!slideRefreshUIViewData.isNextFromButton()) {
280
                if (DatabaseHelper.CambioSlide.equals("SI")) {
322
                if (slideRefreshUIViewData.isCambioSlide()) {
281
                    viewPager2.setCurrentItem(position, false);
323
                    viewPager2.setCurrentItem(position, false);
282
 
-
 
283
                }
-
 
284
 
-
 
Línea -... Línea 324...
-
 
324
                }
Línea 285... Línea 325...
285
            }
325
 
Línea 286... Línea 326...
286
            //Cuando ejecuto los visores de capsula como el reproductor de video y regreso, me aseguro de marcar vista el slide
326
            }
287
            if (DatabaseHelper.ResumenVisores.equals("SI")) {
327
 
288
                //viewPager2.setCurrentItem(position, false);
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
 
Línea 289... Línea -...
289
                Log.e("Hago", "Lo de actualizar resumen");
-
 
290
                adapter.notifyItemChanged(position);
-
 
291
 
-
 
292
 
-
 
293
            }
-
 
294
 
335
            slideRefreshUIViewData.setCambioSlide(false);
Línea -... Línea 336...
-
 
336
            slideRefreshUIViewData.setResumenVisores(false);
-
 
337
            slideRefreshUIViewData.setNextFromButton(false);
295
            DatabaseHelper.CambioSlide = "NO";
338
 
Línea 296... Línea 339...
296
            DatabaseHelper.ResumenVisores = "NO";
339
            mSlideRefreshUIViewModel.getSlideRefreshUIMutableLiveData().setValue(slideRefreshUIViewData);
297
            isnextfrombutton = false;
340