Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.dss.invitup.vc.occasionPage.event;
- import android.content.Context;
- import android.content.DialogInterface;
- import android.graphics.Color;
- import android.os.Build;
- import android.os.Bundle;
- import android.support.v7.app.AppCompatActivity;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.Window;
- import android.view.WindowManager;
- import android.widget.Button;
- import android.widget.ExpandableListView;
- import android.widget.FrameLayout;
- import android.widget.ImageView;
- import android.widget.Toast;
- import com.bumptech.glide.Glide;
- import com.dss.invitup.R;
- import com.dss.invitup.adapters.EventResponseAdapter;
- import com.dss.invitup.events.GetAnswersForSubOccasionFinishedEvent;
- import com.dss.invitup.events.GetQuestionFromSubOccasionEvent;
- import com.dss.invitup.events.GetUpdateAnswerSubOccasionResponseEvent;
- import com.dss.invitup.events.ReturnToEventFragmentEvent;
- import com.dss.invitup.models.Answer;
- import com.dss.invitup.models.Occasion;
- import com.dss.invitup.models.SubOccasion;
- import com.dss.invitup.models.Theme;
- import com.dss.invitup.models.serverResponses.QuestionResponse;
- import com.dss.invitup.models.serverResponses.SubOccasionAnswerResponse;
- import com.dss.invitup.singleton.AppController;
- import com.dss.invitup.singleton.InterfaceManager;
- import com.dss.invitup.singleton.ServerManager;
- import com.dss.invitup.singleton.SettingsManager;
- import com.dss.invitup.view.MontserratLightTextView;
- import org.json.JSONObject;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Set;
- import de.greenrobot.event.EventBus;
- import io.realm.Realm;
- /**
- * Copyright © 2016 Dihardja Software Solutions. All rights reserved.
- */
- public class EventResponseActivity extends AppCompatActivity {
- EventResponseAdapter eventResponseAdapter;
- QuestionResponse questionResponse;
- SubOccasionAnswerResponse answerResponse;
- SubOccasion currentSubOccasion;
- Occasion currentOccasion;
- Realm realm;
- ExpandableListView eventResponseExpandableListView;
- FrameLayout rootFrameLayout;
- MontserratLightTextView submitButton;
- Theme currentTheme;
- ImageView backgroundImageView, backImageView;
- int height = 0;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- requestWindowFeature(Window.FEATURE_NO_TITLE);
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
- WindowManager.LayoutParams.FLAG_FULLSCREEN);
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_event_response);
- if(!EventBus.getDefault().isRegistered(this)){
- EventBus.getDefault().register(this);
- }
- View buttonView = ((LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.item_submit_button, null, false);
- submitButton = (MontserratLightTextView) buttonView.findViewById(R.id.item_submit_button_submitButton);
- rootFrameLayout = (FrameLayout) findViewById(R.id.activity_event_response_rootFrameLayout);
- eventResponseExpandableListView = (ExpandableListView) findViewById(R.id.activity_event_response_expandableListView);
- backImageView = (ImageView) findViewById(R.id.activity_event_response_backImageView);
- backgroundImageView = (ImageView) findViewById(R.id.activity_event_response_backgroundImageView);
- realm = AppController.getInstance().getRealm();
- eventResponseAdapter = new EventResponseAdapter(this);
- eventResponseExpandableListView.setAdapter(eventResponseAdapter);
- currentTheme = SettingsManager.getInstance().getCurrentTheme();
- currentSubOccasion = SettingsManager.getInstance().getCurrentSubOccasion();
- currentOccasion = SettingsManager.getInstance().getCurrentOccasion();
- if(currentTheme!=null){
- if(currentTheme.getBackgroundImageURL()!=null){
- if(!currentTheme.getBackgroundImageURL().equalsIgnoreCase("")){
- Glide.with(this).load(currentTheme.getBackgroundImageURL()).into(backgroundImageView);
- }
- }
- if(currentTheme.getButtonColor()!=null){
- submitButton.setBackgroundColor(Color.parseColor(currentTheme.getButtonColor()));
- }else {
- submitButton.setBackgroundColor(Color.parseColor("#FC00FF"));
- }
- }
- eventResponseExpandableListView.addFooterView(buttonView);
- initQuestion();
- initAnswer();
- eventResponseExpandableListView.setScrollContainer(false);
- eventResponseExpandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
- @Override
- public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
- int itemType = eventResponseAdapter.getChildType(groupPosition,childPosition);
- if(itemType == eventResponseAdapter.ITEMTYPE_MULTIPLECHOICE){
- Map<String, String> answerHashMap = eventResponseAdapter.getAnswerHashMap();
- String currentQuestionId = questionResponse.getQuestionRealmList().get(groupPosition).getId();
- Answer answer = new Answer();
- answer.setAnswerString(eventResponseAdapter.getMultipleChoicesQuestionHashMap().get(currentQuestionId).get(childPosition).getStringValue());
- answer.setQuestion(currentQuestionId);
- answerHashMap.put(currentQuestionId,answer.getAnswerString());
- eventResponseAdapter.setAnswerHashMap(answerHashMap);
- }
- return true;
- }
- });
- eventResponseExpandableListView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
- @Override
- public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
- InterfaceManager.sharedInstance().hideLoading();
- }
- });
- eventResponseExpandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
- @Override
- public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
- return true;
- }
- });
- submitButton.setOnClickListener(submitButtonListener);
- backImageView.setOnClickListener(backImageViewListener);
- }
- MontserratLightTextView.OnClickListener submitButtonListener = new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if(eventResponseAdapter.getAnswerHashMap().isEmpty()){
- Toast.makeText(EventResponseActivity.this, EventResponseActivity.this.getResources().getString(R.string.notification_no_answer), Toast.LENGTH_SHORT).show();
- }else {
- Map<String,String> answerHashMap = eventResponseAdapter.getAnswerHashMap();
- Map<String,String> tempHashMap = new HashMap<String, String>();
- Set<String> answerKeySet = answerHashMap.keySet();
- for(String answerKey : answerKeySet){
- if(!answerHashMap.get(answerKey).equals("")){
- tempHashMap.put(answerKey,answerHashMap.get(answerKey));
- }
- }
- JSONObject answersObject = new JSONObject(tempHashMap);
- InterfaceManager.sharedInstance().showLoading(rootFrameLayout, EventResponseActivity.this);
- ServerManager.getInstance().submitAnswers(answersObject,currentSubOccasion.getId());
- Log.v("Object answer", answersObject.toString());
- InterfaceManager.sharedInstance().showLoading(rootFrameLayout, EventResponseActivity.this);
- }
- }
- };
- ImageView.OnClickListener backImageViewListener = new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if(!eventResponseAdapter.getAnswerHashMap().isEmpty()){
- android.app.AlertDialog.Builder alrt;
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- alrt = new android.app.AlertDialog.Builder(EventResponseActivity.this, android.R.style.Theme_Material_Light_Dialog_Alert);
- } else {
- alrt = new android.app.AlertDialog.Builder(EventResponseActivity.this);
- }
- alrt.setTitle(getResources().getString(R.string.app_name)).setMessage(getResources().getString(R.string.builder_discard_answer));
- alrt.setPositiveButton(getResources().getString(R.string.builder_yes), new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- finish();
- EventBus.getDefault().post(new ReturnToEventFragmentEvent());
- }
- });
- alrt.setNegativeButton(getResources().getString(R.string.builder_no), new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- }
- });
- android.app.AlertDialog alertDialog = alrt.create();
- alertDialog.setOnShowListener(new DialogInterface.OnShowListener() {
- @Override
- public void onShow(DialogInterface dialog) {
- Button positiveButton = ((android.app.AlertDialog) dialog).getButton(DialogInterface.BUTTON_POSITIVE);
- Button negativeButton = ((android.app.AlertDialog) dialog).getButton(DialogInterface.BUTTON_NEGATIVE);
- positiveButton.setTextColor(getResources().getColor(R.color.appPink));
- negativeButton.setTextColor(getResources().getColor(R.color.appPink));
- }
- });
- alertDialog.show();
- }else{
- finish();
- }
- }
- };
- public void initQuestion(){
- reloadLocalData();
- }
- public void initAnswer(){
- ServerManager.getInstance().getAnswersForSubOccasion(currentOccasion.getId(),currentSubOccasion.getId());
- }
- public void reloadLocalData(){
- questionResponse = realm.where(QuestionResponse.class)
- .equalTo("id",currentSubOccasion.getId()).findFirst();
- if(questionResponse!=null){
- InterfaceManager.sharedInstance().showLoading(rootFrameLayout, this);
- eventResponseAdapter.updateQuestion(questionResponse);
- for(int i=0; i<eventResponseAdapter.getGroupCount(); i++){
- eventResponseExpandableListView.expandGroup(i);
- }
- }
- InterfaceManager.sharedInstance().showLoading(rootFrameLayout, this);
- ServerManager.getInstance().getQuestionFromSubOccasionId(currentSubOccasion.getId());
- }
- public void onEvent(GetQuestionFromSubOccasionEvent event){
- InterfaceManager.sharedInstance().hideLoading();
- if(event.questionResponse!=null){
- questionResponse = event.questionResponse;
- InterfaceManager.sharedInstance().showLoading(rootFrameLayout, this);
- eventResponseAdapter.updateQuestion(questionResponse);
- for(int i=0; i<eventResponseAdapter.getGroupCount(); i++){
- eventResponseExpandableListView.expandGroup(i);
- }
- }else{
- InterfaceManager.sharedInstance().showErrorMessage(this, event.errorMessage);
- }
- }
- public void onEvent(GetAnswersForSubOccasionFinishedEvent event){
- InterfaceManager.sharedInstance().hideLoading();
- if(event.errorMessage.equals("")){
- answerResponse = event.subOccasionAnswerResponse;
- InterfaceManager.sharedInstance().showLoading(rootFrameLayout, this);
- eventResponseAdapter.updateAnswer(answerResponse);
- }
- }
- public void onEvent(GetUpdateAnswerSubOccasionResponseEvent event){
- InterfaceManager.sharedInstance().hideLoading();
- if(event.errorMessage.equalsIgnoreCase("")){
- Toast.makeText(EventResponseActivity.this,EventResponseActivity.this.getResources().getString(R.string.notification_succeed_submit_answer),Toast.LENGTH_SHORT).show();
- EventBus.getDefault().post(new ReturnToEventFragmentEvent());
- finish();
- }else{
- InterfaceManager.sharedInstance().showErrorMessage(EventResponseActivity.this,event.errorMessage);
- }
- }
- @Override
- public void onDestroy(){
- super.onDestroy();
- if(EventBus.getDefault().isRegistered(this)) {
- EventBus.getDefault().unregister(this);
- }
- }
- }
Add Comment
Please, Sign In to add comment