Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.43 KB | None | 0 0
  1. package com.gokdemir.areyousafe;
  2.  
  3. import android.app.Activity;
  4. import android.app.AlertDialog;
  5. import android.app.ProgressDialog;
  6. import android.content.Context;
  7. import android.content.DialogInterface;
  8. import android.content.Intent;
  9. import android.content.pm.PackageManager;
  10. import android.graphics.Bitmap;
  11. import android.os.Environment;
  12. import android.provider.MediaStore;
  13. import android.support.v7.app.AppCompatActivity;
  14. import android.os.Bundle;
  15. import android.text.method.ScrollingMovementMethod;
  16. import android.util.Log;
  17. import android.view.View;
  18. import android.widget.ArrayAdapter;
  19. import android.widget.Button;
  20. import android.widget.Spinner;
  21. import android.widget.TextView;
  22. import android.widget.Toast;
  23.  
  24. import java.io.ByteArrayOutputStream;
  25. import java.io.File;
  26. import java.io.FileNotFoundException;
  27. import java.io.FileOutputStream;
  28. import java.io.IOException;
  29. import java.util.Arrays;
  30. import java.util.List;
  31.  
  32. public class SignupActivity2 extends AppCompatActivity {
  33.  
  34. private Button buttonSelectChronicDisease;
  35. private Button buttonSignup;
  36. private Button buttonSelectAllergicMedicals;
  37. private Button buttonUploadImage;
  38.  
  39. private TextView tvShowSelectedDiseases;
  40. private TextView tvShowSelectedMedicals;
  41.  
  42. private ProgressDialog progressDialog;
  43.  
  44. private Spinner bloodTypeSpinner;
  45. String bloodType = "";
  46.  
  47. String userChosenTask;
  48. String selectedDiseases = "";
  49. String[] chronicDiseases;
  50. boolean[] checkedDiseases;
  51.  
  52. String selectedMedications = "";
  53. String[] allergicMedicals;
  54. boolean[] checkedMedicals;
  55.  
  56. static final int REQUEST_IMAGE_CAPTURE = 0;
  57. static final int SELECT_FILE = 1;
  58.  
  59. public static Context context;
  60. public static Context activityContext;
  61.  
  62. byte[] byteArray;
  63.  
  64. @Override
  65. protected void onCreate(Bundle savedInstanceState) {
  66. super.onCreate(savedInstanceState);
  67. setContentView(R.layout.activity_signup2);
  68.  
  69. context = getApplicationContext();
  70. activityContext = SignupActivity2.this;
  71.  
  72. initalizeActivityComponents();
  73.  
  74. buttonSelectChronicDisease.setOnClickListener(new View.OnClickListener() {
  75. @Override
  76. public void onClick(View v) {
  77. selectChronicDiseases();
  78. }
  79. });
  80.  
  81. buttonSelectAllergicMedicals.setOnClickListener(new View.OnClickListener() {
  82. @Override
  83. public void onClick(View v) {
  84. selectAllergicMedicals();
  85. }
  86. });
  87.  
  88. buttonSignup.setOnClickListener(new View.OnClickListener() {
  89. @Override
  90. public void onClick(View v) {
  91. signUpUser();
  92. }
  93. });
  94.  
  95. buttonUploadImage.setOnClickListener(new View.OnClickListener() {
  96. @Override
  97. public void onClick(View view) {
  98. selectImage();
  99. }
  100. });
  101. }
  102.  
  103. private void signUpUser() {
  104. final String mail = getIntent().getStringExtra("email");
  105. final String password = getIntent().getStringExtra("password");
  106. final String name = getIntent().getStringExtra("name");
  107. Log.i("password", password);
  108. if(bloodTypeSpinner.getSelectedItem().toString() != null) bloodType = bloodTypeSpinner.getSelectedItem().toString();
  109.  
  110. VolleyHandler volleyHandler = new VolleyHandler();
  111. //Intent intent = new Intent(SignupActivity2.this, MainActivity.class);
  112. volleyHandler.addUserAll(name, mail, password, bloodType, selectedMedications, selectedDiseases, byteArray);
  113.  
  114.  
  115. //progressDialog = new ProgressDialog(SignupActivity2.this);
  116. //progressDialog.setMessage("Signing you up. Please wait...");
  117. //progressDialog.show();
  118. }
  119.  
  120. private void selectAllergicMedicals() {
  121. selectedMedications = "";
  122. tvShowSelectedMedicals.setText(getResources().getString(R.string.show_selected_medicals_tv));
  123. AlertDialog.Builder builder = new AlertDialog.Builder(SignupActivity2.this);
  124.  
  125. final List<String> medicalsList = Arrays.asList(allergicMedicals);
  126.  
  127. builder.setMultiChoiceItems(allergicMedicals, checkedMedicals, new DialogInterface.OnMultiChoiceClickListener() {
  128. @Override
  129. public void onClick(DialogInterface dialog, int which, boolean isChecked) {
  130. selectAllergicMedicals(which, isChecked, medicalsList);
  131. }
  132. });
  133.  
  134. builder.setTitle(getResources().getString(R.string.medicals_builder_title));
  135.  
  136. builder.setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() {
  137. @Override
  138. public void onClick(DialogInterface dialog, int which) {
  139. showSelectedAllergicMedicals(medicalsList);
  140.  
  141. }
  142. });
  143.  
  144. builder.setNeutralButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() {
  145. @Override
  146. public void onClick(DialogInterface dialog, int which) {
  147. dialog.dismiss();
  148. }
  149. });
  150.  
  151. AlertDialog dialog = builder.create();
  152.  
  153. dialog.show();
  154. }
  155.  
  156. private void showSelectedAllergicMedicals(List<String> medicalsList) {
  157. for(int i = 0; i < checkedMedicals.length; i++){
  158. if(checkedMedicals[i]) {
  159. selectedMedications += medicalsList.get(i) + ";";
  160.  
  161. tvShowSelectedMedicals.setText(tvShowSelectedMedicals.getText() + medicalsList.get(i) + "\n");
  162. }
  163. }
  164.  
  165. selectedMedications = selectedMedications.substring(0, selectedMedications.length() - 1);
  166. Toast.makeText(SignupActivity2.this, selectedMedications, Toast.LENGTH_LONG).show();
  167. }
  168.  
  169. private void selectAllergicMedicals(int which, boolean isChecked, List<String> medicalsList) {
  170. checkedMedicals[which] = isChecked;
  171.  
  172. String currentItem = medicalsList.get(which);
  173.  
  174. if(isChecked){
  175. Toast.makeText(SignupActivity2.this, currentItem + " is selected.", Toast.LENGTH_SHORT).show();
  176. } else {
  177. Toast.makeText(SignupActivity2.this, currentItem + " is dropped.", Toast.LENGTH_SHORT).show();
  178. }
  179. }
  180.  
  181. private void selectChronicDiseases() {
  182. selectedDiseases = "";
  183. tvShowSelectedDiseases.setText(getResources().getString(R.string.show_selected_diseases_tv_text));
  184. AlertDialog.Builder builder = new AlertDialog.Builder(SignupActivity2.this);
  185.  
  186. final List<String> diseasesList = Arrays.asList(chronicDiseases);
  187.  
  188. builder.setMultiChoiceItems(chronicDiseases, checkedDiseases, new DialogInterface.OnMultiChoiceClickListener() {
  189. @Override
  190. public void onClick(DialogInterface dialog, int which, boolean isChecked) {
  191. getCheckedDiseases(which, isChecked, diseasesList);
  192. }
  193. });
  194.  
  195. builder.setTitle(getResources().getString(R.string.disease_builder_title));
  196.  
  197. builder.setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() {
  198. @Override
  199. public void onClick(DialogInterface dialog, int which) {
  200.  
  201. showSelectedDiseases(diseasesList);
  202.  
  203. }
  204. });
  205.  
  206. builder.setNeutralButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() {
  207. @Override
  208. public void onClick(DialogInterface dialog, int which) {
  209. dialog.dismiss();
  210. }
  211. });
  212.  
  213. AlertDialog dialog = builder.create();
  214.  
  215. dialog.show();
  216. }
  217.  
  218. private void showSelectedDiseases(List<String> diseasesList) {
  219. for(int i = 0; i < checkedDiseases.length; i++){
  220. if(checkedDiseases[i]){
  221. selectedDiseases += diseasesList.get(i);
  222. selectedDiseases += ";";
  223.  
  224. tvShowSelectedDiseases.setText(tvShowSelectedDiseases.getText() + diseasesList.get(i) + "\n");
  225. }
  226.  
  227. }
  228.  
  229. selectedDiseases = selectedDiseases.substring(0, selectedDiseases.length() - 1);
  230. Toast.makeText(SignupActivity2.this, selectedDiseases, Toast.LENGTH_LONG).show();
  231. }
  232.  
  233. private void getCheckedDiseases(int which, boolean isChecked, List<String> diseasesList) {
  234. checkedDiseases[which] = isChecked;
  235.  
  236. String currentItem = diseasesList.get(which);
  237.  
  238. // Notify the current action
  239. if(isChecked) {
  240. Toast.makeText(getApplicationContext(), currentItem + " is selected.", Toast.LENGTH_SHORT).show();
  241. } else{
  242. Toast.makeText(SignupActivity2.this, currentItem + " is dropped.", Toast.LENGTH_SHORT).show();
  243. }
  244. }
  245.  
  246. private void initalizeActivityComponents() {
  247. tvShowSelectedDiseases = (TextView) findViewById(R.id.showSelectedDiseasesTV);
  248. tvShowSelectedMedicals = (TextView) findViewById(R.id.showSelectedMedicalsTV);
  249. tvShowSelectedDiseases.setMovementMethod(new ScrollingMovementMethod());
  250. tvShowSelectedMedicals.setMovementMethod(new ScrollingMovementMethod());
  251.  
  252. chronicDiseases = getResources().getStringArray(R.array.chronic_diseases);
  253. checkedDiseases = new boolean[chronicDiseases.length];
  254.  
  255. allergicMedicals = getResources().getStringArray(R.array.allergies_towards_drugs);
  256. checkedMedicals = new boolean[allergicMedicals.length];
  257.  
  258. bloodTypeSpinner = (Spinner) findViewById(R.id.bloodTypeSpinner);
  259.  
  260. buttonSelectChronicDisease = (Button) findViewById(R.id.buttonSelectChronicDiseases);
  261. buttonSignup = (Button) findViewById(R.id.buttonSignup);
  262. buttonSelectAllergicMedicals = (Button) findViewById(R.id.buttonSelectAllergicMedicals);
  263. buttonUploadImage = (Button) findViewById(R.id.uploadImage);
  264.  
  265. ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,R.array.blood_types,android.R.layout.simple_spinner_dropdown_item);
  266. bloodTypeSpinner.setAdapter(adapter);
  267. }
  268.  
  269. private void selectImage(){
  270.  
  271. final CharSequence[] items = {"Take Photo", "Choose from Gallery", "Cancel"};
  272. AlertDialog.Builder builder = new AlertDialog.Builder(SignupActivity2.this);
  273.  
  274. builder.setTitle(getResources().getString(R.string.select_photo_builder_title));
  275. builder.setItems(items, new DialogInterface.OnClickListener() {
  276. @Override
  277. public void onClick(DialogInterface dialog, int item) {
  278. boolean result = Utility.checkPermission(SignupActivity2.this);
  279.  
  280. if(items[item].equals("Take Photo")) {
  281. userChosenTask = "Take Photo";
  282. if(result)
  283. cameraIntent();
  284. } else if(items[item].equals("Choose from Gallery")){
  285. userChosenTask = "Choose from Gallery";
  286. if(result)
  287. galleryIntent();
  288. } else if(items[item].equals("Cancel")) {
  289. dialog.dismiss();
  290. }
  291. }
  292. });
  293.  
  294. builder.show();
  295.  
  296. }
  297.  
  298. private void cameraIntent(){
  299. Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  300. if(takePictureIntent.resolveActivity(getPackageManager()) != null)
  301. startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
  302. }
  303.  
  304. private void galleryIntent(){
  305. Intent getPictureFromGallery = new Intent(Intent.ACTION_PICK);
  306. getPictureFromGallery.setType("image/*");
  307. getPictureFromGallery.setAction(getPictureFromGallery.ACTION_GET_CONTENT);
  308. startActivityForResult(Intent.createChooser(getPictureFromGallery, "Select File"), SELECT_FILE);
  309. }
  310.  
  311. @Override
  312. public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
  313. switch (requestCode) {
  314. case Utility.MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE:
  315. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  316. if(userChosenTask.equals("Take Photo"))
  317. cameraIntent();
  318. else if(userChosenTask.equals("Choose from Library"))
  319. galleryIntent();
  320. } else {
  321. //code for deny
  322. }
  323. break;
  324. }
  325. }
  326.  
  327. @Override
  328. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  329. super.onActivityResult(requestCode, resultCode, data);
  330. if (resultCode == Activity.RESULT_OK) {
  331. if (requestCode == SELECT_FILE)
  332. onSelectFromGalleryResult(data);
  333. else if (requestCode == REQUEST_IMAGE_CAPTURE)
  334. onCaptureImageResult(data);
  335. }
  336. }
  337.  
  338. @SuppressWarnings("deprecation")
  339. private void onSelectFromGalleryResult(Intent data) {
  340. Bitmap bm = null;
  341. if (data != null) {
  342. try {
  343. bm = MediaStore.Images.Media.getBitmap(getApplicationContext().getContentResolver(), data.getData());
  344. } catch (IOException e) {
  345. e.printStackTrace();
  346. }
  347. }
  348. //ivImage.setImageBitmap(bm); setting the bitmap to image view.
  349. ByteArrayOutputStream bytes = new ByteArrayOutputStream();
  350. bm.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
  351. byteArray = bytes.toByteArray();
  352.  
  353. Toast.makeText(SignupActivity2.this, "Image is taken", Toast.LENGTH_SHORT).show();
  354. }
  355.  
  356. private void onCaptureImageResult(Intent data) {
  357. Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
  358. ByteArrayOutputStream bytes = new ByteArrayOutputStream();
  359. thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
  360. byteArray = bytes.toByteArray();
  361. File destination = new File(Environment.getExternalStorageDirectory(),
  362. System.currentTimeMillis() + ".jpg");
  363. FileOutputStream fo;
  364. try {
  365. destination.createNewFile();
  366. fo = new FileOutputStream(destination);
  367. fo.write(bytes.toByteArray());
  368. fo.close();
  369. } catch (FileNotFoundException e) {
  370. e.printStackTrace();
  371. } catch (IOException e) {
  372. e.printStackTrace();
  373. }
  374. //ivImage.setImageBitmap(thumbnail); setting the bitmap to image view"
  375. Toast.makeText(SignupActivity2.this, "Image is taken", Toast.LENGTH_SHORT).show();
  376. }
  377.  
  378. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement