Giter Club home page Giter Club logo

saschpe / birthdaycalendar Goto Github PK

View Code? Open in Web Editor NEW
72.0 11.0 20.0 19.34 MB

Get a birthday calendar for all your social networks right inside your calendar app (such as Google Calendar). Supports all apps which sync contacts with your Android device, that includes many social network and messaging apps. Enable reminder alarms and decide which contacts you want to see. You'll get notifications for all of them.

Home Page: https://sites.google.com/view/birthday-calendar/home

License: GNU General Public License v3.0

Java 32.74% HTML 65.88% Shell 1.37%
android davdroid calendar material-design app

birthdaycalendar's Introduction

Birthday Calendar

License Build Status

Get a birthday calendar for all your social networks right inside Google Calendar. Supports Facebook, LinkedIn, Xing, Skype, DavDroid and all other apps which sync contacts with your Android device. Enable reminder alarms and decide which contacts you want to see. You'll get notifications for all of them.

Features

  • Birthdays and anniversaries for all your contacts
  • Customizable reminders (same day, one day in advance, ...) and the calendar color
  • Hide the app icon after setting it up so that it does not get in your way
  • Tablet support

Source code

The source demonstrates how to use Android's account and sync frameworks as well how to create services, intent services and the communication between the components. It also showcases the usage of the contacts and calendar providers.

Screenshots

Screenshot 1

Screenshot 2

Screenshot 3

Screenshot 4

Screenshot 5

Download

Get it on F-Droid Get it on Google Play Available at Amazon

Acknowledgement

  • Sam Steele and Dominik Schürmann for providing the initial implementation of the calendar sync service.
  • breversa for the French translation.

License

Copyright (C) 2016 Sascha Peilicke  

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

birthdaycalendar's People

Contributors

breversa avatar djcrashdummy avatar franzmari avatar salim-b avatar saschpe 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

birthdaycalendar's Issues

Missing Birthday Adapter's reminder flexibility in Birthday Calendar's settings

Hi Sascha,

I liked (maybe loved?) and used Birthday Adapter - the app Birthday Calendar is based on - (and I'm still using it up to now), and for sure it's really great that you brought the concept to the next level by creating Birthday Calendar.

But why to hell you shriveled up Birthday Adapter's fantastic reminder concept with its three reminders that were able to be set to any daytime to only to simple reminders??
Please, bring (back?) Birthday Adapter's glorious reminders to Birthday Calendar - I'm really being you!




(Rem.: Nix für ungut, aber ich finde die Konfigurierbarkeit der Reminder echt eine der praktischsten Funktionen beim Birthday Adapter! ;-))

Events without year use 1970

When a contact has a an event set with a date without the year, BirthdayCalendar displays the year in messages as "1970", and computes ages (for birthday events) from 1970.

The issue is in CalendarSyncService:

if (!dateFormatString.contains("yyyy")) {
// Because no year is defined in address book, set year to 1700. When
// year < 1800, the age will be not displayed in brackets
Calendar cal = Calendar.getInstance();
cal.setTime(eventDate);
cal.set(Calendar.YEAR, 1700);
}

After setting the year of the Calendar to 1700, the Date is not updated (SufficientlySecure/birthday-calendar had the same issue: #66).

Looking through the code I could not find any other reference to the year 1700, so probably the code

for (int year = startYear; year <= endYear; year++) {
// Calculate age
final int age = year - eventYear;
String title = null;
String description = "";
if (displayName != null) {
switch (eventType) {
case ContactsContract.CommonDataKinds.Event.TYPE_CUSTOM:
String eventCustomLabel = cursor.getString(eventCustomLabelColumn);
if (eventCustomLabel != null) {
title = context.getString(R.string.event_custom_title_template, displayName, eventCustomLabel);
} else {
title = context.getString(R.string.event_other_title_template, displayName);
}
break;
case ContactsContract.CommonDataKinds.Event.TYPE_ANNIVERSARY:
title = context.getString(R.string.event_anniversary_title_template, displayName);
description = context.getResources().getQuantityString(R.plurals.event_anniversary_description_template, age, displayName, age);
break;
case ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY:
title = context.getString(R.string.event_birthday_title_template, displayName);
description = context.getResources().getQuantityString(R.plurals.event_birthday_description_template, age, displayName, eventYear, age);
break;
default:
// Includes ContactsContract.CommonDataKinds.Event.TYPE_OTHER
title = String.format(context.getString(R.string.event_other_title_template), displayName);
break;
}
}
would also need to be adapted to check for that, and the title and description strings adapted accordingly.

I have not been able to setup a test environment yet with the AVD to check it out (I'm not usually an Android dev and I get stuck on stupid things), but I can look into it further if you would like a PR.

Use possessive s correctly

Listings in the calendar show the person's nane, a possessive s and the text birthday, e.g. "John Stevens's birthday".

However, when the name ends with an s, only the apostrophe should be shown, i.e. "John Stevens' birthday"

Logo/Icon Proposal

Hi good day! Im Jibbie Eguna, a graphics designer, I would like to ask for your permission to propose a new designs of logo in your application/project. I would like to help projects in open-source .I would just like to propose new designs. Hoping for your positive response Thank You!

Birthdays are a day behind

The birthdays in the app are listed as a day behind.
E.g. a birthday on Dec 9 appears as Deb 8 in the app.

The event that appears in my calendar and the contacts apps seems fine though. Specifically the only issue is that it shows wrong if I open the BirthdayCalendar app, but everything else is correct. Perhaps it's a timezone issue? For reference, my local timezone is GMT-5.

Here's some pictures for illustration

Calendar app:
image

Contacts app:
image

Birthday app:
image

French translation

Hi !
Are you look for a french translator ? I’m willing to contribute ! :)

Birthday appears twice in the calendar

Every birthday appears twice in the calendar (see screenshots), while it does not necessarily appear twice in the "Birthday tab" (most entries do appear twice even in the Birthday tab).

Birthday adapter does not have those issues

Screenshot_20200530-190014

Screenshot_20200530-190143

[FR] Add age in event’s title (for contact’s birthday)

Hi !

One of the feature I liked the most in Birthday Adapter in that the age of the contact is displayed in the event’s title, e.g. "Alice’s birthday (50)".

That makes it so easy to shoot a quick text message with "Happy birthday Alice for your half-century !" :-)

Make the whole titles of birthdays localized

Hi :-)

Thanks a lot for your nice app!

I have a small suggestion for an improvement. I don't know how easy this would be to implement, as I only know coding C++/Qt, not Java … At the moment, a birthday's title is generated by adding "'s birthday" to the respective name. In my case, using a German locale, this would be e. g. "Tobias Leupold's Geburtstag". This is wrong, as it should be "Tobias Leupolds Geburtstag", without the apostrophe (except for names ending with "s" or "z", where only an apostrohe without the "s" would have to be appended, e. g. "Ralph Schmitz' Geburtstag").

Surely only a minor issue, but maybe something you may want to change.

Cheers, Tobias

Introduction has wrong screen size

Check the sceenshots, the beginning of the text is offscreen.

Operating system is Android 10, but I can remember a similar issue on another phone too.

Screenshot_20200530-185928
Screenshot_20200530-185933
Screenshot_20200530-185938

Build fails

Freshly cloned the project, not opened in other programs.

Log

Pastebin: https://pastebin.com/yCN5rRJx

./gradlew assembleDebug --warning-mode all      
                                                                                                         
> Configure project :mobile
BuildListener#buildStarted(Gradle) has been deprecated. This is scheduled to be removed in Gradle 7.0.
        at build_31vi8xxa1tcy0yp8hu5xojqkq.run(G:\Sonstiges\BC\BirthdayCalendar\mobile\build.gradle:18)
        (Run with --stacktrace to get the full stack trace of this deprecation warning.)
Internal API constructor DefaultDomainObjectSet(Class<T>) has been deprecated. This is scheduled to be removed in Gradle 7.0. Please use ObjectFactory.domainObjectSet(Class<T>) instead.
        at build_31vi8xxa1tcy0yp8hu5xojqkq.run(G:\Sonstiges\BC\BirthdayCalendar\mobile\build.gradle:18)
        (Run with --stacktrace to get the full stack trace of this deprecation warning.)

FAILURE: Build completed with 2 failures.

1: Task failed with an exception.
-----------
* Where:
Build file 'G:\Sonstiges\BC\BirthdayCalendar\mobile\build.gradle' line: 21

* What went wrong:
A problem occurred evaluating project ':mobile'.
> G:\Sonstiges\BC\BirthdayCalendar\local.properties (Das System kann die angegebene Datei nicht finden)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
==============================================================================

2: Task failed with an exception.
-----------
* What went wrong:
A problem occurred configuring project ':mobile'.
> compileSdkVersion is not specified.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
==============================================================================

* Get more help at https://help.gradle.org

BUILD FAILED in 1s

Make notification time configurable

I really love this app but I would like to have the option to define the time I get notified of birthdays. Currently you only can set it to notify you on the same day and one before, but not the time this notification occurs.

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.