导航菜单

页面标题

页面副标题

SpeedCash v6.5.1482 - TransactionReportActivity.java 源代码

正在查看: SpeedCash v6.5.1482 应用的 TransactionReportActivity.java JAVA 源代码文件

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


package com.bm.sc.bebasbayar.ui.activity.info;

import android.os.Build;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.bm.sc.bebasbayar.R;
import com.bm.sc.bebasbayar.adapter.entity.ReportBodyEntity;
import com.bm.sc.bebasbayar.adapter.entity.ReportHeadEntity;
import com.bm.sc.bebasbayar.adapter.entity.TransactionReportEntity;
import com.bm.sc.bebasbayar.adapter.info.TransactionAdapter;
import com.bm.sc.bebasbayar.handler.MessageComposer;
import com.bm.sc.bebasbayar.handler.MessageSender;
import com.bm.sc.bebasbayar.helper.Affinity;
import com.bm.sc.bebasbayar.helper.FileHelper;
import com.bm.sc.bebasbayar.helper.WidgetHelper;
import com.bm.sc.bebasbayar.iface.MessageProcess;
import com.bm.sc.bebasbayar.message.BaseMessage;
import com.bm.sc.bebasbayar.message.MPMessage;
import com.bm.sc.bebasbayar.message.api.APIMessageWrapper;
import com.bm.sc.bebasbayar.message.mp.KeretaMessage;
import com.bm.sc.bebasbayar.message.mp.ReportingMessage;
import com.bm.sc.bebasbayar.message.qr.DataMessage;
import com.bm.sc.bebasbayar.setting.session.AppSession;
import com.bm.sc.bebasbayar.setting.session.ConfigSession;
import com.bm.sc.bebasbayar.ui.BaseActivity;
import com.bm.sc.bebasbayar.ui.activity.info.TransactionReportActivity;
import com.bm.sc.bebasbayar.ui.fragment.dialog.StrukFragment;
import com.bm.sc.bebasbayar.ui.fragment.dialog.TransactionReceiptFragment;
import com.bm.sc.bebasbayar.ui.fragment.dialog.TransactionReceiptProgressFragment;
import com.bm.sc.bebasbayar.ui.fragment.ticket.WebViewEticketFragment;
import com.bm.sc.util.android.Device;
import com.bm.sc.util.common.Var;
import com.bm.sc.util.format.DateTime;
import com.orangegangsters.github.swipyrefreshlayout.library.SwipyRefreshLayout;
import com.orangegangsters.github.swipyrefreshlayout.library.SwipyRefreshLayoutDirection;
import com.wdullaer.materialdatetimepicker.date.DatePickerDialog;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
import java.util.Objects;

public class TransactionReportActivity extends BaseActivity implements DatePickerDialog.OnDateSetListener, TransactionAdapter.Callback, TextWatcher {
    protected static final int PAYMENT_ACTIVITY_PAYMENT_CODE = 410;
    public TextView c;
    public TextView d;
    public DatePickerDialog e;
    public DatePickerDialog f;
    public SwipyRefreshLayout g;
    public TransactionAdapter h;
    public String i;
    public String j;
    public String k;

    public class a implements MessageProcess {
        public final int a;

        public a(int i) {
            this.a = i;
        }

        @Override
        public void afterProcess(BaseMessage baseMessage) {
            APIMessageWrapper aPIMessageWrapper = new APIMessageWrapper(baseMessage);
            ArrayList<TransactionReportEntity> arrayList = new ArrayList<>();
            if (!aPIMessageWrapper.isOK()) {
                if (!aPIMessageWrapper.isOK() && TransactionReportActivity.this.h != null && TransactionReportActivity.this.h.getItemCount() != 0) {
                    TransactionReportActivity.this.g.setRefreshing(false);
                    Affinity.toast(TransactionReportActivity.this, aPIMessageWrapper.getResponse_description());
                    return;
                } else {
                    if (TransactionReportActivity.this.g != null) {
                        TransactionReportActivity.this.g.setRefreshing(false);
                        return;
                    }
                    return;
                }
            }
            Iterator<HashMap<String, Object>> it = aPIMessageWrapper.getData().iterator();
            while (it.hasNext()) {
                HashMap<String, Object> next = it.next();
                TransactionReportEntity transactionReportEntity = new TransactionReportEntity();
                transactionReportEntity.setId_transaksi(Var.toString(next.get(DataMessage.ID_TRANSAKSI), ""));
                transactionReportEntity.setReff_id(Var.toString(next.get(MPMessage.IncludeMessage.REFF_ID), ""));
                transactionReportEntity.setWaktu_transaksi(Var.toString(next.get("waktu_transaksi"), ""));
                transactionReportEntity.setId_produk(Var.toString(next.get("id_produk"), ""));
                transactionReportEntity.setId_group_produk(Var.toString(next.get("id_group_produk"), ""));
                transactionReportEntity.setProduk(Var.toString(next.get("produk"), ""));
                transactionReportEntity.setPelanggan(Var.toString(next.get("pelanggan"), ""));
                transactionReportEntity.setSerial_number(Var.toString(next.get("serial_number"), ""));
                transactionReportEntity.setNominal((int) Var.toDouble(next.get("nominal"), 0.0d));
                transactionReportEntity.setStatus(Var.toString(next.get("status"), ""));
                transactionReportEntity.setIs_enable_cu(Var.toString(next.get("is_enable_cu"), ""));
                arrayList.add(transactionReportEntity);
            }
            TransactionReportActivity.this.h.addList(arrayList, this.a > 0);
            TransactionReportActivity.this.g.setRefreshing(false);
        }

        @Override
        public void backgroundProcess(long j, long j2, boolean z) {
        }

        @Override
        public void preProcess() {
        }
    }

    public class b implements MessageProcess {
        public b() {
        }

        @Override
        public void afterProcess(BaseMessage baseMessage) {
            ReportingMessage reportingMessage = new ReportingMessage(baseMessage);
            if (!reportingMessage.isOK()) {
                TransactionReceiptProgressFragment transactionReceiptProgressFragment = new TransactionReceiptProgressFragment();
                ReportHeadEntity reportHead = reportingMessage.getReportHead() != null ? reportingMessage.getReportHead() : null;
                ArrayList<ReportBodyEntity> reportBodyEntities = reportingMessage.getReportBodyEntities() != null ? reportingMessage.getReportBodyEntities() : null;
                String struks = reportingMessage.getStruks();
                String valueFromIncludes = reportingMessage.getValueFromIncludes(MPMessage.IncludeMessage.REFF_ID);
                Object obj = reportingMessage.getMap().get("biller_info");
                Objects.requireNonNull(obj);
                transactionReceiptProgressFragment.setArguments(TransactionReceiptProgressFragment.getPaymentBundle(struks, valueFromIncludes, Var.toString(obj, ""), reportHead, reportBodyEntities, reportingMessage.getReportFooter(), 2, reportingMessage.getResponse_code(), TransactionReportActivity.this.j));
                transactionReceiptProgressFragment.show(TransactionReportActivity.this.getSupportFragmentManager(), "CetakUlangPending");
                return;
            }
            if (FileHelper.isValidActivityForFragmentShow(TransactionReportActivity.this)) {
                if (reportingMessage.getReportHead() == null || reportingMessage.getReportBodyEntities() == null) {
                    StrukFragment strukFragment = new StrukFragment();
                    strukFragment.setArguments(strukFragment.setupDefaultBundle(TransactionReportActivity.this.j, TransactionReportActivity.this.i, reportingMessage.getStruks().replace("*", "\n"), reportingMessage.getStruks(), 2));
                    strukFragment.show(TransactionReportActivity.this.getSupportFragmentManager(), "CetakUlang");
                } else {
                    TransactionReceiptFragment transactionReceiptFragment = new TransactionReceiptFragment();
                    transactionReceiptFragment.setArguments(transactionReceiptFragment.setupDefaultBundle(reportingMessage.getReportHead(), reportingMessage.getReportBodyEntities(), reportingMessage.getReportFooter(), TransactionReportActivity.this.j, TransactionReportActivity.this.i, reportingMessage.getStruks().replace("*", "\n"), reportingMessage.getStruks(), 2, "", "", Var.toString(reportingMessage.getValueFromIncludes("product_code"), "")));
                    transactionReceiptFragment.show(TransactionReportActivity.this.getSupportFragmentManager(), "CetakUlang");
                }
            }
        }

        @Override
        public void backgroundProcess(long j, long j2, boolean z) {
        }

        @Override
        public void preProcess() {
        }
    }

    public void v(Calendar calendar, Calendar calendar2) {
        getTransactionReport(calendar.getTime(), calendar2.getTime(), 0);
    }

    public void w(SwipyRefreshLayoutDirection swipyRefreshLayoutDirection) {
        Date parse = DateTime.parse(WidgetHelper.getProductIdTag(this.c), "yyyy-MM-dd");
        Date parse2 = DateTime.parse(WidgetHelper.getProductIdTag(this.d), "yyyy-MM-dd");
        if (swipyRefreshLayoutDirection != SwipyRefreshLayoutDirection.TOP) {
            getTransactionReport(parse, parse2, this.h.getItemCount());
        } else {
            this.h.clearList();
            getTransactionReport(parse, parse2, 0);
        }
    }

    @Override
    public void afterTextChanged(Editable editable) {
        this.h.filtered(editable.toString().toLowerCase(Locale.getDefault()));
    }

    @Override
    public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
    }

    public void buildStrukPlane() {
        String str = this.configSession.retrieveMap(ConfigSession.PROPERTY_URL, ConfigSession.KEY_URL_INVOICE) + "invoice/tiket/pesawat/" + this.i + "?lite=true";
        String str2 = this.configSession.retrieveMap(ConfigSession.PROPERTY_URL, ConfigSession.KEY_URL_INVOICE) + "?ispdf=pdf&url=" + URLEncoder.encode(str);
        WebViewEticketFragment webViewEticketFragment = new WebViewEticketFragment();
        webViewEticketFragment.setArguments(webViewEticketFragment.setupDefaultBundle("E-Ticket", str, str2, this.i, Boolean.TRUE));
        webViewEticketFragment.show(getSupportFragmentManager(), "eticket");
    }

    public void buildStrukTrain() {
        String str = this.configSession.retrieveMap(ConfigSession.PROPERTY_URL, ConfigSession.KEY_URL_INVOICE) + "invoice/tiket/kai/" + this.i + "?lite=true";
        String str2 = this.configSession.retrieveMap(ConfigSession.PROPERTY_URL, ConfigSession.KEY_URL_INVOICE) + "?ispdf=pdf&url=" + URLEncoder.encode(str);
        WebViewEticketFragment webViewEticketFragment = new WebViewEticketFragment();
        webViewEticketFragment.setArguments(webViewEticketFragment.setupDefaultBundle("E-Ticket", str, str2, this.i, Boolean.FALSE));
        webViewEticketFragment.show(getSupportFragmentManager(), "eticket");
    }

    public void buildStrukTransaction() {
        ReportingMessage reportingMessage = new ReportingMessage(this.appSession.retrieve(AppSession.PROPERTY_MERCHANT_ID), this.appSession.retrieve(AppSession.PROPERTY_MERCHANT_PIN), this.appSession.retrieve(AppSession.PROPERTY_AUTH_TOKEN));
        reportingMessage.setMsg_type("TRX");
        reportingMessage.setProcessing_code("ADMTRASI");
        reportingMessage.setIncludesValue("product_code", "CU");
        reportingMessage.setIncludesValue(MPMessage.IncludeMessage.REFF_ID, this.i);
        reportingMessage.setAdditional_dataValue(0, "0");
        MessageComposer messageComposer = new MessageComposer(7, "");
        messageComposer.setData_type(1);
        messageComposer.setRequest_method(MessageComposer.POST);
        messageComposer.setIs_credential(true);
        messageComposer.setIs_encrypted(true);
        messageComposer.setShowProgressRegular(true);
        messageComposer.setMessageProcess(new b());
        MessageSender messageSender = new MessageSender(this, messageComposer);
        messageSender.setRequestMessage(reportingMessage);
        messageSender.execute();
    }

    @Override
    public int getLayoutResource() {
        return R.layout.activity_transaction_report1_1;
    }

    public void getTransactionReport(Date date, Date date2, int i) {
        MessageComposer messageComposer = new MessageComposer(7, "ro/activity/payment");
        messageComposer.setRequest_method(MessageComposer.GET);
        messageComposer.setData_type(2);
        messageComposer.addMessage("user_id", this.appSession.retrieve(AppSession.PROPERTY_MERCHANT_ID));
        messageComposer.addMessage("user_uuid", Device.getDeviceUUID(this).toString());
        messageComposer.addMessage(BaseMessage.INDEX_VIA, "BB ANDROID");
        messageComposer.addMessage("date_start", DateTime.format(date, "yyyy-MM-dd"));
        messageComposer.addMessage("date_end", DateTime.format(date2, "yyyy-MM-dd"));
        messageComposer.addMessage("limit", 25);
        messageComposer.addMessage("offset", Integer.valueOf(i));
        messageComposer.setShowProgressRegular(true);
        messageComposer.setMessageProcess(new a(i));
        new MessageSender(this, messageComposer).execute();
    }

    @Override
    public String getWikiNameSpace() {
        return null;
    }

    @Override
    public boolean isEligibleForFavorit() {
        return false;
    }

    @Override
    public void onClick(View view) {
        if (view.getId() == 2131364014) {
            Calendar calendar = Calendar.getInstance();
            calendar.add(1, -5);
            Calendar calendar2 = Calendar.getInstance();
            this.e.setMinDate(calendar);
            this.e.setMaxDate(calendar2);
            this.e.show(getFragmentManager(), "date_start_picker");
            return;
        }
        if (view.getId() == 2131364012) {
            Calendar calendar3 = Calendar.getInstance();
            calendar3.add(1, -5);
            Calendar calendar4 = Calendar.getInstance();
            this.f.setMinDate(calendar3);
            this.f.setMaxDate(calendar4);
            this.f.show(getFragmentManager(), "date_end_picker");
            return;
        }
        if (view.getId() != 2131362413) {
            super.onClick(view);
            return;
        }
        Date parse = DateTime.parse(WidgetHelper.getProductIdTag(this.c), "yyyy-MM-dd");
        Date parse2 = DateTime.parse(WidgetHelper.getProductIdTag(this.d), "yyyy-MM-dd");
        if (parse2.before(parse)) {
            Affinity.info(this, false, getString(R.string.error_date_end));
        } else if (DateTime.diffDate(parse, parse2) > 31) {
            Affinity.info(this, false, getString(R.string.error_date_range, 31));
        } else {
            this.h.clearList();
            getTransactionReport(parse, parse2, 0);
        }
    }

    @Override
    public void onClickCu(int i, ArrayList<TransactionReportEntity> arrayList) {
        this.i = arrayList.get(i).getReff_id();
        this.j = arrayList.get(i).getProduk();
        this.k = arrayList.get(i).getId_produk();
        if (Build.VERSION.SDK_INT < 33) {
            if (Affinity.isPermissionGranted(this, "android.permission.READ_EXTERNAL_STORAGE") && Affinity.isPermissionGranted(this, "android.permission.WRITE_EXTERNAL_STORAGE")) {
                prepareBuildStruk();
                return;
            } else {
                ActivityCompat.requestPermissions(this, new String[]{"android.permission.READ_EXTERNAL_STORAGE", "android.permission.WRITE_EXTERNAL_STORAGE"}, 234);
                return;
            }
        }
        if (Affinity.isPermissionGranted(this, "android.permission.READ_MEDIA_IMAGES") && Affinity.isPermissionGranted(this, "android.permission.READ_EXTERNAL_STORAGE") && Affinity.isPermissionGranted(this, "android.permission.WRITE_EXTERNAL_STORAGE")) {
            prepareBuildStruk();
        } else {
            ActivityCompat.requestPermissions(this, new String[]{"android.permission.READ_MEDIA_IMAGES", "android.permission.READ_EXTERNAL_STORAGE", "android.permission.WRITE_EXTERNAL_STORAGE"}, 434);
        }
    }

    @Override
    public boolean onClose() {
        return false;
    }

    @Override
    public void onCopySN(String str) {
        Affinity.copy1(this, str, "Serial Number berhasil disalin.");
    }

    @Override
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        final Calendar calendar = Calendar.getInstance();
        calendar.set(5, 1);
        this.e = DatePickerDialog.newInstance(this, calendar.get(1), calendar.get(2), calendar.get(5));
        final Calendar calendar2 = Calendar.getInstance();
        this.f = DatePickerDialog.newInstance(this, calendar2.get(1), calendar2.get(2), calendar2.get(5));
        TextView textView = (TextView) findViewById(R.id.input_date_start);
        this.c = textView;
        textView.setOnClickListener(this);
        WidgetHelper.setProductIdTag(this.c, DateTime.format(calendar.getTime(), "yyyy-MM-dd"), getString(R.string.label_date_start) + ":\n" + DateTime.format(calendar.getTime(), DateTime.FORMAT_DATE_DMMMY));
        TextView textView2 = (TextView) findViewById(R.id.input_date_end);
        this.d = textView2;
        textView2.setOnClickListener(this);
        WidgetHelper.setProductIdTag(this.d, DateTime.format(calendar2.getTime(), "yyyy-MM-dd"), getString(R.string.label_date_end) + ":\n" + DateTime.format(calendar2.getTime(), DateTime.FORMAT_DATE_DMMMY));
        findViewById(R.id.btn_search).setOnClickListener(this);
        getTransactionReport(calendar.getTime(), calendar2.getTime(), 0);
        this.h = new TransactionAdapter(this);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, 1, false);
        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.rv_transaction_report);
        recyclerView.setNestedScrollingEnabled(false);
        recyclerView.setLayoutManager(linearLayoutManager);
        recyclerView.setAdapter(this.h);
        this.h.setCallback(this);
        ((EditText) findViewById(R.id.report_recycler_search)).addTextChangedListener(this);
        SwipyRefreshLayout findViewById = findViewById(R.id.report_swipe_refresh);
        this.g = findViewById;
        findViewById.post(new Runnable() {
            @Override
            public final void run() {
                TransactionReportActivity.this.v(calendar, calendar2);
            }
        });
        this.g.setOnRefreshListener(new SwipyRefreshLayout.OnRefreshListener() {
            public final void onRefresh(SwipyRefreshLayoutDirection swipyRefreshLayoutDirection) {
                TransactionReportActivity.this.w(swipyRefreshLayoutDirection);
            }
        });
    }

    public void onDateSet(DatePickerDialog datePickerDialog, int i, int i2, int i3) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(1, i);
        calendar.set(5, i3);
        calendar.set(2, i2);
        String format = DateTime.format(calendar.getTime(), "yyyy-MM-dd");
        String format2 = DateTime.format(calendar.getTime(), DateTime.FORMAT_DATE_DMMMY);
        if (datePickerDialog.getTag().equals("date_start_picker")) {
            WidgetHelper.setProductIdTag(this.c, format, getString(R.string.label_date_start) + ":\n" + format2);
            return;
        }
        if (datePickerDialog.getTag().equals("date_end_picker")) {
            WidgetHelper.setProductIdTag(this.d, format, getString(R.string.label_date_end) + ":\n" + format2);
        }
    }

    @Override
    public void onRequestPermissionsResult(int i, @NonNull String[] strArr, @NonNull int[] iArr) {
        super.onRequestPermissionsResult(i, strArr, iArr);
        if (i == 434) {
            if (iArr.length <= 0 || iArr[0] != 0) {
                Affinity.info(this, false, getString(R.string.permission_denied));
            } else {
                prepareBuildStruk();
            }
        }
        if (i == 234) {
            if (iArr.length <= 0 || iArr[0] != 0) {
                Affinity.info(this, false, getString(R.string.permission_denied));
            } else {
                prepareBuildStruk();
            }
        }
    }

    @Override
    public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
    }

    public void prepareBuildStruk() {
        if (this.k.equalsIgnoreCase(KeretaMessage.INC_PRODUCT_CODE_TKAI)) {
            buildStrukTrain();
        } else if (this.k.toLowerCase().startsWith("tp")) {
            buildStrukPlane();
        } else {
            buildStrukTransaction();
        }
    }
}