faresaa

Untitled

Feb 29th, 2020
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.18 KB | None | 0 0
  1. package com.qoolqas.inventaris_ontrucks.ui.pegawai;
  2.  
  3. import androidx.appcompat.app.AppCompatActivity;
  4. import androidx.core.content.FileProvider;
  5.  
  6. import android.annotation.SuppressLint;
  7. import android.app.ProgressDialog;
  8. import android.content.Context;
  9. import android.content.Intent;
  10. import android.content.pm.PackageManager;
  11. import android.database.Cursor;
  12. import android.graphics.BitmapFactory;
  13. import android.net.Uri;
  14. import android.opengl.Visibility;
  15. import android.os.Build;
  16. import android.os.Bundle;
  17. import android.os.Environment;
  18. import android.provider.MediaStore;
  19. import android.util.Base64;
  20. import android.util.Log;
  21. import android.view.View;
  22. import android.widget.AdapterView;
  23. import android.widget.ArrayAdapter;
  24. import android.widget.Button;
  25. import android.widget.ImageView;
  26. import android.widget.ProgressBar;
  27. import android.widget.Spinner;
  28. import android.widget.Toast;
  29.  
  30. import com.afollestad.materialdialogs.MaterialDialog;
  31. import com.bumptech.glide.Glide;
  32. import com.google.android.material.snackbar.Snackbar;
  33. import com.google.android.material.textfield.TextInputLayout;
  34. import com.qoolqas.inventaris_ontrucks.BuildConfig;
  35. import com.qoolqas.inventaris_ontrucks.R;
  36. import com.qoolqas.inventaris_ontrucks.SharedPrefManager;
  37. import com.qoolqas.inventaris_ontrucks.connection.Client;
  38. import com.qoolqas.inventaris_ontrucks.connection.Service;
  39.  
  40. import com.qoolqas.inventaris_ontrucks.pojo.divisi.get.DataGet;
  41. import com.qoolqas.inventaris_ontrucks.pojo.divisi.get.DivisiGetResponse;
  42. import com.qoolqas.inventaris_ontrucks.pojo.pegawai.create.PegawaiCreateResponse;
  43. import com.qoolqas.inventaris_ontrucks.pojo.pegawai.get.PegawaiDataItem;
  44. import java.io.File;
  45. import java.util.ArrayList;
  46. import java.util.HashMap;
  47. import java.util.List;
  48. import java.util.Locale;
  49. import java.util.Map;
  50. import java.util.Objects;
  51. import java.util.UUID;
  52. import java.util.logging.Logger;
  53.  
  54. import okhttp3.MediaType;
  55. import okhttp3.MultipartBody;
  56. import okhttp3.RequestBody;
  57. import retrofit2.Call;
  58. import retrofit2.Callback;
  59. import retrofit2.Response;
  60.  
  61. import static android.view.View.GONE;
  62. import static android.view.View.INVISIBLE;
  63. import static android.view.View.VISIBLE;
  64.  
  65. public class PegawaiCreate extends AppCompatActivity implements View.OnClickListener {
  66. TextInputLayout etNama;
  67. PegawaiDataItem dataGet;
  68. ProgressBar pb;
  69. Spinner spinner;
  70. ImageView imageView;
  71. Button pick, submit,submitG;
  72. SharedPrefManager sharedPrefManager;
  73. Context mContext;
  74. private static final int REQUEST_TAKE_PHOTO = 0;
  75. private static final int REQUEST_PICK_PHOTO = 2;
  76. private static final int CAMERA_PIC_REQUEST = 1;
  77. private Uri fileUri;
  78. int hold;
  79. ProgressDialog pDialog;
  80.  
  81.  
  82. @Override
  83. protected void onCreate(Bundle savedInstanceState) {
  84. super.onCreate(savedInstanceState);
  85. setContentView(R.layout.activity_add_pegawai);
  86. mContext = this;
  87. etNama = findViewById(R.id.div_pegawai);
  88. submit = findViewById(R.id.btn_submit);
  89. pb = findViewById(R.id.pb);
  90. spinner = findViewById(R.id.spinner);
  91. submitG = findViewById(R.id.galery);
  92. imageView = findViewById(R.id.previeww);
  93. pick = findViewById(R.id.getImage);
  94. dataGet = getIntent().getParcelableExtra("id");
  95. pick.setOnClickListener(this);
  96. submit.setOnClickListener(this);
  97. submitG.setOnClickListener(this);
  98. initDialog();
  99. init();
  100.  
  101. spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
  102. @Override
  103. public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  104. Spin spin = (Spin) parent.getSelectedItem();
  105. display(spin);
  106. }
  107.  
  108. @Override
  109. public void onNothingSelected(AdapterView<?> parent) {
  110.  
  111. }
  112. });
  113. }
  114.  
  115.  
  116.  
  117. private void init() {
  118. sharedPrefManager = new SharedPrefManager(this);
  119. String auth = sharedPrefManager.getSpToken();
  120. Service service = Client.getClient().create(Service.class);
  121. Call<DivisiGetResponse> eventCall = service.getDivision("Bearer " + auth);
  122. eventCall.enqueue(new Callback<DivisiGetResponse>() {
  123. private Response<DivisiGetResponse> response;
  124.  
  125. @Override
  126. public void onResponse(Call<DivisiGetResponse> call, Response<DivisiGetResponse> response) {
  127. this.response = response;
  128. if (response.isSuccessful()) {
  129. List<DataGet> items = response.body().getData();
  130.  
  131. List<Spin> listSpinner = new ArrayList<Spin>();
  132. for (int i = 0; i < items.size(); i++) {
  133. Spin list = new Spin(items.get(i).getDivisiId(), items.get(i).getName());
  134. listSpinner.add(list);
  135. Log.d("list", String.valueOf(list));
  136.  
  137. }
  138. ArrayAdapter<Spin> adapter = new ArrayAdapter<Spin>(mContext,
  139. android.R.layout.simple_spinner_item, listSpinner);
  140. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  141. spinner.setAdapter(adapter);
  142.  
  143. } else {
  144. Toast.makeText(mContext, "Gagal Mengambil Data", Toast.LENGTH_SHORT).show();
  145. }
  146. }
  147.  
  148. @Override
  149. public void onFailure(Call<DivisiGetResponse> call, Throwable t) {
  150. Log.e("failure", t.toString());
  151.  
  152. }
  153. });
  154.  
  155.  
  156. }
  157.  
  158. public void getSelected(View v) {
  159. Spin spin = (Spin) spinner.getSelectedItem();
  160. display(spin);
  161. }
  162.  
  163. private void display(Spin spin) {
  164. String name = spin.getName();
  165. Integer ID = spin.getId();
  166.  
  167. String userdata = " Nomor ID " + ID + " Divisi " + name;
  168. Snackbar snackbar = Snackbar
  169. .make(findViewById(R.id.layot), userdata, Snackbar.LENGTH_LONG);
  170.  
  171. snackbar.show();
  172. }
  173.  
  174. @Override
  175. public void onClick(final View v) {
  176. switch (v.getId()) {
  177. case R.id.getImage:
  178. new MaterialDialog.Builder(this)
  179. .title(R.string.uploadImages)
  180. .items(R.array.uploadImages)
  181. .itemsIds(R.array.itemIds)
  182. .itemsCallback(new MaterialDialog.ListCallback() {
  183. @Override
  184. public void onSelection(MaterialDialog dialog, View view, int which, CharSequence text) {
  185. switch (which) {
  186. case 0:
  187. Intent galleryIntent = new Intent(Intent.ACTION_PICK,
  188. android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
  189. startActivityForResult(galleryIntent, REQUEST_PICK_PHOTO);
  190. submitG.setVisibility(VISIBLE);
  191. submit.setVisibility(GONE);
  192. break;
  193. case 1:
  194. captureImage();
  195. submit.setVisibility(VISIBLE);
  196. submitG.setVisibility(GONE);
  197. break;
  198. case 2:
  199. imageView.setImageResource(R.drawable.ic_launcher_background);
  200. break;
  201. }
  202. }
  203. })
  204. .show();
  205. break;
  206. case R.id.btn_submit:
  207. uploadFile();
  208. break;
  209. case R.id.galery:
  210. uploadFilee();
  211. break;
  212. }
  213.  
  214. }
  215. @Override
  216. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  217. super.onActivityResult(requestCode, resultCode, data);
  218.  
  219. if (resultCode == RESULT_OK) {
  220. if (requestCode == REQUEST_TAKE_PHOTO || requestCode == REQUEST_PICK_PHOTO) {
  221. if (data != null) {
  222. // Get the Image from data
  223. Uri selectedImage = data.getData();
  224. String[] filePathColumn = {android.provider.MediaStore.Images.Media.DATA};
  225. Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
  226. assert cursor != null;
  227. cursor.moveToFirst();
  228. int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
  229. String mediaPath = cursor.getString(columnIndex);
  230. // Set the Image in ImageView for Previewing the Media
  231. imageView.setImageBitmap(BitmapFactory.decodeFile(mediaPath));
  232. cursor.close();
  233. fileUri = Uri.parse(mediaPath);
  234.  
  235. }
  236.  
  237.  
  238. } else if ( requestCode == CAMERA_PIC_REQUEST) {
  239. fileUri.toString();
  240. imageView.setImageURI(Uri.parse(fileUri.toString()));
  241.  
  242. }
  243.  
  244. } else if (resultCode != RESULT_CANCELED) {
  245. Toast.makeText(this, "Sorry, there was an error!", Toast.LENGTH_LONG).show();
  246. }
  247. }
  248.  
  249. protected void initDialog() {
  250. pDialog = new ProgressDialog(this);
  251. pDialog.setMessage(getString(R.string.msg_loading));
  252. pDialog.setCancelable(true);
  253. }
  254.  
  255. protected void showpDialog() {
  256.  
  257. if (!pDialog.isShowing()) pDialog.show();
  258. }
  259.  
  260. protected void hidepDialog() {
  261.  
  262. if (pDialog.isShowing()) pDialog.dismiss();
  263. }
  264.  
  265. private void captureImage() {
  266. Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  267. File photo;
  268. try {
  269. photo = createTemporaryFile(this);
  270. fileUri = FileProvider.getUriForFile(Objects.requireNonNull(this),
  271. BuildConfig.APPLICATION_ID + ".provider",
  272. Objects.requireNonNull(photo));
  273. intent.putExtra(MediaStore.EXTRA_OUTPUT,fileUri );
  274. startActivityForResult(intent, CAMERA_PIC_REQUEST);
  275.  
  276. } catch (Exception e) {
  277. e.printStackTrace();
  278. }
  279. }
  280. private static File createTemporaryFile(Context context) {
  281. try {
  282. File folder = new File(context.getExternalFilesDir(Environment.DIRECTORY_DCIM), "prof_pic");
  283. if (!folder.exists()) {
  284. folder.mkdirs();
  285. }
  286. return File.createTempFile("" + System.currentTimeMillis(), ".jpg", folder);
  287. } catch (Exception e) {
  288. e.printStackTrace();
  289. return null;
  290. }
  291. }
  292.  
  293. @Override
  294. protected void onSaveInstanceState(Bundle outState) {
  295. super.onSaveInstanceState(outState);
  296. outState.putParcelable("file_uri", fileUri);
  297. }
  298.  
  299. @Override
  300. protected void onRestoreInstanceState(Bundle savedInstanceState) {
  301. super.onRestoreInstanceState(savedInstanceState);
  302. fileUri = savedInstanceState.getParcelable("file_uri");
  303. }
  304.  
  305. private void uploadFile() {
  306. if (fileUri == null || fileUri.equals("")) {
  307. Toast.makeText(this, "please select an image ", Toast.LENGTH_LONG).show();
  308. return;
  309. } else {
  310. showpDialog();
  311. File file = new File(getExternalFilesDir(Environment.DIRECTORY_DCIM), "prof_pic/" + fileUri.getLastPathSegment());
  312. if ((file.length() / 1024) >= 1024) {
  313. Toast.makeText(this, "your file is big size", Toast.LENGTH_SHORT).show();
  314. hidepDialog();
  315. } else {
  316. Map<String, RequestBody> map = new HashMap<>();
  317. String nama = Objects.requireNonNull(etNama.getEditText()).getText().toString().trim();
  318. RequestBody requestname = RequestBody.create(nama, MediaType.parse("multipart/form-data"));
  319. RequestBody requestspin = RequestBody.create(spinner.getSelectedItem().toString(), MediaType.parse("multipart/form-data"));
  320. RequestBody requestBody = RequestBody.create(MediaType.parse(" "), file);
  321. map.put("file\"; filename=\"" + file + "\"", requestBody);
  322. sharedPrefManager = new SharedPrefManager(getApplicationContext());
  323. String token = sharedPrefManager.getSpToken();
  324. Service service = Client.getClient().create(Service.class);
  325. Call<PegawaiCreateResponse> create = service.createPegawai("Bearer " + token, requestname, requestspin, map);
  326. create.enqueue(new Callback<PegawaiCreateResponse>() {
  327. private Response<PegawaiCreateResponse> response;
  328.  
  329. @Override
  330. public void onResponse(Call<PegawaiCreateResponse> call, Response<PegawaiCreateResponse> response) {
  331.  
  332. this.response = response;
  333. if (response.isSuccessful()) {
  334. Toast.makeText(mContext, "Berhasil menambahkan anggota", Toast.LENGTH_SHORT).show();
  335. finish();
  336. } else {
  337. Toast.makeText(mContext, "Gagal menambahkan data matkul", Toast.LENGTH_SHORT).show();
  338. }
  339. }
  340.  
  341. @Override
  342. public void onFailure(Call<PegawaiCreateResponse> call, Throwable t) {
  343. Log.e("failure", t.toString());
  344. }
  345. });
  346.  
  347. }
  348. }
  349.  
  350. }
  351.  
  352. private void uploadFilee() {
  353. if (fileUri == null || fileUri.equals("")) {
  354. Toast.makeText(this, "please select an image ", Toast.LENGTH_LONG).show();
  355. return;
  356. } else {
  357. showpDialog();
  358. File files = new File(String.valueOf(fileUri));
  359. if ((files.length() / 1024) >= 1024) {
  360. Toast.makeText(this, "your file is big size", Toast.LENGTH_SHORT).show();
  361. hidepDialog();
  362. } else {
  363. Map<String, RequestBody> map = new HashMap<>();
  364. String nama = Objects.requireNonNull(etNama.getEditText()).getText().toString().trim();
  365. RequestBody requestname = RequestBody.create(nama, MediaType.parse("multipart/form-data"));
  366. RequestBody requestspin = RequestBody.create(spinner.getSelectedItem().toString(), MediaType.parse("multipart/form-data"));
  367. RequestBody requestBody = RequestBody.create(MediaType.parse(" "), files);
  368. map.put("file\"; filename=\"" + files + "\"", requestBody);
  369.  
  370. sharedPrefManager = new SharedPrefManager(getApplicationContext());
  371. String token = sharedPrefManager.getSpToken();
  372. Service service = Client.getClient().create(Service.class);
  373. Call<PegawaiCreateResponse> create = service.createPegawai("Bearer " + token, requestname, requestspin, map);
  374. create.enqueue(new Callback<PegawaiCreateResponse>() {
  375. private Response<PegawaiCreateResponse> response;
  376.  
  377. @Override
  378. public void onResponse(Call<PegawaiCreateResponse> call, Response<PegawaiCreateResponse> response) {
  379.  
  380. this.response = response;
  381. if (response.isSuccessful()) {
  382. Toast.makeText(mContext, "Berhasil menambahkan anggota", Toast.LENGTH_SHORT).show();
  383. finish();
  384. } else {
  385. Toast.makeText(mContext, "Gagal menambahkan data matkul", Toast.LENGTH_SHORT).show();
  386. }
  387. }
  388.  
  389. @Override
  390. public void onFailure(Call<PegawaiCreateResponse> call, Throwable t) {
  391. Log.e("failure", t.toString());
  392. }
  393. });
  394.  
  395. }
  396. }
  397. }
  398.  
  399. }
Add Comment
Please, Sign In to add comment