Git Product home page Git Product logo

calendor's Introduction

Build Status GitHub release GitHub license

Calendor 1.0

Design and inspiration.

Calendor is a simple material calendar designed with functionality and ease of use in mind. All national and religious holidays are marked accurately for the current year, and will be updated for the following years. Install on Google Play

Features

  • Events and holidays accurately marked
  • Add events to device calendar
  • Sticky notification on your preference

Goals

  • Rewriting to Kotlin, while applying the Clean architecture principles
  • Applying SOLID principles to achieve a testable code
  • Improve extensibility of the architecture to add other calendar systems like Gregorian and Hijri

Showcases

  • Running Service in background using sticky notification
  • Creating View using design language systems and Kotlin DSL
  • Implementating lightweight Service Locator with dynamic configuration and accesors

Contributing

Your contributions are always welcomed but for easier and faster code review please consider:

  • Feature branches are created from develop
  • When a feature is complete it is merged into the develop
  • Create a descriptively named branch
  • Every branch should only fix one issue, this way branches can be merged easier
  • Each commit should only change one thing, this way commits can be reverted easier
  • When you need feedback or help, or you think the branch is ready for merging, open a pull request
  • Refrrain from adding tools and technologies that increase the complexity of the project

License

Copyright (C) 2019 Keivan Esbati
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, version 3.

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 <https://www.gnu.org/licenses/>.

calendor's People

Contributors

farshidroohi avatar rezaiyan avatar shbhmnk avatar tenkei 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

Watchers

 avatar  avatar

calendor's Issues

Delay at the first loading

At the first time, that I open the app, almost one second I have to stay to loading the data on the screen.

Refactor Preference Helper to Kotlin

Hi, this is a first timer issue, you only have to convert PreferenceHelper class to Kotlin and optimize it using Kotlin features.

You can check here and here for step by step guide to make contribution.

NotificationService.kt line 56

in com.esbati.keivan.persiancalendar.Features.Notification.NotificationService.onDestroy

  • Number of crashes: 1
  • Impacted devices: 1

There's a lot more information about this crash on crashlytics.com:
https://fabric.io/personal-projects11111111111489234038/android/apps/com.esbati.keivan.calendor/issues/5c8e1a42f8b88c29636ca167?utm_medium=service_hooks-github&utm_source=issue_impact

Stacktrace:

Fatal Exception: java.lang.RuntimeException: Unable to stop service com.esbati.keivan.persiancalendar.Features.Notification.NotificationService@5295260: java.lang.IllegalArgumentException: Receiver not registered: com.esbati.keivan.persiancalendar.Features.Notification.NotificationBroadcastReceiver@ff18319
       at android.app.ActivityThread.handleStopService(ActivityThread.java:3522)
       at android.app.ActivityThread.-wrap26(Unknown Source)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1697)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:164)
       at android.app.ActivityThread.main(ActivityThread.java:6494)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

CalendarHelper.java line 211

in com.esbati.keivan.persiancalendar.Utils.CalendarHelper.getCalendars

  • Number of crashes: 1
  • Impacted devices: 1

There's a lot more information about this crash on crashlytics.com:
https://fabric.io/personal-projects11111111111489234038/android/apps/com.esbati.keivan.calendor/issues/5c93588af8b88c2963e98767?utm_medium=service_hooks-github&utm_source=issue_impact

Stacktrace:

Fatal Exception: java.lang.SecurityException: Permission Denial: broadcast from android asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL or android.permission.INTERACT_ACROSS_USERS
       at android.os.Parcel.readException(Parcel.java:1665)
       at android.os.Parcel.readException(Parcel.java:1618)
       at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:4195)
       at android.app.ActivityThread.acquireProvider(ActivityThread.java:5771)
       at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2434)
       at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1554)
       at android.content.ContentResolver.query(ContentResolver.java:525)
       at android.content.ContentResolver.query(ContentResolver.java:476)
       at com.esbati.keivan.persiancalendar.Utils.CalendarHelper.getCalendars(CalendarHelper.java:211)
       at com.esbati.keivan.persiancalendar.Utils.CalendarHelper.getEvents(CalendarHelper.java:246)
       at com.esbati.keivan.persiancalendar.Utils.CalendarHelper.getEventsOfDay(CalendarHelper.java:315)
       at com.esbati.keivan.persiancalendar.Services.NotificationUpdateService.onHandleIntent(NotificationUpdateService.java:27)
       at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:67)
       at android.os.Handler.dispatchMessage(Handler.java:105)
       at android.os.Looper.loop(Looper.java:156)
       at android.os.HandlerThread.run(HandlerThread.java:61)

Same issue reported here:
https://groups.google.com/forum/#!topic/android-platform/oHZmINeyMbo

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.