Proyectos de Subversion Android Microlearning - Inconcert

Rev

Rev 1 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 gabriel 1
package com.cesams.twogetskills.inconcert.fragment;
2
 
3
import android.os.Bundle;
4
 
5
import androidx.annotation.NonNull;
6
import androidx.annotation.Nullable;
7
import androidx.fragment.app.Fragment;
8
 
9
import android.text.TextUtils;
10
import android.util.Log;
11
import android.view.LayoutInflater;
12
import android.view.Menu;
13
import android.view.MenuInflater;
14
import android.view.View;
15
import android.view.ViewGroup;
16
 
17
import com.cesams.twogetskills.inconcert.Constants;
18
import com.cesams.twogetskills.inconcert.R;
19
 
20
import android.widget.ImageView;
21
import android.widget.TextView;
22
 
23
import androidx.lifecycle.LifecycleOwner;
24
import androidx.lifecycle.Observer;
25
import androidx.lifecycle.ViewModelProvider;
26
import androidx.recyclerview.widget.LinearLayoutManager;
27
import androidx.recyclerview.widget.RecyclerView;
28
import com.cesams.twogetskills.inconcert.adapter.TimelineListViewAdapter;
29
import com.cesams.twogetskills.inconcert.dao.UserLogDao;
30
import com.cesams.twogetskills.inconcert.entity.UserLog;
18 efrain 31
import com.cesams.twogetskills.inconcert.library.ImageService;
1 gabriel 32
import com.cesams.twogetskills.inconcert.library.MD5;
33
import com.cesams.twogetskills.inconcert.skeleton.ITwoGetSkills;
34
import com.cesams.twogetskills.inconcert.viewmodel.TimeLineViewModel;
35
 
36
import java.util.ArrayList;
37
import java.util.Calendar;
38
import java.util.List;
39
import java.util.Random;
40
import java.util.TimeZone;
41
 
42
 
43
public class TimelineFragment extends Fragment  implements LifecycleOwner  {
44
    private final String TAG = "C2GS - TimeLineFragment";
45
    private RecyclerView listView;
46
    private TimelineListViewAdapter adapter;
47
    private ITwoGetSkills iTwoGetSkills;
48
    private ImageView
49
            headerUserImage;
50
    private TextView headerUserName;
51
    private TextView headerUserEmail;
52
    private TimeLineViewModel mTimeLineViewModel;
53
 
54
 
55
    @Override
56
    public void onCreate(@Nullable Bundle savedInstanceState) {
57
        super.onCreate(savedInstanceState);
58
        setHasOptionsMenu(true);
59
 
60
 
61
    }
62
 
63
    @Override
64
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
65
        super.onCreateOptionsMenu(menu, inflater);
66
        menu.clear();
67
    }
68
 
69
    @Override
70
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
71
 
72
        return inflater.inflate(R.layout.fragment_timeline, container, false);
73
    }
74
 
75
    @Override
76
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
77
        super.onViewCreated(view, savedInstanceState);
78
        iTwoGetSkills = (ITwoGetSkills) getActivity();
79
        iTwoGetSkills.setTitleActionBar(getActivity().getString(R.string.menu_timeline));
80
 
81
        LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
82
        layoutManager.scrollToPosition(0);
83
 
84
        mTimeLineViewModel = new ViewModelProvider(requireActivity()).get(TimeLineViewModel.class);
85
        adapter = new TimelineListViewAdapter(getActivity(), mTimeLineViewModel.getUserLogArrayList());
86
 
87
        Observer<ArrayList<UserLog>> timeLineArrayListUpdateObserver = new Observer<ArrayList<UserLog>>() {
88
            @Override
89
            public void onChanged(ArrayList<UserLog> UserLogArrayList) {
90
                adapter.notifyDataSetChanged();
91
            }
92
        };
93
 
94
 
95
        mTimeLineViewModel.getUserLogMutableLiveData().observe(requireActivity(),timeLineArrayListUpdateObserver);
96
 
97
 
98
        listView = (RecyclerView) getView().findViewById(R.id.fragment_timeline_listview);
99
        listView.setAdapter(adapter);
100
        listView.setLayoutManager(layoutManager);
101
 
102
 
103
        headerUserImage = (ImageView)  getView().findViewById(R.id.fragment_timeline_header_user_image);
104
        if(!TextUtils.isEmpty(iTwoGetSkills.getPreference().getImage())) {
105
 
18 efrain 106
            ImageService.retrieve(getContext(), iTwoGetSkills.getPreference().getImage(), headerUserImage);
1 gabriel 107
        }
108
 
109
        headerUserName =  (TextView) getView().findViewById(R.id.fragment_timeline_header_user_name);
110
        headerUserName.setText((iTwoGetSkills.getPreference().getFirstName() + " " + iTwoGetSkills.getPreference().getLastName()).trim());
111
        headerUserEmail =  (TextView) getView().findViewById(R.id.fragment_timeline_header_header_user_email);
112
        headerUserEmail.setText(iTwoGetSkills.getPreference().getEmail());
113
 
114
 
115
    }
116
    @Override
117
    public void onResume() {
118
        super.onResume();
119
 
120
        Log.d(TAG, "onResume");
121
        loadData();
122
    }
123
 
124
 
125
 
126
 
127
    @Override
128
    public void onHiddenChanged(boolean hidden) {
129
        super.onHiddenChanged(hidden);
130
 
131
        Log.d(TAG, "onHiddenChanged : " + (hidden ? "true" : "false"));
132
 
133
        if(!hidden) {
134
            loadData();
135
        }
136
    }
137
 
138
    private void loadData()
139
    {
140
        Log.d("BUG 2PLANO", "TimeLineFragment - loadData");
141
 
142
        UserLogDao userLogDao = iTwoGetSkills.getDatabase().getUserLogDao();
143
        List<UserLog> dbUserLogs = userLogDao.selectAllByUserUuid(iTwoGetSkills.getPreference().getUserUuid());
144
 
145
        mTimeLineViewModel.getUserLogArrayList().clear();
146
        UserLog userlog;
147
 
148
        for(UserLog dbUserLog : dbUserLogs)
149
        {
150
            userlog = new UserLog();
151
            userlog.setId(dbUserLog.getId());
152
            userlog.setCompanyUuid(dbUserLog.getCompanyUuid());
153
            userlog.setTopicUuid(dbUserLog.getTopicUuid());
154
            userlog.setCapsuleUuid(dbUserLog.getCapsuleUuid());
155
            userlog.setSlideUuid(dbUserLog.getSlideUuid());
156
            userlog.setActivity(dbUserLog.getActivity());
157
            userlog.setAddedOn(dbUserLog.getAddedOn());
158
 
159
            mTimeLineViewModel.getUserLogArrayList().add(userlog);
160
        }
161
 
162
 
163
 
164
        mTimeLineViewModel.getUserLogMutableLiveData().setValue(mTimeLineViewModel.getUserLogArrayList());
165
    }
166
 
167
 
168
}