Skip to content

Commit

Permalink
Merge pull request #5 from SATYAJIT1910/notificationfix
Browse files Browse the repository at this point in the history
Issues with notification are fixed #3
  • Loading branch information
SATYAJIT1910 authored Jan 22, 2022
2 parents eb3cb05 + f3325b3 commit a71b163
Show file tree
Hide file tree
Showing 15 changed files with 373 additions and 19 deletions.
17 changes: 17 additions & 0 deletions .idea/deploymentTargetDropDown.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

25 changes: 13 additions & 12 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.satyajitghosh.mediclock">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SET_ALARM"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<!-- For apps with targetSDK=31 (Android 12) -->
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>
<uses-permission android:name="android.permission.SET_ALARM" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> <!-- For apps with targetSDK=31 (Android 12) -->
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />

<application
android:allowBackup="true"
android:icon="@drawable/mediclock_icon"
android:label="@string/app_name"
android:roundIcon="@drawable/mediclock_icon"
android:supportsRtl="true"
android:theme="@style/Theme.MediClock">
<activity
android:name=".TimeChangeActivity"
android:exported="false" />
<activity
android:name=".UpdateActivity"
android:exported="false" />
Expand All @@ -31,13 +35,10 @@

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- For AlarmService -->
<receiver android:name="MyBroadcastReceiver" >
</receiver>
<!-- For AlarmService -->
<service android:name=".MyAlarmService"/>
</activity> <!-- For AlarmService -->
<receiver android:name=".MyBroadcastReceiver"></receiver> <!-- For AlarmService -->
<service android:name=".MyAlarmService" />
<service android:name=".AlarmRefreshService" />
</application>


</manifest>
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,14 @@ public static void addAlert(Context context, int hour, int minute, String medici
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, hour);
cal.set(Calendar.MINUTE, minute);
cal.set(Calendar.SECOND, 00);
long time = cal.getTimeInMillis();
cal.set(Calendar.SECOND, 0);

// if alarm time has already passed, increment day by 1
if (cal.getTimeInMillis() <= System.currentTimeMillis()) {
cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH) + 1);
}

long time = cal.getTimeInMillis();

Intent intent = new Intent(context, MyBroadcastReceiver.class)
.putExtra("MedicineName", medicineName)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package com.satyajitghosh.mediclock;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.google.android.gms.auth.api.signin.GoogleSignIn;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
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.util.Iterator;
import java.util.Objects;

public class AlarmRefreshService extends Service {
private DatabaseReference mDatabase;
protected GoogleSignInAccount account;

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d("RefreshService","It is refreshed");
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
FirebaseDatabase database = FirebaseDatabase.getInstance();
mDatabase = FirebaseDatabase.getInstance().getReference().child("MedicineRecord").child(Objects.requireNonNull(account.getId()));
mDatabase.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
refreshData(snapshot);
}

@Override
public void onChildChanged(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
refreshData(snapshot);
}

@Override
public void onChildRemoved(@NonNull DataSnapshot snapshot) {

}

@Override
public void onChildMoved(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {

}

@Override
public void onCancelled(@NonNull DatabaseError error) {

}
});

return super.onStartCommand(intent, flags, startId);
}

@Override
public void onDestroy() {
super.onDestroy();
}

@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
public void refreshData(DataSnapshot snapshot) {

MedicineRecordHandler mrd = snapshot.getValue(MedicineRecordHandler.class);
AlarmManagerHandler.initAlarm(mrd,getApplicationContext());
Log.d("RefreshService",mrd.getName()+" refreshed");
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,12 @@ public void onClick(View view) {
);
}
});
findViewById(R.id.setting_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(getApplicationContext(),TimeChangeActivity.class));
}
});
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ public void onClick(View view) {
time
);
myRef.child("MedicineRecord").child(PersonID).child(mrh.getName() + AlarmManagerHandler.setUniqueNotificationId()).setValue(mrh); // It writes the new data to FireBase Database
AlarmManagerHandler.initAlarm(mrh, getApplicationContext()); //It set up the alarm for that record
// AlarmManagerHandler.initAlarm(mrh, getApplicationContext()); //It set up the alarm for that record
Toast.makeText(getApplicationContext(), "Added Successfully", Toast.LENGTH_SHORT).show();
} else {
InputValidationHandler.showDialog(HomeActivity.this); // It shows a dialog box informing user to fill the required fields.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ protected void onCreate(Bundle savedInstanceState) {
// the GoogleSignInAccount will be non-null.
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
if (account != null) {
startService(new Intent(this,AlarmRefreshService.class));
String personName = account.getDisplayName();
startActivity(new Intent(MainActivity.this, DisplayMedicineActivity.class).putExtra("UserName", personName).putExtra("Id", account.getId())
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public void onReceive(Context context, Intent intent) {
String MedicineName=intent.getStringExtra("MedicineName");
String Food=intent.getStringExtra("Food");

context.startForegroundService(new Intent(context,MyAlarmService.class)
context.startService(new Intent(context,MyAlarmService.class)
.putExtra("MedicineName",MedicineName)
.putExtra("Food",Food)
);
Expand Down
117 changes: 117 additions & 0 deletions app/src/main/java/com/satyajitghosh/mediclock/TimeChangeActivity.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
package com.satyajitghosh.mediclock;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;

import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.TextView;

import com.google.android.material.timepicker.MaterialTimePicker;
import com.google.android.material.timepicker.TimeFormat;

public class TimeChangeActivity extends AppCompatActivity {
String time = "0000";
private TextView morning_edit_time;
private TextView lunch_edit_time;
private TextView night_edit_time;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_time_change);
morning_edit_time=findViewById(R.id.morning_edit_time);
lunch_edit_time=findViewById(R.id.afternoon_edit_time);
night_edit_time=findViewById(R.id.night_edit_time);

morning_edit_time.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

MaterialTimePicker picker =
new MaterialTimePicker.Builder()
.setTimeFormat(TimeFormat.CLOCK_24H)
.setHour(12)
.setMinute(10)
.build();

picker.show(getSupportFragmentManager(), "tag");

picker.addOnPositiveButtonClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
morning_edit_time.setText(timeTextView(picker.getHour(),picker.getMinute()));
}
});

}
});
lunch_edit_time.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

MaterialTimePicker picker =
new MaterialTimePicker.Builder()
.setTimeFormat(TimeFormat.CLOCK_24H)
.setHour(12)
.setMinute(10)
.build();

picker.show(getSupportFragmentManager(), "tag");

picker.addOnPositiveButtonClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
lunch_edit_time.setText(timeTextView(picker.getHour(),picker.getMinute()));
}
});

}
});
night_edit_time.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

MaterialTimePicker picker =
new MaterialTimePicker.Builder()
.setTimeFormat(TimeFormat.CLOCK_24H)
.setHour(12)
.setMinute(10)
.build();

picker.show(getSupportFragmentManager(), "tag");

picker.addOnPositiveButtonClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
night_edit_time.setText(timeTextView(picker.getHour(),picker.getMinute()));
}
});

}
});
}
public String timeTextView(int hour,int minute){
String result="";
if(hour<10){
result="0"+Integer.toString(hour);
}
else{
result=Integer.toString(hour);
}
result+=":";
if(minute<10){
result+="0"+Integer.toString(minute);
}
else{
result+=Integer.toString(minute);
}

return result;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public void onClick(View view) {

myRef.child(key).setValue(getData()); //Updates the data to the FireBase DataBase

AlarmManagerHandler.initAlarm(getData(), getApplicationContext());
// AlarmManagerHandler.initAlarm(getData(), getApplicationContext());

startActivity(
new Intent(UpdateActivity.this, DisplayMedicineActivity.class)
Expand Down
5 changes: 5 additions & 0 deletions app/src/main/res/drawable/ic_baseline_settings_24.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M19.14,12.94c0.04,-0.3 0.06,-0.61 0.06,-0.94c0,-0.32 -0.02,-0.64 -0.07,-0.94l2.03,-1.58c0.18,-0.14 0.23,-0.41 0.12,-0.61l-1.92,-3.32c-0.12,-0.22 -0.37,-0.29 -0.59,-0.22l-2.39,0.96c-0.5,-0.38 -1.03,-0.7 -1.62,-0.94L14.4,2.81c-0.04,-0.24 -0.24,-0.41 -0.48,-0.41h-3.84c-0.24,0 -0.43,0.17 -0.47,0.41L9.25,5.35C8.66,5.59 8.12,5.92 7.63,6.29L5.24,5.33c-0.22,-0.08 -0.47,0 -0.59,0.22L2.74,8.87C2.62,9.08 2.66,9.34 2.86,9.48l2.03,1.58C4.84,11.36 4.8,11.69 4.8,12s0.02,0.64 0.07,0.94l-2.03,1.58c-0.18,0.14 -0.23,0.41 -0.12,0.61l1.92,3.32c0.12,0.22 0.37,0.29 0.59,0.22l2.39,-0.96c0.5,0.38 1.03,0.7 1.62,0.94l0.36,2.54c0.05,0.24 0.24,0.41 0.48,0.41h3.84c0.24,0 0.44,-0.17 0.47,-0.41l0.36,-2.54c0.59,-0.24 1.13,-0.56 1.62,-0.94l2.39,0.96c0.22,0.08 0.47,0 0.59,-0.22l1.92,-3.32c0.12,-0.22 0.07,-0.47 -0.12,-0.61L19.14,12.94zM12,15.6c-1.98,0 -3.6,-1.62 -3.6,-3.6s1.62,-3.6 3.6,-3.6s3.6,1.62 3.6,3.6S13.98,15.6 12,15.6z"/>
</vector>
15 changes: 14 additions & 1 deletion app/src/main/res/layout/activity_display_medicine.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,25 @@
android:layout_alignParentEnd="true"
android:layout_alignParentRight="false"
android:layout_alignParentBottom="false"
android:layout_marginHorizontal="40dp"
android:layout_marginHorizontal="60dp"
android:layout_marginTop="60dp"
android:clickable="true"
app:srcCompat="@drawable/ic_baseline_add_box_24"
tools:ignore="SpeakableTextPresentCheck" />

<ImageView
android:id="@+id/setting_btn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="false"
android:layout_alignParentBottom="false"
android:layout_marginHorizontal="20dp"
android:layout_marginTop="20dp"
android:clickable="true"
app:srcCompat="@drawable/ic_baseline_settings_24"
tools:ignore="SpeakableTextPresentCheck" />

<ImageView
android:id="@+id/empty"
android:layout_width="match_parent"
Expand Down
Loading

0 comments on commit a71b163

Please # to comment.