Advertisement
Guest User

MyProfileActivityNew

a guest
Jun 18th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 32.89 KB | None | 0 0
  1. package com.swarmerapp.swarmer.MyProfileNew.ui;
  2.  
  3. import android.Manifest;
  4. import android.app.Activity;
  5. import android.app.ProgressDialog;
  6. import android.content.Intent;
  7. import android.os.Bundle;
  8. import android.support.annotation.NonNull;
  9. import android.support.annotation.Nullable;
  10. import android.support.v4.app.ActivityCompat;
  11. import android.support.v4.app.FragmentManager;
  12. import android.support.v4.app.FragmentTransaction;
  13. import android.support.v7.app.ActionBar;
  14. import android.support.v7.app.AppCompatActivity;
  15. import android.support.v7.widget.Toolbar;
  16. import android.view.MotionEvent;
  17. import android.view.View;
  18. import android.view.inputmethod.InputMethodManager;
  19. import android.widget.Button;
  20. import android.widget.FrameLayout;
  21. import android.widget.ImageView;
  22. import android.widget.LinearLayout;
  23. import android.widget.TextView;
  24. import android.widget.Toast;
  25.  
  26. import com.swarmerapp.swarmer.App;
  27. import com.swarmerapp.swarmer.InsertReferralCode;
  28. import com.swarmerapp.swarmer.MyProfileNew.MyProfileContract;
  29. import com.swarmerapp.swarmer.MyProfileNew.ProfileMainPresenter;
  30. import com.swarmerapp.swarmer.MyProfileNew.ProfilePhotosPresenter;
  31. import com.swarmerapp.swarmer.R;
  32. import com.theartofdev.edmodo.cropper.CropImage;
  33.  
  34. import java.util.Arrays;
  35. import java.util.List;
  36.  
  37. import butterknife.BindView;
  38. import butterknife.ButterKnife;
  39. import butterknife.OnClick;
  40. import com.trekeye.swarmer_sdk_library.modules.AppUser;
  41. import com.trekeye.swarmer_sdk_library.modules.Photo;
  42. import com.trekeye.swarmer_sdk_library.modules.SocialNetData;
  43. import com.trekeye.swarmer_sdk_library.utils.LogWrapper;
  44.  
  45. import utils.Common;
  46. import utils.Utils;
  47.  
  48.  
  49. /**
  50.  * Created by nikolahristovski on 11/11/16.
  51.  */
  52.  
  53. public class MyProfileActivityNew extends AppCompatActivity implements MyProfileContract.ProfileViewContract, MyProfileGalleryFragment.GalleryFragmentParent {
  54.  
  55.     private static final String TAG = MyProfileActivityNew.class.getName();
  56.     private static final int PERMISSION_CAMERA_REQUEST = 1;
  57.     private static final int PERMISSION_WRITE_EXTERNAL_REQUEST = 2;
  58.     private static final int PHONE_UPDATE_REQUEST_CODE = 3012;
  59.  
  60.     @BindView(R.id.profile_main_content)
  61.     FrameLayout container;
  62.  
  63.     @BindView(R.id.my_profile_save)
  64.     TextView btnDone;
  65.  
  66.     @BindView(R.id.profile_title)
  67.     TextView tvTitle;
  68.  
  69.     @BindView(R.id.activity_profile_fragment_ll)
  70.     LinearLayout activityProfileFragmentLl;
  71.  
  72.     @BindView(R.id.layout_active_tab)
  73.     LinearLayout layout_active_tab;
  74.  
  75.     @BindView(R.id.sign_up_continue_btn)
  76.     Button signUpContinueBtn;
  77.  
  78.     @BindView(R.id.back)
  79.     TextView btnGoBack;
  80.     @BindView(R.id.text_bottom_back)
  81.     TextView text_bottom_back;
  82.     @BindView(R.id.text_tab_profile)
  83.     TextView text_tab_profile;
  84.     @BindView(R.id.text_tab_gender)
  85.     TextView text_tab_gender;
  86.     @BindView(R.id.text_tab_personal_info)
  87.     TextView text_tab_personal_info;
  88.     @BindView(R.id.text_tab_verify_phone)
  89.     TextView text_tab_verify_phone;
  90.  
  91.     @BindView(R.id.image_check_profile)
  92.     ImageView image_check_profile;
  93.     @BindView(R.id.image_check_gender)
  94.     ImageView image_check_gender;
  95.     @BindView(R.id.image_check_personal_info)
  96.     ImageView image_check_personal_info;
  97.     @BindView(R.id.image_check_verify_profile)
  98.     ImageView image_check_verify_profile;
  99.  
  100.     public static final int TAB_CHECK_PROFILE =1;
  101.     public static final int TAB_CHECK_GENDER =2;
  102.     public static final int TAB_CHECK_PERSONAL_INFO =3;
  103.     public static final int TAB_CHECK_VERIFIFY_PROFILE =4;
  104.  
  105.     private MyProfileVerifyPhoneFragment vPhoneFragment;
  106.     private MyProfileUserDetailsFragment vPersonalInfoFragment;
  107.     private MyProfileCompleteFragment profileCompleteFragment;
  108.     private MyProfileGalleryFragment galleryFragment;
  109.     private MyProfileGenderFragment genderFragment;
  110.  
  111.     private ProfileMainPresenter mMainPresenter;
  112.     private ProfilePhotosPresenter mPhotosPresenter;
  113.  
  114.     private AppUser user;
  115.     private SocialNetData socialData;
  116.     private ProgressDialog progressBarDialog;
  117.  
  118.     Toolbar toolbar;
  119.     @Override
  120.     protected void onCreate(@Nullable Bundle savedInstanceState) {
  121.         super.onCreate(savedInstanceState);
  122.         setContentView(R.layout.activity_my_profile);
  123.         ButterKnife.bind(this);
  124.  
  125.         btnGoBack.setOnClickListener(event->onBackButtonClick());
  126.         text_bottom_back.setOnClickListener(event->onBackButtonClick());
  127.         container.setOnTouchListener(new View.OnTouchListener() {
  128.             @Override
  129.             public boolean onTouch(View v, MotionEvent event) {
  130.                 hideSoftKeyboard(MyProfileActivityNew.this);
  131.                 return false;
  132.             }
  133.         });
  134.         if (Utils.checkPermission(getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
  135.             init();
  136.         } else {
  137.             requestStoragePermission();
  138.         }
  139.     }
  140.  
  141.     @Override
  142.     protected void onDestroy() {
  143.         LogWrapper.d(TAG, "onDestroy called");
  144.         super.onDestroy();
  145.         if (mPhotosPresenter != null) {
  146.             mPhotosPresenter.removeCachedImages();
  147.         }
  148.         hideProgressBarDialog();
  149.         mPhotosPresenter = null;
  150.         mMainPresenter = null;
  151.         App.watchReference(this);
  152.     }
  153.  
  154.     private void init() {
  155.  
  156.         toolbar = findViewById(R.id.profile_toolbar);
  157.         setSupportActionBar(toolbar);
  158.         final ActionBar ab = getSupportActionBar();
  159.         ab.setDisplayShowHomeEnabled(true);
  160.         ab.setDisplayHomeAsUpEnabled(false);
  161.         ab.setDisplayShowCustomEnabled(true);
  162.         ab.setDisplayShowTitleEnabled(false);
  163.  
  164.  
  165.         galleryFragment = MyProfileGalleryFragment.getInstance();
  166.         vPhoneFragment = MyProfileVerifyPhoneFragment.getInstance();
  167.         vPersonalInfoFragment = MyProfileUserDetailsFragment.getInstance();
  168.         profileCompleteFragment = MyProfileCompleteFragment.getInstance();
  169.         genderFragment = MyProfileGenderFragment.getInstance();
  170.  
  171.         mMainPresenter = new ProfileMainPresenter(this, this);
  172.         mPhotosPresenter = new ProfilePhotosPresenter(this, this);
  173.         mMainPresenter.registerToEventbus();
  174.         mPhotosPresenter.registerToEventbus();
  175.         initProgressBarDialog();
  176.  
  177.         mMainPresenter.loadUser();
  178.     }
  179.  
  180.     public static void hideSoftKeyboard(Activity activity) {
  181.         InputMethodManager inputMethodManager =
  182.                 (InputMethodManager) activity.getSystemService(
  183.                         Activity.INPUT_METHOD_SERVICE);
  184.         inputMethodManager.hideSoftInputFromWindow(
  185.                 activity.getCurrentFocus().getWindowToken(), 0);
  186.     }
  187.  
  188.     @Override
  189.     protected void onResume() {
  190.         super.onResume();
  191.         if (Utils.checkPermission(getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
  192.             mMainPresenter.registerToEventbus();
  193.             mPhotosPresenter.registerToEventbus();
  194.         }
  195. //
  196. //        boolean isVisible = galleryFragment.isVisible();
  197. //        boolean isVisibleGenderf = genderFragment.isVisible();
  198. //        boolean isVisiblePersonalInfo = vPhoneFragment.isVisible();
  199. //        if(isVisible){
  200. //            isInitialVisibility();
  201. //        }else if(isVisibleGenderf){
  202. //            isGenderVisibility();
  203. //        }
  204. //        else if(isVisiblePersonalInfo){
  205. //            isPersonalInfoVisibility();
  206. //        }
  207. //        else if(isVisiblePersonalInfo){
  208. //            isVerifyPhoneVisibility();
  209. //        }
  210.     }
  211.  
  212.     public void isInitialVisibility(){
  213.         btnGoBack.setVisibility(View.VISIBLE);
  214.         text_bottom_back.setVisibility(View.GONE);
  215.         image_check_profile.setVisibility(View.INVISIBLE);
  216.         image_check_gender.setVisibility(View.INVISIBLE);
  217.         image_check_personal_info.setVisibility(View.INVISIBLE);
  218.         image_check_verify_profile.setVisibility(View.INVISIBLE);
  219.  
  220.         text_tab_gender.setTextColor(getBaseContext().getResources().getColor(R.color.text_profile));
  221.         text_tab_personal_info.setTextColor(getBaseContext().getResources().getColor(R.color.text_profile));
  222.         text_tab_profile.setTextColor(getBaseContext().getResources().getColor(R.color.text_profile_active));
  223.         text_tab_verify_phone.setTextColor(getBaseContext().getResources().getColor(R.color.text_profile));
  224.     }
  225.     public void isGenderVisibility(){
  226.         btnGoBack.setVisibility(View.INVISIBLE);
  227.         text_bottom_back.setVisibility(View.VISIBLE);
  228.         image_check_profile.setVisibility(View.VISIBLE);
  229.         image_check_gender.setVisibility(View.INVISIBLE);
  230.         image_check_personal_info.setVisibility(View.INVISIBLE);
  231.         image_check_verify_profile.setVisibility(View.INVISIBLE);
  232.  
  233.         text_tab_gender.setTextColor(getBaseContext().getResources().getColor(R.color.text_profile_active));
  234.         text_tab_personal_info.setTextColor(getBaseContext().getResources().getColor(R.color.text_profile));
  235.         text_tab_profile.setTextColor(getBaseContext().getResources().getColor(R.color.text_profile));
  236.         text_tab_verify_phone.setTextColor(getBaseContext().getResources().getColor(R.color.text_profile));
  237.     }
  238.     public void isPersonalInfoVisibility(){
  239.         btnGoBack.setVisibility(View.INVISIBLE);
  240.         image_check_profile.setVisibility(View.VISIBLE);
  241.         image_check_gender.setVisibility(View.VISIBLE);
  242.         image_check_personal_info.setVisibility(View.INVISIBLE);
  243.         image_check_verify_profile.setVisibility(View.INVISIBLE);
  244.  
  245.         text_tab_gender.setTextColor(getBaseContext().getResources().getColor(R.color.text_profile));
  246.         text_tab_personal_info.setTextColor(getBaseContext().getResources().getColor(R.color.text_profile_active));
  247.         text_tab_profile.setTextColor(getBaseContext().getResources().getColor(R.color.text_profile));
  248.         text_tab_verify_phone.setTextColor(getBaseContext().getResources().getColor(R.color.text_profile));
  249.     }
  250.     public void isVerifyPhoneVisibility(){
  251.         btnGoBack.setVisibility(View.INVISIBLE);
  252.         text_bottom_back.setVisibility(View.INVISIBLE);
  253.         image_check_profile.setVisibility(View.VISIBLE);
  254.         image_check_gender.setVisibility(View.VISIBLE);
  255.         image_check_personal_info.setVisibility(View.VISIBLE);
  256.         image_check_verify_profile.setVisibility(View.INVISIBLE);
  257.  
  258.         text_tab_gender.setTextColor(getBaseContext().getResources().getColor(R.color.text_profile));
  259.         text_tab_personal_info.setTextColor(getBaseContext().getResources().getColor(R.color.text_profile));
  260.         text_tab_profile.setTextColor(getBaseContext().getResources().getColor(R.color.text_profile));
  261.         text_tab_verify_phone.setTextColor(getBaseContext().getResources().getColor(R.color.text_profile_active));
  262.     }
  263.     @Override
  264.     protected void onPause() {
  265.         super.onPause();
  266.         if (Utils.checkPermission(getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
  267.             mMainPresenter.unregisterFromEventbus();
  268.             mPhotosPresenter.unregisterFromEventbus();
  269.         }
  270.     }
  271.  
  272.     @Override
  273.     public void setTitle(String s) {
  274.         if (!Common.getInstance().getPref().userExists()) {
  275.             tvTitle.setText(R.string.sign_up);
  276.         }else {
  277.             tvTitle.setText(R.string.my_profile);
  278.         }
  279.     }
  280.  
  281.     @Override
  282.     public void setDoneButtonEnabled(boolean isEnabled) {
  283.         if (!Common.getInstance().getPref().userExists()) {
  284.             if (isEnabled) {
  285.                 btnDone.setText(R.string.next);
  286.                 signUpContinueBtn.setVisibility(View.VISIBLE);
  287.                 signUpContinueBtn.setEnabled(true);
  288.             } else {
  289.                 btnDone.setText(R.string.save);
  290.  
  291.             }
  292.         }
  293.     }
  294.  
  295.     @Override
  296.     public ProfilePhotosPresenter getPhotosPresenter() {
  297.         return mPhotosPresenter;
  298.     }
  299.  
  300.     @Override
  301.     public void displayError(String e) {
  302.         Toast.makeText(this, e, Toast.LENGTH_SHORT).show();
  303.     }
  304.  
  305.     // gallery fragment onCreateView
  306.     @Override
  307.     public void onCreateView() {
  308.         if (user == null) {
  309.             galleryFragment.galleryFragmentFillProfileData(socialData);
  310.             isInitialVisibility();
  311.         } else {
  312.             galleryFragment.galleryFragmentFillProfileData(user);
  313.         }
  314.     }
  315.  
  316.     @Override
  317.     public void displayLoadingDialog(boolean isVisible) {
  318.  
  319.     }
  320.  
  321.     private void setupViews() {
  322.         if (Common.getInstance().getPref().userExists()) {
  323.             btnDone.setText(R.string.save);
  324.             toolbar.setBackgroundColor(getResources().getColor(R.color.black));
  325.             toolbar.setBackgroundColor(getResources().getColor(R.color.black));
  326.             tvTitle.setTextColor(getResources().getColor(R.color.white));
  327.             btnDone.setTextColor(getResources().getColor(R.color.white));
  328.             btnGoBack.setTextColor(getResources().getColor(R.color.white));
  329. //
  330. //            vPersonalInfoFragment.etEmail.setTextColor(getResources().getColor(R.color.white));
  331. //            vPersonalInfoFragment.etFirstName.setTextColor(getResources().getColor(R.color.white));
  332. //            vPersonalInfoFragment.etLastName.setTextColor(getResources().getColor(R.color.white));
  333.  
  334. //            vPersonalInfoFragment.etEmail.getBackground().setColorFilter(getResources().getColor(R.color.white), PorterDuff.Mode.SRC_ATOP);
  335. //            vPersonalInfoFragment.etFirstName.setBackgroundTintList(getResources().getColor(R.color.white));
  336. //            vPersonalInfoFragment.etLastName.setTextColor(getResources().getColor(R.color.white));
  337.             layout_active_tab.setVisibility(View.GONE);
  338.             signUpContinueBtn.setVisibility(View.INVISIBLE);
  339.             activityProfileFragmentLl.setBackground(getResources().getDrawable(R.drawable.back_picture_invite));
  340.             FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
  341.             fragmentTransaction.add(R.id.profile_main_content, galleryFragment);
  342.  
  343.             fragmentTransaction.add(R.id.profile_secondary_content, vPersonalInfoFragment);
  344.  
  345.             fragmentTransaction.add(R.id.profile_ternary_content, profileCompleteFragment);
  346.             fragmentTransaction.commit();
  347.         } else {
  348.             layout_active_tab.setVisibility(View.VISIBLE);
  349.             btnDone.setVisibility(View.INVISIBLE);
  350.             signUpContinueBtn.setVisibility(View.INVISIBLE);
  351.             galleryFragment = MyProfileGalleryFragment.getInstance();
  352.             FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
  353.             fragmentTransaction.replace(R.id.profile_main_content, galleryFragment);
  354.             fragmentTransaction.commitAllowingStateLoss();
  355.         }
  356.  
  357.         setVerifyPhoneActionListener();
  358.         setCompleteProfileActionListener();
  359.         setGenderActionListener();
  360.     }
  361.     @OnClick(R.id.sign_up_continue_btn)
  362.     public void signUp() {
  363.         if (genderFragment == null) {
  364.  
  365.             genderFragment = MyProfileGenderFragment.getInstance();
  366.         }
  367.  
  368.         if (profileCompleteFragment == null) {
  369.             profileCompleteFragment = MyProfileCompleteFragment.getInstance();
  370.         }
  371.  
  372.         if (vPersonalInfoFragment == null) {
  373.             vPersonalInfoFragment = MyProfileUserDetailsFragment.getInstance();
  374.         }
  375.         boolean isVisible = galleryFragment.isVisible();
  376.         boolean isVisibleGenderf = genderFragment.isVisible();
  377.         boolean isVisiblePersonalInf = vPersonalInfoFragment.isVisible();
  378.         if (isVisible && !galleryFragment.checkIfUserHaveProfilePicture()) {
  379.             displayError("You must have profile image !");
  380.             showSavingUserDialog(false);
  381.         } else if (isVisible && !galleryFragment.checkIfContainsMinimumNumberOfImages()) {
  382.             displayError("At least 3 images must be uploaded");
  383.             showSavingUserDialog(false);
  384.         } else if (isVisible) {
  385.             showSavingUserDialog(true);
  386.             openGenderFragment();
  387.         }else if (isVisibleGenderf) {
  388.             showSavingUserDialog(true);
  389.             openPersonalInfoFragment();
  390.             if(user != null){
  391.                 if (genderFragment.maleImageView.isChecked()){
  392.                     user.setGender("male");
  393.                 }else {
  394.                     user.setGender("female");
  395.                 }
  396.             } else if (socialData != null) {
  397.                 if (genderFragment.maleImageView.isChecked()){
  398.                     socialData.setGender("male");
  399.                 }else {
  400.                     socialData.setGender("female");
  401.                 }
  402.                 Common.getInstance().getPref().saveSocialData(socialData);
  403.             }
  404.         }
  405.         else if(isVisiblePersonalInf){
  406.             openVirifyPhoneFragment();
  407.         }
  408.     }
  409.     @OnClick(R.id.my_profile_save)
  410.     public void saveProfile(){
  411.         if (Common.getInstance().getPref().userExists()) {
  412.             if(vPhoneFragment.etPhoneNum.isValid()){
  413.                 mMainPresenter.updateUser();
  414.             }else {
  415.                 displayError("Invalid phone number");
  416.             }
  417.  
  418.         }else {
  419.             if (vPhoneFragment == null) {
  420.                 vPhoneFragment = MyProfileVerifyPhoneFragment.getInstance();
  421.             }
  422.  
  423.             if (profileCompleteFragment == null) {
  424.                 profileCompleteFragment = MyProfileCompleteFragment.getInstance();
  425.             }
  426.  
  427.             boolean isVisible = galleryFragment.isVisible();
  428.             if (isVisible && !galleryFragment.checkIfUserHaveProfilePicture()) {
  429.                 displayError("You must have profile image !");
  430.                 showSavingUserDialog(false);
  431.             } else if (isVisible && !galleryFragment.checkIfContainsMinimumNumberOfImages()) {
  432.                 displayError("At least 3 images must be uploaded");
  433.                 showSavingUserDialog(false);
  434.             } else if (isVisible) {
  435.                 showSavingUserDialog(true);
  436.                 openVirifyPhoneFragment();
  437.             }
  438.         }
  439.     }
  440.  
  441.     private void openGenderFragment() {
  442.  
  443.         isGenderVisibility();
  444.  
  445.         FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
  446. //        btnDone.setVisibility(View.GONE);
  447.         btnDone.setText(R.string.save);
  448.         ft.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right, android.R.anim.slide_in_left, android.R.anim.slide_out_right);
  449.         ft.addToBackStack(null);
  450.         ft.replace(R.id.profile_main_content, genderFragment,"GENDERFRAGMENT");
  451.         ft.commit();
  452.     }
  453.     private void openVirifyPhoneFragment() {
  454.         mMainPresenter.getAppUser().setEmail(vPersonalInfoFragment.etEmail.getText().toString());
  455.         mMainPresenter.getAppUser().setFirstName(vPersonalInfoFragment.etFirstName.getText().toString());
  456.         mMainPresenter.getAppUser().setLastName(vPersonalInfoFragment.etLastName.getText().toString());
  457.         if(mMainPresenter.validateUserPersonalInfo()) {
  458.  
  459.             signUpContinueBtn.setVisibility(View.INVISIBLE);
  460.             isVerifyPhoneVisibility();
  461.             btnGoBack.setVisibility(View.INVISIBLE);
  462.  
  463.             FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
  464. //        btnDone.setVisibility(View.GONE);
  465.             btnDone.setText(R.string.save);
  466.             ft.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right, android.R.anim.slide_in_left, android.R.anim.slide_out_right);
  467.             ft.addToBackStack(null);
  468.             ft.replace(R.id.profile_main_content, vPhoneFragment,"PHONEFRAGMENT");
  469.             ft.commit();
  470.         }
  471.     }
  472.     private void openPersonalInfoFragment() {
  473.  
  474.         isPersonalInfoVisibility();
  475.         signUpContinueBtn.setVisibility(View.VISIBLE);
  476.         FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
  477. //        btnDone.setVisibility(View.GONE);
  478.         btnDone.setText(R.string.save);
  479.         ft.setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right, android.R.anim.slide_in_left, android.R.anim.slide_out_right);
  480.         ft.addToBackStack(null);
  481.         ft.replace(R.id.profile_main_content, vPersonalInfoFragment,"PERSONALFRAGMENT");
  482.         ft.commit();
  483.     }
  484.  
  485.     @Override
  486.     public void fillProfileData(AppUser user) {
  487.         LogWrapper.d(TAG, "filling profile data with existing user");
  488.         this.user = user;
  489.         setupViews();
  490.         /*
  491.         galleryFragment.setDarkBackground();
  492.         galleryFragment.galleryFragmentFillProfileData(user);
  493.         vPhoneFragment.fillData(user);
  494.         profileCompleteFragment.fillProfileData(user);*/
  495.     }
  496.  
  497.     @Override
  498.     public void fillProfileData(SocialNetData success) {
  499.         socialData = success;
  500.         setupViews();
  501.         //galleryFragment.galleryFragmentFillProfileData(success);
  502.     }
  503.  
  504.     @Override
  505.     public void setCityOfParty(String s) {
  506.  
  507.     }
  508.  
  509.     @Override
  510.     public String getCityOfParty() {
  511.         return null;
  512.     }
  513.  
  514.     @Override
  515.     public void onUserCreated(AppUser user) {
  516.         mPhotosPresenter.uploadImages(false);
  517.     }
  518.  
  519.     @Override
  520.     public void onUserUpdated(AppUser user) {
  521.         mPhotosPresenter.setCurrentUserPhotos(user.getPhotos());
  522.         showSavingUserDialog(true);
  523.         mPhotosPresenter.uploadImages(true);
  524.     }
  525.  
  526.     @Override
  527.     public void onPhotosUploaded(List<Photo> lsUploadedPhotos) {
  528.         LogWrapper.d(TAG, "showSavingUserDialog() onPhotosUploaded()");
  529.         showSavingUserDialog(false);
  530.         mMainPresenter.onPhotosUploaded(lsUploadedPhotos);
  531.     }
  532.  
  533.     @Override
  534.     public void userStoredInDB(boolean userExist) {
  535.         // check if there is no user in the
  536.         boolean editProfile = getIntent().getBooleanExtra("editProfile", false);
  537.         if(!editProfile){
  538.             if (!userExist || (userExist && Common.getInstance().getPref().getUserIncompleteStatus())) {
  539.                 Intent i = new Intent(MyProfileActivityNew.this, InsertReferralCode.class);
  540.                 i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
  541.                 startActivity(i);
  542.             }
  543.         }else {
  544.             finish();
  545.         }
  546.     }
  547.  
  548.     @Override
  549.     public void startPhoneVerification(String oldPhone) {
  550.         Intent i = new Intent(MyProfileActivityNew.this, VerifyPhoneActivityNew.class);
  551.         i.putExtra("oldPhone", oldPhone);
  552.         LogWrapper.d(TAG, "startPhoneVerification called");
  553.         startActivityForResult(i, PHONE_UPDATE_REQUEST_CODE);
  554.     }
  555.  
  556.     @Override
  557.     public void onPhoneVerified() {
  558.         vPhoneFragment.setVerifyButtonEnabled(true);
  559.         Toast.makeText(this, "Phone successfully verified, verification code will be sent on this phone number", Toast.LENGTH_LONG).show();
  560.     }
  561.  
  562.     @Override
  563.     public void onErrorPhoneVerification() {
  564.         if (vPhoneFragment != null)
  565.             vPhoneFragment.setVerifyButtonEnabled(true);
  566.     }
  567.  
  568.     @Override
  569.     public void showSavingUserDialog(boolean visible) {
  570.         LogWrapper.d(TAG, "showSavingUserDialog() visible=" + visible);
  571.         /*if (visible) {
  572.             showProgressBarDialog();
  573.         } else {
  574.             hideProgressBarDialog();
  575.         }*/
  576.     }
  577.  
  578.     private void initProgressBarDialog() {
  579.         progressBarDialog = new ProgressDialog(this);
  580.         progressBarDialog.setMessage("Please wait while your profile/photos are saved.");
  581.         progressBarDialog.setTitle("Saving profile");
  582.         progressBarDialog.setCancelable(false);
  583.     }
  584.  
  585.  
  586.     public void showProgressBarDialog() {
  587.         progressBarDialog.show();
  588.     }
  589.  
  590.     private void hideProgressBarDialog() {
  591.         if (progressBarDialog != null) {
  592.             progressBarDialog.dismiss();
  593.         }
  594.     }
  595.  
  596.     @Override
  597.     public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  598.         super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  599.         LogWrapper.d(TAG, "onRequestPermissionsResult, requestCode=" + requestCode + ", permissions=" + Arrays.toString(permissions) + ", grantResults=" + Arrays.toString(grantResults));
  600.         switch (requestCode) {
  601.             case PERMISSION_WRITE_EXTERNAL_REQUEST: {
  602.                 // If request is cancelled, the result arrays are empty.
  603.                 if (Utils.checkGrantedPermissions(grantResults)) {
  604.                     LogWrapper.d(TAG, " Permissions granted! Congratulations!");
  605.                     init();
  606.                 } else {
  607.                     LogWrapper.d(TAG, " Permissions not granted!");
  608.                     //Toast.makeText(getContext(), getString(R.string.camera_permissions_not_granted), Toast.LENGTH_LONG).show();
  609.                     requestStoragePermission();
  610.                 }
  611.                 break;
  612.             }
  613.         }
  614.     }
  615.  
  616.  
  617.     @Override
  618.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  619.         super.onActivityResult(requestCode, resultCode, data);
  620.         LogWrapper.d(TAG, "onActivityResult called");
  621.         if (requestCode == PHONE_UPDATE_REQUEST_CODE) {
  622.             LogWrapper.d(TAG, "onActivityResult with phone update code");
  623.             if (resultCode == Activity.RESULT_OK) {
  624.                 mMainPresenter.onPhoneUpdateVerification(true);
  625.             } else {
  626.                 mMainPresenter.onPhoneUpdateVerification(false);
  627.                 displayError("New phone number has not been updated");
  628.             }
  629.                 /*
  630.                 Bundle b = data.getExtras();
  631.                 if (b != null) {
  632.                     String number = b.getString("number");
  633.                     String verificationCode = b.getString("verificationCode");
  634.                     vPhoneFragment.setPhone(number);
  635.                     mMainPresenter.setPhoneVerificationResult(verificationCode);
  636.                 }*/
  637.         }
  638.         if (requestCode == MyProfileGalleryFragment.STORAGE_REQUEST_CODE || requestCode == MyProfileGalleryFragment.FACEBOOK_REQUEST_CODE || requestCode == MyProfileGalleryFragment.CAMERA_REQUEST_CODE) {
  639.             galleryFragment.onActivityResult(requestCode, resultCode, data);
  640.         } else if (requestCode == MyProfileCompleteFragment.OCCUPATION_REQUEST_CODE) {
  641.             profileCompleteFragment.onFragmentActivityResult(requestCode, resultCode, data);
  642.         } else if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
  643.             galleryFragment.onActivityResult(requestCode, resultCode, data);
  644.         }
  645.     }
  646.  
  647.     private void setVerifyPhoneActionListener() {
  648.         vPhoneFragment.setOnActionListener(new MyProfileVerifyPhoneFragment.PhoneVerificationActionListener() {
  649.             @Override
  650.             public void onSendPhoneClick(String phone) {
  651.                 vPhoneFragment.tempDisableSendPhoneButton();
  652.                 mMainPresenter.sendPhoneForVerification(phone);
  653.             }
  654.  
  655.             @Override
  656.             public void onVerifyPhoneClick(String code) {
  657.                 mMainPresenter.setPhoneVerificationResult(code);
  658.             }
  659.  
  660.             @Override
  661.             public void setTitle(String title) {
  662.                 MyProfileActivityNew.this.setTitle(title);
  663.             }
  664.  
  665.             @Override
  666.             public void onPhoneChanged(String phone) {
  667.                 mMainPresenter.setUserPhone(phone);
  668.             }
  669.  
  670.             @Override
  671.             public void onCreateView() {
  672.                 if (!Common.getInstance().getPref().userExists()) {
  673.                     vPhoneFragment.setFragmentUsecase(MyProfileVerifyPhoneFragment.HolderType.CREATE_PROFILE);
  674.                 } else {
  675.                     vPhoneFragment.setFragmentUsecase(MyProfileVerifyPhoneFragment.HolderType.EDIT_PROFILE);
  676.                 }
  677. //                if (user == null) {
  678. //                    vPersonalInfoFragment.fillData(socialData);
  679. //                } else {
  680. //                    vPersonalInfoFragment.fillData(user);
  681. //                }
  682.             }
  683.         });
  684.     }
  685.  
  686.     private void setGenderActionListener() {
  687.         genderFragment.setOnActionListener(new MyProfileGenderFragment.GenderActionListener() {
  688.  
  689.             @Override
  690.             public void setTitle(String title) {
  691.                 MyProfileActivityNew.this.setTitle("Gender Select");
  692.             }
  693.  
  694.             @Override
  695.             public void onCreateView() {
  696.                 signUpContinueBtn.setVisibility(View.VISIBLE);
  697.                 if (user == null) {
  698.                     genderFragment.fillData(socialData);
  699.                 } else {
  700.                     genderFragment.fillData(user);
  701.                 }
  702.             }
  703.         });
  704.     }
  705.  
  706.     private void setCompleteProfileActionListener() {
  707.         profileCompleteFragment.setOnActionListener(new MyProfileCompleteFragment.ProfileCompleteActionListener() {
  708.             @Override
  709.             public void onAlcoholSelect(String key, boolean isSelected) {
  710.                 mMainPresenter.onUserAlcoholSelection(key, isSelected);
  711.             }
  712.  
  713.             @Override
  714.             public void onMusicSelect(String key, boolean isSelected) {
  715.                 mMainPresenter.onUserMusicSelection(key, isSelected);
  716.             }
  717.  
  718.             @Override
  719.             public void onCitySelect(String city) {
  720.                 mMainPresenter.onUserCityUpdate(city);
  721.             }
  722.  
  723.             @Override
  724.             public void onOccupationChange(String occupation) {
  725.                 mMainPresenter.onUserOccupationUpdate(occupation);
  726.             }
  727.  
  728.             @Override
  729.             public void onSaveProfileClick() {
  730.  
  731.                 mMainPresenter.updateUser();
  732.             }
  733.  
  734.             @Override
  735.             public void onCreateView() {
  736.                 if (user != null) {
  737.                     profileCompleteFragment.fillProfileData(user);
  738.                 }
  739.             }
  740.         });
  741.     }
  742.  
  743.     @Override
  744.     public void requestCameraPermission() {
  745.         LogWrapper.d(TAG, "requestCameraPermission()");
  746.         if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA) && ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
  747.             final android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(this);
  748.             builder.setMessage(getString(R.string.dialog_request_camera_permission_message));
  749.             builder.setTitle(getString(R.string.dialog_request_camera_permission_title));
  750.             builder.setPositiveButton(getString(R.string.ok), (dialog, which) -> {
  751.                 //, Manifest.permission.WRITE_EXTERNAL_STORAGE
  752.                 LogWrapper.d(TAG, "requestCameraPermission() -> request permission");
  753.                 ActivityCompat.requestPermissions(MyProfileActivityNew.this, new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_CAMERA_REQUEST);
  754.             });
  755.             builder.setNegativeButton(getString(R.string.cancel), (dialog, which) -> dialog.dismiss());
  756.             builder.show();
  757.         } else {
  758.             LogWrapper.d(TAG, "requestCameraPermission() -> request permission");
  759.             ActivityCompat.requestPermissions(MyProfileActivityNew.this, new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_CAMERA_REQUEST);
  760.         }
  761.     }
  762.  
  763.     @Override
  764.     public void requestStoragePermission() {
  765.         LogWrapper.d(TAG, "requestStoragePermission()");
  766.         if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
  767.             final android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(this);
  768.             builder.setMessage(getString(R.string.dialog_request_storage_permission_message));
  769.             builder.setTitle(getString(R.string.dialog_request_storage_permission_title));
  770.             builder.setPositiveButton(getString(R.string.ok), (dialog, which) -> {
  771.                 //, Manifest.permission.WRITE_EXTERNAL_STORAGE
  772.                 LogWrapper.d(TAG, "requestStoragePermission() -> request permission");
  773.                 ActivityCompat.requestPermissions(MyProfileActivityNew.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_WRITE_EXTERNAL_REQUEST);
  774.             });
  775.             builder.setNegativeButton(getString(R.string.cancel), (dialog, which) -> {
  776.                 dialog.dismiss();
  777.                 requestStoragePermission();
  778.             });
  779.             builder.show();
  780.         } else {
  781.             LogWrapper.d(TAG, "requestStoragePermission() -> request permission");
  782.             ActivityCompat.requestPermissions(MyProfileActivityNew.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_WRITE_EXTERNAL_REQUEST);
  783.         }
  784.     }
  785.     public void onBackButtonClick() {
  786.         onBackPressed();
  787.     }
  788.  
  789.     @Override
  790.     public void onBackPressed() {
  791.         super.onBackPressed();
  792.         if(genderFragment.isVisible()){
  793.             isGenderVisibility();
  794.         }if(vPersonalInfoFragment.isVisible()){
  795.             isPersonalInfoVisibility();
  796.         }if(vPhoneFragment.isVisible()){
  797.             isVerifyPhoneVisibility();
  798.         }
  799.     }
  800. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement