Advertisement
Mujiburrohman

UpdateKomoditas

May 21st, 2019
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.97 KB | None | 0 0
  1. package com.integra.hargapangan.activity.update;
  2.  
  3. import android.app.AlertDialog;
  4. import android.app.DatePickerDialog;
  5. import android.app.Dialog;
  6. import android.content.Context;
  7. import android.content.DialogInterface;
  8. import android.content.Intent;
  9. import android.os.Bundle;
  10. import android.support.design.widget.FloatingActionButton;
  11. import android.support.design.widget.TextInputLayout;
  12. import android.support.v4.widget.SwipeRefreshLayout;
  13. import android.support.v7.app.AppCompatActivity;
  14. import android.support.v7.widget.LinearLayoutManager;
  15. import android.support.v7.widget.RecyclerView;
  16. import android.support.v7.widget.Toolbar;
  17. import android.text.TextUtils;
  18. import android.view.LayoutInflater;
  19. import android.view.View;
  20. import android.view.ViewGroup;
  21. import android.widget.AdapterView;
  22. import android.widget.ArrayAdapter;
  23. import android.widget.AutoCompleteTextView;
  24. import android.widget.DatePicker;
  25. import android.widget.EditText;
  26. import android.widget.Spinner;
  27. import android.widget.TextView;
  28.  
  29. import com.integra.hargapangan.DashboardActivity;
  30. import com.integra.hargapangan.R;
  31. import com.integra.hargapangan.adapter.AdapterPangan;
  32. import com.integra.hargapangan.adapter.UpdateAdapter;
  33. import com.integra.hargapangan.model.ResponseKomoditas;
  34. import com.integra.hargapangan.model.ResultItem;
  35. import com.integra.hargapangan.model.update.ResponseUpdatePangan;
  36. import com.integra.hargapangan.network.RetrofitConfig;
  37. import com.orhanobut.hawk.Hawk;
  38.  
  39. import java.text.SimpleDateFormat;
  40. import java.util.ArrayList;
  41. import java.util.Calendar;
  42. import java.util.GregorianCalendar;
  43. import java.util.List;
  44.  
  45. import butterknife.BindView;
  46. import butterknife.ButterKnife;
  47. import butterknife.OnClick;
  48. import es.dmoral.toasty.Toasty;
  49. import retrofit2.Call;
  50. import retrofit2.Callback;
  51. import retrofit2.Response;
  52.  
  53. public class UpdateKomoditas extends AppCompatActivity implements UpdateContruct.View {
  54.  
  55.     @BindView(R.id.toolbar2)
  56.     Toolbar toolbar2;
  57.     @BindView(R.id.rv_update)
  58.     RecyclerView rvUpdate;
  59.     @BindView(R.id.fabUpdate)
  60.     FloatingActionButton fabUpdate;
  61.     @BindView(R.id.swifUpdate)
  62.     SwipeRefreshLayout swifUpdate;
  63.     @BindView(R.id.tvUpdateTgl)
  64.     TextView dateView;
  65.     @BindView(R.id.spnUpdate)
  66.     Spinner spnUpdate;
  67.  
  68.  
  69.     private DatePickerDialog datePickerDialog;
  70.  
  71.     String tanggal;
  72.     private int year, month, day;
  73.  
  74.     SimpleDateFormat dateFormat;
  75.     static String[] bulan = new String[]{"Januari", "Februari", "Maret", "April", "Mei", "Juni"
  76.             , "Juli", "Agustus", "September", "Oktober", "November", "Desember"};
  77.     String formatTanggal;
  78.  
  79.     Context context;
  80.  
  81.     private int pasar = 0;
  82.  
  83.     private UpdateAdapter updateAdapter;
  84.  
  85.     private UpdatePresenter updatePresenter;
  86.  
  87.  
  88.     private ResultItem resultItem;
  89.  
  90.     @Override
  91.     protected void onCreate(Bundle savedInstanceState) {
  92.         super.onCreate(savedInstanceState);
  93.         setContentView(R.layout.content_update);
  94.         ButterKnife.bind(this);
  95.         setSupportActionBar(toolbar2);
  96.  
  97.         updatePresenter = new UpdatePresenter(this);
  98.  
  99.         swifUpdate.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
  100.             @Override
  101.             public void onRefresh() {
  102.                 swifUpdate.setRefreshing(false);
  103.             }
  104.         });
  105.  
  106.         context = getApplicationContext();
  107.         rvUpdate.setHasFixedSize(true);
  108.         rvUpdate.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
  109.  
  110.         dateFormat = new SimpleDateFormat("yyyy-MM-dd");
  111.         Calendar cal = Calendar.getInstance();
  112.         year = cal.get(Calendar.YEAR);
  113.         month = cal.get(Calendar.MONTH);
  114.         day = cal.get(Calendar.DAY_OF_MONTH);
  115.         tanggal = dateFormat.format(cal.getTime());
  116.  
  117.  
  118.         showDate();
  119.         getKomoditas();
  120.  
  121.         spinPasar();
  122.  
  123.     }
  124.  
  125.     private void spinPasar() {
  126.         List<String> adapter = new ArrayList<>();
  127.         adapter.add("Kab.Seleman");
  128.         adapter.add("Kesamben");
  129.         adapter.add("Lodoyo");
  130.         ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, adapter);
  131.         dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  132.         spnUpdate.setAdapter(dataAdapter);
  133.  
  134.         spnUpdate.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
  135.             @Override
  136.             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  137.                 String selected = (String) parent.getItemAtPosition(position);
  138.                 if (!TextUtils.isEmpty(selected)) {
  139.                     if (selected.equals("Kab.Seleman")) {
  140.                         pasar = 0;
  141.                         getKomoditas();
  142.                     } else if (selected.equals("Kesamben")) {
  143.                         pasar = 1;
  144.                         getKomoditas();
  145.  
  146.                     } else if (selected.equals("Lodoyo")) {
  147.                         pasar = 2;
  148.                         getKomoditas();
  149.                     }
  150.                 }
  151.             }
  152.  
  153.             @Override
  154.             public void onNothingSelected(AdapterView<?> parent) {
  155.  
  156.             }
  157.         });
  158.     }
  159.  
  160.     private void showDate() {
  161.         dateView.setText(formatTanggal);
  162.     }
  163.  
  164.     @SuppressWarnings("dea" + "precation")
  165.     public void setDate(View view) {
  166.         showDialog(999);
  167.         Toasty.warning(getApplicationContext(), "Silahkan Pilih", Toasty.LENGTH_SHORT).show();
  168.     }
  169.  
  170.     @Override
  171.     protected Dialog onCreateDialog(int id) {
  172.         if (id == 999) {
  173.             datePickerDialog = new DatePickerDialog(this, myDateListener, year, month, day);
  174.             datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis() + 1000);
  175.             Calendar minDate = Calendar.getInstance();
  176.  
  177.             minDate.set(Calendar.DAY_OF_MONTH, 01);
  178.             minDate.set(Calendar.MONTH, 10);
  179.             minDate.set(Calendar.YEAR, 2017);
  180.  
  181.             datePickerDialog.getDatePicker().setMinDate(minDate.getTimeInMillis());
  182.             datePickerDialog.show();
  183.         }
  184.         return null;
  185.     }
  186.  
  187.     private DatePickerDialog.OnDateSetListener myDateListener = new DatePickerDialog.OnDateSetListener() {
  188.         @Override
  189.         public void onDateSet(DatePicker view, int y, int m, int d) {
  190.             year = y;
  191.             month = m;
  192.             day = d;
  193.  
  194.             Calendar cal = new GregorianCalendar(y, m, d);
  195.             tanggal = dateFormat.format(cal.getTime());
  196.             formatTanggal = day + " " + bulan[cal.get(Calendar.MONTH)] + " " + year;
  197.  
  198.             showDate();
  199.             getKomoditas();
  200.         }
  201.     };
  202.  
  203.  
  204.  
  205.     @Override
  206.     public void onSuccess(String message) {
  207.         Toasty.success(this, "Update Berhasil!", Toasty.LENGTH_LONG).show();
  208.  
  209.     }
  210.  
  211.     @Override
  212.     public void onFailed(String message) {
  213.         Toasty.success(this, "Update Gagal!", Toasty.LENGTH_LONG).show();
  214.  
  215.     }
  216.  
  217.     @Override
  218.     public void getKomoditas() {
  219.         showProgress();
  220.         RetrofitConfig.getInitRetrofit().getKomoditas(pasar, tanggal).enqueue(new Callback<ResponseKomoditas>() {
  221.             @Override
  222.             public void onResponse(Call<ResponseKomoditas> call, Response<ResponseKomoditas> response) {
  223.                 if (response.body() != null){
  224.                     ResponseKomoditas responseKomoditas = response.body();
  225.                     if (responseKomoditas.getResult() != null){
  226.                         hideProgress();
  227.                         showList(responseKomoditas.getResult());
  228.                     }
  229.                 }else {
  230.                     hideProgress();
  231.                 }
  232.             }
  233.  
  234.             @Override
  235.             public void onFailure(Call<ResponseKomoditas> call, Throwable t) {
  236.                 hideProgress();
  237.             }
  238.         });
  239.     }
  240.  
  241.     public void showList(List itemKomoditas) {
  242.         rvUpdate.setVisibility(View.VISIBLE);
  243.         updateAdapter = new UpdateAdapter(this, itemKomoditas, updatePresenter);
  244.         rvUpdate.setAdapter(updateAdapter);
  245.  
  246.  
  247.     }
  248.  
  249.     @Override
  250.     public void showProgress() {
  251.         swifUpdate.setRefreshing(true);
  252.     }
  253.  
  254.     @Override
  255.     public void hideProgress() {
  256.         swifUpdate.setRefreshing(false);
  257.  
  258.     }
  259.  
  260.     @Override
  261.     public void showUpdateDialog() {
  262.         final AlertDialog.Builder builder = new AlertDialog.Builder(UpdateKomoditas.this);
  263. //        builder.setTitle("Masukan Harga");
  264.  
  265.         View viewInflated = LayoutInflater.from(this).inflate(R.layout.update_dialog, (ViewGroup) findViewById(android.R.id.content), false);
  266.         final EditText input = (EditText) viewInflated.findViewById(R.id.inputHarga);
  267.         input.setText(resultItem.getHrgSkr());
  268.         builder.setView(viewInflated);
  269.  
  270.         builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
  271.             @Override
  272.             public void onClick(DialogInterface dialog, int which) {
  273.                 dialog.dismiss();
  274.                 String harga = input.getText().toString();
  275.                 updatePresenter.updatePangan(0,0,0,0,tanggal, Integer.parseInt(harga));
  276.             }
  277.         });
  278.         builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
  279.             @Override
  280.             public void onClick(DialogInterface dialog, int which) {
  281.                 dialog.cancel();
  282.             }
  283.         });
  284.  
  285.         builder.show();
  286.     }
  287.  
  288.  
  289.     private static final int TIME_DELAY = 2000;
  290.     private static long back_pressed;
  291.  
  292.     @Override
  293.     public void onBackPressed() {
  294.         if (back_pressed + TIME_DELAY > System.currentTimeMillis()) {
  295.             super.onBackPressed();
  296.             Intent a = new Intent(this, DashboardActivity.class);
  297.             a.addCategory(Intent.CATEGORY_HOME);
  298.             a.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  299.             startActivity(a);
  300.         } else {
  301.             Toasty.warning(getApplicationContext(), "Tekan sekali lagi untuk kembali", Toasty.LENGTH_SHORT).show();
  302.         }
  303.         back_pressed = System.currentTimeMillis();
  304.     }
  305.  
  306.     @Override
  307.     protected void onResume() {
  308.         super.onResume();
  309.         getKomoditas();
  310.     }
  311.  
  312.     @Override
  313.     protected void onPause() {
  314.         super.onPause();
  315.     }
  316.  
  317.  
  318. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement