diff --git a/README.md b/README.md
index 60920c8..7ca378b 100644
--- a/README.md
+++ b/README.md
@@ -12,9 +12,8 @@ Open Source HolyQuran app that provide Read, Listen, Tafseer, Test all of them a
- [V2.0](https://www.youtube.com/watch?v=hzJV1lth958).
- [V1.8](https://www.youtube.com/watch?v=-DbH0EKkAzw).
- apk
- - [V2.1.3](https://github.com/MahmoudMabrok/QuranyApp/blob/master/apk/appv2_1_3.apk).
- - [V2](https://github.com/MahmoudMabrok/QuranyApp/blob/master/apk/appv2.apk).
-
+ -[v2.5.1](https://drive.google.com/open?id=1iU-WgufHMAELKOmClhW2Z18Miyef4f4v).
+
# Features
- Go to specific sura by Scrolling and click.
@@ -29,6 +28,8 @@ Open Source HolyQuran app that provide Read, Listen, Tafseer, Test all of them a
- Points for Tasmee3
- can report a bug, chat with app developer powered by InstaBug - explaned in demo video - (Not Available now).
- ReadLog that store pages user read.
+- Continue reading when open app.
+- App is Full Quran and Tafseer.
# Challenges
- **Data**
@@ -131,6 +132,15 @@ it was called after ``dialoge.setContentView()``, it is error to call it after `
# ChangeLog
+- **V2.5.1**
+ - Add awesome Intro
+ - Add continue reading feature that Ask user to go to last page to read.
+ - App start with Quran & Tafseer loaded.
+ - Improve UI for bottom nav
+ - add labels and it appear all the time.
+
+
+
- **V2.3.1**
- Add ReadLog that store pages user read.
- Improve UI for page switching.
@@ -188,16 +198,12 @@ XML | 3498
# Screens
--
--
-
--
--
-
--
--
-
-
+-
+
+
+
+
+
>
diff --git a/apk/appv2.apk b/apk/appv2.apk
deleted file mode 100644
index 2ed410c..0000000
Binary files a/apk/appv2.apk and /dev/null differ
diff --git a/apk/appv2_1_3.apk b/apk/appv2_1_3.apk
deleted file mode 100644
index c39d6aa..0000000
Binary files a/apk/appv2_1_3.apk and /dev/null differ
diff --git a/app/app.iml b/app/app.iml
index 42248df..655f005 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -95,19 +95,27 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index bdfec75..0fe1fe2 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -19,8 +19,9 @@
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
tools:ignore="UnusedAttribute">
-
-
+
@@ -29,7 +30,6 @@
android:name=".feature.welcome_message.BootReceiver"
android:enabled="true"
android:exported="false">
-
@@ -45,7 +45,7 @@
android:name=".feature.test_sound.TestSoundActivity"
android:exported="true"
android:label="@string/title_activity_test_sound"
- android:theme="@style/AppTheme.NoActionBar">
+ android:theme="@style/AppTheme.NoActionBar" />
+ * TODO: Customize class - update intent actions, extra parameters and static
+ * helper methods.
+ */
+public class ListenServie extends IntentService {
+ // TODO: Rename actions, choose action names that describe tasks that this
+ // IntentService can perform, e.g. ACTION_FETCH_NEW_ITEMS
+ private static final String ACTION_FOO = "education.mahmoud.quranyapp.feature.listening_activity.action.FOO";
+ private static final String ACTION_BAZ = "education.mahmoud.quranyapp.feature.listening_activity.action.BAZ";
+
+ // TODO: Rename parameters
+ private static final String EXTRA_PARAM1 = "education.mahmoud.quranyapp.feature.listening_activity.extra.PARAM1";
+ private static final String EXTRA_PARAM2 = "education.mahmoud.quranyapp.feature.listening_activity.extra.PARAM2";
+
+ public ListenServie() {
+ super("ListenServie");
+ }
+
+ /**
+ * Starts this service to perform action Foo with the given parameters. If
+ * the service is already performing a task this action will be queued.
+ *
+ * @see IntentService
+ */
+ // TODO: Customize helper method
+ public static void startActionFoo(Context context, String param1, String param2) {
+ Intent intent = new Intent(context, ListenServie.class);
+ intent.setAction(ACTION_FOO);
+ intent.putExtra(EXTRA_PARAM1, param1);
+ intent.putExtra(EXTRA_PARAM2, param2);
+ context.startService(intent);
+ }
+
+ /**
+ * Starts this service to perform action Baz with the given parameters. If
+ * the service is already performing a task this action will be queued.
+ *
+ * @see IntentService
+ */
+ // TODO: Customize helper method
+ public static void startActionBaz(Context context, String param1, String param2) {
+ Intent intent = new Intent(context, ListenServie.class);
+ intent.setAction(ACTION_BAZ);
+ intent.putExtra(EXTRA_PARAM1, param1);
+ intent.putExtra(EXTRA_PARAM2, param2);
+ context.startService(intent);
+ }
+
+ @Override
+ protected void onHandleIntent(Intent intent) {
+ if (intent != null) {
+ final String action = intent.getAction();
+ if (ACTION_FOO.equals(action)) {
+ final String param1 = intent.getStringExtra(EXTRA_PARAM1);
+ final String param2 = intent.getStringExtra(EXTRA_PARAM2);
+ handleActionFoo(param1, param2);
+ } else if (ACTION_BAZ.equals(action)) {
+ final String param1 = intent.getStringExtra(EXTRA_PARAM1);
+ final String param2 = intent.getStringExtra(EXTRA_PARAM2);
+ handleActionBaz(param1, param2);
+ }
+ }
+ }
+
+ /**
+ * Handle action Foo in the provided background thread with the provided
+ * parameters.
+ */
+ private void handleActionFoo(String param1, String param2) {
+ // TODO: Handle action Foo
+ throw new UnsupportedOperationException("Not yet implemented");
+ }
+
+ /**
+ * Handle action Baz in the provided background thread with the provided
+ * parameters.
+ */
+ private void handleActionBaz(String param1, String param2) {
+ // TODO: Handle action Baz
+ throw new UnsupportedOperationException("Not yet implemented");
+ }
+}
diff --git a/app/src/main/java/education/mahmoud/quranyapp/feature/splash/Splash.java b/app/src/main/java/education/mahmoud/quranyapp/feature/splash/Splash.java
index bae019a..8def692 100644
--- a/app/src/main/java/education/mahmoud/quranyapp/feature/splash/Splash.java
+++ b/app/src/main/java/education/mahmoud/quranyapp/feature/splash/Splash.java
@@ -39,60 +39,72 @@ private void startServices() {
private void askPermissionForApp() {
askForPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
- Manifest.permission.READ_EXTERNAL_STORAGE,
- Manifest.permission.RECORD_AUDIO}, 5);
+ Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}
private void initSlides() {
SliderPage sliderPage = new SliderPage();
sliderPage.setTitle("Home");
- sliderPage.setDescription("HollyQuranApp");
- sliderPage.setImageDrawable(R.mipmap.list);
+ // sliderPage.setDescription("HollyQuranApp");
+ sliderPage.setImageDrawable(R.mipmap.home);
sliderPage.setBgColor(R.color.bg_green);
addSlide(AppIntro2Fragment.newInstance(sliderPage));
sliderPage = new SliderPage();
sliderPage.setTitle("Quran Read");
- sliderPage.setDescription("HollyQuranApp");
- sliderPage.setImageDrawable(R.mipmap.ic_launcher);
+ // sliderPage.setDescription("HollyQuranApp");
+ sliderPage.setImageDrawable(R.mipmap.quran);
sliderPage.setBgColor(R.color.bg_green);
addSlide(AppIntro2Fragment.newInstance(sliderPage));
- sliderPage = new SliderPage();
+ /*sliderPage = new SliderPage();
sliderPage.setTitle("Quran tafseer");
- sliderPage.setDescription("HollyQuranApp");
+ //sliderPage.setDescription("HollyQuranApp");
sliderPage.setImageDrawable(R.mipmap.tafseer);
sliderPage.setBgColor(R.color.bg_green);
- addSlide(AppIntro2Fragment.newInstance(sliderPage));
+ addSlide(AppIntro2Fragment.newInstance(sliderPage));*/
sliderPage = new SliderPage();
sliderPage.setTitle("Quran Search");
- sliderPage.setDescription("HollyQuranApp");
- sliderPage.setImageDrawable(R.mipmap.ic_launcher);
+ // sliderPage.setDescription("HollyQuranApp");
+ sliderPage.setImageDrawable(R.mipmap.search);
sliderPage.setBgColor(R.color.bg_green);
addSlide(AppIntro2Fragment.newInstance(sliderPage));
sliderPage = new SliderPage();
- sliderPage.setTitle("Quran Test as text");
- sliderPage.setDescription("HollyQuranApp");
- sliderPage.setImageDrawable(R.mipmap.jump);
+ sliderPage.setTitle("Listen");
+ // sliderPage.setDescription("HollyQuranApp");
+ sliderPage.setImageDrawable(R.mipmap.listen);
sliderPage.setBgColor(R.color.bg_green);
addSlide(AppIntro2Fragment.newInstance(sliderPage));
+
+
sliderPage = new SliderPage();
- sliderPage.setTitle("Read Log");
- sliderPage.setDescription("HollyQuranApp");
- sliderPage.setImageDrawable(R.mipmap.ic_launcher);
+ sliderPage.setTitle("Quran Test");
+ // sliderPage.setDescription("HollyQuranApp");
+ sliderPage.setImageDrawable(R.mipmap.test);
sliderPage.setBgColor(R.color.bg_green);
addSlide(AppIntro2Fragment.newInstance(sliderPage));
+ sliderPage = new SliderPage();
+ sliderPage.setTitle("Jump");
+ //sliderPage.setDescription("HollyQuranApp");
+ sliderPage.setImageDrawable(R.mipmap.jump);
+ sliderPage.setBgColor(R.color.primaryTextColor);
+ addSlide(AppIntro2Fragment.newInstance(sliderPage));
+
+
+
+
sliderPage = new SliderPage();
sliderPage.setTitle("Setting");
- sliderPage.setDescription("HollyQuranApp");
- sliderPage.setImageDrawable(R.mipmap.ic_launcher);
+ // sliderPage.setDescription("HollyQuranApp");
+ sliderPage.setImageDrawable(R.mipmap.setting);
sliderPage.setBgColor(R.color.bg_green);
addSlide(AppIntro2Fragment.newInstance(sliderPage));
+
}
diff --git a/app/src/main/res/layout/fragment_test.xml b/app/src/main/res/layout/fragment_test.xml
index 4791234..f0905d9 100644
--- a/app/src/main/res/layout/fragment_test.xml
+++ b/app/src/main/res/layout/fragment_test.xml
@@ -125,7 +125,8 @@
android:paddingStart="@dimen/_6sdp"
android:paddingEnd="@dimen/_6sdp"
android:text="@string/test_sound"
- android:textColor="@color/bg_white" />
+ android:textColor="@color/bg_white"
+ android:visibility="gone" />
diff --git a/app/src/main/res/layout/tafseer_item.xml b/app/src/main/res/layout/tafseer_item.xml
index 13bc36d..0a00364 100644
--- a/app/src/main/res/layout/tafseer_item.xml
+++ b/app/src/main/res/layout/tafseer_item.xml
@@ -2,7 +2,9 @@
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_marginBottom="@dimen/_10sdp"
+ app:cardCornerRadius="@dimen/_16sdp">