正在查看: SpeedCash v6.5.1482 应用的 TrainActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: SpeedCash v6.5.1482 应用的 TrainActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.bm.sc.bebasbayar.ui.activity.ticket;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.recyclerview.widget.RecyclerView;
import com.bm.sc.auth.ui.BottomNavigationActivity;
import com.bm.sc.bebasbayar.R;
import com.bm.sc.bebasbayar.adapter.entity.KeretaTicketEntity;
import com.bm.sc.bebasbayar.adapter.entity.ProdukListEntity;
import com.bm.sc.bebasbayar.handler.FirebaseProcessor;
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.MessageParser;
import com.bm.sc.bebasbayar.helper.TicketingHelper;
import com.bm.sc.bebasbayar.helper.WidgetHelper;
import com.bm.sc.bebasbayar.iface.BBCallback;
import com.bm.sc.bebasbayar.iface.MessageProcess;
import com.bm.sc.bebasbayar.message.BaseMessage;
import com.bm.sc.bebasbayar.message.api.APIMessageWrapper;
import com.bm.sc.bebasbayar.setting.ApiConfig;
import com.bm.sc.bebasbayar.setting.session.AppSession;
import com.bm.sc.bebasbayar.setting.session.ConfigSession;
import com.bm.sc.bebasbayar.setting.session.DataSession;
import com.bm.sc.bebasbayar.ui.BaseActivity;
import com.bm.sc.bebasbayar.ui.activity.OtherHomeMenuActivity;
import com.bm.sc.bebasbayar.ui.activity.info.OpenWebViewActivity;
import com.bm.sc.bebasbayar.ui.activity.ticket.TrainActivity;
import com.bm.sc.bebasbayar.ui.fragment.dialog.OptionListFragment;
import com.bm.sc.bebasbayar.ui.fragment.ticket.AirportStationFragment;
import com.bm.sc.bebasbayar.ui.fragment.ticket.VerticalCalendarFragment;
import com.bm.sc.bebasbayar.ui.fragment.ticket.train.PassengerCountTrainFragment;
import com.bm.sc.util.android.OnSingleClickListener;
import com.bm.sc.util.common.Var;
import com.bm.sc.util.format.DateTime;
import com.bm.sc.util.format.Mapper;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.RequestOptions;
import com.google.android.material.textfield.TextInputEditText;
import com.orhanobut.dialogplus.DialogPlus;
import com.wdullaer.materialdatetimepicker.date.DatePickerDialog;
import eu.davidea.flexibleadapter.FlexibleAdapter;
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem;
import eu.davidea.flexibleadapter.items.IFilterable;
import eu.davidea.flexibleadapter.items.IFlexible;
import eu.davidea.viewholders.FlexibleViewHolder;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Objects;
public class TrainActivity extends BaseActivity implements DatePickerDialog.OnDateSetListener, OptionListFragment.OnOptionChoosenListener, TextWatcher, FlexibleAdapter.OnItemClickListener {
public static final String AIRPORT_MODE = "airport";
public static final String IS_RAILINK = "is:railink";
public static final String STATION_MODE = "station";
public HashMap<String, Object> A;
public View C;
public TextInputEditText g;
public TextInputEditText h;
public TextInputEditText i;
public TextInputEditText j;
public ImageView k;
public TextView l;
public View m;
public boolean n;
public String q;
public String r;
public String s;
public String t;
public String u;
public String v;
public AirportAdapter w;
public int x;
public DialogPlus y;
public Calendar z;
public final int c = 0;
public final ArrayList<IFlexible> d = new ArrayList<>();
public final int e = 0;
public final int f = 0;
public int o = 1;
public int p = 0;
public final OnSingleClickListener B = new a();
public static class AirportAdapter extends FlexibleAdapter<IFlexible> {
public AirportAdapter(@Nullable ArrayList<IFlexible> arrayList, @Nullable Object obj) {
super(arrayList, obj);
}
public void onPostFilter() {
super.onPostFilter();
if (hasFilter()) {
return;
}
setHeadersShown(false);
}
}
public static class AirportEntity extends AbstractFlexibleItem<AirportViewHolder> implements IFilterable<String> {
public final String a;
public final String b;
public final String c;
public final String d;
public final int e;
public AirportEntity(String str, String str2, String str3, String str4, int i) {
this.a = str;
this.b = str2;
this.c = str3;
this.d = str4;
this.e = i;
}
public void bindViewHolder(FlexibleAdapter flexibleAdapter, RecyclerView.ViewHolder viewHolder, int i, List list) {
bindViewHolder((FlexibleAdapter<IFlexible>) flexibleAdapter, (AirportViewHolder) viewHolder, i, (List<Object>) list);
}
public RecyclerView.ViewHolder createViewHolder(View view, FlexibleAdapter flexibleAdapter) {
return m539createViewHolder(view, (FlexibleAdapter<IFlexible>) flexibleAdapter);
}
public boolean equals(Object obj) {
return (obj instanceof AirportEntity) && this.a.equals(((AirportEntity) obj).a);
}
public int getLayoutRes() {
return R.layout.component_list_station;
}
public int hashCode() {
return this.a.hashCode();
}
public void bindViewHolder(FlexibleAdapter<IFlexible> flexibleAdapter, AirportViewHolder airportViewHolder, int i, List<Object> list) {
airportViewHolder.clp_name.setText(this.b + " - " + this.a);
if (!this.b.isEmpty()) {
airportViewHolder.clp_sub_name.setVisibility(0);
airportViewHolder.clp_sub_name.setText(this.c);
}
airportViewHolder.clp_drawable.setImageResource(this.e);
}
public AirportViewHolder m539createViewHolder(View view, FlexibleAdapter<IFlexible> flexibleAdapter) {
return new AirportViewHolder(view, flexibleAdapter);
}
public boolean filter(String str) {
String lowerCase = str.toLowerCase();
return this.d.toLowerCase().contains(lowerCase) || this.a.equalsIgnoreCase(lowerCase) || this.c.toLowerCase().contains(lowerCase) || this.b.toLowerCase().contains(lowerCase);
}
}
public static class AirportViewHolder extends FlexibleViewHolder {
public final View clp_bg;
public final ImageView clp_cursor;
public final ImageView clp_drawable;
public final TextView clp_name;
public final TextView clp_price;
public final TextView clp_sub_name;
public AirportViewHolder(View view, FlexibleAdapter flexibleAdapter) {
super(view, flexibleAdapter);
this.clp_bg = view.findViewById(R.id.clp_bg);
this.clp_drawable = (ImageView) view.findViewById(R.id.clp_drawable);
this.clp_cursor = (ImageView) view.findViewById(R.id.clp_cursor);
this.clp_name = (TextView) view.findViewById(R.id.clp_name);
this.clp_sub_name = (TextView) view.findViewById(R.id.clp_sub_name);
this.clp_price = (TextView) view.findViewById(R.id.clp_price);
}
}
public class a extends OnSingleClickListener {
public a() {
}
public void b(Calendar calendar) {
TrainActivity.this.z = calendar;
TrainActivity.this.C(calendar);
}
@Override
public void onSingleClick(View view) {
?? r0;
TrainActivity.this.getApplicationContext();
if (view.getId() == 2131364091 || view.getId() == 2131364018) {
boolean z = view.getId() == 2131364091;
?? newInstance = AirportStationFragment.newInstance();
Object[] objArr = new Object[4];
objArr[0] = z ? "Pilih kota/stasiun keberangkatan" : "Pilih kota/stasiun tujuan";
objArr[1] = "station";
objArr[2] = Boolean.valueOf(z);
objArr[3] = Integer.valueOf(z ? 54345 : 43234);
newInstance.setArguments(newInstance.setupDefaultBundle(objArr));
newInstance.show(TrainActivity.this.getSupportFragmentManager(), "route_option");
return;
}
if (view.getId() != 2131364151) {
if (view.getId() == 2131364109) {
TrainActivity.this.G();
return;
}
return;
}
if (TrainActivity.this.z != null) {
Calendar calendar = TrainActivity.this.z;
VerticalCalendarFragment newInstance2 = VerticalCalendarFragment.newInstance();
newInstance2.setCalendar(calendar);
r0 = newInstance2;
} else {
TrainActivity.this.z = Calendar.getInstance();
r0 = VerticalCalendarFragment.newInstance();
}
r0.setHeaderLabel("Pilih Tanggal Keberangkatan");
r0.setOnDialogClosingListener(new VerticalCalendarFragment.OnDateSelectedListener() {
@Override
public final void onDialogClosing(Calendar calendar2) {
TrainActivity.a.this.b(calendar2);
}
});
r0.show(TrainActivity.this.getSupportFragmentManager(), "date_option");
}
}
public class b implements MessageProcess {
public final BBCallback a;
public b(BBCallback bBCallback) {
this.a = bBCallback;
}
@Override
public void afterProcess(BaseMessage baseMessage) {
APIMessageWrapper aPIMessageWrapper = new APIMessageWrapper(baseMessage);
if (aPIMessageWrapper.isOK()) {
HashMap<String, Object> hashMap = aPIMessageWrapper.getData().get(0);
Object obj = hashMap.get("Stasiun Populer");
Objects.requireNonNull(obj);
ArrayList arrayList = Var.toArrayList(obj);
((BaseActivity) TrainActivity.this).dataSession.store(DataSession.PROPERTY_LIST_STATION, Var.toString(Mapper.mapToJSON(hashMap), ""));
((BaseActivity) TrainActivity.this).dataSession.store(DataSession.PROPERTY_LIST_STATION_FAVORIT, Var.toString(Mapper.collectionToJSON(arrayList), ""));
BBCallback bBCallback = this.a;
if (bBCallback != null) {
bBCallback.do_callback(0, null);
}
}
}
@Override
public void backgroundProcess(long j, long j2, boolean z) {
}
@Override
public void preProcess() {
((BaseActivity) TrainActivity.this).dataSession.remove(DataSession.PROPERTY_LIST_STATION);
((BaseActivity) TrainActivity.this).dataSession.remove(DataSession.PROPERTY_LIST_STATION_FAVORIT);
}
}
public void H(int i, int i2) {
this.o = i;
this.p = i2;
this.A.clear();
this.A.put(KeretaTicketEntity.ADULT, Integer.valueOf(this.o));
this.A.put("baby", Integer.valueOf(this.p));
String str = this.o + " Dewasa; " + this.p + " Bayi";
this.q = str;
this.j.setText(str);
}
public void I(View view) {
N(this.s, this.t);
}
public void J(int i, String str) {
if (Var.toString(str, "null").equalsIgnoreCase("null") && str.isEmpty()) {
E();
return;
}
LinkedHashMap<String, Object> jsonToMap = Mapper.jsonToMap(str);
this.s = Var.toString(jsonToMap.get("url_webview"), "");
this.t = Var.toString(jsonToMap.get("title_webview"), "");
this.u = Var.toString(jsonToMap.get("url_img"), "");
this.v = Var.toString(jsonToMap.get("expired_booked_session_in_minutes"), "");
if (this.s.isEmpty() || this.t.isEmpty() || this.u.isEmpty()) {
E();
} else {
findViewById(R.id.cv_web_info).setVisibility(0);
this.l.setText(this.t);
Glide.with(this).load(this.u).apply(new RequestOptions().diskCacheStrategy(DiskCacheStrategy.NONE).skipMemoryCache(true).placeholder(2131100792).error(R.color.grey___)).into(this.k);
}
if (!this.s.isEmpty()) {
View.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public final void onClick(View view) {
TrainActivity.this.I(view);
}
};
this.l.setOnClickListener(onClickListener);
this.k.setOnClickListener(onClickListener);
}
if (this.dataSession.retrieve(DataSession.PROPERTY_TRAIN_BOOK_DATA).isEmpty()) {
return;
}
long j = Var.toLong(this.dataSession.retrieve(DataSession.KEY_TRAIN_BOOK_DATA_TIMESTAMP), 0L);
long currentTimeMillis = System.currentTimeMillis() - j;
long j2 = Var.toInt(this.v, 30) * 60000;
if (j <= 0 || currentTimeMillis > j2) {
return;
}
this.C.setVisibility(0);
this.C.setOnClickListener(this);
}
public void K(Bundle bundle, int i, Object obj) {
F(bundle);
}
public void L(View view) {
if (getIntent().getExtras() != null ? Var.toBoolean(Boolean.valueOf(getIntent().getExtras().getBoolean(AppSession.IS_FROM_NEW_HOME)), false) : false) {
Affinity.purge(this, OtherHomeMenuActivity.class);
} else {
Affinity.purge(this, BottomNavigationActivity.class);
}
}
public final void C(Calendar calendar) {
String format = DateTime.format(calendar.getTime(), DateTime.FORMAT_DATE_EDMY_LONG_DAY_SHORT_MONTH);
this.r = format;
this.i.setText(format);
WidgetHelper.setProductIdTag(this.m, DateTime.format(calendar.getTime(), "yyyyMMdd"), "");
}
public final void D(BBCallback bBCallback) {
MessageComposer messageComposer = new MessageComposer(2, "ticketing/get_rute_train");
messageComposer.setIs_encrypted(false);
messageComposer.setShowProgressRegular(false);
messageComposer.setIs_cacheable(true);
messageComposer.setMessageProcess(new b(bBCallback));
new MessageSender(this, messageComposer).execute();
}
public final void E() {
findViewById(R.id.cv_web_info).setVisibility(8);
}
public final void F(Bundle bundle) {
String str;
String str2;
StringBuilder sb = new StringBuilder();
sb.append("initUI: list station : ");
sb.append(this.dataSession.retrieve(DataSession.PROPERTY_LIST_STATION));
HashMap<String, String> parseKeretaRoute = MessageParser.parseKeretaRoute(this.dataSession.retrieve(DataSession.PROPERTY_LIST_STATION));
this.g = findViewById(R.id.input_origin);
this.h = findViewById(R.id.input_destination);
this.i = findViewById(R.id.input_tgl_berangkat);
this.j = findViewById(R.id.input_penumpang);
this.k = (ImageView) findViewById(R.id.ic_img_web);
this.l = (TextView) findViewById(R.id.tv_title_web);
String str3 = "Dewasa " + this.o + ", Bayi " + this.p;
this.q = str3;
this.j.setText(str3);
this.i.setOnClickListener(this.B);
this.j.setOnClickListener(this.B);
if (bundle != null) {
this.n = bundle.getBoolean("is:railink", false);
} else {
Bundle extras = getIntent().getExtras();
this.n = extras != null && extras.getBoolean("is:railink", false);
}
ActionBar supportActionBar = getSupportActionBar();
if (this.n) {
this.g.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
this.h.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
if (supportActionBar != null) {
ActionBar supportActionBar2 = getSupportActionBar();
Objects.requireNonNull(supportActionBar2);
supportActionBar2.setTitle(R.string.app_railink);
}
str = "MDN";
str2 = "KNM";
} else {
this.g.setOnClickListener(this.B);
this.h.setOnClickListener(this.B);
if (supportActionBar != null) {
ActionBar supportActionBar3 = getSupportActionBar();
Objects.requireNonNull(supportActionBar3);
supportActionBar3.setTitle(R.string.tiket_kereta_api);
}
String[] split = this.configSession.retrieveMap(ConfigSession.PROPERTY_PREFERENCE, ConfigSession.KEY_PREFERENCE_KERETA).split("::");
str = Var.getIgnoreBound(split, 0, "SGU");
str2 = Var.getIgnoreBound(split, 1, "GMR");
String var = Var.toString(this.configSession.retrieve(ConfigSession.ORIDES_TRAIN), "");
if (!var.isEmpty()) {
String[] split2 = var.split("::");
str = Var.getIgnoreBound(split2, 0, "SGU");
str2 = Var.getIgnoreBound(split2, 1, "GMR");
}
}
if (!str.isEmpty()) {
WidgetHelper.setProductIdTag(this.g, str, TicketingHelper.toTitleCase(parseKeretaRoute.get(str)));
}
if (!str2.isEmpty()) {
WidgetHelper.setProductIdTag(this.h, str2, TicketingHelper.toTitleCase(parseKeretaRoute.get(str2)));
}
View findViewById = findViewById(R.id.input_date);
this.m = findViewById;
findViewById.setOnClickListener(this);
((TextView) findViewById(R.id.btn_search)).setText(this.n ? "Cari Tiket Railink" : "Cari Tiket Kereta");
findViewById(R.id.btn_search).setOnClickListener(this);
findViewById(R.id.train_route_swap).setOnClickListener(this);
findViewById(R.id.cv_eticket).setOnClickListener(this);
this.C = findViewById(R.id.cv_booking);
M();
Calendar calendar = Calendar.getInstance();
DatePickerDialog.newInstance(this, calendar.get(1), calendar.get(2), calendar.get(5));
C(calendar);
}
public final void G() {
HashMap<String, Object> hashMap = new HashMap<>();
this.A = hashMap;
hashMap.put(KeretaTicketEntity.ADULT, Integer.valueOf(this.o));
this.A.put("baby", Integer.valueOf(this.p));
?? newInstance = PassengerCountTrainFragment.newInstance();
newInstance.setPaxData(this.A);
newInstance.setOnSaveListener(new PassengerCountTrainFragment.OnSaveListener() {
@Override
public final void onSaveValue(int i, int i2) {
TrainActivity.this.H(i, i2);
}
});
newInstance.show(getSupportFragmentManager(), "route_option");
}
public final void M() {
E();
ApiConfig.fetchConfig(this, R.xml.sc_info_ticket_train, "sc_info_ticket_train", new BBCallback() {
@Override
public final void do_callback(int i, Object obj) {
TrainActivity.this.J(i, (String) obj);
}
});
}
public final void N(String str, String str2) {
Bundle bundle = new Bundle();
bundle.putString("url", str);
bundle.putString(FirebaseProcessor.KEY_TITLE, str2);
Intent intent = new Intent((Context) this, (Class<?>) OpenWebViewActivity.class);
intent.putExtras(bundle);
startActivity(intent);
}
@Override
public void afterTextChanged(Editable editable) {
this.w.setFilter(editable.toString());
this.w.filterItems();
}
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
@Override
public String getClassSimpleName() {
return ConfigSession.KEY_PREFERENCE_KERETA;
}
@Override
public int getLayoutResource() {
return R.layout.activity_train;
}
@Override
public String getWikiNameSpace() {
return "panduan_transaksi:tiket:kereta";
}
@Override
public boolean isEligibleForFavorit() {
return true;
}
public boolean isRailink() {
return this.n;
}
@Override
public void onBackPressed() {
if (getIntent().getExtras() != null ? Var.toBoolean(Boolean.valueOf(getIntent().getExtras().getBoolean(AppSession.IS_FROM_NEW_HOME)), false) : false) {
Affinity.purge(this, OtherHomeMenuActivity.class);
}
DialogPlus dialogPlus = this.y;
if (dialogPlus == null || !dialogPlus.isShowing()) {
super.onBackPressed();
} else {
this.y.dismiss();
}
}
@Override
public void onClick(View view) {
if (view.getId() == 2131366398) {
String productIdTag = WidgetHelper.getProductIdTag(this.g);
Editable text = this.g.getText();
WidgetHelper.setProductIdTag(this.g, WidgetHelper.getProductIdTag(this.h), this.h.getText());
WidgetHelper.setProductIdTag(this.h, productIdTag, text);
return;
}
if (view.getId() != 2131362413) {
if (view.getId() == 2131363156) {
Affinity.launch(this, TrainListTicketActivity.class);
return;
} else if (view.getId() == 2131363147) {
Affinity.purge(this, TrainBookingActivity.class);
return;
} else {
super.onClick(view);
return;
}
}
String productIdTag2 = WidgetHelper.getProductIdTag(this.g);
String productIdTag3 = WidgetHelper.getProductIdTag(this.h);
this.configSession.store(ConfigSession.ORIDES_TRAIN, productIdTag2 + "::" + productIdTag3);
String productIdTag4 = WidgetHelper.getProductIdTag(this.m);
int i = Var.toInt(Integer.valueOf(this.o), 0);
int i2 = Var.toInt(Integer.valueOf(this.p), 0);
int i3 = i2 > i ? (i2 - i) + i : i;
int i4 = i + i2;
if (productIdTag2.isEmpty()) {
Affinity.info(this, false, getString(R.string.train_err_empty_departure));
return;
}
if (productIdTag3.isEmpty()) {
Affinity.info(this, false, getString(R.string.train_err_empty_arrival));
return;
}
if (productIdTag4.isEmpty()) {
Affinity.info(this, false, getString(R.string.train_err_empty_date));
return;
}
if (productIdTag2.equals(productIdTag3)) {
Affinity.info(this, false, getString(R.string.train_err_same_station));
return;
}
if (i3 > 4) {
Affinity.info(this, false, getString(R.string.train_err_passenger_limit_exceed, 4));
return;
}
Bundle bundle = new Bundle();
bundle.putInt(String.valueOf(18), i);
bundle.putInt(String.valueOf(19), 0);
bundle.putInt(String.valueOf(20), i2);
bundle.putInt(String.valueOf(85), i4);
bundle.putString(String.valueOf(10), productIdTag2);
bundle.putString(String.valueOf(11), productIdTag3);
bundle.putString(String.valueOf(12), productIdTag4);
bundle.putString(String.valueOf(97), this.r);
bundle.putBoolean("is:railink", this.n);
Affinity.launch(this, TrainScheduleActivity.class, bundle);
}
@Override
public void onCreate(final Bundle bundle) {
super.onCreate(bundle);
if (this.dataSession.retrieve(DataSession.PROPERTY_LIST_STATION).isEmpty()) {
D(new BBCallback() {
@Override
public final void do_callback(int i, Object obj) {
TrainActivity.this.K(bundle, i, obj);
}
});
} else {
F(bundle);
}
Bundle extras = getIntent().getExtras();
if (extras != null) {
String string = extras.getString("tittle");
if (getToolbar() != null && string != null) {
ActionBar supportActionBar = getSupportActionBar();
Objects.requireNonNull(supportActionBar);
supportActionBar.setTitle(string);
}
}
if (getToolbar() != null) {
getToolbar().setNavigationOnClickListener(new View.OnClickListener() {
@Override
public final void onClick(View view) {
TrainActivity.this.L(view);
}
});
}
}
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);
C(calendar);
}
public boolean onItemClick(View view, int i) {
AirportEntity item = this.w.getItem(i);
if (!(item instanceof AirportEntity)) {
return false;
}
AirportEntity airportEntity = item;
onOptionChoosen(null, this.x, new ProdukListEntity(airportEntity.a, airportEntity.c + " (" + airportEntity.a + ")"));
this.y.dismiss();
return false;
}
@Override
public void onOptionChoosen(OptionListFragment optionListFragment, int i, ProdukListEntity produkListEntity) {
if (i == 54345 || i == 43234) {
boolean z = i == 54345;
WidgetHelper.setProductIdTag(z ? this.g : this.h, produkListEntity.getCode(), produkListEntity.getName());
WidgetHelper.setProductIdDrawable((ImageView) findViewById(z ? R.id.ffl_origin : R.id.ffl_destination), produkListEntity);
}
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
}