package com.kanshu.kanshu; import android.animation.LayoutTransition; import android.app.Activity; import android.app.AlertDialog; import android.app.Fragment; import android.content.Context; import android.content.DialogInterface; import android.graphics.Bitmap; import android.graphics.BlurMaskFilter; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.os.Bundle; import android.renderscript.Allocation; import android.renderscript.Element; import android.renderscript.RenderScript; import android.renderscript.ScriptIntrinsicBlur; import android.text.TextPaint; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.SeekBar; import android.widget.TextView; import com.edmodo.rangebar.TickedSeekBar; import java.util.ArrayList; import java.util.Dictionary; public class PracticeExerciseFragment extends Fragment { private OnFragmentClickListener mListener; private ArrayList<String> mAnswers = new ArrayList<String>(); private int mCorrectAnswer = 0; private int mNOfCorrectAnswers = 0; private int mNOfWrongAnswers = 0; private int mNExercises = 1; public PracticeExerciseFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final String[] answers = {"Airplane", "Car", "Children", "Person", "You", "People"}; //test data for(int i = 0; i < answers.length; i++) { mAnswers.add(answers[i]); } mCorrectAnswer = 4; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View v = inflater.inflate(R.layout.fragment_practice_exercise, container, false); ListView list = (ListView)v.findViewById(R.id.options_list); list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { selectAnswer(position); } }); list.setAdapter(new ArrayAdapter<String>(this.getActivity(), R.layout.practice_exercise_item, mAnswers.toArray(new String[mAnswers.size()])){ @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { // This a new view we inflate the new layout LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context .LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.practice_exercise_item, parent, false); } TextView positionText = (TextView)convertView.findViewById(R.id.answer_id); positionText.setText((position+1) + "."); ((TextView)convertView.findViewById(R.id.answer_text)).setText(mAnswers.get(position)); return convertView; } }); return v; } private void selectAnswer(int position) { ListView list = (ListView)getActivity().findViewById(R.id.options_list); if(position != mCorrectAnswer){ View v = (View)list.getChildAt(position); v.setBackgroundColor(getResources().getColor(R.color.exercise_answer_incorrect)); ((ImageView)v.findViewById(R.id.wrong_answer)).setVisibility(View.VISIBLE); mNOfWrongAnswers++; } else{ ((ImageView)(View)list.getChildAt(position).findViewById(R.id.right_answer)).setVisibility(View.VISIBLE); mNOfCorrectAnswers++; } View v = (View)list.getChildAt(mCorrectAnswer); v.setBackgroundColor(getResources().getColor(R.color.exercise_answer_correct)); ((TextView)v.findViewById(R.id.answer_id)).setTextColor(getResources().getColor(R.color.white)); ((TextView)v.findViewById(R.id.answer_text)).setTextColor(getResources().getColor(R.color.white)); showStatsPopup(); } private void showStatsPopup() { AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(getActivity(), R.style.Base_Theme_AppCompat_Light_Dialog)); String message = "Correct:" + ((100.0*mNOfCorrectAnswers)/mNExercises) +"%\nWrong: "+((100.0*mNOfWrongAnswers)/mNExercises) +"%"; builder.setMessage(message) .setTitle(R.string.exercise_complete) .setPositiveButton("Done", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); AlertDialog dialog = builder.create(); dialog.show(); } // TODO: Rename method, update argument and hook method into UI event public void onClick(View v) { if (mListener != null) { mListener.onFragmentClick(v); } } @Override public void onAttach(Activity activity) { super.onAttach(activity); try { mListener = (OnFragmentClickListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnFragmentClickListener"); } } @Override public void onDetach() { super.onDetach(); mListener = null; } /** * This interface must be implemented by activities that contain this * fragment to allow an interaction in this fragment to be communicated * to the activity and potentially other fragments contained in that * activity. * <p/> * See the Android Training lesson <a href= * "http://developer.android.com/training/basics/fragments/communicating.html" * >Communicating with Other Fragments</a> for more information. */ public interface OnFragmentClickListener { // TODO: Update argument type and name public void onFragmentClick(View v); } }