Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.fabric.apps.mobile.activity;
- import androidx.appcompat.app.AppCompatActivity;
- import androidx.appcompat.widget.Toolbar;
- import androidx.recyclerview.widget.LinearLayoutManager;
- import androidx.recyclerview.widget.RecyclerView;
- import butterknife.BindView;
- import butterknife.ButterKnife;
- import retrofit2.Call;
- import retrofit2.Callback;
- import retrofit2.Response;
- import android.content.Intent;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.ArrayAdapter;
- import android.widget.Button;
- import android.widget.ImageButton;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.RadioButton;
- import android.widget.Spinner;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.fabric.apps.mobile.R;
- import com.fabric.apps.mobile.adapter.CartListAdapter;
- import com.fabric.apps.mobile.adapter.KurirListAdapter;
- import com.fabric.apps.mobile.connection.ConfigRetrofit;
- import com.fabric.apps.mobile.contoller.CartController;
- import com.fabric.apps.mobile.model.cartModel.CartItem;
- import com.fabric.apps.mobile.model.cartModel.ResponseCart;
- import com.fabric.apps.mobile.model.cekkurirModel.CostItemKurirModel;
- import com.fabric.apps.mobile.model.cekkurirModel.CostsItemKurirModel;
- import com.fabric.apps.mobile.model.cekkurirModel.ResponseKurirModel;
- import com.fabric.apps.mobile.utils.SessionSharedPreferences;
- import com.github.ybq.android.spinkit.SpinKitView;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Objects;
- public class CheckoutActivity extends AppCompatActivity implements View.OnClickListener{
- @BindView(R.id.toolbar)
- Toolbar toolbar;
- @BindView(R.id.service_provider)
- LinearLayout serviceWrapper;
- @BindView(R.id.product_list)
- RecyclerView productList;
- @BindView(R.id.rb_jne)
- RadioButton rbJne;
- @BindView(R.id.rb_pos)
- RadioButton rbPos;
- @BindView(R.id.rb_tiki)
- RadioButton rbTiki;
- @BindView(R.id.total_product_price)
- TextView totalPrice;
- @BindView(R.id.service_price)
- TextView servicePrice;
- @BindView(R.id.total_payment)
- TextView totalPayment;
- @BindView(R.id.place_order)
- Button placeOrder;
- @BindView(R.id.product_image)
- ImageView productImage;
- @BindView(R.id.product_name)
- TextView productName;
- @BindView(R.id.product_price)
- TextView productPrice;
- @BindView(R.id.product_quantity)
- TextView productQuantity;
- @BindView(R.id.increase_product)
- ImageButton increaseProduct;
- @BindView(R.id.decrease_product)
- ImageButton decreaseProduct;
- @BindView(R.id.button_remove)
- ImageView removeButton;
- @BindView(R.id.progress_bar)
- SpinKitView progressBar;
- @BindView(R.id.sp_tipekurir)
- Spinner spkurir;
- private List<CostsItemKurirModel> costsItemKurirModels;
- private List<ResponseKurirModel> responkurir;
- private List<CostItemKurirModel> kuriritem;
- private KurirListAdapter kurirListAdapter;
- private CartController cartController = new CartController();
- private Intent intent;
- private CartListAdapter cartListAdapter;
- SessionSharedPreferences preferences;
- private List<CartItem> cartItems;
- private final int REQUEST_ADDRESS_CODE = 100;
- public static String kurir;
- public static int harga;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_checkout);
- ButterKnife.bind(this);
- intent = getIntent();
- String TAG = intent.getStringExtra("TAG");
- preferences = new SessionSharedPreferences(this);
- removeButton.setVisibility(View.GONE);
- increaseProduct.setVisibility(View.GONE);
- decreaseProduct.setVisibility(View.GONE);
- setSupportActionBar(toolbar);
- Objects.requireNonNull(getSupportActionBar()).setDisplayShowTitleEnabled(true);
- getSupportActionBar().setTitle("Atur Pesanan");
- toolbar.setNavigationIcon(R.drawable.ic_back);
- toolbar.setNavigationOnClickListener(v -> finish());
- productList.setLayoutManager(new LinearLayoutManager(this, RecyclerView.VERTICAL, false));
- initCheckoutFromProduct();
- }
- public void onRadioButtonClicked(View view){
- boolean cekradio = ((RadioButton) view).isChecked();
- switch (view.getId()){
- case R.id.rb_jne:
- if (cekradio) {
- kurir = "jne";
- initradio();
- }
- break;
- case R.id.rb_pos:
- if (cekradio)
- kurir = "pos";
- initradio();
- break;
- case R.id.rb_tiki:
- if (cekradio)
- kurir = "tiki";
- initradio();
- break;
- }
- }
- private void initradio(){
- int id = preferences.getID();
- ConfigRetrofit.provideApiService().getKurir(id,kurir).enqueue(new Callback<ResponseKurirModel>() {
- @Override
- public void onResponse(Call<ResponseKurirModel> call, Response<ResponseKurirModel> response) {
- costsItemKurirModels = response.body().getCosts();
- initDataSpinner();
- }
- @Override
- public void onFailure(Call<ResponseKurirModel> call, Throwable t) {
- }
- });
- }
- private void initDataSpinner() {
- kurirListAdapter = new KurirListAdapter(this,costsItemKurirModels);
- kurirListAdapter.notifyDataSetChanged();
- spkurir.setAdapter(kurirListAdapter);
- spkurir.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
- CostsItemKurirModel cur = (CostsItemKurirModel) parent.getItemAtPosition(position);
- Log.d("TAG", "isi cur" +parent);
- servicePrice.setText(cur.getCost().get(position).getValue().toString();
- }
- @Override
- public void onNothingSelected(AdapterView<?> parent) {
- }
- });
- }
- private void initCheckoutFromProduct() {
- int id = preferences.getID();
- String token = preferences.getAccessToken();
- String key = "oa00000000app";
- ConfigRetrofit.provideApiService().getCart(id,key,token).enqueue(new Callback<ResponseCart>() {
- @Override
- public void onResponse(Call<ResponseCart> call, Response<ResponseCart> response) {
- if (response.isSuccessful()) {
- cartItems = response.body().getCart();
- cartListAdapter = new CartListAdapter(CheckoutActivity.this, cartItems, totalPrice);
- productList.setAdapter(cartListAdapter);
- cartListAdapter.notifyDataSetChanged();
- removeButton.setVisibility(View.GONE);
- increaseProduct.setVisibility(View.GONE);
- decreaseProduct.setVisibility(View.GONE);
- } else {
- Toast.makeText(CheckoutActivity.this, "Gak Ada Hasil Bro", Toast.LENGTH_LONG).show();
- }
- }
- @Override
- public void onFailure(Call<ResponseCart> call, Throwable t) {
- Toast.makeText(CheckoutActivity.this, "Gagal bro", Toast.LENGTH_LONG).show();
- }
- });
- }
- @Override
- public void onClick(View v) {
- switch (v.getId()){
- case R.id.service_provider:
- break;
- default:
- break;
- }
- }
- }
- ===================================================
- This Spinner adapter
- ===================================================
- public class KurirListAdapter extends ArrayAdapter<CostsItemKurirModel>{
- public KurirListAdapter(Context context, List<CostsItemKurirModel> itemKurirModels){
- super(context,0,itemKurirModels);
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- return initView(position, convertView, parent);
- }
- @Override
- public View getDropDownView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
- return initView(position, convertView, parent);
- }
- private View initView(int position, View convertView, ViewGroup parent) {
- //todo 21 biarkan merah
- if (convertView == null) {
- convertView = LayoutInflater.from(getContext()).inflate(item_kurir, parent,false);
- }
- TextView kurir_tipe = convertView.findViewById(R.id.tv_kurir);
- //item sama dengan todo20
- CostsItemKurirModel current = getItem(position);
- if (current != null) {
- kurir_tipe.setText(current.getService());
- }
- return convertView;
- }
- }
- ===================================================
- This Apiservis (class interface)
- ===================================================
- @FormUrlEncoded
- @POST("cek-ongkir")
- Call<ResponseKurirModel> getKurir(
- @Field("CustomerId") int idcustomer,
- @Field("courier") String kurir);
- ===================================================
- This my model (generate from json to POJO)
- ===================================================
- ResponKurir.class
- ===================================================
- package com.fabric.apps.mobile.model.cekkurirModel;
- import java.util.List;
- import com.google.gson.annotations.Expose;
- import com.google.gson.annotations.SerializedName;
- public class ResponseKurirModel {
- @SerializedName("code")
- @Expose
- private String code;
- @SerializedName("name")
- @Expose
- private String name;
- @SerializedName("costs")
- @Expose
- private List<CostsItemKurirModel> costs = null;
- public String getCode() {
- return code;
- }
- public void setCode(String code) {
- this.code = code;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public List<CostsItemKurirModel> getCosts() {
- return costs;
- }
- public void setCosts(List<CostsItemKurirModel> costs) {
- this.costs = costs;
- }
- }
- Costs.class
- ===================================================
- package com.fabric.apps.mobile.model.cekkurirModel;
- import java.util.List;
- import com.google.gson.annotations.Expose;
- import com.google.gson.annotations.SerializedName;
- public class CostsItemKurirModel {
- @SerializedName("service")
- @Expose
- private String service;
- @SerializedName("description")
- @Expose
- private String description;
- @SerializedName("cost")
- @Expose
- private List<CostItemKurirModel> cost = null;
- public String getService() {
- return service;
- }
- public void setService(String service) {
- this.service = service;
- }
- public String getDescription() {
- return description;
- }
- public void setDescription(String description) {
- this.description = description;
- }
- public List<CostItemKurirModel> getCost() {
- return cost;
- }
- public void setCost(List<CostItemKurirModel> cost) {
- this.cost = cost;
- }
- }
- Cost.class
- ===================================================
- package com.fabric.apps.mobile.model.cekkurirModel;
- import com.google.gson.annotations.Expose;
- import com.google.gson.annotations.SerializedName;
- public class CostItemKurirModel {
- @SerializedName("value")
- @Expose
- private Integer value;
- @SerializedName("etd")
- @Expose
- private String etd;
- @SerializedName("note")
- @Expose
- private String note;
- public Integer getValue() {
- return value;
- }
- public void setValue(Integer value) {
- this.value = value;
- }
- public String getEtd() {
- return etd;
- }
- public void setEtd(String etd) {
- this.etd = etd;
- }
- public String getNote() {
- return note;
- }
- public void setNote(String note) {
- this.note = note;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement