Giter VIP home page Giter VIP logo

quran_android's Introduction

Quran for Android logo

Quran for Android

Build Status Version Github Downloads

This is a simple (Madani based) Quran app for Android.

Get it on Google Play Get it on GitHub

Credits

  • madani images from quran images project on github.
  • qaloon images used with permission of Nous Memes Editions Et Diffusion (Tunisia).
  • naskh images used with permission of SHL Info Systems.
  • translation, tafsir and Arabic data come from quranenc and King Saud University. a small number of translations also come from tanzil.

Contributing

If you'd like to contribute, please take a look at the PRs Welcome label on the issue tracker. For new features, please open an issue to discuss it before beginning implementation.

Use quran_android-code_style.xml for Android Studio / IntelliJ code styles. Import it by copying it to the Android Studio/IntelliJ IDEA codestyles folder. For Android Studio, that folder is located at ~/.AndroidStudio[Version]/config/codestyles (the root folder name may differ depending on the host machine and Android Studio version, but the rest of the path should be same). After copying the quran_android-code_style.xml, go to Code Style preferences screen and choose quran_android-code_style from Code Style Schemes.

Please set your Android studio kotlin code style based on Kotlin Coding Conventions. You can configure it from menu Settings | Editor | Code Style | Kotlin, click on "Set from…" link in the upper right corner, and select "Predefined style / Kotlin style guide" from the menu.

May Allah reward all the awesome Contributors and Translators.

Setup

Command Line

You can build Quran from the command line by running ./gradlew assembleMadaniDebug.

Android Studio / IntelliJ

Choose "Import Project," and choose the build.gradle file from the top level directory. Under "Build Variants" (a tab on the left side), choose "madaniDebug."

Using Quran for Android code in other projects

The intention behind open sourcing Quran for Android is two fold - first, to allow developers to help contribute to the app, thus speeding up the development of new features and ideas. Second, to give back to the community and serve as a code reference.

Quran for Android costs money to run - all the data (pages, audio files, and translations) are hosted on servers that people volunteer their money to pay for every month. Moreover, the data itself is the work of various scholars, organizations, or reciters, many of whom provide this data free for usage for the benefit of the ummah.

Therefore, people planning on taking this project and profiting from it (by way of ads, in app purchases, etc) are in fact stealing from the work of the contributors of this project, and from the people who volunteer to pay for the servers (since they increase the bandwidth costs on them instead of covering them themselves).

Please keep use of this code for non-profit purposes only. Also, please note that the project is under the GPL 3 license, which requires that modifications to this code be open sourced as well. Please note that the data is licensed under the various licenses of the data's authors (typically, this is CC BY-NC-ND, but may differ depending on the source of the data).

Open Source Projects Used

quran_android's People

Contributors

aabdurrahman avatar afarra avatar ahmed9914 avatar ahmedre avatar aluckin3 avatar amynbe avatar asimmohiuddin avatar bateni avatar benomaire avatar dependabot[bot] avatar doozydoz avatar eatse21 avatar fikr4n avatar habibr avatar hakimrie avatar hmaher avatar hosainnet avatar ismail-s avatar korogba avatar mahmoudhossam avatar mahmoudmabrok avatar murtraja avatar nyitgroup avatar ozbek avatar papasmile avatar renovate[bot] avatar sbou88 avatar valey avatar wiryadev avatar wnafee 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  avatar

Watchers

 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  avatar

quran_android's Issues

bookmark enhancements

  • some users want to be able to bookmark a particular ayah on a page
  • other users want to be able to name their bookmarks (this is for reading, this is for memorization, etc).

exception in translationview

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.quran.labs.androidquran/com.quran.labs.androidquran.TranslationActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2787)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2803)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4066)
at android.app.ActivityThread.access$2400(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2140)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:144)
at android.app.ActivityThread.main(ActivityThread.java:4937)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.quran.labs.androidquran.common.TranslationPageFeeder.getTranslation(TranslationPageFeeder.java:85)
at com.quran.labs.androidquran.common.TranslationPageFeeder.createPage(TranslationPageFeeder.java:54)
at com.quran.labs.androidquran.common.QuranPageFeeder.jumpToPage(QuranPageFeeder.java:67)
at com.quran.labs.androidquran.TranslationActivity.onCreate(TranslationActivity.java:53)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1069)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751)
... 12 more

Update storage path on sdcard

  • we should update the storage path on sdcard to match the recommended path by Android
    (the new location will be /sdcard/Android/data/PACKAGE_NAME/files)
  • audio files are downloaded there now..

"Arabic" menu in translation view

This is an enhancement suggestion. Can you please add the menu item to translation view to go back to arabic (by replacing about menu for example)? Right now it's not obvious especially if you have flipped a few pages (you expect that back key would take you back to previous page).

"infinite loop" when downloading translation first time

  • reset preferences.
  • choose a page.
  • switch to translation view.
  • it will ask you to download a translation - say yes and download a translation. set to active (if possible).
  • hit back - it will ask you for translation download again.

tafseer

people want english tafseer.
would be nice if we could add ibn kathir (in arabic and english).
difficult because requires us to figure out how to map these to ayah by ayah when they are not mapped ayah by ayah in whatever data sources we can look at.

cleanup views ondestroy

out of memory exception on 1.6 when i do the following:

  1. in a quran view, switch to translations view.
  2. start downloading a translation.
  3. hit home key (to go home).
  4. choose the quran downloading translation from the notification - out of memory exception when loading the splash screen.

my guess is that it's due to us never cleaning up the views when we leave the view...

improve jump to dialog

some requests are there to:
a. jump by sura name (i.e. get a sura list when you hit jump)
b. jump to a specific ayah

Page number does not change when flipping by gesture

MashaAllah, the app has gone long ways! May Allah reward you for the effort.

Here is what I've noticed. When the page number is shown on top and the page is changed by gesture the number is not updated on the top.

Also, on a side note, when the phone is in horizontal position the page flipping using clicking on the side does not always work.

Language switch in the fast menu

Another enhancement suggestion. If you were to add language switch to the "fast menu" (the one you get when clicking on a screen) that would be extra useful.

old download code cleanup

please remove the DownloadTranslationsTask and whatever else is not needed...
for example, InternetActivity (why is this an activity anyway? QuranBaseActivity is an Activity...) - what's this for? is it still used?
can we remove the legacy code to make things clearer and easier for us?

translations

  • bosnian translation.
  • russian translation.
  • bangla translation.

arabic locale breaks the app

on an arabic locale, page numbers are wrong (they are arabized rather than english) such that the requested image doesn't exist and everything dies. in other words, rather than page001.png, it looks for page٠٠١.png.

Switching back from translation brings original page

Scenario:

  1. Go to page X in arabic
  2. Click on show translation
  3. Navigate to page Y while in translation mode
  4. Hit back key to switch back to arabic

Expected behavior:

  • Expect to see page Y in arabic, however page X is shown

sometimes audio loses place

from a user email:
"Also a little bug when trying to get out of audio streaming, a couple times it loses my place and starts back at page one."

issues with partially downloaded translation

steps:

  1. start downloading a translation.
  2. kill the service.
  3. run the program and go to translations - it's there.
  4. set to active.
  5. switch to translation view - crash.

the good news is that it "erases" the file afterwards. my suggestion is to keep the same behavior but just gracefully recover from the crash (for now) - in the future, we may want to handle this better (flag to say "downloaded or not," etc).

redo about page (and credit everyayah)

everyayah.com should be in the credits list for the audio insha'Allah.
we also should redo the about page and make it nicer (and include the version number).

page state bug on orientation change

"When I open the translation in a page and flip to the next page(s) and change the orientation of the phone, application shows me the first page that I have opened.

So, for example, when I am reading page #125, I wanted to see the translation. I switched to the translation screen and started reading. When I am done with reading the translation for page #125, I flipped to the page #126 and read it out. Then if I change the orientation of the phone, I am switched back to the page #125, basically the starting page of my reading."

Page Navigation

  • Go to first page (navigate by track ball to the previous page) empty page shown..
  • Application shouldn't navigate earlier than first page..
  • Same scenario for the last page..

Display Juz2, Rob3 information

  • Upon navigating to a new page displaying a popup indicating if it is a Juz2, 7ezb or rob3
  • Add a settings to enable this notification

facebook and twitter sync

a suggestion from a user:

"It Will be nice if your app have a way to share what we are reading on Facebook. There should be an option to choose from dropdown list once we click n hold the ayah, list should have following. . share the ayah on fb, compete quran recitation on fb (once this is clicked it should update on fb like. . Hasan Adnan started reading quran surah xx ayah xx), an option to finish sharing button on fb (once this is clicked it should update on fb like. . Hasan Adnan stopped reading quran on surah xx ayah xx) if possible you can also list number of ayahs completed during the time started n finished sharing.
I got this idea from an endomondo software which tracks and keeps updating our calorie burn on fb. You can check out the endomondo software to get an idea on how they do it."

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.