Giter Site home page Giter Site logo

m-i-n-a-r / birday Goto Github PK

View Code? Open in Web Editor NEW
822.0 8.0 75.0 39.81 MB

πŸŽ‰ A beautiful Kotlin app to remember birthdays and events without having to open Facebook, set alarms or rely on Google Calendar

License: Other

Kotlin 99.72% Shell 0.28%
birthday-reminder kotlin-android animated-vector-drawables room-database material-components google-contacts android material-design kotlin

birday's Issues

button vibration forced in date selection screen

Just leaving some more minor issues I found using the app. As stated in #11 I really appreciate your work with this app.

Description:
If you deselect the "Vibration" Option in the Customizations (so "No vibrations when a button is pressed" is shown), the date selection screen will still vibrate during button press. So f.e. switching the day, switching the month or pressing on the year will all trigger a phone vibration.

Thanks!

Show next N number of birthdays in the widget, along with photos.

The widget currently is very bare bones. My suggestion is - adding some more features to it.

  1. Instead of showing just one next birthday, show N number of birthdays; for example, show next 5 birthdays. Or birthdays in the next 30 days.
  2. Instead of being just all text, show the contact photos on the left or right side of each row.

Additional notification option per contact

Right now, notification settings are global and apply to all contact birthdays. But not all contacts are equally important. For most contacts, a reminder on the day of birthday is enough. For few other close friends, I'd like to get an additional notification 1 day before. For family members, I'd like to get another additional notification 1 week before.

Thus, instead of being a global setting, it'd be very useful if you can make "additional notification" a per contact setting.

Add name format strings to the localization table

The Problem

Strings involving a person's name become impossible to localize in certain languages if the name cannot be freely moved around in the localized string.

Let's take random_chinese_year for example: the current English string is Chinese zodiac sign of, which under the context of the app would become thing like Chinese zodiac sign of Dave. This is fine in most Latin-written languages or countries. However, this string becomes impossible or awkward when localized in languages such as Chinese. In Chinese, the subject has to be moved to the front of the sentence in order to make the sentence readable, less awkward, or even to make sense at all. Think of it like Dave's Chinese zodiac sign, except in English both are acceptable while in Chinese it is not.

The Solution

Add strings involving a subject (e.g., names) as a format string in the string table. The above example would become Chinese zodiac sign of %s instead. That way, languages such as Chinese could be written as %s ηš„ζ˜ŸεΊ§, where the %s has to be at the front of the sentence.

contacts

Is there a way just to add the birthdays to existing contacts easily? This way they would also be displayed in the calendar app. Alternatively there could be an option to add contacts, because realistically you would have the phone number of people you want too congratulate, right?

Maybe contact import should also be executed automatically on first start up, took me a while to find it in settings.

Wrong date when modifying a new entry

Hey there, first off: great app! I very much like the effort and detail you put into the UI!

I stumbled upon some minor issue, most similar to:
#1

If you create a new entry but have to modify the date before saving, the date selector will not use the already added date, but will go back to todays date.

So for example:

  1. I create a new entry, enter user pre and surename and add the date 14. September 2001
  2. I click "OK" on the date selector
  3. I notice that I did not change the date - only the year. So I, again, click on the "select a date" selector
  4. The date selector opens with todays date and todays year

Thanks again for your work!

suggestion: change selection behavior

atm, long-press gives stats about the entry, short-press gives the options to edit or delete.

I'd like to suggest to combine the short-press and long-press menus to one menu. Could just look like the long-press menu, but with the two buttons (edit/delete) at the bottom. or even in the top-right as icons (trashcan and pencil, for instance)

this leaves the long-press unused. could perfectly be repurposed as a way to start the selection process (selecting multiple items for bulk delete or maybe even bulk edit? although that probably would rarely be used)

Allow me to set the birth year as far back as I like

For what it's worth the app is great. However, a lot of the birthdays I want to be reminded of are for people who have passed away. Historical persons for example.

I shouldn't have to use a different app just because you only allow the person entered to be born max 100 years ago.

Please just allow us to write the year. It's faster and makes more sense. If you don't wish to add this as a default feature, please make it something I can enable in the settings.

Do this and I'll fully localise your app in a language you don't currently have as a thanks.

Sync with Contacts

Hi!

You have made a nice app, thanks for it!

It could be an interesting idea to synchronize your app with contacts. Now as I know, the feature works for import from Contacts. How about export to contacts?

I think, it'd be really cool!

Wrong date when editing a birthday

When I try changing a birthday, a Bottomsheet will show up. Clicking on the date input, a calendar is opened correctly, but it is set to the current day instead of the birthday of the person I'm trying to edit.

Feature Request: Cloud Backup

It would be great if there was an option to do a Cloud Backup. This could be done via using Google Drive or the 25MB-Auto-Backup included in Android, any cloud solution would help.

Birday does not properly handle Feb 29 birthdays

Birday crashes upon launch or any interaction when the time is set to 00:07 on 1 Jan 2021. It can be fixed by setting the date to 31 Dec 2020. Experienced on a OnePlus 7 Pro running LineageOS for microG 17.1 (Dec update; based on Android 10 Open Source Project)

suggestion: allow other anniversaries

this app is fantastic! I always forget birthdays and google contacts clutters the list too much with insignificant dates.

other than birthdays, it would be fantastic to also have the option to add other anniversaries, like weddings. and maybe even deaths? (so I don't forget to send my condolences. although I realise that the festive icons do not really match this type of event. )

Now that I think of it, allowing other events then birthdays do mess with the statistics. it's probably needed to let the user decide if it's a birthday or some other kind of event. that way you could only use the birthday-entrys for stats.

Hint texts are blocked on the home page and the favorites page

Describe the bug

Dear developer!
In the process of using, I found a bug in layout / display. As shown in the figure below, on the home page and the favorites page, hint texts are blocked by the round button below. This may be an adaptation problem. I suspect it is because display and font size are set to large (mainly due to display size).
Because of some problems with my eyesight, I often use the largest font and display.
103165857-dbaf8580-4857-11eb-9e22-120ae1901389

App version is 2.1.0, my mobile phone is Google Pixel 2, and the screen resolution setting is 1920* 1080. And my font size and display size are the largest ! ! ! Also, my Android system version is 10.0.
The above is a description of the problem. The overall experience of the software is good. You can see that the design is very attentive. Thank you very much for the efforts of the developers all the time. I hope to receive a reply. Thank you so much!!

Expected behavior

I hope that I can see all of the texts in those tab buttons, and in this circumstance, part of them seem to be blocked.

Steps to reproduce the behavior:

1.use the largest font and display in the display setting and then open this app
2.click the first tab button and then click the second one on the navigation bar at the bottom of the screen
3.this kind of error could be seen on two pages

Screenshot

(The blocked parts are marked in red)

copy copy

Environment

  1. Version of Birday: 2.1.0
  2. Device : Google Pixel 2,
  3. OS version : Android 10.0

Add build instructions or nightly builds

Less advanced users may, for various reasons, like to test the latest version of the codebase but might not know how to compile it. I, for example, would like to test my translation before the next public release. Adding build instructions or, perhaps better yet, nightly builds would make testing the application much easier.

suggestion on unknown birth years

it would be great allowing not having a birth year! Now a lot of my contacts are from the year 2000, the standard import choice if nothing is mentioned). it's a bit strange to see a notification for my grandma's 20th birthday :)

Brainstorming further on that idea: if the birth year is not known, make it possible to add someone's age! This could be calculated back to the right year so from that moment on there's no doubt on their age again.

Add translation guide

Writing a translation guide would encourage more people, especially beginners like myself to translate Birday to other languages and help explain some of the specifics required to do so.
Some things such a guide should probably include:

  • The procedure to acquire strings.xml
  • The meaning of special symbols and why they should be left where they are
  • How to use escaped characters and what they are for, e.g. won't vs. won\'t
  • How to use language specific plurals, as excellently documented by https://developer.android.com/guide/topics/resources/string-resource#Plurals
  • Explain strings that may be difficult to translate without context, along with where they might appear
  • How to submit a pull request to add the translation
  • Some general tips and tricks

You know, things that are considered common knowledge among professional translators.

Allow hiding instead of deleting dates

Usecase: I save birthdays in my contacts first. Whenever I pull the data from my contacts (because I added new data there) I have to delete some birthdays in birday which I don't want to be reminded about. If I could hide them instead of deleting, they wouldn't reappear after every sync. Right now I have to choose between deleting them in Birday everytime or deleting the data from my contacts completely. Neither are optimal solutions.

Thanks for the great app!

Improvements on the date input

I have found some ways to further improve the user experience.

  1. When the birth year is not included then it would look nicer in the input field if it would also not been shown there. In short: remove year in date input field if year is not being considered.
  2. You can't move forward to the future in the calendar. If you could, this would make it easier to select for example the next month and then pick a year. Or if the year is not being considered, then it is kind of a hassle to pick the last year just so you can pick a month which is further than the current one.

Other than that, I think the app really looks good! Good job!

Option to disable zodiac / star sign

Displaying the zodiac signs may not be an big problem for many people, but it would still be nice to be able to deactivate it. Some people are quite opposed to astrology.

Manually Import events from calendar.

I don't have all birthday's in my contacts. For some acquittances, I have birthdays saved only in calendar, but I don't have these people saved in my contacts. Thus, a useful feature for me would be - ability to import events from Calendar.

Flow -

  1. I tap "Import from calendar" button.
  2. A list of calendar events show up.
  3. I tap the event I want to import.
  4. Birday populates the fields of a new birthday reminder entry, using the data of this event.

Vibration on key press still on in calendar mode

Even though I have the vibrations on press off, it still vibrates when picking a date. I also tried restarting the app.
Also shouldn't that be something that one should choose in the system settings? Maybe remove the option?

Xperia XA2
LineageOS 17.1 (Android 10)

Support for older devices

I dont know if the programming language and effects you use are compatible with older android versions, but i would love to try your app if you add support for older versions as well :D

Add in-app language selector

I'm not sure if I'm the only one with this problem, but I prefer to keep my system language in English because my native language is very poor in IT terminology. But when I use Birday, I can't quickly work out things I don't often talk about in English such as dates and astrological signs. Seeing as though Birday pulls dates and their translations from the system, how difficult would this be to implement?

The "(youngest|oldest) person" stat calculation is not taking months into account (it seems)

Description:
I have added two birthdays for People born in this year (February and the current month: September).
In the stats it is showing me the Person born in February as "the youngest person".

So it seems it is only respecting the Year as input. Mind my non-existing Kotlin skills, but it seems to be related to this one:

private fun getAge(eventResult: EventResult) = if (!eventResult.yearMatter!!) -1 else eventResult.nextDate!!.year - eventResult.originalDate.year - 1

Numbers and Symbols aren't allowed in name

When I try to enter the legal first name of someone I know:

Su3an

The app gives the error that "Numbers and Symbols aren't allowed in names."

Unfortunately, real names have no such restrictions. That validation should be turned off, and any character should be allowed in the name fields.

Also, related, but different (I can open a separate issue for this if you want):

When I enter a first name or last name with multiple words, or with an apostrophe in it, the app auto-capitalizes the separate words. This is not always correct. For example, this legal name

Ja’net

Gets corrected to

Ja'Net

Which is not her legal name. Also, the last name

van Zijl

Gets corrected to

Van Zijl

Which is not their legal last name, and is therefore incorrect.

Do these seem like changes you'd be willing to accept for Birday? If so, let me know, and I can try to figure out how to make these changes in the code. But I don't want to bother if they for sure wouldn't be accepted.

Thank you! :)

Export to csv

Exporting and maybe importing the entries in csv or txt files would be a nice to have.

custom text setup for widget enhancement

Hi,
thanks for the great app it really looks good. It would be nice if the user could change the text setup for the widget. Right now it's like:

icon "upcoming birthdays"
<name>, <day in number> <month in text> <year>. <number> "remaining days"

for a minimalist like me, I don't need the icon or the text "upcoming birthdays" because it just takes up space I could use for useful information. what really bothers me is that there is two times information regarding the time being the exact date and the remaining days. if I could choose which text is displayed I would pick something like:
<name (maybe even full name)> is turning <number> in <number> days

this way you have the information how old someone turns and the remaining time until he/she does. so I don't have to open the app and check how old he/she gets or even calculate the age myself. getting more useful information with less text.

also it would be nice to see the next 2-3 birthdays and not just one (?). that is also a reason why it would be okay for me to drop the icon and "upcoming birthdays" and add the favourite icons before the contacts or something, so I see in an instant that one of my favourites is getting older soon

cheers

Import contacts bug

I have Android 10 and i'm using birday version 2.1.0 .

I imported a vcf file using Contact app in the contact list of the device. Each contact in this file has a display name and a birthday.
Once imported, i tried to import these contacts using birday but none of them were recognized.

Is there any way to solve this issue? A simple solution can be to let the user imports contacts using a vcf file.

Bug: Birthdays dates are displaying the wrong date

Issue:
Hi! First of all, I must thank you for the app! I'm trying to leave Facebook and I've found this app to be exactly what I needed to take that step (I love the UI, btw). However, today I added my friend's birthdays for the first time and, although the date input is showing the correct value, the timeline/dashboard is showing them as if their birthdays are one day before they actually are.

Expected behaviour:
The birthdays should display the correct date.

Additional information:
UTF offset from where I live: UTCβˆ’05:00

Birthday notification timers

Hey I work midnight shift so it would be great for me to set reminders for birthdays in the afternoon, when I wakw up. Not sure why you have limited the time frame.

Chinese year calculation should take into account full date

Years in Chinese lunar calendar ("Chinese zodiac") don't start on January 1. For example, year of the Rat started on January 25, 2020, and therefore someone born on January 10 would still be an Ox.

Birday should implement the lunar calendar properly and show the correct signs.

I've found:

track unbirthdays too: day of the week + day of month

Many people dislike the date of their birthday for some reason, for instance: if they were born on Christmas. An alternative birthday to celebrate is the day of the week plus the day of the month. My grandmother was born on Friday the 13th. She sometimes would celebrate Friday the 13th as though it were a birthday. IIRC, I think I was born on Sunday the 28th, so I could celebrate any month when the 28th is also a Sunday. The term "unbirthday" has been used a number of different ways, but while this isn't the most popular use, I think this is the only well-defined and useful definition of unbirthdays that I have come across.

Unbirthdays can occur up to twice a year, but are also absent some years, and also sometimes fall on the birthday itself. This is the kind of thing it would be helpful to rely on an app to track.

Export to external storage doesn't work

When clicking "export and share birthdays" the backup is supposed to be saved in Android/data/com.minar.birday/files. It is not saved there, there is not com.mindar.birday in Android/data. Backup can be exported to cloud eg. Nextcloud only it is not saved to phone's external storage.

App version 2.1.0 from F-Droid
Android 11
OnePlus 8T

Birthdays imported from phone contacts

The feature "Import birthdays from Google" also imports them from the phone storage (I don't have contacts saved in my google account, but the app still managed to import them from the storage). I think it would be better if it was called "Import birthdays from the phone" or something like that, since it can be confusing.

The app is great btw

Add birthday subevents

In some countries, name days are considered equal to birthdays or close to it - hence it's customary for people to note down people's birthdays, as well as name days. Having a custom field to add these in (since there might be more than 1, I have two per year) would be a welcome addition.

Suggestion: set minimum widget height to 1 row instead of 2

Hi!

I love your app, but there is one thing I'd like to see improved/changed. Currently, the minimum widget height is 2 rows, while the information shown (title/header and 1 upcoming birthday) should fit within a 1-row widget. Reducing the minimum widget height to 1 row would allow me to place some more shortcuts on my homescreen.

Notification improvements

Right now, when a birthday reminder notification pops up, the text on the notification says "upcoming birthday! Name Surname". This isn't very helpful, tbh. I can't tell whether the birthday is today, tomorrow, or day after. Instead, the notification should say "Upcoming birthday tomorrow! Name Surname" or "Birthday in 2 days! Name Surname" or "Birthday today! Name Surname."

Showing the contact's photo on notification would be cool too.

Also, can you please make the notification sticky, so that they can't be accidentally swiped away? Add a "dismiss" action button to it and only clicking that should dismiss the notification.

Add widget option to only show text if next birthday is closer than N days

Hey,
first of all, I love your app.
The widget looks really nice and I use it on my homescreen to remind me of upcomming birthdays.
At this moment the next birthday is 30 days in the future, which means for the next 30 days I will be reminded of this upcomming birthday every time I unlock my phone. I would love an option to have the widget only show text if the next birthday is closer than N days. This allows the widget to "get out of the way" if no birthdays are upcoming. Additionally, this allows for a more gentle way of beeing reminded, compared to the single notification X days before/on the birthday.
Thank you for developing this app! 😊

Date format

Would be nice if there was a DD/MM/YY mode for input.

Februar is shown as March

On the German locale, when want to choose a month in the month picker the name of the month of March is also shown for Februar. When I press on it, it shows Februar though.
When Februar is choosen, everything works fine. If not, March is shown as the month name.
How it is ("Februar" unselected):
photo_2020-10-30_20-19-20

How it should be ("Februar" selected):
photo_2020-10-30_20-44-29

Xperia XA2
LineageOS 17.1 (Android 10)

Why the restriction on numbers and symbols in names?

This seems like a pointless restriction to me. If it makes the app run faster or work better, then that makes more sense. But otherwise, why have the app work against the user for no benefit? Yeah, you don't usually see people in the real world with numbers or symbols in their name, but what if I want to put someone's online username? What if I wanna put a little heart next to my partner's name?

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.