Advertisement
Guest User

Untitled

a guest
Jun 30th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.13 KB | None | 0 0
  1. private static final String ARG_CRIME_ID = "crime_id";
  2. private static final String DIALOG_DATE = "DialogDate";
  3. private static final int REQUEST_DATE = 0;
  4. private static final int REQUEST_CONTACT = 1;
  5. private static final int REQUEST_PHOTO = 2;
  6.  
  7.  
  8. private Crime mCrime;
  9. private EditText mEditText;
  10. private Button mDateButton;
  11. private CheckBox mCheckBox;
  12. private Button mReportButton;
  13. private Button mSuspectButton;
  14. private ImageButton mImageButton;
  15. private ImageView mImageView;
  16. private File mFilePhoto;
  17.  
  18. public static CrimeFragment newInstance(UUID crimeId) {
  19.  
  20. Bundle args = new Bundle();
  21. args.putSerializable(ARG_CRIME_ID, crimeId);
  22.  
  23.  
  24. CrimeFragment fragment = new CrimeFragment();
  25. fragment.setArguments(args);
  26. return fragment;
  27. }
  28.  
  29. @Override
  30. public void onCreate(@Nullable Bundle savedInstanceState) {
  31. super.onCreate(savedInstanceState);
  32. /*mCrime = new Crime();*/
  33.  
  34.  
  35. /*UUID crimeId = (UUID)getActivity().getIntent().getSerializableExtra(CrimeActivity.EXTRA_CRIME_ID);*/
  36. UUID crimeId = (UUID) getArguments().getSerializable(ARG_CRIME_ID);
  37.  
  38. mCrime = CrimeLab.get(getActivity()).getCrime(crimeId);
  39.  
  40. mFilePhoto = CrimeLab.get(getActivity()).getPhotoFile(mCrime);
  41. }
  42.  
  43. @Nullable
  44. @Override
  45. public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
  46. View view = inflater.inflate(R.layout.fragment_crime, container, false);
  47.  
  48. mEditText = (EditText) view.findViewById(R.id.crime_title);
  49. mEditText.setText(mCrime.getTitile()); //Updating Crime fragment with crime
  50. mEditText.addTextChangedListener(new TextWatcher() {
  51. @Override
  52. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  53.  
  54. }
  55.  
  56. @Override
  57. public void onTextChanged(CharSequence s, int start, int before, int count) {
  58.  
  59. mCrime.setTitile(toString());
  60. }
  61.  
  62. @Override
  63. public void afterTextChanged(Editable s) {
  64.  
  65. }
  66. });
  67.  
  68.  
  69. final Intent pickContact = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
  70. /*pickContact.addCategory(Intent.CATEGORY_HOME);*/
  71. mSuspectButton = (Button) view.findViewById(R.id.crime_suspect);
  72.  
  73. mSuspectButton.setOnClickListener(new View.OnClickListener() {
  74. @Override
  75. public void onClick(View v) {
  76. startActivityForResult(pickContact, REQUEST_CONTACT);
  77. }
  78. });
  79.  
  80. mReportButton = (Button) view.findViewById(R.id.crime_report);
  81.  
  82. mReportButton.setOnClickListener(new View.OnClickListener() {
  83. @Override
  84. public void onClick(View v) {
  85.  
  86. Intent intent = new Intent(Intent.ACTION_SEND);
  87. intent.setType("text/plain");
  88. intent.putExtra(Intent.EXTRA_TEXT, getCrimeReport());
  89. intent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.crime_report_subject));
  90. intent = Intent.createChooser(intent, getString(R.string.send_report));
  91. startActivity(intent);
  92. }
  93. });
  94.  
  95. mDateButton = (Button) view.findViewById(R.id.crime_date);
  96. updateDate((mCrime.getDate()).toString());
  97. /*mDateButton.setEnabled(false);*/
  98. /* Design a date picker for an application */
  99. mDateButton.setOnClickListener(new View.OnClickListener() {
  100. @Override
  101. public void onClick(View v) {
  102. FragmentManager fragmentManager = getFragmentManager();
  103. /*DatePickerFragment dialog = new DatePickerFragment();*/
  104.  
  105. DatePickerFragment dialog = DatePickerFragment.newInstance(mCrime.getDate());
  106.  
  107. dialog.setTargetFragment(CrimeFragment.this, REQUEST_DATE);
  108.  
  109. dialog.show(fragmentManager, DIALOG_DATE);
  110. }
  111. });
  112.  
  113. mCheckBox = (CheckBox) view.findViewById(R.id.crime_solved);
  114. mCheckBox.setChecked(mCrime.isSolved()); //Updating Crime fragment with crime
  115. mCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
  116. @Override
  117. public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
  118. mCrime.setSolved(isChecked);
  119. }
  120. });
  121.  
  122. if (mCrime.getSuspect() != null) {
  123.  
  124. mSuspectButton.setText(mCrime.getSuspect());
  125. }
  126.  
  127. PackageManager packageManager = getActivity().getPackageManager();
  128. if (packageManager.resolveActivity(pickContact, PackageManager.MATCH_DEFAULT_ONLY) == null) {
  129. mSuspectButton.setEnabled(false);
  130. }
  131.  
  132.  
  133. mImageButton = (ImageButton) view.findViewById(R.id.crime_camera);
  134. final Intent captureImage = new Intent(MediaStore.ACTION_IMAGE_CAPTURE) ;
  135. boolean canTakePhoto = mFilePhoto != null &&
  136. captureImage.resolveActivity(packageManager)!=null;
  137. mImageButton.setEnabled(canTakePhoto);
  138.  
  139. if (canTakePhoto){
  140.  
  141. Uri uri = Uri.fromFile(mFilePhoto);
  142. captureImage.putExtra(MediaStore.EXTRA_OUTPUT,uri);
  143. }
  144.  
  145. mImageButton.setOnClickListener(new View.OnClickListener() {
  146. @Override
  147. public void onClick(View v) {
  148. startActivityForResult(captureImage,REQUEST_PHOTO);
  149. }
  150. });
  151. mImageView = (ImageView) view.findViewById(R.id.crime_photo);
  152. updatePhotoView();
  153. return view;
  154. }
  155.  
  156. public void returnResult() {
  157. getActivity().setResult(Activity.RESULT_OK, null);
  158. }
  159.  
  160.  
  161. @Override
  162. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  163. if (resultCode != Activity.RESULT_OK) {
  164. return;
  165. }
  166. if (requestCode == REQUEST_DATE) {
  167. Date date = (Date) data
  168. .getSerializableExtra(DatePickerFragment.EXTRA_DATE);
  169. mCrime.setDate(date);
  170. updateDate(mCrime.getDate().toString());
  171. } else if (requestCode == REQUEST_CONTACT && data != null) {
  172.  
  173. Uri contactUri = data.getData();
  174.  
  175. String[] queryFields = new String[]{
  176. ContactsContract.Contacts.DISPLAY_NAME
  177. };
  178.  
  179. Cursor cursor = getActivity().getContentResolver().query(contactUri, queryFields, null, null, null);
  180. try {
  181. if (cursor.getCount() == 0) {
  182. return;
  183. }
  184.  
  185. cursor.moveToFirst();
  186. String suspect = cursor.getString(0);
  187. mCrime.setSuspect(suspect);
  188. mSuspectButton.setText(suspect);
  189. } finally {
  190. cursor.close();
  191. }
  192. }else if (requestCode == REQUEST_PHOTO){
  193. updatePhotoView();
  194. }
  195. }
  196.  
  197. private void updateDate(String text) {
  198. mDateButton.setText(text);
  199. }
  200.  
  201. private String getCrimeReport() {
  202. String solvedString = null;
  203. if (mCrime.isSolved()) {
  204. solvedString = getString(R.string.crime_report_solved);
  205. } else {
  206. solvedString = getString(R.string.crime_report_unsolved);
  207. }
  208.  
  209.  
  210. String dateFormat = "EEE, MM dd";
  211.  
  212. String dateString = DateFormat.format(dateFormat, mCrime.getDate()).toString();
  213.  
  214. String suspect = mCrime.getSuspect();
  215. if (suspect == null) {
  216. suspect = getString(R.string.crime_report_no_suspect);
  217. } else {
  218. suspect = getString(R.string.crime_report_suspect, suspect);
  219. }
  220.  
  221. String report = getString(R.string.crime_report, mCrime.getTitile(), dateString, solvedString, suspect);
  222. return report;
  223. }
  224.  
  225. @Override
  226. public void onPause() {
  227. super.onPause();
  228.  
  229.  
  230. CrimeLab.get(getActivity()).updateCrime(mCrime);
  231. }
  232.  
  233. private void updatePhotoView() {
  234. if (mFilePhoto == null || !mFilePhoto.exists()) {
  235. mImageView.setImageDrawable(null);
  236. } else {
  237. Bitmap bitmap = PictureUtils.getScaledBitmap(
  238. mFilePhoto.getPath(), getActivity());
  239. mImageView.setImageBitmap(bitmap);
  240. }
  241. }
  242.  
  243. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement