Commit 8c87a0cf authored by RAUSHAN RAJ's avatar RAUSHAN RAJ

Firebase auth and data pushing working

parent e9ed32f3
# Remindly
Android reminder app
Android reminderDO app
Features
-------
- Material Design UI
- Repeating reminders. Set intervals in minutes, hours, days, weeks and months
- Repeating reminderDOS. Set intervals in minutes, hours, days, weeks and months
- Completely free and ad-free
......
......@@ -7,7 +7,7 @@ android {
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "com.blanyal.remindme"
applicationId "com.sudogeeks.talking_reminder"
minSdkVersion 16
targetSdkVersion 29
versionCode 2
......@@ -41,13 +41,13 @@ dependencies {
implementation 'org.jetbrains:annotations-java5:15.0'
// add the Firebase SDK Dependencies
// implementation 'com.google.firebase:firebase-analytics:17.2.0'
// implementation 'com.google.firebase:firebase-database:19.2.0'
// implementation 'com.google.firebase:firebase-auth:19.1.0'
// implementation 'com.firebaseui:firebase-ui-auth:6.0.2'
implementation 'com.google.firebase:firebase-analytics:17.2.0'
implementation 'com.google.firebase:firebase-database:19.2.0'
implementation 'com.google.firebase:firebase-auth:19.1.0'
implementation 'com.firebaseui:firebase-ui-auth:6.0.2'
// implementation 'com.google.firebase:firebase-appindexing:19.0.0'
// implementation 'com.google.firebase:firebase-firestore:21.2.0'
// implementation 'com.google.gms:google-services:4.3.2'
// implementation 'com.google.firebase:firebase-storage:19.1.0'
}
//apply plugin: 'com.google.gms.google-services'
\ No newline at end of file
apply plugin: 'com.google.gms.google-services'
\ No newline at end of file
......@@ -14,19 +14,33 @@ import androidx.core.app.NotificationCompat;
import java.util.Calendar;
/** \brief A class to do something
*
* description class ke andar
*
*
*
*
*/
public class AlarmReceiver extends BroadcastReceiver {
AlarmManager mAlarmManager;
PendingIntent mPendingIntent;
@Override
/** description
* @param context: what context is
* @return void
*
*
*/
public void onReceive(Context context, Intent intent) {
int mReceivedID = Integer.parseInt(intent.getStringExtra(ReminderEditActivity.EXTRA_REMINDER_ID));
//Get notification title from Reminder Database
//Get notification title from ReminderDO Database
ReminderDatabase rb = new ReminderDatabase(context);
Reminder reminder = rb.getReminder(mReceivedID);
String mTitle = reminder.getTitle();
ReminderDO reminderDO = rb.getReminder(mReceivedID);
String mTitle = reminderDO.getTitle();
// Create intent to open ReminderEditActivity on notification click
......@@ -80,10 +94,16 @@ public class AlarmReceiver extends BroadcastReceiver {
}
/**
*
* @param context
* @param calendar
* @param ID
*/
public void setAlarm(Context context, Calendar calendar, int ID) {
mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
// Put Reminder ID in Intent Extra
// Put ReminderDO ID in Intent Extra
Intent intent = new Intent(context, AlarmReceiver.class);
intent.putExtra(ReminderEditActivity.EXTRA_REMINDER_ID, Integer.toString(ID));
mPendingIntent = PendingIntent.getBroadcast(context, ID, intent, PendingIntent.FLAG_CANCEL_CURRENT);
......@@ -109,7 +129,7 @@ public class AlarmReceiver extends BroadcastReceiver {
public void setRepeatAlarm(Context context, Calendar calendar, int ID, long RepeatTime) {
mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
// Put Reminder ID in Intent Extra
// Put ReminderDO ID in Intent Extra
Intent intent = new Intent(context, AlarmReceiver.class);
intent.putExtra(ReminderEditActivity.EXTRA_REMINDER_ID, Integer.toString(ID));
mPendingIntent = PendingIntent.getBroadcast(context, ID, intent, PendingIntent.FLAG_CANCEL_CURRENT);
......@@ -135,7 +155,7 @@ public class AlarmReceiver extends BroadcastReceiver {
public void cancelAlarm(Context context, int ID) {
mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
// Cancel Alarm using Reminder ID
// Cancel Alarm using ReminderDO ID
mPendingIntent = PendingIntent.getBroadcast(context, ID, new Intent(context, AlarmReceiver.class), 0);
mAlarmManager.cancel(mPendingIntent);
......
......@@ -38,9 +38,9 @@ public class BootReceiver extends BroadcastReceiver {
mCalendar = Calendar.getInstance();
mAlarmReceiver = new AlarmReceiver();
List<Reminder> reminders = rb.getAllReminders();
List<ReminderDO> reminderDOS = rb.getAllReminders();
for (Reminder rm : reminders) {
for (ReminderDO rm : reminderDOS) {
mReceivedID = rm.getID();
mRepeat = rm.getRepeat();
mRepeatNo = rm.getRepeatNo();
......
......@@ -12,6 +12,8 @@ import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.view.ActionMode;
import androidx.appcompat.widget.Toolbar;
......@@ -23,12 +25,21 @@ import com.amulyakhare.textdrawable.util.ColorGenerator;
import com.bignerdranch.android.multiselector.ModalMultiSelectorCallback;
import com.bignerdranch.android.multiselector.MultiSelector;
import com.bignerdranch.android.multiselector.SwappingHolder;
import com.firebase.ui.auth.AuthUI;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedHashMap;
......@@ -46,6 +57,15 @@ public class MainActivity extends AppCompatActivity {
private ReminderDatabase rb;
private MultiSelector mMultiSelector = new MultiSelector();
private AlarmReceiver mAlarmReceiver;
private FirebaseDatabase firebaseDatabase; //Entrypoint for our firebase database
private DatabaseReference reminderDatabaseReference; //To references specific part of the database
private ChildEventListener dbChildEventListener; //No notify the app whenever data changes in firebase database
private FirebaseAuth firebaseAuth; //For User authentication
private FirebaseAuth.AuthStateListener authStateListener; //Listener which invokes whenever auth state changes
private ArrayList<ReminderDO> reminderDOArrayList = new ArrayList<>();
private static final int RC_SIGN_IN = 123; // Choose an arbitrary request code value
// Multi select items in recycler view
private ModalMultiSelectorCallback mDeleteMode = new ModalMultiSelectorCallback(mMultiSelector) {
......@@ -70,7 +90,7 @@ public class MainActivity extends AppCompatActivity {
int id = IDmap.get(i);
// Get reminder from reminder database using id
Reminder temp = rb.getReminder(id);
ReminderDO temp = rb.getReminder(id);
// Delete reminder
rb.deleteReminder(temp);
// Remove reminder from recycler view
......@@ -93,7 +113,7 @@ public class MainActivity extends AppCompatActivity {
// To check is there are saved reminders
// If there are no reminders display a message asking the user to create reminders
List<Reminder> mTest = rb.getAllReminders();
List<ReminderDO> mTest = rb.getAllReminders();
if (mTest.isEmpty()) {
mNoReminderView.setVisibility(View.VISIBLE);
......@@ -123,6 +143,34 @@ public class MainActivity extends AppCompatActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Routine : check user Authentication
firebaseDatabase = FirebaseDatabase.getInstance();
firebaseAuth = FirebaseAuth.getInstance();
FirebaseUser user = firebaseAuth.getCurrentUser();
authStateListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if(user != null){
//User is signed in
reminderDatabaseReference = firebaseDatabase.getReference().child("reminders").child(user.getUid());
Toast.makeText(MainActivity.this, "You're now signed in.\nWelcome to Talking ReminderDO!", Toast.LENGTH_SHORT).show();
attachDatabaseReadListener();
} else {
//User is signed out
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setIsSmartLockEnabled(false)
.setAvailableProviders(Arrays.asList(
new AuthUI.IdpConfig.GoogleBuilder().build(),
new AuthUI.IdpConfig.EmailBuilder().build()))
.build(),
RC_SIGN_IN);
}
}
};
// Initialize reminder database
rb = new ReminderDatabase(getApplicationContext());
......@@ -134,7 +182,7 @@ public class MainActivity extends AppCompatActivity {
// To check is there are saved reminders
// If there are no reminders display a message asking the user to create reminders
List<Reminder> mTest = rb.getAllReminders();
List<ReminderDO> mTest = rb.getAllReminders();
if (mTest.isEmpty()) {
mNoReminderView.setVisibility(View.VISIBLE);
......@@ -164,6 +212,50 @@ public class MainActivity extends AppCompatActivity {
mAlarmReceiver = new AlarmReceiver();
}
//Private Helper methods
private void attachDatabaseReadListener(){
//TODO Attaching Listener to ChildEventListener
if (dbChildEventListener == null) { // Only now create new Event Listener
dbChildEventListener = new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
ReminderDO reminderObject = dataSnapshot.getValue(ReminderDO.class);
reminderDOArrayList.add(reminderObject);
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
}
reminderDatabaseReference.addChildEventListener(dbChildEventListener);
}
private void detachDatabaseReadListener(){
if (dbChildEventListener != null) {
reminderDatabaseReference.removeEventListener(dbChildEventListener);
dbChildEventListener = null;
}
}
@Override
protected void onPause(){
super.onPause();
if (authStateListener != null) {
firebaseAuth.removeAuthStateListener(authStateListener);
}
detachDatabaseReadListener();
//reminderAdapter.clear();
}
// Create context menu for long press actions
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
......@@ -185,6 +277,18 @@ public class MainActivity extends AppCompatActivity {
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mAdapter.setItemCount(getDefaultItemCount());
if(requestCode == RC_SIGN_IN){
if(resultCode == RESULT_OK){
Toast.makeText(this, "Signed in", Toast.LENGTH_SHORT);
startActivity(new Intent(MainActivity.this, ReminderAddActivity.class));
}
else if (requestCode == RESULT_CANCELED){
Toast.makeText(this, "Sign in cancelled", Toast.LENGTH_SHORT);
finish();
}
}
}
// Recreate recycler view
......@@ -192,10 +296,10 @@ public class MainActivity extends AppCompatActivity {
@Override
public void onResume() {
super.onResume();
firebaseAuth.addAuthStateListener(authStateListener);
// To check is there are saved reminders
// If there are no reminders display a message asking the user to create reminders
List<Reminder> mTest = rb.getAllReminders();
List<ReminderDO> mTest = rb.getAllReminders();
if (mTest.isEmpty()) {
mNoReminderView.setVisibility(View.VISIBLE);
......@@ -215,28 +319,27 @@ public class MainActivity extends AppCompatActivity {
return 100;
}
// Create menu
/**
* Main menu actions
* @param menu
* @return
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}
// Setup menu
// @Override
// public boolean onOptionsItemSelected(MenuItem item) {
// switch (item.getItemId()) {
// // start licenses activity
// case R.id.action_licenses:
// Intent intent = new Intent(this, LicencesActivity.class);
// startActivity(intent);
// return true;
//
// default:
// return super.onOptionsItemSelected(item);
// }
// }
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.sign_out:
//sign out
AuthUI.getInstance().signOut(this);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
// Adapter class for recycler view
......@@ -296,8 +399,8 @@ public class MainActivity extends AppCompatActivity {
public List<ReminderItem> generateData(int count) {
ArrayList<SimpleAdapter.ReminderItem> items = new ArrayList<>();
// Get all reminders from the database
List<Reminder> reminders = rb.getAllReminders();
// Get all reminderDOS from the database
List<ReminderDO> reminderDOS = rb.getAllReminders();
// Initialize lists
List<String> Titles = new ArrayList<>();
......@@ -309,15 +412,15 @@ public class MainActivity extends AppCompatActivity {
List<Integer> IDList = new ArrayList<>();
List<DateTimeSorter> DateTimeSortList = new ArrayList<>();
// Add details of all reminders in their respective lists
for (Reminder r : reminders) {
Titles.add(r.getTitle());
DateAndTime.add(r.getDate() + " " + r.getTime());
Repeats.add(r.getRepeat());
RepeatNos.add(r.getRepeatNo());
RepeatTypes.add(r.getRepeatType());
Actives.add(r.getActive());
IDList.add(r.getID());
// Add details of all reminderDOS in their respective lists
for (ReminderDO reminderDO : reminderDOS) {
Titles.add(reminderDO.getTitle());
DateAndTime.add(reminderDO.getDate() + " " + reminderDO.getTime());
Repeats.add(reminderDO.getRepeat());
RepeatNos.add(reminderDO.getRepeatNo());
RepeatTypes.add(reminderDO.getRepeatType());
Actives.add(reminderDO.getActive());
IDList.add(reminderDO.getID());
}
int key = 0;
......
......@@ -36,10 +36,10 @@ public class NotificationHelper extends ContextWrapper {
}
int mReceivedID = Integer.parseInt(intent.getStringExtra(ReminderEditActivity.EXTRA_REMINDER_ID));
//
//Get notification title from Reminder Database
//Get notification title from ReminderDO Database
ReminderDatabase rb = new ReminderDatabase(base);
Reminder reminder = rb.getReminder(mReceivedID);
mTitle = reminder.getTitle();
ReminderDO reminderDO = rb.getReminder(mReceivedID);
mTitle = reminderDO.getTitle();
// Create intent to open ReminderEditActivity on notification click
Intent editIntent = new Intent(base, ReminderEditActivity.class);
......
......@@ -31,6 +31,10 @@ import androidx.core.content.ContextCompat;
import androidx.core.content.FileProvider;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
......@@ -71,6 +75,10 @@ public class ReminderAddActivity extends AppCompatActivity {
private String mRepeatType;
private String mActive;
private FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
private FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
private DatabaseReference dbReference = firebaseDatabase.getReference().child("reminders");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
......@@ -109,7 +117,7 @@ public class ReminderAddActivity extends AppCompatActivity {
mDate = mDay + "/" + mMonth + "/" + mYear;
mTime = mHour + ":" + mMinute;
// Setup Reminder Title EditText
// Setup ReminderDO Title EditText
mTitleText.addTextChangedListener(new TextWatcher() {
@Override
......@@ -358,16 +366,16 @@ public class ReminderAddActivity extends AppCompatActivity {
mRepeatNoText = (TextView) findViewById(R.id.set_repeat_no);
mRepeatTypeText = (TextView) findViewById(R.id.set_repeat_type);
*/
Reminder talkingReminder = new Reminder();
talkingReminder.setTitle(mTitle);
talkingReminder.setDate(mDate);
talkingReminder.setTime(mTime);
talkingReminder.setRepeat(mRepeat);
talkingReminder.setRepeatNo(mRepeatNo);
talkingReminder.setRepeatType(mRepeatType);
ReminderDO talkingReminderDO = new ReminderDO();
talkingReminderDO.setTitle(mTitle);
talkingReminderDO.setDate(mDate);
talkingReminderDO.setTime(mTime);
talkingReminderDO.setRepeat(mRepeat);
talkingReminderDO.setRepeatNo(mRepeatNo);
talkingReminderDO.setRepeatType(mRepeatType);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
//String fileName=Environment.getExternalStorageDirectory()+"talkingReminder.json";
//String fileName=Environment.getExternalStorageDirectory()+"talkingReminderDO.json";
//First write the data to a temporary file
FileOutputStream outputStream;
......@@ -384,7 +392,7 @@ public class ReminderAddActivity extends AppCompatActivity {
}
try {
String fileContents = gson.toJson(talkingReminder);
String fileContents = gson.toJson(talkingReminderDO);
outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
outputStream.write(fileContents.getBytes());
outputStream.close();
......@@ -403,8 +411,16 @@ public class ReminderAddActivity extends AppCompatActivity {
public void saveReminder() {
ReminderDatabase rb = new ReminderDatabase(this);
// Creating Reminder
int ID = rb.addReminder(new Reminder(mTitle, mDate, mTime, mRepeat, mRepeatNo, mRepeatType, mActive));
// Creating ReminderDO
int ID = rb.addReminder(new ReminderDO(mTitle, mDate, mTime, mRepeat, mRepeatNo, mRepeatType, mActive));
//Storing Reminders in firebase database
ReminderDO reminderDO = new ReminderDO(mTitle, mDate, mTime, mRepeat, mRepeatNo, mRepeatType, mActive);
FirebaseUser user = firebaseAuth.getCurrentUser();
reminderDO.setOwnerID(user.getEmail());
reminderDO.setReceiverID("null");
dbReference.child(user.getUid()).push().setValue(reminderDO);
// Set up calender for creating the notification
mCalendar.set(Calendar.MONTH, --mMonth);
......@@ -473,7 +489,7 @@ public class ReminderAddActivity extends AppCompatActivity {
mTitleText.setText(mTitle);
if (mTitleText.getText().toString().trim().length() == 0)
mTitleText.setError("Reminder Title cannot be blank!");
mTitleText.setError("ReminderDO Title cannot be blank!");
else {
saveReminder();
......
package com.sudogeeks.talking_reminder;
// Reminder class
public class Reminder {
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
// ReminderDO class
//@Data
@Data
public class ReminderDO {
private int mID;
private String mTitle;
private String mDate;
......@@ -10,9 +16,11 @@ public class Reminder {
private String mRepeatNo;
private String mRepeatType;
private String mActive;
private String ownerID = null; //Email Id of the owner/creater of the reminder
private String receiverID = null; //Email Id of the receiver of the reminder;
public Reminder(int ID, String Title, String Date, String Time, String Repeat, String RepeatNo, String RepeatType, String Active) {
public ReminderDO(int ID, String Title, String Date, String Time, String Repeat, String RepeatNo, String RepeatType, String Active) {
mID = ID;
mTitle = Title;
mDate = Date;
......@@ -23,7 +31,7 @@ public class Reminder {
mActive = Active;
}
public Reminder(String Title, String Date, String Time, String Repeat, String RepeatNo, String RepeatType, String Active) {
public ReminderDO(String Title, String Date, String Time, String Repeat, String RepeatNo, String RepeatType, String Active) {
mTitle = Title;
mDate = Date;
mTime = Time;
......@@ -33,7 +41,23 @@ public class Reminder {
mActive = Active;
}
public Reminder() {
ReminderDO() {
}
public String getOwnerID() {
return ownerID;
}
public void setOwnerID(String ownerID) {
this.ownerID = ownerID;
}
public String getReceiverID() {
return receiverID;
}
public void setReceiverID(String receiverID) {
this.receiverID = receiverID;
}
public int getID() {
......
......@@ -62,18 +62,18 @@ public class ReminderDatabase extends SQLiteOpenHelper {
onCreate(db);
}
// Adding new Reminder
public int addReminder(Reminder reminder) {
// Adding new ReminderDO
public int addReminder(ReminderDO reminderDO) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_TITLE, reminder.getTitle());
values.put(KEY_DATE, reminder.getDate());
values.put(KEY_TIME, reminder.getTime());
values.put(KEY_REPEAT, reminder.getRepeat());
values.put(KEY_REPEAT_NO, reminder.getRepeatNo());
values.put(KEY_REPEAT_TYPE, reminder.getRepeatType());
values.put(KEY_ACTIVE, reminder.getActive());
values.put(KEY_TITLE, reminderDO.getTitle());
values.put(KEY_DATE, reminderDO.getDate());
values.put(KEY_TIME, reminderDO.getTime());
values.put(KEY_REPEAT, reminderDO.getRepeat());
values.put(KEY_REPEAT_NO, reminderDO.getRepeatNo());
values.put(KEY_REPEAT_TYPE, reminderDO.getRepeatType());
values.put(KEY_ACTIVE, reminderDO.getActive());
// Inserting Row
long ID = db.insert(TABLE_REMINDERS, null, values);
......@@ -81,8 +81,8 @@ public class ReminderDatabase extends SQLiteOpenHelper {
return (int) ID;
}
// Getting single Reminder
public Reminder getReminder(int id) {
// Getting single ReminderDO
public ReminderDO getReminder(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_REMINDERS, new String[]
......@@ -102,16 +102,16 @@ public class ReminderDatabase extends SQLiteOpenHelper {
if (cursor != null)
cursor.moveToFirst();
Reminder reminder = new Reminder(Integer.parseInt(cursor.getString(0)), cursor.getString(1),
ReminderDO reminderDO = new ReminderDO(Integer.parseInt(cursor.getString(0)), cursor.getString(1),
cursor.getString(2), cursor.getString(3), cursor.getString(4),
cursor.getString(5), cursor.getString(6), cursor.getString(7));
return reminder;
return reminderDO;
}
// Getting all Reminders
public List<Reminder> getAllReminders() {
List<Reminder> reminderList = new ArrayList<>();
public List<ReminderDO> getAllReminders() {
List<ReminderDO> reminderDOList = new ArrayList<>();
// Select all Query
String selectQuery = "SELECT * FROM " + TABLE_REMINDERS;
......@@ -122,21 +122,21 @@ public class ReminderDatabase extends SQLiteOpenHelper {
// Looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Reminder reminder = new Reminder();
reminder.setID(Integer.parseInt(cursor.getString(0)));
reminder.setTitle(cursor.getString(1));
reminder.setDate(cursor.getString(2));
reminder.setTime(cursor.getString(3));
reminder.setRepeat(cursor.getString(4));
reminder.setRepeatNo(cursor.getString(5));
reminder.setRepeatType(cursor.getString(6));
reminder.setActive(cursor.getString(7));
ReminderDO reminderDO = new ReminderDO();
reminderDO.setID(Integer.parseInt(cursor.getString(0)));
reminderDO.setTitle(cursor.getString(1));
reminderDO.setDate(cursor.getString(2));
reminderDO.setTime(cursor.getString(3));
reminderDO.setRepeat(cursor.getString(4));
reminderDO.setRepeatNo(cursor.getString(5));
reminderDO.setRepeatType(cursor.getString(6));
reminderDO.setActive(cursor.getString(7));
// Adding Reminders to list
reminderList.add(reminder);
reminderDOList.add(reminderDO);
} while (cursor.moveToNext());
}
return reminderList;
return reminderDOList;
}
// Getting Reminders Count
......@@ -149,28 +149,28 @@ public class ReminderDatabase extends SQLiteOpenHelper {
return cursor.getCount();
}
// Updating single Reminder
public int updateReminder(Reminder reminder) {
// Updating single ReminderDO
public int updateReminder(ReminderDO reminderDO) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_TITLE, reminder.getTitle());
values.put(KEY_DATE, reminder.getDate());
values.put(KEY_TIME, reminder.getTime());
values.put(KEY_REPEAT, reminder.getRepeat());
values.put(KEY_REPEAT_NO, reminder.getRepeatNo());
values.put(KEY_REPEAT_TYPE, reminder.getRepeatType());
values.put(KEY_ACTIVE, reminder.getActive());
values.put(KEY_TITLE, reminderDO.getTitle());
values.put(KEY_DATE, reminderDO.getDate());
values.put(KEY_TIME, reminderDO.getTime());
values.put(KEY_REPEAT, reminderDO.getRepeat());
values.put(KEY_REPEAT_NO, reminderDO.getRepeatNo());
values.put(KEY_REPEAT_TYPE, reminderDO.getRepeatType());
values.put(KEY_ACTIVE, reminderDO.getActive());
// Updating row
return db.update(TABLE_REMINDERS, values, KEY_ID + "=?",
new String[]{String.valueOf(reminder.getID())});
new String[]{String.valueOf(reminderDO.getID())});
}
// Deleting single Reminder
public void deleteReminder(Reminder reminder) {
// Deleting single ReminderDO
public void deleteReminder(ReminderDO reminderDO) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_REMINDERS, KEY_ID + "=?",
new String[]{String.valueOf(reminder.getID())});
new String[]{String.valueOf(reminderDO.getID())});
db.close();
}
}
......@@ -64,7 +64,7 @@ public class ReminderEditActivity extends AppCompatActivity {
private int mYear, mMonth, mHour, mMinute, mDay;
private long mRepeatTime;
private Calendar mCalendar;
private Reminder mReceivedReminder;
private ReminderDO mReceivedReminderDO;
private ReminderDatabase rb;
private AlarmReceiver mAlarmReceiver;
......@@ -91,7 +91,7 @@ public class ReminderEditActivity extends AppCompatActivity {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
// Setup Reminder Title EditText
// Setup ReminderDO Title EditText
mTitleText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
......@@ -116,24 +116,24 @@ public class ReminderEditActivity extends AppCompatActivity {
/*Intent intent = getIntent();
if(intent.getType().equals("text/"+Utility.FILE_EXTENSION)){
mReceivedReminder.setTitle(intent.getStringExtra("mTitle"));
mReceivedReminderDO.setTitle(intent.getStringExtra("mTitle"));
System.out.println("**********************************");
System.out.println(mReceivedReminder.getTitle());
System.out.println(mReceivedReminderDO.getTitle());
System.out.println("**********************************");
}
else {*/
// Get reminder id from intent
mReceivedReminder = rb.getReminder(mReceivedID);
mReceivedReminderDO = rb.getReminder(mReceivedID);
//}
// Get values from reminder
mTitle = mReceivedReminder.getTitle();
mDate = mReceivedReminder.getDate();
mTime = mReceivedReminder.getTime();
mRepeat = mReceivedReminder.getRepeat();
mRepeatNo = mReceivedReminder.getRepeatNo();
mRepeatType = mReceivedReminder.getRepeatType();
mActive = mReceivedReminder.getActive();
mTitle = mReceivedReminderDO.getTitle();
mDate = mReceivedReminderDO.getDate();
mTime = mReceivedReminderDO.getTime();
mRepeat = mReceivedReminderDO.getRepeat();
mRepeatNo = mReceivedReminderDO.getRepeatNo();
mRepeatType = mReceivedReminderDO.getRepeatType();
mActive = mReceivedReminderDO.getActive();
// Setup TextViews using reminder values
mTitleText.setText(mTitle);
......@@ -381,16 +381,16 @@ public class ReminderEditActivity extends AppCompatActivity {
// On clicking the update button
public void updateReminder() {
// Set new values in the reminder
mReceivedReminder.setTitle(mTitle);
mReceivedReminder.setDate(mDate);
mReceivedReminder.setTime(mTime);
mReceivedReminder.setRepeat(mRepeat);
mReceivedReminder.setRepeatNo(mRepeatNo);
mReceivedReminder.setRepeatType(mRepeatType);
mReceivedReminder.setActive(mActive);
mReceivedReminderDO.setTitle(mTitle);
mReceivedReminderDO.setDate(mDate);
mReceivedReminderDO.setTime(mTime);
mReceivedReminderDO.setRepeat(mRepeat);
mReceivedReminderDO.setRepeatNo(mRepeatNo);
mReceivedReminderDO.setRepeatType(mRepeatType);
mReceivedReminderDO.setActive(mActive);
// Update reminder
rb.updateReminder(mReceivedReminder);
rb.updateReminder(mReceivedReminderDO);
// Set up calender for creating the notification
mCalendar.set(Calendar.MONTH, --mMonth);
......@@ -461,7 +461,7 @@ public class ReminderEditActivity extends AppCompatActivity {
mTitleText.setText(mTitle);
if (mTitleText.getText().toString().length() == 0)
mTitleText.setError("Reminder Title cannot be blank!");
mTitleText.setError("ReminderDO Title cannot be blank!");
else {
updateReminder();
......
......@@ -75,7 +75,7 @@ public class ReminderReceiveActivity extends AppCompatActivity {
try {
JSONObject obj = new JSONObject(reminderJson.toString());
//Reminder talkingReminder=new Reminder();
//ReminderDO talkingReminder=new ReminderDO();
mTitleText = findViewById(R.id.reminder_title);
mDateText = findViewById(R.id.set_date);
mTimeText = findViewById(R.id.set_time);
......@@ -102,7 +102,7 @@ public class ReminderReceiveActivity extends AppCompatActivity {
/*Intent senderIntent = new Intent(context, ReminderEditActivity.class);
senderIntent.putExtra("received", true);
senderIntent.putExtra("mTitle", "First Receive Reminder test");
senderIntent.putExtra("mTitle", "First Receive ReminderDO test");
startActivity(senderIntent);*/
}
}
......@@ -110,8 +110,8 @@ public class ReminderReceiveActivity extends AppCompatActivity {
public void saveSendReminder() {
ReminderDatabase rb = new ReminderDatabase(this);
// Creating Reminder
int ID = rb.addReminder(new Reminder(mTitleText.getText().toString(), mDateText.getText().toString(), mTimeText.getText().toString(), mRepeat, mRepeatNoText.getText().toString(), mRepeatTypeText.getText().toString(), mActive));
// Creating ReminderDO
int ID = rb.addReminder(new ReminderDO(mTitleText.getText().toString(), mDateText.getText().toString(), mTimeText.getText().toString(), mRepeat, mRepeatNoText.getText().toString(), mRepeatTypeText.getText().toString(), mActive));
// Set up calender for creating the notification
......
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.blanyal.talking_reminder.MainActivity">
<!-- <item android:id="@+id/action_licenses"-->
<!-- android:title="@string/title_activity_licenses"-->
<!-- app:showAsAction="never"/>-->
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.sudogeeks.talking_reminder.MainActivity">
<item
android:id="@+id/sign_out"
android:orderInCategory="100"
android:title="@string/sign_out"
app:showAsAction="never" />
</menu>
\ No newline at end of file
......@@ -3,4 +3,6 @@
<color name="primary">#008577</color>
<color name="primary_dark">#00574B</color>
<color name="accent">#D81B60</color>
<color name="textheader">#ffffff</color>
<color name="textbody">#000000</color>
</resources>
\ No newline at end of file
......@@ -16,6 +16,7 @@
<string name="action_discard_reminder">Discard Reminder</string>
<string name="action_save_reminder">Save Reminder</string>
<string name="no_reminders">Click on the plus button below to begin creating your reminders!</string>
<string name="no_reminders">Click on the plus button below to begin creating your reminderDOS!</string>
<string name="sign_out">sign_out</string>
</resources>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="AppTheme.Base"/>
<!-- <style name="AppTheme" parent="AppTheme.Base"/>-->
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
......@@ -17,5 +17,4 @@
<item name="android:windowNoTitle">true</item>
<item name="windowActionModeOverlay">true</item>
</style>
</resources>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment