导航菜单

页面标题

页面副标题

St.John's v1.0.9 - OnlineExamQuestionsActivity.java 源代码

正在查看: St.John's v1.0.9 应用的 OnlineExamQuestionsActivity.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.mcb.stjohnsemschool.activity;

import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.ConnectivityManager;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;
import com.google.firebase.analytics.FirebaseAnalytics;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.mcb.stjohnsemschool.adapter.OnlineExamQuestionsAdapter;
import com.mcb.stjohnsemschool.model.OnlineExamQuestionModelClass;
import com.mcb.stjohnsemschool.utils.Constants;
import com.mcb.stjohnsemschool.utils.TransparentProgressDialog;
import com.mcb.stjohnsemschool.utils.Utility;
import com.viewpagerindicator.PageIndicator;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Locale;
import org.ksoap2.serialization.SoapObject;

public class OnlineExamQuestionsActivity extends AppCompatActivity {
    private static final String TAG = "com.mcb.stjohnsemschool.activity.OnlineExamQuestionsActivity";
    public static OnlineExamQuestionsActivity questionsActivity;
    private String academicYearId;
    private Context context;
    private CountDownTimer countDownTimer;
    private String examDate;
    private int examId;
    private String examName;
    private boolean isTimeBased;
    private TransparentProgressDialog mProgressbar;
    private PageIndicator pageIndicator;
    private ArrayList<OnlineExamQuestionModelClass> questionsList;
    private String studentEnrollmentId;
    private TextView textViewCountDown;
    private long timeLeftInMillis;
    private LinearLayout timerLL;
    private String userId;
    private ViewPager viewPager;
    private int examDurationInMin = 0;
    boolean isAttemptAllQuestions = false;

    public static OnlineExamQuestionsActivity getInstance() {
        return questionsActivity;
    }

    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.activity_online_exam_questions);
        getSupportActionBar().setTitle("Questions");
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        this.context = getApplicationContext();
        questionsActivity = this;
        this.questionsList = new ArrayList<>();
        this.mProgressbar = new TransparentProgressDialog(this, R.drawable.spinner_loading_imag);
        SharedPreferences sharedPreferences = this.context.getSharedPreferences("", 0);
        this.studentEnrollmentId = sharedPreferences.getString("studentEnrollmentIdKey", this.studentEnrollmentId);
        this.userId = sharedPreferences.getString("UseridKey", this.userId);
        this.academicYearId = sharedPreferences.getString("academicyearIdKey", this.academicYearId);
        Bundle extras = getIntent().getExtras();
        this.examId = extras.getInt("OnlineExaminationId", 0);
        this.examName = extras.getString("ExamName", "");
        this.examDate = extras.getString("ExamDate", "");
        this.examDurationInMin = extras.getInt("ExamDurationInMinutes", 0);
        this.isTimeBased = extras.getBoolean("IsTimeBased", false);
        this.viewPager = findViewById(R.id.pager);
        this.pageIndicator = findViewById(R.id.pageIndicator);
        this.timerLL = (LinearLayout) findViewById(R.id.timer_ll);
        this.textViewCountDown = (TextView) findViewById(R.id.timer_tv);
        this.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            public void onPageScrollStateChanged(int i) {
            }

            public void onPageScrolled(int i, float f, int i2) {
            }

            public void onPageSelected(int i) {
                if (i > 0) {
                    OnlineExamQuestionsActivity.this.saveAnswerPresentQuestion(i - 1, 0);
                }
            }
        });
        this.timeLeftInMillis = this.examDurationInMin * 60000;
        getExamsQuestions();
    }

    public void startCountDown() {
        this.countDownTimer = new CountDownTimer(this.timeLeftInMillis, 1000L) {
            @Override
            public void onTick(long j) {
                OnlineExamQuestionsActivity.this.timeLeftInMillis = j;
                OnlineExamQuestionsActivity.this.updateCountDownText();
            }

            @Override
            public void onFinish() {
                OnlineExamQuestionsActivity.this.timeLeftInMillis = 0L;
                OnlineExamQuestionsActivity.this.updateCountDownText();
                if (OnlineExamQuestionsActivity.this.questionsList == null || OnlineExamQuestionsActivity.this.questionsList.size() <= 0 || !OnlineExamQuestionsActivity.this.isTimeBased) {
                    return;
                }
                OnlineExamQuestionsActivity.this.saveAnswerPresentQuestion(OnlineExamQuestionsActivity.this.viewPager.getCurrentItem(), 1);
            }
        }.start();
    }

    public void updateCountDownText() {
        long j = this.timeLeftInMillis;
        String format = String.format(Locale.getDefault(), "%02d:%02d", Integer.valueOf(((int) (j / 1000)) / 60), Integer.valueOf(((int) (j / 1000)) % 60));
        this.textViewCountDown.setText("Time Left : " + format);
        this.textViewCountDown.setTextColor(-65536);
    }

    protected void onDestroy() {
        super.onDestroy();
        CountDownTimer countDownTimer = this.countDownTimer;
        if (countDownTimer != null) {
            countDownTimer.cancel();
        }
    }

    private void getExamsQuestions() {
        ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService("connectivity");
        if (connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo().isAvailable() && connectivityManager.getActiveNetworkInfo().isConnected()) {
            new GetStudentOnlineExaminationsQuestions().execute(new String[0]);
        } else {
            Toast.makeText(this.context, "Check your Network Connection", 0).show();
        }
    }

    public class GetStudentOnlineExaminationsQuestions extends AsyncTask<String, String, String> {
        SoapObject soapObject;

        public GetStudentOnlineExaminationsQuestions() {
        }

        @Override
        protected void onPreExecute() {
            OnlineExamQuestionsActivity.this.mProgressbar.show();
        }

        @Override
        public String doInBackground(String... strArr) {
            try {
                this.soapObject = SoapObjectProvider.GetStudentOnlineExaminationsQuestions(OnlineExamQuestionsActivity.this.context, Integer.parseInt(OnlineExamQuestionsActivity.this.userId), Integer.parseInt(OnlineExamQuestionsActivity.this.studentEnrollmentId), OnlineExamQuestionsActivity.this.examId);
                return null;
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }

        @Override
        public void onPostExecute(String str) {
            if (OnlineExamQuestionsActivity.this.mProgressbar.isShowing()) {
                OnlineExamQuestionsActivity.this.mProgressbar.dismiss();
            }
            SoapObject soapObject = this.soapObject;
            if (soapObject != null) {
                try {
                    if (soapObject.getProperty("GET_StudentOnlineExaminations_Questions_NewResult") != null) {
                        String obj = this.soapObject.getProperty("GET_StudentOnlineExaminations_Questions_NewResult").toString();
                        Gson gson = new Gson();
                        Type type = new TypeToken<ArrayList<OnlineExamQuestionModelClass>>() {
                        }.getType();
                        OnlineExamQuestionsActivity.this.questionsList = (ArrayList) gson.fromJson(obj, type);
                        OnlineExamQuestionsActivity.this.viewPager.setAdapter(new OnlineExamQuestionsAdapter(OnlineExamQuestionsActivity.this.context, OnlineExamQuestionsActivity.this.questionsList));
                        OnlineExamQuestionsActivity.this.pageIndicator.setViewPager(OnlineExamQuestionsActivity.this.viewPager);
                        if (OnlineExamQuestionsActivity.this.questionsList.size() > 0) {
                            if (OnlineExamQuestionsActivity.this.isTimeBased) {
                                OnlineExamQuestionsActivity.this.timerLL.setVisibility(0);
                                OnlineExamQuestionsActivity.this.startCountDown();
                            } else {
                                OnlineExamQuestionsActivity.this.timerLL.setVisibility(8);
                            }
                        }
                    } else {
                        Utility.showAlertDialog(OnlineExamQuestionsActivity.this);
                    }
                    return;
                } catch (Exception e) {
                    e.printStackTrace();
                    return;
                }
            }
            Utility.showAlertDialog(OnlineExamQuestionsActivity.this);
        }
    }

    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.save_menu, menu);
        return true;
    }

    public boolean onOptionsItemSelected(MenuItem menuItem) {
        int itemId = menuItem.getItemId();
        if (itemId == 16908332) {
            finish();
        } else if (itemId == 2131361885) {
            ArrayList questionsList = OnlineExamQuestionsAdapter.getQuestionsList();
            if (questionsList != null && questionsList.size() > 0) {
                this.isAttemptAllQuestions = ((OnlineExamQuestionModelClass) questionsList.get(0)).isAttemptAllQuestions();
            }
            if (this.isAttemptAllQuestions) {
                Iterator it = questionsList.iterator();
                while (true) {
                    if (it.hasNext()) {
                        if (getGivenAnswer((OnlineExamQuestionModelClass) it.next()).equals("")) {
                            AlertDialog.Builder builder = new AlertDialog.Builder(this);
                            builder.setMessage("Please attempt all questions to finish the exam.").setPositiveButton("OK", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialogInterface, int i) {
                                    dialogInterface.dismiss();
                                }
                            }).setCancelable(false);
                            builder.create().show();
                            break;
                        }
                    } else {
                        showSubmitDialog(questionsList);
                        break;
                    }
                }
            } else {
                showSubmitDialog(questionsList);
            }
        }
        return super.onOptionsItemSelected(menuItem);
    }

    private String getGivenAnswer(OnlineExamQuestionModelClass onlineExamQuestionModelClass) {
        HashSet selectedCheckboxPosList;
        String addChar;
        int questionType = onlineExamQuestionModelClass.getQuestionType();
        String str = "";
        if (questionType != 3) {
            if (questionType == 5 || questionType == 1) {
                if (onlineExamQuestionModelClass.getSelectedAnswerNo() == 0) {
                    return "";
                }
                return "" + onlineExamQuestionModelClass.getSelectedAnswerNo();
            }
            if (questionType != 2 || (selectedCheckboxPosList = onlineExamQuestionModelClass.getSelectedCheckboxPosList()) == null || selectedCheckboxPosList.size() <= 0) {
                return "";
            }
            Iterator it = selectedCheckboxPosList.iterator();
            String str2 = "";
            while (it.hasNext()) {
                str2 = str2 + ((Integer) it.next()).intValue() + ",";
            }
            if (str2.length() <= 0) {
                return "";
            }
            return str2.substring(0, str2.length() - 1);
        }
        String answerNo = onlineExamQuestionModelClass.getAnswerNo();
        ArrayList arrayList = new ArrayList();
        arrayList.clear();
        for (int i = 0; i < answerNo.length(); i++) {
            if (("" + answerNo.charAt(i)).toString().equals(" ")) {
                arrayList.add(Integer.valueOf(i));
            }
        }
        String inputOtpText = onlineExamQuestionModelClass.getInputOtpText();
        if (arrayList.size() <= 0) {
            return (inputOtpText == null || inputOtpText.length() <= 0) ? "" : inputOtpText;
        }
        if (inputOtpText == null || inputOtpText.length() <= 0) {
            return "";
        }
        for (int i2 = 0; i2 < arrayList.size(); i2++) {
            int intValue = ((Integer) arrayList.get(i2)).intValue();
            if (inputOtpText.length() > intValue) {
                if (str.length() > 0) {
                    addChar = addChar(str, ' ', intValue);
                } else {
                    addChar = addChar(inputOtpText, ' ', intValue);
                }
                str = addChar;
            }
        }
        return str;
    }

    private void showSubmitDialog(ArrayList<OnlineExamQuestionModelClass> arrayList) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("Please verify all answers before submitting the exam.").setPositiveButton("Submit", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.dismiss();
                OnlineExamQuestionsActivity.this.saveAnswerPresentQuestion(OnlineExamQuestionsActivity.this.viewPager.getCurrentItem(), 1);
            }
        }).setNegativeButton("Verify", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.dismiss();
            }
        }).setCancelable(false);
        builder.create().show();
    }

    public void saveAnswerPresentQuestion(int i, int i2) {
        HashSet selectedCheckboxPosList;
        ArrayList<OnlineExamQuestionModelClass> arrayList = this.questionsList;
        if (arrayList == null || arrayList.size() < i) {
            return;
        }
        OnlineExamQuestionModelClass onlineExamQuestionModelClass = this.questionsList.get(i);
        int questionType = onlineExamQuestionModelClass.getQuestionType();
        String str = "";
        if (questionType == 3) {
            Constants.hideKeyboard(this);
            String answerNo = onlineExamQuestionModelClass.getAnswerNo();
            ArrayList arrayList2 = new ArrayList();
            for (int i3 = 0; i3 < answerNo.length(); i3++) {
                if (String.valueOf(answerNo.charAt(i3)).equalsIgnoreCase(" ")) {
                    arrayList2.add(Integer.valueOf(i3));
                }
            }
            String inputOtpText = onlineExamQuestionModelClass.getInputOtpText();
            if (arrayList2.size() > 0) {
                if (inputOtpText != null && inputOtpText.length() > 0) {
                    for (int i4 = 0; i4 < arrayList2.size(); i4++) {
                        int intValue = ((Integer) arrayList2.get(i4)).intValue();
                        if (inputOtpText.length() > intValue) {
                            if (str.length() > 0) {
                                str = addChar(str, ' ', intValue);
                            } else {
                                str = addChar(inputOtpText, ' ', intValue);
                            }
                        }
                    }
                }
            } else if (inputOtpText != null && inputOtpText.length() > 0) {
                str = inputOtpText;
            }
        } else if (questionType == 5 || questionType == 1) {
            str = "" + onlineExamQuestionModelClass.getSelectedAnswerNo();
        } else if (questionType == 2 && (selectedCheckboxPosList = onlineExamQuestionModelClass.getSelectedCheckboxPosList()) != null && selectedCheckboxPosList.size() > 0) {
            Iterator it = selectedCheckboxPosList.iterator();
            while (it.hasNext()) {
                str = str + ((Integer) it.next()).intValue() + ",";
            }
            str = str.substring(0, str.length() - 1);
        }
        saveOnlineExaminationAnswers(onlineExamQuestionModelClass.getOnlineExaminationSegementId() + "~" + onlineExamQuestionModelClass.getOnlineExaminationQuestionId() + "~" + onlineExamQuestionModelClass.getQuestionBankQuestionId() + "~" + onlineExamQuestionModelClass.getWrongAnsCarries() + "~" + onlineExamQuestionModelClass.getCorrectAnsCarries() + "~" + onlineExamQuestionModelClass.getAnswerNo() + "~" + onlineExamQuestionModelClass.getDifficultyLevel() + "~" + str, i2);
    }

    public String addChar(String str, char c, int i) {
        StringBuilder sb = new StringBuilder(str);
        sb.insert(i, c);
        return sb.toString();
    }

    private void saveOnlineExaminationAnswers(String str, int i) {
        ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService("connectivity");
        if (connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo().isAvailable() && connectivityManager.getActiveNetworkInfo().isConnected()) {
            new SaveOnlineExaminationAnswers(str, i).execute(new String[0]);
        } else {
            Toast.makeText(this.context, "Check your Network Connection", 0).show();
        }
    }

    public class SaveOnlineExaminationAnswers extends AsyncTask<String, String, String> {
        int isFinished;
        String json;
        SoapObject soapObject;

        SaveOnlineExaminationAnswers(String str, int i) {
            this.json = str;
            this.isFinished = i;
        }

        @Override
        protected void onPreExecute() {
            OnlineExamQuestionsActivity.this.mProgressbar.show();
        }

        @Override
        public String doInBackground(String... strArr) {
            try {
                this.soapObject = SoapObjectProvider.SaveOnlineExaminationAnswers(OnlineExamQuestionsActivity.this.context, Integer.parseInt(OnlineExamQuestionsActivity.this.userId), this.json, OnlineExamQuestionsActivity.this.examId, Integer.parseInt(OnlineExamQuestionsActivity.this.studentEnrollmentId), this.isFinished);
                return null;
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }

        @Override
        public void onPostExecute(String str) {
            if (OnlineExamQuestionsActivity.this.mProgressbar.isShowing()) {
                OnlineExamQuestionsActivity.this.mProgressbar.dismiss();
            }
            SoapObject soapObject = this.soapObject;
            if (soapObject != null) {
                try {
                    if (soapObject.getProperty("Save_OnlineExaminationAnswers_NewResult") != null) {
                        String obj = this.soapObject.getProperty("Save_OnlineExaminationAnswers_NewResult").toString();
                        if (this.isFinished == 1) {
                            AlertDialog.Builder builder = new AlertDialog.Builder(OnlineExamQuestionsActivity.this);
                            builder.setMessage(obj).setPositiveButton("OK", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialogInterface, int i) {
                                    dialogInterface.dismiss();
                                    Intent intent = new Intent(OnlineExamQuestionsActivity.this.context, (Class<?>) OnlineExamResultActivity.class);
                                    intent.addFlags(268435456);
                                    intent.putExtra("OnlineExaminationId", OnlineExamQuestionsActivity.this.examId);
                                    intent.putExtra("ExamName", OnlineExamQuestionsActivity.this.examName);
                                    intent.putExtra("ExamDate", OnlineExamQuestionsActivity.this.examDate);
                                    OnlineExamQuestionsActivity.this.startActivity(intent);
                                    OnlineExamQuestionsActivity.this.finish();
                                }
                            }).setCancelable(false);
                            builder.create().show();
                        }
                    } else {
                        Utility.showAlertDialog(OnlineExamQuestionsActivity.this);
                    }
                    return;
                } catch (Exception e) {
                    e.printStackTrace();
                    return;
                }
            }
            Utility.showAlertDialog(OnlineExamQuestionsActivity.this);
        }
    }

    protected void onResume() {
        super.onResume();
        String string = getSharedPreferences("", 0).getString("usernamekey", "");
        Bundle bundle = new Bundle();
        bundle.putString("user_name", string);
        FirebaseAnalytics.getInstance(this).logEvent("PAGE_ONLINE_EXAM_QUESTIONS", bundle);
    }

    protected void onStop() {
        TransparentProgressDialog transparentProgressDialog = this.mProgressbar;
        if (transparentProgressDialog != null && transparentProgressDialog.isShowing()) {
            this.mProgressbar.dismiss();
        }
        super.onStop();
    }
}