Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static final String ARG_CRIME_ID = "crime_id";
- private static final String DIALOG_DATE = "DialogDate";
- private static final int REQUEST_DATE = 0;
- private static final int REQUEST_CONTACT = 1;
- private static final int REQUEST_PHOTO = 2;
- private Crime mCrime;
- private EditText mEditText;
- private Button mDateButton;
- private CheckBox mCheckBox;
- private Button mReportButton;
- private Button mSuspectButton;
- private ImageButton mImageButton;
- private ImageView mImageView;
- private File mFilePhoto;
- public static CrimeFragment newInstance(UUID crimeId) {
- Bundle args = new Bundle();
- args.putSerializable(ARG_CRIME_ID, crimeId);
- CrimeFragment fragment = new CrimeFragment();
- fragment.setArguments(args);
- return fragment;
- }
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- /*mCrime = new Crime();*/
- /*UUID crimeId = (UUID)getActivity().getIntent().getSerializableExtra(CrimeActivity.EXTRA_CRIME_ID);*/
- UUID crimeId = (UUID) getArguments().getSerializable(ARG_CRIME_ID);
- mCrime = CrimeLab.get(getActivity()).getCrime(crimeId);
- mFilePhoto = CrimeLab.get(getActivity()).getPhotoFile(mCrime);
- }
- @Nullable
- @Override
- public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.fragment_crime, container, false);
- mEditText = (EditText) view.findViewById(R.id.crime_title);
- mEditText.setText(mCrime.getTitile()); //Updating Crime fragment with crime
- mEditText.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
- }
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {
- mCrime.setTitile(toString());
- }
- @Override
- public void afterTextChanged(Editable s) {
- }
- });
- final Intent pickContact = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
- /*pickContact.addCategory(Intent.CATEGORY_HOME);*/
- mSuspectButton = (Button) view.findViewById(R.id.crime_suspect);
- mSuspectButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- startActivityForResult(pickContact, REQUEST_CONTACT);
- }
- });
- mReportButton = (Button) view.findViewById(R.id.crime_report);
- mReportButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(Intent.ACTION_SEND);
- intent.setType("text/plain");
- intent.putExtra(Intent.EXTRA_TEXT, getCrimeReport());
- intent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.crime_report_subject));
- intent = Intent.createChooser(intent, getString(R.string.send_report));
- startActivity(intent);
- }
- });
- mDateButton = (Button) view.findViewById(R.id.crime_date);
- updateDate((mCrime.getDate()).toString());
- /*mDateButton.setEnabled(false);*/
- /* Design a date picker for an application */
- mDateButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- FragmentManager fragmentManager = getFragmentManager();
- /*DatePickerFragment dialog = new DatePickerFragment();*/
- DatePickerFragment dialog = DatePickerFragment.newInstance(mCrime.getDate());
- dialog.setTargetFragment(CrimeFragment.this, REQUEST_DATE);
- dialog.show(fragmentManager, DIALOG_DATE);
- }
- });
- mCheckBox = (CheckBox) view.findViewById(R.id.crime_solved);
- mCheckBox.setChecked(mCrime.isSolved()); //Updating Crime fragment with crime
- mCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- mCrime.setSolved(isChecked);
- }
- });
- if (mCrime.getSuspect() != null) {
- mSuspectButton.setText(mCrime.getSuspect());
- }
- PackageManager packageManager = getActivity().getPackageManager();
- if (packageManager.resolveActivity(pickContact, PackageManager.MATCH_DEFAULT_ONLY) == null) {
- mSuspectButton.setEnabled(false);
- }
- mImageButton = (ImageButton) view.findViewById(R.id.crime_camera);
- final Intent captureImage = new Intent(MediaStore.ACTION_IMAGE_CAPTURE) ;
- boolean canTakePhoto = mFilePhoto != null &&
- captureImage.resolveActivity(packageManager)!=null;
- mImageButton.setEnabled(canTakePhoto);
- if (canTakePhoto){
- Uri uri = Uri.fromFile(mFilePhoto);
- captureImage.putExtra(MediaStore.EXTRA_OUTPUT,uri);
- }
- mImageButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- startActivityForResult(captureImage,REQUEST_PHOTO);
- }
- });
- mImageView = (ImageView) view.findViewById(R.id.crime_photo);
- updatePhotoView();
- return view;
- }
- public void returnResult() {
- getActivity().setResult(Activity.RESULT_OK, null);
- }
- @Override
- public void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (resultCode != Activity.RESULT_OK) {
- return;
- }
- if (requestCode == REQUEST_DATE) {
- Date date = (Date) data
- .getSerializableExtra(DatePickerFragment.EXTRA_DATE);
- mCrime.setDate(date);
- updateDate(mCrime.getDate().toString());
- } else if (requestCode == REQUEST_CONTACT && data != null) {
- Uri contactUri = data.getData();
- String[] queryFields = new String[]{
- ContactsContract.Contacts.DISPLAY_NAME
- };
- Cursor cursor = getActivity().getContentResolver().query(contactUri, queryFields, null, null, null);
- try {
- if (cursor.getCount() == 0) {
- return;
- }
- cursor.moveToFirst();
- String suspect = cursor.getString(0);
- mCrime.setSuspect(suspect);
- mSuspectButton.setText(suspect);
- } finally {
- cursor.close();
- }
- }else if (requestCode == REQUEST_PHOTO){
- updatePhotoView();
- }
- }
- private void updateDate(String text) {
- mDateButton.setText(text);
- }
- private String getCrimeReport() {
- String solvedString = null;
- if (mCrime.isSolved()) {
- solvedString = getString(R.string.crime_report_solved);
- } else {
- solvedString = getString(R.string.crime_report_unsolved);
- }
- String dateFormat = "EEE, MM dd";
- String dateString = DateFormat.format(dateFormat, mCrime.getDate()).toString();
- String suspect = mCrime.getSuspect();
- if (suspect == null) {
- suspect = getString(R.string.crime_report_no_suspect);
- } else {
- suspect = getString(R.string.crime_report_suspect, suspect);
- }
- String report = getString(R.string.crime_report, mCrime.getTitile(), dateString, solvedString, suspect);
- return report;
- }
- @Override
- public void onPause() {
- super.onPause();
- CrimeLab.get(getActivity()).updateCrime(mCrime);
- }
- private void updatePhotoView() {
- if (mFilePhoto == null || !mFilePhoto.exists()) {
- mImageView.setImageDrawable(null);
- } else {
- Bitmap bitmap = PictureUtils.getScaledBitmap(
- mFilePhoto.getPath(), getActivity());
- mImageView.setImageBitmap(bitmap);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement