Untitled
unknown
plain_text
10 months ago
9.1 kB
5
Indexable
package com.example.expiryalert; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import android.app.AlarmManager; import android.app.AlertDialog; import android.app.DatePickerDialog; import android.app.PendingIntent; import android.app.TimePickerDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.DatePicker; import android.widget.EditText; import android.widget.ImageView; import android.widget.TimePicker; import android.widget.Toast; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; // this class is to take the reminders from the user and inserts into the database public class ReminderActivity extends AppCompatActivity { Button mSubmitbtn, mDatebtn, mTimebtn, mSelectImageBtn; ImageView mImageView; Uri selectedImageUri; EditText mTitledit; String timeTonotify; String imagePath; private static final int PICK_IMAGE_REQUEST = 1; private static final int TAKE_PHOTO_REQUEST = 2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_reminder); mTitledit = findViewById(R.id.editTitle); mDatebtn = findViewById(R.id.btnDate); mTimebtn = findViewById(R.id.btnTime); mSubmitbtn = findViewById(R.id.btnSubmit); mImageView = findViewById(R.id.imageView); mSelectImageBtn = findViewById(R.id.btnSelectImage); mSelectImageBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { openFileChooser(); } }); mTimebtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { selectTime(); } }); mDatebtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { selectDate(); } }); mSubmitbtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String title = mTitledit.getText().toString().trim(); String date = mDatebtn.getText().toString().trim(); String time = mTimebtn.getText().toString().trim(); if (title.isEmpty()) { Toast.makeText(getApplicationContext(), "Please Enter text", Toast.LENGTH_SHORT).show(); } else { if (time.equals("time") || date.equals("date")) { Toast.makeText(getApplicationContext(), "Please select date and time", Toast.LENGTH_SHORT).show(); } else { processinsert(title, date, time); } } } }); } private void openFileChooser() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Choose Action"); builder.setItems(new CharSequence[]{"Take Photo", "Choose from Gallery"}, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { switch (which) { case 0: Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(takePicture, TAKE_PHOTO_REQUEST); break; case 1: Intent pickPhoto = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(pickPhoto, PICK_IMAGE_REQUEST); break; } } }); builder.show(); } @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { if (requestCode == TAKE_PHOTO_REQUEST && data != null) { Bitmap photo = (Bitmap) data.getExtras().get("data"); mImageView.setImageBitmap(photo); mImageView.setVisibility(View.VISIBLE); mImageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); mImageView.setAdjustViewBounds(true); saveImageToStorage(photo); } else if (requestCode == PICK_IMAGE_REQUEST && data != null) { selectedImageUri = data.getData(); try { mImageView.setImageURI(selectedImageUri); mImageView.setVisibility(View.VISIBLE); mImageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); mImageView.setAdjustViewBounds(true); // Save the selected image's URI imagePath = selectedImageUri.toString(); Log.d("ReminderActivity", "Image Path: " + imagePath); } catch (Exception e) { e.printStackTrace(); } } } } private void saveImageToStorage(Bitmap bitmap) { FileOutputStream outputStream = null; try { File file = new File(getExternalFilesDir(null), "reminder_image.jpg"); outputStream = new FileOutputStream(file); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream); imagePath = file.getAbsolutePath(); // Save the file path for later use Log.d("ReminderActivity", "Image saved at: " + imagePath); } catch (Exception e) { e.printStackTrace(); } finally { if (outputStream != null) { try { outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } private void processinsert(String title, String date, String time) { String result = new dbManager(this).addreminder(title, date, time); setAlarm(title, date, time); mTitledit.setText(""); Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show(); } private void selectTime() { Calendar calendar = Calendar.getInstance(); int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); TimePickerDialog timePickerDialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker timePicker, int hourOfDay, int minutes) { mTimebtn.setText(hourOfDay + ":" + minutes); timeTonotify = hourOfDay + ":" + minutes; } }, hour, minute, false); timePickerDialog.show(); } private void selectDate() { Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH); int day = calendar.get(Calendar.DAY_OF_MONTH); DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker datePicker, int year, int month, int dayOfMonth) { mDatebtn.setText(dayOfMonth + "-" + (month + 1) + "-" + year); } }, year, month, day); datePickerDialog.show(); } private void setAlarm(String text, String date, String time) { AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(getApplicationContext(), AlarmBroadcastReceiver.class); intent.putExtra("event", text); intent.putExtra("time", date); intent.putExtra("date", time); PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); String dateandtime = date + " " + timeTonotify; DateFormat formatter = new SimpleDateFormat("d-M-yyyy hh:mm"); try { Date date1 = formatter.parse(dateandtime); am.set(AlarmManager.RTC_WAKEUP, date1.getTime(), pendingIntent); Toast.makeText(this, "Alarm is set", Toast.LENGTH_SHORT).show(); } catch (ParseException e) { e.printStackTrace(); } } }
Editor is loading...
Leave a Comment