Proyectos de Subversion Android Microlearning

Rev

Rev 4 | Rev 32 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
package com.cesams.twogetskills.fragment;
2
 
3
import android.os.Bundle;
4
import android.util.Log;
5
import android.view.LayoutInflater;
6
import android.view.Menu;
7
import android.view.MenuInflater;
8
import android.view.View;
9
import android.view.ViewGroup;
10
 
11
import androidx.annotation.NonNull;
12
import androidx.annotation.Nullable;
13
import androidx.fragment.app.Fragment;
14
import androidx.lifecycle.LifecycleOwner;
15
import androidx.lifecycle.Observer;
16
import androidx.lifecycle.ViewModelProvider;
17
import androidx.recyclerview.widget.RecyclerView;
18
 
19
import com.cesams.twogetskills.R;
20
import com.cesams.twogetskills.adapter.SlideListViewAdapter;
21
import com.cesams.twogetskills.dao.CapsuleDao;
22
import com.cesams.twogetskills.dao.ProgressDao;
23
import com.cesams.twogetskills.dao.SlideDao;
24
import com.cesams.twogetskills.entity.Capsule;
25
import com.cesams.twogetskills.entity.Progress;
26
import com.cesams.twogetskills.entity.Slide;
27
import com.cesams.twogetskills.skeleton.ITwoGetSkills;
28
import com.cesams.twogetskills.viewmodel.SlideViewModel;
29
 
30
import java.util.List;
31
import java.util.ArrayList;
32
 
33
//, IReloadData
34
public class SlideFragment extends Fragment implements SlideListViewAdapter.ItemClickListener, LifecycleOwner {
35
    private final String TAG = "C2GS - SlideFragment";
36
    private RecyclerView listView;
37
    //private List<Slide> items;
38
    private SlideListViewAdapter adapter;
39
    private ITwoGetSkills iTwoGetSkills;
40
    private SlideViewModel mSlideViewModel;
41
 
42
    @Override
43
    public void onCreate(@Nullable Bundle savedInstanceState) {
44
        super.onCreate(savedInstanceState);
45
        setHasOptionsMenu(true);
46
 
47
    }
48
 
49
    @Override
50
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
51
        super.onCreateOptionsMenu(menu, inflater);
52
        menu.clear();
53
    }
54
 
55
    @Override
56
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
57
        return inflater.inflate(R.layout.fragment_slide, container, false);
58
    }
59
 
60
    @Override
61
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
62
        super.onViewCreated(view, savedInstanceState);
63
        iTwoGetSkills = (ITwoGetSkills) getActivity();
64
 
65
 
66
        //GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), 2);
67
 
68
        //items = new List<>();
69
 
70
        mSlideViewModel = new ViewModelProvider(requireActivity()).get(SlideViewModel.class);
71
        adapter = new SlideListViewAdapter(getActivity(), mSlideViewModel.getSlideArrayList());
72
        adapter.setClickListener(this);
73
 
74
        listView = (RecyclerView) getView().findViewById(R.id.fragment_slide_listview);
75
        listView.setAdapter(adapter);
76
        //listView.setLayoutManager( gridLayoutManager);
77
        listView.setHasFixedSize(true);
78
 
79
        Observer<ArrayList<Slide>> slideArrayListUpdateObserver = new Observer<ArrayList<Slide>>() {
80
            @Override
81
            public void onChanged(ArrayList<Slide> slideArrayList) {
82
                adapter.notifyDataSetChanged();
83
            }
84
        };
85
 
86
 
87
 
88
        mSlideViewModel.getSlideMutableLiveData().observe(requireActivity(),slideArrayListUpdateObserver);
89
 
90
    }
91
 
92
    @Override
93
    public void onResume() {
94
        super.onResume();
95
 
96
        Log.d(TAG, "onResume");
97
        loadData();
98
    }
99
 
100
 
101
 
102
 
103
    @Override
104
    public void onHiddenChanged(boolean hidden) {
105
        super.onHiddenChanged(hidden);
106
 
107
        Log.d(TAG, "onHiddenChanged : " + (hidden ? "true" : "false"));
108
 
109
        if(!hidden) {
110
            loadData();
111
        }
112
    }
113
 
114
    private void loadData() {
115
        CapsuleDao capsuleDao = iTwoGetSkills.getDatabase().getCapsuleDao();
116
        Capsule capsule = capsuleDao.selectByUuid(iTwoGetSkills.getCapsuleUuidActive());
16 gabriel 117
 
118
 
119
        if (capsule == null)
120
        {
121
            Log.e("Me voy", "Atras");
122
            getActivity().onBackPressed();
123
            //  getActivity().getSupportFragmentManager().popBackStack();
124
 
125
        }
126
        else{
1 efrain 127
        iTwoGetSkills.setTitleActionBar(capsule.getName());
128
 
129
 
130
        mSlideViewModel.getSlideArrayList().clear();
131
 
132
        SlideDao slideDao = iTwoGetSkills.getDatabase().getSlideDao();
133
        List<Slide> dbSlides  = slideDao.selectAllByCapsuleUuid(iTwoGetSkills.getCapsuleUuidActive());
134
 
135
        Slide slide;
136
        Progress progress;
137
        ProgressDao progressDao = iTwoGetSkills.getDatabase().getProgressDao();
138
        for(Slide dbSlide : dbSlides)
139
        {
140
            slide = new Slide();
141
            slide.setTopicUuid(dbSlide.getTopicUuid());
142
            slide.setCapsuleUuid(dbSlide.getCapsuleUuid());
143
            slide.setQuizUuid(dbSlide.getQuizUuid());
144
            slide.setUuid(dbSlide.getUuid());
145
            slide.setName(dbSlide.getName());
146
            slide.setDescription(dbSlide.getDescription());
147
            slide.setType(dbSlide.getType());
148
            slide.setFile(dbSlide.getFile());
149
            slide.setBackground(dbSlide.getBackground());
150
            slide.setPosition(dbSlide.getPosition());
151
 
152
            progress = progressDao.selectBySlideUuid(slide.getUuid());
153
            if(progress != null) {
154
                slide.setCompleted(progress.getCompleted());
155
 
156
            } else {
157
                slide.setCompleted(0);
158
            }
4 gabriel 159
 
160
 
1 efrain 161
            slide.setShowFinish(false);
162
 
163
 
164
            mSlideViewModel.getSlideArrayList().add(slide);
165
        }
166
 
167
       mSlideViewModel.getSlideMutableLiveData().setValue(mSlideViewModel.getSlideArrayList());
168
    }
16 gabriel 169
    }
1 efrain 170
 
171
 
172
    @Override
173
    public void onItemClick(View view, int position)
174
    {
175
        iTwoGetSkills.changeSlideActive(mSlideViewModel.getSlideArrayList().get(position).getUuid(), mSlideViewModel.getSlideArrayList().get(position).getType(), true);
176
    }
177
}