Git Product home page Git Product logo

calendarnotification's People

Contributors

a-ira avatar flavien06 avatar madill avatar poussinou avatar quarck avatar russianchamp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

calendarnotification's Issues

Issue/Bug: When snoozing from the notification bar, the launcher is called instead of reverting back to the last open app.

This occurs on the Samsung S7. Action to reproduce:

  1. User is in an app e.g. Gmail or Chrome.
  2. Alert fires and is listed in the notification bar.
  3. Notification bar is pulled down.
  4. Alert is swiped down to expose "Snooze" option.
  5. Snooze is selected
  6. Snooze page appears and user selects e.g. 15 mins.
  7. Snooze page closes and the user is taken to the home screen instead of back to the app that was being viewed when the alert fired.
  8. To return to the last state prior to the alert firing, the user presses the Recent Apps key and taps the most recent app.

Bug: invalid code for detecting number of reminder fires

This:

            val lastFireTime = Math.max(lastNotification, lastReminder);

            val numRemindersFired = (lastFireTime - lastReminder) / interval
            val maxFires = settings.maxNumberOfReminders

            val silentUntil = QuietHoursManager.getSilentUntil(settings)

            if (maxFires == 0 || numRemindersFired <= maxFires) {

is no longer valid with quiet time

TODO: add snooze for / snooze until options

It would be great if you could add an option with a drop down menu called snooze for and snooze until and have that populated with many different options. This gives users the ability to size for an exact amount based on the event. I'm including some snap shots.

Add notification reminders

As described / requested by users:

Allow the user to set a custom notification reminder in minutes that will trigger the notification again if it wasnt snoozed or dismissed.
So if the user doesnt interact with the notification for 5 min (for example) it will trigger the alarm again.

and

if the notification start because an event in the calendar, the ringtone should repeat it self until the user intervene.
The parameters that in your program will be:

  1. How many time the ringtone will repeat it self, for example 2 time or indefinitely until the user demist or delay the event.
  2. The delay between repeat ringtone notification.

java.lang.RuntimeException: Unable to start receiver com.github.quarck.calnotify.broadcastreceivers.BroadcastReceiverReminderAlarm: android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file (code 14)

java.lang.RuntimeException: Unable to start receiver com.github.quarck.calnotify.broadcastreceivers.BroadcastReceiverReminderAlarm: android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file (code 14)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2955)
at android.app.ActivityThread.access$1800(ActivityThread.java:172)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1498)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5835)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file (code 14)
at android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow(Native Method)
at android.database.sqlite.SQLiteConnection.executeForCursorWindow(SQLiteConnection.java:1015)
at android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:836)
at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)
at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:147)
at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:136)
at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:197)
at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:237)
at com.github.quarck.calnotify.eventsstorage.EventsStorage.getEventsImpl(EventsStorage.kt:271)
at com.github.quarck.calnotify.eventsstorage.EventsStorage.getEvents(EventsStorage.kt:384)
at com.github.quarck.calnotify.EventsManager.hasActiveEvents(EventsManager.kt:95)
at com.github.quarck.calnotify.broadcastreceivers.BroadcastReceiverReminderAlarm$onReceive$1.invoke(BroadcastReceiverReminderAlarm.kt:53)
at com.github.quarck.calnotify.broadcastreceivers.BroadcastReceiverReminderAlarm$onReceive$1.invoke(BroadcastReceiverReminderAlarm.kt:39)
at com.github.quarck.calnotify.utils.SystemUtilsKt.wakeLocked(SystemUtils.kt:49)
at com.github.quarck.calnotify.broadcastreceivers.BroadcastReceiverReminderAlarm.onReceive(BroadcastReceiverReminderAlarm.kt:49)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2948)
... 9 more

Icons are too light & low res

This is a pretty minor issue, but the snooze and dismiss icons' gray color are too light; they should be the same darkness as the text next to them. They also seem slightly low res and blurry on my device (a Nexus 5, which has an XXHDPI screen I think). For comparison, other apps (FastMail and Signal in this case) have crisper and darker icons.

Thanks for the useful app!

screenshot_20160307-140546
screenshot_20160307-140601
screenshot_20160307-205623

Issue/Bug: 8 or more active alarms makes looping alarm noise and default alarm tone

Phone: Samsung S7

Situation to reproduce:

  1. Set alarm tone to something not default (in my case a "click" sounding tone)
  2. Set 8 or 9 events, 1 minute apart, and let them all fire without touching them

Observe:

  • As the alarms fire, the first 7 will sound with the set tone (e.g. the "click").
  • When then 8th tone sounds, it seems to use a default tone - a chime sound.
  • If the screen is active when the 8th or 9th alarm is firing, it gets stuck in a loop and the chime keeps going unless either the screen is turned off or the user can snooze or clear a couple of them.

Feature Request: Sort by next-alarm time.

When looking at the list of items that have had an alarm fire, or are snoozed, sort them by Snooze Date/Time order and re-order when any change is made. This way when a new item enters the list and is snoozed for e.g. 3 hrs, it is resorted down the list into the correct sort location.

Add Custom LED Notification Light

As requested by users:

Add the option to specify the color of the notification led, maybe even different colors for different calendars, the same would go for the notification sound.

Requested by Nils

DB connection leak

many of these:

05-16 19:26:56.831 30486 30493 W SQLiteConnectionPool: A SQLiteConnection object for database '+data+user+0+com_github_quarck_calnotify+databases+Events' was leaked! Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.

Issue: today / tomorrow detection is not accurate

Situation:

Current time: 0:40, GMT+1
Alarm time: 1:40, GMT+1 (e.g. in one hour)

Alarm is displayed as "Snoozed until tomorrow, 1:40", while it is already today. GMT offset is not accounted when calculating today / tomorrow (e.g. in GMT+0 timezone current would be 23:40 and alarm time 0:40)

When installed from F-Droid, does not ask for Calendar access

When Calendar Notification Plus is installed via both F-Droid and Google Play, it does not ask for permission to access the calendar. It therefore doesn't work until it is manually given that permission via Android's settings. Tested on a Nexus 5 running Android 6.0.1.

(Sorry, just realized it does the same thing with Google Play, hence the incorrect title.)

crash oneplus one cm11 44s no gogle account xposed moudle

java.lang.RuntimeException: Unable to start receiver com.github.quarck.calnotify.broadcastreceivers.BroadcastReceiverEventReminder: java.lang.IllegalStateException: desc must not be null
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2452)
at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:631)
at android.app.ActivityThread.handleReceiver(Native Method)
at android.app.ActivityThread.access$1700(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: desc must not be null
at com.github.quarck.calnotify.calendar.CalendarUtils.cursorToEventRecord(CalendarUtils.kt:60)
at com.github.quarck.calnotify.calendar.CalendarUtils.getFiredEventsDetails(CalendarUtils.kt:97)
at com.github.quarck.calnotify.broadcastreceivers.BroadcastReceiverEventReminder.onReceive(BroadcastReceiverEventReminder.kt:50)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2445)
at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:631)
at android.app.ActivityThread.handleReceiver(Native Method)
at android.app.ActivityThread.access$1700(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
at dalvik.system.NativeStart.main(Native Method)

Feature Request: Wake screen.

When an alarm fires, have an option to allow it to wake the screen and display the alarm (I am looking for functionality similar to Calendar Snooze here - I learned about your app from your comments there, thankyou!).

after snooze edited the event when saved the event the app crashed

java.lang.RuntimeException: Unable to start receiver com.github.quarck.calnotify.broadcastreceivers.BroadcastReceiverCalendarChanged: java.lang.IllegalStateException: location must not be null
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2452)
at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:595)
at android.app.ActivityThread.handleReceiver(Native Method)
at android.app.ActivityThread.access$1700(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: location must not be null
at com.github.quarck.calnotify.calendar.CalendarUtils.cursorToEventRecord(CalendarUtils.kt:58)
at com.github.quarck.calnotify.calendar.CalendarUtils.getEvent(CalendarUtils.kt:153)
at com.github.quarck.calnotify.EventsManager$Companion.reloadCalendar(EventsManager.kt:89)
at com.github.quarck.calnotify.EventsManager$Companion.onCalendarChanged(EventsManager.kt:154)
at com.github.quarck.calnotify.broadcastreceivers.BroadcastReceiverCalendarChanged.onReceive(BroadcastReceiverCalendarChanged.kt:32)
at android.app.ActivityThread.handleReceiver(ActivityThread.java:2445)
at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:595)
at android.app.ActivityThread.handleReceiver(Native Method)
at android.app.ActivityThread.access$1700(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1281)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
at dalvik.system.NativeStart.main(Native Method)

Bug: new debug build:

When there are more than 8 events on the screen, new events are not sounded as event is added into "collapsed" area

Noise in the logs

05-14 01:40:08.430 28760-28760/com.github.quarck.calnotify W/dalvikvm: DexOpt: resolve class illegal access: Lcom/github/quarck/calnotify/ui/ServiceUINotifier$Companion; -> Lkotlin/jvm/internal/DefaultConstructorMarker;
05-14 01:40:08.430 28760-28760/com.github.quarck.calnotify E/dalvikvm: Could not find class 'kotlin.jvm.internal.DefaultConstructorMarker', referenced from method com.github.quarck.calnotify.ui.ServiceUINotifier$Companion.
05-14 01:40:08.430 28760-28760/com.github.quarck.calnotify W/dalvikvm: VFY: unable to resolve check-cast 2852 (Lkotlin/jvm/internal/DefaultConstructorMarker;) in Lcom/github/quarck/calnotify/ui/ServiceUINotifier$Companion;
05-14 01:40:08.430 28760-28760/com.github.quarck.calnotify D/dalvikvm: VFY: replacing opcode 0x1f at 0x0039
05-14 01:40:08.430 28760-28760/com.github.quarck.calnotify D/ServiceUINotifier: onBind

Reminder interval issue

I also noticed that the reminders seem to be coming every 5 minutes even though I selected 3 minutes. That is not something I am concerned about since I selected 3 minutes only to make the testing happen faster. I would normally use 10 minutes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.