Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding Voice Commands Feature #897

Open
wants to merge 1,629 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
1629 commits
Select commit Hold shift + click to select a range
415569b
Viewing new rub3 permenantly instead of just poping it up (#687)
Oct 4, 2016
f70a60f
Update to Android plugin 2.2.0
ahmedre Oct 4, 2016
3434a3f
Cleanup nonexistent/untranslatable strings (#690)
ozbek Oct 6, 2016
0108af8
Build against Android Nougat MR1
ahmedre Nov 15, 2016
65f7c37
Fix indentation of some xml files
ahmedre Nov 15, 2016
7e85df8
Add an import option to settings
ahmedre Nov 15, 2016
55642dc
Update sdk and build tools for Travis
ahmedre Nov 15, 2016
1429289
Update sdk and build tools for Travis (#703)
ahmedre Nov 15, 2016
03e0313
Make certain headers not clickable and cleanup
ahmedre Nov 20, 2016
54ea278
Minor code cleanup for bookmarks
ahmedre Nov 20, 2016
a6f6f36
Cleanup and some lint fixes
ahmedre Nov 21, 2016
a7fd642
More lint fixes
ahmedre Nov 21, 2016
2261605
Fix explicit LTR hardcodes for lint
ahmedre Nov 21, 2016
376360f
Fix QuranSpinner dropdown width
ahmedre Nov 21, 2016
b721c07
editorconfig
hafah Nov 21, 2016
e90bfa3
[f] .editorconfig to use spaces on all files
hafah Nov 22, 2016
ec85297
Fix more lint warnings (strings, ax, images, etc)
ahmedre Nov 23, 2016
e8d1f26
Indentation and hungarian notation
ahmedre Nov 23, 2016
7dfaf10
Re-enable lint for ci and release
ahmedre Nov 23, 2016
8316798
Cleanup README
ahmedre Nov 23, 2016
0e39439
Merge pull request #706 from hafah/patch-1
ahmedre Nov 23, 2016
694d81f
License code under GPLv3
ahmedre Nov 24, 2016
3f27a74
Support continuous indentation in editorconfig
ahmedre Nov 25, 2016
c389dd8
Make @VisibleForTesting be "otherwise private"
ahmedre Nov 26, 2016
9133548
Minor code cleanup
ahmedre Nov 26, 2016
45c3f56
Split the setting advanced options into a new preferences screen
Nov 27, 2016
d4ab0e6
Implement recent pages
ahmedre Nov 28, 2016
4bb1a29
Remove RxPreferences
ahmedre Nov 28, 2016
18b7820
Use recent pages size to correctly get quantity string
ozbek Nov 28, 2016
11a6213
Split advanced setting options into a new activity with new fragment …
Nov 28, 2016
3ed03af
Merge branch 'master' of https://github.com/quran/quran_android
Nov 28, 2016
10d8732
Use same text as in the menu to jump last page
ozbek Nov 28, 2016
cff725e
Merge pull request #713 from ozbek/master
ahmedre Nov 29, 2016
7a2b5c3
Merge pull request #715 from ozbek/i18n
ahmedre Nov 29, 2016
be1f836
Do all of the comments on the the previous pull request
Nov 29, 2016
cb566e1
Merge pull request #714 from mhussien86/master
ahmedre Nov 30, 2016
9ab16a4
Add translation for "Recent pages" (#716)
ozbek Nov 30, 2016
5f5be49
Clean up last pull request and solve arabic values issue in advanced …
mhussien86 Nov 30, 2016
d698172
Avoid an extra delete when it's not needed
ahmedre Nov 30, 2016
c5f41da
Improve Recent pages implementation
ahmedre Dec 4, 2016
fd54461
Fix broken unit test (#720)
ahmedre Dec 4, 2016
d63eb85
RxJava2 (#724)
ahmedre Dec 7, 2016
921861e
Show translation info even if translator has no localized name (#726)
ozbek Dec 7, 2016
1623625
Fix bugs with recent pages (#727)
ahmedre Dec 7, 2016
cc1a0bd
Update libraries
Dec 7, 2016
9e676be
Use the gradle plugin's annotation processing
Dec 7, 2016
a02ed53
Uzbek: correct "Found in sura" grammar (#728)
ozbek Dec 9, 2016
2a5be81
Use Retrolambda (#729)
ahmedre Dec 9, 2016
8470d98
Upgrade gradle to 2.2.3 and update README
ahmedre Dec 9, 2016
1cf56b7
Settings: remove advanced options category, move volume key navigatio…
ozbek Dec 11, 2016
15fc948
Fix crash when a translation is added/removed (#732)
ozbek Dec 12, 2016
06a5fb8
Save translator's localized name in db (#730)
ozbek Dec 12, 2016
64ce460
Add gradle.properties to git ignore list (#733)
ozbek Dec 12, 2016
327ec36
Failing tests should show stack trace
Dec 12, 2016
3432fde
Minor test cleanup
ahmedre Dec 12, 2016
a5187d5
Support shortcuts on 7.1 and certain launchers
ahmedre Dec 12, 2016
95f5394
Fix lint issues with java 8
ahmedre Dec 12, 2016
66a02e1
Revert create table statement back to static field (#734)
ozbek Dec 13, 2016
33c0d24
Update gradle version to 3.2
ahmedre Dec 13, 2016
6cb3274
Minor cleanup and tweaks for tests
ahmedre Dec 13, 2016
e169fe8
Refactoring for Dagger Application modules
ahmedre Dec 13, 2016
ca35a1a
Support Stetho network interceptor for debug
ahmedre Dec 13, 2016
d84fadf
Fix regression in Audio manager
ahmedre Dec 14, 2016
2987bbf
Enable installing debug build along with release version (#737)
ozbek Dec 15, 2016
9dafc94
Remember the last reading mode (#736)
ozbek Dec 15, 2016
24ceb11
Fix flakey recent page model test
ahmedre Dec 15, 2016
4b5ea3f
Fix flakey TagBookmarkPresenter tests
ahmedre Dec 15, 2016
f26a5c1
Update support library to 25.1.0
ahmedre Dec 15, 2016
c77f05f
Fix force close in non-Madani build types (#739)
ozbek Dec 18, 2016
1c626bb
Make BookmarkPresenterTest more stable
ahmedre Dec 18, 2016
526e1ca
Russian: add missing UI translations (#740)
ozbek Dec 18, 2016
b69d578
Turkish add/improve UI translations (#741)
ozbek Dec 18, 2016
704906a
Minor code cleanup
ahmedre Dec 18, 2016
173de03
Fix search menu in bookmarks tab (#742)
ozbek Dec 19, 2016
62ce52d
Remove unnecessary arg in AudioUtils.getQariUrl() (#744)
ozbek Dec 21, 2016
a93b2d9
Check if local copy is available prior to streaming from remote serve…
ozbek Dec 21, 2016
d75b62d
Use static provides methods
ahmedre Dec 22, 2016
693aaa9
Implement initial TranslationPresenter
ahmedre Dec 23, 2016
60eecf6
Minor cleanup on Tablet and QuranPage fragments
ahmedre Dec 23, 2016
641be8c
Use TranslationPresenter in inline translation
ahmedre Dec 23, 2016
3e7f665
Support page number for TranslationPresenter
ahmedre Dec 23, 2016
7b479c0
Use TranslationPresenter in TabletFragment
ahmedre Dec 23, 2016
64dc4a9
Clean up of Hungarian notation in some classes
ahmedre Dec 23, 2016
0faccc1
Split image response callback into an interface
ahmedre Dec 24, 2016
09e7550
Add a provider for providing and caching ayahinfo
ahmedre Dec 24, 2016
ba3ce63
Share some common code between phone and tablet
ahmedre Dec 25, 2016
06b3f93
Share more code between Quran and Tablet
ahmedre Dec 26, 2016
095bb02
Change the order or page load operations
ahmedre Dec 26, 2016
dc22989
Move touch logic into AyahTrackerPresenter
ahmedre Dec 26, 2016
98af861
Show retry button for tablet in landscape
ahmedre Dec 27, 2016
959559b
Move page downloading code into QuranPagePresenter
ahmedre Dec 27, 2016
0001768
Only try to re-download images if download failed
ahmedre Dec 27, 2016
5845ad8
Improve handling of Arabic database
ahmedre Dec 27, 2016
5a19d8b
Minor improvements to error state in tablet mode
ahmedre Dec 27, 2016
cfebff1
Replace page loading with RxJava
ahmedre Dec 27, 2016
acfa46c
Fix overlay text not showing up
ahmedre Dec 27, 2016
07e8cc9
Improve dependency injection structure
ahmedre Dec 27, 2016
df5419d
Make QuranPagePresenter injectable
ahmedre Dec 27, 2016
0721833
More DI related cleanup
ahmedre Dec 27, 2016
9e31ccc
More efficient providing of application context
ahmedre Dec 27, 2016
fa01026
Support multiple pages in TranslationPresenter
ahmedre Dec 28, 2016
2f36074
Let TranslationModel be ActivityScope
ahmedre Dec 28, 2016
e372348
Only read intent if not saved instance state (#747)
ahmedre Dec 29, 2016
2b4883e
Switch Translation Manager to RecyclerView (#745)
hosainnet Dec 30, 2016
97a52de
709 Refactor translation manager (#749)
hosainnet Dec 30, 2016
d25aa60
Introduce functional tests (#756)
hosainnet Jan 9, 2017
819b3f5
Use RecyclerView for translations
ahmedre Dec 31, 2016
80058d8
Rename old TranslationView and clean it up
ahmedre Dec 31, 2016
0d8f256
Fix indentation of colors
ahmedre Dec 31, 2016
96dd6fe
Quran.com inspired ui for translation view
ahmedre Dec 31, 2016
f2ad855
Improve ui for translations
ahmedre Dec 31, 2016
2c3eae1
Inefficient fix for tablet translation mode
ahmedre Dec 31, 2016
f7b2fda
Use the correct nullable annotation
ahmedre Dec 31, 2016
ed144a6
Hide divider for the last ayah of a sura and page
ahmedre Jan 1, 2017
120efe5
Replace ayah number view with a custom view
ahmedre Jan 1, 2017
6a559c1
Improve TranslationPresenter
ahmedre Jan 1, 2017
e756c33
Make translations list database classes singletons
ahmedre Jan 1, 2017
cf7dc69
Cache translations in TranslationsDBAdapter
ahmedre Jan 1, 2017
8dfdd6c
Make arabic and translation text selectable
ahmedre Jan 1, 2017
0277772
Fix translation manager presenter test
ahmedre Jan 1, 2017
f02b3ea
Use custom view for divider
ahmedre Jan 1, 2017
0a6572f
Update dark mode divider based on text brightness
ahmedre Jan 1, 2017
73b6877
Use a darker sura header in night mode
ahmedre Jan 1, 2017
e566aee
Remove textIsSelectable for now
ahmedre Jan 1, 2017
a740d16
Indentation and add a comment
ahmedre Jan 1, 2017
5499c21
Highlight the currently playing ayah
ahmedre Jan 2, 2017
50c7508
Scroll the RecyclerView when an ayah is selected
ahmedre Jan 2, 2017
0295a5a
Ayah number: use same text brightness as the translation text in nigh…
ozbek Jan 2, 2017
3a1b303
Use slightly smaller ayah number size
ahmedre Jan 2, 2017
7118126
Make updating highlights more efficient
ahmedre Jan 2, 2017
0e83811
Fix text selection
ahmedre Jan 3, 2017
2812d13
Support multiple translations
ahmedre Jan 6, 2017
a37f122
Fix translation name
ahmedre Jan 6, 2017
a8d8f6e
Add a test for the case with no Arabic and no data
ahmedre Jan 7, 2017
faa1ad9
Minor cleanup
ahmedre Jan 8, 2017
be9b419
Support multiple translations
ahmedre Jan 9, 2017
402fdc8
Don't use translation as spinner title
ahmedre Jan 9, 2017
4868a82
Fix build error (#761)
ozbek Jan 9, 2017
0d1755a
change "Help wanted label" to "PRs Welcome" label (#762)
Jan 9, 2017
0bfca2a
Update toolbar in translation view (#763)
ozbek Jan 10, 2017
9a5dbf6
Setup Travis CI (#764)
hosainnet Jan 11, 2017
7d74fb6
Remove QuranAyah (#767)
ahmedre Jan 13, 2017
a42bf27
Invalidate NumberFormat when Locale changes
ahmedre Jan 13, 2017
2fe1fea
Minor updates to README
ahmedre Jan 13, 2017
8b4747d
Move SuraAyahIterator into its own class
ahmedre Jan 13, 2017
d7bd1d9
Fix indentation on build.gradle
ahmedre Jan 14, 2017
6f3d61d
Update build tools and various dependencies
ahmedre Jan 14, 2017
2914fed
Ask Travis to use build tools 25.0.2 (#768)
ahmedre Jan 14, 2017
a816cea
#589 - Added swipe-to-refresh in the translation manager view (#769)
hosainnet Jan 16, 2017
2afab3d
small typo for page_description (#770)
habibr Jan 16, 2017
44469b5
Update bookmarks & tags contextual action bar translation (#771)
habibr Jan 16, 2017
1703cc5
Create booleans.xml (#774)
habibr Jan 17, 2017
fa5c60b
#758 - Added ripple effect on translation rows (#775)
hosainnet Jan 17, 2017
d2805e9
Create sura_names.xml for Indonesian (#772)
habibr Jan 17, 2017
4e3265f
Add .nomedia file to audio folder (#776)
ozbek Jan 19, 2017
ac55668
Cleanup QuranFileUtils (#777)
ozbek Jan 20, 2017
6515cd4
Fix recent pages string in Arabic
ahmedre Jan 27, 2017
aead639
Show translation even if arabic db doesn't exist
ahmedre Jan 27, 2017
7cf2fb6
Update crashlytics version
ahmedre Jan 27, 2017
738cfdb
Fix the exporting of data for debug build
ahmedre Jan 27, 2017
cfdcf33
Variable naming and lambdas for advanced settings
ahmedre Jan 27, 2017
eaba5c0
Fix exporting bookmarks often not working
ahmedre Jan 27, 2017
16d99ba
Use `external-files-path` instead of `external-path` (#780)
ozbek Jan 27, 2017
0a52e65
Fix a crash when removing advanced preferences
ahmedre Jan 28, 2017
93ec669
Replace missing Arabic string
ahmedre Jan 28, 2017
f9bd854
Bump version to 2.7.3
ahmedre Jan 28, 2017
c31d6ab
Fix an NPE on long press in landscape
ahmedre Jan 28, 2017
1d61ac8
Fix a strange verify related crash on 4.0.x
ahmedre Jan 28, 2017
a002a60
Fix a crash when tapping on translation header
ahmedre Jan 28, 2017
34f43e8
Fix a few other crashes
ahmedre Jan 28, 2017
3664aa6
Bump versions to 2.7.3-p1 and 1.0.6
ahmedre Jan 28, 2017
a8f2b2d
Fix an off by one crash when there is a -1 page
ahmedre Jan 28, 2017
72d3613
Fix a NPE when haveAllFiles is called with null
ahmedre Jan 28, 2017
6c4d2fd
Don't corrupt when gapless database is corrupt
ahmedre Jan 28, 2017
187ecf9
Fix NPE when updating tags with no selection
ahmedre Jan 28, 2017
df7b489
Fix NPE when deleting data directory
ahmedre Jan 28, 2017
86bd9a4
Fix a crash when checking available space
ahmedre Jan 28, 2017
f0adcd0
Fix switching ayahs when selected ayah is null
ahmedre Jan 28, 2017
19bc477
Fix a class cast exception
ahmedre Jan 28, 2017
cf2f734
Protect against null bookmarks or tags
ahmedre Jan 28, 2017
8d0d6a1
Protect against a crash when toggling bookmark
ahmedre Jan 28, 2017
7fdac92
Fix copying and sharing being broken
ahmedre Jan 29, 2017
7581262
Option to minimize the recents list
ahmedre Jan 29, 2017
45acd51
Bump version to 2.7.4 (1.0.7 for qaloon/naskh)
ahmedre Jan 29, 2017
ef87027
Gracefully handle broken translation dbs
ahmedre Jan 30, 2017
6ca4c4a
More explicit initialization of Crashlytics
ahmedre Jan 30, 2017
b3ed33c
Add Sura Names in German
ahmedre Feb 1, 2017
124a771
German translation updates from br Abdul-Raqeeb
ahmedre Feb 3, 2017
31ed526
Fix repeated translation
ahmedre Feb 8, 2017
ab0f855
Fix Arabic typos in About
ahmedre Feb 8, 2017
02c953d
Fix play button not working
ahmedre Feb 8, 2017
cdce299
Avoid trying to get the sura for page 0
ahmedre Feb 8, 2017
050f730
Temporarily disable translated names for German
ahmedre Feb 8, 2017
4f9a28d
Bump version to 2.7.4-p1 / 1.0.7-p1
ahmedre Feb 10, 2017
7c77aca
GitHub username changed (#813)
Ahmed9914 Feb 28, 2017
26112fe
Correcting a small type in surah name (#815)
habibr Mar 15, 2017
ac14e36
Add "More Translations" to spinner (#802)
uzairmad Mar 19, 2017
37ec98d
Jump to surah and ayah by allowing user to type (issue #799) (#805)
fikr4n Mar 19, 2017
52bbbba
Fix Arabic about strings
nyitgroup Mar 20, 2017
d99f2f7
Remove duplicate call to `showTranslationsUpgradeDialog()` (#821)
ozbek Mar 20, 2017
2d67f2e
Jump to ayah by typing text: rename variables (#822)
fikr4n Mar 20, 2017
d026351
Update build tools (Android Studio 2.3) (#823)
ozbek Mar 20, 2017
839f8a5
Initial flavor for Warsh
ahmedre Mar 20, 2017
9694183
Add shared inflation for translation spinner (#824)
uzairmad Mar 21, 2017
1de170c
Fix issue #809 Quran spinner layout width match parent (#828)
nyitgroup Mar 22, 2017
7094a1d
Uzbek: add new strings (#829)
ozbek Mar 22, 2017
c2ace8c
Fixed removing headphones not pausing audio (#831)
hosainnet Mar 25, 2017
593c168
Enable option for dual page mode on phones (#830)
Ahmed9914 Mar 25, 2017
b0a4fae
Add icons for warsh and update about
ahmedre Mar 26, 2017
ea5d7bf
Update to version 4 of translations webservice
ahmedre Mar 27, 2017
8dc7bd5
Add link to Google+ community (#842)
ozbek Apr 6, 2017
c8ef28b
Improve Farsi translations (#847)
bateni Apr 16, 2017
6ffb8ce
Refactoring "tablet-mode" into "dual-page" mode (#846)
Ahmed9914 Apr 16, 2017
5f87840
Fix Reciter Arabic Name (#852)
nyitgroup Apr 16, 2017
4598192
Change tablet strings to dual-page in strings-fa to keep up with #846…
bateni Apr 16, 2017
0b383d9
Add sheikh Ibrahm Al-Dosary for Warsh
ahmedre Apr 19, 2017
94cc5e4
Add sheikh Hudhayfi to Qaloon
ahmedre Apr 20, 2017
8cc9b21
Minor code cleanup for AyahPlaybackFragment
ahmedre Apr 20, 2017
c3eef3a
Update dependencies
ahmedre Apr 20, 2017
c0c88ec
The Juz' list page uses the English comma for English and Arabic lang…
bateni May 1, 2017
6ece9c6
Fix spinners cutting off for Farsi
ahmedre May 1, 2017
d49955b
Remove "plural_recent_pages" (#865)
ozbek May 13, 2017
198fb33
Set translatable="false" for referenced strings (#864)
ozbek May 13, 2017
17d7f73
Fix Warsh and Qaloon
g360230 May 17, 2017
6f7e613
Update library versions
ahmedre May 19, 2017
1f4ec20
Use gradle 3.5
ahmedre May 20, 2017
1508c1d
Search across all installed translations
ahmedre May 20, 2017
316aae5
Remove search results limit
ahmedre May 20, 2017
4320f1a
Cleanup unneeded active translation related code
ahmedre May 20, 2017
d69d62c
Store languageCode in the database
ahmedre May 20, 2017
5870984
Slightly improve what databases are searched
ahmedre May 20, 2017
7873500
Return results from the first db that has results
ahmedre May 21, 2017
2bbfa7c
Support sharing ayahs with translation
ahmedre May 22, 2017
d64bbe9
Wrap translator name in parentheses
ahmedre May 23, 2017
71afde2
Slightly improve the jump dialog's behavior
ahmedre May 23, 2017
2a69465
Minor cleanup for QuranDataActivity
ahmedre May 23, 2017
0f4c849
Add logging to know when images disappear
ahmedre May 23, 2017
2d7d55a
Bump version to 2.7.5 (and 1.0.8)
ahmedre May 23, 2017
c393a79
Fix an index out of bounds in search
ahmedre May 26, 2017
fec37d5
Fix a crash when the translation view is scrolling
ahmedre May 26, 2017
48e33f3
Bump version for patch release
ahmedre May 26, 2017
fbcb820
Fix indentation of readers.xml
ahmedre Jun 11, 2017
c511fb2
Add 4 gapless qaris
ahmedre Jun 11, 2017
b1ed42a
Adding Voice Commands Feature
WailB Jun 16, 2017
a3006fd
Adding microphone icon
WailB Jun 17, 2017
fc13482
Adding missing strings
WailB Jun 17, 2017
be8c0e5
Changes requested by collaborator
WailB Jun 22, 2017
78d3649
Fixing comments & Adding Features
WailB Jul 3, 2017
f9f17a2
Fixing build.gradle version
WailB Jul 3, 2017
0e0e9ba
Optimization to the code
WailB Jul 15, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 11 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2
continuation_indent_size = 4
charset = utf-8
18 changes: 17 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,22 @@
.classpath
.project
.settings
bin
gen
out
.DS_Store
local.properties
target
gen-external-apklibs
*.iml
.idea
classes
ApiKeys.java
.gradle
gradle.properties
app/src/beta
app/src/release
app/seed.txt
build/
*/crashlytics.properties
crashlytics-build.properties
com_crashlytics_export_strings.xml
25 changes: 25 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
language: android

jdk:
- oraclejdk8

android:
components:
- tools
- platform-tools
- build-tools-25.0.2
- android-25
- android-22 # required for emulator below
- extra-android-m2repository
- sys-img-armeabi-v7a-android-22

before_script:
# Create and start emulator
- echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a
- emulator -avd test -no-skin -no-audio -no-window &
- android-wait-for-emulator
- adb shell input keyevent 82 &

script:
- ./gradlew clean testMadaniRelease -PdisableCrashlytics
- ./gradlew clean connectedMadaniDebugAndroidTest -PdisableCrashlytics
44 changes: 0 additions & 44 deletions AndroidManifest.xml

This file was deleted.

46 changes: 46 additions & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
quran android contributors
==========================

### code

* [Ahmed El-Helw](https://twitter.com/ahmedre)
* [Asim Mohiuddin](https://github.com/asimmohiuddin) - images, gapless audio
and work on the Naskh version
* [g360230](https://github.com/g360230) - images and work on the Qaloon
version
* [Shuhrat Dehkanov](http://github.com/ozbek)
* [Ahmed Farra](http://github.com/afarra)
* [Hussein Maher](http://twitter.com/husseinmaher)
* [Wael Nafee](http://twitter.com/wnafee)
* [Ahmed Fouad](http://twitter.com/fo2ad)
* [Mahmoud Hossam](http://github.com/mahmoudhossam)
* [Rehab Mohamed](http://twitter.com/hams_rrr)
* [Ahmed Essam](http://twitter.com/neo_4583)
* [Hosain Al Ahmad](https://github.com/hosainnet)
* [Ahmed Abdelaal](https://github.com/Ahmed9914)

### ui and design
* [Somaia Gabr](http://twitter.com/somaiagabr).

### translators

* Farsi for version 2.0 by [M. Jafar Nakar](https://github.com/mjnanakar).
* Farsi for version 1.6 by [khajavi](http://github.com/khajavi).
* Turkish by Mehmed Mahmudoglu.
* Turkish updates by [Shuhrat Dehkanov](http://github.com/ozbek).
* Russian by Rinat [Ринат Валеев](https://github.com/Valey).
* Kurdish by [Goran Gharib Karim](https://github.com/GorranKurd).
* French by Yasser [yasserkad](http://github.com/yasserkad).
* French updates by [Abdullah ibn Nadjo](https://github.com/abdullahibnnadjo).
* German by [Armin Supuk](http://github.com/ArminSupuk).
* Chinese by [Bo Li](http://twitter.com/liboat).
* Uyghur by Abduqadir Abliz [Sahran](http://github.com/Sahran).
* Indonesian by [Saiful Khaliq](http://twitter.com/saifious).
* Malaysian by [Ahmad Syazwan](https://github.com/asyazwan).
* Spanish by [Alexander J. Salas B.](https://github.com/ajsb85).
* Uzbek by [Shuhrat Dehkanov](https://github.com/ozbek").


### and many more
* everyone we missed from the above lists - may Allah reward you!
* everyone who notified us about any bugs, made du3a for us, or that shared the app with family and friends.
Loading