Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 43.84 KB | None | 0 0
  1. package com.carpics2p0.capture20.activity.core;
  2.  
  3. import static com.carpics2p0.capture20.activity.core.HomeActivity.EMPTY_STRING;
  4. import static com.carpics2p0.capture20.activity.core.HomeActivity.IMAGES_RESULT_CODE;
  5. import static com.carpics2p0.capture20.activity.core.HomeActivity.SCANNER_RESULT_CODE;
  6. import static com.carpics2p0.capture20.activity.core.HomeActivity.VIN;
  7.  
  8. import android.Manifest;
  9. import android.content.ContentValues;
  10. import android.content.DialogInterface;
  11. import android.content.SharedPreferences;
  12. import android.content.pm.PackageManager;
  13. import android.content.res.ColorStateList;
  14. import android.database.Cursor;
  15. import android.databinding.DataBindingUtil;
  16. import android.os.Parcelable;
  17. import android.support.annotation.NonNull;
  18. import android.support.v4.app.ActivityCompat;
  19. import android.support.v4.content.ContextCompat;
  20. import android.text.Editable;
  21. import android.text.TextWatcher;
  22. import android.view.View.OnClickListener;
  23. import android.view.inputmethod.InputMethodManager;
  24. import android.widget.AdapterView;
  25. import android.widget.AdapterView.OnItemSelectedListener;
  26. import android.widget.Button;
  27. import android.widget.EditText;
  28. import android.widget.ProgressBar;
  29. import android.widget.Toast;
  30. import com.carpics2p0.capture20.R;
  31.  
  32. import android.content.Context;
  33. import android.content.Intent;
  34. import android.support.v7.app.ActionBar;
  35. import android.support.v7.app.AlertDialog;
  36. import android.support.v7.app.AppCompatActivity;
  37. import android.os.Bundle;
  38. import android.view.LayoutInflater;
  39. import android.view.View;
  40. import android.widget.ArrayAdapter;
  41. import android.widget.ImageView;
  42. import android.widget.Spinner;
  43. import android.widget.TextView;
  44.  
  45. import com.carpics2p0.capture20.activity.apicalls.ApiCall;
  46. import com.carpics2p0.capture20.activity.apicalls.ApiCallback;
  47. import com.carpics2p0.capture20.activity.apiobjects.ApiResponse;
  48. import com.carpics2p0.capture20.activity.apiobjects.Data;
  49. import com.carpics2p0.capture20.activity.apiobjects.Dealer;
  50. import com.carpics2p0.capture20.activity.apiobjects.FilterStencil;
  51. import com.carpics2p0.capture20.activity.apiobjects.Stencil;
  52. import com.carpics2p0.capture20.activity.data.DbController;
  53. import com.carpics2p0.capture20.activity.data.OrdersContract.OrderEntry;
  54. import com.carpics2p0.capture20.activity.data.StencilContract.StencilEntry;
  55. import com.carpics2p0.capture20.activity.orderpackage.Order;
  56. import com.carpics2p0.capture20.activity.orderpackage.OrderFactory;
  57. import com.carpics2p0.capture20.activity.orderpackage.OrderImages;
  58. import com.carpics2p0.capture20.activity.tips.WeatherSelectionActivity;
  59. import com.carpics2p0.capture20.activity.utilities.CustomArray;
  60. import com.carpics2p0.capture20.activity.vinscanning.ScannerActivity;
  61. import com.carpics2p0.capture20.databinding.ActivityNewVehicleBinding;
  62. import com.microsoft.appcenter.AppCenter;
  63. import com.microsoft.appcenter.analytics.Analytics;
  64. import com.microsoft.appcenter.crashes.Crashes;
  65. import java.io.File;
  66. import java.lang.ref.WeakReference;
  67. import java.util.ArrayList;
  68. import java.util.Arrays;
  69. import java.util.Calendar;
  70. import java.util.Collections;
  71. import java.util.HashMap;
  72. import java.util.List;
  73. import java.util.Map;
  74. import java.util.regex.Pattern;
  75.  
  76. public class NewVehicleActivity extends AppCompatActivity implements View.OnClickListener {
  77.  
  78. private static final String TAG = NewVehicleActivity.class.getSimpleName();
  79.  
  80. private static final String PACKAGE_NAME = "com.carpics2p0.capture20.activity";
  81.  
  82. private static final int REQUEST_CODE = 100;
  83.  
  84. private static SharedPreferences sharedpreferences;
  85.  
  86. private DbController dbController;
  87.  
  88. private TextView saveBtn;
  89.  
  90. private android.support.v7.app.ActionBar customActionBar;
  91.  
  92. private List<Integer> allFields;
  93.  
  94. private List<Integer> allSpinners;
  95.  
  96. public static int imagesAdded;
  97.  
  98. public static String username;
  99.  
  100. private String dealerId;
  101.  
  102. private int orderId;
  103.  
  104. private boolean orderCreated;
  105.  
  106. private ActivityNewVehicleBinding binding;
  107.  
  108. private String token;
  109.  
  110. private ArrayAdapter<String> interiorColorAdapter;
  111.  
  112. private ArrayAdapter<String> conditionAdapter;
  113.  
  114. private ArrayAdapter<String> yearAdapter;
  115.  
  116. private ArrayAdapter<String> exteriorColorAdapter;
  117.  
  118. private ArrayAdapter<String> dealerSelectionAdapter;
  119.  
  120. private ApiResponse apiResponse;
  121.  
  122. private String uniqueOrderApiId;
  123.  
  124. private List<String> interiorColors;
  125.  
  126. private String note;
  127.  
  128. private boolean editMode;
  129.  
  130. private boolean priorEditingAttachment;
  131.  
  132. private Data editData;
  133.  
  134. private boolean alreadyUploaded;
  135.  
  136. private ProgressBar saveBtnProgress;
  137.  
  138. private boolean deleteNote;
  139.  
  140. private List<Dealer> dealers;
  141.  
  142. private int selectedDealer;
  143.  
  144. private List<String> dealersStencils;
  145.  
  146. private List<Stencil> dealerStencilsObjects;
  147.  
  148. private boolean photosButtonClicked;
  149.  
  150. private boolean scanVinClicked;
  151.  
  152. private WeakReference<Context> applicationContext;
  153.  
  154. @Override
  155. protected void onCreate(Bundle savedInstanceState) {
  156. super.onCreate(savedInstanceState);
  157. orderCreated = false;
  158. setContentView(R.layout.activity_new_vehicle);
  159. AppCenter.start(getApplication(), "9a517ec0-b5b9-4306-ab40-4e6e01b94fb1",
  160. Analytics.class, Crashes.class);
  161. applicationContext = new WeakReference<Context>(this);
  162. binding = DataBindingUtil.setContentView(this, R.layout.activity_new_vehicle);
  163. dealers = this.getIntent().getParcelableArrayListExtra("dealers");
  164. selectedDealer = 0;
  165. dealersStencils = new ArrayList<>();
  166. checkIfEditing();
  167. attachViewsAndListeners();
  168. dataSetUp();
  169. inflateCustomActionBar();
  170. attachToken();
  171. vinScanner();
  172. newOrderListener();
  173. setVinListener();
  174. orderId = -1;
  175. checkEditing();
  176. attachListenerToSave();
  177. getStencilsReady();
  178. checkIfUploaded();
  179. AppCenter.start(getApplication(), "9a517ec0-b5b9-4306-ab40-4e6e01b94fb1",
  180. Analytics.class, Crashes.class);
  181. }
  182.  
  183. public void checkIfEditing() {
  184. if (getIntent().getBooleanExtra(OrderDetail.EDIT_ORDER, false)) {
  185. editMode = true;
  186. }
  187. }
  188.  
  189. public void getStencilsReady() {
  190. dealerStencilsObjects = new ArrayList<>();
  191. dealersStencils = new ArrayList<>();
  192. Cursor stencilsCursor = dbController.getStencils();
  193. Map<String, FilterStencil> filterStencilHashMap = new HashMap<>();
  194. while (stencilsCursor.moveToNext()) {
  195. FilterStencil filterStencil = new FilterStencil();
  196. String stencilId = String
  197. .valueOf(stencilsCursor
  198. .getString(stencilsCursor.getColumnIndex(StencilEntry.COLUMN_STENCIL_ID)));
  199. String templateImage = String
  200. .valueOf(stencilsCursor
  201. .getString(
  202. stencilsCursor.getColumnIndex(StencilEntry.COLUMN_TEMPLATE_IMAGE_FILE_LOCATION)));
  203. String exampleImage = String
  204. .valueOf(stencilsCursor
  205. .getString(
  206. stencilsCursor.getColumnIndex(StencilEntry.COLUMN_EXAMPLE_IMAGE_FILE_LOCATION)));
  207. filterStencil.setStencilId(stencilId);
  208. filterStencil.setTemplateImage(templateImage);
  209. filterStencil.setExampleImage(exampleImage);
  210. filterStencilHashMap.put(stencilId, filterStencil);
  211. }
  212. List<String> stencils = dealers.get(selectedDealer).getStencilIds();
  213. for (String dealerStencilId : stencils) {
  214. if (filterStencilHashMap.containsKey(dealerStencilId)) {
  215. FilterStencil filterStencil = filterStencilHashMap.get(dealerStencilId);
  216. if (filterStencil.getTemplateImage() != null && filterStencil.getExampleImage() != null) {
  217. dealersStencils.add(filterStencil.getStencilId());
  218. }
  219. }
  220. }
  221. if (dealersStencils.size() > 0) {
  222. binding.photosButton.setVisibility(View.VISIBLE);
  223. } else {
  224. binding.photosButton.setVisibility(View.GONE);
  225. }
  226. dealerStencilsObjects = dbController.getStencilsObjects(dealersStencils);
  227. }
  228.  
  229. private void checkIfUploaded() {
  230. if (editMode) {
  231. if (OrderFactory.getOrderInstance(String.valueOf(orderId)).getOrderUploadStatus()
  232. .equals("UPLOADED")) {
  233. hide(binding.form);
  234. show(binding.alreadyUploaded);
  235. alreadyUploaded = true;
  236. binding.photosButton.setVisibility(View.GONE);
  237. binding.separator.setVisibility(View.GONE);
  238. }
  239. }
  240. }
  241.  
  242. private void checkEditing() {
  243. if (getIntent().getBooleanExtra(OrderDetail.EDIT_ORDER, false)) {
  244. binding.deleteVehicle.setVisibility(View.VISIBLE);
  245. orderId = getIntent().getIntExtra(HomeActivity.ORDER_ID, -1);
  246. imagesAdded = OrderFactory.getOrderInstance(String.valueOf(orderId))
  247. .getImagesAdded();
  248. editData = new Data(
  249. OrderFactory.getOrderInstance(String.valueOf(orderId)).getDealership(),
  250. OrderFactory.getOrderInstance(String.valueOf(orderId)).getVinNumber(),
  251. OrderFactory.getOrderInstance(String.valueOf(orderId)).getStock(),
  252. OrderFactory.getOrderInstance(String.valueOf(orderId)).getVehicleYear(),
  253. OrderFactory.getOrderInstance(String.valueOf(orderId)).getMake(),
  254. OrderFactory.getOrderInstance(String.valueOf(orderId)).getModel(),
  255. OrderFactory.getOrderInstance(String.valueOf(orderId)).getVehicleCondition(),
  256. OrderFactory.getOrderInstance(String.valueOf(orderId)).getExteriorColor(),
  257. OrderFactory.getOrderInstance(String.valueOf(orderId)).getInteriorColor()
  258. );
  259. note = OrderFactory.getOrderInstance(String.valueOf(orderId)).getNote();
  260. if (note != null) {
  261. binding.noteText.setText(R.string.edit_note);
  262. }
  263. disableSaveBtn();
  264. editMode = true;
  265. priorEditingAttachment = true;
  266. attachFields(editData);
  267. } else {
  268. imagesAdded = 0;
  269. }
  270. }
  271.  
  272. public void enableSaveBtn() {
  273. saveBtn.setEnabled(true);
  274. saveBtn.setTextColor(getResources().getColor(R.color.colorWhite));
  275. }
  276.  
  277. public void disableSaveBtn() {
  278. saveBtn.setEnabled(false);
  279. saveBtn.setTextColor(getResources().getColor(R.color.colorDarkGrey));
  280. }
  281.  
  282. private void attachListenerToSave() {
  283. TextWatcher textWatcher = new TextWatcher() {
  284. public void afterTextChanged(Editable editable) {
  285. }
  286.  
  287. public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) {
  288. }
  289.  
  290. public void onTextChanged(CharSequence charSequence, int start, int before, int count) {
  291. if (priorEditingAttachment) {
  292. return;
  293. }
  294. if (editMode) {
  295. enableSaveBtn();
  296. } else {
  297. if ((checkFields() && checkSpinners())) {
  298. enableSaveBtn();
  299. } else {
  300. disableSaveBtn();
  301. }
  302. }
  303. }
  304. };
  305.  
  306. OnItemSelectedListener itemSelectedListener = new OnItemSelectedListener() {
  307. @Override
  308. public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  309. if (position != 0) {
  310. ((TextView) view).setTextColor(getResources().getColor(R.color.colorWhite));
  311. if ((checkFields() && checkSpinners())) {
  312. enableSaveBtn();
  313. } else {
  314. disableSaveBtn();
  315. }
  316. }
  317. }
  318.  
  319. @Override
  320. public void onNothingSelected(AdapterView<?> parent) {
  321.  
  322. }
  323. };
  324.  
  325. OnItemSelectedListener dealerItemSelected = new OnItemSelectedListener() {
  326. @Override
  327. public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
  328. selectedDealer = position;
  329. getStencilsReady();
  330. }
  331.  
  332. @Override
  333. public void onNothingSelected(AdapterView<?> parent) {
  334.  
  335. }
  336. };
  337.  
  338. binding.vin.addTextChangedListener(textWatcher);
  339. binding.stock.addTextChangedListener(textWatcher);
  340. binding.model.addTextChangedListener(textWatcher);
  341. binding.make.addTextChangedListener(textWatcher);
  342. if (priorEditingAttachment) {
  343. int dealerSelectionAdapterPosition = dealerSelectionAdapter
  344. .getPosition(editData.getDealerId());
  345. binding.dealerShipSpinner.setSelection(dealerSelectionAdapterPosition, false);
  346. int conditionAdapterPosition = conditionAdapter.getPosition(editData.getCondition());
  347. binding.conditionSpinner.setSelection(conditionAdapterPosition, false);
  348. if(binding.conditionSpinner.getSelectedView()!=null){
  349. ((TextView) binding.conditionSpinner.getSelectedView())
  350. .setTextColor(getResources().getColor(R.color.colorWhite));
  351. }
  352.  
  353.  
  354. int exColorAdapterPosition = exteriorColorAdapter.getPosition(editData.getExteriorColor());
  355. binding.exColorSpinner.setSelection(exColorAdapterPosition, false);
  356. if(binding.exColorSpinner.getSelectedView()!=null) {
  357. ((TextView) binding.exColorSpinner.getSelectedView())
  358. .setTextColor(getResources().getColor(R.color.colorWhite));
  359. }
  360.  
  361. int interiorColorAdapterPosition = interiorColorAdapter
  362. .getPosition(editData.getInteriorColor());
  363. binding.intColorSpinner.setSelection(interiorColorAdapterPosition, false);
  364. if(binding.intColorSpinner.getSelectedView()!=null) {
  365. ((TextView) binding.intColorSpinner.getSelectedView())
  366. .setTextColor(getResources().getColor(R.color.colorWhite));
  367. }
  368. int yearAdapterPosition = yearAdapter
  369. .getPosition(editData.getYear());
  370. binding.yearSpinner.setSelection(yearAdapterPosition, false);
  371. ((TextView) binding.yearSpinner.getSelectedView())
  372. .setTextColor(getResources().getColor(R.color.colorWhite));
  373. } else {
  374. binding.conditionSpinner.setSelection(0, false);
  375. binding.exColorSpinner.setSelection(0, false);
  376. binding.intColorSpinner.setSelection(0, false);
  377. binding.yearSpinner.setSelection(0, false);
  378. }
  379.  
  380. if (!editMode) {
  381. binding.dealerShipSpinner.setOnItemSelectedListener(dealerItemSelected);
  382. } else {
  383. binding.dealerShipSpinner.setEnabled(false);
  384. }
  385. binding.conditionSpinner.setOnItemSelectedListener(itemSelectedListener);
  386. binding.exColorSpinner.setOnItemSelectedListener(itemSelectedListener);
  387. binding.intColorSpinner.setOnItemSelectedListener(itemSelectedListener);
  388. binding.yearSpinner.setOnItemSelectedListener(itemSelectedListener);
  389. priorEditingAttachment = false;
  390. }
  391.  
  392. public ApiCall newOrderListener() {
  393. return new ApiCall(applicationContext.get(), new ApiCallback<ApiResponse>() {
  394. @Override
  395. public void onCallFinished(ApiResponse apiResponse) {
  396. if (apiResponse != null) {
  397. uniqueOrderApiId = apiResponse.getData().getId();
  398. addOrdersFactory(orderId);
  399. if (editMode) {
  400. dbController.updateOrderId(orderId, username, getContentOfFields());
  401. Intent intent = new Intent();
  402. setResult(RESULT_OK, intent);
  403. finish();
  404. } else {
  405. if (orderCreated) {
  406. ContentValues cv = new ContentValues();
  407. cv.put(OrderEntry.COLUMN_UNIQUE_API_ID, apiResponse.getData().getId());
  408. dbController.updateOrderId(orderId, username, cv);
  409. } else {
  410. addOrderToDatabase();
  411. }
  412. hide(saveBtnProgress);
  413. show(saveBtn);
  414. finish();
  415. }
  416. }
  417. }
  418. });
  419. }
  420.  
  421. public ApiCall getVinDecodeCall() {
  422. return new ApiCall(applicationContext.get(), new ApiCallback<ApiResponse>() {
  423. @Override
  424. public void onCallFinished(ApiResponse result) {
  425. binding.apiCallProgressBar.setVisibility(View.INVISIBLE);
  426. binding.smallScan.setVisibility(View.VISIBLE);
  427. binding.tvSearchCaption.setVisibility(View.VISIBLE);
  428. if (result == null) {
  429. showInvalidVinError();
  430. } else {
  431. apiResponse = result;
  432. attachApiInfo();
  433. }
  434. }
  435. });
  436. }
  437.  
  438. public void getDealersCall() {
  439. new ApiCall(applicationContext.get(), new ApiCallback<ApiResponse>() {
  440. @Override
  441. public void onCallFinished(ApiResponse result) {
  442. if (result != null) {
  443. dealers = result.getDealers();
  444. }
  445. }
  446. }).getDealers(token);
  447. }
  448.  
  449. public void setVinListener() {
  450. binding.vin.setOnFocusChangeListener(new View.OnFocusChangeListener() {
  451. @Override
  452. public void onFocusChange(View v, boolean hasFocus) {
  453. if (!hasFocus) {
  454. if (binding.vin.getText().length() > 0) {
  455. checkVinWithApi(binding.vin.getText().toString());
  456. }
  457. }
  458. }
  459. });
  460. }
  461.  
  462. public void vinScanner() {
  463. binding.scanVin.setOnClickListener(new OnClickListener() {
  464. @Override
  465. public void onClick(View view) {
  466. scanVinClicked = true;
  467. if (ContextCompat.checkSelfPermission(applicationContext.get(), Manifest.permission.CAMERA)
  468. == PackageManager.PERMISSION_DENIED) {
  469. ActivityCompat
  470. .requestPermissions(NewVehicleActivity.this, new String[]{Manifest.permission.CAMERA},
  471. REQUEST_CODE);
  472. } else {
  473. Intent scanVin = new Intent(applicationContext.get(), ScannerActivity.class);
  474. startActivityForResult(scanVin, SCANNER_RESULT_CODE);
  475. }
  476. }
  477. });
  478. }
  479.  
  480. private void dataSetUp() {
  481. sharedpreferences = getSharedPreferences(PACKAGE_NAME, Context.MODE_PRIVATE);
  482. username = sharedpreferences.getString("username", "");
  483. dealerId = sharedpreferences.getString("dealerId", "");
  484. dbController = new DbController(applicationContext.get(), username);
  485. }
  486.  
  487. @Override
  488. public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
  489. @NonNull int[] grantResults) {
  490. super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  491. if (requestCode == REQUEST_CODE) {
  492.  
  493. if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  494. if (scanVinClicked) {
  495. Intent scanVin = new Intent(applicationContext.get(), ScannerActivity.class);
  496. startActivityForResult(scanVin, SCANNER_RESULT_CODE);
  497. }
  498. } else {
  499. Toast.makeText(applicationContext.get(), "camera permission denied", Toast.LENGTH_LONG)
  500. .show();
  501. }
  502. }
  503. }
  504.  
  505. @Override
  506. protected void onResume() {
  507. super.onResume();
  508. if (OrderFactory.getOrderInstance(String.valueOf(orderId)).getImagesAdded() > imagesAdded) {
  509. imagesAdded = OrderFactory.getOrderInstance(String.valueOf(orderId)).getImagesAdded();
  510. enableSaveBtn();
  511. }
  512. getDealersCall();
  513. if (imagesAdded > 0) {
  514. binding.vehiclePhotosText.setText(imagesAdded + "/25");
  515. } else {
  516. binding.vehiclePhotosText.setText("Start Shooting");
  517. }
  518. }
  519.  
  520. @Override
  521. public void onBackPressed() {
  522. showDiscardChangedAlert();
  523. }
  524.  
  525. public void showDiscardChangedAlert() {
  526. DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
  527. @Override
  528. public void onClick(DialogInterface dialog, int which) {
  529. switch (which) {
  530. case DialogInterface.BUTTON_POSITIVE:
  531. if (!editMode) {
  532. deleteOrder(orderId);
  533. }
  534. finish();
  535. break;
  536. case DialogInterface.BUTTON_NEGATIVE:
  537. dialog.cancel();
  538. break;
  539. }
  540. }
  541. };
  542. AlertDialog.Builder builder;
  543. builder = new AlertDialog.Builder(applicationContext.get(), R.style.MyAlertDialogStyle);
  544. builder.setTitle("Discard changes").setMessage("are you sure?")
  545. .setPositiveButton(R.string.yes, dialogClickListener)
  546. .setNegativeButton(R.string.no, dialogClickListener).show();
  547. }
  548.  
  549. public void deleteOrder(int orderId) {
  550. if (orderCreated) {
  551. deleteLocalOrder(orderId);
  552. }
  553. }
  554.  
  555. public void attachViewsAndListeners() {
  556. binding.noteButton.setOnClickListener(this);
  557. binding.photosButton.setOnClickListener(this);
  558. binding.deleteVehicle.setOnClickListener(this);
  559. allFields = Arrays.asList(R.id.vin, R.id.stock, R.id.make, R.id.model);
  560. allSpinners = Arrays.asList(R.id.yearSpinner);
  561. setSpinners();
  562. }
  563.  
  564. public void setSpinners() {
  565. List<String> years = new ArrayList<>();
  566. List<String> dealerStrings = new ArrayList<>();
  567. List<String> conditions = Arrays.asList(getResources()
  568. .getStringArray(R.array.new_vehicle_conditions));
  569. List<String> exteriorColors = Arrays.asList(getResources()
  570. .getStringArray(R.array.new_vehicle_exterior_colors));
  571. interiorColors = Arrays.asList(getResources()
  572. .getStringArray(R.array.new_vehicle_interior_colors));
  573. int thisYear = Calendar.getInstance().get(Calendar.YEAR) + 1;
  574. for (int i = 1900; i <= thisYear; i++) {
  575. years.add(Integer.toString(i));
  576. }
  577. years.add(getResources().getString(R.string.select));
  578. Collections.sort(years, Collections.reverseOrder());
  579. for (Dealer dealer : dealers) {
  580. dealerStrings.add(dealer.getDealerName());
  581. }
  582. dealerSelectionAdapter = new ArrayAdapter<>(NewVehicleActivity.this,
  583. R.layout.spinner_item_dealer, dealerStrings);
  584. interiorColorAdapter = new CustomArray(this,
  585. R.layout.spinner_item, interiorColors);
  586. conditionAdapter = new CustomArray(this,
  587. R.layout.spinner_item, conditions);
  588. yearAdapter = new CustomArray(this,
  589. R.layout.spinner_item, years);
  590. exteriorColorAdapter = new CustomArray(this,
  591. R.layout.spinner_item, exteriorColors);
  592. binding.dealerShipSpinner.setAdapter(dealerSelectionAdapter);
  593. binding.intColorSpinner.setAdapter(interiorColorAdapter);
  594. binding.exColorSpinner.setAdapter(exteriorColorAdapter);
  595. binding.yearSpinner.setAdapter(yearAdapter);
  596. binding.conditionSpinner.setAdapter(conditionAdapter);
  597. }
  598.  
  599. private void inflateCustomActionBar() {
  600. customActionBar = getSupportActionBar();
  601. customActionBar.setDisplayShowTitleEnabled(false);
  602. customActionBar.setDisplayUseLogoEnabled(false);
  603. customActionBar.setDisplayHomeAsUpEnabled(false);
  604. customActionBar.setDisplayShowCustomEnabled(true);
  605. customActionBar.setDisplayShowHomeEnabled(false);
  606. ActionBar.LayoutParams layoutParams = new ActionBar
  607. .LayoutParams(ActionBar.LayoutParams.MATCH_PARENT,
  608. ActionBar.LayoutParams.WRAP_CONTENT);
  609. final View customView = LayoutInflater.from(applicationContext.get())
  610. .inflate(R.layout.actionbar_newvehicle, null);
  611. customActionBar.setCustomView(customView, layoutParams);
  612. ImageView closeBtn = customView.findViewById(R.id.close_btn);
  613. closeBtn.setOnClickListener(new View.OnClickListener() {
  614. @Override
  615. public void onClick(View v) {
  616. showDiscardChangedAlert();
  617. }
  618. });
  619. saveBtnProgress = customView.findViewById(R.id.save_btn_progress);
  620. saveBtn = customView.findViewById(R.id.save);
  621. saveBtn.setOnClickListener(new OnClickListener() {
  622. @Override
  623. public void onClick(View v) {
  624. if (editMode && !alreadyUploaded && !deleteNote) {
  625. updateOrder();
  626. } else if (alreadyUploaded && !deleteNote) {
  627. updateNoteOrder();
  628. } else if (deleteNote) {
  629. deleteNoteFromApi();
  630. } else {
  631. addOrderToApi();
  632. }
  633. }
  634. });
  635. }
  636.  
  637. public void deleteNoteFromApi() {
  638. show(saveBtnProgress);
  639. hide(saveBtn);
  640. new ApiCall(applicationContext.get(), new ApiCallback<ApiResponse>() {
  641. @Override
  642. public void onCallFinished(ApiResponse result) {
  643. ContentValues contentValues = new ContentValues();
  644. contentValues.putNull(OrderEntry.COLUMN_NOTE);
  645. hide(saveBtnProgress);
  646. show(saveBtn);
  647. OrderFactory.getOrderInstance(String.valueOf(orderId)).setNote(null);
  648. dbController.updateOrderId(orderId, username, contentValues);
  649. finish();
  650. }
  651. }).deleteNote(OrderFactory.getOrderInstance(String.valueOf(orderId)).getUniqueOrderId(), token);
  652. }
  653.  
  654. public void updateOrder() {
  655. Data data = new Data();
  656. data.setFlag(note);
  657. show(saveBtnProgress);
  658. hide(saveBtn);
  659. new ApiCall(applicationContext.get(), new ApiCallback<ApiResponse>() {
  660. @Override
  661. public void onCallFinished(ApiResponse result) {
  662. hide(saveBtnProgress);
  663. show(saveBtn);
  664. addOrdersFactory(orderId);
  665. dbController.updateOrderId(orderId, username, getContentOfFields());
  666. finish();
  667. }
  668. }).updateOrder(OrderFactory.getOrderInstance(String.valueOf(orderId)).getUniqueOrderId(), token,
  669. data);
  670. }
  671.  
  672. public void updateNoteOrder() {
  673. Data data = new Data(note);
  674. show(saveBtnProgress);
  675. hide(saveBtn);
  676. new ApiCall(applicationContext.get(), new ApiCallback<ApiResponse>() {
  677. @Override
  678. public void onCallFinished(ApiResponse result) {
  679. hide(saveBtnProgress);
  680. show(saveBtn);
  681. ContentValues contentValues = new ContentValues();
  682. contentValues.put(OrderEntry.COLUMN_NOTE, note);
  683. OrderFactory.getOrderInstance(String.valueOf(orderId)).setNote(note);
  684. dbController.updateOrderId(orderId, username, contentValues);
  685. finish();
  686. }
  687. }).updateOrder(OrderFactory.getOrderInstance(String.valueOf(orderId)).getUniqueOrderId(), token,
  688. data);
  689. }
  690.  
  691. public void attachToken() {
  692. token = sharedpreferences.getString(HomeActivity.TOKEN, "");
  693. }
  694.  
  695. public void addOrderToApi() {
  696. Data data = setupData();
  697. show(saveBtnProgress);
  698. hide(saveBtn);
  699. newOrderListener().createOrder(token, data);
  700. }
  701.  
  702. private Data setupData() {
  703. String condition = "Select".equals(binding.conditionSpinner.getSelectedItem()
  704. .toString())? "":binding.conditionSpinner.getSelectedItem()
  705. .toString();
  706. String exteriorColor = "Select".equals(binding.exColorSpinner.getSelectedItem()
  707. .toString())? "":binding.conditionSpinner.getSelectedItem()
  708. .toString();
  709. String interiorColor = "Select".equals(binding.intColorSpinner.getSelectedItem()
  710. .toString())? "":binding.conditionSpinner.getSelectedItem()
  711. .toString();
  712. Data data = new Data(dealers.get(selectedDealer).getDealerId(),
  713. binding.vin.getText().toString(),
  714. binding.stock.getText().toString(), binding.yearSpinner.getSelectedItem()
  715. .toString(), binding.make.getText().toString(), binding.model.getText()
  716. .toString(),condition,exteriorColor,interiorColor);
  717. data.setUsingAndroid("YES");
  718. return data;
  719. }
  720.  
  721. public long addOrderToDatabase() {
  722. return dbController.addOrder(getContentOfFields());
  723. }
  724.  
  725. public ContentValues getContentOfFields() {
  726. ContentValues cv = new ContentValues();
  727.  
  728. String condition = "Select".equals(binding.conditionSpinner.getSelectedItem()
  729. .toString())? "":binding.conditionSpinner.getSelectedItem()
  730. .toString();
  731. String exteriorColor = "Select".equals(binding.exColorSpinner.getSelectedItem()
  732. .toString())? "":binding.conditionSpinner.getSelectedItem()
  733. .toString();
  734. String interiorColor = "Select".equals(binding.intColorSpinner.getSelectedItem()
  735. .toString())? "":binding.conditionSpinner.getSelectedItem()
  736. .toString();
  737. cv.put(OrderEntry.COLUMN_USERNAME, username);
  738. cv.put(OrderEntry.COLUMN_NOTE, note);
  739. cv.put(OrderEntry.COLUMN_STATUS, "NOT_UPLOADED");
  740. cv.put(OrderEntry.COLUMN_VINCODE, binding.vin.getText().toString());
  741. cv.put(OrderEntry.COLUMN_STOCK, binding.stock.getText().toString());
  742. cv.put(OrderEntry.COLUMN_YEAR, binding.yearSpinner.getSelectedItem().toString());
  743. cv.put(OrderEntry.COLUMN_MAKE, binding.make.getText().toString());
  744. cv.put(OrderEntry.COLUMN_MODEL, binding.model.getText().toString());
  745. cv.put(OrderEntry.COLUMN_CONDITION, condition);
  746. cv.put(OrderEntry.COLUMN_EXTERIOR, exteriorColor);
  747. cv.put(OrderEntry.COLUMN_INTERIORCOLOR, interiorColor);
  748. cv.put(OrderEntry.COLUMN_DEALERSHIP, dealers.get(selectedDealer).getDealerId());
  749. if (!editMode) {
  750. cv.put(OrderEntry.COLUMN_TIMESTAMP, System.currentTimeMillis() / 1000L);
  751. }
  752. if (uniqueOrderApiId != null) {
  753. cv.put(OrderEntry.COLUMN_UNIQUE_API_ID, uniqueOrderApiId);
  754. }
  755. return cv;
  756. }
  757.  
  758. public void addOrdersFactory(int orderId) {
  759. String stringOrderId = String.valueOf(orderId);
  760. String condition = "Select".equals(binding.conditionSpinner.getSelectedItem()
  761. .toString())? "":binding.conditionSpinner.getSelectedItem()
  762. .toString();
  763. String exteriorColor = "Select".equals(binding.exColorSpinner.getSelectedItem()
  764. .toString())? "":binding.conditionSpinner.getSelectedItem()
  765. .toString();
  766. String interiorColor = "Select".equals(binding.intColorSpinner.getSelectedItem()
  767. .toString())? "":binding.conditionSpinner.getSelectedItem()
  768. .toString();
  769. OrderFactory.getOrderInstance(stringOrderId).setOrderId(orderId);
  770. OrderFactory.getOrderInstance(stringOrderId).setImagesAdded(imagesAdded);
  771. OrderFactory.getOrderInstance(stringOrderId).setVinNumber(binding.vin.getText().toString());
  772. OrderFactory.getOrderInstance(stringOrderId).setStock(binding.stock.getText().toString());
  773. OrderFactory.getOrderInstance(stringOrderId)
  774. .setVehicleYear(binding.yearSpinner.getSelectedItem()
  775. .toString());
  776. OrderFactory.getOrderInstance(stringOrderId).setMake(binding.make.getText().toString());
  777. OrderFactory.getOrderInstance(stringOrderId).setModel(binding.model.getText().toString());
  778. OrderFactory.getOrderInstance(stringOrderId).setVehicleCondition(condition);
  779. OrderFactory.getOrderInstance(stringOrderId).setNote(note);
  780. OrderFactory.getOrderInstance(stringOrderId).setExteriorColor(exteriorColor);
  781. OrderFactory.getOrderInstance(stringOrderId).setInteriorColor(interiorColor);
  782. OrderFactory.getOrderInstance(stringOrderId)
  783. .setDealership(dealers.get(selectedDealer).getDealerName());
  784. OrderFactory.getOrderInstance(stringOrderId).setOrderUploadStatus("NOT_UPLOADED");
  785. if (uniqueOrderApiId != null) {
  786. OrderFactory.getOrderInstance(stringOrderId).setUniqueOrderId(uniqueOrderApiId);
  787. }
  788. }
  789.  
  790. public boolean checkFields() {
  791. boolean foundEmtyField = true;
  792. for (int i = 0; i < allFields.size(); i++) {
  793. EditText field = findViewById(allFields.get(i));
  794. if ("".equals(field.getText().toString())) {
  795. if (photosButtonClicked) {
  796. ColorStateList colorStateList = ColorStateList
  797. .valueOf(getResources().getColor(R.color.colorLightRed));
  798. field.setBackgroundTintList(colorStateList);
  799. }
  800. foundEmtyField = false;
  801. } else {
  802. if (photosButtonClicked) {
  803. ColorStateList colorStateList = ColorStateList
  804. .valueOf(getResources().getColor(R.color.underline_color));
  805. field.setBackgroundTintList(colorStateList);
  806. }
  807. }
  808. }
  809. return foundEmtyField;
  810. }
  811.  
  812. private boolean checkSpecialCharactors(String word) {
  813. boolean foudnMatch = false;
  814. Pattern regex = Pattern.compile("[$&+,:;=\\\\\\\\?@#|/'<>.^*()%!]");
  815. if (regex.matcher(word).find()) {
  816. foudnMatch = true;
  817. }
  818. return foudnMatch;
  819. }
  820.  
  821. public boolean checkSpinners() {
  822. boolean noSpinnerSelected = true;
  823. for (int i = 0; i < allSpinners.size(); i++) {
  824. Spinner field = findViewById(allSpinners.get(i));
  825. if (getResources().getString(R.string.select).equals(field.getSelectedItem())) {
  826. noSpinnerSelected = false;
  827. if (photosButtonClicked) {
  828. ColorStateList colorStateList = ColorStateList
  829. .valueOf(getResources().getColor(R.color.colorLightRed));
  830. field.setBackgroundTintList(colorStateList);
  831. }
  832. } else {
  833. if (photosButtonClicked) {
  834. ColorStateList colorStateList = ColorStateList
  835. .valueOf(getResources().getColor(R.color.underline_color));
  836. field.setBackgroundTintList(colorStateList);
  837. }
  838. }
  839. }
  840. return noSpinnerSelected;
  841. }
  842.  
  843. public void showAlert() {
  844. new AlertDialog.Builder(applicationContext.get(), R.style.MyAlertDialogStyle)
  845. .setIcon(android.R.drawable.ic_dialog_alert)
  846. .setMessage(R.string.please_fill)
  847. .setPositiveButton("OK", null)
  848. .show();
  849. }
  850.  
  851. public boolean specialCharacters() {
  852. boolean foundError = false;
  853. for (int i = 0; i < allFields.size(); i++) {
  854. EditText field = findViewById(allFields.get(i));
  855. String fieldWord = field.getText().toString();
  856. if (checkSpecialCharactors(fieldWord)) {
  857. ColorStateList colorStateList = ColorStateList
  858. .valueOf(getResources().getColor(R.color.colorLightRed));
  859. field.setBackgroundTintList(colorStateList);
  860. foundError = true;
  861. } else {
  862. ColorStateList colorStateList = ColorStateList
  863. .valueOf(getResources().getColor(R.color.underline_color));
  864. field.setBackgroundTintList(colorStateList);
  865. }
  866. }
  867. return foundError;
  868. }
  869.  
  870. private void showAlertOfSpecialCharacters() {
  871. android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(
  872. applicationContext.get(),
  873. R.style.MyAlertDialogStyle);
  874. builder.setMessage("Please remove special characters"
  875. + " \n Characters like : !@#$%^&*()+")
  876. .setPositiveButton(R.string.ok, null);
  877. android.app.AlertDialog dialog = builder.show();
  878. dialog.setCancelable(false);
  879. dialog.setCanceledOnTouchOutside(false);
  880. }
  881.  
  882. @Override
  883. public void onClick(View v) {
  884. switch (v.getId()) {
  885. case R.id.noteButton:
  886. showAddnote();
  887. break;
  888. case R.id.photosButton:
  889. photosButtonClicked = true;
  890. if (checkFields() && checkSpinners()) {
  891. photosButtonClicked = false;
  892. if (specialCharacters()) {
  893. showAlertOfSpecialCharacters();
  894. return;
  895. }
  896. if (imagesAdded > 0) {
  897. Intent intent = new Intent(getApplicationContext(), ImagesSelectionActivity.class);
  898. intent.putParcelableArrayListExtra("stencils",
  899. (ArrayList<? extends Parcelable>) dealerStencilsObjects);
  900. intent.putExtra("username", username);
  901. intent.putExtra("orderId", orderId);
  902. startActivity(intent);
  903. } else {
  904. if (orderCreated) {
  905. Intent intent = new Intent(getApplicationContext(), WeatherSelectionActivity.class);
  906. intent.putExtra("startshooting", true);
  907. OrderFactory.getOrderInstance(String.valueOf(orderId)).setStencilIds(dealersStencils);
  908. intent.putExtra("orderId", orderId);
  909. startActivity(intent);
  910. } else {
  911. if (!editMode) {
  912. orderId = (int) addOrderToDatabase();
  913. addOrdersFactory(orderId);
  914. }
  915. orderCreated = true;
  916. Intent intent = new Intent(getApplicationContext(), WeatherSelectionActivity.class);
  917. OrderFactory.getOrderInstance(String.valueOf(orderId)).setStencilIds(dealersStencils);
  918. intent.putExtra("startshooting", true);
  919. intent.putExtra("orderId", orderId);
  920. startActivity(intent);
  921. }
  922. }
  923. } else {
  924. showAlert();
  925. }
  926. break;
  927. case R.id.delete_vehicle:
  928. show(binding.deleteProgressBar);
  929. if (!OrderFactory.getOrderInstance(String.valueOf(orderId)).getUniqueOrderId()
  930. .equals("null")) {
  931. new ApiCall(applicationContext.get(), new ApiCallback<ApiResponse>() {
  932. @Override
  933. public void onCallFinished(ApiResponse result) {
  934. if ("success".equals(result.getType())) {
  935. deleteLocalOrder(orderId);
  936. hide(binding.deleteProgressBar);
  937. Intent intent = new Intent();
  938. setResult(RESULT_OK, intent);
  939. intent.putExtra("order_deleted", true);
  940. finish();
  941. }
  942. }
  943. }).deleteOrder(OrderFactory.getOrderInstance(String.valueOf(orderId)).getUniqueOrderId(),
  944. token);
  945. } else {
  946. deleteLocalOrder(orderId);
  947. Intent intent = new Intent();
  948. setResult(RESULT_OK, intent);
  949. intent.putExtra("order_deleted", true);
  950. finish();
  951. }
  952. break;
  953. }
  954. }
  955.  
  956. public void deleteLocalOrder(int orderId) {
  957. List<OrderImages> photos = dbController.getOrderImage(orderId);
  958. for (OrderImages image : photos) {
  959. String imageLocation = image.getImageLocation();
  960. File file = new File(applicationContext.get().getExternalFilesDir(null), imageLocation);
  961. file.delete();
  962. }
  963. dbController.deleteOrder(orderId);
  964. OrderFactory.removeIntance(String.valueOf(orderId));
  965. }
  966.  
  967. private void showAddnote() {
  968. LayoutInflater inflater = LayoutInflater.from(applicationContext.get());
  969. View subView = inflater.inflate(R.layout.addnote_screen, null);
  970. final EditText subEditText = subView.findViewById(R.id.editText);
  971. final ImageView closeBtn = subView.findViewById(R.id.close_btn);
  972. final Button getNote = subView.findViewById(R.id.finishBtn);
  973. final TextView removeNote = subView.findViewById(R.id.remove_note);
  974. if (note == null || "".equals(note)) {
  975. getNote.setText(R.string.add_note);
  976. removeNote.setVisibility(View.INVISIBLE);
  977. } else {
  978. subEditText.setText(note);
  979. getNote.setText(R.string.edit_note);
  980. removeNote.setVisibility(View.VISIBLE);
  981. }
  982. AlertDialog.Builder builder = new AlertDialog.Builder(applicationContext.get());
  983. builder.setView(subView);
  984. final AlertDialog alertDialog = builder.create();
  985. subEditText.requestFocus();
  986. final InputMethodManager imm = (InputMethodManager) getSystemService(
  987. Context.INPUT_METHOD_SERVICE);
  988. imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
  989. closeBtn.setOnClickListener(new OnClickListener() {
  990. @Override
  991. public void onClick(View v) {
  992. imm.hideSoftInputFromWindow(subEditText.getWindowToken(), 0);
  993. alertDialog.dismiss();
  994. }
  995. });
  996. getNote.setOnClickListener(new OnClickListener() {
  997. @Override
  998. public void onClick(View v) {
  999. if (subEditText.getText().length() > 0) {
  1000. binding.noteText.setText(R.string.edit_note);
  1001. note = subEditText.getText().toString();
  1002. if (alreadyUploaded && subEditText.getText().length() > 0
  1003. || editMode && subEditText.getText().length() > 0) {
  1004. enableSaveBtn();
  1005. }
  1006. }
  1007. imm.hideSoftInputFromWindow(subEditText.getWindowToken(), 0);
  1008. alertDialog.dismiss();
  1009. }
  1010. });
  1011. removeNote.setOnClickListener(new OnClickListener() {
  1012. @Override
  1013. public void onClick(View v) {
  1014. note = "";
  1015. binding.noteText.setText(R.string.add_note);
  1016. imm.hideSoftInputFromWindow(subEditText.getWindowToken(), 0);
  1017. alertDialog.dismiss();
  1018. deleteNote = true;
  1019. enableSaveBtn();
  1020. }
  1021. });
  1022. alertDialog.show();
  1023. }
  1024.  
  1025. public static void show(View view) {
  1026. view.setVisibility(View.VISIBLE);
  1027. }
  1028.  
  1029. public static void hide(View view) {
  1030. view.setVisibility(View.INVISIBLE);
  1031. }
  1032.  
  1033. public void attachFields(Data data) {
  1034. if (data.getCondition() != null) {
  1035. int spinnerPosition = conditionAdapter.getPosition(data.getCondition());
  1036. binding.conditionSpinner.setSelection(spinnerPosition);
  1037. }
  1038. if (data.getExteriorColor() != null) {
  1039. if (!"".equals(data.getExteriorColor())) {
  1040. int spinnerPosition = exteriorColorAdapter
  1041. .getPosition(data.getExteriorColor());
  1042. binding.exColorSpinner.setSelection(spinnerPosition);
  1043. }
  1044. }
  1045. if (data.getInteriorColor() != null) {
  1046. if (!"".equals(data.getInteriorColor())) {
  1047. int spinnerPosition = interiorColorAdapter
  1048. .getPosition(data.getInteriorColor());
  1049. binding.intColorSpinner.setSelection(spinnerPosition);
  1050. }
  1051. }
  1052. if (data.getYear() != null) {
  1053. if (!"".equals(data.getYear())) {
  1054. int spinnerPosition = yearAdapter
  1055. .getPosition(String.valueOf(data.getYear()));
  1056. binding.yearSpinner.setSelection(spinnerPosition);
  1057. }
  1058. }
  1059. allFields = Arrays.asList(R.id.vin, R.id.stock, R.id.make, R.id.model);
  1060. if (data.getMake() != null) {
  1061. if (!"".equals(data.getMake())) {
  1062. TextView make = findViewById(allFields.get(2));
  1063. make.setText(data.getMake());
  1064. }
  1065. }
  1066. if (data.getVin() != null) {
  1067. if (!"".equals(data.getVin())) {
  1068. TextView vin = findViewById(allFields.get(0));
  1069. vin.setText(data.getVin().toString());
  1070. }
  1071. }
  1072. if (data.getStock() != null) {
  1073. if (!"".equals(data.getStock())) {
  1074. TextView stock = findViewById(allFields.get(1));
  1075. stock.setText(data.getStock());
  1076. }
  1077. }
  1078. if (data.getModel() != null) {
  1079. if (!"".equals(data.getModel())) {
  1080. TextView model = findViewById(allFields.get(3));
  1081. model.setText(data.getModel());
  1082. }
  1083. }
  1084. }
  1085.  
  1086. @Override
  1087. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  1088. if (data == null) {
  1089. return;
  1090. }
  1091. switch (requestCode) {
  1092. case SCANNER_RESULT_CODE: {
  1093. checkVinWithApi(data.getStringExtra(VIN));
  1094. break;
  1095. }
  1096. case IMAGES_RESULT_CODE: {
  1097. if (OrderFactory.getOrderInstance(String.valueOf(orderId)).getImagesAdded() > imagesAdded) {
  1098. imagesAdded = OrderFactory.getOrderInstance(String.valueOf(orderId)).getImagesAdded();
  1099. }
  1100. enableSaveBtn();
  1101. }
  1102. }
  1103. super.onActivityResult(requestCode, resultCode, data);
  1104. }
  1105.  
  1106. private void checkVinWithApi(String vin) {
  1107. binding.smallScan.setVisibility(View.INVISIBLE);
  1108. binding.tvSearchCaption.setVisibility(View.INVISIBLE);
  1109. binding.apiCallProgressBar.setVisibility(View.VISIBLE);
  1110. getVinDecodeCall().vinDecoder(token, vin, dealerId);
  1111. }
  1112.  
  1113. public void showInvalidVinError() {
  1114. android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(
  1115. applicationContext.get(),
  1116. R.style.MyAlertDialogStyle);
  1117. builder.setTitle(R.string.invalid_vin_title)
  1118. .setMessage(R.string.invalid_vin_message)
  1119. .setPositiveButton(R.string.ok, null);
  1120. android.app.AlertDialog dialog = builder.show();
  1121. dialog.setCancelable(false);
  1122. dialog.setCanceledOnTouchOutside(false);
  1123. }
  1124.  
  1125. private void attachApiInfo() {
  1126. switch (apiResponse.getType()) {
  1127. case "invalid": {
  1128. showInvalidVinError();
  1129. break;
  1130. }
  1131. case "success": {
  1132. attachFields(apiResponse.getData());
  1133. break;
  1134. }
  1135. case "reshoot": {
  1136. DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
  1137. @Override
  1138. public void onClick(DialogInterface dialog, int which) {
  1139. switch (which) {
  1140. case DialogInterface.BUTTON_POSITIVE:
  1141. attachFields(apiResponse.getData());
  1142. dialog.cancel();
  1143. break;
  1144. case DialogInterface.BUTTON_NEGATIVE:
  1145. binding.vin.setText(EMPTY_STRING);
  1146. dialog.cancel();
  1147. break;
  1148. }
  1149. }
  1150. };
  1151.  
  1152. android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(
  1153. applicationContext.get(),
  1154. R.style.MyAlertDialogStyle);
  1155. builder.setTitle(R.string.already_shot_title)
  1156. .setMessage(R.string.already_shot_message)
  1157. .setPositiveButton(R.string.yes, dialogClickListener)
  1158. .setNegativeButton(R.string.no, dialogClickListener);
  1159. if(!(this).isFinishing())
  1160. {
  1161. android.app.AlertDialog dialog = builder.show();
  1162. dialog.setCancelable(false);
  1163. dialog.setCanceledOnTouchOutside(false);
  1164. break;
  1165. }
  1166. }
  1167. default: {
  1168. break;
  1169. }
  1170. }
  1171. }
  1172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement