1 package com.sudogeeks.talking_reminder;
3 import android.content.Context;
4 import android.content.Intent;
5 import android.net.Uri;
6 import android.os.Bundle;
7 import android.view.Menu;
8 import android.view.MenuItem;
9 import android.widget.EditText;
10 import android.widget.TextView;
11 import android.widget.Toast;
13 import androidx.appcompat.app.AppCompatActivity;
14 import androidx.appcompat.widget.Toolbar;
16 import org.json.JSONObject;
18 import java.io.InputStream;
19 import java.util.Calendar;
26 private static final long milMinute = 60000L;
27 private static final long milHour = 3600000L;
28 private static final long milDay = 86400000L;
29 private static final long milWeek = 604800000L;
30 private static final long milMonth = 2592000000L;
31 private Toolbar mToolbar;
32 private EditText mTitleText;
33 private TextView mDateText, mTimeText, mRepeatText, mRepeatNoText, mRepeatTypeText;
34 private String mRepeat;
35 private String mRepeatType;
36 private String mRepeatNo;
37 private Calendar mCalendar;
38 private int mYear, mMonth, mHour, mMinute, mDay;
39 private long mRepeatTime;
40 private String mActive;
43 protected void onCreate(Bundle savedInstanceState) {
44 super.onCreate(savedInstanceState);
45 setContentView(R.layout.activity_receive_reminder);
46 Context context =
this;
48 mCalendar = Calendar.getInstance();
49 mHour = mCalendar.get(Calendar.HOUR_OF_DAY);
50 mMinute = mCalendar.get(Calendar.MINUTE);
51 mYear = mCalendar.get(Calendar.YEAR);
52 mMonth = mCalendar.get(Calendar.MONTH) + 1;
53 mDay = mCalendar.get(Calendar.DATE);
58 mToolbar = findViewById(R.id.toolbar);
59 setSupportActionBar(mToolbar);
60 getSupportActionBar().setTitle(R.string.activity_add_reminder_label);
63 Intent intent = getIntent();
64 Uri fileUri = intent.getData();
65 StringBuilder reminderJson =
new StringBuilder();
66 if (intent.getType().equals(
"text/" +
Utility.FILE_EXTENSION)) {
68 InputStream in = getContentResolver().openInputStream(fileUri);
71 while ((i = in.read()) != -1)
72 reminderJson.append((
char) i);
76 }
catch (Exception e) {
81 JSONObject obj =
new JSONObject(reminderJson.toString());
83 mTitleText = findViewById(R.id.reminder_title);
84 mDateText = findViewById(R.id.set_date);
85 mTimeText = findViewById(R.id.set_time);
86 mRepeatText = findViewById(R.id.set_repeat);
87 mRepeatNoText = findViewById(R.id.set_repeat_no);
88 mRepeatTypeText = findViewById(R.id.set_repeat_type);
90 mRepeat = obj.getString(
"mRepeat");
91 mRepeatType = obj.getString(
"mRepeatType");
92 mRepeatNo = obj.getString(
"mRepeatNo");
94 mTitleText.setText(obj.getString(
"mTitle"));
95 mDateText.setText(obj.getString(
"mDate"));
96 mTimeText.setText(obj.getString(
"mTime"));
97 mRepeatText.setText(
"Every " + obj.getString(
"mRepeatNo") +
" " + obj.getString(
"mRepeatType") +
"(s)");
98 mRepeatNoText.setText(obj.getString(
"mRepeatNo"));
99 mRepeatTypeText.setText(obj.getString(
"mRepeatType"));
102 }
catch (Throwable t) {
121 int ID = rb.
addReminder(
new ReminderDO(mTitleText.getText().toString(), mDateText.getText().toString(), mTimeText.getText().toString(), mRepeat, mRepeatNoText.getText().toString(), mRepeatTypeText.getText().toString(), mActive));
125 mCalendar.set(Calendar.MONTH, --mMonth);
126 mCalendar.set(Calendar.YEAR, mYear);
127 mCalendar.set(Calendar.DAY_OF_MONTH, mDay);
128 mCalendar.set(Calendar.HOUR_OF_DAY, mHour);
129 mCalendar.set(Calendar.MINUTE, mMinute);
130 mCalendar.set(Calendar.SECOND, 0);
133 if (mRepeatType.equals(
"Minute")) {
134 mRepeatTime = Integer.parseInt(mRepeatNo) * milMinute;
135 }
else if (mRepeatType.equals(
"Hour")) {
136 mRepeatTime = Integer.parseInt(mRepeatNo) * milHour;
137 }
else if (mRepeatType.equals(
"Day")) {
138 mRepeatTime = Integer.parseInt(mRepeatNo) * milDay;
139 }
else if (mRepeatType.equals(
"Week")) {
140 mRepeatTime = Integer.parseInt(mRepeatNo) * milWeek;
141 }
else if (mRepeatType.equals(
"Month")) {
142 mRepeatTime = Integer.parseInt(mRepeatNo) * milMonth;
146 if (mActive.equals(
"true")) {
147 if (mRepeat.equals(
"true")) {
149 }
else if (mRepeat.equals(
"false")) {
155 Toast.makeText(getApplicationContext(),
"Saved",
156 Toast.LENGTH_SHORT).show();
163 public boolean onCreateOptionsMenu(Menu menu) {
164 getMenuInflater().inflate(R.menu.menu_receive_reminder, menu);
169 public boolean onOptionsItemSelected(MenuItem item) {
170 switch (item.getItemId()) {
174 case android.R.id.home:
180 case R.id.save_reminder:
185 return super.onOptionsItemSelected(item);