Proyectos de Subversion Android Microlearning

Rev

| 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.LinearLayoutManager;
18
import androidx.recyclerview.widget.RecyclerView;
19
 
20
import com.cesams.twogetskills.Constants;
21
import com.cesams.twogetskills.R;
22
import com.cesams.twogetskills.adapter.CompanyListViewAdapter;
23
import com.cesams.twogetskills.dao.CompanyDao;
24
import com.cesams.twogetskills.entity.Company;
25
import com.cesams.twogetskills.skeleton.ITwoGetSkills;
26
import com.cesams.twogetskills.viewmodel.CompanyViewModel;
27
 
28
import java.util.List;
29
 
30
public class CompanyFragment extends Fragment implements CompanyListViewAdapter.ItemClickListener, LifecycleOwner {
31
    private final String TAG = "C2GS - CompanyFragment";
32
    private RecyclerView listView;
33
    private CompanyListViewAdapter adapter;
34
    private ITwoGetSkills iTwoGetSkills;
35
    private CompanyViewModel mCompanyViewModel;
36
 
37
 
38
    @Override
39
    public void onCreate(@Nullable Bundle savedInstanceState) {
40
        super.onCreate(savedInstanceState);
41
        setHasOptionsMenu(true);
42
    }
43
 
44
    @Override
45
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
46
        super.onCreateOptionsMenu(menu, inflater);
47
        menu.clear();
48
    }
49
 
50
    @Override
51
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
52
 
53
        return inflater.inflate(R.layout.fragment_company, container, false);
54
    }
55
 
56
    @Override
57
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
58
        super.onViewCreated(view, savedInstanceState);
59
        iTwoGetSkills = (ITwoGetSkills) getActivity();
60
 
61
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
62
 
63
        mCompanyViewModel = new ViewModelProvider(requireActivity()).get(CompanyViewModel.class);
64
        adapter = new CompanyListViewAdapter(getActivity(), mCompanyViewModel.getCompanyList());
65
        adapter.setClickListener(this);
66
 
67
        Observer<List<Company>> CompanyListUpdateObserver = new Observer<List<Company>>() {
68
            @Override
69
            public void onChanged(List<Company> CompanyList) {
70
                adapter.notifyDataSetChanged();
71
            }
72
        };
73
 
74
 
75
        mCompanyViewModel.getCompanyMutableLiveData().observe(requireActivity(),CompanyListUpdateObserver);
76
 
77
 
78
 
79
        listView = (RecyclerView) getView().findViewById(R.id.fragment_company_listview);
80
        listView.setAdapter(adapter);
81
        listView.setLayoutManager( linearLayoutManager  );
82
        listView.setHasFixedSize(true);
83
 
84
    }
85
 
86
    @Override
87
    public void onResume() {
88
        super.onResume();
89
 
90
        Log.d(TAG, "onResume");
91
        loadData();
92
    }
93
 
94
 
95
 
96
 
97
    @Override
98
    public void onHiddenChanged(boolean hidden) {
99
        super.onHiddenChanged(hidden);
100
 
101
        Log.d(TAG, "onHiddenChanged : " + (hidden ? "true" : "false"));
102
 
103
        if(!hidden) {
104
            loadData();
105
        }
106
    }
107
 
108
    private void loadData() {
109
 
110
        mCompanyViewModel.getCompanyList().clear();
111
 
112
        CompanyDao companyDao = iTwoGetSkills.getDatabase().getCompanyDao();
113
        List<Company> dbCompanies = companyDao.selectAll();
114
        Company company;
115
 
116
        for (Company dbCompany : dbCompanies)
117
        {
118
            company = new Company();
119
            company.setUuid(dbCompany.getUuid());
120
            company.setName(dbCompany.getName());
121
            company.setImage(dbCompany.getImage());
122
 
123
            mCompanyViewModel.getCompanyList().add(company);
124
 
125
        }
126
 
127
        iTwoGetSkills.setTitleActionBar(getActivity().getString(R.string.label_companies));
128
        mCompanyViewModel.getCompanyMutableLiveData().setValue(mCompanyViewModel.getCompanyList());
129
    }
130
 
131
    @Override
132
    public void onItemClick(View view, int position)
133
    {
134
        iTwoGetSkills.changeCompanyActive(mCompanyViewModel.getCompanyList().get(position).getUuid());
135
        iTwoGetSkills.invokeFragment(Constants.IDX_FRAGMENT_PROGRESS);
136
    }
137
}