Proyectos de Subversion Android Microlearning

Rev

Rev 4 | Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
package com.cesams.twogetskills.fragment;
2
 
3
import android.content.Context;
4
import android.os.Build;
5
import android.os.Bundle;
6
import android.text.Html;
7
import android.util.Log;
8
import android.view.LayoutInflater;
9
import android.view.View;
10
import android.view.ViewGroup;
11
 
12
import androidx.annotation.NonNull;
13
import androidx.annotation.Nullable;
14
import androidx.fragment.app.Fragment;
15
import androidx.lifecycle.LifecycleOwner;
16
import androidx.recyclerview.widget.LinearLayoutManager;
17
import androidx.recyclerview.widget.RecyclerView;
18
 
19
import com.cesams.twogetskills.R;
20
import com.cesams.twogetskills.adapter.QuizMultipleAnswerListViewAdapter;
21
import com.cesams.twogetskills.entity.Answer;
22
import com.cesams.twogetskills.entity.Question;
23
import com.cesams.twogetskills.pojo.QuizResponse;
24
import com.cesams.twogetskills.skeleton.IQuizActivity;
25
 
26
import java.util.ArrayList;
27
import java.util.Collections;
28
import java.util.List;
29
 
30
import com.codesgood.views.JustifiedTextView;
31
 
32
public class QuizMultipleAnswerFragment extends Fragment implements LifecycleOwner  {
33
    private final String TAG = "C2GS - QuizMultiFrag";
34
    private IQuizActivity iQuizActivity;
35
    private QuizMultipleAnswerListViewAdapter adapter;
36
    private RecyclerView recyclerView;
37
    private Question mQuestion;
38
    private ArrayList<Answer> mAnswers;
39
    private List<QuizResponse> mQuizResponses;
40
    private JustifiedTextView justifyTextView;
41
 
42
 
43
    // data is passed into the constructor
44
    public QuizMultipleAnswerFragment (Context context) {
45
        this.iQuizActivity = (IQuizActivity) context ;
46
        this.mQuestion = iQuizActivity.getQuestionActive();
47
        this.mQuizResponses = iQuizActivity.getQuizResponses();
48
        this.mAnswers = new ArrayList<>();
49
 
50
    }
51
 
52
 
53
    @Override
54
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
55
 
56
        return inflater.inflate(R.layout.fragment_quiz_multiple_answer, container, false);
57
    }
58
 
59
    @Override
60
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
61
        super.onViewCreated(view, savedInstanceState);
62
 
63
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
64
        mAnswers = new ArrayList<>();
65
        adapter = new QuizMultipleAnswerListViewAdapter(getActivity(), mQuestion, mAnswers, mQuizResponses);
66
 
67
 
68
 
69
        justifyTextView = (JustifiedTextView) getView().findViewById(R.id.justifytext_quiz_multiple_answer);
70
        recyclerView = (RecyclerView)  getView().findViewById(R.id.list_quiz_multiple_answer);
71
        recyclerView.setAdapter(adapter);
72
        recyclerView.setLayoutManager( linearLayoutManager);
73
        recyclerView.setHasFixedSize(true);
74
 
75
 
76
    }
77
 
78
    @Override
79
    public void onResume() {
80
        super.onResume();
81
 
82
        Log.d(TAG, "onResume");
83
        loadData();
84
    }
85
 
86
 
87
 
88
 
89
    @Override
90
    public void onHiddenChanged(boolean hidden) {
91
        super.onHiddenChanged(hidden);
92
 
93
        Log.d(TAG, "onHiddenChanged : " + (hidden ? "true" : "false"));
94
 
95
        if(!hidden) {
96
            loadData();
97
        }
98
    }
99
 
100
 
101
 
102
    void loadData()
103
    {
104
        if(adapter != null) {
105
            mQuestion = iQuizActivity.getQuestionActive();
106
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
107
                justifyTextView.setText("" + Html.fromHtml(mQuestion.getText(), Html.FROM_HTML_MODE_COMPACT));
108
            } else {
109
                justifyTextView.setText("" + Html.fromHtml(mQuestion.getText()));
110
            }
111
 
112
            mAnswers.clear();
113
            List<Answer> answers = answers = iQuizActivity.getAnswers(mQuestion.getUuid());
114
            for (int i = 0; i < answers.size(); i++) {
115
                try {
116
                    Answer answer = (Answer) answers.get(i).clone();
117
                    mAnswers.add(answer);
118
                } catch (CloneNotSupportedException e) {
119
 
120
                }
121
            }
122
            Collections.shuffle(mAnswers);
123
 
124
            adapter.notifyDataSetChanged();
125
        }
126
    }
127
}