导航菜单

页面标题

页面副标题

Credmex v3.12.2 - FeedbackActivity.java 源代码

正在查看: Credmex v3.12.2 应用的 FeedbackActivity.java JAVA 源代码文件

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


package com.credmex.activity;

import android.annotation.SuppressLint;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.text.Editable;
import android.text.TextUtils;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.FileProvider;
import androidx.core.content.res.ResourcesCompat;
import androidx.core.widget.NestedScrollView;
import butterknife.BindView;
import butterknife.OnClick;
import butterknife.OnTextChanged;
import com.credmex.activity.FeedbackActivity;
import com.credmex.activity.FeedbackUploadPicSelector;
import com.credmex.commom.CommonActivity;
import com.credmex.models.BindBankCardChannel;
import com.credmex.models.response.FeedbackTypeResponse;
import com.credmex.models.response.UploadImageResponse;
import com.credmex.net.CredMexBaseResult;
import com.credmex.net.CredMexObserver;
import com.credmex.net.IApiRoutes;
import com.credmex.track.ThirdPartEventUtils;
import com.credmex.track.ThirdPartTrackEvents;
import com.credmex.track.ThirdPartTrackLib;
import com.credmex.track.TrackEventParamsConfigurator;
import com.credmex.widght.dialog.CommonDialog;
import com.credmex.widght.dialog.bottomDialog.SelectPicDialog;
import com.credmex.widght.editTextBridge.DefaultTextWatcher;
import com.google.android.gms.common.Scopes;
import com.google.android.material.R;
import com.open.mx.ui.views.button.PrimaryButton;
import com.open.mx.ui.views.button.SecondaryButton;
import com.sensorsdata.analytics.android.autotrack.aop.SensorsDataAutoTrackHelper;
import com.sensorsdata.analytics.android.sdk.SensorsDataInstrumented;
import com.veda.android.bananalibrary.net.ICallBack;
import com.veda.supertoolkit.customtools.CollectionUtils;
import com.veda.supertoolkit.lifecycle.LifecycleEvent;
import com.veda.supertoolkit.phonetools.ScreenUtils;
import com.veda.supertoolkit.utils.MultipartBuild;
import com.veda.supertoolkit.widgets.BaseUtils;
import com.veda.supertoolkit.widgets.FlowRadioGroup;
import com.yangqianguan.statistics.AutoTrackHelper;
import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Action;
import io.reactivex.functions.Predicate;
import io.reactivex.schedulers.Schedulers;
import io.sentry.Sentry;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import okhttp3.MediaType;
import okhttp3.RequestBody;

public class FeedbackActivity extends CommonActivity {
    public static final int DETAIL_MAX_LENGTH = 3000;
    public static final String FEEDBACK_PAGE_TYPE = "FEEDBACK_PAGE_TYPE";
    private FeedbackTypeResponse.FeedbackTypeBody D;
    private FeedbackUploadPicSelector E;
    private String I;
    protected Uri J;
    protected File K;
    private SelectPicDialog R;

    @BindView(2131361926)
    SecondaryButton btnApply;

    @BindView(2131361967)
    PrimaryButton btnRetry;

    @BindView(2131362479)
    ConstraintLayout clFeedback;

    @BindView(2131362176)
    EditText etDetailQuestion;

    @BindView(2131362175)
    EditText etEmail;

    @BindView(2131362220)
    FlowRadioGroup frgFeedbackType;

    @BindView(2131362329)
    ImageView ivDeleteEmail;

    @BindView(2131362476)
    LinearLayout llEmail;

    @BindView(2131362478)
    LinearLayout llErrorContent;

    @BindView(2131362480)
    LinearLayout llFeedbackPic;

    @BindView(2131362740)
    LinearLayout llRootView;

    @BindView(2131362632)
    NestedScrollView nsvFeedback;

    @BindView(2131363271)
    View vGoHelpCenter;
    private Map<String, String> F = new ConcurrentHashMap();
    private int G = 0;
    private final int H = 2;
    private final int S = 90;
    private int T = 0;

    class AnonymousClass7 extends CredMexObserver<CredMexBaseResult> {
        AnonymousClass7(ICallBack iCallBack) {
            super(iCallBack);
        }

        public void b(DialogInterface dialogInterface) {
            FeedbackActivity.this.finish();
        }

        public void onSuccess(CredMexBaseResult credMexBaseResult) {
            FeedbackActivity.this.dismissLoadingDialog();
            CommonDialog.CommonDialogBuilder.c(FeedbackActivity.this).q("dialog_feedback_success").m(2131820685, new b()).d(1).i(2131820771).g(new DialogInterface.OnDismissListener() {
                @Override
                public final void onDismiss(DialogInterface dialogInterface) {
                    FeedbackActivity.AnonymousClass7.this.b(dialogInterface);
                }
            }).a().show();
        }

        @Override
        public void onError(Throwable th, CredMexBaseResult credMexBaseResult) {
            super.onError(th, (Throwable) credMexBaseResult);
            FeedbackActivity.this.btnApply.setClickable(true);
        }
    }

    public void A0(@NonNull final String str) {
        Sentry.e("send uploadImage request");
        ((IApiRoutes) this.apiHelper.a()).y(MultipartBuild.a("image", new File(str)), RequestBody.d(MediaType.d("multipart/form-data"), "FEEDBACK")).A(2L, new Predicate() {
            public final boolean test(Object obj) {
                boolean u0;
                u0 = FeedbackActivity.this.u0((Throwable) obj);
                return u0;
            }
        }).h(new Action() {
            public final void run() {
                FeedbackActivity.this.k0();
            }
        }).a(new CredMexObserver<UploadImageResponse>(this) {
            @Override
            public void onError(Throwable th, UploadImageResponse uploadImageResponse) {
                super.onError(th, (Throwable) uploadImageResponse);
                Sentry.e("uploadImage failed");
            }

            public void onSuccess(UploadImageResponse uploadImageResponse) {
                if (!TextUtils.isEmpty(uploadImageResponse.body)) {
                    FeedbackActivity.this.F.put(str, uploadImageResponse.body);
                }
                Sentry.e("uploadImage success");
            }

            protected boolean superShowErrorToast() {
                return false;
            }
        });
    }

    public void B0() {
        if (this.R == null) {
            SelectPicDialog selectPicDialog = new SelectPicDialog(this);
            this.R = selectPicDialog;
            selectPicDialog.o(new SelectPicDialog.ItemClickListener() {
                @Override
                public void a() {
                    ?? r0 = FeedbackActivity.this;
                    r0.showErrorToast(r0.getString(2131821073));
                }

                @Override
                public void b() {
                    FeedbackActivity.this.x0();
                }

                @Override
                public void c() {
                    FeedbackActivity.this.w0();
                }
            });
        }
        this.R.show();
    }

    private void C0(@NonNull List<String> list) {
        synchronized (FeedbackActivity.class) {
            this.G = list.size();
        }
        ThirdPartTrackLib.d(this, ThirdPartTrackEvents.PersonalCenter.MEX_FEEDBACK_BTN_UPLOAD);
        Sentry.e("uploadFeedbackImages picture size = " + list.size());
        Observable.o(list).H(Schedulers.c()).t(AndroidSchedulers.a()).a(new Observer<String>() {
            public void onNext(String str) {
                FeedbackActivity.this.A0(str);
            }

            public void onError(Throwable th) {
                FeedbackActivity.this.dismissLoadingDialog();
                FeedbackActivity.this.btnApply.setClickable(true);
                FeedbackActivity.this.showErrorToast(2131821355);
            }

            public void onComplete() {
            }

            public void onSubscribe(Disposable disposable) {
            }
        });
    }

    public void k0() {
        boolean z;
        synchronized (FeedbackActivity.class) {
            int i2 = this.G - 1;
            this.G = i2;
            if (i2 != 0) {
                return;
            }
            Iterator<String> it = this.E.s().iterator();
            while (true) {
                if (!it.hasNext()) {
                    z = false;
                    break;
                }
                if (!this.F.containsKey(it.next())) {
                    z = true;
                    break;
                }
            }
            if (!z) {
                y0();
                return;
            }
            dismissLoadingDialog();
            this.btnApply.setClickable(true);
            showErrorToast(2131821355);
        }
    }

    private void l0() {
        this.T++;
        Sentry.e("uploadFeedbackImages uploadTimeCount = " + this.T);
        if (this.T == 90) {
            Sentry.h(new IllegalStateException("FeedbackActivity upload image to mush " + this.T));
        }
    }

    private void m0() {
        FeedbackUploadPicSelector feedbackUploadPicSelector = new FeedbackUploadPicSelector(this.llFeedbackPic, this);
        this.E = feedbackUploadPicSelector;
        feedbackUploadPicSelector.E(new FeedbackUploadPicSelector.FeedbackUploadPicSelectorListener() {
            @Override
            public final void a() {
                FeedbackActivity.this.B0();
            }
        });
    }

    private void n0() {
        this.nsvFeedback.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
            public void onScrollChange(@NonNull NestedScrollView nestedScrollView, int i2, int i3, int i4, int i5) {
                FeedbackActivity feedbackActivity = FeedbackActivity.this;
                feedbackActivity.vGoHelpCenter.setVisibility(i3 >= feedbackActivity.getResources().getDimensionPixelSize(2131165449) ? 8 : 0);
            }
        });
        this.etDetailQuestion.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public final boolean onTouch(View view, MotionEvent motionEvent) {
                boolean r0;
                r0 = FeedbackActivity.r0(view, motionEvent);
                return r0;
            }
        });
        this.etEmail.addTextChangedListener(new DefaultTextWatcher() {
            @Override
            public void afterTextChanged(Editable editable) {
                FeedbackActivity.this.ivDeleteEmail.setVisibility(TextUtils.isEmpty(editable.toString()) ? 8 : 0);
            }
        });
    }

    private void o0() {
        ThirdPartEventUtils.f(this.etDetailQuestion);
        ThirdPartEventUtils.f(this.etEmail);
        ThirdPartEventUtils.m(this, this.etDetailQuestion, ThirdPartTrackEvents.PersonalCenter.MEX_FEEDBACK_IPT_QUESTION);
        ThirdPartEventUtils.m(this, this.etEmail, ThirdPartTrackEvents.PersonalCenter.MEX_FEEDBACK_IPT_MAIL);
    }

    private void p0() {
        setWindowStatusBarColor(this, 2131099974);
        setToolbarGreen();
    }

    private boolean q0() {
        return this.D != null && this.etDetailQuestion.getText().toString().trim().length() <= 3000;
    }

    public static boolean r0(View view, MotionEvent motionEvent) {
        view.getParent().requestDisallowInterceptTouchEvent(motionEvent.getAction() != 1);
        return false;
    }

    public void s0(Map map) {
        map.put(ThirdPartTrackEvents.PersonalCenter.Keys.SELECT_FEEDBACK_TYPE, this.D.value);
    }

    public static void startFeedbackActivity(Context context, String str) {
        Intent intent = new Intent(context, (Class<?>) FeedbackActivity.class);
        intent.putExtra(FEEDBACK_PAGE_TYPE, str);
        context.startActivity(intent);
    }

    @SensorsDataInstrumented
    public void t0(RadioButton radioButton, FeedbackTypeResponse.FeedbackTypeBody feedbackTypeBody, CompoundButton compoundButton, boolean z) {
        if (z) {
            radioButton.setTextColor(getResources().getColor(2131099721));
            radioButton.setTypeface(ResourcesCompat.getFont(this, 2131296258));
            this.D = feedbackTypeBody;
            this.btnApply.setEnabled(q0());
            ThirdPartTrackLib.e(this, ThirdPartTrackEvents.PersonalCenter.MEX_FEEDBACK_TYPE, new TrackEventParamsConfigurator() {
                @Override
                public final void a(Map map) {
                    FeedbackActivity.this.s0(map);
                }
            });
        } else {
            radioButton.setTextColor(getResources().getColor(2131099725));
            radioButton.setTypeface(ResourcesCompat.getFont(this, 2131296259));
        }
        SensorsDataAutoTrackHelper.trackViewOnClick(compoundButton);
        AutoTrackHelper.b(compoundButton, z);
    }

    public boolean u0(Throwable th) throws Exception {
        l0();
        return true;
    }

    public void v0(List<FeedbackTypeResponse.FeedbackTypeBody> list) {
        if (CollectionUtils.a(list)) {
            return;
        }
        this.frgFeedbackType.removeAllViews();
        int dimensionPixelSize = getResources().getDimensionPixelSize(2131165414);
        int c = ((ScreenUtils.c(this) - (getResources().getDimensionPixelSize(2131165885) * 2)) - (2 * dimensionPixelSize)) / 3;
        for (final FeedbackTypeResponse.FeedbackTypeBody feedbackTypeBody : list) {
            final RadioButton radioButton = (RadioButton) getLayoutInflater().inflate(2131558646, (ViewGroup) null);
            radioButton.setChecked(false);
            radioButton.setText(feedbackTypeBody.label);
            RadioGroup.LayoutParams layoutParams = new RadioGroup.LayoutParams(c, -2);
            layoutParams.setMargins(0, 0, dimensionPixelSize, 0);
            radioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public final void onCheckedChanged(CompoundButton compoundButton, boolean z) {
                    FeedbackActivity.this.t0(radioButton, feedbackTypeBody, compoundButton, z);
                }
            });
            this.frgFeedbackType.addView(radioButton, layoutParams);
        }
    }

    private void y0() {
        String trim = this.etDetailQuestion.getText().toString().trim();
        String trim2 = this.etEmail.getText().toString().trim();
        ArrayList arrayList = new ArrayList();
        Iterator<String> it = this.E.s().iterator();
        while (it.hasNext()) {
            String str = this.F.get(it.next());
            if (!TextUtils.isEmpty(str)) {
                arrayList.add(str);
            }
        }
        HashMap hashMap = new HashMap();
        hashMap.put("type", this.D.value);
        hashMap.put("content", trim);
        hashMap.put(Scopes.EMAIL, trim2);
        hashMap.put("uploadImageRawDataIds", arrayList);
        hashMap.put("triggerPoint", this.I);
        ((IApiRoutes) this.apiHelper.a()).Z0(hashMap).a(new AnonymousClass7(this));
    }

    private void z0() {
        showLoadingDialog();
        ((IApiRoutes) this.apiHelper.a()).n().a(new CredMexObserver<FeedbackTypeResponse>(this) {
            @Override
            public void onError(Throwable th, FeedbackTypeResponse feedbackTypeResponse) {
                super.onError(th, (Throwable) feedbackTypeResponse);
                FeedbackActivity.this.reportFullyDisplayed();
                FeedbackActivity.this.llErrorContent.setVisibility(0);
                FeedbackActivity.this.clFeedback.setVisibility(8);
                FeedbackActivity.this.setToolbarBright();
            }

            public void onSuccess(FeedbackTypeResponse feedbackTypeResponse) {
                FeedbackActivity.this.reportFullyDisplayed();
                FeedbackActivity.this.v0(feedbackTypeResponse.body);
                FeedbackActivity.this.dismissLoadingDialog();
                FeedbackActivity.this.llErrorContent.setVisibility(8);
                FeedbackActivity.this.clFeedback.setVisibility(0);
                FeedbackActivity.this.setToolbarGreen();
            }
        });
    }

    @Override
    protected void D() {
        z0();
    }

    @Override
    protected void G(@NonNull Bundle bundle) {
        super.G(bundle);
        this.I = bundle.getString(FEEDBACK_PAGE_TYPE, BindBankCardChannel.PERSONAL_CENTER);
    }

    @Override
    @SuppressLint({"ClickableViewAccessibility"})
    protected void K() {
        super.K();
        p0();
        m0();
        n0();
        o0();
        registerHideInputWhenTouchOutside(this.etEmail, this.llEmail);
    }

    @Override
    protected void X(@NonNull Bundle bundle) {
        super.X(bundle);
        bundle.putString(FEEDBACK_PAGE_TYPE, this.I);
    }

    @Override
    public int getLayoutID() {
        return 2131558436;
    }

    public void onActivityResult(int i2, int i3, Intent intent) {
        FeedbackUploadPicSelector feedbackUploadPicSelector;
        super/*androidx.fragment.app.FragmentActivity*/.onActivityResult(i2, i3, intent);
        if (i3 == -1) {
            if (i2 != 101) {
                if (i2 != 102 || (feedbackUploadPicSelector = this.E) == null) {
                    return;
                }
                feedbackUploadPicSelector.B(this.J);
                return;
            }
            Uri data = intent == null ? null : intent.getData();
            FeedbackUploadPicSelector feedbackUploadPicSelector2 = this.E;
            if (feedbackUploadPicSelector2 != null) {
                feedbackUploadPicSelector2.C(data);
            }
        }
    }

    @Override
    protected void onDestroy() {
        this.E.A();
        super.onDestroy();
    }

    @OnTextChanged({2131362176})
    public void onDetailTextChanged() {
        this.btnApply.setEnabled(q0());
    }

    @OnClick({2131361926, 2131363271, 2131361967, 2131362329})
    public void onViewClicked(View view) {
        if (BaseUtils.b()) {
        }
        switch (view.getId()) {
            case 2131361926:
                if (q0()) {
                    this.btnApply.setClickable(false);
                    ThirdPartTrackLib.d(this, ThirdPartTrackEvents.PersonalCenter.MEX_FEEDBACK_BTN_SUBMIT);
                    showLoadingDialog();
                    List<String> s2 = this.E.s();
                    if (!s2.isEmpty()) {
                        C0(s2);
                        break;
                    } else {
                        y0();
                        break;
                    }
                }
                break;
            case 2131361967:
                D();
                break;
            case 2131362329:
                this.etEmail.setText("");
                break;
            case 2131363271:
                B();
                break;
        }
    }

    @Override
    @SuppressLint({"CheckResult"})
    public Disposable runOnCreated(@NonNull Runnable runnable) {
        return com.veda.supertoolkit.lifecycle.i.a(this, runnable);
    }

    @Override
    @SuppressLint({"CheckResult"})
    public Disposable runOnDestroy(@NonNull Runnable runnable) {
        return com.veda.supertoolkit.lifecycle.i.b(this, runnable);
    }

    @Override
    @SuppressLint({"CheckResult"})
    public Disposable runOnEvent(@NonNull LifecycleEvent lifecycleEvent, @Nullable Runnable runnable) {
        return com.veda.supertoolkit.lifecycle.i.c(this, lifecycleEvent, runnable);
    }

    protected void w0() {
        try {
            if (!Environment.getExternalStorageState().equals("mounted")) {
                showNormalToast(2131821047);
                return;
            }
            Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
            intent.addFlags(3);
            this.K = new File(getExternalCacheDir(), "credmex_" + System.currentTimeMillis());
            Uri uriForFile = FileProvider.getUriForFile(this, getPackageName() + ".fileProvider", this.K);
            this.J = uriForFile;
            intent.putExtra("output", uriForFile);
            startActivityForResult(intent, 102);
        } catch (Exception e) {
            e.printStackTrace();
            showNormalToast(2131820628);
        }
    }

    protected void x0() {
        Intent intent = new Intent("android.intent.action.GET_CONTENT");
        intent.addCategory("android.intent.category.OPENABLE");
        intent.setType("image/*");
        try {
            if (intent.resolveActivity(getPackageManager()) != null) {
                startActivityForResult(intent, R.styleable.AppCompatTheme_switchStyle);
            } else {
                BaseUtils.d(this, 2131820643);
            }
        } catch (ActivityNotFoundException e) {
            BaseUtils.d(this, 2131820643);
            e.printStackTrace();
        }
    }
}