feat: Murattal player enhancements & prayer schedule auto-scroll

- Murattal: Spotify-style 5-button controls [Shuffle, Prev, Play, Next, Playlist]
- Murattal: Animated 7-bar equalizer visualization in player circle
- Murattal: Unsplash API background with frosted glass player overlay
- Murattal: Transparent AppBar with backdrop blur
- Murattal: Surah playlist bottom sheet with full 114 Surah list
- Murattal: Auto-play disabled on screen open, enabled on navigation
- Murattal: Shuffle mode for random Surah playback
- Murattal: Photographer attribution per Unsplash guidelines
- Dashboard: Auto-scroll prayer schedule to next active prayer
- Fix: setState lifecycle errors on Reading & Murattal screens
- Setup: flutter_dotenv, cached_network_image, url_launcher deps
This commit is contained in:
dwindown
2026-03-13 15:42:17 +07:00
commit faadc1865d
189 changed files with 23834 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
[
{
"id": "pagi_01",
"arabic": "أَعُوذُ بِاللَّهِ مِنَ الشَّيْطَانِ الرَّجِيمِ",
"transliteration": "A'udzu billahi minasy syaithanir rajiim",
"translation": "Aku berlindung kepada Allah dari godaan syaitan yang terkutuk",
"target_count": 1,
"source": "HR. Abu Dawud"
},
{
"id": "pagi_02",
"arabic": "بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ",
"transliteration": "Bismillahir rahmaanir rahiim",
"translation": "Dengan nama Allah Yang Maha Pengasih lagi Maha Penyayang",
"target_count": 1,
"source": ""
},
{
"id": "pagi_03",
"arabic": "أَصْبَحْنَا وَأَصْبَحَ الْمُلْكُ لِلَّهِ، وَالْحَمْدُ لِلَّهِ",
"transliteration": "Ashbahnaa wa ashbahal mulku lillah, walhamdu lillah",
"translation": "Kami telah memasuki waktu pagi dan kerajaan hanya milik Allah, segala puji bagi Allah",
"target_count": 1,
"source": "HR. Muslim"
},
{
"id": "pagi_04",
"arabic": "اللَّهُمَّ بِكَ أَصْبَحْنَا وَبِكَ أَمْسَيْنَا وَبِكَ نَحْيَا وَبِكَ نَمُوتُ وَإِلَيْكَ النُّشُورُ",
"transliteration": "Allahumma bika ashbahnaa wa bika amsainaa wa bika nahyaa wa bika namuutu wa ilaikan nusyuur",
"translation": "Ya Allah, dengan rahmat dan pertolongan-Mu kami memasuki waktu pagi, dan dengan rahmat-Mu kami memasuki waktu petang",
"target_count": 1,
"source": "HR. Tirmidzi"
},
{
"id": "pagi_05",
"arabic": "سُبْحَانَ اللَّهِ وَبِحَمْدِهِ",
"transliteration": "Subhanallahi wa bihamdihi",
"translation": "Maha Suci Allah dan dengan memuji-Nya",
"target_count": 100,
"source": "HR. Muslim"
},
{
"id": "pagi_06",
"arabic": "لاَ إِلَهَ إِلاَّ اللَّهُ وَحْدَهُ لاَ شَرِيكَ لَهُ",
"transliteration": "Laa ilaaha illallahu wahdahu laa syariika lahu",
"translation": "Tiada Tuhan selain Allah semata, tidak ada sekutu bagi-Nya",
"target_count": 10,
"source": "HR. Bukhari & Muslim"
},
{
"id": "pagi_07",
"arabic": "أَسْتَغْفِرُ اللَّهَ وَأَتُوبُ إِلَيْهِ",
"transliteration": "Astaghfirullaha wa atuubu ilaihi",
"translation": "Aku memohon ampun kepada Allah dan bertaubat kepada-Nya",
"target_count": 100,
"source": "HR. Bukhari & Muslim"
}
]

View File

@@ -0,0 +1,58 @@
[
{
"id": "petang_01",
"arabic": "أَعُوذُ بِاللَّهِ مِنَ الشَّيْطَانِ الرَّجِيمِ",
"transliteration": "A'udzu billahi minasy syaithanir rajiim",
"translation": "Aku berlindung kepada Allah dari godaan syaitan yang terkutuk",
"target_count": 1,
"source": "HR. Abu Dawud"
},
{
"id": "petang_02",
"arabic": "بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ",
"transliteration": "Bismillahir rahmaanir rahiim",
"translation": "Dengan nama Allah Yang Maha Pengasih lagi Maha Penyayang",
"target_count": 1,
"source": ""
},
{
"id": "petang_03",
"arabic": "أَمْسَيْنَا وَأَمْسَى الْمُلْكُ لِلَّهِ، وَالْحَمْدُ لِلَّهِ",
"transliteration": "Amsainaa wa amsal mulku lillah, walhamdu lillah",
"translation": "Kami telah memasuki waktu petang dan kerajaan hanya milik Allah, segala puji bagi Allah",
"target_count": 1,
"source": "HR. Muslim"
},
{
"id": "petang_04",
"arabic": "اللَّهُمَّ بِكَ أَمْسَيْنَا وَبِكَ أَصْبَحْنَا وَبِكَ نَحْيَا وَبِكَ نَمُوتُ وَإِلَيْكَ الْمَصِيرُ",
"transliteration": "Allahumma bika amsainaa wa bika ashbahnaa wa bika nahyaa wa bika namuutu wa ilaikal mashiir",
"translation": "Ya Allah, dengan rahmat-Mu kami memasuki waktu petang, dan dengan rahmat-Mu kami memasuki waktu pagi",
"target_count": 1,
"source": "HR. Tirmidzi"
},
{
"id": "petang_05",
"arabic": "سُبْحَانَ اللَّهِ وَبِحَمْدِهِ",
"transliteration": "Subhanallahi wa bihamdihi",
"translation": "Maha Suci Allah dan dengan memuji-Nya",
"target_count": 100,
"source": "HR. Muslim"
},
{
"id": "petang_06",
"arabic": "لاَ إِلَهَ إِلاَّ اللَّهُ وَحْدَهُ لاَ شَرِيكَ لَهُ",
"transliteration": "Laa ilaaha illallahu wahdahu laa syariika lahu",
"translation": "Tiada Tuhan selain Allah semata, tidak ada sekutu bagi-Nya",
"target_count": 10,
"source": "HR. Bukhari & Muslim"
},
{
"id": "petang_07",
"arabic": "أَسْتَغْفِرُ اللَّهَ وَأَتُوبُ إِلَيْهِ",
"transliteration": "Astaghfirullaha wa atuubu ilaihi",
"translation": "Aku memohon ampun kepada Allah dan bertaubat kepada-Nya",
"target_count": 100,
"source": "HR. Bukhari & Muslim"
}
]

View File

@@ -0,0 +1 @@
Placeholder for Amiri-Bold.ttf

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

100
assets/quran/quran_id.json Normal file
View File

@@ -0,0 +1,100 @@
[
{
"id": 1,
"name_arabic": "الفاتحة",
"name_latin": "Al-Fatihah",
"verse_count": 7,
"juz_start": 1,
"revelation_type": "Meccan",
"verses": [
{
"id": 1,
"arabic": "بِسْمِ اللَّهِ الرَّحْمَـٰنِ الرَّحِيمِ",
"transliteration": "Bismillaahir Rahmaanir Raheem",
"translation_id": "Dengan nama Allah Yang Maha Pengasih lagi Maha Penyayang"
},
{
"id": 2,
"arabic": "الْحَمْدُ لِلَّهِ رَبِّ الْعَالَمِينَ",
"transliteration": "Alhamdu lillaahi Rabbil 'aalameen",
"translation_id": "Segala puji bagi Allah, Tuhan seluruh alam"
},
{
"id": 3,
"arabic": "الرَّحْمَـٰنِ الرَّحِيمِ",
"transliteration": "Ar-Rahmaanir-Raheem",
"translation_id": "Yang Maha Pengasih lagi Maha Penyayang"
},
{
"id": 4,
"arabic": "مَالِكِ يَوْمِ الدِّينِ",
"transliteration": "Maaliki Yawmid-Deen",
"translation_id": "Pemilik hari pembalasan"
},
{
"id": 5,
"arabic": "إِيَّاكَ نَعْبُدُ وَإِيَّاكَ نَسْتَعِينُ",
"transliteration": "Iyyaaka na'budu wa lyyaaka nasta'een",
"translation_id": "Hanya kepada Engkaulah kami menyembah dan hanya kepada Engkaulah kami mohon pertolongan"
},
{
"id": 6,
"arabic": "اهْدِنَا الصِّرَاطَ الْمُسْتَقِيمَ",
"transliteration": "Ihdinas-Siraatal-Mustaqeem",
"translation_id": "Tunjukilah kami jalan yang lurus"
},
{
"id": 7,
"arabic": "صِرَاطَ الَّذِينَ أَنْعَمْتَ عَلَيْهِمْ غَيْرِ الْمَغْضُوبِ عَلَيْهِمْ وَلَا الضَّالِّينَ",
"transliteration": "Siraatal-lazeena an'amta 'alaihim ghayril-maghdoobi 'alaihim wa lad-daaalleen",
"translation_id": "Yaitu jalan orang-orang yang telah Engkau beri nikmat kepadanya; bukan jalan mereka yang dimurkai dan bukan pula jalan mereka yang sesat"
}
]
},
{
"id": 114,
"name_arabic": "النَّاس",
"name_latin": "An-Nas",
"verse_count": 6,
"juz_start": 30,
"revelation_type": "Meccan",
"verses": [
{
"id": 1,
"arabic": "قُلْ أَعُوذُ بِرَبِّ النَّاسِ",
"transliteration": "Qul a'uudzu birabbinnaas",
"translation_id": "Katakanlah: Aku berlindung kepada Tuhannya manusia"
},
{
"id": 2,
"arabic": "مَلِكِ النَّاسِ",
"transliteration": "Malikinnaas",
"translation_id": "Raja manusia"
},
{
"id": 3,
"arabic": "إِلَـٰهِ النَّاسِ",
"transliteration": "Ilaahinnaas",
"translation_id": "Sembahan manusia"
},
{
"id": 4,
"arabic": "مِن شَرِّ الْوَسْوَاسِ الْخَنَّاسِ",
"transliteration": "Min syarril waswaasil khannaas",
"translation_id": "Dari kejahatan bisikan syaitan yang biasa bersembunyi"
},
{
"id": 5,
"arabic": "الَّذِي يُوَسْوِسُ فِي صُدُورِ النَّاسِ",
"transliteration": "Allazii yuwaswisu fii suduurinnaas",
"translation_id": "Yang membisikkan kejahatan ke dalam dada manusia"
},
{
"id": 6,
"arabic": "مِنَ الْجِنَّةِ وَالنَّاسِ",
"transliteration": "Minal jinnati wannaas",
"translation_id": "Dari golongan jin dan manusia"
}
]
}
]