Proyectos de Subversion Android Microlearning

Rev

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