Untitled
unknown
plain_text
2 years ago
9.1 kB
11
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