From bb85595db62f8e39a7649635a7099aea0a69d722 Mon Sep 17 00:00:00 2001
From: faisalcodes
Date: Tue, 7 Mar 2023 04:07:02 +0530
Subject: [PATCH 1/6] Rename .java to .kt
---
...BottomSheetMenuAdapter.java => PeaceBottomSheetMenuAdapter.kt} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename app/src/main/java/com/quranapp/android/adapters/extended/{PeaceBottomSheetMenuAdapter.java => PeaceBottomSheetMenuAdapter.kt} (100%)
diff --git a/app/src/main/java/com/quranapp/android/adapters/extended/PeaceBottomSheetMenuAdapter.java b/app/src/main/java/com/quranapp/android/adapters/extended/PeaceBottomSheetMenuAdapter.kt
similarity index 100%
rename from app/src/main/java/com/quranapp/android/adapters/extended/PeaceBottomSheetMenuAdapter.java
rename to app/src/main/java/com/quranapp/android/adapters/extended/PeaceBottomSheetMenuAdapter.kt
From fd3ac06554f37b60def5ec25923809a98865d7f2 Mon Sep 17 00:00:00 2001
From: faisalcodes
Date: Tue, 7 Mar 2023 04:07:02 +0530
Subject: [PATCH 2/6] Widget and kotlin migration
---
.../activities/ActivityOnboarding.java | 2 +-
.../android/activities/ActivityProphets.java | 2 +-
.../activities/ActivityReaderIndexPage.java | 2 +-
.../android/activities/ActivitySearch.java | 2 +-
.../android/activities/ActivityTopics.java | 2 +-
.../android/adapters/ADPBookmark.java | 2 +-
.../android/adapters/editor/ADPEditorBG.java | 2 +-
.../extended/PeaceBottomSheetMenuAdapter.kt | 48 +-
.../adapters/search/ADPVerseResults.java | 2 +-
.../android/components/ComponentBase.kt | 14 +
.../components/FeaturedQuranModel.java | 2 -
.../components/search/SearchHistoryModel.java | 8 +-
.../search/SearchResultModelBase.java | 2 +-
.../components/utility/SpinnerItem.java | 2 +-
.../frags/editshare/FragEditorColors.java | 2 +-
.../frags/settings/FragSettingsMain.java | 38 +-
.../android/suppliments/BookmarkViewer.java | 2 +-
...izeUtils.java => ReaderTextSizeUtils.java} | 2 +-
.../android/utils/sharedPrefs/SPReader.java | 8 +-
.../SimpleSeekbarChangeListener.kt | 2 +-
.../SimpleTabSelectorListener.kt | 2 +-
.../{univ => simplified}/SimpleTextWatcher.kt | 2 +-
.../LoadRecitationsManifestTask.java | 62 ---
.../android/utils/univ/ActivityBuffer.java | 108 -----
.../android/utils/univ/ActivityUtils.kt | 19 -
.../quranapp/android/utils/univ/Duration.kt | 14 -
.../android/utils/univ/ExceptionCause.kt | 11 -
.../utils/univ/LinkMovementMethod2.java | 46 --
.../quranapp/android/views/BoldHeader.java | 2 +-
.../views/reader/RecitationPlayer.java | 7 +-
.../views/reader/spinner/ReaderSpinner.java | 2 +-
.../reader/spinner/ReaderSpinnerAdapter.java | 2 +-
.../views/reader/spinner/ReaderSpinnerItem.kt | 2 +-
.../adapters/ADPJuzChapterVerseBase.kt | 4 +-
.../JuzChapterVerseSelector.kt | 4 +-
.../viewholders/VHsJuzChapterVerse.kt | 2 +-
.../bottomSheet/PeaceBottomSheetMenu.kt | 26 +-
.../widgets/form/PeaceFormInputField.java | 2 +-
.../widgets/list/base/BaseListAdapter.kt | 208 +++++++++
.../android/widgets/list/base/BaseListItem.kt | 13 +
.../widgets/list/base/BaseListItemView.kt | 186 ++++++++
.../android/widgets/list/base/BaseListView.kt | 121 +++++
.../singleChoice/SingleChoiceListAdapter.kt | 33 ++
.../list/singleChoice/SingleChoiceListView.kt | 28 ++
.../android/widgets/tablayout/BottomTab.java | 2 +-
.../widgets/tablayout/BottomTabLayout.java | 2 +-
app/src/main/res/values/list_styles.xml | 28 ++
.../android/utils/ComponentBase.java | 77 ----
.../peacedesign/android/utils/ResUtils.java | 28 --
.../interfaceUtils/CompoundButtonGroup.java | 27 --
.../utils/interfaceUtils/Position.java | 7 -
.../utils/interfaceUtils/Selectable.java | 7 -
.../widget/compound/PeaceCompoundButton.java | 435 ------------------
.../widget/dialog/base/PeaceDialogParams.java | 3 -
.../widget/list/base/BaseListAdapter.java | 227 ---------
.../widget/list/base/BaseListItem.java | 83 ----
.../widget/list/base/BaseListItemView.java | 191 --------
.../widget/list/base/BaseListView.java | 168 -------
.../widget/list/simple/SimpleListAdapter.java | 14 -
.../widget/list/simple/SimpleListView.java | 13 -
.../singleChoice/SingleChoiceListAdapter.java | 40 --
.../singleChoice/SingleChoiceListView.java | 40 --
.../widget/radio/PeaceRadioButton.java | 74 ---
.../android/widget/radio/PeaceRadioGroup.java | 239 ----------
peacedesign/src/main/res/values/styles.xml | 27 --
65 files changed, 721 insertions(+), 2063 deletions(-)
create mode 100644 app/src/main/java/com/quranapp/android/components/ComponentBase.kt
rename app/src/main/java/com/quranapp/android/utils/reader/{TextSizeUtils.java => ReaderTextSizeUtils.java} (96%)
rename app/src/main/java/com/quranapp/android/utils/{univ => simplified}/SimpleSeekbarChangeListener.kt (87%)
rename app/src/main/java/com/quranapp/android/utils/{univ => simplified}/SimpleTabSelectorListener.kt (86%)
rename app/src/main/java/com/quranapp/android/utils/{univ => simplified}/SimpleTextWatcher.kt (88%)
delete mode 100644 app/src/main/java/com/quranapp/android/utils/thread/tasks/recitation/LoadRecitationsManifestTask.java
delete mode 100644 app/src/main/java/com/quranapp/android/utils/univ/ActivityBuffer.java
delete mode 100644 app/src/main/java/com/quranapp/android/utils/univ/ActivityUtils.kt
delete mode 100644 app/src/main/java/com/quranapp/android/utils/univ/Duration.kt
delete mode 100644 app/src/main/java/com/quranapp/android/utils/univ/ExceptionCause.kt
delete mode 100644 app/src/main/java/com/quranapp/android/utils/univ/LinkMovementMethod2.java
create mode 100644 app/src/main/java/com/quranapp/android/widgets/list/base/BaseListAdapter.kt
create mode 100644 app/src/main/java/com/quranapp/android/widgets/list/base/BaseListItem.kt
create mode 100644 app/src/main/java/com/quranapp/android/widgets/list/base/BaseListItemView.kt
create mode 100644 app/src/main/java/com/quranapp/android/widgets/list/base/BaseListView.kt
create mode 100644 app/src/main/java/com/quranapp/android/widgets/list/singleChoice/SingleChoiceListAdapter.kt
create mode 100644 app/src/main/java/com/quranapp/android/widgets/list/singleChoice/SingleChoiceListView.kt
create mode 100644 app/src/main/res/values/list_styles.xml
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/utils/ComponentBase.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/utils/interfaceUtils/CompoundButtonGroup.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/utils/interfaceUtils/Position.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/utils/interfaceUtils/Selectable.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/widget/compound/PeaceCompoundButton.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/widget/list/base/BaseListAdapter.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/widget/list/base/BaseListItem.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/widget/list/base/BaseListItemView.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/widget/list/base/BaseListView.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/widget/list/simple/SimpleListAdapter.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/widget/list/simple/SimpleListView.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/widget/list/singleChoice/SingleChoiceListAdapter.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/widget/list/singleChoice/SingleChoiceListView.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/widget/radio/PeaceRadioButton.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/widget/radio/PeaceRadioGroup.java
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityOnboarding.java b/app/src/main/java/com/quranapp/android/activities/ActivityOnboarding.java
index 47d5b6c6..b299da82 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityOnboarding.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityOnboarding.java
@@ -24,7 +24,7 @@
import com.quranapp.android.utils.app.ThemeUtils;
import com.quranapp.android.utils.gesture.HoverPushOpacityEffect;
import com.quranapp.android.utils.sharedPrefs.SPAppActions;
-import com.quranapp.android.utils.univ.SimpleTabSelectorListener;
+import com.quranapp.android.utils.simplified.SimpleTabSelectorListener;
public class ActivityOnboarding extends BaseActivity {
private ActivityOnboardBinding mBinding;
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityProphets.java b/app/src/main/java/com/quranapp/android/activities/ActivityProphets.java
index 741a3933..33f724a4 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityProphets.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityProphets.java
@@ -39,7 +39,7 @@
import com.quranapp.android.databinding.ActivityTopicsBinding;
import com.quranapp.android.databinding.LytTopicsActivityHeaderBinding;
import com.quranapp.android.utils.extended.GapedItemDecoration;
-import com.quranapp.android.utils.univ.SimpleTextWatcher;
+import com.quranapp.android.utils.simplified.SimpleTextWatcher;
import com.quranapp.android.views.helper.Spinner2;
import java.util.ArrayList;
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityReaderIndexPage.java b/app/src/main/java/com/quranapp/android/activities/ActivityReaderIndexPage.java
index 225f0ad6..547aa1c5 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityReaderIndexPage.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityReaderIndexPage.java
@@ -18,7 +18,7 @@
import com.quranapp.android.frags.readerindex.FragReaderIndexChapters;
import com.quranapp.android.frags.readerindex.FragReaderIndexJuz;
import com.quranapp.android.interfaceUtils.readerIndex.FragReaderIndexCallback;
-import com.quranapp.android.utils.univ.SimpleTabSelectorListener;
+import com.quranapp.android.utils.simplified.SimpleTabSelectorListener;
import java.util.ArrayList;
import java.util.List;
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivitySearch.java b/app/src/main/java/com/quranapp/android/activities/ActivitySearch.java
index 94fc369f..0bc7c7ea 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivitySearch.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivitySearch.java
@@ -50,7 +50,7 @@
import com.quranapp.android.utils.reader.factory.QuranTranslFactory;
import com.quranapp.android.utils.search.SearchFilters;
import com.quranapp.android.utils.search.SearchLocalHistoryManager;
-import com.quranapp.android.utils.univ.SimpleTextWatcher;
+import com.quranapp.android.utils.simplified.SimpleTextWatcher;
import com.quranapp.android.utils.univ.StringUtils;
import com.quranapp.android.widgets.bottomSheet.PeaceBottomSheet;
import com.quranapp.android.widgets.bottomSheet.PeaceBottomSheetParams;
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityTopics.java b/app/src/main/java/com/quranapp/android/activities/ActivityTopics.java
index f90c2b25..4aaae1ee 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityTopics.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityTopics.java
@@ -50,7 +50,7 @@
import com.quranapp.android.utils.extensions.ContextKt;
import com.quranapp.android.utils.thread.runner.RunnableTaskRunner;
import com.quranapp.android.utils.thread.tasks.BaseRunnableTask;
-import com.quranapp.android.utils.univ.SimpleTextWatcher;
+import com.quranapp.android.utils.simplified.SimpleTextWatcher;
import com.quranapp.android.views.helper.Spinner2;
import java.util.ArrayList;
diff --git a/app/src/main/java/com/quranapp/android/adapters/ADPBookmark.java b/app/src/main/java/com/quranapp/android/adapters/ADPBookmark.java
index e2ba66ab..e9e05559 100644
--- a/app/src/main/java/com/quranapp/android/adapters/ADPBookmark.java
+++ b/app/src/main/java/com/quranapp/android/adapters/ADPBookmark.java
@@ -22,7 +22,6 @@
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.span.LineHeightSpan2;
-import com.peacedesign.android.widget.list.base.BaseListItem;
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityBookmark;
import com.quranapp.android.adapters.extended.PeaceBottomSheetMenuAdapter;
@@ -31,6 +30,7 @@
import com.quranapp.android.databinding.LytBookmarkItemBinding;
import com.quranapp.android.utils.extensions.ContextKt;
import com.quranapp.android.widgets.bottomSheet.PeaceBottomSheetMenu;
+import com.quranapp.android.widgets.list.base.BaseListItem;
import java.util.ArrayList;
import java.util.LinkedHashSet;
diff --git a/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorBG.java b/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorBG.java
index 29e402ac..73b1d459 100644
--- a/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorBG.java
+++ b/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorBG.java
@@ -26,7 +26,7 @@
import com.quranapp.android.databinding.LytEditorAlphaDialogBinding;
import com.quranapp.android.frags.editshare.FragEditorBG;
import com.quranapp.android.utils.gesture.HoverPushOpacityEffect;
-import com.quranapp.android.utils.univ.SimpleSeekbarChangeListener;
+import com.quranapp.android.utils.simplified.SimpleSeekbarChangeListener;
import com.quranapp.android.widgets.ColorPreviewerView;
import com.quranapp.android.widgets.bottomSheet.PeaceBottomSheetParams;
import com.quranapp.android.widgets.editor.EditorBGView;
diff --git a/app/src/main/java/com/quranapp/android/adapters/extended/PeaceBottomSheetMenuAdapter.kt b/app/src/main/java/com/quranapp/android/adapters/extended/PeaceBottomSheetMenuAdapter.kt
index 1e952c4d..658e39c9 100644
--- a/app/src/main/java/com/quranapp/android/adapters/extended/PeaceBottomSheetMenuAdapter.kt
+++ b/app/src/main/java/com/quranapp/android/adapters/extended/PeaceBottomSheetMenuAdapter.kt
@@ -1,35 +1,27 @@
-package com.quranapp.android.adapters.extended;
+package com.quranapp.android.adapters.extended
-import android.content.Context;
-import android.text.TextUtils;
-import android.view.View;
+import android.content.Context
+import android.view.View
+import com.quranapp.android.R
+import com.quranapp.android.utils.extensions.color
+import com.quranapp.android.utils.extensions.dp2px
+import com.quranapp.android.utils.extensions.updatePaddingVertical
+import com.quranapp.android.widgets.list.base.BaseListAdapter
+import com.quranapp.android.widgets.list.base.BaseListItem
+import com.quranapp.android.widgets.list.base.BaseListItemView
-import androidx.annotation.NonNull;
-import androidx.core.content.ContextCompat;
+class PeaceBottomSheetMenuAdapter(context: Context) : BaseListAdapter(context) {
+ private val mMessageColor = context.color(R.color.colorText2)
-import com.peacedesign.android.utils.Dimen;
-import com.peacedesign.android.widget.list.base.BaseListAdapter;
-import com.peacedesign.android.widget.list.base.BaseListItem;
-import com.peacedesign.android.widget.list.base.BaseListItemView;
-import com.quranapp.android.R;
-import com.quranapp.android.utils.extensions.ViewPaddingKt;
+ override fun onCreateItemView(item: BaseListItem, position: Int): View {
+ val view = super.onCreateItemView(item, position) as BaseListItemView
-public class PeaceBottomSheetMenuAdapter extends BaseListAdapter {
- private final int mMessageColor;
-
- public PeaceBottomSheetMenuAdapter(@NonNull Context context) {
- super(context);
- mMessageColor = ContextCompat.getColor(context, R.color.colorText2);
- }
-
- @Override
- protected View onCreateItemView(@NonNull BaseListItem item, int position) {
- BaseListItemView view = (BaseListItemView) super.onCreateItemView(item, position);
- if (TextUtils.isEmpty(item.getMessage())) {
- ViewPaddingKt.updatePaddingVertical(view.mContainerView, Dimen.dp2px(getContext(), 3));
+ if (item.message.isNullOrEmpty()) {
+ view.containerView.updatePaddingVertical(context.dp2px(3f))
} else {
- view.mMessageView.setTextColor(mMessageColor);
+ view.messageView?.setTextColor(mMessageColor)
}
- return view;
+
+ return view
}
-}
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/adapters/search/ADPVerseResults.java b/app/src/main/java/com/quranapp/android/adapters/search/ADPVerseResults.java
index 9c3e165f..097431ee 100644
--- a/app/src/main/java/com/quranapp/android/adapters/search/ADPVerseResults.java
+++ b/app/src/main/java/com/quranapp/android/adapters/search/ADPVerseResults.java
@@ -32,7 +32,7 @@
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.span.TypefaceSpan2;
-import com.peacedesign.android.widget.list.base.BaseListItem;
+import com.quranapp.android.widgets.list.base.BaseListItem;
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityReader;
import com.quranapp.android.activities.ActivitySearch;
diff --git a/app/src/main/java/com/quranapp/android/components/ComponentBase.kt b/app/src/main/java/com/quranapp/android/components/ComponentBase.kt
new file mode 100644
index 00000000..f4bed201
--- /dev/null
+++ b/app/src/main/java/com/quranapp/android/components/ComponentBase.kt
@@ -0,0 +1,14 @@
+package com.quranapp.android.components
+
+import java.io.Serializable
+
+open class ComponentBase : Serializable {
+ var id = -1
+ var key: String? = null
+ var position = -1
+ var selected = false
+ var enabled = true
+
+ @Transient
+ var obj: Any? = null
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/components/FeaturedQuranModel.java b/app/src/main/java/com/quranapp/android/components/FeaturedQuranModel.java
index 4d2e6801..51905bf1 100644
--- a/app/src/main/java/com/quranapp/android/components/FeaturedQuranModel.java
+++ b/app/src/main/java/com/quranapp/android/components/FeaturedQuranModel.java
@@ -2,8 +2,6 @@
import androidx.annotation.NonNull;
-import com.peacedesign.android.utils.ComponentBase;
-
import kotlin.Pair;
public class FeaturedQuranModel extends ComponentBase {
diff --git a/app/src/main/java/com/quranapp/android/components/search/SearchHistoryModel.java b/app/src/main/java/com/quranapp/android/components/search/SearchHistoryModel.java
index 004bbd9b..32285075 100644
--- a/app/src/main/java/com/quranapp/android/components/search/SearchHistoryModel.java
+++ b/app/src/main/java/com/quranapp/android/components/search/SearchHistoryModel.java
@@ -1,20 +1,16 @@
package com.quranapp.android.components.search;
public class SearchHistoryModel extends SearchResultModelBase {
- private final int id;
private final CharSequence text;
private final String date;
public SearchHistoryModel(int id, CharSequence text, String date) {
- this.id = id;
+ setId(id);
+
this.text = text;
this.date = date;
}
- public int getId() {
- return id;
- }
-
public CharSequence getText() {
return text;
}
diff --git a/app/src/main/java/com/quranapp/android/components/search/SearchResultModelBase.java b/app/src/main/java/com/quranapp/android/components/search/SearchResultModelBase.java
index 4c699791..44c3aad0 100644
--- a/app/src/main/java/com/quranapp/android/components/search/SearchResultModelBase.java
+++ b/app/src/main/java/com/quranapp/android/components/search/SearchResultModelBase.java
@@ -1,6 +1,6 @@
package com.quranapp.android.components.search;
-import com.peacedesign.android.utils.ComponentBase;
+import com.quranapp.android.components.ComponentBase;
public class SearchResultModelBase extends ComponentBase {
}
diff --git a/app/src/main/java/com/quranapp/android/components/utility/SpinnerItem.java b/app/src/main/java/com/quranapp/android/components/utility/SpinnerItem.java
index 7c15e370..1eb318eb 100644
--- a/app/src/main/java/com/quranapp/android/components/utility/SpinnerItem.java
+++ b/app/src/main/java/com/quranapp/android/components/utility/SpinnerItem.java
@@ -1,6 +1,6 @@
package com.quranapp.android.components.utility;
-import com.peacedesign.android.utils.ComponentBase;
+import com.quranapp.android.components.ComponentBase;
public class SpinnerItem extends ComponentBase {
private CharSequence name;
diff --git a/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorColors.java b/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorColors.java
index 0e2ef0b5..78e6fae0 100644
--- a/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorColors.java
+++ b/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorColors.java
@@ -22,7 +22,7 @@
import com.quranapp.android.databinding.FragEditorColorBinding;
import com.quranapp.android.databinding.LytReaderIndexTabBinding;
import com.quranapp.android.utils.extended.GapedItemDecoration;
-import com.quranapp.android.utils.univ.SimpleTabSelectorListener;
+import com.quranapp.android.utils.simplified.SimpleTabSelectorListener;
import com.quranapp.android.views.helper.TabLayout2;
public class FragEditorColors extends FragEditorBase {
diff --git a/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsMain.java b/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsMain.java
index e351258b..3ce5f957 100644
--- a/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsMain.java
+++ b/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsMain.java
@@ -19,8 +19,8 @@
import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_VERSES;
import static com.quranapp.android.reader_managers.ReaderParams.READER_STYLE_READING;
import static com.quranapp.android.reader_managers.ReaderParams.READER_STYLE_TRANSLATION;
-import static com.quranapp.android.utils.reader.TextSizeUtils.TEXT_SIZE_MAX_PROGRESS;
-import static com.quranapp.android.utils.reader.TextSizeUtils.TEXT_SIZE_MIN_PROGRESS;
+import static com.quranapp.android.utils.reader.ReaderTextSizeUtils.TEXT_SIZE_MAX_PROGRESS;
+import static com.quranapp.android.utils.reader.ReaderTextSizeUtils.TEXT_SIZE_MIN_PROGRESS;
import static com.quranapp.android.utils.univ.Codes.SETTINGS_LAUNCHER_RESULT_CODE;
import static com.quranapp.android.utils.univ.Keys.READER_KEY_SAVE_TRANSL_CHANGES;
import static com.quranapp.android.utils.univ.Keys.READER_KEY_SETTING_IS_FROM_READER;
@@ -77,7 +77,7 @@
import com.quranapp.android.utils.gesture.HoverPushOpacityEffect;
import com.quranapp.android.utils.reader.QuranScriptUtils;
import com.quranapp.android.utils.reader.QuranScriptUtilsKt;
-import com.quranapp.android.utils.reader.TextSizeUtils;
+import com.quranapp.android.utils.reader.ReaderTextSizeUtils;
import com.quranapp.android.utils.reader.TranslUtils;
import com.quranapp.android.utils.reader.factory.QuranTranslFactory;
import com.quranapp.android.utils.reader.recitation.RecitationUtils;
@@ -85,8 +85,8 @@
import com.quranapp.android.utils.sharedPrefs.SPReader;
import com.quranapp.android.utils.sharedPrefs.SPVerses;
import com.quranapp.android.utils.univ.Keys;
-import com.quranapp.android.utils.univ.SimpleSeekbarChangeListener;
-import com.quranapp.android.utils.univ.SimpleTabSelectorListener;
+import com.quranapp.android.utils.simplified.SimpleSeekbarChangeListener;
+import com.quranapp.android.utils.simplified.SimpleTabSelectorListener;
import com.quranapp.android.utils.votd.VOTDUtils;
import com.quranapp.android.views.BoldHeader;
import com.quranapp.android.widgets.IconedTextView;
@@ -615,7 +615,7 @@ public void onProgressChanged(@NonNull SeekBar seekBar, int progress, boolean fr
@Override
public void onStopTrackingTouch(@NonNull SeekBar seekBar) {
final int progress = TEXT_SIZE_MIN_PROGRESS + seekBar.getProgress();
- SPReader.setSavedTextSizeMultArabic(seekBar.getContext(), TextSizeUtils.calculateMultiplier(progress));
+ SPReader.setSavedTextSizeMultArabic(seekBar.getContext(), ReaderTextSizeUtils.calculateMultiplier(progress));
}
});
}
@@ -679,15 +679,15 @@ public void onProgressChanged(@NonNull SeekBar seekBar, int progress, boolean fr
@Override
public void onStopTrackingTouch(@NonNull SeekBar seekBar) {
final int progress = TEXT_SIZE_MIN_PROGRESS + seekBar.getProgress();
- SPReader.setSavedTextSizeMultTransl(seekBar.getContext(), TextSizeUtils.calculateMultiplier(progress));
+ SPReader.setSavedTextSizeMultTransl(seekBar.getContext(), ReaderTextSizeUtils.calculateMultiplier(progress));
}
});
}
private void setProgressAndTextArabic(float multiplier) {
if (mLytTextSizeArabic == null) return;
- mLytTextSizeArabic.seekbar.setProgress(TextSizeUtils.calculateProgress(multiplier));
- final String text = TextSizeUtils.calculateProgressText(multiplier) + "%";
+ mLytTextSizeArabic.seekbar.setProgress(ReaderTextSizeUtils.calculateProgress(multiplier));
+ final String text = ReaderTextSizeUtils.calculateProgressText(multiplier) + "%";
mLytTextSizeArabic.progressText.setText(text);
}
@@ -696,14 +696,14 @@ private void demonstrateTextSizeArabic(int progress) {
return;
}
- final float size = mVerseDecorator.getTextSizeArabic() * TextSizeUtils.calculateMultiplier(progress);
+ final float size = mVerseDecorator.getTextSizeArabic() * ReaderTextSizeUtils.calculateMultiplier(progress);
mLytTextSizeArabic.demoText.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);
}
private void setProgressAndTextTransl(float multiplier) {
if (mLytTextSizeTransl == null) return;
- mLytTextSizeTransl.seekbar.setProgress(TextSizeUtils.calculateProgress(multiplier));
- final String text = TextSizeUtils.calculateProgressText(multiplier) + "%";
+ mLytTextSizeTransl.seekbar.setProgress(ReaderTextSizeUtils.calculateProgress(multiplier));
+ final String text = ReaderTextSizeUtils.calculateProgressText(multiplier) + "%";
mLytTextSizeTransl.progressText.setText(text);
}
@@ -712,13 +712,13 @@ private void demonstrateTextSizeTransl(int progress) {
return;
}
- final float size = mVerseDecorator.getTextSizeTransl() * TextSizeUtils.calculateMultiplier(progress);
+ final float size = mVerseDecorator.getTextSizeTransl() * ReaderTextSizeUtils.calculateMultiplier(progress);
mLytTextSizeTransl.demoText.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);
}
private void resetToDefault(Context ctx) {
- SPReader.setSavedTextSizeMultArabic(ctx, TextSizeUtils.TEXT_SIZE_MULT_AR_DEFAULT);
- SPReader.setSavedTextSizeMultTransl(ctx, TextSizeUtils.TEXT_SIZE_MULT_TRANS_DEFAULT);
+ SPReader.setSavedTextSizeMultArabic(ctx, ReaderTextSizeUtils.TEXT_SIZE_MULT_AR_DEFAULT);
+ SPReader.setSavedTextSizeMultTransl(ctx, ReaderTextSizeUtils.TEXT_SIZE_MULT_TRANS_DEFAULT);
SPReader.setSavedScript(ctx, QuranScriptUtils.SCRIPT_DEFAULT);
initTranslSlugs = TranslUtils.defaultTranslationSlugs().toArray(new String[0]);
@@ -743,10 +743,10 @@ private void resetToDefault(Context ctx) {
setupScriptTitle();
setupTextSizeArabicPreview();
- demonstrateTextSizeArabic(TextSizeUtils.TEXT_SIZE_DEFAULT_PROGRESS);
- demonstrateTextSizeTransl(TextSizeUtils.TEXT_SIZE_DEFAULT_PROGRESS);
- setProgressAndTextArabic(TextSizeUtils.TEXT_SIZE_MULT_AR_DEFAULT);
- setProgressAndTextTransl(TextSizeUtils.TEXT_SIZE_MULT_TRANS_DEFAULT);
+ demonstrateTextSizeArabic(ReaderTextSizeUtils.TEXT_SIZE_DEFAULT_PROGRESS);
+ demonstrateTextSizeTransl(ReaderTextSizeUtils.TEXT_SIZE_DEFAULT_PROGRESS);
+ setProgressAndTextArabic(ReaderTextSizeUtils.TEXT_SIZE_MULT_AR_DEFAULT);
+ setProgressAndTextTransl(ReaderTextSizeUtils.TEXT_SIZE_MULT_TRANS_DEFAULT);
}
private void resetCheckpoint(Context ctx) {
diff --git a/app/src/main/java/com/quranapp/android/suppliments/BookmarkViewer.java b/app/src/main/java/com/quranapp/android/suppliments/BookmarkViewer.java
index 324efc14..c574bfd7 100644
--- a/app/src/main/java/com/quranapp/android/suppliments/BookmarkViewer.java
+++ b/app/src/main/java/com/quranapp/android/suppliments/BookmarkViewer.java
@@ -29,7 +29,7 @@
import com.quranapp.android.utils.gesture.HoverPushOpacityEffect;
import com.quranapp.android.utils.quran.QuranUtils;
import com.quranapp.android.utils.reader.factory.ReaderFactory;
-import com.quranapp.android.utils.univ.SimpleTextWatcher;
+import com.quranapp.android.utils.simplified.SimpleTextWatcher;
import java.util.concurrent.atomic.AtomicReference;
diff --git a/app/src/main/java/com/quranapp/android/utils/reader/TextSizeUtils.java b/app/src/main/java/com/quranapp/android/utils/reader/ReaderTextSizeUtils.java
similarity index 96%
rename from app/src/main/java/com/quranapp/android/utils/reader/TextSizeUtils.java
rename to app/src/main/java/com/quranapp/android/utils/reader/ReaderTextSizeUtils.java
index 63fce69b..ef66d5c2 100644
--- a/app/src/main/java/com/quranapp/android/utils/reader/TextSizeUtils.java
+++ b/app/src/main/java/com/quranapp/android/utils/reader/ReaderTextSizeUtils.java
@@ -1,6 +1,6 @@
package com.quranapp.android.utils.reader;
-public class TextSizeUtils {
+public class ReaderTextSizeUtils {
public static final String KEY_TEXT_SIZE_MULT_ARABIC = "key.textsize.mult.arabic";
public static final String KEY_TEXT_SIZE_MULT_TRANSL = "key.textsize.mult.translation";
diff --git a/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPReader.java b/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPReader.java
index 76b611e2..6782df34 100644
--- a/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPReader.java
+++ b/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPReader.java
@@ -1,10 +1,10 @@
package com.quranapp.android.utils.sharedPrefs;
import static com.quranapp.android.reader_managers.ReaderParams.READER_STYLE_DEFAULT;
-import static com.quranapp.android.utils.reader.TextSizeUtils.KEY_TEXT_SIZE_MULT_ARABIC;
-import static com.quranapp.android.utils.reader.TextSizeUtils.KEY_TEXT_SIZE_MULT_TRANSL;
-import static com.quranapp.android.utils.reader.TextSizeUtils.TEXT_SIZE_MULT_AR_DEFAULT;
-import static com.quranapp.android.utils.reader.TextSizeUtils.TEXT_SIZE_MULT_TRANS_DEFAULT;
+import static com.quranapp.android.utils.reader.ReaderTextSizeUtils.KEY_TEXT_SIZE_MULT_ARABIC;
+import static com.quranapp.android.utils.reader.ReaderTextSizeUtils.KEY_TEXT_SIZE_MULT_TRANSL;
+import static com.quranapp.android.utils.reader.ReaderTextSizeUtils.TEXT_SIZE_MULT_AR_DEFAULT;
+import static com.quranapp.android.utils.reader.ReaderTextSizeUtils.TEXT_SIZE_MULT_TRANS_DEFAULT;
import static com.quranapp.android.utils.reader.TranslUtils.KEY_TRANSLATIONS;
import static com.quranapp.android.utils.reader.recitation.RecitationUtils.KEY_RECITATION_RECITER;
import static com.quranapp.android.utils.reader.recitation.RecitationUtils.KEY_RECITATION_REPEAT;
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/SimpleSeekbarChangeListener.kt b/app/src/main/java/com/quranapp/android/utils/simplified/SimpleSeekbarChangeListener.kt
similarity index 87%
rename from app/src/main/java/com/quranapp/android/utils/univ/SimpleSeekbarChangeListener.kt
rename to app/src/main/java/com/quranapp/android/utils/simplified/SimpleSeekbarChangeListener.kt
index 233cb89e..f03a2d6c 100644
--- a/app/src/main/java/com/quranapp/android/utils/univ/SimpleSeekbarChangeListener.kt
+++ b/app/src/main/java/com/quranapp/android/utils/simplified/SimpleSeekbarChangeListener.kt
@@ -1,4 +1,4 @@
-package com.quranapp.android.utils.univ
+package com.quranapp.android.utils.simplified
import android.widget.SeekBar
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/SimpleTabSelectorListener.kt b/app/src/main/java/com/quranapp/android/utils/simplified/SimpleTabSelectorListener.kt
similarity index 86%
rename from app/src/main/java/com/quranapp/android/utils/univ/SimpleTabSelectorListener.kt
rename to app/src/main/java/com/quranapp/android/utils/simplified/SimpleTabSelectorListener.kt
index 17ef5cfb..ef2d9fe5 100644
--- a/app/src/main/java/com/quranapp/android/utils/univ/SimpleTabSelectorListener.kt
+++ b/app/src/main/java/com/quranapp/android/utils/simplified/SimpleTabSelectorListener.kt
@@ -1,4 +1,4 @@
-package com.quranapp.android.utils.univ
+package com.quranapp.android.utils.simplified
import com.google.android.material.tabs.TabLayout
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/SimpleTextWatcher.kt b/app/src/main/java/com/quranapp/android/utils/simplified/SimpleTextWatcher.kt
similarity index 88%
rename from app/src/main/java/com/quranapp/android/utils/univ/SimpleTextWatcher.kt
rename to app/src/main/java/com/quranapp/android/utils/simplified/SimpleTextWatcher.kt
index 01330750..76466d13 100644
--- a/app/src/main/java/com/quranapp/android/utils/univ/SimpleTextWatcher.kt
+++ b/app/src/main/java/com/quranapp/android/utils/simplified/SimpleTextWatcher.kt
@@ -1,4 +1,4 @@
-package com.quranapp.android.utils.univ
+package com.quranapp.android.utils.simplified
import android.text.Editable
import android.text.TextWatcher
diff --git a/app/src/main/java/com/quranapp/android/utils/thread/tasks/recitation/LoadRecitationsManifestTask.java b/app/src/main/java/com/quranapp/android/utils/thread/tasks/recitation/LoadRecitationsManifestTask.java
deleted file mode 100644
index c7b3d3f2..00000000
--- a/app/src/main/java/com/quranapp/android/utils/thread/tasks/recitation/LoadRecitationsManifestTask.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) Faisal Khan (https://github.com/faisalcodes)
- * Created on 23/3/2022.
- * All rights reserved.
- */
-
-package com.quranapp.android.utils.thread.tasks.recitation;
-
-import static com.quranapp.android.utils.univ.ExceptionCause.RECITATIONS_INFO_NULL;
-import static com.quranapp.android.utils.univ.ExceptionCause.REQUIRE_RECITATION_FORCE_LOAD;
-
-import android.content.Context;
-import android.text.TextUtils;
-
-import androidx.annotation.Nullable;
-
-import com.quranapp.android.utils.thread.tasks.SimpleDataLoaderTask;
-import com.quranapp.android.utils.univ.FileUtils;
-
-import java.io.File;
-import java.io.IOException;
-
-public abstract class LoadRecitationsManifestTask extends SimpleDataLoaderTask {
- private final Context mCtx;
- private final FileUtils mFileUtils;
-
- public LoadRecitationsManifestTask(Context ctx, String url) {
- super(url);
- mCtx = ctx;
- mFileUtils = FileUtils.newInstance(ctx);
- }
-
- @Nullable
- @Override
- public String call() throws Exception {
- File storedAvailableRecitations = mFileUtils.getRecitationsManifestFile();
-
- String manifest;
- if (getUrl() != null) {
- manifest = super.call();
- } else {
- try {
- manifest = mFileUtils.readFile(storedAvailableRecitations);
-
- if (TextUtils.isEmpty(manifest)) {
- throw new Exception(REQUIRE_RECITATION_FORCE_LOAD);
- }
- } catch (IOException e) {
- e.printStackTrace();
- throw new Exception(REQUIRE_RECITATION_FORCE_LOAD);
- }
- }
-
- if (TextUtils.isEmpty(manifest)) {
- throw new NullPointerException(RECITATIONS_INFO_NULL);
- }
-
- mFileUtils.createFile(storedAvailableRecitations);
- mFileUtils.writeToFile(storedAvailableRecitations, manifest);
- return manifest;
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/ActivityBuffer.java b/app/src/main/java/com/quranapp/android/utils/univ/ActivityBuffer.java
deleted file mode 100644
index 8117c5cd..00000000
--- a/app/src/main/java/com/quranapp/android/utils/univ/ActivityBuffer.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) Faisal Khan (https://github.com/faisalcodes)
- * Created on 4/4/2022.
- * All rights reserved.
- */
-
-package com.quranapp.android.utils.univ;
-
-import androidx.fragment.app.FragmentActivity;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A class which maintains a list of transactions to occur when Context becomes available.
- */
-public final class ActivityBuffer {
- public interface ActivityAvailableListener {
- /**
- * Executes when there's an available Context. Ideally, will it operate immediately.
- */
- void run(final R activity);
- }
-
- private R mActivity;
- private final List> mRunnables;
-
- /**
- * Constructor.
- */
- public ActivityBuffer() {
- // Initialize Member Variables.
- mRunnables = new ArrayList<>();
- mActivity = null;
- }
-
- /**
- * Executes the Runnable if there's an available Context. Otherwise, defers execution until it becomes available.
- */
- public void safely(final ActivityAvailableListener listener) {
- // Synchronize along the current instance.
- synchronized (this) {
- // Do we have a context available?
- if (isContextAvailable()) {
- // Execute the Runnable along the Activity.
- mActivity.runOnUiThread(() -> listener.run(mActivity));
- } else {
- // Buffer the Runnable so that it's ready to receive a valid reference.
- getRunnables().add(listener);
- }
- }
- }
-
- /**
- * Called to inform the ActivityBuffer that there's an available Activity reference.
- */
- public void onActivityGained(final R activity) {
- // Synchronize along ourself.
- synchronized (this) {
- // Update the Activity reference.
- setActivity(activity);
- // Are there any Runnables awaiting execution?
- if (!getRunnables().isEmpty()) {
- // Iterate the Runnables.
- for (final ActivityAvailableListener lRunnable : getRunnables()) {
- // Execute the Runnable on the UI Thread.
- activity.runOnUiThread(() -> {
- // Execute the Runnable.
- lRunnable.run(activity);
- });
- }
- // Empty the Runnables.
- getRunnables().clear();
- }
- }
- }
-
- /**
- * Called to inform the ActivityBuffer that the Context has been lost.
- */
- public void onActivityLost() {
- // Synchronize along ourself.
- synchronized (this) {
- // Remove the Context reference.
- setActivity(null);
- }
- }
-
- /**
- * Defines whether there's a safe Context available for the ActivityBuffer.
- */
- public boolean isContextAvailable() {
- // Synchronize upon ourself.
- synchronized (this) {
- // Return the state of the Activity reference.
- return (mActivity != null);
- }
- }
-
- /* Getters and Setters. */
- private void setActivity(final R activity) {
- mActivity = activity;
- }
-
- private List> getRunnables() {
- return mRunnables;
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/ActivityUtils.kt b/app/src/main/java/com/quranapp/android/utils/univ/ActivityUtils.kt
deleted file mode 100644
index c14467b9..00000000
--- a/app/src/main/java/com/quranapp/android/utils/univ/ActivityUtils.kt
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.quranapp.android.utils.univ
-
-import android.content.Context
-import android.content.Intent
-import android.net.Uri
-import android.provider.Settings
-
-object ActivityUtils {
- fun openAppDetailsActivity(context: Context) {
- val settingIntent = Intent()
- settingIntent.action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS
- settingIntent.addCategory(Intent.CATEGORY_DEFAULT)
- settingIntent.data = Uri.parse("package:" + context.packageName)
- settingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
- settingIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)
- settingIntent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS)
- context.startActivity(settingIntent)
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/Duration.kt b/app/src/main/java/com/quranapp/android/utils/univ/Duration.kt
deleted file mode 100644
index 543287a9..00000000
--- a/app/src/main/java/com/quranapp/android/utils/univ/Duration.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.quranapp.android.utils.univ
-
-object Duration {
- const val DURATION_QUICK = 50
- const val DURATION_NORMAL = 100
- const val DURATION_NORMAL_LATE = 150
- const val DURATION_SHORT = 200
- const val DURATION_MEDIUM = 300
- const val DURATION_MEDIUM_LATE = 400
- const val DURATION_LONG = 500
- const val DURATION_LONG_LATE = 700
- const val DURATION_LATE = 1000
- const val DURATION_SUPER_LATE = 2000
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/ExceptionCause.kt b/app/src/main/java/com/quranapp/android/utils/univ/ExceptionCause.kt
deleted file mode 100644
index 067724b1..00000000
--- a/app/src/main/java/com/quranapp/android/utils/univ/ExceptionCause.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.quranapp.android.utils.univ
-
-object ExceptionCause {
- const val NO_INTERNET = "exc.cause.no_internet"
- const val REQUIRE_TRANSL_FORCE_LOAD = "exc.cause.require_transl_force_load"
- const val TRANSLS_INFO_NULL = "exc.cause.transls_info_null"
- const val NO_TRANSL_LANGUAGES = "exc.cause.no_transl_languages"
- const val REQUIRE_RECITATION_FORCE_LOAD = "exc.cause.require_recitation_force_load"
- const val RECITATIONS_INFO_NULL = "exc.cause.recitations_info_null"
- const val RECITATIONS_LOAD_MAX_ATTEMPT = "exc.cause.recitations_load_max_attempt"
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/LinkMovementMethod2.java b/app/src/main/java/com/quranapp/android/utils/univ/LinkMovementMethod2.java
deleted file mode 100644
index 9ee16300..00000000
--- a/app/src/main/java/com/quranapp/android/utils/univ/LinkMovementMethod2.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.quranapp.android.utils.univ;
-
-import android.text.Layout;
-import android.text.Spannable;
-import android.text.method.LinkMovementMethod;
-import android.view.MotionEvent;
-import android.widget.TextView;
-
-public class LinkMovementMethod2 extends LinkMovementMethod {
- private static LinkMovementMethod2 sInstance;
-
- public static LinkMovementMethod2 getInstance() {
- if (sInstance == null) {
- sInstance = new LinkMovementMethod2();
- }
-
- return sInstance;
- }
-
- @Override
- public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) {
- int action = event.getAction();
-
- if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_DOWN) {
- int x = (int) event.getX();
- int y = (int) event.getY();
-
- x -= widget.getTotalPaddingLeft();
- y -= widget.getTotalPaddingTop();
-
- x += widget.getScrollX();
- y += widget.getScrollY();
-
- Layout layout = widget.getLayout();
- int line = layout.getLineForVertical(y);
- int off = layout.getOffsetForHorizontal(line, x);
-
- if (off >= widget.getText().length()) {
- // Return true so click won't be triggered in the leftover empty space
- return true;
- }
- }
-
- return super.onTouchEvent(widget, buffer, event);
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/views/BoldHeader.java b/app/src/main/java/com/quranapp/android/views/BoldHeader.java
index f4e19b16..d9f001fc 100644
--- a/app/src/main/java/com/quranapp/android/views/BoldHeader.java
+++ b/app/src/main/java/com/quranapp/android/views/BoldHeader.java
@@ -26,7 +26,7 @@
import com.quranapp.android.databinding.LytSimpleSearchBoxBinding;
import com.quranapp.android.utils.extensions.ContextKt;
import com.quranapp.android.utils.extensions.ViewKt;
-import com.quranapp.android.utils.univ.SimpleTextWatcher;
+import com.quranapp.android.utils.simplified.SimpleTextWatcher;
public class BoldHeader extends AppBarLayout {
private final LytBoldHeaderBinding mBinding;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/RecitationPlayer.java b/app/src/main/java/com/quranapp/android/views/reader/RecitationPlayer.java
index d0ca5510..0b88b3d0 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/RecitationPlayer.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/RecitationPlayer.java
@@ -30,15 +30,15 @@
import androidx.core.content.ContextCompat;
import com.google.android.material.behavior.HideBottomViewOnScrollBehavior;
-import com.quranapp.android.utils.Log;
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityReader;
import com.quranapp.android.components.quran.QuranMeta;
import com.quranapp.android.components.recitation.RecitationModel;
-import com.quranapp.android.utils.exceptions.NoInternetException;
import com.quranapp.android.interfaceUtils.Destroyable;
import com.quranapp.android.interfaceUtils.PlayerVerseLoadCallback;
import com.quranapp.android.suppliments.recitation.RecitationMenu;
+import com.quranapp.android.utils.Log;
+import com.quranapp.android.utils.exceptions.NoInternetException;
import com.quranapp.android.utils.reader.recitation.RecitationLoadTaskRunner;
import com.quranapp.android.utils.reader.recitation.RecitationNotificationService;
import com.quranapp.android.utils.reader.recitation.RecitationParams;
@@ -46,7 +46,6 @@
import com.quranapp.android.utils.reader.recitation.RecitationUtils;
import com.quranapp.android.utils.receivers.NetworkStateReceiver;
import com.quranapp.android.utils.sharedPrefs.SPReader;
-import com.quranapp.android.utils.univ.Duration;
import com.quranapp.android.utils.univ.FileUtils;
import com.quranapp.android.utils.univ.MessageUtils;
@@ -322,7 +321,7 @@ public void prepareMediaPlayer(Uri audioURI, String slug, int chapterNo, int ver
mediaPlayer = MediaPlayer.create(getContext(), audioURI);
if (mediaPlayer == null) {
- popMiniMsg("Something happened wrong while playing the audio", Duration.DURATION_LONG);
+ popMiniMsg("Something happened wrong while playing the audio", Toast.LENGTH_LONG);
return;
}
diff --git a/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinner.java b/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinner.java
index 2327fd7e..34b3a4e8 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinner.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinner.java
@@ -26,7 +26,7 @@
import com.quranapp.android.databinding.LytReaderSpinnerPopupBinding;
import com.quranapp.android.utils.extensions.ContextKt;
import com.quranapp.android.utils.univ.PopupWindow2;
-import com.quranapp.android.utils.univ.SimpleTextWatcher;
+import com.quranapp.android.utils.simplified.SimpleTextWatcher;
import com.quranapp.android.utils.univ.StringUtils;
import java.util.ArrayList;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinnerAdapter.java b/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinnerAdapter.java
index b1a2ab9c..05bf7ed9 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinnerAdapter.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinnerAdapter.java
@@ -126,7 +126,7 @@ public VHReaderSpinner(ReaderSpinnerAdapter> adapter, @NonNull View itemView)
@CallSuper
public void bind(ReaderSpinnerItem item) {
- itemView.setSelected(item.isSelected());
+ itemView.setSelected(item.getSelected());
itemView.setOnClickListener(v -> {
if (mAdapter != null) {
mAdapter.onItemSelect(item, true);
diff --git a/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinnerItem.kt b/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinnerItem.kt
index 7cb7919f..793a4c43 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinnerItem.kt
+++ b/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinnerItem.kt
@@ -1,6 +1,6 @@
package com.quranapp.android.views.reader.spinner
-import com.peacedesign.android.utils.ComponentBase
+import com.quranapp.android.components.ComponentBase
open class ReaderSpinnerItem : ComponentBase() {
var label: CharSequence = ""
diff --git a/app/src/main/java/com/quranapp/android/views/readerSpinner2/adapters/ADPJuzChapterVerseBase.kt b/app/src/main/java/com/quranapp/android/views/readerSpinner2/adapters/ADPJuzChapterVerseBase.kt
index 39457835..479df1d0 100644
--- a/app/src/main/java/com/quranapp/android/views/readerSpinner2/adapters/ADPJuzChapterVerseBase.kt
+++ b/app/src/main/java/com/quranapp/android/views/readerSpinner2/adapters/ADPJuzChapterVerseBase.kt
@@ -71,11 +71,11 @@ abstract class ADPJuzChapterVerseBase- (private val adapter: ADP
@CallSuper
open fun bind(item: T) {
- itemView.isSelected = item.isSelected
+ itemView.isSelected = item.selected
itemView.setOnClickListener { adapter.onItemSelectInAdapter(item, true) }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetMenu.kt b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetMenu.kt
index 8414dd01..193d7d7e 100644
--- a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetMenu.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetMenu.kt
@@ -4,15 +4,15 @@ import android.content.Context
import android.os.Bundle
import android.view.View
import android.widget.LinearLayout
-import com.peacedesign.android.widget.list.base.BaseListAdapter
-import com.peacedesign.android.widget.list.base.BaseListItem
-import com.peacedesign.android.widget.list.simple.SimpleListView
-import com.peacedesign.android.widget.list.singleChoice.SingleChoiceListAdapter
-import com.peacedesign.android.widget.list.singleChoice.SingleChoiceListView
+import com.quranapp.android.widgets.list.base.BaseListAdapter
+import com.quranapp.android.widgets.list.base.BaseListItem
+import com.quranapp.android.widgets.list.base.BaseListView
+import com.quranapp.android.widgets.list.singleChoice.SingleChoiceListAdapter
+import com.quranapp.android.widgets.list.singleChoice.SingleChoiceListView
open class PeaceBottomSheetMenu : PeaceBottomSheet() {
var onItemClickListener: OnItemClickListener? = null
- var adapter: BaseListAdapter? = null
+ var adapter: BaseListAdapter? = null
override fun onCreate(savedInstanceState: Bundle?) {
@@ -34,18 +34,20 @@ open class PeaceBottomSheetMenu : PeaceBottomSheet() {
dialogLayout.addView(createAdapterView(dialogLayout.context, adapter!!))
}
- protected open fun createAdapterView(context: Context, listAdapter: BaseListAdapter): View {
+ protected open fun createAdapterView(context: Context, listAdapter: BaseListAdapter): View {
val listView = if (listAdapter is SingleChoiceListAdapter) {
SingleChoiceListView(context)
} else {
- SimpleListView(context)
+ BaseListView(context)
}
- listView.setOnItemClickListener { item ->
- onItemClickListener?.onItemClick(this, item)
- }
+ listView.setOnItemClickListener(object : BaseListView.OnItemClickListener {
+ override fun onItemClick(item: BaseListItem) {
+ onItemClickListener?.onItemClick(this@PeaceBottomSheetMenu, item)
+ }
+ })
- listView.post { listView.adapter = adapter }
+ listView.post { listView.setAdapter(adapter) }
return listView
}
diff --git a/app/src/main/java/com/quranapp/android/widgets/form/PeaceFormInputField.java b/app/src/main/java/com/quranapp/android/widgets/form/PeaceFormInputField.java
index 542eb718..29e511cf 100644
--- a/app/src/main/java/com/quranapp/android/widgets/form/PeaceFormInputField.java
+++ b/app/src/main/java/com/quranapp/android/widgets/form/PeaceFormInputField.java
@@ -25,7 +25,7 @@
import androidx.annotation.StringRes;
import com.quranapp.android.R;
-import com.quranapp.android.utils.univ.SimpleTextWatcher;
+import com.quranapp.android.utils.simplified.SimpleTextWatcher;
public class PeaceFormInputField extends FrameLayout {
private CharSequence mFieldTitle;
diff --git a/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListAdapter.kt b/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListAdapter.kt
new file mode 100644
index 00000000..c52b1942
--- /dev/null
+++ b/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListAdapter.kt
@@ -0,0 +1,208 @@
+package com.quranapp.android.widgets.list.base
+
+import android.animation.Animator
+import android.animation.AnimatorListenerAdapter
+import android.animation.AnimatorSet
+import android.animation.ValueAnimator
+import android.content.Context
+import android.os.Handler
+import android.os.Looper
+import android.view.View
+import android.view.ViewGroup
+import com.peacedesign.android.utils.ArrayListPro
+import com.peacedesign.android.utils.interfaceUtils.ObserverPro.UpdateType
+
+open class BaseListAdapter(val context: Context) {
+ private val handler = Handler(Looper.getMainLooper())
+ private val items = ArrayListPro()
+ private val animationDuration = 300L
+
+ private var itemsAnimatable = true
+
+ var container: ViewGroup? = null
+ var listView: BaseListView? = null
+
+ init {
+ items.addObserver { _, updateType ->
+ if (updateType == UpdateType.REMOVE || updateType == UpdateType.ADD) {
+ for (i in items.indices) {
+ items[i].position = i
+ }
+ }
+ }
+ }
+
+
+ open fun onCreateItem(item: BaseListItem, index: Int) {
+ val itemView = onCreateItemView(item, index) ?: return
+
+ handler.post { itemView.isSelected = item.selected }
+
+ itemView.setOnClickListener { dispatchClick(item) }
+
+ item.itemView = itemView
+ item.adapter = this
+
+ getContainerInternal()?.let {
+ onAppendItemView(it, itemView, index)
+ }
+ }
+
+
+ protected open fun onCreateItemView(item: BaseListItem, position: Int): View? {
+ return BaseListItemView(context, item)
+ }
+
+ protected open fun onAppendItemView(container: ViewGroup, itemView: View, position: Int) {
+ container.addView(itemView, position)
+ }
+
+ fun drainItems() {
+ items.clear()
+ container?.removeAllViews()
+ }
+
+ fun setItems(items: ArrayList) {
+ val oldAnimateItemsFlag = itemsAnimatable
+
+ itemsAnimatable = false
+ drainItems()
+ itemsAnimatable = oldAnimateItemsFlag
+
+ this.items.addAll(items)
+
+ listView?.onCreate()
+ }
+
+ fun addItem(item: BaseListItem) {
+ addItem(item, items.size)
+ }
+
+ fun addItem(item: BaseListItem, index: Int) {
+ item.position = index
+
+ items.add(index, item)
+ if (isLaidOut()) {
+ onCreateItem(item, index)
+
+ if (itemsAnimatable) {
+ val itemView = item.itemView
+ if (itemView != null) {
+ addViewWithAnimation(itemView)
+ }
+ }
+ }
+ }
+
+ private fun isLaidOut(): Boolean {
+ return container?.isLaidOut == true
+ }
+
+
+ fun removeItem(index: Int) {
+ removeItem(items[index])
+ }
+
+ fun removeItem(item: BaseListItem) {
+ item.itemView?.let {
+ remove(it, item, itemsAnimatable)
+ }
+ }
+
+ private fun remove(view: View, item: BaseListItem, animate: Boolean) {
+ if (animate) removeWithAnimation(view, item) else removeFinal(view, item)
+ }
+
+ fun removeFinal(view: View, item: BaseListItem) {
+ (view.parent as ViewGroup).removeView(view)
+ removeMenuItemInternal(item)
+ }
+
+ private fun removeMenuItemInternal(item: BaseListItem) {
+ items.remove(item)
+ }
+
+ private fun removeWithAnimation(view: View, item: BaseListItem) {
+ val params = view.layoutParams
+
+ val alphaAnimator = ValueAnimator().apply {
+ setFloatValues(view.alpha, 0f)
+ addUpdateListener { animation -> view.alpha = animation.animatedValue as Float }
+ }
+
+ val heightAnimator = ValueAnimator().apply {
+ setIntValues(view.height, 0)
+ addUpdateListener { animation ->
+ params.height = animation.animatedValue as Int
+ view.requestLayout()
+ }
+ }
+
+ val animatorSet = AnimatorSet()
+ animatorSet.play(heightAnimator).with(alphaAnimator)
+ animatorSet.addListener(object : AnimatorListenerAdapter() {
+ override fun onAnimationEnd(animation: Animator) {
+ super.onAnimationEnd(animation)
+ removeFinal(view, item)
+ }
+ })
+ animatorSet.setDuration(animationDuration).start()
+ }
+
+ private fun addViewWithAnimation(itemView: View) {
+ itemView.measure(0, 0)
+
+ val params = itemView.layoutParams.apply {
+ height = 0
+ }
+
+ val alphaAnimator = ValueAnimator().apply {
+ setFloatValues(0f, itemView.alpha)
+ addUpdateListener { animation ->
+ itemView.alpha = animation.animatedValue as Float
+ }
+ }
+
+ val heightAnimator = ValueAnimator().apply {
+ setIntValues(0, itemView.measuredHeight)
+ addUpdateListener { animation ->
+ params.height = animation.animatedValue as Int
+ itemView.requestLayout()
+ }
+ }
+
+ val animatorSet = AnimatorSet()
+ animatorSet.play(heightAnimator).with(alphaAnimator)
+ animatorSet.setDuration(animationDuration).start()
+ }
+
+ fun getItem(index: Int): BaseListItem {
+ val count = itemsCount()
+ if (index < 0 || index >= count) {
+ throw IndexOutOfBoundsException(
+ String.format(
+ "Adapter indexOutOfBound. Index: %d, Size: %d ",
+ index,
+ count
+ )
+ )
+ }
+
+ return items[index]
+ }
+
+ fun itemsCount() = items.size
+
+ private fun getContainerInternal() = container
+
+ protected open fun dispatchClick(item: BaseListItem) {
+ listView?.dispatchItemClick(item)
+ }
+
+ fun notifyItemChanged(position: Int) {
+ val itemView = getItem(position).itemView
+ if (itemView is BaseListItemView) {
+ itemView.notifyForChange()
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListItem.kt b/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListItem.kt
new file mode 100644
index 00000000..6c90adbf
--- /dev/null
+++ b/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListItem.kt
@@ -0,0 +1,13 @@
+package com.quranapp.android.widgets.list.base
+
+import android.view.View
+import com.quranapp.android.components.ComponentBase
+
+class BaseListItem @JvmOverloads constructor(
+ var icon: Int = 0,
+ var label: String? = null,
+ var message: String? = null,
+) : ComponentBase() {
+ var adapter: BaseListAdapter? = null
+ var itemView: View? = null
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListItemView.kt b/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListItemView.kt
new file mode 100644
index 00000000..cf12bba9
--- /dev/null
+++ b/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListItemView.kt
@@ -0,0 +1,186 @@
+package com.quranapp.android.widgets.list.base
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.graphics.drawable.Drawable
+import android.view.ContextThemeWrapper
+import android.view.Gravity
+import android.view.ViewGroup.LayoutParams.MATCH_PARENT
+import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
+import android.widget.FrameLayout
+import android.widget.LinearLayout
+import androidx.annotation.DrawableRes
+import androidx.appcompat.widget.AppCompatImageView
+import androidx.appcompat.widget.AppCompatTextView
+import com.peacedesign.android.utils.Dimen
+import com.quranapp.android.R
+import com.quranapp.android.utils.extensions.dp2px
+import com.quranapp.android.utils.extensions.drawable
+import com.quranapp.android.utils.extensions.removeView
+import com.quranapp.android.utils.extensions.updateMarginHorizontal
+
+@SuppressLint("ViewConstructor")
+class BaseListItemView(context: Context, val item: BaseListItem) : FrameLayout(context) {
+ val containerView = LinearLayout(resolveItemStyle())
+ val labelCont = LinearLayout(context)
+
+ var iconView: AppCompatImageView? = null
+ var labelView: AppCompatTextView? = null
+ var messageView: AppCompatTextView? = null
+
+ init {
+ initThis()
+ initContainer()
+ initIconView()
+ initLabelCont()
+
+ measure(0, 0)
+ }
+
+ private fun initThis() {
+ updateDisability()
+ }
+
+ private fun initContainer() {
+ containerView.layoutParams = LayoutParams(MATCH_PARENT, WRAP_CONTENT)
+ addView(containerView)
+ }
+
+ private fun initIconView() {
+ if (item.icon == 0) return
+
+ val iconDrawable = context.drawable(item.icon)
+
+ iconView = AppCompatImageView(resolveItemIconStyle()).apply {
+ setImageDrawable(iconDrawable)
+
+ val size = context.dp2px(40f)
+ layoutParams = LinearLayout.LayoutParams(size, size).apply {
+ gravity = Gravity.TOP
+ }
+ }
+
+ updateIcon()
+ containerView.addView(iconView)
+ }
+
+
+ private fun initLabelCont() {
+ labelCont.apply {
+ layoutParams = LayoutParams(WRAP_CONTENT, WRAP_CONTENT).apply {
+ updateMarginHorizontal(Dimen.dp2px(context, 10f))
+ gravity = Gravity.CENTER_VERTICAL
+ }
+ orientation = LinearLayout.VERTICAL
+ }
+
+ initLabelView()
+ initMessageView()
+
+ containerView.addView(labelCont)
+ }
+
+ private fun initLabelView() {
+ if (labelView != null || item.label.isNullOrEmpty()) return
+
+ labelView = AppCompatTextView(resolveItemLabelStyle())
+ updateLabel()
+
+ labelCont.addView(labelView)
+ }
+
+ private fun initMessageView() {
+ if (messageView != null || item.message.isNullOrEmpty()) {
+ return
+ }
+
+ messageView = AppCompatTextView(resolveItemMassageStyle())
+
+ /*mMessageView.setTextColor(ContextCompat.getColor(getContext(), R.color.colorBodyTer1Text));
+ mMessageView.setTextSize(Dimen.getDimenSp(getContext(), R.dimen.dmnCommonSizeTer));
+ mMessageView.setMaxLines(2);
+ mMessageView.setEllipsize(TextUtils.TruncateAt.END);*/
+
+ updateDescription()
+ labelCont!!.addView(messageView)
+ }
+
+ fun updateIcon() {
+ if (item.icon == 0) {
+ iconView.removeView()
+ return
+ }
+
+ if (iconView == null) {
+ initIconView()
+ return
+ }
+
+ iconView?.setImageDrawable(context.drawable(item.icon))
+
+ }
+
+ fun updateLabel() {
+ if (labelView == null) {
+ initMessageView()
+ return
+ }
+
+ if (item.label.isNullOrEmpty()) {
+ labelView.removeView()
+ } else {
+ labelView!!.text = item.label
+ }
+ }
+
+ private fun updateDescription() {
+ if (messageView == null) {
+ initMessageView()
+ return
+ }
+
+ if (item.message.isNullOrEmpty()) {
+ messageView.removeView()
+ } else {
+ messageView!!.text = item.message
+ }
+ }
+
+ fun updateDisability() {
+ isEnabled = item.enabled
+ alpha = if (item.enabled) 1f else 0.5f
+ }
+
+ fun notifyForChange() {
+ updateIcon()
+ updateLabel()
+ updateDescription()
+ updateDisability()
+ isSelected = item.selected
+ }
+
+ fun setItemBackground(background: Drawable?) {
+ containerView.background = background
+ }
+
+ fun setItemBackground(@DrawableRes backgroundRes: Int) {
+ containerView.setBackgroundResource(backgroundRes)
+ }
+
+ private fun resolveItemStyle(): Context {
+ return ContextThemeWrapper(context, R.style.SimpleListItemStyle)
+ }
+
+ private fun resolveItemIconStyle(): Context {
+ return ContextThemeWrapper(context, R.style.SimpleListItemIconStyle)
+ }
+
+ private fun resolveItemLabelStyle(): Context {
+ return ContextThemeWrapper(context, R.style.SimpleListItemLabelStyle)
+ }
+
+ private fun resolveItemMassageStyle(): Context {
+ return ContextThemeWrapper(context, R.style.SimpleListItemMessageStyle)
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListView.kt b/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListView.kt
new file mode 100644
index 00000000..d3870345
--- /dev/null
+++ b/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListView.kt
@@ -0,0 +1,121 @@
+package com.quranapp.android.widgets.list.base
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.View
+import android.view.ViewGroup
+import android.view.animation.Animation
+import android.view.animation.AnimationUtils
+import android.widget.LinearLayout
+import androidx.core.widget.NestedScrollView
+import com.quranapp.android.utils.extensions.dp2px
+import com.quranapp.android.utils.extensions.updatePaddingVertical
+
+open class BaseListView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0,
+) : NestedScrollView(context, attrs, defStyleAttr) {
+ companion object {
+ const val DEFAULT_ITEM_ANIMATOR = -1
+ }
+
+ val container = createItemsContainer(context)
+ private var mAdapter: BaseListAdapter? = null
+ private var onItemClickListener: OnItemClickListener? = null
+ var supportsShowAnimation = false
+ var itemAnimator = DEFAULT_ITEM_ANIMATOR
+
+ init {
+ isVerticalScrollBarEnabled = false
+ clipToPadding = false
+ addView(container)
+ }
+
+ protected open fun createItemsContainer(context: Context): ViewGroup {
+ return LinearLayout(context).apply {
+ orientation = LinearLayout.VERTICAL
+ updatePaddingVertical(context.dp2px(10f))
+ }
+ }
+
+ fun getItem(position: Int): BaseListItem? {
+ return mAdapter?.getItem(position)
+ }
+
+ open fun onCreate() {
+ create()
+ }
+
+
+ private fun create() {
+ container.removeAllViews()
+
+ if (mAdapter == null) return
+
+ setContainer(container)
+
+ for (i in 0 until mAdapter!!.itemsCount()) {
+ onCreateItem(mAdapter!!.getItem(i), i)
+ }
+ }
+
+ protected open fun onCreateItem(item: BaseListItem, position: Int) {
+ mAdapter?.onCreateItem(item, position)
+ val itemView = item.itemView ?: return
+
+ if (supportsShowAnimation) {
+ initPendingItemAnimation(itemView, position)
+ }
+ }
+
+ protected open fun setContainer(container: ViewGroup) {
+ mAdapter?.container = container
+ }
+
+ fun getAdapter(): BaseListAdapter? {
+ return mAdapter
+ }
+
+ fun setAdapter(adapter: BaseListAdapter?) {
+ mAdapter = adapter
+
+ adapter?.listView = this
+
+ onCreate()
+ }
+
+ private fun resolveAnimation(): Animation? {
+ return if (itemAnimator == 0) null else try {
+ AnimationUtils.loadAnimation(context, itemAnimator)
+ } catch (e: Exception) {
+ AnimationUtils.loadAnimation(context, android.R.anim.fade_in)
+ }
+ }
+
+ private fun initPendingItemAnimation(itemView: View, itemIndex: Int) {
+ val animation = resolveAnimation() ?: return
+
+ animation.apply {
+ fillAfter = true
+ fillBefore = true
+ startOffset = (itemIndex * 40).toLong()
+ duration = 300
+ }
+
+ itemView.post { itemView.startAnimation(animation) }
+ }
+
+ open fun dispatchItemClick(item: BaseListItem) {
+ onItemClickListener?.onItemClick(item)
+ }
+
+
+ open fun setOnItemClickListener(listener: OnItemClickListener) {
+ onItemClickListener = listener
+ }
+
+ interface OnItemClickListener {
+ fun onItemClick(item: BaseListItem)
+ }
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/list/singleChoice/SingleChoiceListAdapter.kt b/app/src/main/java/com/quranapp/android/widgets/list/singleChoice/SingleChoiceListAdapter.kt
new file mode 100644
index 00000000..5aaadc18
--- /dev/null
+++ b/app/src/main/java/com/quranapp/android/widgets/list/singleChoice/SingleChoiceListAdapter.kt
@@ -0,0 +1,33 @@
+package com.quranapp.android.widgets.list.singleChoice
+
+import android.content.Context
+import android.view.View
+import android.view.ViewGroup
+import com.quranapp.android.widgets.list.base.BaseListAdapter
+import com.quranapp.android.widgets.list.base.BaseListItem
+import com.quranapp.android.widgets.radio.PeaceRadioButton
+import com.quranapp.android.widgets.radio.PeaceRadioGroup
+
+
+class SingleChoiceListAdapter(context: Context) : BaseListAdapter(context) {
+ override fun onCreateItemView(item: BaseListItem, position: Int): View {
+ val radio = PeaceRadioButton(context).apply {
+ tag = item
+ setTexts(item.label, item.message)
+ }
+
+ if (item.id != View.NO_ID) {
+ radio.id = item.id
+ }
+
+ return radio
+ }
+
+ override fun onAppendItemView(container: ViewGroup, itemView: View, position: Int) {
+ super.onAppendItemView(container, itemView, position)
+
+ if (getItem(position).selected && container is PeaceRadioGroup) {
+ container.check(itemView.id)
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/widgets/list/singleChoice/SingleChoiceListView.kt b/app/src/main/java/com/quranapp/android/widgets/list/singleChoice/SingleChoiceListView.kt
new file mode 100644
index 00000000..4fe70ea2
--- /dev/null
+++ b/app/src/main/java/com/quranapp/android/widgets/list/singleChoice/SingleChoiceListView.kt
@@ -0,0 +1,28 @@
+package com.quranapp.android.widgets.list.singleChoice
+
+import android.content.Context
+import android.view.ViewGroup
+import com.quranapp.android.widgets.list.base.BaseListItem
+import com.quranapp.android.widgets.list.base.BaseListView
+import com.quranapp.android.widgets.radio.PeaceRadioGroup
+
+class SingleChoiceListView(context: Context) : BaseListView(context) {
+ private var selectionChangeListener: OnItemClickListener? = null
+
+ override fun createItemsContainer(context: Context): ViewGroup {
+ val radioGroup = PeaceRadioGroup(context)
+ radioGroup.onCheckChangedListener = { button, _ ->
+ if (selectionChangeListener != null) {
+ val item = button.tag as BaseListItem?
+ if (item != null) {
+ selectionChangeListener!!.onItemClick(item)
+ }
+ }
+ }
+ return radioGroup
+ }
+
+ override fun setOnItemClickListener(listener: OnItemClickListener) {
+ selectionChangeListener = listener
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTab.java b/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTab.java
index dc426873..2d348b66 100644
--- a/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTab.java
+++ b/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTab.java
@@ -6,7 +6,7 @@
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
-import com.peacedesign.android.utils.ComponentBase;
+import com.quranapp.android.components.ComponentBase;
import com.quranapp.android.utils.univ.StringUtils;
public class BottomTab extends ComponentBase {
diff --git a/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTabLayout.java b/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTabLayout.java
index 51731488..90caf3f8 100644
--- a/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTabLayout.java
+++ b/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTabLayout.java
@@ -227,7 +227,7 @@ void selectTabAtInternal(int position) {
if (getTabsCount() == 0) return;
BottomTab tabToSelect = mTabs.get(position);
- if (tabToSelect.isSelected()) return;
+ if (tabToSelect.getSelected()) return;
mProtectFromViewPagerChange = true;
selectTab(tabToSelect);
diff --git a/app/src/main/res/values/list_styles.xml b/app/src/main/res/values/list_styles.xml
new file mode 100644
index 00000000..83a3de5a
--- /dev/null
+++ b/app/src/main/res/values/list_styles.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/peacedesign/src/main/java/com/peacedesign/android/utils/ComponentBase.java b/peacedesign/src/main/java/com/peacedesign/android/utils/ComponentBase.java
deleted file mode 100644
index aa773b05..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/utils/ComponentBase.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package com.peacedesign.android.utils;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.peacedesign.android.utils.interfaceUtils.Position;
-import com.peacedesign.android.utils.interfaceUtils.Selectable;
-
-import java.io.Serializable;
-
-public abstract class ComponentBase implements Selectable, Position, Serializable {
- private int mId = -1;
- private String mKey;
- private int mPosition = -1;
- private boolean mSelected;
- private boolean mEnabled = true;
- private transient Object object;
-
-
- public int getId() {
- return mId;
- }
-
- public void setId(int id) {
- this.mId = id;
- }
-
- @NonNull
- public String getKey() {
- return mKey;
- }
-
- public void setKey(@NonNull String key) {
- mKey = key;
- }
-
- @Override
- public int getPosition() {
- return mPosition;
- }
-
- @Override
- public void setPosition(int position) {
- mPosition = position;
- }
-
- @Override
- public boolean isSelected() {
- return mSelected;
- }
-
- @Override
- public void setSelected(boolean flag) {
- mSelected = flag;
- }
-
- public Object getObject() {
- return object;
- }
-
- public void setObject(@Nullable Object object) {
- this.object = object;
- }
-
- public boolean isEnabled() {
- return mEnabled;
- }
-
- public void setEnabled(boolean flag) {
- this.mEnabled = flag;
- }
-
- public void resetBools() {
- setSelected(false);
- setEnabled(true);
- }
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/utils/ResUtils.java b/peacedesign/src/main/java/com/peacedesign/android/utils/ResUtils.java
index 9c073fd8..0043edda 100644
--- a/peacedesign/src/main/java/com/peacedesign/android/utils/ResUtils.java
+++ b/peacedesign/src/main/java/com/peacedesign/android/utils/ResUtils.java
@@ -1,40 +1,12 @@
package com.peacedesign.android.utils;
import android.content.Context;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.content.res.TypedArray;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.Typeface;
-import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
-import android.view.LayoutInflater;
-import android.view.View;
-import androidx.annotation.ColorInt;
-import androidx.annotation.DimenRes;
-import androidx.annotation.Dimension;
import androidx.annotation.DrawableRes;
-import androidx.annotation.FontRes;
-import androidx.annotation.FractionRes;
-import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.annotation.StringRes;
import androidx.appcompat.content.res.AppCompatResources;
-import androidx.core.content.ContextCompat;
-import androidx.core.content.res.ResourcesCompat;
-import androidx.core.graphics.drawable.DrawableCompat;
-
-import com.peacedesign.R;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.Field;
-import java.util.Locale;
public class ResUtils {
@Nullable
diff --git a/peacedesign/src/main/java/com/peacedesign/android/utils/interfaceUtils/CompoundButtonGroup.java b/peacedesign/src/main/java/com/peacedesign/android/utils/interfaceUtils/CompoundButtonGroup.java
deleted file mode 100644
index 4eb12071..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/utils/interfaceUtils/CompoundButtonGroup.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) Faisal Khan (https://github.com/faisalcodes)
- * Created on 2/4/2022.
- * All rights reserved.
- */
-
-package com.peacedesign.android.utils.interfaceUtils;
-
-import androidx.annotation.IdRes;
-
-import com.peacedesign.android.widget.radio.PeaceRadioButton;
-
-
-public interface CompoundButtonGroup {
- void clearCheck();
-
- /**
- * Check a button without invoking the Listeners.
- *
- * @param id Id of the {@link PeaceRadioButton} to be checked.
- */
- void checkSansInvocation(@IdRes int id);
-
- void checkAtPosition(int position);
-
- void check(@IdRes int id);
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/utils/interfaceUtils/Position.java b/peacedesign/src/main/java/com/peacedesign/android/utils/interfaceUtils/Position.java
deleted file mode 100644
index 067bce95..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/utils/interfaceUtils/Position.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.peacedesign.android.utils.interfaceUtils;
-
-public interface Position {
- int getPosition();
-
- void setPosition(int position);
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/utils/interfaceUtils/Selectable.java b/peacedesign/src/main/java/com/peacedesign/android/utils/interfaceUtils/Selectable.java
deleted file mode 100644
index 5c7a501e..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/utils/interfaceUtils/Selectable.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.peacedesign.android.utils.interfaceUtils;
-
-public interface Selectable {
- boolean isSelected();
-
- void setSelected(boolean selected);
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/compound/PeaceCompoundButton.java b/peacedesign/src/main/java/com/peacedesign/android/widget/compound/PeaceCompoundButton.java
deleted file mode 100644
index 55c67fbe..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/widget/compound/PeaceCompoundButton.java
+++ /dev/null
@@ -1,435 +0,0 @@
-/*
- * Copyright (c) Faisal Khan (https://github.com/faisalcodes)
- * Created on 2/4/2022.
- * All rights reserved.
- */
-
-package com.peacedesign.android.widget.compound;
-
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
-import android.content.Context;
-import android.content.res.ColorStateList;
-import android.content.res.TypedArray;
-import android.graphics.Typeface;
-import android.graphics.drawable.Drawable;
-import android.text.SpannableString;
-import android.text.SpannableStringBuilder;
-import android.text.TextUtils;
-import android.text.style.TextAppearanceSpan;
-import android.util.AttributeSet;
-import android.view.Gravity;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.Checkable;
-import android.widget.CompoundButton;
-import android.widget.LinearLayout;
-
-import androidx.annotation.CallSuper;
-import androidx.annotation.IntDef;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.annotation.StringRes;
-import androidx.annotation.StyleRes;
-import androidx.appcompat.widget.AppCompatTextView;
-
-import com.peacedesign.R;
-import com.peacedesign.android.utils.Dimen;
-import com.peacedesign.android.utils.ViewUtils;
-import com.peacedesign.android.utils.interfaceUtils.CompoundButtonGroup;
-import com.peacedesign.android.utils.span.TypefaceSpan2;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-public abstract class PeaceCompoundButton extends LinearLayout implements Checkable, CompoundButton.OnCheckedChangeListener {
- public static final int COMPOUND_TEXT_LEFT = 0;
- public static final int COMPOUND_TEXT_TOP = 1;
- public static final int COMPOUND_TEXT_RIGHT = 2;
- public static final int COMPOUND_TEXT_BOTTOM = 3;
-
- public static final int COMPOUND_TEXT_GRAVITY_START = 0;
- public static final int COMPOUND_TEXT_GRAVITY_END = 1;
- public static final int COMPOUND_TEXT_GRAVITY_CENTER = 2;
- public static final int COMPOUND_TEXT_GRAVITY_LEFT = 3;
- public static final int COMPOUND_TEXT_GRAVITY_RIGHT = 4;
-
- protected final boolean mInitialChecked;
- @TextGravity
- private int mTextGravity;
- private CompoundButtonGroup mParent;
- private CharSequence mText;
- private CharSequence mSubText;
- @CompoundDirection
- private int mCompoundDirection;
- private int mSpaceBetween;
- private int mTextAppearanceResId;
- private int mSubTextAppearanceResId;
-
- private BeforeCompoundCheckChangeListener mBeforeCheckListener;
- private OnCompoundCheckChangedListener mCheckChangeListener;
-
- private AppCompatTextView mTxtView;
-
- public PeaceCompoundButton(Context context) {
- this(context, null);
- }
-
- public PeaceCompoundButton(Context context, @Nullable AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public PeaceCompoundButton(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
- this(context, attrs, defStyleAttr, 0);
- }
-
- public PeaceCompoundButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
- super(context, attrs, defStyleAttr, defStyleRes);
- TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.PeaceCompoundButton, defStyleAttr, defStyleRes);
-
- mText = a.getText(R.styleable.PeaceCompoundButton_android_text);
- mSubText = a.getText(R.styleable.PeaceCompoundButton_peaceComp_subText);
- mInitialChecked = a.getBoolean(R.styleable.PeaceCompoundButton_android_checked, false);
- mCompoundDirection = a.getInt(R.styleable.PeaceCompoundButton_peaceComp_direction, COMPOUND_TEXT_RIGHT);
- mSpaceBetween = a.getDimensionPixelSize(R.styleable.PeaceCompoundButton_peaceComp_spaceBetween, Dimen.dp2px(context, 10));
- mTextGravity = a.getInt(R.styleable.PeaceCompoundButton_peaceComp_textGravity, COMPOUND_TEXT_GRAVITY_START);
- mTextAppearanceResId = a.getResourceId(R.styleable.PeaceCompoundButton_android_textAppearance,
- R.style.PeaceRadioTextAppearance);
- mSubTextAppearanceResId = a.getResourceId(R.styleable.PeaceCompoundButton_peaceComp_subTextAppearance,
- R.style.PeaceRadioSubTextAppearance);
-
- a.recycle();
- init();
- }
-
- private void init() {
- initThis();
- makeComponents();
- }
-
- @CallSuper
- protected void initThis() {
- super.setOrientation(HORIZONTAL);
- super.setOnClickListener(v -> {
- if (mParent != null) mParent.check(getId());
- else toggle();
- });
- }
-
- @CallSuper
- protected void makeComponents() {
- makeTexts();
- addCompoundButton();
- }
-
- private void makeTexts() {
- mTxtView = new AppCompatTextView(getContext());
- LayoutParams paramsText = new LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
- paramsText.weight = 1;
- mTxtView.setLayoutParams(paramsText);
- mTxtView.setGravity(resolveTextGravity(mTextGravity));
-
- setTextAppearancesInternal(mTextAppearanceResId, mSubTextAppearanceResId);
- }
-
- protected void addCompoundButton() {
- View compoundButton = getCompoundButton();
-
- ViewUtils.removeView(mTxtView);
- ViewUtils.removeView(compoundButton);
-
- switch (mCompoundDirection) {
- case COMPOUND_TEXT_LEFT:
- case COMPOUND_TEXT_TOP:
- addView(mTxtView, 0);
- if (compoundButton != null) {
- addView(compoundButton, 1);
- }
- break;
- case COMPOUND_TEXT_RIGHT:
- case COMPOUND_TEXT_BOTTOM:
- default:
- if (compoundButton != null) {
- addView(compoundButton, 0);
- }
-
- addView(mTxtView, compoundButton != null ? 1 : 0);
- break;
- }
-
- if (mCompoundDirection == COMPOUND_TEXT_TOP || mCompoundDirection == COMPOUND_TEXT_BOTTOM) {
- super.setOrientation(VERTICAL);
- } else {
- super.setOrientation(HORIZONTAL);
- }
-
- setSpaceBetweenInternal(mSpaceBetween);
- }
-
- protected abstract CompoundButton getCompoundButton();
-
- private int resolveTextGravity(@TextGravity int textGravity) {
- switch (textGravity) {
- case COMPOUND_TEXT_GRAVITY_CENTER:
- return Gravity.CENTER;
- case COMPOUND_TEXT_GRAVITY_END:
- return Gravity.END;
- case COMPOUND_TEXT_GRAVITY_LEFT:
- return Gravity.LEFT;
- case COMPOUND_TEXT_GRAVITY_RIGHT:
- return Gravity.RIGHT;
- case COMPOUND_TEXT_GRAVITY_START:
- default:
- return Gravity.START;
- }
- }
-
- private void setTextInternal(CharSequence text, CharSequence subtext) {
- SpannableStringBuilder ssb = new SpannableStringBuilder();
-
- if (!TextUtils.isEmpty(text)) {
- SpannableString titleSS = new SpannableString(text);
- setTextAppearanceSpan(titleSS, mTextAppearanceResId, false);
- ssb.append(titleSS);
- }
-
- if (!TextUtils.isEmpty(subtext)) {
- if (!TextUtils.isEmpty(text)) ssb.append("\n");
-
- SpannableString subtitleSS = new SpannableString(subtext);
- setTextAppearanceSpan(subtitleSS, mSubTextAppearanceResId, true);
- ssb.append(subtitleSS);
- }
-
- mTxtView.setText(ssb);
- mTxtView.setVisibility(ssb.length() > 0 ? VISIBLE : GONE);
- }
-
- private void setTextAppearanceSpan(SpannableString ss, int styleId, boolean isSubText) {
- int txtSizeDef = Dimen.sp2px(getContext(), isSubText ? 14 : 16);
- TypedArray ta = getContext().obtainStyledAttributes(styleId, androidx.appcompat.R.styleable.TextAppearance);
-
-
- String family = "sans-serif";
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
- Typeface font = ta.getFont(androidx.appcompat.R.styleable.TextAppearance_android_fontFamily);
- if (font != null) {
- ss.setSpan(new TypefaceSpan2(font), 0, ss.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
- } else {
- family = resolveFontFamily(ta.getString(androidx.appcompat.R.styleable.TextAppearance_android_fontFamily));
- }
- } else {
- family = resolveFontFamily(ta.getString(androidx.appcompat.R.styleable.TextAppearance_android_fontFamily));
- }
-
-
- int style = ta.getInt(androidx.appcompat.R.styleable.TextAppearance_android_textStyle,
- isSubText ? Typeface.NORMAL : Typeface.BOLD);
- int size = ta.getDimensionPixelSize(androidx.appcompat.R.styleable.TextAppearance_android_textSize, txtSizeDef);
- ColorStateList color = ta.getColorStateList(androidx.appcompat.R.styleable.TextAppearance_android_textColor);
- TextAppearanceSpan txtApSpan = new TextAppearanceSpan(family, style, size, color, null);
- ss.setSpan(txtApSpan, 0, ss.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
-
- ta.recycle();
- }
-
- private String resolveFontFamily(String s) {
-
- if ("sans-serif".equalsIgnoreCase(s) ||
- "sans-serif-light".equalsIgnoreCase(s) ||
- "sans-serif-condensed".equalsIgnoreCase(s) ||
- "sans-serif-black".equalsIgnoreCase(s) ||
- "sans-serif-thin".equalsIgnoreCase(s) ||
- "sans-serif-medium".equalsIgnoreCase(s)) {
- return s;
- }
- return "sans-serif";
- }
-
- private void setSpaceBetweenInternal(int spaceBetween) {
- LinearLayout.LayoutParams p = (LayoutParams) mTxtView.getLayoutParams();
- p.setMargins(0, 0, 0, 0);
- p.setMarginStart(0);
- p.setMarginEnd(0);
-
- switch (mCompoundDirection) {
- case COMPOUND_TEXT_LEFT:
- p.setMarginEnd(spaceBetween);
- break;
- case COMPOUND_TEXT_TOP:
- p.bottomMargin = spaceBetween;
- break;
- case COMPOUND_TEXT_RIGHT:
- p.setMarginStart(spaceBetween);
- break;
- case COMPOUND_TEXT_BOTTOM:
- p.topMargin = spaceBetween;
- break;
- }
- mTxtView.setLayoutParams(p);
- }
-
- private void setTextAppearancesInternal(int textAppearanceResId, int subTextAppearanceResId) {
- mTextAppearanceResId = textAppearanceResId;
- mSubTextAppearanceResId = subTextAppearanceResId;
-
- setTextInternal(mText, mSubText);
- }
-
- public void setTextAppearance(@StyleRes int styleResId) {
- mTextAppearanceResId = styleResId;
- setTextAppearances(styleResId, mSubTextAppearanceResId);
- }
-
- public void setTexts(@StringRes int textResId, @StringRes int subTextResId) {
- setTexts(getContext().getText(textResId), getContext().getText(subTextResId));
- }
-
- public void setTexts(CharSequence text, CharSequence subText) {
- mText = text;
- mSubText = subText;
-
- setTextInternal(text, subText);
- }
-
- public CharSequence getText() {
- return mText;
- }
-
- public void setText(@StringRes int resId) {
- setText(getContext().getText(resId));
- }
-
- public void setText(CharSequence text) {
- mText = text;
-
- setTextInternal(text, mSubText);
- }
-
- public CharSequence getSubText() {
- return mSubText;
- }
-
- public void setSubText(@StringRes int resId) {
- setSubText(getContext().getText(resId));
- }
-
- public void setSubText(CharSequence subText) {
- mSubText = subText;
-
- setTextInternal(mText, subText);
- }
-
- public void setCompoundDirection(@CompoundDirection int compoundDirection) {
- mCompoundDirection = compoundDirection;
-
- addCompoundButton();
- }
-
- public void setSpaceBetween(int spaceBetween) {
- mSpaceBetween = spaceBetween;
- setSpaceBetweenInternal(spaceBetween);
- }
-
- public void setTextAppearances(@StyleRes int textAppearanceResId, @StyleRes int subTextAppearanceResId) {
- setTextAppearancesInternal(textAppearanceResId, subTextAppearanceResId);
- }
-
- public void setSubTextAppearance(@StyleRes int styleResId) {
- mSubTextAppearanceResId = styleResId;
- setTextAppearances(mTextAppearanceResId, styleResId);
- }
-
- public void setForceTextGravity(@TextGravity int gravity) {
- mTextGravity = gravity;
-
- if (mTxtView != null) {
- mTxtView.setGravity(resolveTextGravity(gravity));
- }
- }
-
- public void setGroup(@NonNull CompoundButtonGroup radioGroupPro) {
- mParent = radioGroupPro;
- }
-
- public void setOnCheckedChangedListener(OnCompoundCheckChangedListener listener) {
- mCheckChangeListener = listener;
- }
-
- public void setOnBeforeCheckChangedListener(BeforeCompoundCheckChangeListener listener) {
- mBeforeCheckListener = listener;
- }
-
- @Override
- public boolean isChecked() {
- CompoundButton btn = getCompoundButton();
- if (btn == null) {
- return false;
- }
- return btn.isChecked();
- }
-
- @Override
- public void setChecked(boolean checked) {
- CompoundButton btn = getCompoundButton();
- if (btn == null) {
- return;
- }
-
- if (mBeforeCheckListener == null || mBeforeCheckListener.beforeCheck(this, checked)) {
- btn.setChecked(checked);
- }
- }
-
- @Override
- public void toggle() {
- CompoundButton btn = getCompoundButton();
- if (btn == null) {
- return;
- }
- if (mBeforeCheckListener == null || mBeforeCheckListener.beforeCheck(this, !isChecked())) {
- btn.toggle();
- }
- }
-
- @CallSuper
- @Override
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- Drawable background = getBackground();
- if (background != null) {
- int[] state = {isChecked ? android.R.attr.state_checked : -android.R.attr.state_checked};
- background.setState(state);
- }
-
- if (mCheckChangeListener != null) {
- mCheckChangeListener.onCheckChanged(this, isChecked);
- }
- }
-
- @Override
- public void setOrientation(int orientation) {
- // overridden
- }
-
- @Override
- public boolean onInterceptTouchEvent(@NonNull MotionEvent ev) {
- return true;
- }
-
- @IntDef({COMPOUND_TEXT_LEFT, COMPOUND_TEXT_TOP, COMPOUND_TEXT_RIGHT, COMPOUND_TEXT_BOTTOM})
- @Retention(RetentionPolicy.SOURCE)
- public @interface CompoundDirection {}
-
- @IntDef({COMPOUND_TEXT_GRAVITY_START, COMPOUND_TEXT_GRAVITY_END, COMPOUND_TEXT_GRAVITY_CENTER, COMPOUND_TEXT_GRAVITY_LEFT, COMPOUND_TEXT_GRAVITY_RIGHT})
- @Retention(RetentionPolicy.SOURCE)
- public @interface TextGravity {}
-
- public interface OnCompoundCheckChangedListener {
- void onCheckChanged(PeaceCompoundButton button, boolean isChecked);
- }
-
- public interface BeforeCompoundCheckChangeListener {
- boolean beforeCheck(PeaceCompoundButton button, boolean newState);
- }
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/dialog/base/PeaceDialogParams.java b/peacedesign/src/main/java/com/peacedesign/android/widget/dialog/base/PeaceDialogParams.java
index ebcc1d0d..3606accd 100644
--- a/peacedesign/src/main/java/com/peacedesign/android/widget/dialog/base/PeaceDialogParams.java
+++ b/peacedesign/src/main/java/com/peacedesign/android/widget/dialog/base/PeaceDialogParams.java
@@ -19,9 +19,6 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import com.peacedesign.android.widget.list.base.BaseListAdapter;
-import com.peacedesign.android.widget.list.base.BaseListItem;
-
class PeaceDialogParams {
@SuppressLint("UnknownNullness")
public Context context;
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/list/base/BaseListAdapter.java b/peacedesign/src/main/java/com/peacedesign/android/widget/list/base/BaseListAdapter.java
deleted file mode 100644
index 5ee156d0..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/widget/list/base/BaseListAdapter.java
+++ /dev/null
@@ -1,227 +0,0 @@
-package com.peacedesign.android.widget.list.base;
-
-import static com.peacedesign.android.utils.interfaceUtils.ObserverPro.UpdateType.ADD;
-import static com.peacedesign.android.utils.interfaceUtils.ObserverPro.UpdateType.REMOVE;
-
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.AnimatorSet;
-import android.animation.ValueAnimator;
-import android.content.Context;
-import android.os.Handler;
-import android.os.Looper;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-
-import com.peacedesign.android.utils.ArrayListPro;
-
-import java.util.ArrayList;
-
-public abstract class BaseListAdapter {
- private final Context mContext;
- private final ArrayListPro mItems = new ArrayListPro<>();
- private final int mAnimationDuration = 300;
- private ViewGroup mContainer;
- private boolean mItemsAnimatable = true;
- private BaseListView mListView;
- private final Handler handler = new Handler(Looper.getMainLooper());
-
- public BaseListAdapter(@NonNull Context context) {
- mContext = context;
-
- mItems.addObserver((observable, updateType) -> {
- if (updateType == REMOVE || updateType == ADD) {
- for (int i = 0; i < mItems.size(); i++) {
- mItems.get(i).setPosition(i);
- }
- }
- });
- }
-
- void setListView(@NonNull BaseListView listView) {
- mListView = listView;
- }
-
- void setContainer(@NonNull ViewGroup container) {
- mContainer = container;
- }
-
- @NonNull
- public final Context getContext() {
- return mContext;
- }
-
- protected void onCreateItem(@NonNull LI item, int index) {
- View itemView = onCreateItemView(item, index);
- if (itemView == null) return;
-
- handler.post(() -> itemView.setSelected(item.isSelected()));
-
- itemView.setOnClickListener(v -> dispatchClick(item));
- item.setItemView(itemView);
- item.setAdapter(this);
- onAppendItemView(getContainerInternal(), itemView, index);
- }
-
- protected View onCreateItemView(@NonNull LI item, int position) {
- return new BaseListItemView(getContext(), item);
- }
-
- protected void onAppendItemView(@NonNull ViewGroup container, @NonNull View itemView, int position) {
- container.addView(itemView, position);
- }
-
- public void drainItems() {
- mItems.clear();
- if (mContainer != null) {
- mContainer.removeAllViews();
- }
- }
-
- @SuppressWarnings({"rawtypes", "unchecked"})
- public void setItems(@NonNull ArrayList items) {
- boolean oldAnimateItemsFlag = mItemsAnimatable;
- mItemsAnimatable = false;
- drainItems();
- mItemsAnimatable = oldAnimateItemsFlag;
-
- mItems.addAll(items);
-
- if (mListView != null) {
- mListView.onCreate();
- }
- }
-
- public void addItem(@NonNull LI item) {
- addItem(item, mItems.size());
- }
-
- public void addItem(@NonNull LI item, int index) {
- item.setPosition(index);
-
- mItems.add(index, item);
-
- if (isLaidOut()) {
- onCreateItem(item, index);
- if (mItemsAnimatable) {
- View itemView = item.getItemView();
- if (itemView != null) {
- addViewWithAnimation(itemView);
- }
- }
- }
- }
-
- private boolean isLaidOut() {
- return mContainer != null && mContainer.isLaidOut();
- }
-
- public void removeItem(int index) {
- removeItem(mItems.get(index));
- }
-
- public void removeItem(@NonNull LI item) {
- View view = item.getItemView();
- if (view != null) {
- remove(view, item, mItemsAnimatable);
- }
- }
-
- private void remove(View view, LI item, boolean animate) {
- if (animate) removeWithAnimation(view, item);
- else removeFinal(view, item);
- }
-
- void removeFinal(View view, LI item) {
- ViewGroup parent = (ViewGroup) view.getParent();
- if (parent != null) {
- parent.removeView(view);
- }
- removeMenuItemInternal(item);
- }
-
- private void removeWithAnimation(View view, LI item) {
- ViewGroup.LayoutParams params = view.getLayoutParams();
-
- ValueAnimator alphaAnimator = new ValueAnimator();
- alphaAnimator.setFloatValues(view.getAlpha(), 0f);
-
- alphaAnimator.addUpdateListener(animation -> view.setAlpha((float) animation.getAnimatedValue()));
-
- ValueAnimator heightAnimator = new ValueAnimator();
- heightAnimator.setIntValues(view.getHeight(), 0);
- heightAnimator.addUpdateListener(animation -> {
- params.height = (int) animation.getAnimatedValue();
- view.requestLayout();
- });
-
- AnimatorSet animatorSet = new AnimatorSet();
- animatorSet.play(heightAnimator).with(alphaAnimator);
- animatorSet.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- super.onAnimationEnd(animation);
- removeFinal(view, item);
- }
- });
- animatorSet.setDuration(mAnimationDuration).start();
- }
-
- private void removeMenuItemInternal(@NonNull LI item) {
- mItems.remove(item);
- }
-
- private void addViewWithAnimation(View itemView) {
- itemView.measure(0, 0);
- ViewGroup.LayoutParams params = itemView.getLayoutParams();
- params.height = 0;
-
- ValueAnimator alphaAnimator = new ValueAnimator();
- alphaAnimator.setFloatValues(0, itemView.getAlpha());
-
- alphaAnimator.addUpdateListener(animation -> itemView.setAlpha((float) animation.getAnimatedValue()));
-
- ValueAnimator heightAnimator = new ValueAnimator();
- heightAnimator.setIntValues(0, itemView.getMeasuredHeight());
- heightAnimator.addUpdateListener(animation -> {
- params.height = (int) animation.getAnimatedValue();
- itemView.requestLayout();
- });
-
- AnimatorSet animatorSet = new AnimatorSet();
- animatorSet.play(heightAnimator).with(alphaAnimator);
- animatorSet.setDuration(mAnimationDuration).start();
- }
-
- @NonNull
- public LI getItem(int index) {
- int count = getItemsCount();
- if (index < 0 || index >= count) {
- throw new IndexOutOfBoundsException(String.format("Adapter indexOutOfBound. Index: %d, Size: %d ", index, count));
- }
- return mItems.get(index);
- }
-
- public int getItemsCount() {
- return mItems.size();
- }
-
- private ViewGroup getContainerInternal() {
- return mContainer;
- }
-
- protected void dispatchClick(@NonNull LI item) {
- if (mListView != null) {
- mListView.dispatchItemClick(item);
- }
- }
-
- public void notifyItemChanged(int position) {
- View itemView = getItem(position).getItemView();
- if (itemView instanceof BaseListItemView) {
- ((BaseListItemView) itemView).notifyForChange();
- }
- }
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/list/base/BaseListItem.java b/peacedesign/src/main/java/com/peacedesign/android/widget/list/base/BaseListItem.java
deleted file mode 100644
index cd9d9c18..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/widget/list/base/BaseListItem.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package com.peacedesign.android.widget.list.base;
-
-import android.view.View;
-
-import androidx.annotation.DrawableRes;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.peacedesign.android.utils.ComponentBase;
-
-public class BaseListItem extends ComponentBase {
- private int mIconRes;
- private CharSequence mLabel;
- private CharSequence mMessage;
- private BaseListAdapter extends BaseListItem> mAdapter;
- private View mItemView;
-
- public BaseListItem() {
- this(null);
- }
-
- public BaseListItem(@Nullable CharSequence label) {
- this(0, label);
- }
-
- public BaseListItem(@DrawableRes int icon) {
- this(icon, null);
- }
-
- public BaseListItem(@DrawableRes int icon, @Nullable CharSequence label) {
- this(icon, label, null);
- }
-
- public BaseListItem(@DrawableRes int icon, @Nullable CharSequence label, @Nullable CharSequence message) {
- mIconRes = icon;
- mLabel = label;
- mMessage = message;
- }
-
- @DrawableRes
- public int getIcon() {
- return mIconRes;
- }
-
- public void setIcon(@DrawableRes int icon) {
- mIconRes = icon;
- }
-
- public CharSequence getLabel() {
- return mLabel;
- }
-
- public void setLabel(@NonNull CharSequence label) {
- mLabel = label;
- }
-
- @Nullable
- public CharSequence getMessage() {
- return mMessage;
- }
-
- public void setMessage(@NonNull CharSequence message) {
- mMessage = message;
- }
-
- @Nullable
- public BaseListAdapter extends BaseListItem> getAdapter() {
- return mAdapter;
- }
-
- public void setAdapter(@NonNull BaseListAdapter extends BaseListItem> mMenuAdapter) {
- mAdapter = mMenuAdapter;
- }
-
- @Nullable
- public View getItemView() {
- return mItemView;
- }
-
- public void setItemView(@NonNull View view) {
- mItemView = view;
- }
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/list/base/BaseListItemView.java b/peacedesign/src/main/java/com/peacedesign/android/widget/list/base/BaseListItemView.java
deleted file mode 100644
index 0db28ea2..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/widget/list/base/BaseListItemView.java
+++ /dev/null
@@ -1,191 +0,0 @@
-package com.peacedesign.android.widget.list.base;
-
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-import static android.widget.LinearLayout.VERTICAL;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.text.TextUtils;
-import android.view.ContextThemeWrapper;
-import android.view.Gravity;
-import android.view.ViewGroup;
-import android.widget.FrameLayout;
-import android.widget.LinearLayout;
-
-import androidx.annotation.DrawableRes;
-import androidx.annotation.NonNull;
-import androidx.appcompat.widget.AppCompatImageView;
-import androidx.appcompat.widget.AppCompatTextView;
-
-import com.peacedesign.R;
-import com.peacedesign.android.utils.Dimen;
-import com.peacedesign.android.utils.ResUtils;
-
-@SuppressLint("ViewConstructor")
-public class BaseListItemView extends FrameLayout {
- private final BaseListItem mItem;
- public LinearLayout mContainerView;
- public AppCompatImageView mIconView;
- public LinearLayout mLabelCont;
- public AppCompatTextView mLabelView;
- public AppCompatTextView mMessageView;
-
- public BaseListItemView(@NonNull Context ctx, @NonNull BaseListItem item) {
- super(ctx);
- mItem = item;
- init();
- }
-
- private Context resolveItemStyle() {
- return new ContextThemeWrapper(getContext(), R.style.SimpleListItemStyle);
- }
-
- private Context resolveItemIconStyle() {
- return new ContextThemeWrapper(getContext(), R.style.SimpleListItemIconStyle);
- }
-
- private Context resolveItemLabelStyle() {
- return new ContextThemeWrapper(getContext(), R.style.SimpleListItemLabelStyle);
- }
-
- private Context resolveItemMassageStyle() {
- return new ContextThemeWrapper(getContext(), R.style.SimpleListItemMessageStyle);
- }
-
- private void init() {
- initThis();
- initContainer();
- initIconView();
- initLabelCont();
-
- measure(0, 0);
- }
-
- private void initThis() {
- updateDisability();
- }
-
- private void initContainer() {
- mContainerView = new LinearLayout(resolveItemStyle());
- LayoutParams params = new LayoutParams(MATCH_PARENT, WRAP_CONTENT);
- mContainerView.setLayoutParams(params);
-
- addView(mContainerView);
- }
-
- private void initIconView() {
- Drawable iconDrawable = ResUtils.getDrawable(getContext(), mItem.getIcon());
- if (iconDrawable == null) return;
-
- mIconView = new AppCompatImageView(resolveItemIconStyle());
-
- int size = Dimen.dp2px(getContext(), 40);
- LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(size, size);
- params.gravity = Gravity.TOP;
- mIconView.setLayoutParams(params);
-
- updateIcon();
- mContainerView.addView(mIconView);
- }
-
- private void initLabelCont() {
- mLabelCont = new LinearLayout(getContext());
-
- LayoutParams params = new LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
- int marg = Dimen.dp2px(getContext(), 10);
- params.setMargins(marg, 0, marg, 0);
- params.gravity = Gravity.CENTER_VERTICAL;
- mLabelCont.setLayoutParams(params);
- mLabelCont.setOrientation(VERTICAL);
-
- initLabelView();
- initMessageView();
-
- mContainerView.addView(mLabelCont);
- }
-
- private void initLabelView() {
- if (mLabelCont == null || mLabelView != null || TextUtils.isEmpty(mItem.getLabel())) return;
-
- mLabelView = new AppCompatTextView(resolveItemLabelStyle());
-
- updateLabel();
- mLabelCont.addView(mLabelView);
- }
-
- private void initMessageView() {
- if (mLabelCont == null || mMessageView != null || TextUtils.isEmpty(mItem.getMessage())) {
- return;
- }
-
- mMessageView = new AppCompatTextView(resolveItemMassageStyle());
-
- /*mMessageView.setTextColor(ContextCompat.getColor(getContext(), R.color.colorBodyTer1Text));
- mMessageView.setTextSize(Dimen.getDimenSp(getContext(), R.dimen.dmnCommonSizeTer));
- mMessageView.setMaxLines(2);
- mMessageView.setEllipsize(TextUtils.TruncateAt.END);*/
-
- updateDescription();
-
- mLabelCont.addView(mMessageView);
- }
-
- public void updateIcon() {
- if (mIconView == null) {
- initIconView();
- } else {
- Drawable iconDrawable = ResUtils.getDrawable(getContext(), mItem.getIcon());
- if (iconDrawable != null) {
- mIconView.setImageDrawable(iconDrawable);
- }
- }
- }
-
- public void updateLabel() {
- if (mLabelView == null) {
- initMessageView();
- } else {
- if (TextUtils.isEmpty(mItem.getLabel())) {
- ((ViewGroup) mLabelView.getParent()).removeView(mLabelView);
- } else if (mLabelView.getText() != mItem.getLabel()) {
- mLabelView.setText(mItem.getLabel());
- }
- }
- }
-
- private void updateDescription() {
- if (mMessageView == null) {
- initMessageView();
- } else {
- if (TextUtils.isEmpty(mItem.getMessage())) {
- ((ViewGroup) mMessageView.getParent()).removeView(mMessageView);
- } else if (mMessageView.getText() != mItem.getMessage()) {
- mMessageView.setText(mItem.getMessage());
- }
- }
- }
-
- public void updateDisability() {
- setEnabled(mItem.isEnabled());
- setAlpha(mItem.isEnabled() ? 1f : 0.5f);
- }
-
- public void notifyForChange() {
- updateIcon();
- updateLabel();
- updateDescription();
- updateDisability();
- setSelected(mItem.isSelected());
- }
-
- public void setItemBackground(Drawable background) {
- mContainerView.setBackground(background);
- }
-
- public void setItemBackground(@DrawableRes int backgroundRes) {
- mContainerView.setBackgroundResource(backgroundRes);
- }
-}
-
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/list/base/BaseListView.java b/peacedesign/src/main/java/com/peacedesign/android/widget/list/base/BaseListView.java
deleted file mode 100644
index 3837ea4f..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/widget/list/base/BaseListView.java
+++ /dev/null
@@ -1,168 +0,0 @@
-package com.peacedesign.android.widget.list.base;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.animation.Animation;
-import android.view.animation.AnimationUtils;
-import android.widget.LinearLayout;
-import android.widget.ScrollView;
-
-import androidx.annotation.AnimRes;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.peacedesign.android.utils.Dimen;
-
-@SuppressWarnings({"rawtypes", "unchecked"})
-@SuppressLint("UnknownNullness")
-public class BaseListView extends ScrollView {
- public static final int DEFAULT_ITEM_ANIMATOR = -1;
- public ViewGroup mContainer;
- private BaseListAdapter mAdapter;
- private OnItemClickListener mOnItemClickListener;
- private boolean mSupportsShowAnimation;
- private int mItemAnimator = DEFAULT_ITEM_ANIMATOR;
-
- public BaseListView(@NonNull Context context) {
- this(context, null);
- }
-
- public BaseListView(Context context, AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public BaseListView(Context context, AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- init(context);
- }
-
- private void init(Context context) {
- initThis();
- initContainer(context);
- }
-
- private void initThis() {
- setVerticalScrollBarEnabled(false);
- setClipToPadding(false);
- }
-
- private void initContainer(Context context) {
- mContainer = createItemsContainer(context);
-
- int padV = Dimen.dp2px(getContext(),10);
- mContainer.setPadding(0, padV, 0, padV);
-
- addView(mContainer);
- }
-
- @NonNull
- protected ViewGroup createItemsContainer(@NonNull Context context) {
- LinearLayout container = new LinearLayout(context);
- container.setOrientation(LinearLayout.VERTICAL);
-
-
- return container;
- }
-
- @Nullable
- public BaseListItem getItem(int position) {
- if (mAdapter != null) {
- return mAdapter.getItem(position);
- }
- return null;
- }
-
- public int getItemsCount() {
- if (mAdapter != null) {
- return mAdapter.getItemsCount();
- }
- return 0;
- }
-
- protected void onCreate() {
- create();
- }
-
- private void create() {
- mContainer.removeAllViews();
-
- if (mAdapter == null) {
- return;
- }
-
- setContainer(mContainer);
- for (int i = 0, count = mAdapter.getItemsCount(); i < count; i++) {
- onCreateItem(mAdapter.getItem(i), i);
- }
- }
-
-
- protected void onCreateItem(BaseListItem item, int position) {
- mAdapter.onCreateItem(item, position);
- View itemView = item.getItemView();
-
- if (mSupportsShowAnimation) {
- initPendingItemAnimation(itemView, position);
- }
- }
-
- protected void setContainer(ViewGroup container) {
- mAdapter.setContainer(container);
- }
-
- public BaseListAdapter getAdapter() {
- return mAdapter;
- }
-
- public void setAdapter(BaseListAdapter adapter) {
- mAdapter = adapter;
- if (adapter != null) {
- adapter.setListView(this);
- }
- onCreate();
- }
-
- private Animation resolveAnimation() {
- if (mItemAnimator == 0) return null;
- try {
- return AnimationUtils.loadAnimation(getContext(), mItemAnimator);
- } catch (Exception e) {
- return AnimationUtils.loadAnimation(getContext(), android.R.anim.fade_in);
- }
- }
-
- private void initPendingItemAnimation(View itemView, int itemIndex) {
- Animation animation = resolveAnimation();
- if (animation == null) return;
- animation.setFillAfter(true);
- animation.setFillBefore(true);
- animation.setStartOffset(itemIndex * 40);
- animation.setDuration(300);
- itemView.post(() -> itemView.startAnimation(animation));
- }
-
- public void setOnItemClickListener(@NonNull OnItemClickListener listener) {
- mOnItemClickListener = listener;
- }
-
- protected void dispatchItemClick(@NonNull BaseListItem item) {
- if (mOnItemClickListener != null) {
- mOnItemClickListener.onItemClick(item);
- }
- }
-
- public void setSupportsShowAnimation(boolean b) {
- mSupportsShowAnimation = b;
- }
-
- public void setItemAnimator(@AnimRes int animationRes) {
- mItemAnimator = animationRes;
- }
-
- public interface OnItemClickListener {
- void onItemClick(@NonNull BaseListItem item);
- }
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/list/simple/SimpleListAdapter.java b/peacedesign/src/main/java/com/peacedesign/android/widget/list/simple/SimpleListAdapter.java
deleted file mode 100644
index dbca649b..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/widget/list/simple/SimpleListAdapter.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.peacedesign.android.widget.list.simple;
-
-import android.content.Context;
-
-import androidx.annotation.NonNull;
-
-import com.peacedesign.android.widget.list.base.BaseListAdapter;
-import com.peacedesign.android.widget.list.base.BaseListItem;
-
-public class SimpleListAdapter extends BaseListAdapter {
- public SimpleListAdapter(@NonNull Context context) {
- super(context);
- }
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/list/simple/SimpleListView.java b/peacedesign/src/main/java/com/peacedesign/android/widget/list/simple/SimpleListView.java
deleted file mode 100644
index 351d1cc9..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/widget/list/simple/SimpleListView.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.peacedesign.android.widget.list.simple;
-
-import android.content.Context;
-
-import androidx.annotation.NonNull;
-
-import com.peacedesign.android.widget.list.base.BaseListView;
-
-public class SimpleListView extends BaseListView {
- public SimpleListView(@NonNull Context context) {
- super(context);
- }
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/list/singleChoice/SingleChoiceListAdapter.java b/peacedesign/src/main/java/com/peacedesign/android/widget/list/singleChoice/SingleChoiceListAdapter.java
deleted file mode 100644
index 79da68d8..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/widget/list/singleChoice/SingleChoiceListAdapter.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package com.peacedesign.android.widget.list.singleChoice;
-
-import android.content.Context;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-
-import com.peacedesign.android.widget.list.base.BaseListAdapter;
-import com.peacedesign.android.widget.list.base.BaseListItem;
-import com.peacedesign.android.widget.radio.PeaceRadioButton;
-import com.peacedesign.android.widget.radio.PeaceRadioGroup;
-
-public class SingleChoiceListAdapter extends BaseListAdapter {
- public SingleChoiceListAdapter(@NonNull Context context) {
- super(context);
- }
-
- @NonNull
- @Override
- protected View onCreateItemView(@NonNull BaseListItem item, int position) {
- PeaceRadioButton radio = new PeaceRadioButton(getContext());
- radio.setTag(item);
- radio.setTexts(item.getLabel(), item.getMessage());
-
- if (item.getId() != View.NO_ID) {
- radio.setId(item.getId());
- }
-
- return radio;
- }
-
- @Override
- protected void onAppendItemView(@NonNull ViewGroup container, @NonNull View itemView, int position) {
- super.onAppendItemView(container, itemView, position);
- if (getItem(position).isSelected() && container instanceof PeaceRadioGroup) {
- ((PeaceRadioGroup) container).check(itemView.getId());
- }
- }
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/list/singleChoice/SingleChoiceListView.java b/peacedesign/src/main/java/com/peacedesign/android/widget/list/singleChoice/SingleChoiceListView.java
deleted file mode 100644
index 2b77e0b5..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/widget/list/singleChoice/SingleChoiceListView.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package com.peacedesign.android.widget.list.singleChoice;
-
-import android.content.Context;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.peacedesign.android.widget.list.base.BaseListItem;
-import com.peacedesign.android.widget.list.base.BaseListView;
-import com.peacedesign.android.widget.radio.PeaceRadioGroup;
-
-public class SingleChoiceListView extends BaseListView {
- @Nullable
- private OnItemClickListener mSelectionChangeListener;
-
- public SingleChoiceListView(@NonNull Context context) {
- super(context);
- }
-
- @NonNull
- @Override
- protected ViewGroup createItemsContainer(@NonNull Context context) {
- PeaceRadioGroup radioGroup = new PeaceRadioGroup(context);
- radioGroup.setOnCheckedChangedListener((button, checkedId) -> {
- if (mSelectionChangeListener != null) {
- BaseListItem item = (BaseListItem) button.getTag();
- if (item != null) {
- mSelectionChangeListener.onItemClick(item);
- }
- }
- });
- return radioGroup;
- }
-
- @Override
- public void setOnItemClickListener(@NonNull OnItemClickListener listener) {
- mSelectionChangeListener = listener;
- }
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/radio/PeaceRadioButton.java b/peacedesign/src/main/java/com/peacedesign/android/widget/radio/PeaceRadioButton.java
deleted file mode 100644
index 3a596fcf..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/widget/radio/PeaceRadioButton.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package com.peacedesign.android.widget.radio;
-
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.util.AttributeSet;
-import android.widget.CompoundButton;
-import android.widget.RadioButton;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.core.content.ContextCompat;
-
-import com.peacedesign.R;
-import com.peacedesign.android.widget.compound.PeaceCompoundButton;
-
-/**
- *
- * Radio buttons are normally used together in a
- * {@link PeaceRadioGroup}. When several radio buttons live inside
- * a radio group, checking one radio button unchecks all the others.
- *
- */
-public class PeaceRadioButton extends PeaceCompoundButton {
- private RadioHelper mRadio;
-
-
- public PeaceRadioButton(@NonNull Context context) {
- this(context, null);
- }
-
- public PeaceRadioButton(@NonNull Context context, @Nullable AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public PeaceRadioButton(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
- this(context, attrs, defStyleAttr, 0);
- }
-
- public PeaceRadioButton(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
- super(context, attrs, defStyleAttr, defStyleRes);
- }
-
-
- @Override
- protected void makeComponents() {
- makeRadio();
- super.makeComponents();
- }
-
- private void makeRadio() {
- mRadio = new RadioHelper(getContext());
- mRadio.setLayoutParams(new LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
- }
-
- @NonNull
- @Override
- protected CompoundButton getCompoundButton() {
- return mRadio;
- }
-
- @SuppressLint("AppCompatCustomView")
- class RadioHelper extends RadioButton {
- public RadioHelper(@NonNull Context context) {
- super(context);
- setButtonDrawable(R.drawable.dr_radio);
- setButtonTintList(ContextCompat.getColorStateList(context, R.color.radio_button_tint));
- setCompoundDrawablePadding(0);
- setChecked(mInitialChecked);
- setOnCheckedChangeListener(PeaceRadioButton.this);
- }
- }
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/radio/PeaceRadioGroup.java b/peacedesign/src/main/java/com/peacedesign/android/widget/radio/PeaceRadioGroup.java
deleted file mode 100644
index 57e4ec5c..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/widget/radio/PeaceRadioGroup.java
+++ /dev/null
@@ -1,239 +0,0 @@
-package com.peacedesign.android.widget.radio;
-
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.util.AttributeSet;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.LinearLayout;
-
-import androidx.annotation.IdRes;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.peacedesign.R;
-import com.peacedesign.android.utils.interfaceUtils.CompoundButtonGroup;
-
-
-/**
- * This layout can only contain children of instance {@link PeaceRadioGroup}.
- * Any other child is ignored.
- */
-public class PeaceRadioGroup extends LinearLayout implements CompoundButtonGroup {
- private final int mInitialOrientation;
- private int mCheckedId;
- private boolean mProtectFromCheckedChange = false;
- private OnCheckedChangeListener mOnCheckedChangeListener;
- private BeforeCheckedChangeListener mBeforeCheckedChangeListener;
- private PassThroughHierarchyChangeListener mPassThroughListener;
-
- public PeaceRadioGroup(@NonNull Context context) {
- this(context, null);
- }
-
- public PeaceRadioGroup(@NonNull Context context, @Nullable AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public PeaceRadioGroup(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
- super(context, attrs);
- TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.PeaceRadioGroup, defStyleAttr, 0);
-
- mInitialOrientation = a.getInt(R.styleable.PeaceRadioGroup_android_orientation, VERTICAL);
- mCheckedId = a.getResourceId(R.styleable.PeaceRadioGroup_android_checkedButton, View.NO_ID);
-
- a.recycle();
-
- init();
- }
-
- private void init() {
- super.setOrientation(mInitialOrientation);
- mPassThroughListener = new PassThroughHierarchyChangeListener();
- super.setOnHierarchyChangeListener(mPassThroughListener);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void setOnHierarchyChangeListener(@NonNull OnHierarchyChangeListener listener) {
- mPassThroughListener.mOnHierarchyChangeListener = listener;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void onFinishInflate() {
- super.onFinishInflate();
- if (mCheckedId != View.NO_ID) {
- mProtectFromCheckedChange = true;
- setCheckedForView(mCheckedId, true);
- setCheckedId(mCheckedId);
- mProtectFromCheckedChange = false;
- }
- }
-
- @Override
- public void addView(@NonNull View child, int index, @NonNull ViewGroup.LayoutParams params) {
- if (child instanceof PeaceRadioButton) {
- final PeaceRadioButton button = (PeaceRadioButton) child;
- button.setGroup(this);
- if (button.isChecked()) {
- mProtectFromCheckedChange = true;
- if (mCheckedId != -1) setCheckedForView(mCheckedId, false);
- setCheckedId(button.getId());
- mProtectFromCheckedChange = false;
- }
- super.addView(child, index, params);
- }
- }
-
- @Override
- public void clearCheck() {
- check(View.NO_ID);
- }
-
- /**
- * Check a button without invoking the {@link #mOnCheckedChangeListener} or {@link #mBeforeCheckedChangeListener}.
- *
- * @param id Id of the {@link PeaceRadioButton} to be checked.
- */
- @Override
- public void checkSansInvocation(@IdRes int id) {
- mProtectFromCheckedChange = true;
- check(id);
- mProtectFromCheckedChange = false;
- }
-
- @Override
- public void checkAtPosition(int position) {
- View view = getChildAt(position);
- if (view == null) {
- return;
- }
-
- check(view.getId());
- }
-
- @Override
- public void check(@IdRes int id) {
- if (id != View.NO_ID && (id == mCheckedId)) return;
-
- if (mProtectFromCheckedChange || mBeforeCheckedChangeListener == null) {
- checkInternal(id);
- } else if (mBeforeCheckedChangeListener.beforeCheckedChanged(this, id)) {
- checkInternal(id);
- }
- }
-
- private void checkInternal(@IdRes int id) {
- setCheckedForView(mCheckedId, false); // uncheck previously checked button
- setCheckedForView(id, true); // check the new button
- setCheckedId(id);
- }
-
- private void setCheckedForView(@IdRes int id, boolean checked) {
- if (id == View.NO_ID) return;
-
- View radioButtonPro = findViewById(id);
- if (radioButtonPro instanceof PeaceRadioButton) {
- ((PeaceRadioButton) radioButtonPro).setChecked(checked);
- }
- }
-
- private void setCheckedId(@IdRes int id) {
- mCheckedId = id;
- if (!mProtectFromCheckedChange && mOnCheckedChangeListener != null) {
- mOnCheckedChangeListener.onCheckedChanged(findViewById(mCheckedId), mCheckedId);
- }
- }
-
- /**
- * Register a callback to be invoked when the checked radio button
- * changes in this group.
- *
- * @param listener the callback to call on checked state change
- */
- public void setOnCheckedChangedListener(@Nullable OnCheckedChangeListener listener) {
- mOnCheckedChangeListener = listener;
- }
-
- /**
- * Register a callback to be invoked before the checked radio button
- * changes in this group.
- *
- * @param listener the callback to call before checked state change
- */
- public void setBeforeCheckedChangeListener(@Nullable BeforeCheckedChangeListener listener) {
- mBeforeCheckedChangeListener = listener;
- }
-
- public int getCheckedRadioId() {
- return mCheckedId;
- }
-
- public interface OnCheckedChangeListener {
- /**
- * Called when the checked radio button has changed. When the
- * selection is cleared, checkedId is -1.
- *
- * @param button The newly checked radio button
- * @param checkedId The unique identifier of the newly checked radio button
- */
- void onCheckedChanged(PeaceRadioButton button, int checkedId);
- }
-
- public interface BeforeCheckedChangeListener {
- /**
- * Called before the checked radio button has changed. When the
- * selection is cleared, checkedId is -1.
- *
- * @param group the group in which the checked radio button is to be changed
- * @param newButtonId the unique identifier of the newly checked radio button
- * @return Return false to block check change.
- */
- boolean beforeCheckedChanged(@NonNull PeaceRadioGroup group, @IdRes int newButtonId);
- }
-
- /**
- * A pass-through listener acts upon the events and dispatches them
- * to another listener. This allows the table layout to set its own internal
- * hierarchy change listener without preventing the user to setup his.
- */
- class PassThroughHierarchyChangeListener implements OnHierarchyChangeListener {
- OnHierarchyChangeListener mOnHierarchyChangeListener;
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void onChildViewAdded(View parent, View child) {
- if (parent == PeaceRadioGroup.this && child instanceof PeaceRadioButton) {
- int id = child.getId();
- // generates an id if it's missing
- if (id == View.NO_ID) {
- id = View.generateViewId();
- child.setId(id);
- }
- }
-
- if (mOnHierarchyChangeListener != null) {
- mOnHierarchyChangeListener.onChildViewAdded(parent, child);
- }
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void onChildViewRemoved(View parent, View child) {
- if (parent == PeaceRadioGroup.this && child instanceof PeaceRadioButton) {
- if (mOnHierarchyChangeListener != null) {
- mOnHierarchyChangeListener.onChildViewRemoved(parent, child);
- }
- }
- }
- }
-}
diff --git a/peacedesign/src/main/res/values/styles.xml b/peacedesign/src/main/res/values/styles.xml
index 1304aa9b..d2d3bc3d 100644
--- a/peacedesign/src/main/res/values/styles.xml
+++ b/peacedesign/src/main/res/values/styles.xml
@@ -169,31 +169,4 @@
- @null
- @anim/popup_menu_exit
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
From 49db645346505f12bdfefd832704f695c3e7bfec Mon Sep 17 00:00:00 2001
From: faisalcodes
Date: Tue, 7 Mar 2023 04:10:15 +0530
Subject: [PATCH 3/6] Classes cleanup
---
.../android/activities/ActivityReference.java | 1 -
.../peacedesign/android/utils/ResUtils.java | 21 -------------------
.../android/utils/enums/ColorStyle.java | 5 -----
.../android/utils/enums/Direction.java | 8 -------
.../utils/interfaceUtils/Showable.java | 9 --------
.../android/utils/kotlin_utils/DBCursor.kt | 13 ------------
.../dialog/base/PeaceDialogController.java | 4 ++--
7 files changed, 2 insertions(+), 59 deletions(-)
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/utils/ResUtils.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/utils/enums/ColorStyle.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/utils/enums/Direction.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/utils/interfaceUtils/Showable.java
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/utils/kotlin_utils/DBCursor.kt
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityReference.java b/app/src/main/java/com/quranapp/android/activities/ActivityReference.java
index 0cd63894..23d61fc3 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityReference.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityReference.java
@@ -22,7 +22,6 @@
import com.google.android.material.chip.Chip;
import com.google.android.material.chip.ChipGroup;
import com.peacedesign.android.utils.DrawableUtils;
-import com.peacedesign.android.utils.ViewUtils;
import com.quranapp.android.R;
import com.quranapp.android.adapters.ADPReferenceVerses;
import com.quranapp.android.components.ReferenceVerseItemModel;
diff --git a/peacedesign/src/main/java/com/peacedesign/android/utils/ResUtils.java b/peacedesign/src/main/java/com/peacedesign/android/utils/ResUtils.java
deleted file mode 100644
index 0043edda..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/utils/ResUtils.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.peacedesign.android.utils;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-
-import androidx.annotation.DrawableRes;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.appcompat.content.res.AppCompatResources;
-
-public class ResUtils {
- @Nullable
- public static Drawable getDrawable(@NonNull Context context, @DrawableRes int resId) {
- try {
- return AppCompatResources.getDrawable(context, resId);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/utils/enums/ColorStyle.java b/peacedesign/src/main/java/com/peacedesign/android/utils/enums/ColorStyle.java
deleted file mode 100644
index 087e158d..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/utils/enums/ColorStyle.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.peacedesign.android.utils.enums;
-
-public enum ColorStyle {
- NONE, SUCCESS, DANGER, WARNING
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/utils/enums/Direction.java b/peacedesign/src/main/java/com/peacedesign/android/utils/enums/Direction.java
deleted file mode 100644
index e548aee4..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/utils/enums/Direction.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.peacedesign.android.utils.enums;
-
-public enum Direction {
- UP, DOWN, RIGHT, LEFT,
- CW, CCW,
- PLUS, MINUS,
- HORIZONTAL, VERTICAL,
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/utils/interfaceUtils/Showable.java b/peacedesign/src/main/java/com/peacedesign/android/utils/interfaceUtils/Showable.java
deleted file mode 100644
index b7ec42d8..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/utils/interfaceUtils/Showable.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.peacedesign.android.utils.interfaceUtils;
-
-public interface Showable {
- void show();
-
- boolean isShowing();
-
- void dismiss();
-}
diff --git a/peacedesign/src/main/java/com/peacedesign/android/utils/kotlin_utils/DBCursor.kt b/peacedesign/src/main/java/com/peacedesign/android/utils/kotlin_utils/DBCursor.kt
deleted file mode 100644
index 78188646..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/utils/kotlin_utils/DBCursor.kt
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * Copyright (c) Faisal Khan (https://github.com/faisalcodes)
- * Created on 21/7/2022.
- * All rights reserved.
- */
-
-package com.peacedesign.android.utils.kotlin_utils
-
-import android.database.Cursor
-
-fun Cursor.getStringOrDefault() {
-
-}
\ No newline at end of file
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/dialog/base/PeaceDialogController.java b/peacedesign/src/main/java/com/peacedesign/android/widget/dialog/base/PeaceDialogController.java
index fe934b15..448db591 100644
--- a/peacedesign/src/main/java/com/peacedesign/android/widget/dialog/base/PeaceDialogController.java
+++ b/peacedesign/src/main/java/com/peacedesign/android/widget/dialog/base/PeaceDialogController.java
@@ -45,6 +45,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StyleRes;
+import androidx.appcompat.content.res.AppCompatResources;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.content.ContextCompat;
import androidx.core.widget.NestedScrollView;
@@ -52,7 +53,6 @@
import com.peacedesign.R;
import com.peacedesign.android.utils.Dimen;
-import com.peacedesign.android.utils.ResUtils;
import com.peacedesign.android.utils.ViewUtils;
import com.peacedesign.android.utils.WindowUtils;
import com.peacedesign.android.widget.dialog.base.PeaceDialog.DialogButtonsDirection;
@@ -172,7 +172,7 @@ protected void setupWindow() {
WindowManager.LayoutParams windowParams = window.getAttributes();
// Get the resource id of rounded corner background if the dialog is to be displayed fullscreen.
@DrawableRes int bgRes = mFullscreen ? R.drawable.dr_bg_peace_dialog : R.drawable.dr_bg_peace_dialog_cornered;
- Drawable bgDrawable = ResUtils.getDrawable(mContext, bgRes);
+ Drawable bgDrawable = AppCompatResources.getDrawable(mContext, bgRes);
window.setBackgroundDrawable(bgDrawable);
// Set dialog to clip to its rounded cornered (if it is set) outline.
window.getDecorView().setClipToOutline(true);
From a8d0ac05c040c643264fafaf1785bc477deeba9b Mon Sep 17 00:00:00 2001
From: faisalcodes
Date: Tue, 7 Mar 2023 04:24:43 +0530
Subject: [PATCH 4/6] Code cleanup and ktlint
---
.../java/com/quranapp/android/QuranApp.kt | 4 +-
.../android/activities/ActivityAbout.kt | 41 +-
.../android/activities/ActivityBookmark.java | 9 +-
.../android/activities/ActivityChapInfo.java | 5 +-
.../android/activities/ActivityDownloads.java | 1 -
.../android/activities/ActivityEditShare.java | 8 +-
.../activities/ActivityOnboarding.java | 1 -
.../android/activities/ActivityProphets.java | 28 +-
.../activities/ActivityReadHistory.java | 7 +-
.../android/activities/ActivityReader.java | 67 +-
.../activities/ActivityReaderIndexPage.java | 1 -
.../android/activities/ActivityReference.java | 12 +-
.../android/activities/ActivitySearch.java | 16 +-
.../android/activities/ActivityTafsir.java | 3 +-
.../android/activities/ActivityTopics.java | 36 +-
.../android/activities/MainActivity.java | 3 +-
.../activities/ReaderPossessingActivity.java | 4 +-
.../android/activities/base/BaseActivity.java | 20 +-
.../activities/base/ResHelperActivity.java | 3 +-
.../readerSettings/ActivitySettings.java | 6 +-
.../activities/test/ActivityExperiment.java | 8 +-
.../android/adapters/ADPBookmark.java | 13 +-
.../android/adapters/ADPFeaturedQuran.java | 3 +-
.../android/adapters/ADPProphets.java | 16 +-
.../android/adapters/ADPQuickReference.java | 1 -
.../android/adapters/ADPQuranPages.java | 14 +-
.../android/adapters/ADPReadHistory.java | 22 +-
.../quranapp/android/adapters/ADPReader.java | 25 +-
.../android/adapters/ADPReferenceVerses.java | 21 +-
.../quranapp/android/adapters/ADPTopics.java | 16 +-
.../adapters/editor/ADPEditShareColors.java | 11 +-
.../android/adapters/editor/ADPEditorBG.java | 6 +-
.../android/adapters/editor/ADPEditorFG.java | 7 +-
.../extended/PeaceBottomSheetMenuAdapter.kt | 2 +-
.../adapters/quranIndex/ADPChaptersList.java | 6 +-
.../adapters/quranIndex/ADPJuzList.java | 5 +-
.../quranIndex/ADPJuzListChapterList.java | 6 +-
.../quranIndex/ADPReaderIndexBase.java | 1 -
.../adapters/recitation/ADPRecitations.java | 1 -
.../adapters/search/ADPSearchSugg.java | 3 +-
.../adapters/search/ADPVerseResults.java | 27 +-
.../adapters/transl/ADPDownloadTransls.java | 7 +-
.../adapters/transl/ADPTranslBase.java | 6 +-
.../android/adapters/transl/ADPTransls.java | 8 +-
.../adapters/utility/SpinnerAdapter2.java | 1 -
.../utility/TopicFilterSpinnerAdapter.java | 5 +-
.../com/quranapp/android/api/ApiConfig.kt | 5 +-
.../com/quranapp/android/api/GithubApi.kt | 7 +-
.../com/quranapp/android/api/JsonHelper.kt | 2 +-
.../quranapp/android/api/RetrofitInstance.kt | 3 +-
.../quranapp/android/api/models/AppUrls.kt | 4 +-
.../api/models/AvailableRecitationsModel.kt | 2 +-
.../models/RecitationsCommonUrlInfoModel.kt | 4 +-
.../android/api/models/ResourcesVersions.kt | 4 +-
.../quranapp/android/components/AppUpdate.kt | 2 +-
.../android/components/AppUpdateInfo.kt | 2 +-
.../android/components/ComponentBase.kt | 2 +-
.../quranapp/android/components/NotifModel.kt | 2 +-
.../components/ReferenceVerseItemModel.kt | 2 +-
.../android/components/ReferenceVerseModel.kt | 2 +-
.../components/bookmark/BookmarkModel.kt | 15 +-
.../android/components/editor/EditorBG.java | 4 +-
.../components/editor/EditorTemplate.java | 1 -
.../android/components/quran/Quran.java | 1 -
.../android/components/quran/QuranDua.kt | 6 +-
.../android/components/quran/QuranMeta.java | 1 -
.../components/quran/QuranProphet.java | 8 +-
.../android/components/quran/QuranTopic.java | 14 +-
.../quran/subcomponents/Chapter.java | 2 +-
.../quran/subcomponents/Footnote.kt | 2 +-
.../subcomponents/QuranTranslBookInfo.kt | 3 +-
.../quran/subcomponents/Translation.kt | 2 +-
.../components/quran/subcomponents/Verse.java | 1 -
.../readHistory/ReadHistoryModel.kt | 16 +-
.../reader/ReaderRecyclerItemModel.java | 3 +-
.../components/recitation/RecitationModel.kt | 3 +-
.../components/search/ChapterJumpModel.kt | 2 +-
.../search/VerseResultCountModel.kt | 2 +-
.../components/search/VerseResultModel.java | 1 -
.../components/transls/TranslBaseModel.kt | 2 +-
.../android/components/transls/TranslModel.kt | 2 +-
.../components/transls/TranslTitleModel.kt | 2 +-
.../transls/TranslationGroupModel.kt | 2 +-
.../android/db/bookmark/BookmarkDBHelper.java | 34 +-
.../db/readHistory/ReadHistoryDBHelper.java | 82 ++-
.../db/recitation/RecitationDBHelper.java | 24 +-
.../db/search/SearchHistoryDBHelper.java | 16 +-
.../android/db/transl/QuranTranslDBHelper.kt | 61 +-
.../quranapp/android/frags/BaseFragment.java | 3 +-
.../android/frags/ResHelperFragment.java | 1 -
.../android/frags/editshare/FragEditorBG.java | 4 +-
.../frags/editshare/FragEditorBase.java | 4 +-
.../frags/editshare/FragEditorColors.java | 4 +-
.../android/frags/editshare/FragEditorFG.java | 4 +-
.../frags/editshare/FragEditorOptions.java | 14 +-
.../frags/editshare/FragEditorSize.java | 4 +-
.../frags/editshare/FragEditorTransls.java | 10 +-
.../quranapp/android/frags/main/FragMain.java | 6 +-
.../frags/onboard/FragOnBoardRecitation.java | 8 +-
.../frags/onboard/FragOnBoardThemes.java | 1 -
.../frags/onboard/FragOnBoardTransls.java | 18 +-
.../readerindex/BaseFragReaderIndex.java | 1 -
.../readerindex/FragReaderIndexChapters.java | 4 +-
.../frags/readerindex/FragReaderIndexJuz.java | 1 -
.../android/frags/search/FragSearchResult.kt | 51 +-
.../frags/search/FragSearchSuggestions.java | 12 +-
.../frags/settings/FragSettingsBase.kt | 8 +-
.../frags/settings/FragSettingsLanguage.kt | 22 +-
.../frags/settings/FragSettingsMain.java | 48 +-
.../frags/settings/FragSettingsRecitations.kt | 14 +-
.../frags/settings/FragSettingsScripts.kt | 29 +-
.../frags/settings/FragSettingsTransl.java | 26 +-
.../FragSettingsTranslationsDownload.kt | 52 +-
.../interfaceUtils/ActivityResultStarter.java | 1 -
.../interfaceUtils/OnResultReadyCallback.kt | 2 +-
.../reader_managers/ActionController.java | 5 +-
.../android/reader_managers/Navigator.java | 17 +-
.../android/reader_managers/ReaderParams.java | 10 +-
.../reader_managers/ReaderVerseDecorator.kt | 9 +-
.../android/suppliments/BookmarkViewer.java | 18 +-
.../android/suppliments/IndexMenu.java | 14 +-
.../suppliments/ReaderLayoutManager.java | 1 -
.../recitation/RecitationMenu.java | 24 +-
.../com/quranapp/android/utils/IntentUtils.kt | 2 +-
.../java/com/quranapp/android/utils/Log.kt | 2 +-
.../com/quranapp/android/utils/Logger.java | 6 +-
.../android/utils/RVLazyLoadListener.java | 5 +-
.../android/utils/SpeedInputStream.java | 4 +-
.../quranapp/android/utils/app/AppActions.kt | 23 +-
.../quranapp/android/utils/app/AppUtils.kt | 7 +-
.../quranapp/android/utils/app/InfoUtils.kt | 8 +-
.../android/utils/app/NotificationUtils.kt | 17 +-
.../android/utils/app/RecitationManager.kt | 15 +-
.../quranapp/android/utils/app/ThemeUtils.kt | 3 +-
.../android/utils/app/UpdateManager.kt | 19 +-
.../quranapp/android/utils/app/UrlsManager.kt | 18 +-
.../chapterInfo/ChapterInfoJSInterface.java | 2 +-
.../utils/chapterInfo/ChapterInfoUtils.java | 3 +-
.../chapterInfo/ChapterInfoWebViewClient.java | 3 +-
.../exceptions/CustomExceptionHandler.kt | 4 +-
.../utils/extended/GapedItemDecoration.java | 1 -
.../android/utils/extensions/Context.kt | 9 +-
.../android/utils/extensions/DataType.kt | 2 +-
.../android/utils/extensions/LayoutParams.kt | 2 +-
.../android/utils/extensions/ScrollView.kt | 2 +-
.../utils/extensions/SerializableExtra.kt | 7 +-
.../android/utils/extensions/TextView.kt | 2 +-
.../quranapp/android/utils/extensions/View.kt | 18 +-
.../utils/gesture/HoverOpacityEffect.kt | 3 +-
.../android/utils/gesture/HoverPushEffect.kt | 3 +-
.../utils/gesture/HoverPushOpacityEffect.kt | 2 +-
.../android/utils/others/ShortcutUtils.kt | 20 +-
.../android/utils/quran/QuranConstants.kt | 2 +-
.../android/utils/quran/QuranUtils.java | 687 ++++++++++++------
.../android/utils/quran/parser/ParserUtils.kt | 2 +-
.../utils/quran/parser/QuranDuaParser.kt | 4 +-
.../android/utils/quran/parser/QuranParser.kt | 22 +-
.../quran/parser/QuranProphetParser.java | 5 +-
.../android/utils/reader/QuranScriptUtils.kt | 19 +-
.../utils/reader/ReferenceTagHandler.java | 12 +-
.../android/utils/reader/TranslUtils.java | 11 +-
.../reader/factory/QuranTranslFactory.kt | 99 ++-
.../utils/reader/factory/ReaderFactory.kt | 25 +-
.../quranPage/VerseArabicHighlightSpan.java | 4 +-
.../RecitationNotificationCallbacks.java | 1 -
.../RecitationNotificationService.java | 34 +-
.../reader/recitation/RecitationParams.java | 1 -
.../reader/recitation/RecitationUtils.java | 9 +-
.../KFQPCScriptFontsDownloadReceiver.kt | 2 +-
.../utils/receivers/NetworkStateReceiver.java | 1 -
.../utils/receivers/ReceiverUtils.java | 7 +-
.../android/utils/receivers/VOTDReceiver.java | 65 +-
.../KFQPCScriptFontsDownloadService.kt | 59 +-
.../services/TranslationDownloadService.kt | 59 +-
.../android/utils/sharedPrefs/SPAppActions.kt | 18 +-
.../android/utils/sharedPrefs/SPAppConfigs.kt | 7 +-
.../android/utils/sharedPrefs/SPLog.kt | 3 +-
.../android/utils/sharedPrefs/SPReader.java | 9 +-
.../simplified/SimpleSeekbarChangeListener.kt | 2 +-
.../simplified/SimpleTabSelectorListener.kt | 2 +-
.../utils/simplified/SimpleTextWatcher.kt | 2 +-
.../android/utils/tafsir/TafsirUtils.java | 1 -
.../utils/tafsir/TafsirWebViewClient.java | 20 +-
.../thread/runner/CallableTaskRunner.java | 1 -
.../utils/thread/runner/MultiTaskRunner.java | 1 -
.../thread/runner/RunnableTaskRunner.java | 1 -
.../utils/thread/tasks/BaseCallableTask.java | 3 +-
.../utils/thread/tasks/BaseRunnableTask.java | 3 +-
.../com/quranapp/android/utils/univ/Codes.kt | 2 +-
.../quranapp/android/utils/univ/DBUtils.kt | 2 +-
.../android/utils/univ/FileUtils.java | 12 +-
.../com/quranapp/android/utils/univ/Keys.kt | 2 +-
.../android/utils/univ/PopupWindow2.java | 1 -
.../android/utils/univ/RegexPattern.kt | 6 +-
.../utils/univ/RelativePopupWindow.java | 65 +-
.../quranapp/android/utils/univ/ResUtils.kt | 2 +-
.../android/utils/univ/SpannableFactory.kt | 6 +-
.../android/utils/univ/StringUtils.java | 45 +-
.../android/utils/verse/VerseUtils.java | 6 +-
.../android/utils/votd/VOTDUtils.java | 1 -
.../quranapp/android/vh/search/VHJuzJump.kt | 2 +-
.../android/vh/search/VHSearchResultBase.kt | 7 +-
.../android/vh/search/VHVerseJump.java | 9 +-
.../quranapp/android/views/BoldHeader.java | 11 +-
.../quranapp/android/views/CardMessage.java | 9 +-
.../com/quranapp/android/views/VOTDView.java | 6 +-
.../android/views/helper/CheckBox2.java | 1 -
.../android/views/helper/Edittext.java | 1 -
.../views/helper/NpaGridLayoutManager.java | 1 -
.../android/views/helper/RecyclerView2.java | 1 -
.../android/views/helper/Spinner2.java | 3 +-
.../android/views/helper/TabLayout2.java | 1 -
.../views/homepage/FeatureProphetsLayout.java | 1 -
.../views/homepage/FeatureReadingLayout.java | 1 -
.../views/homepage/FeatureTopicsLayout.java | 1 -
.../HomepageCollectionLayoutBase.java | 11 +-
.../views/homepage/ReadHistoryLayout.java | 8 +-
.../android/views/reader/BismillahView.java | 4 +-
.../android/views/reader/ChapterIcon.java | 1 -
.../views/reader/ChapterInfoCardView.java | 6 +-
.../views/reader/ChapterTitleView.java | 2 +-
.../views/reader/QuranPageHeadView.java | 5 +-
.../android/views/reader/QuranPageView.java | 18 +-
.../android/views/reader/ReaderFooter.java | 19 +-
.../android/views/reader/ReaderHeader.java | 36 +-
.../views/reader/RecitationPlayer.java | 26 +-
.../android/views/reader/VerseView.java | 1 -
.../reader/chapterSpinner/ChapterSpinner.java | 1 -
.../chapterSpinner/ChapterSpinnerAdapter.java | 1 -
.../chapterSpinner/ChapterSpinnerItem.kt | 2 +-
.../reader/dialogs/FootnotePresenter.java | 6 +-
.../views/reader/dialogs/QuickReference.java | 8 +-
.../reader/dialogs/VerseOptionsDialog.java | 4 +-
.../reader/dialogs/VerseReminderDialog.java | 10 +-
.../reader/dialogs/VerseShareDialog.java | 12 +-
.../views/reader/juzSpinner/JuzSpinner.java | 3 +-
.../reader/juzSpinner/JuzSpinnerAdapter.java | 6 +-
.../views/reader/juzSpinner/JuzSpinnerItem.kt | 2 +-
.../reader/sheet/JuzChapterVerseSheet.kt | 4 +-
.../views/reader/spinner/ReaderSpinner.java | 6 +-
.../reader/spinner/ReaderSpinnerAdapter.java | 4 +-
.../views/reader/spinner/ReaderSpinnerItem.kt | 2 +-
.../views/reader/swipe/BaseViewSwipeTo.java | 10 +-
.../views/reader/swipe/ViewSwipeToNext.java | 5 +-
.../reader/swipe/ViewSwipeToPrevious.java | 5 +-
.../reader/verseSpinner/VerseSpinner.java | 9 +-
.../verseSpinner/VerseSpinnerAdapter.java | 6 +-
.../reader/verseSpinner/VerseSpinnerItem.kt | 2 +-
.../adapters/ADPJuzChapterVerseBase.kt | 2 +-
.../adapters/ADPsJuzChapterVerse.kt | 24 +-
.../JuzChapterVerseSelector.kt | 67 +-
.../viewholders/VHsJuzChapterVerse.kt | 17 +-
.../android/widgets/AutoResizeTextView.java | 41 +-
.../android/widgets/ColorPreviewerView.java | 4 +-
.../android/widgets/IconedTextView.java | 4 +-
.../com/quranapp/android/widgets/PageAlert.kt | 15 +-
.../widgets/bottomSheet/PeaceBottomSheet.kt | 26 +-
.../bottomSheet/PeaceBottomSheetDialog.kt | 10 +-
.../bottomSheet/PeaceBottomSheetMenu.kt | 4 +-
.../bottomSheet/PeaceBottomSheetParams.kt | 3 +-
.../widgets/chapterCard/ChapterCard.java | 10 +-
.../widgets/chapterCard/ChapterCardJuz.java | 9 +-
.../chapterCard/ChapterCardWithoutIcon.java | 1 -
.../android/widgets/checkbox/PeaceCheckBox.kt | 21 +-
.../widgets/checkbox/PeaceCheckboxGroup.kt | 3 +-
.../widgets/compound/PeaceCompoundButton.kt | 70 +-
.../compound/PeaceCompoundButtonGroup.kt | 3 +-
.../dialog/loader/PeaceProgressDialog.kt | 7 +-
.../android/widgets/editor/EditorBGView.java | 7 +-
.../android/widgets/editor/EditorFGView.java | 4 +-
.../widgets/editor/EditorSelectImageView.java | 4 +-
.../widgets/form/PeaceFormInputField.java | 4 +-
.../widgets/form/PeaceFormSelectField.java | 9 +-
.../widgets/list/base/BaseListAdapter.kt | 5 +-
.../android/widgets/list/base/BaseListItem.kt | 4 +-
.../widgets/list/base/BaseListItemView.kt | 7 +-
.../android/widgets/list/base/BaseListView.kt | 16 +-
.../singleChoice/SingleChoiceListAdapter.kt | 3 +-
.../list/singleChoice/SingleChoiceListView.kt | 2 +-
.../android/widgets/radio/PeaceRadioButton.kt | 10 +-
.../android/widgets/radio/PeaceRadioGroup.kt | 6 +-
.../android/widgets/tablayout/BottomTab.java | 4 +-
.../widgets/tablayout/BottomTabLayout.java | 13 +-
.../widgets/tablayout/BottomTabView.java | 26 +-
.../android/utils/anim/DimensionAnimator.kt | 27 +-
285 files changed, 2078 insertions(+), 1600 deletions(-)
diff --git a/app/src/main/java/com/quranapp/android/QuranApp.kt b/app/src/main/java/com/quranapp/android/QuranApp.kt
index ed16f36b..1641ea37 100644
--- a/app/src/main/java/com/quranapp/android/QuranApp.kt
+++ b/app/src/main/java/com/quranapp/android/QuranApp.kt
@@ -5,9 +5,9 @@ import android.content.Context
import android.os.Build
import android.webkit.WebView
import androidx.appcompat.app.AppCompatDelegate
-import com.quranapp.android.utils.exceptions.CustomExceptionHandler
import com.quranapp.android.utils.app.NotificationUtils
import com.quranapp.android.utils.app.ThemeUtils
+import com.quranapp.android.utils.exceptions.CustomExceptionHandler
class QuranApp : Application() {
override fun attachBaseContext(base: Context) {
@@ -35,4 +35,4 @@ class QuranApp : Application() {
// Handler for uncaught exceptions
Thread.setDefaultUncaughtExceptionHandler(CustomExceptionHandler(this))
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityAbout.kt b/app/src/main/java/com/quranapp/android/activities/ActivityAbout.kt
index 5cce65dc..20145224 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityAbout.kt
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityAbout.kt
@@ -70,7 +70,9 @@ class ActivityAbout : BaseActivity() {
setup(
binding,
LytReaderSettingsItemBinding.inflate(layoutInflater).apply {
- root.setOnClickListener { AppBridge.newOpener(it.context).browseLink(ApiConfig.GITHUB_REPOSITORY_URL) }
+ root.setOnClickListener {
+ AppBridge.newOpener(it.context).browseLink(ApiConfig.GITHUB_REPOSITORY_URL)
+ }
},
R.drawable.icon_github,
R.string.github
@@ -102,18 +104,36 @@ class ActivityAbout : BaseActivity() {
parent.container.addView(binding.root)
}
- private fun prepareTitle(binding: LytReaderSettingsItemBinding, titleRes: Int, subtitle: String?) {
+ private fun prepareTitle(
+ binding: LytReaderSettingsItemBinding,
+ titleRes: Int,
+ subtitle: String?
+ ) {
val ssb = SpannableStringBuilder()
- ssb.append(SpannableString(str(titleRes)).apply {
- setSpan(StyleSpan(Typeface.BOLD), 0, length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
- })
+ ssb.append(
+ SpannableString(str(titleRes)).apply {
+ setSpan(StyleSpan(Typeface.BOLD), 0, length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
+ }
+ )
if (!subtitle.isNullOrEmpty()) {
- ssb.append("\n").append(SpannableString(subtitle).apply {
- setSpan(AbsoluteSizeSpan(dimen(R.dimen.dmnCommonSize2)), 0, length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
- setSpan(ForegroundColorSpan(color(R.color.colorText3)), 0, length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
- })
+ ssb.append("\n").append(
+ SpannableString(subtitle).apply {
+ setSpan(
+ AbsoluteSizeSpan(dimen(R.dimen.dmnCommonSize2)),
+ 0,
+ length,
+ Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
+ )
+ setSpan(
+ ForegroundColorSpan(color(R.color.colorText3)),
+ 0,
+ length,
+ Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
+ )
+ }
+ )
}
binding.launcher.text = ssb
@@ -127,11 +147,10 @@ class ActivityAbout : BaseActivity() {
textView.setDrawables(drawable(startIconRes), null, chevronRight, null)
}
-
private fun setupLauncherParams(launcherView: View) {
launcherView.layoutParams = LinearLayout.LayoutParams(MATCH_PARENT, WRAP_CONTENT).apply {
updateMarginVertical(dp2px(5f))
updateMarginHorizontal(dp2px(10f))
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityBookmark.java b/app/src/main/java/com/quranapp/android/activities/ActivityBookmark.java
index cb240d39..5b9a4aaa 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityBookmark.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityBookmark.java
@@ -4,7 +4,6 @@
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.GridLayoutManager;
@@ -137,8 +136,9 @@ public void onRightIconClick() {
private void deleteAllWithCheckpoint() {
boolean isSelecting = mAdapter != null && mAdapter.mIsSelecting && !mAdapter.mSelectedModels.isEmpty();
- String title = isSelecting ? getString(R.string.strTitleBookmarkDeleteCount, mAdapter.mSelectedModels.size()) : getString(
- R.string.strTitleBookmarkDeleteAll);
+ String title = isSelecting ? getString(R.string.strTitleBookmarkDeleteCount,
+ mAdapter.mSelectedModels.size()) : getString(
+ R.string.strTitleBookmarkDeleteAll);
int dec = isSelecting ? R.string.strMsgBookmarkDeleteSelected : R.string.strMsgBookmarkDeleteAll;
int labelNeg = isSelecting ? R.string.strLabelRemove : R.string.strLabelRemoveAll;
@@ -229,7 +229,8 @@ public void onView(BookmarkModel model, int position) {
}
public void onOpen(BookmarkModel model) {
- Intent intent = ReaderFactory.prepareVerseRangeIntent(model.getChapterNo(), model.getFromVerseNo(), model.getToVerseNo());
+ Intent intent = ReaderFactory.prepareVerseRangeIntent(model.getChapterNo(), model.getFromVerseNo(),
+ model.getToVerseNo());
intent.setClass(this, ActivityReader.class);
startActivity(intent);
}
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityChapInfo.java b/app/src/main/java/com/quranapp/android/activities/ActivityChapInfo.java
index 1c12c35d..21bd5699 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityChapInfo.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityChapInfo.java
@@ -10,20 +10,19 @@
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import com.quranapp.android.utils.exceptions.NoInternetException;
-import com.quranapp.android.utils.Log;
import com.peacedesign.android.utils.WindowUtils;
import com.quranapp.android.R;
import com.quranapp.android.components.quran.QuranMeta;
import com.quranapp.android.databinding.ActivityChapterInfoBinding;
+import com.quranapp.android.utils.Log;
import com.quranapp.android.utils.Logger;
import com.quranapp.android.utils.chapterInfo.ChapterInfoJSInterface;
import com.quranapp.android.utils.chapterInfo.ChapterInfoUtils;
import com.quranapp.android.utils.chapterInfo.ChapterInfoWebViewClient;
+import com.quranapp.android.utils.exceptions.NoInternetException;
import com.quranapp.android.utils.receivers.NetworkStateReceiver;
import com.quranapp.android.utils.thread.runner.CallableTaskRunner;
import com.quranapp.android.utils.thread.tasks.BaseCallableTask;
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityDownloads.java b/app/src/main/java/com/quranapp/android/activities/ActivityDownloads.java
index 5ab7e8f6..a9b24561 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityDownloads.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityDownloads.java
@@ -6,7 +6,6 @@
import android.os.Bundle;
import android.view.View;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityEditShare.java b/app/src/main/java/com/quranapp/android/activities/ActivityEditShare.java
index 3fc3a4fd..64b46e73 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityEditShare.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityEditShare.java
@@ -1,9 +1,5 @@
package com.quranapp.android.activities;
-import static com.quranapp.android.components.editor.VerseEditor.BG_ALPHA_DEFAULT;
-import static com.quranapp.android.components.editor.VerseEditor.BG_TYPE_COLORS;
-import static com.quranapp.android.components.editor.VerseEditor.BG_TYPE_IMAGE;
-
import android.annotation.SuppressLint;
import android.content.Intent;
import android.graphics.Bitmap;
@@ -22,12 +18,14 @@
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.Toast;
-
import androidx.activity.result.ActivityResult;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.viewpager2.widget.ViewPager2;
+import static com.quranapp.android.components.editor.VerseEditor.BG_ALPHA_DEFAULT;
+import static com.quranapp.android.components.editor.VerseEditor.BG_TYPE_COLORS;
+import static com.quranapp.android.components.editor.VerseEditor.BG_TYPE_IMAGE;
import com.peacedesign.android.utils.AppBridge;
import com.peacedesign.android.utils.ColorUtils;
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityOnboarding.java b/app/src/main/java/com/quranapp/android/activities/ActivityOnboarding.java
index b299da82..aa3b9b88 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityOnboarding.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityOnboarding.java
@@ -7,7 +7,6 @@
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatDelegate;
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityProphets.java b/app/src/main/java/com/quranapp/android/activities/ActivityProphets.java
index 33f724a4..4b0c4c61 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityProphets.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityProphets.java
@@ -4,13 +4,6 @@
package com.quranapp.android.activities;
-import static android.view.View.GONE;
-import static android.view.View.VISIBLE;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static java.util.regex.Pattern.CASE_INSENSITIVE;
-import static java.util.regex.Pattern.DOTALL;
-import static java.util.regex.Pattern.LITERAL;
-
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
@@ -23,11 +16,16 @@
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.Toast;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
+import static java.util.regex.Pattern.CASE_INSENSITIVE;
+import static java.util.regex.Pattern.DOTALL;
+import static java.util.regex.Pattern.LITERAL;
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import com.quranapp.android.R;
import com.quranapp.android.activities.base.BaseActivity;
@@ -119,10 +117,10 @@ private void initHeader(LytTopicsActivityHeaderBinding header) {
EditText searchBox = header.searchContainer.searchBox;
searchBox.setPaddingRelative(
- dp2px(5),
- searchBox.getPaddingTop(),
- searchBox.getPaddingEnd(),
- searchBox.getPaddingBottom()
+ dp2px(5),
+ searchBox.getPaddingTop(),
+ searchBox.getPaddingEnd(),
+ searchBox.getPaddingBottom()
);
header.searchContainer.btnClear.setOnClickListener(v -> header.searchContainer.searchBox.setText(null));
searchBox.setOnFocusChangeListener((v, hasFocus) -> {
@@ -144,7 +142,8 @@ private void initProphetFilters(Spinner2 spinner) {
}
int itemLayoutRes = R.layout.lyt_topic_filter_spinner_item;
- TopicFilterSpinnerAdapter adapter = new TopicFilterSpinnerAdapter(spinner.getContext(), itemLayoutRes, R.id.text, filters);
+ TopicFilterSpinnerAdapter adapter = new TopicFilterSpinnerAdapter(spinner.getContext(), itemLayoutRes,
+ R.id.text, filters);
spinner.setAdapterWithDynamicWidth(adapter);
// running it twice before and after setting listener to prevent it to be invoked for the first time.
@@ -194,7 +193,8 @@ private void toggleSearchBox(LytTopicsActivityHeaderBinding header, boolean show
if (showSearch) {
searchBox.requestFocus();
- InputMethodManager imm = (InputMethodManager) searchBox.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
+ InputMethodManager imm = (InputMethodManager) searchBox.getContext().getSystemService(
+ Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
} else {
searchBox.clearFocus();
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityReadHistory.java b/app/src/main/java/com/quranapp/android/activities/ActivityReadHistory.java
index c1e2493d..04e79919 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityReadHistory.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityReadHistory.java
@@ -1,15 +1,13 @@
package com.quranapp.android.activities;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.GridLayoutManager;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import com.peacedesign.android.utils.WindowUtils;
import com.quranapp.android.R;
@@ -119,7 +117,8 @@ private void setupAdapter(List models) {
}
public void onOpen(ReadHistoryModel model) {
- Intent intent = ReaderFactory.prepareVerseRangeIntent(model.getChapterNo(), model.getFromVerseNo(), model.getToVerseNo());
+ Intent intent = ReaderFactory.prepareVerseRangeIntent(model.getChapterNo(), model.getFromVerseNo(),
+ model.getToVerseNo());
intent.setClass(this, ActivityReader.class);
startActivity(intent);
}
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityReader.java b/app/src/main/java/com/quranapp/android/activities/ActivityReader.java
index 3a00e7e5..4b8c025e 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityReader.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityReader.java
@@ -1,13 +1,25 @@
package com.quranapp.android.activities;
-import static android.view.View.GONE;
-import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
-import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
-import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
-import static android.view.View.VISIBLE;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION;
-import static android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.graphics.Color;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Handler;
+import android.text.SpannableStringBuilder;
+import android.view.View;
+import android.view.Window;
+import android.widget.LinearLayout;
+import android.widget.Toast;
+import androidx.activity.result.ActivityResult;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+import androidx.core.view.WindowInsetsControllerCompat;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
import static com.quranapp.android.components.quran.QuranMeta.canShowBismillah;
import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_CHAPTER;
import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_JUZ;
@@ -33,28 +45,14 @@
import static com.quranapp.android.utils.univ.Keys.READER_KEY_TRANSL_SLUGS;
import static com.quranapp.android.utils.univ.Keys.READER_KEY_VERSES;
import static com.quranapp.android.utils.univ.RegexPattern.VERSE_RANGE_PATTERN;
-
-import android.annotation.SuppressLint;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.graphics.Color;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Handler;
-import android.text.SpannableStringBuilder;
-import android.view.View;
-import android.view.Window;
-import android.widget.LinearLayout;
-import android.widget.Toast;
-
-import androidx.activity.result.ActivityResult;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.core.view.ViewCompat;
-import androidx.core.view.WindowInsetsCompat;
-import androidx.core.view.WindowInsetsControllerCompat;
-import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
+import static android.view.View.GONE;
+import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
+import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
+import static android.view.View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
+import static android.view.View.VISIBLE;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION;
+import static android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
import com.quranapp.android.R;
import com.quranapp.android.adapters.ADPQuranPages;
@@ -475,10 +473,13 @@ private void initQuran(Intent intent) {
}
switch (mReaderParams.readType) {
- case READER_READ_TYPE_VERSES: initVerseRange(initialChapter, initVerses); break;
- case READER_READ_TYPE_JUZ: initJuz(initJuzNo); break;
+ case READER_READ_TYPE_VERSES: initVerseRange(initialChapter, initVerses);
+ break;
+ case READER_READ_TYPE_JUZ: initJuz(initJuzNo);
+ break;
case READER_READ_TYPE_CHAPTER:
- default: initChapter(initialChapter); break;
+ default: initChapter(initialChapter);
+ break;
}
}
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityReaderIndexPage.java b/app/src/main/java/com/quranapp/android/activities/ActivityReaderIndexPage.java
index 547aa1c5..9ec31e0e 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityReaderIndexPage.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityReaderIndexPage.java
@@ -4,7 +4,6 @@
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityReference.java b/app/src/main/java/com/quranapp/android/activities/ActivityReference.java
index 23d61fc3..059e9e41 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityReference.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityReference.java
@@ -1,11 +1,5 @@
package com.quranapp.android.activities;
-import static android.view.View.GONE;
-import static android.view.View.VISIBLE;
-import static com.quranapp.android.adapters.ADPReferenceVerses.VIEWTYPE_DESCRIPTION;
-import static com.quranapp.android.adapters.ADPReferenceVerses.VIEWTYPE_TITLE;
-import static com.quranapp.android.adapters.ADPReferenceVerses.VIEWTYPE_VERSE;
-
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
@@ -13,11 +7,15 @@
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
+import static com.quranapp.android.adapters.ADPReferenceVerses.VIEWTYPE_DESCRIPTION;
+import static com.quranapp.android.adapters.ADPReferenceVerses.VIEWTYPE_TITLE;
+import static com.quranapp.android.adapters.ADPReferenceVerses.VIEWTYPE_VERSE;
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
import com.google.android.material.chip.Chip;
import com.google.android.material.chip.ChipGroup;
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivitySearch.java b/app/src/main/java/com/quranapp/android/activities/ActivitySearch.java
index 0bc7c7ea..567769d1 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivitySearch.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivitySearch.java
@@ -1,13 +1,5 @@
package com.quranapp.android.activities;
-import static android.view.View.FOCUS_DOWN;
-import static android.view.View.GONE;
-import static android.view.View.VISIBLE;
-import static com.quranapp.android.utils.univ.RegexPattern.CHAPTER_OR_JUZ_PATTERN;
-import static com.quranapp.android.utils.univ.RegexPattern.VERSE_JUMP_PATTERN;
-import static com.quranapp.android.utils.univ.RegexPattern.VERSE_RANGE_JUMP_PATTERN;
-import static com.quranapp.android.widgets.compound.PeaceCompoundButton.COMPOUND_TEXT_GRAVITY_LEFT;
-
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
@@ -23,12 +15,18 @@
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
-
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentTransaction;
+import static com.quranapp.android.utils.univ.RegexPattern.CHAPTER_OR_JUZ_PATTERN;
+import static com.quranapp.android.utils.univ.RegexPattern.VERSE_JUMP_PATTERN;
+import static com.quranapp.android.utils.univ.RegexPattern.VERSE_RANGE_JUMP_PATTERN;
+import static com.quranapp.android.widgets.compound.PeaceCompoundButton.COMPOUND_TEXT_GRAVITY_LEFT;
+import static android.view.View.FOCUS_DOWN;
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
import com.peacedesign.android.utils.DrawableUtils;
import com.quranapp.android.R;
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityTafsir.java b/app/src/main/java/com/quranapp/android/activities/ActivityTafsir.java
index 9633a426..249c9813 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityTafsir.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityTafsir.java
@@ -11,16 +11,15 @@
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import com.quranapp.android.utils.Log;
import com.peacedesign.android.utils.WindowUtils;
import com.quranapp.android.R;
import com.quranapp.android.components.quran.Quran;
import com.quranapp.android.components.quran.QuranMeta;
import com.quranapp.android.databinding.ActivityChapterInfoBinding;
+import com.quranapp.android.utils.Log;
import com.quranapp.android.utils.exceptions.NoInternetException;
import com.quranapp.android.utils.receivers.NetworkStateReceiver;
import com.quranapp.android.utils.tafsir.TafsirJSInterface;
diff --git a/app/src/main/java/com/quranapp/android/activities/ActivityTopics.java b/app/src/main/java/com/quranapp/android/activities/ActivityTopics.java
index 4aaae1ee..975bd626 100644
--- a/app/src/main/java/com/quranapp/android/activities/ActivityTopics.java
+++ b/app/src/main/java/com/quranapp/android/activities/ActivityTopics.java
@@ -4,13 +4,6 @@
package com.quranapp.android.activities;
-import static android.view.View.GONE;
-import static android.view.View.VISIBLE;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static java.util.regex.Pattern.CASE_INSENSITIVE;
-import static java.util.regex.Pattern.DOTALL;
-import static java.util.regex.Pattern.LITERAL;
-
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.content.Context;
@@ -25,11 +18,16 @@
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.EditText;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager;
+import static java.util.regex.Pattern.CASE_INSENSITIVE;
+import static java.util.regex.Pattern.DOTALL;
+import static java.util.regex.Pattern.LITERAL;
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import com.google.android.material.chip.Chip;
import com.google.android.material.chip.ChipGroup;
@@ -48,9 +46,9 @@
import com.quranapp.android.databinding.LytTopicsActivityHeaderBinding;
import com.quranapp.android.utils.extended.GapedItemDecoration;
import com.quranapp.android.utils.extensions.ContextKt;
+import com.quranapp.android.utils.simplified.SimpleTextWatcher;
import com.quranapp.android.utils.thread.runner.RunnableTaskRunner;
import com.quranapp.android.utils.thread.tasks.BaseRunnableTask;
-import com.quranapp.android.utils.simplified.SimpleTextWatcher;
import com.quranapp.android.views.helper.Spinner2;
import java.util.ArrayList;
@@ -171,10 +169,10 @@ private void initHeader(LytTopicsActivityHeaderBinding header) {
EditText searchBox = header.searchContainer.searchBox;
searchBox.setPaddingRelative(
- dp2px(5),
- searchBox.getPaddingTop(),
- searchBox.getPaddingEnd(),
- searchBox.getPaddingBottom()
+ dp2px(5),
+ searchBox.getPaddingTop(),
+ searchBox.getPaddingEnd(),
+ searchBox.getPaddingBottom()
);
header.searchContainer.btnClear.setOnClickListener(v -> header.searchContainer.searchBox.setText(null));
searchBox.setOnFocusChangeListener((v, hasFocus) -> {
@@ -198,7 +196,8 @@ private void initTopicFilters(Spinner2 spinner) {
}
int itemLayoutRes = R.layout.lyt_topic_filter_spinner_item;
- TopicFilterSpinnerAdapter adapter = new TopicFilterSpinnerAdapter(spinner.getContext(), itemLayoutRes, R.id.text, filters);
+ TopicFilterSpinnerAdapter adapter = new TopicFilterSpinnerAdapter(spinner.getContext(), itemLayoutRes,
+ R.id.text, filters);
spinner.setAdapterWithDynamicWidth(adapter);
spinner.setOnItemSelectedListener(new Spinner2.SimplerSpinnerItemSelectListener() {
@@ -267,7 +266,8 @@ private void toggleSearchBox(LytTopicsActivityHeaderBinding header, boolean show
if (showSearch) {
searchBox.requestFocus();
- InputMethodManager imm = (InputMethodManager) searchBox.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
+ InputMethodManager imm = (InputMethodManager) searchBox.getContext().getSystemService(
+ Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
} else {
searchBox.clearFocus();
@@ -284,7 +284,8 @@ private void setupAlphabetsVisibility(boolean hide) {
}
int dimen = ContextKt.getDimenPx(alphabetsContainer.getContext(), R.dimen.dmnChipGroupHeight);
- DimensionAnimator animator = DimensionAnimator.Companion.ofHeight(alphabetsContainer, hide ? dimen : 0, hide ? 0 : dimen);
+ DimensionAnimator animator = DimensionAnimator.Companion.ofHeight(alphabetsContainer, hide ? dimen : 0,
+ hide ? 0 : dimen);
animator.setDuration(70);
if (hide) {
@@ -303,7 +304,8 @@ public void onAnimationEnd(Animator animation) {
}
private void initAlphabets() {
- mAlphabetsGroupBinding = LytChipgroupBinding.inflate(LayoutInflater.from(this), mBinding.header.getRoot(), true);
+ mAlphabetsGroupBinding = LytChipgroupBinding.inflate(LayoutInflater.from(this), mBinding.header.getRoot(),
+ true);
initAlphabetsAsync(mAlphabetsGroupBinding);
}
diff --git a/app/src/main/java/com/quranapp/android/activities/MainActivity.java b/app/src/main/java/com/quranapp/android/activities/MainActivity.java
index a8c0532c..8ce44390 100644
--- a/app/src/main/java/com/quranapp/android/activities/MainActivity.java
+++ b/app/src/main/java/com/quranapp/android/activities/MainActivity.java
@@ -2,7 +2,6 @@
import android.os.Bundle;
import android.view.View;
-
import androidx.annotation.DrawableRes;
import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
@@ -147,7 +146,7 @@ private void initBottomNavigation() {
BottomTabLayout bottomTabLayout = mBinding.bottomTabLayout;
bottomTabLayout.setTabs(getBottomTabs());
bottomTabLayout.setKingTab(new BottomTab(R.drawable.quran_kareem),
- kingTab -> launchActivity(ActivityReaderIndexPage.class));
+ kingTab -> launchActivity(ActivityReaderIndexPage.class));
bottomTabLayout.setSelectionChangeListener(tab -> {
if (tab.getId() == R.id.navSearch) {
diff --git a/app/src/main/java/com/quranapp/android/activities/ReaderPossessingActivity.java b/app/src/main/java/com/quranapp/android/activities/ReaderPossessingActivity.java
index b50fddb6..880368a8 100644
--- a/app/src/main/java/com/quranapp/android/activities/ReaderPossessingActivity.java
+++ b/app/src/main/java/com/quranapp/android/activities/ReaderPossessingActivity.java
@@ -1,7 +1,5 @@
package com.quranapp.android.activities;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-
import android.content.Intent;
import android.graphics.Color;
import android.graphics.Typeface;
@@ -12,11 +10,11 @@
import android.text.style.StyleSpan;
import android.view.View;
import android.widget.Toast;
-
import androidx.activity.result.ActivityResult;
import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
import com.peacedesign.android.utils.span.TypefaceSpan2;
import com.quranapp.android.R;
diff --git a/app/src/main/java/com/quranapp/android/activities/base/BaseActivity.java b/app/src/main/java/com/quranapp/android/activities/base/BaseActivity.java
index 10e4fbfb..ea9e139a 100644
--- a/app/src/main/java/com/quranapp/android/activities/base/BaseActivity.java
+++ b/app/src/main/java/com/quranapp/android/activities/base/BaseActivity.java
@@ -4,11 +4,6 @@
package com.quranapp.android.activities.base;
-import static com.quranapp.android.activities.base.BaseActivity.ActivityAnimationStyle.DEFAULT;
-import static com.quranapp.android.activities.base.BaseActivity.ActivityAnimationStyle.NONE;
-import static com.quranapp.android.activities.base.BaseActivity.ActivityAnimationStyle.SLIDE;
-import static com.quranapp.android.utils.sharedPrefs.SPAppConfigs.LOCALE_DEFAULT;
-
import android.annotation.TargetApi;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -25,7 +20,6 @@
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
-
import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
@@ -40,6 +34,10 @@
import androidx.core.app.ActivityOptionsCompat;
import androidx.core.content.ContextCompat;
import androidx.core.view.WindowInsetsControllerCompat;
+import static com.quranapp.android.activities.base.BaseActivity.ActivityAnimationStyle.DEFAULT;
+import static com.quranapp.android.activities.base.BaseActivity.ActivityAnimationStyle.NONE;
+import static com.quranapp.android.activities.base.BaseActivity.ActivityAnimationStyle.SLIDE;
+import static com.quranapp.android.utils.sharedPrefs.SPAppConfigs.LOCALE_DEFAULT;
import com.peacedesign.android.utils.WindowUtils;
import com.quranapp.android.R;
@@ -53,7 +51,8 @@
import java.util.Locale;
import java.util.Objects;
-public abstract class BaseActivity extends ResHelperActivity implements NetworkStateReceiverListener, ActivityResultStarter {
+public abstract class BaseActivity extends ResHelperActivity implements NetworkStateReceiverListener,
+ ActivityResultStarter {
private final ActivityResultLauncher mActivityResultLauncher = activityResultHandler();
protected final AsyncLayoutInflater mAsyncInflater = new AsyncLayoutInflater(this);
private NetworkStateReceiver mNetworkReceiver;
@@ -75,8 +74,8 @@ public void onReceive(Context context, Intent intent) {
}
}
};
- private String mCurrentLocale = null;
- private boolean shouldRecreateDueToLocaleChange = false;
+ private String mCurrentLocale;
+ private boolean shouldRecreateDueToLocaleChange;
@Override
protected void attachBaseContext(Context base) {
@@ -376,7 +375,8 @@ public void launchActivity(Class> cls) {
protected void hideSystemBars() {
Window window = getWindow();
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
- window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ window.addFlags(
+ WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
/**
diff --git a/app/src/main/java/com/quranapp/android/activities/base/ResHelperActivity.java b/app/src/main/java/com/quranapp/android/activities/base/ResHelperActivity.java
index 1947d3ea..e0f15021 100644
--- a/app/src/main/java/com/quranapp/android/activities/base/ResHelperActivity.java
+++ b/app/src/main/java/com/quranapp/android/activities/base/ResHelperActivity.java
@@ -10,7 +10,6 @@
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
-
import androidx.annotation.ArrayRes;
import androidx.annotation.BoolRes;
import androidx.annotation.ColorInt;
@@ -32,7 +31,7 @@
public class ResHelperActivity extends AppCompatActivity {
static class ActivityState {
- static int CREATED = 0, RESUMED = 1, STARTED = 2, PAUSED = 3, STOPPED = 4, DESTROYED = 5;
+ static int CREATED, RESUMED = 1, STARTED = 2, PAUSED = 3, STOPPED = 4, DESTROYED = 5;
}
private int mPrimaryClr = -213;
diff --git a/app/src/main/java/com/quranapp/android/activities/readerSettings/ActivitySettings.java b/app/src/main/java/com/quranapp/android/activities/readerSettings/ActivitySettings.java
index 19176bbe..76ec7798 100644
--- a/app/src/main/java/com/quranapp/android/activities/readerSettings/ActivitySettings.java
+++ b/app/src/main/java/com/quranapp/android/activities/readerSettings/ActivitySettings.java
@@ -6,19 +6,16 @@
package com.quranapp.android.activities.readerSettings;
-import static com.quranapp.android.utils.univ.Codes.SETTINGS_LAUNCHER_RESULT_CODE;
-
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
+import static com.quranapp.android.utils.univ.Codes.SETTINGS_LAUNCHER_RESULT_CODE;
-import com.quranapp.android.utils.Log;
import com.quranapp.android.R;
import com.quranapp.android.activities.base.BaseActivity;
import com.quranapp.android.databinding.ActivitySettingsBinding;
@@ -29,6 +26,7 @@
import com.quranapp.android.frags.settings.FragSettingsScripts;
import com.quranapp.android.frags.settings.FragSettingsTransl;
import com.quranapp.android.frags.settings.FragSettingsTranslationsDownload;
+import com.quranapp.android.utils.Log;
import com.quranapp.android.views.BoldHeader;
import java.util.Objects;
diff --git a/app/src/main/java/com/quranapp/android/activities/test/ActivityExperiment.java b/app/src/main/java/com/quranapp/android/activities/test/ActivityExperiment.java
index 00b6bf59..ba7374be 100644
--- a/app/src/main/java/com/quranapp/android/activities/test/ActivityExperiment.java
+++ b/app/src/main/java/com/quranapp/android/activities/test/ActivityExperiment.java
@@ -8,15 +8,14 @@
import android.os.Bundle;
import android.view.View;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import com.quranapp.android.utils.Log;
import com.quranapp.android.R;
import com.quranapp.android.activities.base.BaseActivity;
import com.quranapp.android.components.quran.subcomponents.Translation;
import com.quranapp.android.databinding.ActivityExperimentBinding;
+import com.quranapp.android.utils.Log;
import com.quranapp.android.utils.reader.TranslUtils;
import com.quranapp.android.utils.reader.factory.QuranTranslFactory;
import com.quranapp.android.utils.reader.factory.ReaderFactory;
@@ -62,8 +61,9 @@ private void perform() {
Log.d(transls);
int[] ints = {1, 7, 2, 3};
- Log.d(translFactory.getTranslationsDistinctVerses(Collections.singleton(TranslUtils.TRANSL_SLUG_EN_THE_CLEAR_QURAN), 88,
- ints));
+ Log.d(translFactory.getTranslationsDistinctVerses(
+ Collections.singleton(TranslUtils.TRANSL_SLUG_EN_THE_CLEAR_QURAN), 88,
+ ints));
Log.d(translFactory.getTranslationsVerseRange(2, 10, 12));
Log.d(translFactory.getTranslationBookInfo(TranslUtils.TRANSL_SLUG_EN_THE_CLEAR_QURAN));
diff --git a/app/src/main/java/com/quranapp/android/adapters/ADPBookmark.java b/app/src/main/java/com/quranapp/android/adapters/ADPBookmark.java
index e9e05559..8daa17b4 100644
--- a/app/src/main/java/com/quranapp/android/adapters/ADPBookmark.java
+++ b/app/src/main/java/com/quranapp/android/adapters/ADPBookmark.java
@@ -4,8 +4,6 @@
package com.quranapp.android.adapters;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
import android.graphics.Typeface;
@@ -15,10 +13,10 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.span.LineHeightSpan2;
@@ -220,9 +218,12 @@ private void openItemMenu(String title, BookmarkModel model) {
dialog1.dismiss();
switch (item.getPosition()) {
- case 0: mActivity.onView(model, getAdapterPosition()); break;
- case 1: mActivity.onOpen(model); break;
- case 2: mActivity.removeVerseFromBookmark(model, getAdapterPosition()); break;
+ case 0: mActivity.onView(model, getAdapterPosition());
+ break;
+ case 1: mActivity.onOpen(model);
+ break;
+ case 2: mActivity.removeVerseFromBookmark(model, getAdapterPosition());
+ break;
}
});
diff --git a/app/src/main/java/com/quranapp/android/adapters/ADPFeaturedQuran.java b/app/src/main/java/com/quranapp/android/adapters/ADPFeaturedQuran.java
index 673a9dc0..188176dc 100644
--- a/app/src/main/java/com/quranapp/android/adapters/ADPFeaturedQuran.java
+++ b/app/src/main/java/com/quranapp/android/adapters/ADPFeaturedQuran.java
@@ -4,7 +4,6 @@
import android.content.Context;
import android.view.LayoutInflater;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
@@ -67,7 +66,7 @@ public void bind(FeaturedQuranModel model) {
int chapterNo = model.chapterNo;
Pair verseRange = model.verseRange;
if (QuranMeta.isChapterValid(chapterNo) &&
- mQuranMeta.isVerseRangeValid4Chapter(chapterNo, verseRange.getFirst(), verseRange.getSecond())) {
+ mQuranMeta.isVerseRangeValid4Chapter(chapterNo, verseRange.getFirst(), verseRange.getSecond())) {
ReaderFactory.startVerseRange(itemView.getContext(), chapterNo, verseRange);
}
});
diff --git a/app/src/main/java/com/quranapp/android/adapters/ADPProphets.java b/app/src/main/java/com/quranapp/android/adapters/ADPProphets.java
index 6e0c97ec..2473ff61 100644
--- a/app/src/main/java/com/quranapp/android/adapters/ADPProphets.java
+++ b/app/src/main/java/com/quranapp/android/adapters/ADPProphets.java
@@ -1,8 +1,5 @@
package com.quranapp.android.adapters;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.content.Context;
import android.content.Intent;
import android.content.res.ColorStateList;
@@ -13,10 +10,11 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.span.LineHeightSpan2;
@@ -52,7 +50,7 @@ public int getItemCount() {
}
public void setProphets(List topics) {
- this.mTopics = topics;
+ mTopics = topics;
}
public List getTopics() {
@@ -83,8 +81,9 @@ private CharSequence prepareTexts(String title, CharSequence subTitle, String in
subTitleSS.setSpan(new LineHeightSpan2(20, false, true), 0, subTitleSS.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
SpannableString chaptersSS = new SpannableString(inChapters);
- TextAppearanceSpan inChaptersTASpan = new TextAppearanceSpan("sans-serif-light", Typeface.NORMAL, mTxtSize, mTxtColor2,
- null);
+ TextAppearanceSpan inChaptersTASpan = new TextAppearanceSpan("sans-serif-light", Typeface.NORMAL, mTxtSize,
+ mTxtColor2,
+ null);
chaptersSS.setSpan(inChaptersTASpan, 0, chaptersSS.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
return TextUtils.concat(titleSS, "\n", subTitleSS, "\n", chaptersSS);
@@ -136,7 +135,8 @@ private void setupActions(QuranProphet.Prophet prophet) {
title = ctx.getString(R.string.strMsgReferenceInQuran, title);
- Intent intent = ReaderFactory.prepareReferenceVerseIntent(true, title, desc, new String[]{}, prophet.chapters, prophet.verses);
+ Intent intent = ReaderFactory.prepareReferenceVerseIntent(true, title, desc, new String[]{},
+ prophet.chapters, prophet.verses);
intent.setClass(ctx, ActivityReference.class);
mBinding.getRoot().setOnClickListener(v -> ctx.startActivity(intent));
}
diff --git a/app/src/main/java/com/quranapp/android/adapters/ADPQuickReference.java b/app/src/main/java/com/quranapp/android/adapters/ADPQuickReference.java
index 78744cf8..ddd8c7a5 100644
--- a/app/src/main/java/com/quranapp/android/adapters/ADPQuickReference.java
+++ b/app/src/main/java/com/quranapp/android/adapters/ADPQuickReference.java
@@ -1,7 +1,6 @@
package com.quranapp.android.adapters;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
diff --git a/app/src/main/java/com/quranapp/android/adapters/ADPQuranPages.java b/app/src/main/java/com/quranapp/android/adapters/ADPQuranPages.java
index e73e9896..ed00accb 100644
--- a/app/src/main/java/com/quranapp/android/adapters/ADPQuranPages.java
+++ b/app/src/main/java/com/quranapp/android/adapters/ADPQuranPages.java
@@ -1,16 +1,14 @@
package com.quranapp.android.adapters;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.CHAPTER_INFO;
-import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.READER_FOOTER;
-import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.READER_PAGE;
-
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
+import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.CHAPTER_INFO;
+import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.READER_FOOTER;
+import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.READER_PAGE;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.Dimen;
import com.quranapp.android.activities.ActivityReader;
@@ -77,7 +75,7 @@ public VHQuranPage onCreateViewHolder(@NonNull ViewGroup parent, int position) {
} else if (viewType == READER_PAGE) {
final QuranPageView quranPageView = new QuranPageView(mActivity);
final ViewGroup.MarginLayoutParams params = new ViewGroup.MarginLayoutParams(MATCH_PARENT, WRAP_CONTENT);
- LayoutParamsKt.updateMargins(params, Dimen.dp2px(parent.getContext(),3));
+ LayoutParamsKt.updateMargins(params, Dimen.dp2px(parent.getContext(), 3));
quranPageView.setLayoutParams(params);
view = quranPageView;
} else if (viewType == READER_FOOTER) {
diff --git a/app/src/main/java/com/quranapp/android/adapters/ADPReadHistory.java b/app/src/main/java/com/quranapp/android/adapters/ADPReadHistory.java
index fbd9d50d..074e6852 100644
--- a/app/src/main/java/com/quranapp/android/adapters/ADPReadHistory.java
+++ b/app/src/main/java/com/quranapp/android/adapters/ADPReadHistory.java
@@ -1,8 +1,5 @@
package com.quranapp.android.adapters;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.content.Context;
import android.content.Intent;
import android.content.res.ColorStateList;
@@ -13,11 +10,12 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.Dimension;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.span.LineHeightSpan2;
@@ -77,7 +75,8 @@ public int getItemViewType(int position) {
@NonNull
@Override
public VHReadHistory onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- LytBookmarkItemBinding binding = LytBookmarkItemBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
+ LytBookmarkItemBinding binding = LytBookmarkItemBinding.inflate(LayoutInflater.from(parent.getContext()),
+ parent, false);
return new VHReadHistory(binding);
}
@@ -97,8 +96,9 @@ private CharSequence prepareTexts(String title, CharSequence subTitle, String co
subTitleSS.setSpan(new LineHeightSpan2(20, false, true), 0, subTitleSS.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
SpannableString continueReadingSS = new SpannableString(continueReading);
- TextAppearanceSpan continueReadingTASpan = new TextAppearanceSpan("sans-serif-medium", Typeface.NORMAL, mTxtSize2,
- mColorPrimary, null);
+ TextAppearanceSpan continueReadingTASpan = new TextAppearanceSpan("sans-serif-medium", Typeface.NORMAL,
+ mTxtSize2,
+ mColorPrimary, null);
continueReadingSS.setSpan(continueReadingTASpan, 0, continueReadingSS.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
return TextUtils.concat(titleSS, "\n", subTitleSS, "\n", continueReadingSS);
@@ -119,7 +119,8 @@ public VHReadHistory(@NonNull LytBookmarkItemBinding binding) {
p.width = mItemWidth;
} else {
p = new RecyclerView.LayoutParams(mItemWidth, WRAP_CONTENT);
- LayoutParamsKt.updateMargins((ViewGroup.MarginLayoutParams) p, Dimen.dp2px(binding.getRoot().getContext(), 3));
+ LayoutParamsKt.updateMargins((ViewGroup.MarginLayoutParams) p,
+ Dimen.dp2px(binding.getRoot().getContext(), 3));
}
root.setLayoutParams(p);
@@ -138,8 +139,9 @@ public void bind(ReadHistoryModel history) {
mBinding.chapterNo.setText(String.valueOf(history.getChapterNo()));
String chapterName = mQuranMeta.getChapterName(itemView.getContext(), history.getChapterNo(), true);
- CharSequence txt = prepareTexts(chapterName, prepareSubtitleTitle(history.getFromVerseNo(), history.getToVerseNo()),
- mTxtContinueReading);
+ CharSequence txt = prepareTexts(chapterName,
+ prepareSubtitleTitle(history.getFromVerseNo(), history.getToVerseNo()),
+ mTxtContinueReading);
mBinding.text.setText(txt);
setupActions(history);
diff --git a/app/src/main/java/com/quranapp/android/adapters/ADPReader.java b/app/src/main/java/com/quranapp/android/adapters/ADPReader.java
index 620f6978..eccb3b6a 100644
--- a/app/src/main/java/com/quranapp/android/adapters/ADPReader.java
+++ b/app/src/main/java/com/quranapp/android/adapters/ADPReader.java
@@ -1,7 +1,9 @@
package com.quranapp.android.adapters;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
+import android.view.View;
+import android.view.ViewGroup;
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.BISMILLAH;
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.CHAPTER_INFO;
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.CHAPTER_TITLE;
@@ -9,12 +11,8 @@
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.NO_TRANSL_SELECTED;
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.READER_FOOTER;
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.VERSE;
-
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.recyclerview.widget.RecyclerView;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityReader;
@@ -125,7 +123,7 @@ private View prepareNoTranslMessageView(ActivityReader activity) {
msgView.setElevation(activity.dp2px(4));
msgView.setMessageStyle(CardMessageParams.STYLE_WARNING);
msgView.setActionText(activity.str(R.string.strTitleSettings),
- () -> activity.mBinding.readerHeader.openReaderSetting(ActivitySettings.SETTINGS_TRANSL));
+ () -> activity.mBinding.readerHeader.openReaderSetting(ActivitySettings.SETTINGS_TRANSL));
return msgView;
}
@@ -146,9 +144,12 @@ public void bind(ReaderRecyclerItemModel model) {
int viewType = getViewType(position);
switch (viewType) {
- case CHAPTER_INFO: ((ChapterInfoCardView) itemView).setInfo(mChapterInfoMeta); break;
- case VERSE: setupVerseView(model); break;
- case CHAPTER_TITLE: setupTitleView(model); break;
+ case CHAPTER_INFO: ((ChapterInfoCardView) itemView).setInfo(mChapterInfoMeta);
+ break;
+ case VERSE: setupVerseView(model);
+ break;
+ case CHAPTER_TITLE: setupTitleView(model);
+ break;
}
}
diff --git a/app/src/main/java/com/quranapp/android/adapters/ADPReferenceVerses.java b/app/src/main/java/com/quranapp/android/adapters/ADPReferenceVerses.java
index a9e2f28c..d770f252 100644
--- a/app/src/main/java/com/quranapp/android/adapters/ADPReferenceVerses.java
+++ b/app/src/main/java/com/quranapp/android/adapters/ADPReferenceVerses.java
@@ -1,11 +1,5 @@
package com.quranapp.android.adapters;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-import static com.quranapp.android.utils.univ.Keys.READER_KEY_SAVE_TRANSL_CHANGES;
-import static com.quranapp.android.utils.univ.Keys.READER_KEY_TRANSL_SLUGS;
-
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
@@ -19,10 +13,14 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
+import static com.quranapp.android.utils.univ.Keys.READER_KEY_SAVE_TRANSL_CHANGES;
+import static com.quranapp.android.utils.univ.Keys.READER_KEY_TRANSL_SLUGS;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.DrawableUtils;
@@ -42,7 +40,8 @@
import java.util.ArrayList;
import java.util.List;
-public class ADPReferenceVerses extends RecyclerView.Adapter implements Destroyable {
+public class ADPReferenceVerses extends RecyclerView.Adapter implements
+ Destroyable {
public static final int VIEWTYPE_DESCRIPTION = 0x0;
public static final int VIEWTYPE_TITLE = 0x1;
public static final int VIEWTYPE_VERSE = 0x2;
@@ -83,7 +82,8 @@ public int getItemViewType(int position) {
public VHReferenceVerse onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
final VHReferenceVerse vh;
if (viewType == VIEWTYPE_DESCRIPTION) {
- LytActivityReferenceDescriptionBinding binding = LytActivityReferenceDescriptionBinding.inflate(mInflater, parent, false);
+ LytActivityReferenceDescriptionBinding binding = LytActivityReferenceDescriptionBinding.inflate(mInflater,
+ parent, false);
vh = new VHReferenceVerse(binding);
} else if (viewType == VIEWTYPE_TITLE) {
LytReferenceVerseTitleBinding binding = LytReferenceVerseTitleBinding.inflate(mInflater, parent, false);
@@ -191,7 +191,8 @@ private void bindTitle(LytReferenceVerseTitleBinding binding, ReferenceVerseItem
binding.titleText.setText(model.getTitleText());
binding.openInReader.setOnTouchListener(new HoverPushOpacityEffect());
binding.openInReader.setOnClickListener(v -> {
- Intent intent = ReaderFactory.prepareVerseRangeIntent(model.getChapterNo(), model.getFromVerse(), model.getToVerse());
+ Intent intent = ReaderFactory.prepareVerseRangeIntent(model.getChapterNo(), model.getFromVerse(),
+ model.getToVerse());
intent.setClass(mActivity, ActivityReader.class);
intent.putExtra(READER_KEY_TRANSL_SLUGS, mActivity.mSelectedTranslSlugs.toArray(new String[0]));
intent.putExtra(READER_KEY_SAVE_TRANSL_CHANGES, false);
diff --git a/app/src/main/java/com/quranapp/android/adapters/ADPTopics.java b/app/src/main/java/com/quranapp/android/adapters/ADPTopics.java
index 0c7578fa..89cf376a 100644
--- a/app/src/main/java/com/quranapp/android/adapters/ADPTopics.java
+++ b/app/src/main/java/com/quranapp/android/adapters/ADPTopics.java
@@ -1,8 +1,5 @@
package com.quranapp.android.adapters;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Typeface;
@@ -12,11 +9,12 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.Dimension;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.span.LineHeightSpan2;
@@ -64,8 +62,9 @@ public int getItemViewType(int position) {
@NonNull
@Override
public VHTopic onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- LytQuranTopicItemBinding binding = LytQuranTopicItemBinding.inflate(LayoutInflater.from(parent.getContext()), parent,
- false);
+ LytQuranTopicItemBinding binding = LytQuranTopicItemBinding.inflate(LayoutInflater.from(parent.getContext()),
+ parent,
+ false);
return new VHTopic(binding);
}
@@ -85,8 +84,9 @@ private CharSequence prepareTexts(String title, CharSequence subTitle, String in
subTitleSS.setSpan(new LineHeightSpan2(20, false, true), 0, subTitleSS.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
SpannableString chaptersSS = new SpannableString(inChapters);
- TextAppearanceSpan inChaptersTASpan = new TextAppearanceSpan("sans-serif-light", Typeface.NORMAL, mTxtSize, mTxtColor2,
- null);
+ TextAppearanceSpan inChaptersTASpan = new TextAppearanceSpan("sans-serif-light", Typeface.NORMAL, mTxtSize,
+ mTxtColor2,
+ null);
chaptersSS.setSpan(inChaptersTASpan, 0, chaptersSS.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
return TextUtils.concat(titleSS, "\n", subTitleSS, "\n", chaptersSS);
diff --git a/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditShareColors.java b/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditShareColors.java
index a276a02f..c18242ef 100644
--- a/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditShareColors.java
+++ b/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditShareColors.java
@@ -14,7 +14,6 @@
import android.graphics.Paint;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
@@ -48,7 +47,7 @@ public void onBindViewHolder(@NonNull VHColor holder, int position) {
holder.bind(colors[position]);
}
- class VHColor extends RecyclerView.ViewHolder {
+ class VHColor extends RecyclerView.ViewHolder {
public VHColor(@NonNull View itemView) {
super(itemView);
}
@@ -64,12 +63,12 @@ public static class ColorView extends View {
private final int normalColor;
private final int activeColor;
private int bgColor = Color.TRANSPARENT;
- private boolean selected = false;
+ private boolean selected;
public ColorView(@NonNull Context context) {
super(context);
- this.normalColor = ContextCompat.getColor(context, R.color.colorDivider);
- this.activeColor = ContextCompat.getColor(context, R.color.colorPrimary);
+ normalColor = ContextCompat.getColor(context, R.color.colorDivider);
+ activeColor = ContextCompat.getColor(context, R.color.colorPrimary);
init();
}
@@ -113,7 +112,7 @@ public void setSelected(boolean selected) {
@Override
public void setBackgroundColor(int color) {
- this.bgColor = color;
+ bgColor = color;
invalidate();
}
}
diff --git a/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorBG.java b/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorBG.java
index 73b1d459..fff75b6e 100644
--- a/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorBG.java
+++ b/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorBG.java
@@ -4,8 +4,6 @@
package com.quranapp.android.adapters.editor;
-import static android.provider.MediaStore.Images;
-
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
@@ -14,12 +12,11 @@
import android.view.ViewGroup;
import android.widget.SeekBar;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
+import static android.provider.MediaStore.Images;
import com.peacedesign.android.utils.ColorUtils;
-import com.quranapp.android.widgets.bottomSheet.PeaceBottomSheet;
import com.quranapp.android.R;
import com.quranapp.android.components.editor.EditorBG;
import com.quranapp.android.components.editor.VerseEditor;
@@ -28,6 +25,7 @@
import com.quranapp.android.utils.gesture.HoverPushOpacityEffect;
import com.quranapp.android.utils.simplified.SimpleSeekbarChangeListener;
import com.quranapp.android.widgets.ColorPreviewerView;
+import com.quranapp.android.widgets.bottomSheet.PeaceBottomSheet;
import com.quranapp.android.widgets.bottomSheet.PeaceBottomSheetParams;
import com.quranapp.android.widgets.editor.EditorBGView;
import com.quranapp.android.widgets.editor.EditorSelectImageView;
diff --git a/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorFG.java b/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorFG.java
index 99865b16..d9c72f13 100644
--- a/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorFG.java
+++ b/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorFG.java
@@ -4,12 +4,10 @@
package com.quranapp.android.adapters.editor;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import com.peacedesign.android.utils.Dimen;
import com.quranapp.android.components.editor.EditorFG;
@@ -47,7 +45,8 @@ public class VHEditorFG extends RecyclerView.ViewHolder {
public VHEditorFG(@NonNull EditorFGView editorFGView) {
super(editorFGView);
mEditorFGView = editorFGView;
- editorFGView.setLayoutParams(new ViewGroup.LayoutParams(MATCH_PARENT, Dimen.dp2px(editorFGView.getContext(), 120)));
+ editorFGView.setLayoutParams(
+ new ViewGroup.LayoutParams(MATCH_PARENT, Dimen.dp2px(editorFGView.getContext(), 120)));
editorFGView.setOnTouchListener(new HoverPushOpacityEffect());
}
diff --git a/app/src/main/java/com/quranapp/android/adapters/extended/PeaceBottomSheetMenuAdapter.kt b/app/src/main/java/com/quranapp/android/adapters/extended/PeaceBottomSheetMenuAdapter.kt
index 658e39c9..1d41b63e 100644
--- a/app/src/main/java/com/quranapp/android/adapters/extended/PeaceBottomSheetMenuAdapter.kt
+++ b/app/src/main/java/com/quranapp/android/adapters/extended/PeaceBottomSheetMenuAdapter.kt
@@ -24,4 +24,4 @@ class PeaceBottomSheetMenuAdapter(context: Context) : BaseListAdapter(context) {
return view
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/adapters/quranIndex/ADPChaptersList.java b/app/src/main/java/com/quranapp/android/adapters/quranIndex/ADPChaptersList.java
index d6e2338b..9d9260ae 100644
--- a/app/src/main/java/com/quranapp/android/adapters/quranIndex/ADPChaptersList.java
+++ b/app/src/main/java/com/quranapp/android/adapters/quranIndex/ADPChaptersList.java
@@ -4,15 +4,13 @@
package com.quranapp.android.adapters.quranIndex;
-import static android.view.ViewGroup.LayoutParams;
-import static android.view.ViewGroup.MarginLayoutParams;
-
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
+import static android.view.ViewGroup.LayoutParams;
+import static android.view.ViewGroup.MarginLayoutParams;
import com.peacedesign.android.utils.Dimen;
import com.quranapp.android.R;
diff --git a/app/src/main/java/com/quranapp/android/adapters/quranIndex/ADPJuzList.java b/app/src/main/java/com/quranapp/android/adapters/quranIndex/ADPJuzList.java
index 5094d884..78753b90 100644
--- a/app/src/main/java/com/quranapp/android/adapters/quranIndex/ADPJuzList.java
+++ b/app/src/main/java/com/quranapp/android/adapters/quranIndex/ADPJuzList.java
@@ -8,7 +8,6 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -72,7 +71,7 @@ private IndexJuzItemModel prepareJuzItemModel(Context ctx, int juzNo, QuranMeta
Pair chaptersInJuz = quranMeta.getChaptersInJuz(juzNo);
IntStream.rangeClosed(chaptersInJuz.getFirst(), chaptersInJuz.getSecond())
- .forEach(chapterNo -> chapterMetas.add(quranMeta.getChapterMeta(chapterNo)));
+ .forEach(chapterNo -> chapterMetas.add(quranMeta.getChapterMeta(chapterNo)));
model.chapters = ImmutableList.copyOf(chapterMetas);
@@ -93,7 +92,7 @@ public int getItemViewType(int position) {
@Override
public VHJuz onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LytReaderIndexJuzCardBinding binding = LytReaderIndexJuzCardBinding.inflate(
- LayoutInflater.from(parent.getContext()), parent, false);
+ LayoutInflater.from(parent.getContext()), parent, false);
binding.getRoot().setClipChildren(true);
binding.getRoot().setClipToOutline(true);
binding.chapterList.setLayoutManager(new LinearLayoutManager(parent.getContext()));
diff --git a/app/src/main/java/com/quranapp/android/adapters/quranIndex/ADPJuzListChapterList.java b/app/src/main/java/com/quranapp/android/adapters/quranIndex/ADPJuzListChapterList.java
index f1af0f71..21919395 100644
--- a/app/src/main/java/com/quranapp/android/adapters/quranIndex/ADPJuzListChapterList.java
+++ b/app/src/main/java/com/quranapp/android/adapters/quranIndex/ADPJuzListChapterList.java
@@ -5,7 +5,6 @@
package com.quranapp.android.adapters.quranIndex;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
@@ -73,11 +72,12 @@ public void bind(QuranMeta.ChapterMeta chapterMeta) {
chapterCard.setChapterNumber(chapterMeta.chapterNo);
chapterCard.setName(chapterMeta.getName(), chapterMeta.getNameTranslation());
- Pair versesInJuz = mFragment.getQuranMeta().getVerseRangeOfChapterInJuz(mJuzNo, chapterMeta.chapterNo);
+ Pair versesInJuz = mFragment.getQuranMeta().getVerseRangeOfChapterInJuz(mJuzNo,
+ chapterMeta.chapterNo);
if (versesInJuz != null) {
chapterCard.setVersesCount(mVersesStr, versesInJuz.getFirst(), versesInJuz.getSecond());
chapterCard.setOnClickListener(
- v -> ReaderFactory.startVerseRange(v.getContext(), chapterMeta.chapterNo, versesInJuz));
+ v -> ReaderFactory.startVerseRange(v.getContext(), chapterMeta.chapterNo, versesInJuz));
}
}
}
diff --git a/app/src/main/java/com/quranapp/android/adapters/quranIndex/ADPReaderIndexBase.java b/app/src/main/java/com/quranapp/android/adapters/quranIndex/ADPReaderIndexBase.java
index a1d49fe3..0f6a81a2 100644
--- a/app/src/main/java/com/quranapp/android/adapters/quranIndex/ADPReaderIndexBase.java
+++ b/app/src/main/java/com/quranapp/android/adapters/quranIndex/ADPReaderIndexBase.java
@@ -7,7 +7,6 @@
package com.quranapp.android.adapters.quranIndex;
import android.content.Context;
-
import androidx.recyclerview.widget.RecyclerView;
import com.quranapp.android.frags.readerindex.BaseFragReaderIndex;
diff --git a/app/src/main/java/com/quranapp/android/adapters/recitation/ADPRecitations.java b/app/src/main/java/com/quranapp/android/adapters/recitation/ADPRecitations.java
index eff71874..a8506360 100644
--- a/app/src/main/java/com/quranapp/android/adapters/recitation/ADPRecitations.java
+++ b/app/src/main/java/com/quranapp/android/adapters/recitation/ADPRecitations.java
@@ -8,7 +8,6 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
diff --git a/app/src/main/java/com/quranapp/android/adapters/search/ADPSearchSugg.java b/app/src/main/java/com/quranapp/android/adapters/search/ADPSearchSugg.java
index 949c4015..58cd5e96 100644
--- a/app/src/main/java/com/quranapp/android/adapters/search/ADPSearchSugg.java
+++ b/app/src/main/java/com/quranapp/android/adapters/search/ADPSearchSugg.java
@@ -7,7 +7,6 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
-
import androidx.annotation.NonNull;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.recyclerview.widget.RecyclerView;
@@ -47,7 +46,7 @@ public ADPSearchSugg(Context context) {
@SuppressLint("NotifyDataSetChanged")
public void setSuggModels(ActivitySearch activitySearch, ArrayList suggModels) {
mActivitySearch = activitySearch;
- this.mSuggModels = suggModels;
+ mSuggModels = suggModels;
}
@Override
diff --git a/app/src/main/java/com/quranapp/android/adapters/search/ADPVerseResults.java b/app/src/main/java/com/quranapp/android/adapters/search/ADPVerseResults.java
index 097431ee..1bfaed04 100644
--- a/app/src/main/java/com/quranapp/android/adapters/search/ADPVerseResults.java
+++ b/app/src/main/java/com/quranapp/android/adapters/search/ADPVerseResults.java
@@ -1,16 +1,5 @@
package com.quranapp.android.adapters.search;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.CHAPTER_JUMPER;
-import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.JUZ_JUMPER;
-import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.RESULT;
-import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.RESULT_COUNT;
-import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.VERSE_JUMPER;
-import static com.quranapp.android.utils.univ.Keys.READER_KEY_SAVE_TRANSL_CHANGES;
-import static com.quranapp.android.utils.univ.Keys.READER_KEY_TRANSL_SLUGS;
-
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
@@ -24,15 +13,23 @@
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.RecyclerView;
+import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.CHAPTER_JUMPER;
+import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.JUZ_JUMPER;
+import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.RESULT;
+import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.RESULT_COUNT;
+import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.VERSE_JUMPER;
+import static com.quranapp.android.utils.univ.Keys.READER_KEY_SAVE_TRANSL_CHANGES;
+import static com.quranapp.android.utils.univ.Keys.READER_KEY_TRANSL_SLUGS;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.span.TypefaceSpan2;
-import com.quranapp.android.widgets.list.base.BaseListItem;
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityReader;
import com.quranapp.android.activities.ActivitySearch;
@@ -62,6 +59,7 @@
import com.quranapp.android.vh.search.VHVerseJump;
import com.quranapp.android.widgets.bottomSheet.PeaceBottomSheetMenu;
import com.quranapp.android.widgets.chapterCard.ChapterCard;
+import com.quranapp.android.widgets.list.base.BaseListItem;
import java.util.ArrayList;
import java.util.List;
@@ -410,7 +408,8 @@ private void openItemMenu(Context context, VerseResultModel model) {
switch (item.getId()) {
case 0: {
openItem(context, model);
- } break;
+ }
+ break;
case 1: {
if (isBookmarked) {
dbHelper.removeFromBookmark(model.chapterNo, model.verseNo, model.verseNo, null);
diff --git a/app/src/main/java/com/quranapp/android/adapters/transl/ADPDownloadTransls.java b/app/src/main/java/com/quranapp/android/adapters/transl/ADPDownloadTransls.java
index 9a6a92bf..9997b99f 100644
--- a/app/src/main/java/com/quranapp/android/adapters/transl/ADPDownloadTransls.java
+++ b/app/src/main/java/com/quranapp/android/adapters/transl/ADPDownloadTransls.java
@@ -4,8 +4,6 @@
package com.quranapp.android.adapters.transl;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.content.Context;
import android.text.TextUtils;
import android.util.TypedValue;
@@ -13,10 +11,10 @@
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.recyclerview.widget.RecyclerView;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.Dimen;
import com.quranapp.android.R;
@@ -160,7 +158,8 @@ private void createMiniInfos(LinearLayout container, List miniInfos) {
miniInfoView.setBackgroundResource(R.drawable.dr_bg_primary_cornered);
miniInfoView.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START);
miniInfoView.setTextColor(ContextKt.color(ctx, R.color.white));
- miniInfoView.setTextSize(TypedValue.COMPLEX_UNIT_PX, ContextKt.getDimenPx(ctx, R.dimen.dmnCommonSize2_5));
+ miniInfoView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
+ ContextKt.getDimenPx(ctx, R.dimen.dmnCommonSize2_5));
ViewPaddingKt.updatePaddingVertical(miniInfoView, Dimen.dp2px(ctx, 2));
ViewPaddingKt.updatePaddingHorizontal(miniInfoView, Dimen.dp2px(ctx, 5));
diff --git a/app/src/main/java/com/quranapp/android/adapters/transl/ADPTranslBase.java b/app/src/main/java/com/quranapp/android/adapters/transl/ADPTranslBase.java
index f73faa5d..f0e864b5 100644
--- a/app/src/main/java/com/quranapp/android/adapters/transl/ADPTranslBase.java
+++ b/app/src/main/java/com/quranapp/android/adapters/transl/ADPTranslBase.java
@@ -4,18 +4,16 @@
package com.quranapp.android.adapters.transl;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.content.Context;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.Dimen;
import com.quranapp.android.R;
diff --git a/app/src/main/java/com/quranapp/android/adapters/transl/ADPTransls.java b/app/src/main/java/com/quranapp/android/adapters/transl/ADPTransls.java
index 82e293ee..b0e65625 100644
--- a/app/src/main/java/com/quranapp/android/adapters/transl/ADPTransls.java
+++ b/app/src/main/java/com/quranapp/android/adapters/transl/ADPTransls.java
@@ -8,12 +8,10 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.peacedesign.android.utils.ColorUtils;
-import com.quranapp.android.widgets.checkbox.PeaceCheckBox;
import com.peacedesign.android.widget.dialog.base.PeaceDialog;
import com.quranapp.android.R;
import com.quranapp.android.components.quran.subcomponents.QuranTranslBookInfo;
@@ -24,6 +22,7 @@
import com.quranapp.android.interfaceUtils.OnTranslSelectionChangeListener;
import com.quranapp.android.utils.reader.TranslUtils;
import com.quranapp.android.utils.reader.factory.QuranTranslFactory;
+import com.quranapp.android.widgets.checkbox.PeaceCheckBox;
import java.util.List;
@@ -80,7 +79,8 @@ public void bind(TranslModel translModel) {
return;
}
- mBinding.checkbox.setTexts(translModel.getBookInfo().getBookName(), translModel.getBookInfo().getAuthorName());
+ mBinding.checkbox.setTexts(translModel.getBookInfo().getBookName(),
+ translModel.getBookInfo().getAuthorName());
mBinding.checkbox.setChecked(translModel.isChecked());
mBinding.checkbox.setBeforeCheckChangeListener((button, newState) -> {
@@ -106,7 +106,7 @@ private void deleteTranslCheckPoint(Context ctx, TranslModel translModel) {
PeaceDialog.Builder builder = PeaceDialog.newBuilder(ctx);
builder.setTitle(R.string.strTitleTranslDelete);
builder.setMessage(
- bookInfo.getBookName() + "\n" + bookInfo.getAuthorName() + "\n\n" + "You will need to download it again.");
+ bookInfo.getBookName() + "\n" + bookInfo.getAuthorName() + "\n\n" + "You will need to download it again.");
builder.setTitleTextAlignment(View.TEXT_ALIGNMENT_CENTER);
builder.setMessageTextAlignment(View.TEXT_ALIGNMENT_CENTER);
builder.setNeutralButton(R.string.strLabelCancel, null);
diff --git a/app/src/main/java/com/quranapp/android/adapters/utility/SpinnerAdapter2.java b/app/src/main/java/com/quranapp/android/adapters/utility/SpinnerAdapter2.java
index f82a2e2b..bbb52f0d 100644
--- a/app/src/main/java/com/quranapp/android/adapters/utility/SpinnerAdapter2.java
+++ b/app/src/main/java/com/quranapp/android/adapters/utility/SpinnerAdapter2.java
@@ -6,7 +6,6 @@
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
diff --git a/app/src/main/java/com/quranapp/android/adapters/utility/TopicFilterSpinnerAdapter.java b/app/src/main/java/com/quranapp/android/adapters/utility/TopicFilterSpinnerAdapter.java
index 6de57294..14cab180 100644
--- a/app/src/main/java/com/quranapp/android/adapters/utility/TopicFilterSpinnerAdapter.java
+++ b/app/src/main/java/com/quranapp/android/adapters/utility/TopicFilterSpinnerAdapter.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import com.peacedesign.android.utils.Dimen;
@@ -20,8 +19,8 @@ public TopicFilterSpinnerAdapter(@NonNull Context context, int itemLytRes, int t
@Override
public View getDropDownView(int position, View convertView, @NonNull ViewGroup parent) {
View view = super.getDropDownView(position, convertView, parent);
- ViewPaddingKt.updatePaddingVertical(view, Dimen.dp2px(parent.getContext(),10));
- ViewPaddingKt.updatePaddingHorizontal(view, Dimen.dp2px(parent.getContext(),15));
+ ViewPaddingKt.updatePaddingVertical(view, Dimen.dp2px(parent.getContext(), 10));
+ ViewPaddingKt.updatePaddingHorizontal(view, Dimen.dp2px(parent.getContext(), 15));
return view;
}
}
diff --git a/app/src/main/java/com/quranapp/android/api/ApiConfig.kt b/app/src/main/java/com/quranapp/android/api/ApiConfig.kt
index 9403cf45..d6cafc9b 100644
--- a/app/src/main/java/com/quranapp/android/api/ApiConfig.kt
+++ b/app/src/main/java/com/quranapp/android/api/ApiConfig.kt
@@ -10,5 +10,6 @@ object ApiConfig {
const val GITHUB_ROOT_URL = "https://raw.githubusercontent.com/AlfaazPlus/QuranApp/master/"
const val GITHUB_REPOSITORY_URL = "https://github.com/AlfaazPlus/QuranApp"
const val GITHUB_ISSUES_BUG_REPORT_URL = "https://github.com/AlfaazPlus/QuranApp/issues/new?template=bug_report.yml"
- const val GITHUB_ISSUES_VERSE_REPORT_URL = "https://github.com/AlfaazPlus/QuranApp/issues/new?template=verse_report.yml"
-}
\ No newline at end of file
+ const val GITHUB_ISSUES_VERSE_REPORT_URL =
+ "https://github.com/AlfaazPlus/QuranApp/issues/new?template=verse_report.yml"
+}
diff --git a/app/src/main/java/com/quranapp/android/api/GithubApi.kt b/app/src/main/java/com/quranapp/android/api/GithubApi.kt
index 8812895e..9f06902d 100644
--- a/app/src/main/java/com/quranapp/android/api/GithubApi.kt
+++ b/app/src/main/java/com/quranapp/android/api/GithubApi.kt
@@ -27,8 +27,11 @@ interface GithubApi {
suspend fun getQuranScript(@Path("filename") filename: String): ResponseBody
@GET("inventory/fonts/{scriptKey}/{filename}")
- suspend fun getKFQPCFont(@Path("scriptKey") scriptKey: String, @Path("filename") filename: String): ResponseBody
+ suspend fun getKFQPCFont(
+ @Path("scriptKey") scriptKey: String,
+ @Path("filename") filename: String
+ ): ResponseBody
@GET("inventory/recitations/available_recitations_info.json")
suspend fun getAvailableRecitations(): ResponseBody
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/api/JsonHelper.kt b/app/src/main/java/com/quranapp/android/api/JsonHelper.kt
index 45144c6f..9c228051 100644
--- a/app/src/main/java/com/quranapp/android/api/JsonHelper.kt
+++ b/app/src/main/java/com/quranapp/android/api/JsonHelper.kt
@@ -8,4 +8,4 @@ object JsonHelper {
encodeDefaults = true
coerceInputValues = true
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/api/RetrofitInstance.kt b/app/src/main/java/com/quranapp/android/api/RetrofitInstance.kt
index 17dd139e..7a71a6bf 100644
--- a/app/src/main/java/com/quranapp/android/api/RetrofitInstance.kt
+++ b/app/src/main/java/com/quranapp/android/api/RetrofitInstance.kt
@@ -7,7 +7,6 @@ import okhttp3.MediaType
import okhttp3.OkHttpClient
import retrofit2.Retrofit
-
@OptIn(ExperimentalSerializationApi::class)
object RetrofitInstance {
private val client: OkHttpClient = OkHttpClient.Builder()
@@ -27,4 +26,4 @@ object RetrofitInstance {
.build()
.create(GithubApi::class.java)
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/api/models/AppUrls.kt b/app/src/main/java/com/quranapp/android/api/models/AppUrls.kt
index 0068f01b..ec0ba487 100644
--- a/app/src/main/java/com/quranapp/android/api/models/AppUrls.kt
+++ b/app/src/main/java/com/quranapp/android/api/models/AppUrls.kt
@@ -8,5 +8,5 @@ data class AppUrls(
@SerialName("privacy-policy") val privacyPolicy: String,
val about: String,
val help: String,
- val feedback: String,
-)
\ No newline at end of file
+ val feedback: String
+)
diff --git a/app/src/main/java/com/quranapp/android/api/models/AvailableRecitationsModel.kt b/app/src/main/java/com/quranapp/android/api/models/AvailableRecitationsModel.kt
index 1b607a84..e806cfb9 100644
--- a/app/src/main/java/com/quranapp/android/api/models/AvailableRecitationsModel.kt
+++ b/app/src/main/java/com/quranapp/android/api/models/AvailableRecitationsModel.kt
@@ -8,4 +8,4 @@ import kotlinx.serialization.Serializable
data class AvailableRecitationsModel(
@SerialName("url-info") val urlInfo: RecitationsCommonUrlInfoModel,
@SerialName("reciters") val reciters: List
-)
\ No newline at end of file
+)
diff --git a/app/src/main/java/com/quranapp/android/api/models/RecitationsCommonUrlInfoModel.kt b/app/src/main/java/com/quranapp/android/api/models/RecitationsCommonUrlInfoModel.kt
index 45a49226..f0f62e58 100644
--- a/app/src/main/java/com/quranapp/android/api/models/RecitationsCommonUrlInfoModel.kt
+++ b/app/src/main/java/com/quranapp/android/api/models/RecitationsCommonUrlInfoModel.kt
@@ -5,5 +5,5 @@ import kotlinx.serialization.Serializable
@Serializable
data class RecitationsCommonUrlInfoModel(
- @SerialName("common-host") val commonHost: String,
-)
\ No newline at end of file
+ @SerialName("common-host") val commonHost: String
+)
diff --git a/app/src/main/java/com/quranapp/android/api/models/ResourcesVersions.kt b/app/src/main/java/com/quranapp/android/api/models/ResourcesVersions.kt
index f5245333..1a82b9b1 100644
--- a/app/src/main/java/com/quranapp/android/api/models/ResourcesVersions.kt
+++ b/app/src/main/java/com/quranapp/android/api/models/ResourcesVersions.kt
@@ -7,5 +7,5 @@ import kotlinx.serialization.Serializable
data class ResourcesVersions(
@SerialName("urls") val urlsVersion: Long,
@SerialName("translations") val translationsVersion: Long,
- @SerialName("recitations") val recitationsVersion: Long,
-)
\ No newline at end of file
+ @SerialName("recitations") val recitationsVersion: Long
+)
diff --git a/app/src/main/java/com/quranapp/android/components/AppUpdate.kt b/app/src/main/java/com/quranapp/android/components/AppUpdate.kt
index 8175d774..d324f067 100644
--- a/app/src/main/java/com/quranapp/android/components/AppUpdate.kt
+++ b/app/src/main/java/com/quranapp/android/components/AppUpdate.kt
@@ -13,4 +13,4 @@ import kotlinx.serialization.Serializable
data class AppUpdate(
val version: Long,
@SerialName("updatePriority") val priority: Int
-)
\ No newline at end of file
+)
diff --git a/app/src/main/java/com/quranapp/android/components/AppUpdateInfo.kt b/app/src/main/java/com/quranapp/android/components/AppUpdateInfo.kt
index b873da5a..f02f141a 100644
--- a/app/src/main/java/com/quranapp/android/components/AppUpdateInfo.kt
+++ b/app/src/main/java/com/quranapp/android/components/AppUpdateInfo.kt
@@ -32,4 +32,4 @@ class AppUpdateInfo(private val ctx: Context) {
.sortedBy { it.priority }
return mostImportantUpdate.takeIf { it.isNotEmpty() }?.get(0) ?: AppUpdate(0, NONE)
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/components/ComponentBase.kt b/app/src/main/java/com/quranapp/android/components/ComponentBase.kt
index f4bed201..23149d7c 100644
--- a/app/src/main/java/com/quranapp/android/components/ComponentBase.kt
+++ b/app/src/main/java/com/quranapp/android/components/ComponentBase.kt
@@ -11,4 +11,4 @@ open class ComponentBase : Serializable {
@Transient
var obj: Any? = null
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/components/NotifModel.kt b/app/src/main/java/com/quranapp/android/components/NotifModel.kt
index 95211abd..45758e07 100644
--- a/app/src/main/java/com/quranapp/android/components/NotifModel.kt
+++ b/app/src/main/java/com/quranapp/android/components/NotifModel.kt
@@ -6,4 +6,4 @@ package com.quranapp.android.components
class NotifModel(val iconRes: Int, val title: String, val message: String, val date: String) {
var action: String? = null
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/components/ReferenceVerseItemModel.kt b/app/src/main/java/com/quranapp/android/components/ReferenceVerseItemModel.kt
index 03ce9e4f..5d164cd3 100644
--- a/app/src/main/java/com/quranapp/android/components/ReferenceVerseItemModel.kt
+++ b/app/src/main/java/com/quranapp/android/components/ReferenceVerseItemModel.kt
@@ -9,4 +9,4 @@ class ReferenceVerseItemModel(
val fromVerse: Int,
val toVerse: Int,
val titleText: String?
-)
\ No newline at end of file
+)
diff --git a/app/src/main/java/com/quranapp/android/components/ReferenceVerseModel.kt b/app/src/main/java/com/quranapp/android/components/ReferenceVerseModel.kt
index 77896ac6..eb8063f6 100644
--- a/app/src/main/java/com/quranapp/android/components/ReferenceVerseModel.kt
+++ b/app/src/main/java/com/quranapp/android/components/ReferenceVerseModel.kt
@@ -20,4 +20,4 @@ class ReferenceVerseModel(
override fun toString(): String {
return "showChaptersSugg:$showChaptersSugg, title: $title, desc: $desc, desc: $translSlugs, chapters: $chapters, verses: $verses"
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/components/bookmark/BookmarkModel.kt b/app/src/main/java/com/quranapp/android/components/bookmark/BookmarkModel.kt
index 3ae7c305..28fc8ffe 100644
--- a/app/src/main/java/com/quranapp/android/components/bookmark/BookmarkModel.kt
+++ b/app/src/main/java/com/quranapp/android/components/bookmark/BookmarkModel.kt
@@ -13,7 +13,7 @@ class BookmarkModel(
val chapterNo: Int,
val fromVerseNo: Int,
val toVerseNo: Int,
- val date: String?,
+ val date: String?
) {
var note: String? = null
@@ -64,11 +64,11 @@ class BookmarkModel(
if (other !is BookmarkModel) return false
return id == other.id &&
- chapterNo == other.chapterNo &&
- fromVerseNo == other.fromVerseNo &&
- toVerseNo == other.toVerseNo &&
- date == other.date &&
- note == other.note
+ chapterNo == other.chapterNo &&
+ fromVerseNo == other.fromVerseNo &&
+ toVerseNo == other.toVerseNo &&
+ date == other.date &&
+ note == other.note
}
override fun hashCode(): Int {
@@ -80,5 +80,4 @@ class BookmarkModel(
result = 31 * result + (note?.hashCode() ?: 0)
return result
}
-
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/components/editor/EditorBG.java b/app/src/main/java/com/quranapp/android/components/editor/EditorBG.java
index d6d44cf2..472b1ee2 100644
--- a/app/src/main/java/com/quranapp/android/components/editor/EditorBG.java
+++ b/app/src/main/java/com/quranapp/android/components/editor/EditorBG.java
@@ -4,13 +4,11 @@
package com.quranapp.android.components.editor;
-import static com.quranapp.android.components.editor.VerseEditor.BRIGHTNESS_DARK;
-
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
-
import androidx.appcompat.content.res.AppCompatResources;
+import static com.quranapp.android.components.editor.VerseEditor.BRIGHTNESS_DARK;
import com.quranapp.android.R;
diff --git a/app/src/main/java/com/quranapp/android/components/editor/EditorTemplate.java b/app/src/main/java/com/quranapp/android/components/editor/EditorTemplate.java
index 855ee66b..897d7799 100644
--- a/app/src/main/java/com/quranapp/android/components/editor/EditorTemplate.java
+++ b/app/src/main/java/com/quranapp/android/components/editor/EditorTemplate.java
@@ -5,7 +5,6 @@
package com.quranapp.android.components.editor;
import android.graphics.Color;
-
import androidx.annotation.DrawableRes;
import com.quranapp.android.R;
diff --git a/app/src/main/java/com/quranapp/android/components/quran/Quran.java b/app/src/main/java/com/quranapp/android/components/quran/Quran.java
index 16b57040..fb9bdafc 100644
--- a/app/src/main/java/com/quranapp/android/components/quran/Quran.java
+++ b/app/src/main/java/com/quranapp/android/components/quran/Quran.java
@@ -1,7 +1,6 @@
package com.quranapp.android.components.quran;
import android.content.Context;
-
import androidx.annotation.Nullable;
import com.quranapp.android.components.quran.subcomponents.Chapter;
diff --git a/app/src/main/java/com/quranapp/android/components/quran/QuranDua.kt b/app/src/main/java/com/quranapp/android/components/quran/QuranDua.kt
index b7461c02..83f99586 100644
--- a/app/src/main/java/com/quranapp/android/components/quran/QuranDua.kt
+++ b/app/src/main/java/com/quranapp/android/components/quran/QuranDua.kt
@@ -37,8 +37,10 @@ class QuranDua(
resultReadyCallback: OnResultReadyCallback
) {
QuranDuaParser.parseDua(
- context, quranMeta, sQuranProphetRef
+ context,
+ quranMeta,
+ sQuranProphetRef
) { resultReadyCallback.onReady(sQuranProphetRef.get()) }
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/components/quran/QuranMeta.java b/app/src/main/java/com/quranapp/android/components/quran/QuranMeta.java
index 44e59338..1b1756d6 100644
--- a/app/src/main/java/com/quranapp/android/components/quran/QuranMeta.java
+++ b/app/src/main/java/com/quranapp/android/components/quran/QuranMeta.java
@@ -2,7 +2,6 @@
import android.content.Context;
import android.util.SparseArray;
-
import androidx.annotation.NonNull;
import com.quranapp.android.R;
diff --git a/app/src/main/java/com/quranapp/android/components/quran/QuranProphet.java b/app/src/main/java/com/quranapp/android/components/quran/QuranProphet.java
index 03b8bd0c..52ad9db2 100644
--- a/app/src/main/java/com/quranapp/android/components/quran/QuranProphet.java
+++ b/app/src/main/java/com/quranapp/android/components/quran/QuranProphet.java
@@ -1,7 +1,6 @@
package com.quranapp.android.components.quran;
import android.content.Context;
-
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
@@ -33,7 +32,7 @@ public static void prepareInstance(Context context, QuranMeta quranMeta, OnResul
private static void prepare(Context context, QuranMeta quranMeta, OnResultReadyCallback resultReadyCallback) {
QuranProphetParser.parseProphet(context, quranMeta, sQuranProphetRef,
- () -> resultReadyCallback.onReady(sQuranProphetRef.get()));
+ () -> resultReadyCallback.onReady(sQuranProphetRef.get()));
}
@@ -62,8 +61,9 @@ public static class Prophet implements Serializable {
@NonNull
@Override
public String toString() {
- return MessageFormat.format("Prophet: {0} ({1}) {2} : [order={3}, iconRes={4}]", nameTrans, nameEn, honorific, order,
- iconRes);
+ return MessageFormat.format("Prophet: {0} ({1}) {2} : [order={3}, iconRes={4}]", nameTrans, nameEn,
+ honorific, order,
+ iconRes);
}
}
}
diff --git a/app/src/main/java/com/quranapp/android/components/quran/QuranTopic.java b/app/src/main/java/com/quranapp/android/components/quran/QuranTopic.java
index 3c07e9aa..79fa0833 100644
--- a/app/src/main/java/com/quranapp/android/components/quran/QuranTopic.java
+++ b/app/src/main/java/com/quranapp/android/components/quran/QuranTopic.java
@@ -1,7 +1,6 @@
package com.quranapp.android.components.quran;
import android.content.Context;
-
import androidx.annotation.NonNull;
import com.quranapp.android.interfaceUtils.OnResultReadyCallback;
@@ -33,7 +32,8 @@ public static void prepareInstance(Context context, QuranMeta quranMeta, OnResul
}
private static void prepare(Context context, QuranMeta quranMeta, OnResultReadyCallback resultReadyCallback) {
- QuranTopicParser.parseTopics(context, quranMeta, sQuranTopicRef, () -> resultReadyCallback.onReady(sQuranTopicRef.get()));
+ QuranTopicParser.parseTopics(context, quranMeta, sQuranTopicRef,
+ () -> resultReadyCallback.onReady(sQuranTopicRef.get()));
}
public void setAvailableAlphabets(Character[] availableAlphabets) {
@@ -77,7 +77,7 @@ public Map getTopics() {
public static class Topic implements Serializable {
public int id;
- public boolean isFeatured = false;
+ public boolean isFeatured;
public String name;
/**
* Maybe empty or null, Separated by comma if multiple
@@ -97,10 +97,10 @@ public static class Topic implements Serializable {
@Override
public String toString() {
return "Topic{" +
- "id=" + id +
- ", name='" + name + '\'' +
- ", verses=" + verses +
- '}';
+ "id=" + id +
+ ", name='" + name + '\'' +
+ ", verses=" + verses +
+ '}';
}
}
}
diff --git a/app/src/main/java/com/quranapp/android/components/quran/subcomponents/Chapter.java b/app/src/main/java/com/quranapp/android/components/quran/subcomponents/Chapter.java
index 26cafba1..4521b0a0 100644
--- a/app/src/main/java/com/quranapp/android/components/quran/subcomponents/Chapter.java
+++ b/app/src/main/java/com/quranapp/android/components/quran/subcomponents/Chapter.java
@@ -69,7 +69,7 @@ public int getCurrentVerseNo() {
}
public void setCurrentVerseNo(int verseNo) {
- this.currentVerseNo = verseNo;
+ currentVerseNo = verseNo;
}
public ArrayList getVerses() {
diff --git a/app/src/main/java/com/quranapp/android/components/quran/subcomponents/Footnote.kt b/app/src/main/java/com/quranapp/android/components/quran/subcomponents/Footnote.kt
index 55000e4f..3beface7 100644
--- a/app/src/main/java/com/quranapp/android/components/quran/subcomponents/Footnote.kt
+++ b/app/src/main/java/com/quranapp/android/components/quran/subcomponents/Footnote.kt
@@ -38,4 +38,4 @@ class Footnote() : Serializable {
override fun toString(): String {
return "Footnote{number=$chapterNo:$verseNo:$number, text='$text'}"
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/components/quran/subcomponents/QuranTranslBookInfo.kt b/app/src/main/java/com/quranapp/android/components/quran/subcomponents/QuranTranslBookInfo.kt
index 530d53e0..86dcf559 100644
--- a/app/src/main/java/com/quranapp/android/components/quran/subcomponents/QuranTranslBookInfo.kt
+++ b/app/src/main/java/com/quranapp/android/components/quran/subcomponents/QuranTranslBookInfo.kt
@@ -59,5 +59,4 @@ class QuranTranslBookInfo(val slug: String) : Serializable {
result = 31 * result + isUrdu.hashCode()
return result
}
-
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/components/quran/subcomponents/Translation.kt b/app/src/main/java/com/quranapp/android/components/quran/subcomponents/Translation.kt
index 9afa68e1..dd5fd4a9 100644
--- a/app/src/main/java/com/quranapp/android/components/quran/subcomponents/Translation.kt
+++ b/app/src/main/java/com/quranapp/android/components/quran/subcomponents/Translation.kt
@@ -44,4 +44,4 @@ class Translation() : Serializable {
override fun toString(): String {
return "Translation{verse=$chapterNo:$verseNo, text='$text'}"
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/components/quran/subcomponents/Verse.java b/app/src/main/java/com/quranapp/android/components/quran/subcomponents/Verse.java
index 3775ba4f..47dcb62e 100644
--- a/app/src/main/java/com/quranapp/android/components/quran/subcomponents/Verse.java
+++ b/app/src/main/java/com/quranapp/android/components/quran/subcomponents/Verse.java
@@ -1,7 +1,6 @@
package com.quranapp.android.components.quran.subcomponents;
import android.content.Context;
-
import androidx.annotation.NonNull;
import com.quranapp.android.utils.verse.VerseUtils;
diff --git a/app/src/main/java/com/quranapp/android/components/readHistory/ReadHistoryModel.kt b/app/src/main/java/com/quranapp/android/components/readHistory/ReadHistoryModel.kt
index 598fdb7a..ced2cdbf 100644
--- a/app/src/main/java/com/quranapp/android/components/readHistory/ReadHistoryModel.kt
+++ b/app/src/main/java/com/quranapp/android/components/readHistory/ReadHistoryModel.kt
@@ -8,11 +8,20 @@ class ReadHistoryModel(
val chapterNo: Int,
val fromVerseNo: Int,
val toVerseNo: Int,
- val date: String?,
+ val date: String?
) {
fun copy(): ReadHistoryModel {
- return ReadHistoryModel(id, readType, readerStyle, juzNo, chapterNo, fromVerseNo, toVerseNo, date)
+ return ReadHistoryModel(
+ id,
+ readType,
+ readerStyle,
+ juzNo,
+ chapterNo,
+ fromVerseNo,
+ toVerseNo,
+ date
+ )
}
override fun equals(other: Any?): Boolean {
@@ -42,5 +51,4 @@ class ReadHistoryModel(
result = 31 * result + (date?.hashCode() ?: 0)
return result
}
-
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/components/reader/ReaderRecyclerItemModel.java b/app/src/main/java/com/quranapp/android/components/reader/ReaderRecyclerItemModel.java
index a6ba335a..7fd5ecaa 100644
--- a/app/src/main/java/com/quranapp/android/components/reader/ReaderRecyclerItemModel.java
+++ b/app/src/main/java/com/quranapp/android/components/reader/ReaderRecyclerItemModel.java
@@ -1,5 +1,6 @@
package com.quranapp.android.components.reader;
+import androidx.annotation.NonNull;
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.BISMILLAH;
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.CHAPTER_INFO;
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.CHAPTER_TITLE;
@@ -9,8 +10,6 @@
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.READER_PAGE;
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.VERSE;
-import androidx.annotation.NonNull;
-
import com.quranapp.android.components.quran.subcomponents.Verse;
import com.quranapp.android.reader_managers.ReaderParams;
diff --git a/app/src/main/java/com/quranapp/android/components/recitation/RecitationModel.kt b/app/src/main/java/com/quranapp/android/components/recitation/RecitationModel.kt
index 39d30973..747233b8 100644
--- a/app/src/main/java/com/quranapp/android/components/recitation/RecitationModel.kt
+++ b/app/src/main/java/com/quranapp/android/components/recitation/RecitationModel.kt
@@ -29,5 +29,4 @@ data class RecitationModel(
override fun hashCode(): Int {
return slug.hashCode()
}
-
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/components/search/ChapterJumpModel.kt b/app/src/main/java/com/quranapp/android/components/search/ChapterJumpModel.kt
index ab3a7c99..d63ec997 100644
--- a/app/src/main/java/com/quranapp/android/components/search/ChapterJumpModel.kt
+++ b/app/src/main/java/com/quranapp/android/components/search/ChapterJumpModel.kt
@@ -5,4 +5,4 @@ class ChapterJumpModel(
val textSerial: String,
val name: String,
val nameTranslation: String
-) : SearchResultModelBase()
\ No newline at end of file
+) : SearchResultModelBase()
diff --git a/app/src/main/java/com/quranapp/android/components/search/VerseResultCountModel.kt b/app/src/main/java/com/quranapp/android/components/search/VerseResultCountModel.kt
index f7b3646f..fde4ab36 100644
--- a/app/src/main/java/com/quranapp/android/components/search/VerseResultCountModel.kt
+++ b/app/src/main/java/com/quranapp/android/components/search/VerseResultCountModel.kt
@@ -5,4 +5,4 @@ import com.quranapp.android.components.quran.subcomponents.QuranTranslBookInfo
class VerseResultCountModel(val bookInfo: QuranTranslBookInfo?) : SearchResultModelBase() {
@JvmField
var resultCount = 0
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/components/search/VerseResultModel.java b/app/src/main/java/com/quranapp/android/components/search/VerseResultModel.java
index 3f19bf26..97bee400 100644
--- a/app/src/main/java/com/quranapp/android/components/search/VerseResultModel.java
+++ b/app/src/main/java/com/quranapp/android/components/search/VerseResultModel.java
@@ -1,7 +1,6 @@
package com.quranapp.android.components.search;
import android.view.View;
-
import androidx.annotation.NonNull;
import com.quranapp.android.components.quran.subcomponents.Translation;
diff --git a/app/src/main/java/com/quranapp/android/components/transls/TranslBaseModel.kt b/app/src/main/java/com/quranapp/android/components/transls/TranslBaseModel.kt
index bf50f60d..bd3f899f 100644
--- a/app/src/main/java/com/quranapp/android/components/transls/TranslBaseModel.kt
+++ b/app/src/main/java/com/quranapp/android/components/transls/TranslBaseModel.kt
@@ -7,4 +7,4 @@ import java.io.Serializable
open class TranslBaseModel : Serializable {
var position: Int = -1
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/components/transls/TranslModel.kt b/app/src/main/java/com/quranapp/android/components/transls/TranslModel.kt
index 9545981e..227df1d6 100644
--- a/app/src/main/java/com/quranapp/android/components/transls/TranslModel.kt
+++ b/app/src/main/java/com/quranapp/android/components/transls/TranslModel.kt
@@ -35,4 +35,4 @@ class TranslModel(val bookInfo: QuranTranslBookInfo) : TranslBaseModel(), Serial
override fun toString(): String {
return "TranslModel(bookInfo=$bookInfo, isChecked=$isChecked, isDownloading=$isDownloading, miniInfos=$miniInfos)"
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/components/transls/TranslTitleModel.kt b/app/src/main/java/com/quranapp/android/components/transls/TranslTitleModel.kt
index 85f1c64a..5efd0c85 100644
--- a/app/src/main/java/com/quranapp/android/components/transls/TranslTitleModel.kt
+++ b/app/src/main/java/com/quranapp/android/components/transls/TranslTitleModel.kt
@@ -3,4 +3,4 @@
*/
package com.quranapp.android.components.transls
-class TranslTitleModel(val langCode: String, var langName: String?) : TranslBaseModel()
\ No newline at end of file
+class TranslTitleModel(val langCode: String, var langName: String?) : TranslBaseModel()
diff --git a/app/src/main/java/com/quranapp/android/components/transls/TranslationGroupModel.kt b/app/src/main/java/com/quranapp/android/components/transls/TranslationGroupModel.kt
index e8e77394..28e16ebb 100644
--- a/app/src/main/java/com/quranapp/android/components/transls/TranslationGroupModel.kt
+++ b/app/src/main/java/com/quranapp/android/components/transls/TranslationGroupModel.kt
@@ -11,4 +11,4 @@ class TranslationGroupModel(
val transls: List
) {
var view: ViewGroup? = null
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/db/bookmark/BookmarkDBHelper.java b/app/src/main/java/com/quranapp/android/db/bookmark/BookmarkDBHelper.java
index 29416266..3bc3ec44 100644
--- a/app/src/main/java/com/quranapp/android/db/bookmark/BookmarkDBHelper.java
+++ b/app/src/main/java/com/quranapp/android/db/bookmark/BookmarkDBHelper.java
@@ -1,13 +1,5 @@
package com.quranapp.android.db.bookmark;
-import static com.quranapp.android.db.bookmark.BookmarkContract.BookmarkEntry.COL_CHAPTER_NO;
-import static com.quranapp.android.db.bookmark.BookmarkContract.BookmarkEntry.COL_DATETIME;
-import static com.quranapp.android.db.bookmark.BookmarkContract.BookmarkEntry.COL_FROM_VERSE_NO;
-import static com.quranapp.android.db.bookmark.BookmarkContract.BookmarkEntry.COL_NOTE;
-import static com.quranapp.android.db.bookmark.BookmarkContract.BookmarkEntry.COL_TO_VERSE_NO;
-import static com.quranapp.android.db.bookmark.BookmarkContract.BookmarkEntry.TABLE_NAME;
-import static com.quranapp.android.db.bookmark.BookmarkContract.BookmarkEntry._ID;
-
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
@@ -15,8 +7,14 @@
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;
-
import androidx.annotation.NonNull;
+import static com.quranapp.android.db.bookmark.BookmarkContract.BookmarkEntry.COL_CHAPTER_NO;
+import static com.quranapp.android.db.bookmark.BookmarkContract.BookmarkEntry.COL_DATETIME;
+import static com.quranapp.android.db.bookmark.BookmarkContract.BookmarkEntry.COL_FROM_VERSE_NO;
+import static com.quranapp.android.db.bookmark.BookmarkContract.BookmarkEntry.COL_NOTE;
+import static com.quranapp.android.db.bookmark.BookmarkContract.BookmarkEntry.COL_TO_VERSE_NO;
+import static com.quranapp.android.db.bookmark.BookmarkContract.BookmarkEntry.TABLE_NAME;
+import static com.quranapp.android.db.bookmark.BookmarkContract.BookmarkEntry._ID;
import com.quranapp.android.R;
import com.quranapp.android.components.bookmark.BookmarkModel;
@@ -40,12 +38,12 @@ public BookmarkDBHelper(@NonNull Context context) {
@Override
public void onCreate(SQLiteDatabase DB) {
final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" +
- _ID + " INTEGER PRIMARY KEY," +
- COL_CHAPTER_NO + " INTEGER," +
- COL_FROM_VERSE_NO + " INTEGER," +
- COL_TO_VERSE_NO + " INTEGER," +
- COL_DATETIME + " TEXT," +
- COL_NOTE + " TEXT)";
+ _ID + " INTEGER PRIMARY KEY," +
+ COL_CHAPTER_NO + " INTEGER," +
+ COL_FROM_VERSE_NO + " INTEGER," +
+ COL_TO_VERSE_NO + " INTEGER," +
+ COL_DATETIME + " TEXT," +
+ COL_NOTE + " TEXT)";
DB.execSQL(CREATE_TABLE);
}
@@ -172,9 +170,9 @@ public boolean isBookmarked(int chapterNo, int fromVerse, int toVerse) {
String selection = DBUtils.createDBSelection(COL_CHAPTER_NO, COL_FROM_VERSE_NO, COL_TO_VERSE_NO);
String[] selectionArgs = {
- String.valueOf(chapterNo),
- String.valueOf(fromVerse),
- String.valueOf(toVerse)
+ String.valueOf(chapterNo),
+ String.valueOf(fromVerse),
+ String.valueOf(toVerse)
};
long count = DatabaseUtils.queryNumEntries(db, TABLE_NAME, selection, selectionArgs);
diff --git a/app/src/main/java/com/quranapp/android/db/readHistory/ReadHistoryDBHelper.java b/app/src/main/java/com/quranapp/android/db/readHistory/ReadHistoryDBHelper.java
index 185b36f4..1e308dce 100644
--- a/app/src/main/java/com/quranapp/android/db/readHistory/ReadHistoryDBHelper.java
+++ b/app/src/main/java/com/quranapp/android/db/readHistory/ReadHistoryDBHelper.java
@@ -1,5 +1,12 @@
package com.quranapp.android.db.readHistory;
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.database.DatabaseUtils;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+import androidx.annotation.NonNull;
import static com.quranapp.android.db.readHistory.ReadHistoryContract.ReadHistoryEntry.COL_CHAPTER_NO;
import static com.quranapp.android.db.readHistory.ReadHistoryContract.ReadHistoryEntry.COL_DATETIME;
import static com.quranapp.android.db.readHistory.ReadHistoryContract.ReadHistoryEntry.COL_FROM_VERSE_NO;
@@ -11,15 +18,6 @@
import static com.quranapp.android.db.readHistory.ReadHistoryContract.ReadHistoryEntry._ID;
import static java.lang.String.valueOf;
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.Cursor;
-import android.database.DatabaseUtils;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteOpenHelper;
-
-import androidx.annotation.NonNull;
-
import com.quranapp.android.components.readHistory.ReadHistoryModel;
import com.quranapp.android.interfaceUtils.OnResultReadyCallback;
import com.quranapp.android.utils.univ.DBUtils;
@@ -40,14 +38,14 @@ public ReadHistoryDBHelper(@NonNull Context context) {
@Override
public void onCreate(SQLiteDatabase DB) {
final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" +
- _ID + " INTEGER PRIMARY KEY," +
- COL_READ_TYPE + " INTEGER," +
- COL_READER_STYLE + " INTEGER," +
- COL_JUZ_NO + " INTEGER," +
- COL_CHAPTER_NO + " INTEGER," +
- COL_FROM_VERSE_NO + " INTEGER," +
- COL_TO_VERSE_NO + " INTEGER," +
- COL_DATETIME + " TEXT)";
+ _ID + " INTEGER PRIMARY KEY," +
+ COL_READ_TYPE + " INTEGER," +
+ COL_READER_STYLE + " INTEGER," +
+ COL_JUZ_NO + " INTEGER," +
+ COL_CHAPTER_NO + " INTEGER," +
+ COL_FROM_VERSE_NO + " INTEGER," +
+ COL_TO_VERSE_NO + " INTEGER," +
+ COL_DATETIME + " TEXT)";
DB.execSQL(CREATE_TABLE);
}
@@ -66,48 +64,52 @@ public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
private void removeOldHistories() {
SQLiteDatabase db = getWritableDatabase();
db.execSQL("DELETE FROM " + TABLE_NAME + "" +
- " WHERE " + _ID + " IN " +
- "(SELECT " + _ID + " FROM " + TABLE_NAME + " ORDER BY " + _ID + " DESC LIMIT -1 OFFSET " + HISTORY_LIMIT + ");");
+ " WHERE " + _ID + " IN " +
+ "(SELECT " + _ID + " FROM " + TABLE_NAME + " ORDER BY " + _ID + " DESC LIMIT -1 OFFSET " + HISTORY_LIMIT + ");");
}
private boolean isAlreadyAdded(int readType, int readStyle, int juzNo, int chapterNo, int fromVerse, int toVerse) {
SQLiteDatabase db = getReadableDatabase();
String selection = DBUtils.createDBSelection(COL_READ_TYPE, COL_READER_STYLE, COL_JUZ_NO,
- COL_CHAPTER_NO, COL_FROM_VERSE_NO, COL_TO_VERSE_NO);
+ COL_CHAPTER_NO, COL_FROM_VERSE_NO, COL_TO_VERSE_NO);
String[] selectionArgs = {
- valueOf(readType),
- valueOf(readStyle),
- valueOf(juzNo),
- valueOf(chapterNo),
- valueOf(fromVerse),
- valueOf(toVerse)
+ valueOf(readType),
+ valueOf(readStyle),
+ valueOf(juzNo),
+ valueOf(chapterNo),
+ valueOf(fromVerse),
+ valueOf(toVerse)
};
return DatabaseUtils.queryNumEntries(db, TABLE_NAME, selection, selectionArgs) > 0;
}
- private void deleteHistory(SQLiteDatabase db, int readType, int readStyle, int juzNo,
- int chapterNo, int fromVerse, int toVerse) {
+ private void deleteHistory(
+ SQLiteDatabase db, int readType, int readStyle, int juzNo,
+ int chapterNo, int fromVerse, int toVerse
+ ) {
if (db == null) {
db = getWritableDatabase();
}
String where = DBUtils.createDBSelection(COL_READ_TYPE, COL_READER_STYLE, COL_JUZ_NO,
- COL_CHAPTER_NO, COL_FROM_VERSE_NO, COL_TO_VERSE_NO);
+ COL_CHAPTER_NO, COL_FROM_VERSE_NO, COL_TO_VERSE_NO);
String[] whereArgs = {
- valueOf(readType),
- valueOf(readStyle),
- valueOf(juzNo),
- valueOf(chapterNo),
- valueOf(fromVerse),
- valueOf(toVerse)
+ valueOf(readType),
+ valueOf(readStyle),
+ valueOf(juzNo),
+ valueOf(chapterNo),
+ valueOf(fromVerse),
+ valueOf(toVerse)
};
db.delete(TABLE_NAME, where, whereArgs);
}
- public void addToHistory(int readType, int readStyle, int juzNo, int chapterNo, int fromVerse, int toVerse,
- OnResultReadyCallback callback) {
+ public void addToHistory(
+ int readType, int readStyle, int juzNo, int chapterNo, int fromVerse, int toVerse,
+ OnResultReadyCallback callback
+ ) {
SQLiteDatabase db = getWritableDatabase();
@@ -131,7 +133,8 @@ public void addToHistory(int readType, int readStyle, int juzNo, int chapterNo,
removeOldHistories();
if (inserted && callback != null) {
- callback.onReady(new ReadHistoryModel(rowId, readType, readStyle, juzNo, chapterNo, fromVerse, toVerse, dateTime));
+ callback.onReady(
+ new ReadHistoryModel(rowId, readType, readStyle, juzNo, chapterNo, fromVerse, toVerse, dateTime));
}
}
@@ -155,7 +158,8 @@ public List getAllHistories(int limit) {
int toVerseNo = cursor.getInt(cursor.getColumnIndexOrThrow(COL_TO_VERSE_NO));
String date = cursor.getString(cursor.getColumnIndexOrThrow(COL_DATETIME));
- ReadHistoryModel model = new ReadHistoryModel(id, readType, readerStyle, juzNo, chapterNo, fromVerseNo, toVerseNo, date);
+ ReadHistoryModel model = new ReadHistoryModel(id, readType, readerStyle, juzNo, chapterNo, fromVerseNo,
+ toVerseNo, date);
verses.add(model);
}
cursor.close();
diff --git a/app/src/main/java/com/quranapp/android/db/recitation/RecitationDBHelper.java b/app/src/main/java/com/quranapp/android/db/recitation/RecitationDBHelper.java
index 079c9497..50ad074e 100644
--- a/app/src/main/java/com/quranapp/android/db/recitation/RecitationDBHelper.java
+++ b/app/src/main/java/com/quranapp/android/db/recitation/RecitationDBHelper.java
@@ -1,5 +1,9 @@
package com.quranapp.android.db.recitation;
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteOpenHelper;
+import androidx.annotation.NonNull;
import static com.quranapp.android.db.recitation.RecitationContract.RecitationEntry.COL_IS_PREMIUM;
import static com.quranapp.android.db.recitation.RecitationContract.RecitationEntry.COL_RECITER;
import static com.quranapp.android.db.recitation.RecitationContract.RecitationEntry.COL_SLUG;
@@ -9,12 +13,6 @@
import static com.quranapp.android.db.recitation.RecitationContract.RecitationEntry.TABLE_NAME;
import static com.quranapp.android.db.recitation.RecitationContract.RecitationEntry._ID;
-import android.content.Context;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteOpenHelper;
-
-import androidx.annotation.NonNull;
-
public class RecitationDBHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "Recitation.db";
public static final int DB_VERSION = 1;
@@ -27,13 +25,13 @@ public RecitationDBHelper(@NonNull Context context) {
@Override
public void onCreate(SQLiteDatabase DB) {
final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" +
- _ID + " INTEGER PRIMARY KEY," +
- COL_SLUG + " TEXT," +
- COL_RECITER + " TEXT," +
- COL_STYLE + " TEXT," +
- COL_URL_HOST + " TEXT," +
- COL_URL_PATH + " TEXT," +
- COL_IS_PREMIUM + " BOOLEAN)";
+ _ID + " INTEGER PRIMARY KEY," +
+ COL_SLUG + " TEXT," +
+ COL_RECITER + " TEXT," +
+ COL_STYLE + " TEXT," +
+ COL_URL_HOST + " TEXT," +
+ COL_URL_PATH + " TEXT," +
+ COL_IS_PREMIUM + " BOOLEAN)";
DB.execSQL(CREATE_TABLE);
}
diff --git a/app/src/main/java/com/quranapp/android/db/search/SearchHistoryDBHelper.java b/app/src/main/java/com/quranapp/android/db/search/SearchHistoryDBHelper.java
index bf2d438e..e669b7d2 100644
--- a/app/src/main/java/com/quranapp/android/db/search/SearchHistoryDBHelper.java
+++ b/app/src/main/java/com/quranapp/android/db/search/SearchHistoryDBHelper.java
@@ -1,10 +1,5 @@
package com.quranapp.android.db.search;
-import static com.quranapp.android.db.bookmark.BookmarkContract.BookmarkEntry.COL_DATETIME;
-import static com.quranapp.android.db.search.SearchHistoryContract.SearchEntry.COL_TEXT;
-import static com.quranapp.android.db.search.SearchHistoryContract.SearchEntry.TABLE_NAME;
-import static com.quranapp.android.db.search.SearchHistoryContract.SearchEntry._ID;
-
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
@@ -12,8 +7,11 @@
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.text.TextUtils;
-
import androidx.annotation.NonNull;
+import static com.quranapp.android.db.bookmark.BookmarkContract.BookmarkEntry.COL_DATETIME;
+import static com.quranapp.android.db.search.SearchHistoryContract.SearchEntry.COL_TEXT;
+import static com.quranapp.android.db.search.SearchHistoryContract.SearchEntry.TABLE_NAME;
+import static com.quranapp.android.db.search.SearchHistoryContract.SearchEntry._ID;
import com.quranapp.android.components.search.SearchHistoryModel;
import com.quranapp.android.components.search.SearchResultModelBase;
@@ -33,9 +31,9 @@ public SearchHistoryDBHelper(@NonNull Context context) {
@Override
public void onCreate(SQLiteDatabase DB) {
final String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " (" +
- _ID + " INTEGER PRIMARY KEY," +
- COL_TEXT + " TEXT," +
- SearchHistoryContract.SearchEntry.COL_DATE + " TEXT)";
+ _ID + " INTEGER PRIMARY KEY," +
+ COL_TEXT + " TEXT," +
+ SearchHistoryContract.SearchEntry.COL_DATE + " TEXT)";
DB.execSQL(CREATE_TABLE);
}
diff --git a/app/src/main/java/com/quranapp/android/db/transl/QuranTranslDBHelper.kt b/app/src/main/java/com/quranapp/android/db/transl/QuranTranslDBHelper.kt
index 4c60373f..aaebebfb 100644
--- a/app/src/main/java/com/quranapp/android/db/transl/QuranTranslDBHelper.kt
+++ b/app/src/main/java/com/quranapp/android/db/transl/QuranTranslDBHelper.kt
@@ -10,18 +10,23 @@ import android.content.ContentValues
import android.content.Context
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper
-import com.quranapp.android.utils.Log
import com.quranapp.android.components.quran.subcomponents.QuranTranslBookInfo
import com.quranapp.android.db.transl.QuranTranslContract.QuranTranslEntry.*
import com.quranapp.android.db.transl.QuranTranslInfoContract.QuranTranslInfoEntry
+import com.quranapp.android.utils.Log
import com.quranapp.android.utils.quran.QuranConstants
import com.quranapp.android.utils.reader.TranslUtils
import com.quranapp.android.utils.univ.FileUtils
import com.quranapp.android.utils.univ.StringUtils
-import org.json.JSONObject
import java.io.File
+import org.json.JSONObject
-class QuranTranslDBHelper(private val context: Context) : SQLiteOpenHelper(context, DB_NAME, null, DB_VERSION) {
+class QuranTranslDBHelper(private val context: Context) : SQLiteOpenHelper(
+ context,
+ DB_NAME,
+ null,
+ DB_VERSION
+) {
companion object {
private const val DB_NAME = "QuranTranslation.db"
const val DB_VERSION = 1
@@ -56,7 +61,9 @@ class QuranTranslDBHelper(private val context: Context) : SQLiteOpenHelper(conte
try {
for (bookInfo in TranslUtils.preBuiltTranslBooksInfo()) {
val prebuiltTranslPath = TranslUtils.getPrebuiltTranslPath(bookInfo.slug)
- val translStrData = StringUtils.readInputStream(context.assets.open(prebuiltTranslPath))
+ val translStrData = StringUtils.readInputStream(
+ context.assets.open(prebuiltTranslPath)
+ )
storeTranslation(bookInfo, translStrData, DB)
}
@@ -88,22 +95,24 @@ class QuranTranslDBHelper(private val context: Context) : SQLiteOpenHelper(conte
e.printStackTrace()
} finally {
fileUtils.deleteDirWithChildren(translDir)
- Log.d("Migration finished anyhow, deleting root translation directory: " + translDir.name)
+ Log.d(
+ "Migration finished anyhow, deleting root translation directory: " + translDir.name
+ )
}
}
private fun createTranslInfoTable(DB: SQLiteDatabase) {
DB.execSQL(
"CREATE TABLE ${QuranTranslInfoEntry.TABLE_NAME} (" +
- "${QuranTranslInfoEntry.COL_SLUG} TEXT PRIMARY KEY," +
- "${QuranTranslInfoEntry.COL_LANG_CODE} TEXT," +
- "${QuranTranslInfoEntry.COL_LANG_NAME} TEXT," +
- "${QuranTranslInfoEntry.COL_BOOK_NAME} TEXT," +
- "${QuranTranslInfoEntry.COL_AUTHOR_NAME} TEXT," +
- "${QuranTranslInfoEntry.COL_DISPLAY_NAME} TEXT," +
- "${QuranTranslInfoEntry.COL_LAST_UPDATED} LONG," +
- "${QuranTranslInfoEntry.COL_DOWNLOAD_PATH} TEXT," +
- "${QuranTranslInfoEntry.COL_IS_PREMIUM} BOOLEAN)"
+ "${QuranTranslInfoEntry.COL_SLUG} TEXT PRIMARY KEY," +
+ "${QuranTranslInfoEntry.COL_LANG_CODE} TEXT," +
+ "${QuranTranslInfoEntry.COL_LANG_NAME} TEXT," +
+ "${QuranTranslInfoEntry.COL_BOOK_NAME} TEXT," +
+ "${QuranTranslInfoEntry.COL_AUTHOR_NAME} TEXT," +
+ "${QuranTranslInfoEntry.COL_DISPLAY_NAME} TEXT," +
+ "${QuranTranslInfoEntry.COL_LAST_UPDATED} LONG," +
+ "${QuranTranslInfoEntry.COL_DOWNLOAD_PATH} TEXT," +
+ "${QuranTranslInfoEntry.COL_IS_PREMIUM} BOOLEAN)"
)
}
@@ -114,15 +123,19 @@ class QuranTranslDBHelper(private val context: Context) : SQLiteOpenHelper(conte
private fun createTranslTable(DB: SQLiteDatabase, bookInfo: QuranTranslBookInfo) {
DB.execSQL(
"CREATE TABLE IF NOT EXISTS ${escapeTableName(bookInfo.slug)} (" +
- "$_ID TEXT PRIMARY KEY," +
- "$COL_CHAPTER_NO INTEGER," +
- "$COL_VERSE_NO INTEGER," +
- "$COL_TEXT TEXT," +
- "$COL_FOOTNOTES TEXT)"
+ "$_ID TEXT PRIMARY KEY," +
+ "$COL_CHAPTER_NO INTEGER," +
+ "$COL_VERSE_NO INTEGER," +
+ "$COL_TEXT TEXT," +
+ "$COL_FOOTNOTES TEXT)"
)
}
- private fun readAndInsertChapters(DB: SQLiteDatabase, bookInfo: QuranTranslBookInfo, root: JSONObject) {
+ private fun readAndInsertChapters(
+ DB: SQLiteDatabase,
+ bookInfo: QuranTranslBookInfo,
+ root: JSONObject
+ ) {
val chapters = root.optJSONArray(QuranConstants.KEY_CHAPTER_LIST) ?: return
for (i in 0 until chapters.length()) {
val chapterObj = chapters.optJSONObject(i) ?: continue
@@ -130,7 +143,11 @@ class QuranTranslDBHelper(private val context: Context) : SQLiteOpenHelper(conte
}
}
- private fun readAndInsertSingleChapter(DB: SQLiteDatabase, bookInfo: QuranTranslBookInfo, chapterObj: JSONObject) {
+ private fun readAndInsertSingleChapter(
+ DB: SQLiteDatabase,
+ bookInfo: QuranTranslBookInfo,
+ chapterObj: JSONObject
+ ) {
val chapterNo = chapterObj.optInt(QuranConstants.KEY_NUMBER, -1)
val verses = chapterObj.optJSONArray(QuranConstants.KEY_VERSE_LIST) ?: return
for (i in 0 until verses.length()) {
@@ -196,4 +213,4 @@ class QuranTranslDBHelper(private val context: Context) : SQLiteOpenHelper(conte
fun storeTranslation(bookInfo: QuranTranslBookInfo, translData: String) {
storeTranslation(bookInfo, translData, writableDatabase)
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/frags/BaseFragment.java b/app/src/main/java/com/quranapp/android/frags/BaseFragment.java
index 5ca575aa..ac44af48 100644
--- a/app/src/main/java/com/quranapp/android/frags/BaseFragment.java
+++ b/app/src/main/java/com/quranapp/android/frags/BaseFragment.java
@@ -6,7 +6,6 @@
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
-
import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
@@ -21,7 +20,7 @@
import com.quranapp.android.utils.receivers.NetworkStateReceiver.NetworkStateReceiverListener;
public abstract class BaseFragment extends ResHelperFragment implements NetworkStateReceiverListener,
- ActivityResultStarter {
+ ActivityResultStarter {
private final ActivityResultLauncher mActivityResultLauncher = activityResultHandler();
private NetworkStateReceiver mNetworkReceiver;
diff --git a/app/src/main/java/com/quranapp/android/frags/ResHelperFragment.java b/app/src/main/java/com/quranapp/android/frags/ResHelperFragment.java
index 4adf4c06..01885d20 100644
--- a/app/src/main/java/com/quranapp/android/frags/ResHelperFragment.java
+++ b/app/src/main/java/com/quranapp/android/frags/ResHelperFragment.java
@@ -13,7 +13,6 @@
import android.content.res.Configuration;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
-
import androidx.annotation.ArrayRes;
import androidx.annotation.ColorInt;
import androidx.annotation.ColorRes;
diff --git a/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorBG.java b/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorBG.java
index 073a3df9..f5fc9f6b 100644
--- a/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorBG.java
+++ b/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorBG.java
@@ -4,8 +4,6 @@
package com.quranapp.android.frags.editshare;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
@@ -18,13 +16,13 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.activity.result.ActivityResult;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import com.quranapp.android.adapters.editor.ADPEditorBG;
import com.quranapp.android.components.editor.EditorBG;
diff --git a/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorBase.java b/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorBase.java
index d1631073..881fc709 100644
--- a/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorBase.java
+++ b/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorBase.java
@@ -7,7 +7,6 @@
import android.content.Context;
import android.os.Bundle;
import android.view.View;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -26,7 +25,8 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
Context context = view.getContext();
view.setBackgroundColor(ContextKt.color(context, R.color.colorBGPage));
- ViewPaddingKt.updatePaddingVertical(view, ContextKt.dp2px(context, 10), ContextKt.getDimenPx(context, R.dimen.dmnPadBig));
+ ViewPaddingKt.updatePaddingVertical(view, ContextKt.dp2px(context, 10),
+ ContextKt.getDimenPx(context, R.dimen.dmnPadBig));
}
public void setEditor(VerseEditor verseEditor) {
diff --git a/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorColors.java b/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorColors.java
index 78e6fae0..db431ff7 100644
--- a/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorColors.java
+++ b/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorColors.java
@@ -9,7 +9,6 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.GridLayoutManager;
@@ -54,7 +53,8 @@ private void setupTabs(TabLayout2 tabLayout) {
for (int i = 0, l = labels.length; i < l; i++) {
TabLayout.Tab tab = tabLayout.newTab();
- LytReaderIndexTabBinding binding = LytReaderIndexTabBinding.inflate(LayoutInflater.from(tabLayout.getContext()));
+ LytReaderIndexTabBinding binding = LytReaderIndexTabBinding.inflate(
+ LayoutInflater.from(tabLayout.getContext()));
tab.setCustomView(binding.getRoot());
binding.tabTitle.setText(labels[i]);
diff --git a/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorFG.java b/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorFG.java
index c8dedc89..607c6388 100644
--- a/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorFG.java
+++ b/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorFG.java
@@ -4,18 +4,16 @@
package com.quranapp.android.frags.editshare;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import com.quranapp.android.adapters.editor.ADPEditorFG;
import com.quranapp.android.components.editor.VerseEditor;
diff --git a/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorOptions.java b/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorOptions.java
index f9995db6..effdc846 100644
--- a/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorOptions.java
+++ b/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorOptions.java
@@ -4,23 +4,21 @@
package com.quranapp.android.frags.editshare;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.widget.NestedScrollView;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-import com.quranapp.android.widgets.checkbox.PeaceCheckBox;
import com.quranapp.android.R;
import com.quranapp.android.utils.extensions.ViewPaddingKt;
+import com.quranapp.android.widgets.checkbox.PeaceCheckBox;
import com.quranapp.android.widgets.compound.PeaceCompoundButton;
import kotlin.Unit;
@@ -59,11 +57,11 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
private void init(LinearLayout container) {
mIncludeAr = makeCheckbox(container, R.string.strLabelIncludeArabic,
- (buttonView, isChecked) -> dispatchOptions(isChecked, mIncludeTrans.isChecked(), mIncludeRef.isChecked()));
+ (buttonView, isChecked) -> dispatchOptions(isChecked, mIncludeTrans.isChecked(), mIncludeRef.isChecked()));
mIncludeTrans = makeCheckbox(container, R.string.strLabelIncludeTranslation,
- (buttonView, isChecked) -> dispatchOptions(mIncludeAr.isChecked(), isChecked, mIncludeRef.isChecked()));
+ (buttonView, isChecked) -> dispatchOptions(mIncludeAr.isChecked(), isChecked, mIncludeRef.isChecked()));
mIncludeRef = makeCheckbox(container, R.string.strLabelIncludeReference,
- (buttonView, isChecked) -> dispatchOptions(mIncludeAr.isChecked(), mIncludeTrans.isChecked(), isChecked));
+ (buttonView, isChecked) -> dispatchOptions(mIncludeAr.isChecked(), mIncludeTrans.isChecked(), isChecked));
setOptionsVisibility(mInitShowAr, mInitShowTrans, mInitShowRef);
}
diff --git a/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorSize.java b/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorSize.java
index b44f08b6..7a70d988 100644
--- a/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorSize.java
+++ b/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorSize.java
@@ -4,8 +4,6 @@
package com.quranapp.android.frags.editshare;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -13,10 +11,10 @@
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.SeekBar;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.widget.NestedScrollView;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import com.quranapp.android.R;
import com.quranapp.android.databinding.LytSeekbarBinding;
diff --git a/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorTransls.java b/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorTransls.java
index d027d8f2..1c0b5578 100644
--- a/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorTransls.java
+++ b/app/src/main/java/com/quranapp/android/frags/editshare/FragEditorTransls.java
@@ -4,9 +4,6 @@
package com.quranapp.android.frags.editshare;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.content.Context;
import android.graphics.Typeface;
import android.os.Bundle;
@@ -15,19 +12,20 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.widget.NestedScrollView;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.Dimen;
-import com.quranapp.android.widgets.radio.PeaceRadioButton;
-import com.quranapp.android.widgets.radio.PeaceRadioGroup;
import com.quranapp.android.R;
import com.quranapp.android.components.quran.subcomponents.TranslationBook;
import com.quranapp.android.utils.extensions.ViewPaddingKt;
import com.quranapp.android.utils.sharedPrefs.SPReader;
+import com.quranapp.android.widgets.radio.PeaceRadioButton;
+import com.quranapp.android.widgets.radio.PeaceRadioGroup;
import java.util.Set;
diff --git a/app/src/main/java/com/quranapp/android/frags/main/FragMain.java b/app/src/main/java/com/quranapp/android/frags/main/FragMain.java
index 75ed02ee..c303f496 100644
--- a/app/src/main/java/com/quranapp/android/frags/main/FragMain.java
+++ b/app/src/main/java/com/quranapp/android/frags/main/FragMain.java
@@ -5,7 +5,6 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.asynclayoutinflater.view.AsyncLayoutInflater;
@@ -140,7 +139,8 @@ private void initFeaturedReading(View root, QuranMeta quranMeta) {
mBinding.container.addView(readingLayout, resolvePosFeaturedReading(root));
readingLayout.post(() -> {
readingLayout.refresh(quranMeta);
- QuranDua.Companion.prepareInstance(root.getContext(), quranMeta, quranDua -> initFeaturedDua(root, quranMeta, quranDua));
+ QuranDua.Companion.prepareInstance(root.getContext(), quranMeta,
+ quranDua -> initFeaturedDua(root, quranMeta, quranDua));
});
}
@@ -152,7 +152,7 @@ private void initFeaturedDua(View root, QuranMeta quranMeta, QuranDua quranDua)
String title = context.getString(R.string.strTitleDuas);
String desc = context.getString(R.string.strMsgReferenceDuas);
ReaderFactory.startReferenceVerse(context, true, title, desc, new String[]{}, quranDua.getChapters(),
- quranDua.getVerses());
+ quranDua.getVerses());
});
binding.getRoot().setOnTouchListener(new HoverOpacityEffect());
mBinding.container.addView(binding.getRoot(), resolvePosFeaturedDua(root));
diff --git a/app/src/main/java/com/quranapp/android/frags/onboard/FragOnBoardRecitation.java b/app/src/main/java/com/quranapp/android/frags/onboard/FragOnBoardRecitation.java
index 7166f722..0f1c7911 100644
--- a/app/src/main/java/com/quranapp/android/frags/onboard/FragOnBoardRecitation.java
+++ b/app/src/main/java/com/quranapp/android/frags/onboard/FragOnBoardRecitation.java
@@ -6,20 +6,18 @@
package com.quranapp.android.frags.onboard;
-import static android.view.View.GONE;
-import static android.view.View.VISIBLE;
-
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.SimpleItemAnimator;
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
import com.quranapp.android.R;
import com.quranapp.android.adapters.recitation.ADPRecitations;
@@ -111,7 +109,7 @@ private void initPageAlert(Context ctx) {
private void noRecitersAvailable() {
showAlert(R.string.strMsgRecitationsNoAvailable, R.string.strLabelRefresh,
- () -> refresh(mBinding.list, true));
+ () -> refresh(mBinding.list, true));
}
private void showLoader() {
diff --git a/app/src/main/java/com/quranapp/android/frags/onboard/FragOnBoardThemes.java b/app/src/main/java/com/quranapp/android/frags/onboard/FragOnBoardThemes.java
index 9a25ffce..59a03fa3 100644
--- a/app/src/main/java/com/quranapp/android/frags/onboard/FragOnBoardThemes.java
+++ b/app/src/main/java/com/quranapp/android/frags/onboard/FragOnBoardThemes.java
@@ -10,7 +10,6 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
diff --git a/app/src/main/java/com/quranapp/android/frags/onboard/FragOnBoardTransls.java b/app/src/main/java/com/quranapp/android/frags/onboard/FragOnBoardTransls.java
index 7b2fe4b8..bad4cacc 100644
--- a/app/src/main/java/com/quranapp/android/frags/onboard/FragOnBoardTransls.java
+++ b/app/src/main/java/com/quranapp/android/frags/onboard/FragOnBoardTransls.java
@@ -10,7 +10,6 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -61,19 +60,20 @@ private void initTranslations(RecyclerView list) {
}
private void showTransls(RecyclerView list) {
- mTranslTaskRunner.callAsync(new FragSettingsTransl.LoadTranslsTask(FileUtils.newInstance(list.getContext()), mTranslSlugs) {
- @Override
- public void onComplete(List translItems) {
- if (!translItems.isEmpty()) {
- populateTransls(list, translItems);
+ mTranslTaskRunner.callAsync(
+ new FragSettingsTransl.LoadTranslsTask(FileUtils.newInstance(list.getContext()), mTranslSlugs) {
+ @Override
+ public void onComplete(List translItems) {
+ if (!translItems.isEmpty()) {
+ populateTransls(list, translItems);
+ }
}
- }
- });
+ });
}
private void populateTransls(RecyclerView list, List translItems) {
ADPTransls adapter = new ADPTransls(list.getContext(), translItems, false,
- (ctx, model, isSelected) -> TranslUtils.resolveSelectionChange(ctx, mTranslSlugs, model, isSelected, true));
+ (ctx, model, isSelected) -> TranslUtils.resolveSelectionChange(ctx, mTranslSlugs, model, isSelected, true));
list.setAdapter(adapter);
}
}
diff --git a/app/src/main/java/com/quranapp/android/frags/readerindex/BaseFragReaderIndex.java b/app/src/main/java/com/quranapp/android/frags/readerindex/BaseFragReaderIndex.java
index 0ec75a09..84525972 100644
--- a/app/src/main/java/com/quranapp/android/frags/readerindex/BaseFragReaderIndex.java
+++ b/app/src/main/java/com/quranapp/android/frags/readerindex/BaseFragReaderIndex.java
@@ -7,7 +7,6 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
diff --git a/app/src/main/java/com/quranapp/android/frags/readerindex/FragReaderIndexChapters.java b/app/src/main/java/com/quranapp/android/frags/readerindex/FragReaderIndexChapters.java
index 5ecae868..70d12bb8 100644
--- a/app/src/main/java/com/quranapp/android/frags/readerindex/FragReaderIndexChapters.java
+++ b/app/src/main/java/com/quranapp/android/frags/readerindex/FragReaderIndexChapters.java
@@ -1,10 +1,8 @@
package com.quranapp.android.frags.readerindex;
-import static androidx.recyclerview.widget.RecyclerView.VERTICAL;
-
import android.content.Context;
-
import androidx.recyclerview.widget.GridLayoutManager;
+import static androidx.recyclerview.widget.RecyclerView.VERTICAL;
import com.peacedesign.android.utils.WindowUtils;
import com.quranapp.android.adapters.quranIndex.ADPChaptersList;
diff --git a/app/src/main/java/com/quranapp/android/frags/readerindex/FragReaderIndexJuz.java b/app/src/main/java/com/quranapp/android/frags/readerindex/FragReaderIndexJuz.java
index e08e3a28..4cb6f499 100644
--- a/app/src/main/java/com/quranapp/android/frags/readerindex/FragReaderIndexJuz.java
+++ b/app/src/main/java/com/quranapp/android/frags/readerindex/FragReaderIndexJuz.java
@@ -1,7 +1,6 @@
package com.quranapp.android.frags.readerindex;
import android.content.Context;
-
import androidx.recyclerview.widget.LinearLayoutManager;
import com.quranapp.android.adapters.quranIndex.ADPJuzList;
diff --git a/app/src/main/java/com/quranapp/android/frags/search/FragSearchResult.kt b/app/src/main/java/com/quranapp/android/frags/search/FragSearchResult.kt
index 03f774db..3d1a54a2 100644
--- a/app/src/main/java/com/quranapp/android/frags/search/FragSearchResult.kt
+++ b/app/src/main/java/com/quranapp/android/frags/search/FragSearchResult.kt
@@ -7,7 +7,6 @@ import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager
import com.peacedesign.android.utils.Dimen
-import com.quranapp.android.utils.Log
import com.quranapp.android.R
import com.quranapp.android.activities.ActivitySearch
import com.quranapp.android.adapters.search.ADPVerseResults
@@ -20,6 +19,7 @@ import com.quranapp.android.databinding.FragSearchResultsBinding
import com.quranapp.android.db.transl.QuranTranslContract.QuranTranslEntry.*
import com.quranapp.android.frags.BaseFragment
import com.quranapp.android.interfaceUtils.Destroyable
+import com.quranapp.android.utils.Log
import com.quranapp.android.utils.extended.GapedItemDecoration
import com.quranapp.android.utils.search.SearchFilters
import com.quranapp.android.utils.thread.runner.CallableTaskRunner
@@ -44,7 +44,11 @@ class FragSearchResult : BaseFragment(), Destroyable {
}
}
- override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
if (firstTime || !::mBinding.isInitialized) {
mBinding = FragSearchResultsBinding.inflate(inflater, container, false)
}
@@ -166,21 +170,33 @@ class FragSearchResult : BaseFragment(), Destroyable {
mBinding.loader.visibility = View.GONE
if (isVisible) {
activity.mBinding.filter.visibility = View.VISIBLE
- activity.mBinding.voiceSearch.visibility = if (activity.mSupportsVoiceInput) View.VISIBLE else View.GONE
+ activity.mBinding.voiceSearch.visibility =
+ if (activity.mSupportsVoiceInput) View.VISIBLE else View.GONE
}
}
})
}
fun searchInDB(
- actvt: ActivitySearch, meta: QuranMeta,
- results: ArrayList, slug: String,
- query: String, limit: Int, offset: Int,
- resultCount: AtomicInteger, pattern: Pattern
+ actvt: ActivitySearch,
+ meta: QuranMeta,
+ results: ArrayList,
+ slug: String,
+ query: String,
+ limit: Int,
+ offset: Int,
+ resultCount: AtomicInteger,
+ pattern: Pattern
) {
val bookInfo = actvt.mTranslFactory.getTranslationBookInfo(slug)
val db = actvt.mTranslFactory.dbHelper.readableDatabase
- val rawQuery = actvt.mTranslFactory.prepareQuerySingle(actvt.mSearchFilters, query, slug, limit, offset)
+ val rawQuery = actvt.mTranslFactory.prepareQuerySingle(
+ actvt.mSearchFilters,
+ query,
+ slug,
+ limit,
+ offset
+ )
val cursor = db.rawQuery(rawQuery, null, null)
Log.d(rawQuery, Arrays.toString(cursor.columnNames), cursor.count)
@@ -204,7 +220,9 @@ class FragSearchResult : BaseFragment(), Destroyable {
translation.text = StringUtils.removeHTML(translation.text, false)
if ("en" == bookInfo.langCode) {
- translation.text = org.apache.commons.lang3.StringUtils.stripAccents(translation.text)
+ translation.text = org.apache.commons.lang3.StringUtils.stripAccents(
+ translation.text
+ )
}
val matcher = pattern.matcher(translation.text)
@@ -246,10 +264,15 @@ class FragSearchResult : BaseFragment(), Destroyable {
}
private fun prepareVerseResult(
- activity: ActivitySearch, quranMeta: QuranMeta,
- chapterNo: Int, verseNo: Int,
- translSlugs: Set, translDisplayNames: List, translations: List,
- startIndices: List, endIndices: List
+ activity: ActivitySearch,
+ quranMeta: QuranMeta,
+ chapterNo: Int,
+ verseNo: Int,
+ translSlugs: Set,
+ translDisplayNames: List,
+ translations: List,
+ startIndices: List,
+ endIndices: List
): VerseResultModel {
return VerseResultModel().apply {
this.chapterNo = chapterNo
@@ -264,4 +287,4 @@ class FragSearchResult : BaseFragment(), Destroyable {
this.endIndices = endIndices
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/frags/search/FragSearchSuggestions.java b/app/src/main/java/com/quranapp/android/frags/search/FragSearchSuggestions.java
index 9ea921d0..377e9e22 100644
--- a/app/src/main/java/com/quranapp/android/frags/search/FragSearchSuggestions.java
+++ b/app/src/main/java/com/quranapp/android/frags/search/FragSearchSuggestions.java
@@ -1,7 +1,5 @@
package com.quranapp.android.frags.search;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-
import android.content.Context;
import android.os.Bundle;
import android.text.SpannableString;
@@ -11,12 +9,12 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.core.text.HtmlCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
import com.peacedesign.android.utils.span.RoundedBG_FGSpan;
import com.quranapp.android.R;
@@ -126,9 +124,10 @@ private SpannableString setBGAndFCSpan(String string, boolean setBG) {
SpannableString spannable = new SpannableString(spanned);
if (setBG) {
spannable.setSpan(new RoundedBG_FGSpan(spannableBGColor, spannableTextColor), 0, spanned.length(),
- SPAN_EXCLUSIVE_EXCLUSIVE);
+ SPAN_EXCLUSIVE_EXCLUSIVE);
} else {
- spannable.setSpan(new ForegroundColorSpan(spannableTextColor), 0, spanned.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
+ spannable.setSpan(new ForegroundColorSpan(spannableTextColor), 0, spanned.length(),
+ SPAN_EXCLUSIVE_EXCLUSIVE);
}
return spannable;
}
@@ -142,7 +141,8 @@ private void prepareNShowSugg(ActivitySearch activitySearch, String query, boole
ArrayList suggModels = new ArrayList<>();
if (!isEmpty) {
- ArrayList jumperSuggs = activitySearch.prepareJumper(activitySearch.mQuranMeta, query);
+ ArrayList jumperSuggs = activitySearch.prepareJumper(activitySearch.mQuranMeta,
+ query);
suggModels.addAll(jumperSuggs);
}
diff --git a/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsBase.kt b/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsBase.kt
index e91f49c0..40340d50 100644
--- a/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsBase.kt
+++ b/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsBase.kt
@@ -44,7 +44,11 @@ abstract class FragSettingsBase : BaseFragment() {
arguments = args
}
- override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
return if (shouldCreateScrollerView) {
NestedScrollView(inflater.context).apply {
id = R.id.scrollView
@@ -85,4 +89,4 @@ abstract class FragSettingsBase : BaseFragment() {
commit()
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsLanguage.kt b/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsLanguage.kt
index 2bc8a25a..d04200c3 100644
--- a/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsLanguage.kt
+++ b/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsLanguage.kt
@@ -6,8 +6,6 @@ import android.os.Bundle
import android.view.View
import androidx.core.view.updatePaddingRelative
import com.peacedesign.android.utils.WindowUtils
-import com.quranapp.android.widgets.compound.PeaceCompoundButton
-import com.quranapp.android.widgets.radio.PeaceRadioButton
import com.quranapp.android.R
import com.quranapp.android.activities.readerSettings.ActivitySettings
import com.quranapp.android.databinding.FragSettingsLangBinding
@@ -15,6 +13,8 @@ import com.quranapp.android.utils.IntentUtils
import com.quranapp.android.utils.sharedPrefs.SPAppConfigs.getLocale
import com.quranapp.android.utils.sharedPrefs.SPAppConfigs.setLocale
import com.quranapp.android.views.BoldHeader
+import com.quranapp.android.widgets.compound.PeaceCompoundButton
+import com.quranapp.android.widgets.radio.PeaceRadioButton
class FragSettingsLanguage : FragSettingsBase() {
private var initialLocale: String? = null
@@ -47,8 +47,11 @@ class FragSettingsLanguage : FragSettingsBase() {
val availableLocalesValues = strArray(ctx, R.array.availableLocalesValues)
val availableLocaleNames = strArray(ctx, R.array.availableLocalesNames)
- val forcedTextGravity = if (WindowUtils.isRTL(ctx)) PeaceCompoundButton.COMPOUND_TEXT_GRAVITY_RIGHT
- else PeaceCompoundButton.COMPOUND_TEXT_GRAVITY_LEFT
+ val forcedTextGravity = if (WindowUtils.isRTL(ctx)) {
+ PeaceCompoundButton.COMPOUND_TEXT_GRAVITY_RIGHT
+ } else {
+ PeaceCompoundButton.COMPOUND_TEXT_GRAVITY_LEFT
+ }
var preCheckedRadioId = View.NO_ID
@@ -85,10 +88,11 @@ class FragSettingsLanguage : FragSettingsBase() {
val localeValue = button.tag as String
setLocale(ctx, localeValue)
- ctx.sendBroadcast(Intent(IntentUtils.INTENT_ACTION_APP_LANGUAGE_CHANGED).apply {
- putExtra("locale", localeValue)
- })
+ ctx.sendBroadcast(
+ Intent(IntentUtils.INTENT_ACTION_APP_LANGUAGE_CHANGED).apply {
+ putExtra("locale", localeValue)
+ }
+ )
}
}
-
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsMain.java b/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsMain.java
index 3ce5f957..83df1f16 100644
--- a/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsMain.java
+++ b/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsMain.java
@@ -6,26 +6,6 @@
package com.quranapp.android.frags.settings;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static android.view.View.GONE;
-import static android.view.View.VISIBLE;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-import static android.widget.LinearLayout.HORIZONTAL;
-import static android.widget.LinearLayout.VERTICAL;
-import static com.quranapp.android.activities.readerSettings.ActivitySettings.KEY_SETTINGS_DESTINATION;
-import static com.quranapp.android.activities.readerSettings.ActivitySettings.SETTINGS_THEME;
-import static com.quranapp.android.activities.readerSettings.ActivitySettings.SETTINGS_VOTD;
-import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_VERSES;
-import static com.quranapp.android.reader_managers.ReaderParams.READER_STYLE_READING;
-import static com.quranapp.android.reader_managers.ReaderParams.READER_STYLE_TRANSLATION;
-import static com.quranapp.android.utils.reader.ReaderTextSizeUtils.TEXT_SIZE_MAX_PROGRESS;
-import static com.quranapp.android.utils.reader.ReaderTextSizeUtils.TEXT_SIZE_MIN_PROGRESS;
-import static com.quranapp.android.utils.univ.Codes.SETTINGS_LAUNCHER_RESULT_CODE;
-import static com.quranapp.android.utils.univ.Keys.READER_KEY_SAVE_TRANSL_CHANGES;
-import static com.quranapp.android.utils.univ.Keys.READER_KEY_SETTING_IS_FROM_READER;
-import static com.quranapp.android.utils.univ.Keys.READER_KEY_TRANSL_SLUGS;
-
import android.annotation.SuppressLint;
import android.app.AlarmManager;
import android.content.Context;
@@ -45,13 +25,31 @@
import android.view.View;
import android.widget.LinearLayout;
import android.widget.SeekBar;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.appcompat.widget.AppCompatSeekBar;
import androidx.cardview.widget.CardView;
import androidx.fragment.app.FragmentResultListener;
+import static com.quranapp.android.activities.readerSettings.ActivitySettings.KEY_SETTINGS_DESTINATION;
+import static com.quranapp.android.activities.readerSettings.ActivitySettings.SETTINGS_THEME;
+import static com.quranapp.android.activities.readerSettings.ActivitySettings.SETTINGS_VOTD;
+import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_VERSES;
+import static com.quranapp.android.reader_managers.ReaderParams.READER_STYLE_READING;
+import static com.quranapp.android.reader_managers.ReaderParams.READER_STYLE_TRANSLATION;
+import static com.quranapp.android.utils.reader.ReaderTextSizeUtils.TEXT_SIZE_MAX_PROGRESS;
+import static com.quranapp.android.utils.reader.ReaderTextSizeUtils.TEXT_SIZE_MIN_PROGRESS;
+import static com.quranapp.android.utils.univ.Codes.SETTINGS_LAUNCHER_RESULT_CODE;
+import static com.quranapp.android.utils.univ.Keys.READER_KEY_SAVE_TRANSL_CHANGES;
+import static com.quranapp.android.utils.univ.Keys.READER_KEY_SETTING_IS_FROM_READER;
+import static com.quranapp.android.utils.univ.Keys.READER_KEY_TRANSL_SLUGS;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
+import static android.widget.LinearLayout.HORIZONTAL;
+import static android.widget.LinearLayout.VERTICAL;
import com.google.android.material.tabs.TabLayout;
import com.peacedesign.android.utils.DrawableUtils;
@@ -84,9 +82,9 @@
import com.quranapp.android.utils.sharedPrefs.SPAppConfigs;
import com.quranapp.android.utils.sharedPrefs.SPReader;
import com.quranapp.android.utils.sharedPrefs.SPVerses;
-import com.quranapp.android.utils.univ.Keys;
import com.quranapp.android.utils.simplified.SimpleSeekbarChangeListener;
import com.quranapp.android.utils.simplified.SimpleTabSelectorListener;
+import com.quranapp.android.utils.univ.Keys;
import com.quranapp.android.utils.votd.VOTDUtils;
import com.quranapp.android.views.BoldHeader;
import com.quranapp.android.widgets.IconedTextView;
@@ -615,7 +613,8 @@ public void onProgressChanged(@NonNull SeekBar seekBar, int progress, boolean fr
@Override
public void onStopTrackingTouch(@NonNull SeekBar seekBar) {
final int progress = TEXT_SIZE_MIN_PROGRESS + seekBar.getProgress();
- SPReader.setSavedTextSizeMultArabic(seekBar.getContext(), ReaderTextSizeUtils.calculateMultiplier(progress));
+ SPReader.setSavedTextSizeMultArabic(seekBar.getContext(),
+ ReaderTextSizeUtils.calculateMultiplier(progress));
}
});
}
@@ -679,7 +678,8 @@ public void onProgressChanged(@NonNull SeekBar seekBar, int progress, boolean fr
@Override
public void onStopTrackingTouch(@NonNull SeekBar seekBar) {
final int progress = TEXT_SIZE_MIN_PROGRESS + seekBar.getProgress();
- SPReader.setSavedTextSizeMultTransl(seekBar.getContext(), ReaderTextSizeUtils.calculateMultiplier(progress));
+ SPReader.setSavedTextSizeMultTransl(seekBar.getContext(),
+ ReaderTextSizeUtils.calculateMultiplier(progress));
}
});
}
diff --git a/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsRecitations.kt b/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsRecitations.kt
index edc604c7..500dac0d 100644
--- a/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsRecitations.kt
+++ b/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsRecitations.kt
@@ -64,7 +64,10 @@ class FragSettingsRecitations : FragSettingsBase() {
disableRightBtn(false)
setSearchHint(R.string.strHintSearchReciter)
- setRightIconRes(R.drawable.dr_icon_refresh, activity.getString(R.string.strLabelRefresh))
+ setRightIconRes(
+ R.drawable.dr_icon_refresh,
+ activity.getString(R.string.strLabelRefresh)
+ )
}
}
@@ -84,7 +87,6 @@ class FragSettingsRecitations : FragSettingsBase() {
mPageAlert = PageAlert(ctx)
}
-
private fun refresh(ctx: Context, force: Boolean) {
showLoader()
RecitationManager.prepare(ctx, force) {
@@ -128,7 +130,6 @@ class FragSettingsRecitations : FragSettingsBase() {
resetAdapter(found)
}
-
private fun populateTranslations(ctx: Context, models: List) {
mModels = models
@@ -149,7 +150,9 @@ class FragSettingsRecitations : FragSettingsBase() {
}
private fun noRecitersAvailable(ctx: Context) {
- showAlert(ctx, 0, R.string.strMsgRecitationsNoAvailable, R.string.strLabelRefresh) { refresh(ctx, true) }
+ showAlert(ctx, 0, R.string.strMsgRecitationsNoAvailable, R.string.strLabelRefresh) {
+ refresh(ctx, true)
+ }
}
private fun showLoader() {
@@ -195,7 +198,6 @@ class FragSettingsRecitations : FragSettingsBase() {
mPageAlert?.remove()
}
-
private fun noInternet(ctx: Context) {
if (mPageAlert == null) {
initPageAlert(ctx)
@@ -211,4 +213,4 @@ class FragSettingsRecitations : FragSettingsBase() {
setShowRightIcon(true)
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsScripts.kt b/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsScripts.kt
index 5fdf567d..7631ae25 100644
--- a/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsScripts.kt
+++ b/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsScripts.kt
@@ -54,7 +54,6 @@ class FragSettingsScripts : FragSettingsBase(), ServiceConnection {
unregisterDownloadService()
}
-
override fun getFragTitle(ctx: Context): String = ctx.getString(R.string.strTitleScripts)
override val layoutResource = 0
@@ -151,7 +150,9 @@ class FragSettingsScripts : FragSettingsBase(), ServiceConnection {
val msg = StringBuilder(ctx.getString(R.string.msgDownloadKFQPCResources)).append("\n")
if (!scriptDownloaded) {
- msg.append("\n").append(ctx.getString(R.string.msgDownloadKFQPCResourcesScript, slug.getQuranScriptName()))
+ msg.append("\n").append(
+ ctx.getString(R.string.msgDownloadKFQPCResourcesScript, slug.getQuranScriptName())
+ )
}
val averageFontKB = 161.23
@@ -184,9 +185,12 @@ class FragSettingsScripts : FragSettingsBase(), ServiceConnection {
showProgressDialog(ctx, scriptKey)
KFQPCScriptFontsDownloadService.STARTED_BY_USER = true
- ContextCompat.startForegroundService(ctx, Intent(ctx, KFQPCScriptFontsDownloadService::class.java).apply {
- putExtra(QuranScriptUtils.KEY_SCRIPT, scriptKey)
- })
+ ContextCompat.startForegroundService(
+ ctx,
+ Intent(ctx, KFQPCScriptFontsDownloadService::class.java).apply {
+ putExtra(QuranScriptUtils.KEY_SCRIPT, scriptKey)
+ }
+ )
bindDownloadService(ctx)
}
@@ -239,7 +243,8 @@ class FragSettingsScripts : FragSettingsBase(), ServiceConnection {
if (pageNo != null) {
binding.countText.text = ctx.getString(
R.string.msgFontsDonwloadProgress,
- pageNo - 1, QuranMeta.totalPages()
+ pageNo - 1,
+ QuranMeta.totalPages()
)
binding.countText.visible()
}
@@ -278,7 +283,9 @@ class FragSettingsScripts : FragSettingsBase(), ServiceConnection {
private fun showCompletedDialog(ctx: Context, isFailed: Boolean) {
PeaceDialog.newBuilder(ctx).apply {
setTitle(if (isFailed) R.string.strTitleError else R.string.strTitleSuccess)
- setMessage(if (isFailed) R.string.msgDownloadFailed else R.string.msgScriptFontsDownloaded)
+ setMessage(
+ if (isFailed) R.string.msgDownloadFailed else R.string.msgScriptFontsDownloaded
+ )
setPositiveButton(R.string.strLabelOkay, null)
}.show()
}
@@ -292,7 +299,11 @@ class FragSettingsScripts : FragSettingsBase(), ServiceConnection {
}
private fun bindDownloadService(ctx: Context) {
- ctx.bindService(Intent(ctx, KFQPCScriptFontsDownloadService::class.java), this, Context.BIND_AUTO_CREATE)
+ ctx.bindService(
+ Intent(ctx, KFQPCScriptFontsDownloadService::class.java),
+ this,
+ Context.BIND_AUTO_CREATE
+ )
}
private fun unbindDownloadService(actvt: Activity) {
@@ -338,4 +349,4 @@ class FragSettingsScripts : FragSettingsBase(), ServiceConnection {
return null
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsTransl.java b/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsTransl.java
index 9bca7986..d1bf23c8 100644
--- a/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsTransl.java
+++ b/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsTransl.java
@@ -6,24 +6,22 @@
package com.quranapp.android.frags.settings;
-import static android.view.View.GONE;
-import static android.view.View.VISIBLE;
-import static com.quranapp.android.utils.univ.Codes.SETTINGS_LAUNCHER_RESULT_CODE;
-import static com.quranapp.android.utils.univ.Keys.READER_KEY_SAVE_TRANSL_CHANGES;
-import static com.quranapp.android.utils.univ.Keys.READER_KEY_TRANSL_SLUGS;
-import static java.util.regex.Pattern.CASE_INSENSITIVE;
-import static java.util.regex.Pattern.DOTALL;
-
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
-
import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
+import static com.quranapp.android.utils.univ.Codes.SETTINGS_LAUNCHER_RESULT_CODE;
+import static com.quranapp.android.utils.univ.Keys.READER_KEY_SAVE_TRANSL_CHANGES;
+import static com.quranapp.android.utils.univ.Keys.READER_KEY_TRANSL_SLUGS;
+import static java.util.regex.Pattern.CASE_INSENSITIVE;
+import static java.util.regex.Pattern.DOTALL;
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
import com.quranapp.android.R;
import com.quranapp.android.activities.readerSettings.ActivitySettings;
@@ -138,7 +136,8 @@ public void onViewReady(@NonNull Context ctx, @NonNull View view, @Nullable Bund
private void initPageAlert(Context ctx) {
mPageAlert = new PageAlert(ctx);
mPageAlert.setMessage(ctx.getString(R.string.strMsgTranslNoDownloads), null);
- mPageAlert.setActionButton(R.string.strTitleDownloadTranslations, () -> launchFrag(FragSettingsTranslationsDownload.class, null));
+ mPageAlert.setActionButton(R.string.strTitleDownloadTranslations,
+ () -> launchFrag(FragSettingsTranslationsDownload.class, null));
}
private void initTranslations(Context ctx) {
@@ -240,7 +239,8 @@ private void search(CharSequence query) {
@Override
public boolean onSelectionChanged(Context ctx, TranslModel translModel, boolean isSelected) {
- boolean succeed = TranslUtils.resolveSelectionChange(ctx, mTranslSlugs, translModel, isSelected, saveTranslChanges);
+ boolean succeed = TranslUtils.resolveSelectionChange(ctx, mTranslSlugs, translModel, isSelected,
+ saveTranslChanges);
if (succeed) {
// Update the args so that it can reflect when this fragment is recreated.
Bundle args = getArgs();
@@ -268,8 +268,8 @@ private void beforeFinish() {
}
getParentFragmentManager().setFragmentResult(
- String.valueOf(SETTINGS_LAUNCHER_RESULT_CODE),
- getFinishingResult(getContext())
+ String.valueOf(SETTINGS_LAUNCHER_RESULT_CODE),
+ getFinishingResult(getContext())
);
}
diff --git a/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsTranslationsDownload.kt b/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsTranslationsDownload.kt
index 1cc49ea9..bca323c5 100644
--- a/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsTranslationsDownload.kt
+++ b/app/src/main/java/com/quranapp/android/frags/settings/FragSettingsTranslationsDownload.kt
@@ -35,17 +35,20 @@ import com.quranapp.android.utils.univ.StringUtils
import com.quranapp.android.views.BoldHeader
import com.quranapp.android.views.BoldHeader.BoldHeaderCallback
import com.quranapp.android.widgets.PageAlert
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.launch
-import kotlinx.serialization.json.*
import java.io.File
import java.io.IOException
import java.util.*
import java.util.regex.Pattern
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.serialization.json.*
-class FragSettingsTranslationsDownload : FragSettingsBase(), TranslDownloadStateListener,
- ServiceConnection, TranslDownloadExplorerImpl {
+class FragSettingsTranslationsDownload :
+ FragSettingsBase(),
+ TranslDownloadStateListener,
+ ServiceConnection,
+ TranslDownloadExplorerImpl {
private lateinit var mBinding: FragSettingsTranslBinding
private lateinit var mFileUtils: FileUtils
@@ -77,7 +80,11 @@ class FragSettingsTranslationsDownload : FragSettingsBase(), TranslDownloadState
}
private fun bindTranslService(actvt: Activity) {
- actvt.bindService(Intent(actvt, TranslationDownloadService::class.java), this, Context.BIND_AUTO_CREATE)
+ actvt.bindService(
+ Intent(actvt, TranslationDownloadService::class.java),
+ this,
+ Context.BIND_AUTO_CREATE
+ )
}
private fun unbindTranslationService(actvt: Activity) {
@@ -104,7 +111,6 @@ class FragSettingsTranslationsDownload : FragSettingsBase(), TranslDownloadState
mTranslFactory?.close()
}
-
override fun setupHeader(activity: ActivitySettings, header: BoldHeader) {
super.setupHeader(activity, header)
header.setCallback(object : BoldHeaderCallback {
@@ -123,7 +129,10 @@ class FragSettingsTranslationsDownload : FragSettingsBase(), TranslDownloadState
header.setShowSearchIcon(false)
header.setShowRightIcon(false)
header.setSearchHint(R.string.strHintSearchTranslation)
- header.setRightIconRes(R.drawable.dr_icon_refresh, activity.getString(R.string.strLabelRefresh))
+ header.setRightIconRes(
+ R.drawable.dr_icon_refresh,
+ activity.getString(R.string.strLabelRefresh)
+ )
}
override fun onViewReady(ctx: Context, view: View, savedInstanceState: Bundle?) {
@@ -144,7 +153,6 @@ class FragSettingsTranslationsDownload : FragSettingsBase(), TranslDownloadState
mPageAlert = PageAlert(ctx)
}
-
private fun refreshTranslations(ctx: Context, force: Boolean) {
showLoader()
@@ -219,7 +227,11 @@ class FragSettingsTranslationsDownload : FragSettingsBase(), TranslDownloadState
var traceAddedTranslCount = 0
for (slug in slugs) {
- val model = readTranslInfo(langCode, slug, translationsForLanguageCode[slug]!!.jsonObject)
+ val model = readTranslInfo(
+ langCode,
+ slug,
+ translationsForLanguageCode[slug]!!.jsonObject
+ )
if (mNewTranslations?.contains(slug) == true) {
model.addMiniInfo(ctx.getString(R.string.strLabelNew))
@@ -251,7 +263,6 @@ class FragSettingsTranslationsDownload : FragSettingsBase(), TranslDownloadState
hideLoader()
}
-
private fun readTranslInfo(langCode: String, slug: String, translObject: JsonObject): TranslModel {
val bookInfo = QuranTranslBookInfo(slug)
bookInfo.langCode = langCode
@@ -317,7 +328,6 @@ class FragSettingsTranslationsDownload : FragSettingsBase(), TranslDownloadState
}
}
-
private fun noDownloadsAvailable(ctx: Context) {
showAlert(
0,
@@ -379,8 +389,10 @@ class FragSettingsTranslationsDownload : FragSettingsBase(), TranslDownloadState
TranslDownloadReceiver.TRANSL_DOWNLOAD_STATUS_CANCELED -> {}
TranslDownloadReceiver.TRANSL_DOWNLOAD_STATUS_FAILED -> {
title = ctx.getString(R.string.strTitleFailed)
- msg = (ctx.getString(R.string.strMsgTranslFailedToDownload, bookInfo.bookName)
- + " " + ctx.getString(R.string.strMsgTryLater))
+ msg = (
+ ctx.getString(R.string.strMsgTranslFailedToDownload, bookInfo.bookName) +
+ " " + ctx.getString(R.string.strMsgTryLater)
+ )
}
TranslDownloadReceiver.TRANSL_DOWNLOAD_STATUS_SUCCEED -> {
@@ -391,7 +403,13 @@ class FragSettingsTranslationsDownload : FragSettingsBase(), TranslDownloadState
}
if (title != null && context != null) {
- MessageUtils.popMessage(context, title, msg, ctx.getString(R.string.strLabelClose), null)
+ MessageUtils.popMessage(
+ context,
+ title,
+ msg,
+ ctx.getString(R.string.strLabelClose),
+ null
+ )
}
}
@@ -471,4 +489,4 @@ class FragSettingsTranslationsDownload : FragSettingsBase(), TranslDownloadState
}
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/interfaceUtils/ActivityResultStarter.java b/app/src/main/java/com/quranapp/android/interfaceUtils/ActivityResultStarter.java
index 4e431ce1..92c6573b 100644
--- a/app/src/main/java/com/quranapp/android/interfaceUtils/ActivityResultStarter.java
+++ b/app/src/main/java/com/quranapp/android/interfaceUtils/ActivityResultStarter.java
@@ -7,7 +7,6 @@
package com.quranapp.android.interfaceUtils;
import android.content.Intent;
-
import androidx.core.app.ActivityOptionsCompat;
public interface ActivityResultStarter {
diff --git a/app/src/main/java/com/quranapp/android/interfaceUtils/OnResultReadyCallback.kt b/app/src/main/java/com/quranapp/android/interfaceUtils/OnResultReadyCallback.kt
index 78988d9a..1efb94f0 100644
--- a/app/src/main/java/com/quranapp/android/interfaceUtils/OnResultReadyCallback.kt
+++ b/app/src/main/java/com/quranapp/android/interfaceUtils/OnResultReadyCallback.kt
@@ -2,4 +2,4 @@ package com.quranapp.android.interfaceUtils
interface OnResultReadyCallback {
fun onReady(r: R)
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/reader_managers/ActionController.java b/app/src/main/java/com/quranapp/android/reader_managers/ActionController.java
index f7c399c1..2c4ee020 100644
--- a/app/src/main/java/com/quranapp/android/reader_managers/ActionController.java
+++ b/app/src/main/java/com/quranapp/android/reader_managers/ActionController.java
@@ -1,12 +1,11 @@
package com.quranapp.android.reader_managers;
+import android.os.Handler;
+import android.os.Looper;
import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_CHAPTER;
import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_JUZ;
import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_VERSES;
-import android.os.Handler;
-import android.os.Looper;
-
import com.quranapp.android.activities.ActivityReader;
import com.quranapp.android.activities.ReaderPossessingActivity;
import com.quranapp.android.components.quran.QuranMeta;
diff --git a/app/src/main/java/com/quranapp/android/reader_managers/Navigator.java b/app/src/main/java/com/quranapp/android/reader_managers/Navigator.java
index 0e7e56d1..49a1c993 100644
--- a/app/src/main/java/com/quranapp/android/reader_managers/Navigator.java
+++ b/app/src/main/java/com/quranapp/android/reader_managers/Navigator.java
@@ -1,16 +1,14 @@
package com.quranapp.android.reader_managers;
+import android.view.View;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_CHAPTER;
import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_JUZ;
import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_VERSES;
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.READER_PAGE;
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.VERSE;
-import android.view.View;
-
-import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityReader;
import com.quranapp.android.adapters.ADPQuranPages;
@@ -286,7 +284,8 @@ public void nextVerse() {
public void jumpToVerse(int chapterNo, int verseNo, boolean invokePlayer) {
QuranMeta quranMeta = mActivity.mQuranMetaRef.get();
- if (mReaderParams.readType != READER_READ_TYPE_JUZ && !quranMeta.isVerseValid4Chapter(getCurrChapterNo(), verseNo)) {
+ if (mReaderParams.readType != READER_READ_TYPE_JUZ && !quranMeta.isVerseValid4Chapter(getCurrChapterNo(),
+ verseNo)) {
return;
}
@@ -310,11 +309,13 @@ public void jumpToVerse(int chapterNo, int verseNo, boolean invokePlayer) {
readFullChapter();
}
}
- } break;
+ }
+ break;
case READER_READ_TYPE_JUZ:
case READER_READ_TYPE_CHAPTER: {
scrollToVerse(chapterNo, verseNo, true);
- } break;
+ }
+ break;
}
mActivity.updateVerseNumber(chapterNo, verseNo);
diff --git a/app/src/main/java/com/quranapp/android/reader_managers/ReaderParams.java b/app/src/main/java/com/quranapp/android/reader_managers/ReaderParams.java
index 9c16687f..1609dda1 100644
--- a/app/src/main/java/com/quranapp/android/reader_managers/ReaderParams.java
+++ b/app/src/main/java/com/quranapp/android/reader_managers/ReaderParams.java
@@ -1,5 +1,8 @@
package com.quranapp.android.reader_managers;
+import android.content.Context;
+import androidx.annotation.IntDef;
+import androidx.annotation.Nullable;
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.BISMILLAH;
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.CHAPTER_INFO;
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.CHAPTER_TITLE;
@@ -9,11 +12,6 @@
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.READER_PAGE;
import static com.quranapp.android.reader_managers.ReaderParams.RecyclerItemViewType.VERSE;
-import android.content.Context;
-
-import androidx.annotation.IntDef;
-import androidx.annotation.Nullable;
-
import com.quranapp.android.activities.ReaderPossessingActivity;
import com.quranapp.android.components.quran.QuranMeta;
import com.quranapp.android.components.quran.subcomponents.Chapter;
@@ -88,7 +86,7 @@ public boolean isVerseInValidRange(int chapterNo, int verseNo) {
case READER_READ_TYPE_VERSES:
case READER_READ_TYPE_CHAPTER:
return currChapter.getChapterNumber() == chapterNo && quranMeta.isVerseValid4Chapter(chapterNo,
- verseNo);
+ verseNo);
case READER_READ_TYPE_JUZ:
return quranMeta.isVerseValid4Juz(currJuzNo, chapterNo, verseNo);
}
diff --git a/app/src/main/java/com/quranapp/android/reader_managers/ReaderVerseDecorator.kt b/app/src/main/java/com/quranapp/android/reader_managers/ReaderVerseDecorator.kt
index 121de51a..cb7d3e0a 100644
--- a/app/src/main/java/com/quranapp/android/reader_managers/ReaderVerseDecorator.kt
+++ b/app/src/main/java/com/quranapp/android/reader_managers/ReaderVerseDecorator.kt
@@ -75,13 +75,15 @@ class ReaderVerseDecorator(private val ctx: Context) {
try {
fontsArabicKFQPC[pageNo] = Typeface.createFromFile(
- File(fileUtils.getKFQPCScriptFontDir(savedScript), pageNo.toKFQPCFontFilename())
+ File(
+ fileUtils.getKFQPCScriptFontDir(savedScript),
+ pageNo.toKFQPCFontFilename()
+ )
)
} catch (e: Exception) {
e.printStackTrace()
}
}
-
} else {
fontsArabicKFQPC.clear()
@@ -156,7 +158,6 @@ class ReaderVerseDecorator(private val ctx: Context) {
setTextSize(TypedValue.COMPLEX_UNIT_PX, textSizeTransl * multiplier)
}
-
fun TextView.setFontArabic(pageNo: Int) {
typeface = if (isKFQPCScript()) {
fontsArabicKFQPC[pageNo]
@@ -172,4 +173,4 @@ class ReaderVerseDecorator(private val ctx: Context) {
fun TextView.setTextColorNonArabic() {
setTextColor(textColorNonArabic)
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/suppliments/BookmarkViewer.java b/app/src/main/java/com/quranapp/android/suppliments/BookmarkViewer.java
index c574bfd7..a0cb8c5a 100644
--- a/app/src/main/java/com/quranapp/android/suppliments/BookmarkViewer.java
+++ b/app/src/main/java/com/quranapp/android/suppliments/BookmarkViewer.java
@@ -10,7 +10,6 @@
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
-
import androidx.asynclayoutinflater.view.AsyncLayoutInflater;
import androidx.core.content.ContextCompat;
@@ -213,16 +212,18 @@ private void saveEdit(LytBookmarkDialogBinding binding, BookmarkModel model) {
toggleEdit(false, binding);
if (!model.equals(mInitialModel)) {
- mDBHelper.updateBookmark(model.getChapterNo(), model.getFromVerseNo(), model.getToVerseNo(), model.getNote(), nModel -> {
- if (mBookmarkCallbacks != null) {
- mBookmarkCallbacks.onBookmarkUpdated(nModel);
- }
- });
+ mDBHelper.updateBookmark(model.getChapterNo(), model.getFromVerseNo(), model.getToVerseNo(),
+ model.getNote(), nModel -> {
+ if (mBookmarkCallbacks != null) {
+ mBookmarkCallbacks.onBookmarkUpdated(nModel);
+ }
+ });
}
}
public void open(BookmarkModel model) {
- Intent intent = ReaderFactory.prepareVerseRangeIntent(model.getChapterNo(), model.getFromVerseNo(), model.getToVerseNo());
+ Intent intent = ReaderFactory.prepareVerseRangeIntent(model.getChapterNo(), model.getFromVerseNo(),
+ model.getToVerseNo());
intent.setClass(mContext, ActivityReader.class);
mContext.startActivity(intent);
}
@@ -234,7 +235,8 @@ public void removeVerseFromBookmark(BookmarkModel model) {
builder.setButtonsDirection(PeaceDialog.STACKED);
builder.setDialogGravity(PeaceDialog.GRAVITY_BOTTOM);
builder.setNeutralButton(R.string.strLabelCancel, null);
- builder.setNegativeButton(R.string.strLabelRemove, ColorUtils.DANGER, (dialog, which) -> removeBookmarkFinal(model));
+ builder.setNegativeButton(R.string.strLabelRemove, ColorUtils.DANGER,
+ (dialog, which) -> removeBookmarkFinal(model));
builder.setFocusOnNegative(true);
builder.show();
}
diff --git a/app/src/main/java/com/quranapp/android/suppliments/IndexMenu.java b/app/src/main/java/com/quranapp/android/suppliments/IndexMenu.java
index 7a90edde..b45360e5 100644
--- a/app/src/main/java/com/quranapp/android/suppliments/IndexMenu.java
+++ b/app/src/main/java/com/quranapp/android/suppliments/IndexMenu.java
@@ -1,8 +1,5 @@
package com.quranapp.android.suppliments;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
@@ -11,9 +8,10 @@
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
-
import androidx.asynclayoutinflater.view.AsyncLayoutInflater;
import androidx.core.content.ContextCompat;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.google.android.material.divider.MaterialDivider;
import com.peacedesign.android.utils.AppBridge;
@@ -60,7 +58,7 @@ private void init() {
});
mPopup.setWidth((int) (Dimen.getWindowWidth(getContext()) * ContextKt.getFraction(getContext(),
- R.fraction.dmnIndexMenuWidth)));
+ R.fraction.dmnIndexMenuWidth)));
mPopup.setHeight(WRAP_CONTENT);
mPopup.setFocusable(true);
mPopup.setDimBehind(0.7f);
@@ -154,7 +152,7 @@ private void setup(LytIndexMenuBinding binding) {
int[] strokeWidthsHeader = Dimen.createBorderWidthsForBG(0, 0, 0, stroke);
float[] radiiHeader = Dimen.createRadiiForBG(radius, radius, 0, 0);
binding.header.setBackground(
- DrawableUtils.createBackgroundStroked(mBgColor, mBorderColor, strokeWidthsHeader, radiiHeader));
+ DrawableUtils.createBackgroundStroked(mBgColor, mBorderColor, strokeWidthsHeader, radiiHeader));
binding.close.setOnClickListener(v -> close());
}
@@ -201,8 +199,8 @@ public void onClick(View v) {
private void shareApp() {
AppBridge.Sharer sharer = AppBridge.newSharer(getContext());
sharer.setData(mActivity.str(R.string.strMsgShareApp, AppBridge.preparePlayStoreLink(getContext(), false)))
- .setPlatform(AppBridge.Platform.SYSTEM_SHARE)
- .setChooserTitle(getContext().getString(R.string.strTitleShareApp));
+ .setPlatform(AppBridge.Platform.SYSTEM_SHARE)
+ .setChooserTitle(getContext().getString(R.string.strTitleShareApp));
sharer.share();
}
diff --git a/app/src/main/java/com/quranapp/android/suppliments/ReaderLayoutManager.java b/app/src/main/java/com/quranapp/android/suppliments/ReaderLayoutManager.java
index 0941396e..edda87e2 100644
--- a/app/src/main/java/com/quranapp/android/suppliments/ReaderLayoutManager.java
+++ b/app/src/main/java/com/quranapp/android/suppliments/ReaderLayoutManager.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.util.DisplayMetrics;
import android.view.View;
-
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.LinearSmoothScroller;
import androidx.recyclerview.widget.RecyclerView;
diff --git a/app/src/main/java/com/quranapp/android/suppliments/recitation/RecitationMenu.java b/app/src/main/java/com/quranapp/android/suppliments/recitation/RecitationMenu.java
index 7bd97bf0..9c024940 100644
--- a/app/src/main/java/com/quranapp/android/suppliments/recitation/RecitationMenu.java
+++ b/app/src/main/java/com/quranapp/android/suppliments/recitation/RecitationMenu.java
@@ -1,10 +1,5 @@
package com.quranapp.android.suppliments.recitation;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-import static com.quranapp.android.utils.univ.RelativePopupWindow.HorizontalPosition.ALIGN_RIGHT;
-import static com.quranapp.android.utils.univ.RelativePopupWindow.VerticalPosition.ABOVE;
-
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.text.SpannableString;
@@ -14,9 +9,12 @@
import android.text.style.RelativeSizeSpan;
import android.text.style.TypefaceSpan;
import android.view.View;
-
import androidx.asynclayoutinflater.view.AsyncLayoutInflater;
import androidx.core.content.ContextCompat;
+import static com.quranapp.android.utils.univ.RelativePopupWindow.HorizontalPosition.ALIGN_RIGHT;
+import static com.quranapp.android.utils.univ.RelativePopupWindow.VerticalPosition.ABOVE;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.DrawableUtils;
@@ -74,17 +72,17 @@ private void setupView(LytRecitationMenuBinding binding) {
});
int resId = WindowUtils.isRTL(
- mPlayer.getContext()) ? R.drawable.dr_icon_chevron_left : R.drawable.dr_icon_chevron_right;
+ mPlayer.getContext()) ? R.drawable.dr_icon_chevron_left : R.drawable.dr_icon_chevron_right;
Drawable chevronRight = mPlayer.mActivity.drawable(resId);
binding.selectReciter.setDrawables(mPlayer.mActivity.drawable(R.drawable.dr_icon_recitation), null,
- chevronRight, null);
+ chevronRight, null);
binding.repeatCheckbox.setOnCheckedChangeListener((buttonView, isChecked) -> {
mPlayer.setRepeat(isChecked);
ViewKt.disableView(binding.autoplay, isChecked);
});
binding.autoplayCheckbox.setOnCheckedChangeListener(
- (buttonView, isChecked) -> mPlayer.setContinueChapter(isChecked));
+ (buttonView, isChecked) -> mPlayer.setContinueChapter(isChecked));
}
private void reSetup(LytRecitationMenuBinding binding) {
@@ -111,12 +109,12 @@ private CharSequence prepareRecitationTitle(String subtitle) {
if (!TextUtils.isEmpty(subtitle)) {
SpannableString spannable = new SpannableString(subtitle);
spannable.setSpan(new ForegroundColorSpan(ContextCompat.getColor(getContext(), R.color.colorText2)), 0,
- subtitle.length(),
- SPAN_EXCLUSIVE_EXCLUSIVE);
+ subtitle.length(),
+ SPAN_EXCLUSIVE_EXCLUSIVE);
spannable.setSpan(new RelativeSizeSpan(0.93f), 0, subtitle.length(),
- SPAN_EXCLUSIVE_EXCLUSIVE);
+ SPAN_EXCLUSIVE_EXCLUSIVE);
spannable.setSpan(new TypefaceSpan("sans-serif"), 0, subtitle.length(),
- SPAN_EXCLUSIVE_EXCLUSIVE);
+ SPAN_EXCLUSIVE_EXCLUSIVE);
ssb.append("\n").append(spannable);
}
diff --git a/app/src/main/java/com/quranapp/android/utils/IntentUtils.kt b/app/src/main/java/com/quranapp/android/utils/IntentUtils.kt
index 872fc7fd..a480559f 100644
--- a/app/src/main/java/com/quranapp/android/utils/IntentUtils.kt
+++ b/app/src/main/java/com/quranapp/android/utils/IntentUtils.kt
@@ -2,4 +2,4 @@ package com.quranapp.android.utils
object IntentUtils {
const val INTENT_ACTION_APP_LANGUAGE_CHANGED = "intent.action.app_language_changed"
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/Log.kt b/app/src/main/java/com/quranapp/android/utils/Log.kt
index efb4aaa0..8584ddd0 100644
--- a/app/src/main/java/com/quranapp/android/utils/Log.kt
+++ b/app/src/main/java/com/quranapp/android/utils/Log.kt
@@ -25,4 +25,4 @@ object Log {
if (i < len - 1) sb.append(", ")
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/Logger.java b/app/src/main/java/com/quranapp/android/utils/Logger.java
index 580bf023..0554d51d 100644
--- a/app/src/main/java/com/quranapp/android/utils/Logger.java
+++ b/app/src/main/java/com/quranapp/android/utils/Logger.java
@@ -8,7 +8,6 @@
import android.os.Bundle;
import android.util.Log;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -45,8 +44,9 @@ private static String prepareLogMsg(@Nullable Object... msgs) {
StackTraceElement trc = Thread.currentThread().getStackTrace()[4];
String className = trc.getClassName();
className = className.substring(className.lastIndexOf(".") + 1);
- sb.append("(").append(className).append("=>").append(trc.getMethodName()).append(":").append(trc.getLineNumber()).append(
- "): ");
+ sb.append("(").append(className).append("=>").append(trc.getMethodName()).append(":").append(
+ trc.getLineNumber()).append(
+ "): ");
if (msgs != null) {
int len = msgs.length;
diff --git a/app/src/main/java/com/quranapp/android/utils/RVLazyLoadListener.java b/app/src/main/java/com/quranapp/android/utils/RVLazyLoadListener.java
index 361b782e..2667d778 100644
--- a/app/src/main/java/com/quranapp/android/utils/RVLazyLoadListener.java
+++ b/app/src/main/java/com/quranapp/android/utils/RVLazyLoadListener.java
@@ -1,13 +1,12 @@
package com.quranapp.android.utils;
-import static androidx.recyclerview.widget.RecyclerView.LayoutManager;
-import static androidx.recyclerview.widget.RecyclerView.OnScrollListener;
-
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.StaggeredGridLayoutManager;
+import static androidx.recyclerview.widget.RecyclerView.LayoutManager;
+import static androidx.recyclerview.widget.RecyclerView.OnScrollListener;
/**
* Custom Scroll Listener for recycler view to listen to up and down scroll
diff --git a/app/src/main/java/com/quranapp/android/utils/SpeedInputStream.java b/app/src/main/java/com/quranapp/android/utils/SpeedInputStream.java
index 296ceeee..6d2362d4 100644
--- a/app/src/main/java/com/quranapp/android/utils/SpeedInputStream.java
+++ b/app/src/main/java/com/quranapp/android/utils/SpeedInputStream.java
@@ -10,7 +10,7 @@
public class SpeedInputStream extends InputStream {
private static final long ONE_SECOND = 1000;
private final int mMaxSpeed;
- private long downloadedWithinOneSecond = 0L;
+ private long downloadedWithinOneSecond;
private long lastTime;
private final InputStream inputStream;
@@ -25,7 +25,7 @@ public SpeedInputStream(InputStream inputStream, int maxSpeed) {
public int read() throws IOException {
long currentTime;
if (downloadedWithinOneSecond >= mMaxSpeed
- && (((currentTime = System.currentTimeMillis()) - lastTime) < ONE_SECOND)) {
+ && (((currentTime = System.currentTimeMillis()) - lastTime) < ONE_SECOND)) {
try {
Thread.sleep(ONE_SECOND - (currentTime - lastTime));
} catch (InterruptedException e) {
diff --git a/app/src/main/java/com/quranapp/android/utils/app/AppActions.kt b/app/src/main/java/com/quranapp/android/utils/app/AppActions.kt
index 73ff88ff..cac49ec5 100644
--- a/app/src/main/java/com/quranapp/android/utils/app/AppActions.kt
+++ b/app/src/main/java/com/quranapp/android/utils/app/AppActions.kt
@@ -65,25 +65,35 @@ object AppActions {
val localTranslationsVersion = SPAppConfigs.getTranslationsVersion(ctx)
val localRecitationsVersion = SPAppConfigs.getRecitationsVersion(ctx)
- Logger.print("RESOURCE VERSIONS: URLs: local: $localUrlsVersion, server: $urlsVersion")
+ Logger.print(
+ "RESOURCE VERSIONS: URLs: local: $localUrlsVersion, server: $urlsVersion"
+ )
if (urlsVersion > localUrlsVersion) {
SPAppActions.setFetchUrlsForce(ctx, true)
SPAppConfigs.setUrlsVersion(ctx, urlsVersion)
Logger.print("Updated URLs version from $localUrlsVersion to $urlsVersion")
}
- Logger.print("RESOURCE VERSIONS: TRANSLATIONS: local: $localTranslationsVersion, server: $translationsVersion")
+ Logger.print(
+ "RESOURCE VERSIONS: TRANSLATIONS: local: $localTranslationsVersion, server: $translationsVersion"
+ )
if (translationsVersion > localTranslationsVersion) {
SPAppActions.setFetchTranslationsForce(ctx, true)
SPAppConfigs.setTranslationsVersion(ctx, translationsVersion)
- Logger.print("Updated translations version from $localTranslationsVersion to $translationsVersion")
+ Logger.print(
+ "Updated translations version from $localTranslationsVersion to $translationsVersion"
+ )
}
- Logger.print("RESOURCE VERSIONS: RECITATIONS: local: $localRecitationsVersion, server: $recitationsVersion")
+ Logger.print(
+ "RESOURCE VERSIONS: RECITATIONS: local: $localRecitationsVersion, server: $recitationsVersion"
+ )
if (recitationsVersion > localRecitationsVersion) {
SPAppActions.setFetchRecitationsForce(ctx, true)
SPAppConfigs.setRecitationsVersion(ctx, recitationsVersion)
- Logger.print("Updated recitations version from $localRecitationsVersion to $recitationsVersion")
+ Logger.print(
+ "Updated recitations version from $localRecitationsVersion to $recitationsVersion"
+ )
}
} catch (e: Exception) {
e.printStackTrace()
@@ -113,6 +123,5 @@ object AppActions {
Toast.makeText(ctx, R.string.pasteCrashLogGithubIssue, Toast.LENGTH_LONG).show()
}
.show()
-
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/app/AppUtils.kt b/app/src/main/java/com/quranapp/android/utils/app/AppUtils.kt
index 5cfb7979..d0bc44f3 100644
--- a/app/src/main/java/com/quranapp/android/utils/app/AppUtils.kt
+++ b/app/src/main/java/com/quranapp/android/utils/app/AppUtils.kt
@@ -4,8 +4,11 @@ import com.quranapp.android.utils.univ.FileUtils
object AppUtils {
@JvmField
- val BASE_APP_DOWNLOADED_SAVED_DATA_DIR: String = FileUtils.createPath("downloaded", "saved_data")!!
+ val BASE_APP_DOWNLOADED_SAVED_DATA_DIR: String = FileUtils.createPath(
+ "downloaded",
+ "saved_data"
+ )!!
@JvmField
val APP_OTHER_DIR: String = FileUtils.createPath(BASE_APP_DOWNLOADED_SAVED_DATA_DIR, "other")!!
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/app/InfoUtils.kt b/app/src/main/java/com/quranapp/android/utils/app/InfoUtils.kt
index df501615..d8f8d21a 100644
--- a/app/src/main/java/com/quranapp/android/utils/app/InfoUtils.kt
+++ b/app/src/main/java/com/quranapp/android/utils/app/InfoUtils.kt
@@ -55,7 +55,11 @@ object InfoUtils {
MessageUtils.popMessage(
context,
context.getString(R.string.strMsgSomethingWrong),
- "${context.getString(R.string.strMsgCouldNotOpenPage)} ${context.getString(R.string.strMsgTryLater)}",
+ "${context.getString(R.string.strMsgCouldNotOpenPage)} ${
+ context.getString(
+ R.string.strMsgTryLater
+ )
+ }",
context.getString(R.string.strLabelClose),
null
)
@@ -87,4 +91,4 @@ object InfoUtils {
.setUrlBarHidingEnabled(true)
.build()
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/app/NotificationUtils.kt b/app/src/main/java/com/quranapp/android/utils/app/NotificationUtils.kt
index a4453045..471e8e67 100644
--- a/app/src/main/java/com/quranapp/android/utils/app/NotificationUtils.kt
+++ b/app/src/main/java/com/quranapp/android/utils/app/NotificationUtils.kt
@@ -69,10 +69,13 @@ object NotificationUtils {
setShowBadge(true)
enableVibration(true)
- setSound(Settings.System.DEFAULT_NOTIFICATION_URI, AudioAttributes.Builder().apply {
- setUsage(AudioAttributes.USAGE_NOTIFICATION)
- setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
- }.build())
+ setSound(
+ Settings.System.DEFAULT_NOTIFICATION_URI,
+ AudioAttributes.Builder().apply {
+ setUsage(AudioAttributes.USAGE_NOTIFICATION)
+ setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
+ }.build()
+ )
}
}
@@ -80,7 +83,7 @@ object NotificationUtils {
private fun createDownloadsChannel(ctx: Context): NotificationChannel {
return createChannel(
ctx.getString(R.string.strNotifChannelIdDownloads),
- ctx.getString(R.string.strNotifChannelDownloads),
+ ctx.getString(R.string.strNotifChannelDownloads)
)
}
@@ -88,7 +91,7 @@ object NotificationUtils {
private fun createRecitationChannel(ctx: Context): NotificationChannel {
return createChannel(
ctx.getString(R.string.strNotifChannelIdRecitation),
- "Recitation Player",
+ "Recitation Player"
)
}
@@ -117,4 +120,4 @@ object NotificationUtils {
setContentText("")
}.build()
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/app/RecitationManager.kt b/app/src/main/java/com/quranapp/android/utils/app/RecitationManager.kt
index 93864061..677feb65 100644
--- a/app/src/main/java/com/quranapp/android/utils/app/RecitationManager.kt
+++ b/app/src/main/java/com/quranapp/android/utils/app/RecitationManager.kt
@@ -8,12 +8,12 @@ import com.quranapp.android.components.recitation.RecitationModel
import com.quranapp.android.utils.sharedPrefs.SPAppActions
import com.quranapp.android.utils.sharedPrefs.SPReader
import com.quranapp.android.utils.univ.FileUtils
+import java.io.IOException
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import kotlinx.serialization.decodeFromString
-import java.io.IOException
object RecitationManager {
private var availableRecitationsModel: AvailableRecitationsModel? = null
@@ -35,7 +35,11 @@ object RecitationManager {
}
}
- private fun loadRecitations(ctx: Context, force: Boolean, callback: (AvailableRecitationsModel?) -> Unit) {
+ private fun loadRecitations(
+ ctx: Context,
+ force: Boolean,
+ callback: (AvailableRecitationsModel?) -> Unit
+ ) {
val fileUtils = FileUtils.newInstance(ctx)
val recitationsFile = fileUtils.recitationsManifestFile
@@ -87,7 +91,9 @@ object RecitationManager {
val savedRecitationSlug = SPReader.getSavedRecitationSlug(ctx)
try {
- val availableRecitationsModel = JsonHelper.json.decodeFromString(stringData)
+ val availableRecitationsModel = JsonHelper.json.decodeFromString(
+ stringData
+ )
availableRecitationsModel.reciters.forEach { recitationModel ->
if (recitationModel.urlHost.isNullOrEmpty()) {
@@ -104,7 +110,6 @@ object RecitationManager {
}
}
-
@JvmStatic
fun getModel(slug: String): RecitationModel? {
return availableRecitationsModel?.reciters?.firstOrNull { it.slug == slug }
@@ -121,4 +126,4 @@ object RecitationManager {
recitationModel.isChecked = recitationModel.slug == slug
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/app/ThemeUtils.kt b/app/src/main/java/com/quranapp/android/utils/app/ThemeUtils.kt
index 6296a5f7..66c395f3 100644
--- a/app/src/main/java/com/quranapp/android/utils/app/ThemeUtils.kt
+++ b/app/src/main/java/com/quranapp/android/utils/app/ThemeUtils.kt
@@ -43,7 +43,6 @@ object ThemeUtils {
}
}
-
@JvmStatic
fun resolveThemeModeFromSP(context: Context): Int {
return when (SPAppConfigs.getThemeMode(context)) {
@@ -53,4 +52,4 @@ object ThemeUtils {
else -> AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/app/UpdateManager.kt b/app/src/main/java/com/quranapp/android/utils/app/UpdateManager.kt
index c4eb6aa8..42058e60 100644
--- a/app/src/main/java/com/quranapp/android/utils/app/UpdateManager.kt
+++ b/app/src/main/java/com/quranapp/android/utils/app/UpdateManager.kt
@@ -30,11 +30,11 @@ import com.quranapp.android.utils.extensions.removeView
import com.quranapp.android.utils.extensions.updateMargins
import com.quranapp.android.utils.extensions.visible
import com.quranapp.android.utils.univ.FileUtils
+import kotlin.math.pow
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.serialization.encodeToString
-import kotlin.math.pow
class UpdateManager(private val ctx: Context, private val parent: ViewGroup?) {
private val mIconAnimationHandler = Handler(Looper.getMainLooper())
@@ -100,7 +100,9 @@ class UpdateManager(private val ctx: Context, private val parent: ViewGroup?) {
private fun showUpdateAvailableDialog(isCritical: Boolean, runOnDismiss: Runnable? = null) {
val binding = LytUpdateAppDialogBinding.inflate(LayoutInflater.from(ctx))
- binding.txt.setText(if (isCritical) R.string.strMsgUpdateAvailable2Continue else R.string.strMsgUpdateAvailable4Dialog)
+ binding.txt.setText(
+ if (isCritical) R.string.strMsgUpdateAvailable2Continue else R.string.strMsgUpdateAvailable4Dialog
+ )
mIconAnimators.add(animateUpdateIcon(binding.icon))
val builder = PeaceDialog.newBuilder(ctx)
@@ -148,11 +150,18 @@ class UpdateManager(private val ctx: Context, private val parent: ViewGroup?) {
parent.visible()
}
-
}
private fun animateUpdateIcon(iconView: View): ObjectAnimator {
- val pvhTransY = PropertyValuesHolder.ofFloat(View.TRANSLATION_Y, 0f, 11f, -20f, 10f, -3f, 0f)
+ val pvhTransY = PropertyValuesHolder.ofFloat(
+ View.TRANSLATION_Y,
+ 0f,
+ 11f,
+ -20f,
+ 10f,
+ -3f,
+ 0f
+ )
val pvhScaleX = PropertyValuesHolder.ofFloat(View.SCALE_X, 1f, 1.1f, .8f, 1.3f, 1.03f, 1f)
val pvhScaleY = PropertyValuesHolder.ofFloat(View.SCALE_Y, 1f, .8f, 1.1f, 0.9f, 1f, 1f)
return ObjectAnimator.ofPropertyValuesHolder(iconView, pvhTransY, pvhScaleX, pvhScaleY).apply {
@@ -177,4 +186,4 @@ class UpdateManager(private val ctx: Context, private val parent: ViewGroup?) {
fun onResume() {
mIconAnimators.forEach { it.start() }
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/app/UrlsManager.kt b/app/src/main/java/com/quranapp/android/utils/app/UrlsManager.kt
index b8c53b25..866cfd0c 100644
--- a/app/src/main/java/com/quranapp/android/utils/app/UrlsManager.kt
+++ b/app/src/main/java/com/quranapp/android/utils/app/UrlsManager.kt
@@ -10,15 +10,15 @@ import com.quranapp.android.utils.sharedPrefs.SPAppActions
import com.quranapp.android.utils.sharedPrefs.SPAppActions.addToPendingAction
import com.quranapp.android.utils.sharedPrefs.SPAppActions.setFetchUrlsForce
import com.quranapp.android.utils.univ.FileUtils
+import java.io.File
+import java.io.IOException
+import java.util.concurrent.CancellationException
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.encodeToString
-import java.io.File
-import java.io.IOException
-import java.util.concurrent.CancellationException
class UrlsManager(private val ctx: Context) {
companion object {
@@ -27,7 +27,10 @@ class UrlsManager(private val ctx: Context) {
const val URL_KEY_ABOUT = "about"
const val URL_KEY_HELP = "help"
- private val DIR_NAME_4_URLS = FileUtils.createPath(BASE_APP_DOWNLOADED_SAVED_DATA_DIR, "urls")
+ private val DIR_NAME_4_URLS = FileUtils.createPath(
+ BASE_APP_DOWNLOADED_SAVED_DATA_DIR,
+ "urls"
+ )
private const val URLS_FILE_NAME = "urls.json"
private var sAppUrls: AppUrls? = null
}
@@ -35,10 +38,9 @@ class UrlsManager(private val ctx: Context) {
private val mFileUtils = FileUtils.newInstance(ctx)
private var mCancelled = false
-
fun getUrlsJson(
readyCallback: (AppUrls) -> Unit,
- failedCallback: ((Exception) -> Unit)?,
+ failedCallback: ((Exception) -> Unit)?
) {
if (sAppUrls != null) {
readyCallback(sAppUrls!!)
@@ -58,7 +60,6 @@ class UrlsManager(private val ctx: Context) {
addToPendingAction(ctx, AppActions.APP_ACTION_URLS_UPDATE, null)
failedCallback?.invoke(e)
}
-
} else {
if (!urlsFile.exists() && !mFileUtils.createFile(urlsFile)) {
failedCallback?.invoke(IOException("Could not create urlsFile."))
@@ -96,8 +97,7 @@ class UrlsManager(private val ctx: Context) {
}
}
-
fun cancel() {
mCancelled = true
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/chapterInfo/ChapterInfoJSInterface.java b/app/src/main/java/com/quranapp/android/utils/chapterInfo/ChapterInfoJSInterface.java
index 3eddd1f4..bd88490e 100644
--- a/app/src/main/java/com/quranapp/android/utils/chapterInfo/ChapterInfoJSInterface.java
+++ b/app/src/main/java/com/quranapp/android/utils/chapterInfo/ChapterInfoJSInterface.java
@@ -3,9 +3,9 @@
import android.webkit.JavascriptInterface;
import android.widget.Toast;
-import com.quranapp.android.utils.Log;
import com.quranapp.android.activities.ActivityChapInfo;
import com.quranapp.android.components.quran.QuranMeta;
+import com.quranapp.android.utils.Log;
import com.quranapp.android.utils.reader.TranslUtils;
import com.quranapp.android.utils.univ.MessageUtils;
diff --git a/app/src/main/java/com/quranapp/android/utils/chapterInfo/ChapterInfoUtils.java b/app/src/main/java/com/quranapp/android/utils/chapterInfo/ChapterInfoUtils.java
index 78e11900..49f07c4c 100644
--- a/app/src/main/java/com/quranapp/android/utils/chapterInfo/ChapterInfoUtils.java
+++ b/app/src/main/java/com/quranapp/android/utils/chapterInfo/ChapterInfoUtils.java
@@ -6,7 +6,8 @@
import com.quranapp.android.utils.univ.FileUtils;
public class ChapterInfoUtils {
- public static final String DIR_NAME = FileUtils.createPath(AppUtils.BASE_APP_DOWNLOADED_SAVED_DATA_DIR, "chapters_info");
+ public static final String DIR_NAME = FileUtils.createPath(AppUtils.BASE_APP_DOWNLOADED_SAVED_DATA_DIR,
+ "chapters_info");
public static final String CHAPTER_INFO_FILE_NAME_FORMAT = "chapter_info_%d-%s.txt";
diff --git a/app/src/main/java/com/quranapp/android/utils/chapterInfo/ChapterInfoWebViewClient.java b/app/src/main/java/com/quranapp/android/utils/chapterInfo/ChapterInfoWebViewClient.java
index 37236f4f..8796ac6e 100644
--- a/app/src/main/java/com/quranapp/android/utils/chapterInfo/ChapterInfoWebViewClient.java
+++ b/app/src/main/java/com/quranapp/android/utils/chapterInfo/ChapterInfoWebViewClient.java
@@ -5,14 +5,13 @@
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
import android.webkit.WebViewClient;
-
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
-import com.quranapp.android.utils.Log;
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityChapInfo;
import com.quranapp.android.components.quran.QuranMeta;
+import com.quranapp.android.utils.Log;
import com.quranapp.android.utils.quran.QuranUtils;
import org.json.JSONException;
diff --git a/app/src/main/java/com/quranapp/android/utils/exceptions/CustomExceptionHandler.kt b/app/src/main/java/com/quranapp/android/utils/exceptions/CustomExceptionHandler.kt
index 6cac6fbf..14391719 100644
--- a/app/src/main/java/com/quranapp/android/utils/exceptions/CustomExceptionHandler.kt
+++ b/app/src/main/java/com/quranapp/android/utils/exceptions/CustomExceptionHandler.kt
@@ -5,7 +5,7 @@ import com.quranapp.android.utils.sharedPrefs.SPLog
import org.apache.commons.lang3.exception.ExceptionUtils
class CustomExceptionHandler(
- private val ctx: Context,
+ private val ctx: Context
) : Thread.UncaughtExceptionHandler {
private val defaultExceptionHandler = Thread.getDefaultUncaughtExceptionHandler()
@@ -13,4 +13,4 @@ class CustomExceptionHandler(
SPLog.saveLastCrashLog(ctx, ExceptionUtils.getStackTrace(exc))
defaultExceptionHandler?.uncaughtException(thread, exc)
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/extended/GapedItemDecoration.java b/app/src/main/java/com/quranapp/android/utils/extended/GapedItemDecoration.java
index 6e2f94c2..b6d62229 100644
--- a/app/src/main/java/com/quranapp/android/utils/extended/GapedItemDecoration.java
+++ b/app/src/main/java/com/quranapp/android/utils/extended/GapedItemDecoration.java
@@ -2,7 +2,6 @@
import android.graphics.Rect;
import android.view.View;
-
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
diff --git a/app/src/main/java/com/quranapp/android/utils/extensions/Context.kt b/app/src/main/java/com/quranapp/android/utils/extensions/Context.kt
index 2aa1d820..adad6cad 100644
--- a/app/src/main/java/com/quranapp/android/utils/extensions/Context.kt
+++ b/app/src/main/java/com/quranapp/android/utils/extensions/Context.kt
@@ -23,11 +23,15 @@ fun Context.isRTL() = getBoolean(R.bool.isRTL)
fun Context.getBoolean(@BoolRes boolResId: Int): Boolean = resources.getBoolean(boolResId)
-fun Context.getStringArray(@ArrayRes arrayResId: Int): Array = resources.getStringArray(arrayResId)
+fun Context.getStringArray(@ArrayRes arrayResId: Int): Array = resources.getStringArray(
+ arrayResId
+)
fun Context.getIntArray(@ArrayRes arrayResId: Int): IntArray = resources.getIntArray(arrayResId)
-fun Context.getTypedArray(@ArrayRes arrayResId: Int): TypedArray = resources.obtainTypedArray(arrayResId)
+fun Context.getTypedArray(@ArrayRes arrayResId: Int): TypedArray = resources.obtainTypedArray(
+ arrayResId
+)
@ColorInt
fun Context.color(@ColorRes colorResId: Int): Int = ContextCompat.getColor(this, colorResId)
@@ -40,6 +44,7 @@ fun Context.obtainPrimaryColor(): Int {
@ColorInt
fun Context.obtainWindowBackgroundColor(): Int {
val attributes = this.obtainStyledAttributes(intArrayOf(android.R.attr.windowBackground))
+
@ColorInt val backgroundColor = attributes.getColor(0, 0)
attributes.recycle()
return backgroundColor
diff --git a/app/src/main/java/com/quranapp/android/utils/extensions/DataType.kt b/app/src/main/java/com/quranapp/android/utils/extensions/DataType.kt
index a89466a7..3055eaea 100644
--- a/app/src/main/java/com/quranapp/android/utils/extensions/DataType.kt
+++ b/app/src/main/java/com/quranapp/android/utils/extensions/DataType.kt
@@ -109,4 +109,4 @@ inline fun runOnTimeout(crossinline block: () -> Unit, timeoutMillis: Long) {
Handler(Looper.getMainLooper()).postDelayed({
block()
}, timeoutMillis)
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/extensions/LayoutParams.kt b/app/src/main/java/com/quranapp/android/utils/extensions/LayoutParams.kt
index 97f3fb0d..52125ba2 100644
--- a/app/src/main/java/com/quranapp/android/utils/extensions/LayoutParams.kt
+++ b/app/src/main/java/com/quranapp/android/utils/extensions/LayoutParams.kt
@@ -19,4 +19,4 @@ fun ViewGroup.MarginLayoutParams.updateMarginHorizontal(margin: Int) {
fun ViewGroup.MarginLayoutParams.updateMarginVertical(margin: Int) {
topMargin = margin
bottomMargin = margin
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/extensions/ScrollView.kt b/app/src/main/java/com/quranapp/android/utils/extensions/ScrollView.kt
index 39c676c0..2532a898 100644
--- a/app/src/main/java/com/quranapp/android/utils/extensions/ScrollView.kt
+++ b/app/src/main/java/com/quranapp/android/utils/extensions/ScrollView.kt
@@ -25,4 +25,4 @@ fun NestedScrollView.scrollToViewVertically(view: View) {
val childOffset = Point()
getDeepChildOffset(this, view.parent, view, childOffset)
this.smoothScrollTo(0, childOffset.y)
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/extensions/SerializableExtra.kt b/app/src/main/java/com/quranapp/android/utils/extensions/SerializableExtra.kt
index 6469a007..c3cf6736 100644
--- a/app/src/main/java/com/quranapp/android/utils/extensions/SerializableExtra.kt
+++ b/app/src/main/java/com/quranapp/android/utils/extensions/SerializableExtra.kt
@@ -11,6 +11,9 @@ inline fun Bundle.serializableExtra(key: String): T?
}
inline fun Intent.serializableExtra(key: String): T? = when {
- Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU -> getSerializableExtra(key, T::class.java)
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU -> getSerializableExtra(
+ key,
+ T::class.java
+ )
else -> @Suppress("DEPRECATION") getSerializableExtra(key) as? T
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/extensions/TextView.kt b/app/src/main/java/com/quranapp/android/utils/extensions/TextView.kt
index ff602e51..fd79edce 100644
--- a/app/src/main/java/com/quranapp/android/utils/extensions/TextView.kt
+++ b/app/src/main/java/com/quranapp/android/utils/extensions/TextView.kt
@@ -12,4 +12,4 @@ fun TextView.setTextSizePx(@DimenRes dimenResId: Int) {
fun TextView.setTextColorResource(@ColorRes colorResId: Int) {
setTextColor(ContextCompat.getColor(context, colorResId))
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/extensions/View.kt b/app/src/main/java/com/quranapp/android/utils/extensions/View.kt
index c66fb32b..f63924f3 100644
--- a/app/src/main/java/com/quranapp/android/utils/extensions/View.kt
+++ b/app/src/main/java/com/quranapp/android/utils/extensions/View.kt
@@ -9,7 +9,6 @@ import androidx.core.view.children
import androidx.recyclerview.widget.LinearSnapHelper
import androidx.recyclerview.widget.RecyclerView
-
fun View.alphaDisableView(disable: Boolean) {
alpha = if (disable) 0.5f else 1f
}
@@ -56,7 +55,12 @@ fun RecyclerView.enableSnappingOnRecyclerView(): LinearSnapHelper {
}
}
-fun getDeepChildOffset(mainParent: ViewGroup, parent: ViewParent, child: View, accumulatedOffset: Point) {
+fun getDeepChildOffset(
+ mainParent: ViewGroup,
+ parent: ViewParent,
+ child: View,
+ accumulatedOffset: Point
+) {
val parentGroup = parent as ViewGroup
accumulatedOffset.y += child.top
@@ -90,14 +94,18 @@ fun getRelativeTopRecursive(view: View?, till: Class<*>, inclusiveTill: Boolean
return if (till.name.equals(view.javaClass.name, ignoreCase = true)) {
if (inclusiveTill) {
view.top
- } else 0
+ } else {
+ 0
+ }
} else {
val top = view.top
val parent = view.parent
if (parent !is View || parent === view.rootView) {
top
- } else top + getRelativeTopRecursive(parent as View, till, inclusiveTill)
+ } else {
+ top + getRelativeTopRecursive(parent as View, till, inclusiveTill)
+ }
}
}
-fun View.getLayoutInflater(): LayoutInflater = LayoutInflater.from(context)
\ No newline at end of file
+fun View.getLayoutInflater(): LayoutInflater = LayoutInflater.from(context)
diff --git a/app/src/main/java/com/quranapp/android/utils/gesture/HoverOpacityEffect.kt b/app/src/main/java/com/quranapp/android/utils/gesture/HoverOpacityEffect.kt
index b5db9252..ec26ef50 100644
--- a/app/src/main/java/com/quranapp/android/utils/gesture/HoverOpacityEffect.kt
+++ b/app/src/main/java/com/quranapp/android/utils/gesture/HoverOpacityEffect.kt
@@ -22,7 +22,6 @@ class HoverOpacityEffect(
return true
}
-
private fun down(v: View) {
v.alpha = toOpacity
}
@@ -30,4 +29,4 @@ class HoverOpacityEffect(
private fun up(v: View) {
v.alpha = fromOpacity
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/gesture/HoverPushEffect.kt b/app/src/main/java/com/quranapp/android/utils/gesture/HoverPushEffect.kt
index 90178145..3414d019 100644
--- a/app/src/main/java/com/quranapp/android/utils/gesture/HoverPushEffect.kt
+++ b/app/src/main/java/com/quranapp/android/utils/gesture/HoverPushEffect.kt
@@ -52,8 +52,7 @@ open class HoverPushEffect(pressure: Pressure = Pressure.MEDIUM) : View.OnTouchL
}.start()
}
-
enum class Pressure {
LOW, MEDIUM, HIGH
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/gesture/HoverPushOpacityEffect.kt b/app/src/main/java/com/quranapp/android/utils/gesture/HoverPushOpacityEffect.kt
index 3f38e74d..2a84f469 100644
--- a/app/src/main/java/com/quranapp/android/utils/gesture/HoverPushOpacityEffect.kt
+++ b/app/src/main/java/com/quranapp/android/utils/gesture/HoverPushOpacityEffect.kt
@@ -25,4 +25,4 @@ class HoverPushOpacityEffect(pressure: Pressure = Pressure.MEDIUM) : HoverPushEf
}
}.start()
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/others/ShortcutUtils.kt b/app/src/main/java/com/quranapp/android/utils/others/ShortcutUtils.kt
index d7ba3cfb..7e2ea151 100644
--- a/app/src/main/java/com/quranapp/android/utils/others/ShortcutUtils.kt
+++ b/app/src/main/java/com/quranapp/android/utils/others/ShortcutUtils.kt
@@ -36,12 +36,24 @@ object ShortcutUtils {
@JvmStatic
fun pushLastVersesShortcut(
- ctx: Context, quranMeta: QuranMeta, readType: Int, readerStyle: Int,
- juzNo: Int, chapterNo: Int, fromVerse: Int, toVerse: Int
+ ctx: Context,
+ quranMeta: QuranMeta,
+ readType: Int,
+ readerStyle: Int,
+ juzNo: Int,
+ chapterNo: Int,
+ fromVerse: Int,
+ toVerse: Int
) {
val id = ctx.getString(R.string.strShortcutIdLastVerses)
val intent = ReaderFactory.prepareLastVersesIntentForShortcut(
- quranMeta, juzNo, chapterNo, fromVerse, toVerse, readType, readerStyle
+ quranMeta,
+ juzNo,
+ chapterNo,
+ fromVerse,
+ toVerse,
+ readType,
+ readerStyle
)
if (intent == null) {
@@ -65,4 +77,4 @@ object ShortcutUtils {
e.printStackTrace()
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/quran/QuranConstants.kt b/app/src/main/java/com/quranapp/android/utils/quran/QuranConstants.kt
index 7509c0cd..51eacd25 100644
--- a/app/src/main/java/com/quranapp/android/utils/quran/QuranConstants.kt
+++ b/app/src/main/java/com/quranapp/android/utils/quran/QuranConstants.kt
@@ -22,4 +22,4 @@ object QuranConstants {
const val KEY_RECITATION_STYLE = "style"
const val KEY_RECITATION_URL_HOST = "url-host"
const val KEY_RECITATION_URL_PATH = "url-path"
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/quran/QuranUtils.java b/app/src/main/java/com/quranapp/android/utils/quran/QuranUtils.java
index d063e52a..e8c7733e 100644
--- a/app/src/main/java/com/quranapp/android/utils/quran/QuranUtils.java
+++ b/app/src/main/java/com/quranapp/android/utils/quran/QuranUtils.java
@@ -14,121 +14,236 @@ public static String getBismillahUnicode() {
public static String getChapterIconUnicode(int chapterNumber) {
String unicode = null;
switch (chapterNumber) {
- case 0: unicode = "\ue903"; break; // Surah text
- case 1: unicode = "\ue904"; break;
- case 2: unicode = "\ue905"; break;
- case 3: unicode = "\ue906"; break;
- case 4: unicode = "\ue907"; break;
- case 5: unicode = "\ue908"; break;
- case 6: unicode = "\ue90b"; break;
- case 7: unicode = "\ue90c"; break;
- case 8: unicode = "\ue90d"; break;
- case 9: unicode = "\ue90e"; break;
- case 10: unicode = "\ue90f"; break;
- case 11: unicode = "\ue910"; break;
- case 12: unicode = "\ue911"; break;
- case 13: unicode = "\ue912"; break;
- case 14: unicode = "\ue913"; break;
- case 15: unicode = "\ue914"; break;
- case 16: unicode = "\ue915"; break;
- case 17: unicode = "\ue916"; break;
- case 18: unicode = "\ue917"; break;
- case 19: unicode = "\ue918"; break;
- case 20: unicode = "\ue919"; break;
- case 21: unicode = "\ue91a"; break;
- case 22: unicode = "\ue91b"; break;
- case 23: unicode = "\ue91c"; break;
- case 24: unicode = "\ue91d"; break;
- case 25: unicode = "\ue91e"; break;
- case 26: unicode = "\ue91f"; break;
- case 27: unicode = "\ue920"; break;
- case 28: unicode = "\ue921"; break;
- case 29: unicode = "\ue922"; break;
- case 30: unicode = "\ue923"; break;
- case 31: unicode = "\ue924"; break;
- case 32: unicode = "\ue925"; break;
- case 33: unicode = "\ue926"; break;
- case 34: unicode = "\ue92e"; break;
- case 35: unicode = "\ue92f"; break;
- case 36: unicode = "\ue930"; break;
- case 37: unicode = "\ue931"; break;
- case 38: unicode = "\ue909"; break;
- case 39: unicode = "\ue90a"; break;
- case 40: unicode = "\ue927"; break;
- case 41: unicode = "\ue928"; break;
- case 42: unicode = "\ue929"; break;
- case 43: unicode = "\ue92a"; break;
- case 44: unicode = "\ue92b"; break;
- case 45: unicode = "\ue92c"; break;
- case 46: unicode = "\ue92d"; break;
- case 47: unicode = "\ue932"; break;
- case 48: unicode = "\ue902"; break;
- case 49: unicode = "\ue933"; break;
- case 50: unicode = "\ue934"; break;
- case 51: unicode = "\ue935"; break;
- case 52: unicode = "\ue936"; break;
- case 53: unicode = "\ue937"; break;
- case 54: unicode = "\ue938"; break;
- case 55: unicode = "\ue939"; break;
- case 56: unicode = "\ue93a"; break;
- case 57: unicode = "\ue93b"; break;
- case 58: unicode = "\ue93c"; break;
- case 59: unicode = "\ue900"; break;
- case 60: unicode = "\ue901"; break;
- case 61: unicode = "\ue941"; break;
- case 62: unicode = "\ue942"; break;
- case 63: unicode = "\ue943"; break;
- case 64: unicode = "\ue944"; break;
- case 65: unicode = "\ue945"; break;
- case 66: unicode = "\ue946"; break;
- case 67: unicode = "\ue947"; break;
- case 68: unicode = "\ue948"; break;
- case 69: unicode = "\ue949"; break;
- case 70: unicode = "\ue94a"; break;
- case 71: unicode = "\ue94b"; break;
- case 72: unicode = "\ue94c"; break;
- case 73: unicode = "\ue94d"; break;
- case 74: unicode = "\ue94e"; break;
- case 75: unicode = "\ue94f"; break;
- case 76: unicode = "\ue950"; break;
- case 77: unicode = "\ue951"; break;
- case 78: unicode = "\ue952"; break;
- case 79: unicode = "\ue93d"; break;
- case 80: unicode = "\ue93e"; break;
- case 81: unicode = "\ue93f"; break;
- case 82: unicode = "\ue940"; break;
- case 83: unicode = "\ue953"; break;
- case 84: unicode = "\ue954"; break;
- case 85: unicode = "\ue955"; break;
- case 86: unicode = "\ue956"; break;
- case 87: unicode = "\ue957"; break;
- case 88: unicode = "\ue958"; break;
- case 89: unicode = "\ue959"; break;
- case 90: unicode = "\ue95a"; break;
- case 91: unicode = "\ue95b"; break;
- case 92: unicode = "\ue95c"; break;
- case 93: unicode = "\ue95d"; break;
- case 94: unicode = "\ue95e"; break;
- case 95: unicode = "\ue95f"; break;
- case 96: unicode = "\ue960"; break;
- case 97: unicode = "\ue961"; break;
- case 98: unicode = "\ue962"; break;
- case 99: unicode = "\ue963"; break;
- case 100: unicode = "\ue964"; break;
- case 101: unicode = "\ue965"; break;
- case 102: unicode = "\ue966"; break;
- case 103: unicode = "\ue967"; break;
- case 104: unicode = "\ue968"; break;
- case 105: unicode = "\ue969"; break;
- case 106: unicode = "\ue96a"; break;
- case 107: unicode = "\ue96b"; break;
- case 108: unicode = "\ue96c"; break;
- case 109: unicode = "\ue96d"; break;
- case 110: unicode = "\ue96e"; break;
- case 111: unicode = "\ue96f"; break;
- case 112: unicode = "\ue970"; break;
- case 113: unicode = "\ue971"; break;
- case 114: unicode = "\ue972"; break;
+ case 0: unicode = "\ue903";
+ break; // Surah text
+ case 1: unicode = "\ue904";
+ break;
+ case 2: unicode = "\ue905";
+ break;
+ case 3: unicode = "\ue906";
+ break;
+ case 4: unicode = "\ue907";
+ break;
+ case 5: unicode = "\ue908";
+ break;
+ case 6: unicode = "\ue90b";
+ break;
+ case 7: unicode = "\ue90c";
+ break;
+ case 8: unicode = "\ue90d";
+ break;
+ case 9: unicode = "\ue90e";
+ break;
+ case 10: unicode = "\ue90f";
+ break;
+ case 11: unicode = "\ue910";
+ break;
+ case 12: unicode = "\ue911";
+ break;
+ case 13: unicode = "\ue912";
+ break;
+ case 14: unicode = "\ue913";
+ break;
+ case 15: unicode = "\ue914";
+ break;
+ case 16: unicode = "\ue915";
+ break;
+ case 17: unicode = "\ue916";
+ break;
+ case 18: unicode = "\ue917";
+ break;
+ case 19: unicode = "\ue918";
+ break;
+ case 20: unicode = "\ue919";
+ break;
+ case 21: unicode = "\ue91a";
+ break;
+ case 22: unicode = "\ue91b";
+ break;
+ case 23: unicode = "\ue91c";
+ break;
+ case 24: unicode = "\ue91d";
+ break;
+ case 25: unicode = "\ue91e";
+ break;
+ case 26: unicode = "\ue91f";
+ break;
+ case 27: unicode = "\ue920";
+ break;
+ case 28: unicode = "\ue921";
+ break;
+ case 29: unicode = "\ue922";
+ break;
+ case 30: unicode = "\ue923";
+ break;
+ case 31: unicode = "\ue924";
+ break;
+ case 32: unicode = "\ue925";
+ break;
+ case 33: unicode = "\ue926";
+ break;
+ case 34: unicode = "\ue92e";
+ break;
+ case 35: unicode = "\ue92f";
+ break;
+ case 36: unicode = "\ue930";
+ break;
+ case 37: unicode = "\ue931";
+ break;
+ case 38: unicode = "\ue909";
+ break;
+ case 39: unicode = "\ue90a";
+ break;
+ case 40: unicode = "\ue927";
+ break;
+ case 41: unicode = "\ue928";
+ break;
+ case 42: unicode = "\ue929";
+ break;
+ case 43: unicode = "\ue92a";
+ break;
+ case 44: unicode = "\ue92b";
+ break;
+ case 45: unicode = "\ue92c";
+ break;
+ case 46: unicode = "\ue92d";
+ break;
+ case 47: unicode = "\ue932";
+ break;
+ case 48: unicode = "\ue902";
+ break;
+ case 49: unicode = "\ue933";
+ break;
+ case 50: unicode = "\ue934";
+ break;
+ case 51: unicode = "\ue935";
+ break;
+ case 52: unicode = "\ue936";
+ break;
+ case 53: unicode = "\ue937";
+ break;
+ case 54: unicode = "\ue938";
+ break;
+ case 55: unicode = "\ue939";
+ break;
+ case 56: unicode = "\ue93a";
+ break;
+ case 57: unicode = "\ue93b";
+ break;
+ case 58: unicode = "\ue93c";
+ break;
+ case 59: unicode = "\ue900";
+ break;
+ case 60: unicode = "\ue901";
+ break;
+ case 61: unicode = "\ue941";
+ break;
+ case 62: unicode = "\ue942";
+ break;
+ case 63: unicode = "\ue943";
+ break;
+ case 64: unicode = "\ue944";
+ break;
+ case 65: unicode = "\ue945";
+ break;
+ case 66: unicode = "\ue946";
+ break;
+ case 67: unicode = "\ue947";
+ break;
+ case 68: unicode = "\ue948";
+ break;
+ case 69: unicode = "\ue949";
+ break;
+ case 70: unicode = "\ue94a";
+ break;
+ case 71: unicode = "\ue94b";
+ break;
+ case 72: unicode = "\ue94c";
+ break;
+ case 73: unicode = "\ue94d";
+ break;
+ case 74: unicode = "\ue94e";
+ break;
+ case 75: unicode = "\ue94f";
+ break;
+ case 76: unicode = "\ue950";
+ break;
+ case 77: unicode = "\ue951";
+ break;
+ case 78: unicode = "\ue952";
+ break;
+ case 79: unicode = "\ue93d";
+ break;
+ case 80: unicode = "\ue93e";
+ break;
+ case 81: unicode = "\ue93f";
+ break;
+ case 82: unicode = "\ue940";
+ break;
+ case 83: unicode = "\ue953";
+ break;
+ case 84: unicode = "\ue954";
+ break;
+ case 85: unicode = "\ue955";
+ break;
+ case 86: unicode = "\ue956";
+ break;
+ case 87: unicode = "\ue957";
+ break;
+ case 88: unicode = "\ue958";
+ break;
+ case 89: unicode = "\ue959";
+ break;
+ case 90: unicode = "\ue95a";
+ break;
+ case 91: unicode = "\ue95b";
+ break;
+ case 92: unicode = "\ue95c";
+ break;
+ case 93: unicode = "\ue95d";
+ break;
+ case 94: unicode = "\ue95e";
+ break;
+ case 95: unicode = "\ue95f";
+ break;
+ case 96: unicode = "\ue960";
+ break;
+ case 97: unicode = "\ue961";
+ break;
+ case 98: unicode = "\ue962";
+ break;
+ case 99: unicode = "\ue963";
+ break;
+ case 100: unicode = "\ue964";
+ break;
+ case 101: unicode = "\ue965";
+ break;
+ case 102: unicode = "\ue966";
+ break;
+ case 103: unicode = "\ue967";
+ break;
+ case 104: unicode = "\ue968";
+ break;
+ case 105: unicode = "\ue969";
+ break;
+ case 106: unicode = "\ue96a";
+ break;
+ case 107: unicode = "\ue96b";
+ break;
+ case 108: unicode = "\ue96c";
+ break;
+ case 109: unicode = "\ue96d";
+ break;
+ case 110: unicode = "\ue96e";
+ break;
+ case 111: unicode = "\ue96f";
+ break;
+ case 112: unicode = "\ue970";
+ break;
+ case 113: unicode = "\ue971";
+ break;
+ case 114: unicode = "\ue972";
+ break;
}
return unicode;
}
@@ -136,120 +251,234 @@ public static String getChapterIconUnicode(int chapterNumber) {
public static String getChapterIconValue(int chapterNumber) {
String value = null;
switch (chapterNumber) {
- case 1: value = "ﮍ"; break;
- case 2: value = "ﮎ"; break;
- case 3: value = "ﮏ"; break;
- case 4: value = "ﮐ"; break;
- case 5: value = "ﮑ"; break;
- case 6: value = "ﮒ"; break;
- case 7: value = "ﮓ"; break;
- case 8: value = "ﮔ"; break;
- case 9: value = "ﮕ"; break;
- case 10: value = "ﮖ"; break;
- case 11: value = "ﮗ"; break;
- case 12: value = "ﮘ"; break;
- case 13: value = "ﮙ"; break;
- case 14: value = "ﮚ"; break;
- case 15: value = "ﮛ"; break;
- case 16: value = "ﮜ"; break;
- case 17: value = "ﮝ"; break;
- case 18: value = "ﮞ"; break;
- case 19: value = "ﮟ"; break;
- case 20: value = "ﮠ"; break;
- case 21: value = "ﮡ"; break;
- case 22: value = "ﮢ"; break;
- case 23: value = "ﮣ"; break;
- case 24: value = "ﮤ"; break;
- case 25: value = "ﮥ"; break;
- case 26: value = "ﮦ"; break;
- case 27: value = "ﮧ"; break;
- case 28: value = "ﮨ"; break;
- case 29: value = "ﮩ"; break;
- case 30: value = "ﮪ"; break;
- case 31: value = "ﮫ"; break;
- case 32: value = "ﮬ"; break;
- case 33: value = "ﮭ"; break;
- case 34: value = "ﮮ"; break;
- case 35: value = "ﮯ"; break;
- case 36: value = "ﮰ"; break;
- case 37: value = "ﮱ"; break;
- case 38: value = "ﯓ"; break;
- case 39: value = "ﯔ"; break;
- case 40: value = "ﯕ"; break;
- case 41: value = "ﯖ"; break;
- case 42: value = "ﯗ"; break;
- case 43: value = "ﯘ"; break;
- case 44: value = "ﯙ"; break;
- case 45: value = "ﯚ"; break;
- case 46: value = "ﯛ"; break;
- case 47: value = "ﯜ"; break;
- case 48: value = "ﯝ"; break;
- case 49: value = "ﯞ"; break;
- case 50: value = "ﯟ"; break;
- case 51: value = "ﯠ"; break;
- case 52: value = "ﯡ"; break;
- case 53: value = "ﯢ"; break;
- case 54: value = "ﯣ"; break;
- case 55: value = "ﯤ"; break;
- case 56: value = "ﯥ"; break;
- case 57: value = "ﯦ"; break;
- case 58: value = "ﯧ"; break;
- case 59: value = "ﯨ"; break;
- case 60: value = "ﯩ"; break;
- case 61: value = "ﯪ"; break;
- case 62: value = "ﯫ"; break;
- case 63: value = "ﯬ"; break;
- case 64: value = "ﯭ"; break;
- case 65: value = "ﯮ"; break;
- case 66: value = "ﯯ"; break;
- case 67: value = "ﯰ"; break;
- case 68: value = "ﯱ"; break;
- case 69: value = "ﯲ"; break;
- case 70: value = "ﯳ"; break;
- case 71: value = "ﯴ"; break;
- case 72: value = "ﯵ"; break;
- case 73: value = "ﯶ"; break;
- case 74: value = "ﯷ"; break;
- case 75: value = "ﯸ"; break;
- case 76: value = "ﯹ"; break;
- case 77: value = "ﯺ"; break;
- case 78: value = "ﯻ"; break;
- case 79: value = "ﯼ"; break;
- case 80: value = "ﯽ"; break;
- case 81: value = "ﯾ"; break;
- case 82: value = "ﯿ"; break;
- case 83: value = "ﰀ"; break;
- case 84: value = "ﰁ"; break;
- case 85: value = "ﰂ"; break;
- case 86: value = "ﰃ"; break;
- case 87: value = "ﰄ"; break;
- case 88: value = "ﰅ"; break;
- case 89: value = "ﰆ"; break;
- case 90: value = "ﰇ"; break;
- case 91: value = "ﰈ"; break;
- case 92: value = "ﰉ"; break;
- case 93: value = "ﰊ"; break;
- case 94: value = "ﰋ"; break;
- case 95: value = "ﰌ"; break;
- case 96: value = "ﰍ"; break;
- case 97: value = "ﰎ"; break;
- case 98: value = "ﰏ"; break;
- case 99: value = "ﰐ"; break;
- case 100: value = "ﰑ"; break;
- case 101: value = "ﰒ"; break;
- case 102: value = "ﰓ"; break;
- case 103: value = "ﰔ"; break;
- case 104: value = "ﰕ"; break;
- case 105: value = "ﰖ"; break;
- case 106: value = "ﰗ"; break;
- case 107: value = "ﰘ"; break;
- case 108: value = "ﰙ"; break;
- case 109: value = "ﰚ"; break;
- case 110: value = "ﰛ"; break;
- case 111: value = "ﰜ"; break;
- case 112: value = "ﰝ"; break;
- case 113: value = "ﰞ"; break;
- case 114: value = "ﰟ"; break;
+ case 1: value = "ﮍ";
+ break;
+ case 2: value = "ﮎ";
+ break;
+ case 3: value = "ﮏ";
+ break;
+ case 4: value = "ﮐ";
+ break;
+ case 5: value = "ﮑ";
+ break;
+ case 6: value = "ﮒ";
+ break;
+ case 7: value = "ﮓ";
+ break;
+ case 8: value = "ﮔ";
+ break;
+ case 9: value = "ﮕ";
+ break;
+ case 10: value = "ﮖ";
+ break;
+ case 11: value = "ﮗ";
+ break;
+ case 12: value = "ﮘ";
+ break;
+ case 13: value = "ﮙ";
+ break;
+ case 14: value = "ﮚ";
+ break;
+ case 15: value = "ﮛ";
+ break;
+ case 16: value = "ﮜ";
+ break;
+ case 17: value = "ﮝ";
+ break;
+ case 18: value = "ﮞ";
+ break;
+ case 19: value = "ﮟ";
+ break;
+ case 20: value = "ﮠ";
+ break;
+ case 21: value = "ﮡ";
+ break;
+ case 22: value = "ﮢ";
+ break;
+ case 23: value = "ﮣ";
+ break;
+ case 24: value = "ﮤ";
+ break;
+ case 25: value = "ﮥ";
+ break;
+ case 26: value = "ﮦ";
+ break;
+ case 27: value = "ﮧ";
+ break;
+ case 28: value = "ﮨ";
+ break;
+ case 29: value = "ﮩ";
+ break;
+ case 30: value = "ﮪ";
+ break;
+ case 31: value = "ﮫ";
+ break;
+ case 32: value = "ﮬ";
+ break;
+ case 33: value = "ﮭ";
+ break;
+ case 34: value = "ﮮ";
+ break;
+ case 35: value = "ﮯ";
+ break;
+ case 36: value = "ﮰ";
+ break;
+ case 37: value = "ﮱ";
+ break;
+ case 38: value = "ﯓ";
+ break;
+ case 39: value = "ﯔ";
+ break;
+ case 40: value = "ﯕ";
+ break;
+ case 41: value = "ﯖ";
+ break;
+ case 42: value = "ﯗ";
+ break;
+ case 43: value = "ﯘ";
+ break;
+ case 44: value = "ﯙ";
+ break;
+ case 45: value = "ﯚ";
+ break;
+ case 46: value = "ﯛ";
+ break;
+ case 47: value = "ﯜ";
+ break;
+ case 48: value = "ﯝ";
+ break;
+ case 49: value = "ﯞ";
+ break;
+ case 50: value = "ﯟ";
+ break;
+ case 51: value = "ﯠ";
+ break;
+ case 52: value = "ﯡ";
+ break;
+ case 53: value = "ﯢ";
+ break;
+ case 54: value = "ﯣ";
+ break;
+ case 55: value = "ﯤ";
+ break;
+ case 56: value = "ﯥ";
+ break;
+ case 57: value = "ﯦ";
+ break;
+ case 58: value = "ﯧ";
+ break;
+ case 59: value = "ﯨ";
+ break;
+ case 60: value = "ﯩ";
+ break;
+ case 61: value = "ﯪ";
+ break;
+ case 62: value = "ﯫ";
+ break;
+ case 63: value = "ﯬ";
+ break;
+ case 64: value = "ﯭ";
+ break;
+ case 65: value = "ﯮ";
+ break;
+ case 66: value = "ﯯ";
+ break;
+ case 67: value = "ﯰ";
+ break;
+ case 68: value = "ﯱ";
+ break;
+ case 69: value = "ﯲ";
+ break;
+ case 70: value = "ﯳ";
+ break;
+ case 71: value = "ﯴ";
+ break;
+ case 72: value = "ﯵ";
+ break;
+ case 73: value = "ﯶ";
+ break;
+ case 74: value = "ﯷ";
+ break;
+ case 75: value = "ﯸ";
+ break;
+ case 76: value = "ﯹ";
+ break;
+ case 77: value = "ﯺ";
+ break;
+ case 78: value = "ﯻ";
+ break;
+ case 79: value = "ﯼ";
+ break;
+ case 80: value = "ﯽ";
+ break;
+ case 81: value = "ﯾ";
+ break;
+ case 82: value = "ﯿ";
+ break;
+ case 83: value = "ﰀ";
+ break;
+ case 84: value = "ﰁ";
+ break;
+ case 85: value = "ﰂ";
+ break;
+ case 86: value = "ﰃ";
+ break;
+ case 87: value = "ﰄ";
+ break;
+ case 88: value = "ﰅ";
+ break;
+ case 89: value = "ﰆ";
+ break;
+ case 90: value = "ﰇ";
+ break;
+ case 91: value = "ﰈ";
+ break;
+ case 92: value = "ﰉ";
+ break;
+ case 93: value = "ﰊ";
+ break;
+ case 94: value = "ﰋ";
+ break;
+ case 95: value = "ﰌ";
+ break;
+ case 96: value = "ﰍ";
+ break;
+ case 97: value = "ﰎ";
+ break;
+ case 98: value = "ﰏ";
+ break;
+ case 99: value = "ﰐ";
+ break;
+ case 100: value = "ﰑ";
+ break;
+ case 101: value = "ﰒ";
+ break;
+ case 102: value = "ﰓ";
+ break;
+ case 103: value = "ﰔ";
+ break;
+ case 104: value = "ﰕ";
+ break;
+ case 105: value = "ﰖ";
+ break;
+ case 106: value = "ﰗ";
+ break;
+ case 107: value = "ﰘ";
+ break;
+ case 108: value = "ﰙ";
+ break;
+ case 109: value = "ﰚ";
+ break;
+ case 110: value = "ﰛ";
+ break;
+ case 111: value = "ﰜ";
+ break;
+ case 112: value = "ﰝ";
+ break;
+ case 113: value = "ﰞ";
+ break;
+ case 114: value = "ﰟ";
+ break;
}
return value;
}
diff --git a/app/src/main/java/com/quranapp/android/utils/quran/parser/ParserUtils.kt b/app/src/main/java/com/quranapp/android/utils/quran/parser/ParserUtils.kt
index cd426e71..53c21c28 100644
--- a/app/src/main/java/com/quranapp/android/utils/quran/parser/ParserUtils.kt
+++ b/app/src/main/java/com/quranapp/android/utils/quran/parser/ParserUtils.kt
@@ -77,4 +77,4 @@ object ParserUtils {
}
return builder.toString()
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/quran/parser/QuranDuaParser.kt b/app/src/main/java/com/quranapp/android/utils/quran/parser/QuranDuaParser.kt
index a75b335b..436322d7 100644
--- a/app/src/main/java/com/quranapp/android/utils/quran/parser/QuranDuaParser.kt
+++ b/app/src/main/java/com/quranapp/android/utils/quran/parser/QuranDuaParser.kt
@@ -8,10 +8,10 @@ import android.os.Looper
import com.quranapp.android.R
import com.quranapp.android.components.quran.QuranDua
import com.quranapp.android.components.quran.QuranMeta
-import org.xmlpull.v1.XmlPullParser
-import org.xmlpull.v1.XmlPullParserException
import java.io.IOException
import java.util.concurrent.atomic.AtomicReference
+import org.xmlpull.v1.XmlPullParser
+import org.xmlpull.v1.XmlPullParserException
object QuranDuaParser {
private const val DUAS_TAG_ROOT = "prophets"
diff --git a/app/src/main/java/com/quranapp/android/utils/quran/parser/QuranParser.kt b/app/src/main/java/com/quranapp/android/utils/quran/parser/QuranParser.kt
index 99fc1886..89cf15ed 100644
--- a/app/src/main/java/com/quranapp/android/utils/quran/parser/QuranParser.kt
+++ b/app/src/main/java/com/quranapp/android/utils/quran/parser/QuranParser.kt
@@ -12,12 +12,12 @@ import com.quranapp.android.utils.reader.isKFQPCScript
import com.quranapp.android.utils.sharedPrefs.SPReader
import com.quranapp.android.utils.univ.FileUtils
import com.quranapp.android.utils.univ.StringUtils
+import java.util.concurrent.atomic.AtomicReference
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import kotlinx.serialization.json.*
-import java.util.concurrent.atomic.AtomicReference
private const val KEY_CHAPTER_LIST = "suras"
private const val KEY_VERSE_LIST = "ayas"
@@ -27,7 +27,12 @@ private const val KEY_NUMBER = "index"
private const val KEY_PAGE_NUMBER = "page"
class QuranParser(private val ctx: Context) {
- fun parse(scriptKey: String, quranMeta: QuranMeta?, quranRef: AtomicReference, postRunnable: () -> Unit) {
+ fun parse(
+ scriptKey: String,
+ quranMeta: QuranMeta?,
+ quranRef: AtomicReference,
+ postRunnable: () -> Unit
+ ) {
CoroutineScope(Dispatchers.IO).launch {
try {
initQuranParse(scriptKey, quranMeta, quranRef)
@@ -41,7 +46,11 @@ class QuranParser(private val ctx: Context) {
}
}
- private fun initQuranParse(scriptKey: String, quranMeta: QuranMeta?, quranRef: AtomicReference) {
+ private fun initQuranParse(
+ scriptKey: String,
+ quranMeta: QuranMeta?,
+ quranRef: AtomicReference
+ ) {
val quranStringContent: String = if (scriptKey.isKFQPCScript()) {
val fileUtils = FileUtils.newInstance(ctx)
val scriptFile = fileUtils.getScriptFile(scriptKey)
@@ -50,13 +59,14 @@ class QuranParser(private val ctx: Context) {
fileUtils.readFile(scriptFile)
} else {
SPReader.setSavedScript(ctx, QuranScriptUtils.SCRIPT_DEFAULT)
- StringUtils.readInputStream(ctx.assets.open(QuranScriptUtils.SCRIPT_DEFAULT.getQuranScriptResPath()))
+ StringUtils.readInputStream(
+ ctx.assets.open(QuranScriptUtils.SCRIPT_DEFAULT.getQuranScriptResPath())
+ )
}
} else {
StringUtils.readInputStream(ctx.assets.open(scriptKey.getQuranScriptResPath()))
}
-
val quranElement = JsonHelper.json.parseToJsonElement(quranStringContent)
val parsedQuran = resolveQuranData(scriptKey, quranMeta, quranElement.jsonObject)
@@ -105,4 +115,4 @@ class QuranParser(private val ctx: Context) {
return verses
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/quran/parser/QuranProphetParser.java b/app/src/main/java/com/quranapp/android/utils/quran/parser/QuranProphetParser.java
index 834d4526..545e4fa4 100644
--- a/app/src/main/java/com/quranapp/android/utils/quran/parser/QuranProphetParser.java
+++ b/app/src/main/java/com/quranapp/android/utils/quran/parser/QuranProphetParser.java
@@ -62,7 +62,7 @@ private static QuranProphet parseProphetInternal(Context context, XmlResourcePar
lastProphet.nameTrans = parser.getAttributeValue(null, PROPHETS_ATTR_PROPHET_NAME_TRANS);
lastProphet.honorific = parser.getAttributeValue(null, PROPHETS_ATTR_PROPHET_HONORIFIC);
lastProphet.iconRes = parser.getAttributeResourceValue("http://schemas.android.com/apk/res/android",
- PROPHETS_ATTR_PROPHET_ICON_RES, -1);
+ PROPHETS_ATTR_PROPHET_ICON_RES, -1);
prophetList.add(lastProphet);
}
@@ -70,7 +70,8 @@ private static QuranProphet parseProphetInternal(Context context, XmlResourcePar
if (lastProphet != null) {
lastProphet.verses = ParserUtils.prepareVersesList(parser.getText(), true);
lastProphet.chapters = ParserUtils.prepareChaptersList(lastProphet.verses);
- lastProphet.inChapters = ParserUtils.prepareChapterText(context, quranMeta, lastProphet.chapters, 2);
+ lastProphet.inChapters = ParserUtils.prepareChapterText(context, quranMeta, lastProphet.chapters,
+ 2);
}
}
eventType = parser.next();
diff --git a/app/src/main/java/com/quranapp/android/utils/reader/QuranScriptUtils.kt b/app/src/main/java/com/quranapp/android/utils/reader/QuranScriptUtils.kt
index e2bfeae7..56d7bf64 100644
--- a/app/src/main/java/com/quranapp/android/utils/reader/QuranScriptUtils.kt
+++ b/app/src/main/java/com/quranapp/android/utils/reader/QuranScriptUtils.kt
@@ -9,8 +9,14 @@ import com.quranapp.android.utils.univ.FileUtils
import java.io.File
object QuranScriptUtils {
- val FONTS_DIR_NAME: String = FileUtils.createPath(AppUtils.BASE_APP_DOWNLOADED_SAVED_DATA_DIR, "script_fonts")
- val SCRIPT_DIR_NAME: String = FileUtils.createPath(AppUtils.BASE_APP_DOWNLOADED_SAVED_DATA_DIR, "scripts")
+ val FONTS_DIR_NAME: String = FileUtils.createPath(
+ AppUtils.BASE_APP_DOWNLOADED_SAVED_DATA_DIR,
+ "script_fonts"
+ )
+ val SCRIPT_DIR_NAME: String = FileUtils.createPath(
+ AppUtils.BASE_APP_DOWNLOADED_SAVED_DATA_DIR,
+ "scripts"
+ )
const val KEY_SCRIPT = "key.script"
@@ -20,7 +26,11 @@ object QuranScriptUtils {
const val SCRIPT_DEFAULT = SCRIPT_INDO_PAK
- fun availableScriptSlugs(): Array = arrayOf(SCRIPT_INDO_PAK, SCRIPT_UTHMANI, SCRIPT_KFQPC_V1)
+ fun availableScriptSlugs(): Array = arrayOf(
+ SCRIPT_INDO_PAK,
+ SCRIPT_UTHMANI,
+ SCRIPT_KFQPC_V1
+ )
fun verifyKFQPCScriptDownloaded(ctx: Context, kfqpcScriptSlug: String): Boolean {
return FileUtils.newInstance(ctx).getScriptFile(kfqpcScriptSlug).length() > 0
@@ -43,7 +53,6 @@ object QuranScriptUtils {
}
}
-
fun String.isKFQPCScript(): Boolean = when (this) {
QuranScriptUtils.SCRIPT_KFQPC_V1 -> true
else -> false
@@ -93,4 +102,4 @@ fun String.getQuranScriptResPath(): String = when (this) {
fun Int.toKFQPCFontFilename(): String {
return "qpc_page_$this.TTF"
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/reader/ReferenceTagHandler.java b/app/src/main/java/com/quranapp/android/utils/reader/ReferenceTagHandler.java
index 8c833811..047046f1 100644
--- a/app/src/main/java/com/quranapp/android/utils/reader/ReferenceTagHandler.java
+++ b/app/src/main/java/com/quranapp/android/utils/reader/ReferenceTagHandler.java
@@ -1,7 +1,5 @@
package com.quranapp.android.utils.reader;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-
import android.text.Editable;
import android.text.TextPaint;
import android.text.style.ClickableSpan;
@@ -9,8 +7,8 @@
import android.text.style.RelativeSizeSpan;
import android.text.style.TypefaceSpan;
import android.view.View;
-
import androidx.annotation.NonNull;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
import com.peacedesign.android.utils.span.RoundedBG_FGSpan;
import com.peacedesign.android.utils.span.SuperscriptSpan2;
@@ -28,8 +26,8 @@ public class ReferenceTagHandler implements HtmlParser.TagHandler {
private final int mRefBGColorPressed;
private final OnReferenceTagClickCallback mRefTagClickCallback;
private final OnFootnoteReferenceTagClickCallback mFootnoteRefTagClickCallback;
- private int refTagStartIndex = 0;
- private int footnoteRefTagStartIndex = 0;
+ private int refTagStartIndex;
+ private int footnoteRefTagStartIndex;
private String chapter = "-1";
private String verses = "-1";
private String footnoteNo = "-1";
@@ -49,8 +47,8 @@ public ReferenceTagHandler(Set translSlugs, int refTxtColor, int refBGCo
* @param fnTagClickCallback Callback to invoke if the clicked tag is {@link QuranConstants#FOOTNOTE_REF_TAG}
*/
public ReferenceTagHandler(
- Set translSlug, int refTxtColor, int refBGColor, int refBGColorPres,
- OnReferenceTagClickCallback refTagClickCallback, OnFootnoteReferenceTagClickCallback fnTagClickCallback
+ Set translSlug, int refTxtColor, int refBGColor, int refBGColorPres,
+ OnReferenceTagClickCallback refTagClickCallback, OnFootnoteReferenceTagClickCallback fnTagClickCallback
) {
mTranslSlugs = translSlug;
mRefTxtColor = refTxtColor;
diff --git a/app/src/main/java/com/quranapp/android/utils/reader/TranslUtils.java b/app/src/main/java/com/quranapp/android/utils/reader/TranslUtils.java
index 48fb47cc..91c2406a 100644
--- a/app/src/main/java/com/quranapp/android/utils/reader/TranslUtils.java
+++ b/app/src/main/java/com/quranapp/android/utils/reader/TranslUtils.java
@@ -2,13 +2,12 @@
import android.content.Context;
import android.util.Pair;
-
import androidx.annotation.Nullable;
-import com.quranapp.android.utils.Log;
import com.quranapp.android.R;
import com.quranapp.android.components.quran.subcomponents.QuranTranslBookInfo;
import com.quranapp.android.components.transls.TranslModel;
+import com.quranapp.android.utils.Log;
import com.quranapp.android.utils.Logger;
import com.quranapp.android.utils.app.AppUtils;
import com.quranapp.android.utils.sharedPrefs.SPReader;
@@ -28,9 +27,9 @@
public class TranslUtils {
public static final String DIR_NAME = FileUtils.createPath(AppUtils.BASE_APP_DOWNLOADED_SAVED_DATA_DIR,
- "translations");
+ "translations");
public static final String DIR_NAME_4_AVAILABLE_DOWNLOADS =
- FileUtils.createPath(AppUtils.BASE_APP_DOWNLOADED_SAVED_DATA_DIR, "available_translation_downloads");
+ FileUtils.createPath(AppUtils.BASE_APP_DOWNLOADED_SAVED_DATA_DIR, "available_translation_downloads");
public static final String TRANSL_INFO_FILE_NAME = "manifest.json";
public static final String KEY_TRANSLATIONS = "key.translations";
public static final String KEY_NEW_TRANSLATIONS = "key.translations_new";
@@ -235,7 +234,7 @@ public static List> getTranslInfosAndFilesForMig
Pair pair = readTranslInfoFromJSONFile(fileUtils, infoJSONFile);
if (pair == null) {
Logger.print(
- "Deleting translation directory with its manifest and data files: " + singleTranslDir.getName());
+ "Deleting translation directory with its manifest and data files: " + singleTranslDir.getName());
fileUtils.deleteDirWithChildren(singleTranslDir);
continue;
}
@@ -243,7 +242,7 @@ public static List> getTranslInfosAndFilesForMig
translInfosAndFiles.add(pair);
} catch (Exception e) {
Logger.print(
- "Error occurred, deleting translation directory with its manifest and data files dire: " + singleTranslDir.getName());
+ "Error occurred, deleting translation directory with its manifest and data files dire: " + singleTranslDir.getName());
fileUtils.deleteDirWithChildren(singleTranslDir);
e.printStackTrace();
}
diff --git a/app/src/main/java/com/quranapp/android/utils/reader/factory/QuranTranslFactory.kt b/app/src/main/java/com/quranapp/android/utils/reader/factory/QuranTranslFactory.kt
index 7527b6da..a91ca5d3 100644
--- a/app/src/main/java/com/quranapp/android/utils/reader/factory/QuranTranslFactory.kt
+++ b/app/src/main/java/com/quranapp/android/utils/reader/factory/QuranTranslFactory.kt
@@ -19,10 +19,9 @@ import com.quranapp.android.utils.reader.TranslUtils
import com.quranapp.android.utils.reader.TranslUtils.TRANSL_TRANSLITERATION
import com.quranapp.android.utils.search.SearchFilters
import com.quranapp.android.utils.sharedPrefs.SPReader
-import org.json.JSONArray
import java.io.Closeable
import java.util.*
-
+import org.json.JSONArray
/**
* This factory prepares contents of translations for the requesters.
@@ -41,7 +40,11 @@ class QuranTranslFactory(private val context: Context) : Closeable {
db.beginTransaction()
try {
db.execSQL("DROP TABLE IF EXISTS '$translSlug'")
- db.delete(QuranTranslInfoEntry.TABLE_NAME, "${QuranTranslInfoEntry.COL_SLUG}=?", arrayOf(translSlug))
+ db.delete(
+ QuranTranslInfoEntry.TABLE_NAME,
+ "${QuranTranslInfoEntry.COL_SLUG}=?",
+ arrayOf(translSlug)
+ )
db.setTransactionSuccessful()
} finally {
db.endTransaction()
@@ -100,7 +103,9 @@ class QuranTranslFactory(private val context: Context) : Closeable {
private fun getTranslationBooksInfo(slugs: Set? = null): Map {
val selection = if (slugs != null) {
List(slugs.size) { "${QuranTranslInfoEntry.COL_SLUG}=?" }.joinToString(" OR ")
- } else null
+ } else {
+ null
+ }
val selectionArgs = slugs?.toTypedArray()
val cursor = dbHelper.readableDatabase.query(
@@ -130,14 +135,30 @@ class QuranTranslFactory(private val context: Context) : Closeable {
private fun getTranslationBookInfoFromCursor(cursor: Cursor): HashMap {
val bookInfos = HashMap()
while (cursor.moveToNext()) {
- val bookInfo = QuranTranslBookInfo(cursor.getString(cursor.getColumnIndexOrThrow(QuranTranslInfoEntry.COL_SLUG))).apply {
- bookName = cursor.getString(cursor.getColumnIndexOrThrow(QuranTranslInfoEntry.COL_BOOK_NAME))
- authorName = cursor.getString(cursor.getColumnIndexOrThrow(QuranTranslInfoEntry.COL_AUTHOR_NAME))
- displayName = cursor.getString(cursor.getColumnIndexOrThrow(QuranTranslInfoEntry.COL_DISPLAY_NAME))
- langName = cursor.getString(cursor.getColumnIndexOrThrow(QuranTranslInfoEntry.COL_LANG_NAME))
- langCode = cursor.getString(cursor.getColumnIndexOrThrow(QuranTranslInfoEntry.COL_LANG_CODE))
- lastUpdated = cursor.getLong(cursor.getColumnIndexOrThrow(QuranTranslInfoEntry.COL_LAST_UPDATED))
- downloadPath = cursor.getString(cursor.getColumnIndexOrThrow(QuranTranslInfoEntry.COL_DOWNLOAD_PATH))
+ val bookInfo = QuranTranslBookInfo(
+ cursor.getString(cursor.getColumnIndexOrThrow(QuranTranslInfoEntry.COL_SLUG))
+ ).apply {
+ bookName = cursor.getString(
+ cursor.getColumnIndexOrThrow(QuranTranslInfoEntry.COL_BOOK_NAME)
+ )
+ authorName = cursor.getString(
+ cursor.getColumnIndexOrThrow(QuranTranslInfoEntry.COL_AUTHOR_NAME)
+ )
+ displayName = cursor.getString(
+ cursor.getColumnIndexOrThrow(QuranTranslInfoEntry.COL_DISPLAY_NAME)
+ )
+ langName = cursor.getString(
+ cursor.getColumnIndexOrThrow(QuranTranslInfoEntry.COL_LANG_NAME)
+ )
+ langCode = cursor.getString(
+ cursor.getColumnIndexOrThrow(QuranTranslInfoEntry.COL_LANG_CODE)
+ )
+ lastUpdated = cursor.getLong(
+ cursor.getColumnIndexOrThrow(QuranTranslInfoEntry.COL_LAST_UPDATED)
+ )
+ downloadPath = cursor.getString(
+ cursor.getColumnIndexOrThrow(QuranTranslInfoEntry.COL_DOWNLOAD_PATH)
+ )
}
bookInfos[bookInfo.slug] = bookInfo
}
@@ -177,7 +198,12 @@ class QuranTranslFactory(private val context: Context) : Closeable {
}
fun getTranslationsVerseRange(chapNo: Int, fromVerse: Int, toVerse: Int): List> {
- return getTranslationsVerseRange(SPReader.getSavedTranslations(context), chapNo, fromVerse, toVerse)
+ return getTranslationsVerseRange(
+ SPReader.getSavedTranslations(context),
+ chapNo,
+ fromVerse,
+ toVerse
+ )
}
/**
@@ -189,7 +215,12 @@ class QuranTranslFactory(private val context: Context) : Closeable {
* [, , ] -> verse 1:4
* ]
* */
- fun getTranslationsVerseRange(slugs: Set?, chapNo: Int, fromVerse: Int, toVerse: Int): List> {
+ fun getTranslationsVerseRange(
+ slugs: Set?,
+ chapNo: Int,
+ fromVerse: Int,
+ toVerse: Int
+ ): List> {
val transls = List(toVerse - fromVerse + 1) { ArrayList() }.toMutableList()
if (slugs.isNullOrEmpty()) {
@@ -218,7 +249,11 @@ class QuranTranslFactory(private val context: Context) : Closeable {
* The returned verses will be sorted by verse number regardless of order of the passed verse numbers..
* */
fun getTranslationsDistinctVerses(chapNo: Int, vararg verses: Int): List> {
- return getTranslationsDistinctVerses(SPReader.getSavedTranslations(context), chapNo, *verses)
+ return getTranslationsDistinctVerses(
+ SPReader.getSavedTranslations(context),
+ chapNo,
+ *verses
+ )
}
/*
@@ -282,7 +317,11 @@ class QuranTranslFactory(private val context: Context) : Closeable {
return getTranslationBooksInfoValidated(translSlugs).keys
}
- private fun getTranslationsFromQuery(translSlug: String, selection: String, selectionArgs: Array): List? {
+ private fun getTranslationsFromQuery(
+ translSlug: String,
+ selection: String,
+ selectionArgs: Array
+ ): List? {
return try {
val cols = arrayOf(COL_CHAPTER_NO, COL_VERSE_NO, COL_TEXT, COL_FOOTNOTES)
val cursor = dbHelper.readableDatabase.query(
@@ -312,7 +351,8 @@ class QuranTranslFactory(private val context: Context) : Closeable {
try {
footnotes = readFootnotes(
translSlug,
- this.chapterNo, this.verseNo,
+ this.chapterNo,
+ this.verseNo,
cursor1.getString(cursor1.getColumnIndexOrThrow(COL_FOOTNOTES))
)
} catch (e: Exception) {
@@ -329,7 +369,12 @@ class QuranTranslFactory(private val context: Context) : Closeable {
* [footnoteString] is the string of JsonArray.
*/
@Throws(Exception::class)
- private fun readFootnotes(translSlug: String, chapterNo: Int, verseNo: Int, footnoteString: String): HashMap {
+ private fun readFootnotes(
+ translSlug: String,
+ chapterNo: Int,
+ verseNo: Int,
+ footnoteString: String
+ ): HashMap {
val footnotesMap = HashMap()
val footnotes = JSONArray(footnoteString)
for (i in 0 until footnotes.length()) {
@@ -361,7 +406,8 @@ class QuranTranslFactory(private val context: Context) : Closeable {
return if (cursor.moveToNext()) {
val footnotes = readFootnotes(
translSlug,
- chapNo, verseNo,
+ chapNo,
+ verseNo,
cursor.getString(cursor.getColumnIndexOrThrow(COL_FOOTNOTES))
)
cursor.close()
@@ -371,10 +417,18 @@ class QuranTranslFactory(private val context: Context) : Closeable {
}
}
- fun prepareQuerySingle(filters: SearchFilters, query: String, slug: String, limit: Int, offset: Int): String {
+ fun prepareQuerySingle(
+ filters: SearchFilters,
+ query: String,
+ slug: String,
+ limit: Int,
+ offset: Int
+ ): String {
val nQuery = query.replace(Regex("'", RegexOption.LITERAL), "''")
val tableName = QuranTranslDBHelper.escapeTableName(slug)
- val sqlQuery = StringBuilder("SELECT $COL_CHAPTER_NO, $COL_VERSE_NO, $COL_TEXT FROM $tableName")
+ val sqlQuery = StringBuilder(
+ "SELECT $COL_CHAPTER_NO, $COL_VERSE_NO, $COL_TEXT FROM $tableName"
+ )
sqlQuery.append(" WHERE")
if (filters.searchWordPart) {
sqlQuery.append(" $COL_TEXT LIKE '%$nQuery%'")
@@ -434,5 +488,4 @@ class QuranTranslFactory(private val context: Context) : Closeable {
}
return cols.joinToString(",")
}
-
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/reader/factory/ReaderFactory.kt b/app/src/main/java/com/quranapp/android/utils/reader/factory/ReaderFactory.kt
index 75814cef..56f58be7 100644
--- a/app/src/main/java/com/quranapp/android/utils/reader/factory/ReaderFactory.kt
+++ b/app/src/main/java/com/quranapp/android/utils/reader/factory/ReaderFactory.kt
@@ -62,7 +62,6 @@ object ReaderFactory {
)
}
-
@JvmStatic
fun startVerseRange(context: Context, chapterNo: Int, fromVerse: Int, toVerse: Int) {
context.startActivity(
@@ -118,7 +117,6 @@ object ReaderFactory {
return prepareVerseRangeIntent(chapterNo, verseNo, verseNo)
}
-
@JvmStatic
fun prepareVerseRangeIntent(chapterNo: Int, fromVerse: Int, toVerse: Int): Intent {
return prepareVerseRangeIntent(chapterNo, Pair(fromVerse, toVerse))
@@ -156,12 +154,18 @@ object ReaderFactory {
chapters: List,
verses: List
) {
- val intent = prepareReferenceVerseIntent(showChapterSugg, title, desc, translSlug, chapters, verses)
+ val intent = prepareReferenceVerseIntent(
+ showChapterSugg,
+ title,
+ desc,
+ translSlug,
+ chapters,
+ verses
+ )
intent.setClass(context, ActivityReference::class.java)
context.startActivity(intent)
}
-
@JvmStatic
fun startReferenceVerse(context: Context, referenceVerseModel: ReferenceVerseModel) {
val intent = prepareReferenceVerseIntent(referenceVerseModel)
@@ -169,7 +173,6 @@ object ReaderFactory {
context.startActivity(intent)
}
-
@JvmStatic
fun prepareReferenceVerseIntent(
showChapterSugg: Boolean,
@@ -179,11 +182,17 @@ object ReaderFactory {
chapters: List,
verses: List
): Intent {
- val referenceVerseModel = ReferenceVerseModel(showChapterSugg, title, desc, translSlug, chapters, verses)
+ val referenceVerseModel = ReferenceVerseModel(
+ showChapterSugg,
+ title,
+ desc,
+ translSlug,
+ chapters,
+ verses
+ )
return prepareReferenceVerseIntent(referenceVerseModel)
}
-
@JvmStatic
fun prepareReferenceVerseIntent(referenceVerseModel: ReferenceVerseModel): Intent {
val intent = Intent()
@@ -287,4 +296,4 @@ object ReaderFactory {
intent.putExtra(Keys.READER_KEY_VERSE_NO, verseNo)
return intent
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/reader/quranPage/VerseArabicHighlightSpan.java b/app/src/main/java/com/quranapp/android/utils/reader/quranPage/VerseArabicHighlightSpan.java
index 7e3132d2..ee27ad8e 100644
--- a/app/src/main/java/com/quranapp/android/utils/reader/quranPage/VerseArabicHighlightSpan.java
+++ b/app/src/main/java/com/quranapp/android/utils/reader/quranPage/VerseArabicHighlightSpan.java
@@ -5,8 +5,8 @@
import android.text.style.BackgroundColorSpan;
public class VerseArabicHighlightSpan extends BackgroundColorSpan {
- private int BGColor = 0;
- public int verseNo = 0;
+ private int BGColor;
+ public int verseNo;
public VerseArabicHighlightSpan(int verseNo) {
super(0);
diff --git a/app/src/main/java/com/quranapp/android/utils/reader/recitation/RecitationNotificationCallbacks.java b/app/src/main/java/com/quranapp/android/utils/reader/recitation/RecitationNotificationCallbacks.java
index a6db2b40..915e5841 100644
--- a/app/src/main/java/com/quranapp/android/utils/reader/recitation/RecitationNotificationCallbacks.java
+++ b/app/src/main/java/com/quranapp/android/utils/reader/recitation/RecitationNotificationCallbacks.java
@@ -6,5 +6,4 @@ public interface RecitationNotificationCallbacks {
void previousVerse();
void nextVerse();
-
}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/utils/reader/recitation/RecitationNotificationService.java b/app/src/main/java/com/quranapp/android/utils/reader/recitation/RecitationNotificationService.java
index 57baec3d..d3233e72 100644
--- a/app/src/main/java/com/quranapp/android/utils/reader/recitation/RecitationNotificationService.java
+++ b/app/src/main/java/com/quranapp/android/utils/reader/recitation/RecitationNotificationService.java
@@ -4,20 +4,6 @@
package com.quranapp.android.utils.reader.recitation;
-import static android.app.PendingIntent.FLAG_IMMUTABLE;
-import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;
-import static android.app.PendingIntent.getActivity;
-import static android.app.PendingIntent.getBroadcast;
-import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_NEXT_VERSE;
-import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_PAUSE;
-import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_PLAY;
-import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_PLAY_CONTROL;
-import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_PREVIOUS_VERSE;
-import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_STOP;
-import static com.quranapp.android.utils.univ.Codes.NOTIF_ID_REC_PLAYER;
-import static com.quranapp.android.utils.univ.Codes.REQ_CODE_REC_PLAYER;
-import static com.quranapp.android.utils.univ.Keys.KEY_ACTIVITY_RESUMED_FROM_NOTIFICATION;
-
import android.app.Notification;
import android.app.PendingIntent;
import android.app.Service;
@@ -25,9 +11,21 @@
import android.os.Build;
import android.os.IBinder;
import android.widget.RemoteViews;
-
import androidx.annotation.Nullable;
import androidx.core.app.NotificationCompat;
+import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_NEXT_VERSE;
+import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_PAUSE;
+import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_PLAY;
+import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_PLAY_CONTROL;
+import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_PREVIOUS_VERSE;
+import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_STOP;
+import static com.quranapp.android.utils.univ.Codes.NOTIF_ID_REC_PLAYER;
+import static com.quranapp.android.utils.univ.Codes.REQ_CODE_REC_PLAYER;
+import static com.quranapp.android.utils.univ.Keys.KEY_ACTIVITY_RESUMED_FROM_NOTIFICATION;
+import static android.app.PendingIntent.FLAG_IMMUTABLE;
+import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;
+import static android.app.PendingIntent.getActivity;
+import static android.app.PendingIntent.getBroadcast;
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityReader;
@@ -50,7 +48,7 @@ public void onCreate() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
Notification notification = NotificationUtils.createEmptyNotif(this,
- getString(R.string.strNotifChannelIdRecitation));
+ getString(R.string.strNotifChannelIdRecitation));
startForeground(NOTIF_ID_REC_PLAYER, notification);
}
}
@@ -71,8 +69,8 @@ public IBinder onBind(Intent intent) {
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent == null) {
Notification notification = NotificationUtils.createEmptyNotif(
- this,
- getString(R.string.strNotifChannelIdRecitation)
+ this,
+ getString(R.string.strNotifChannelIdRecitation)
);
startForeground(NOTIF_ID_REC_PLAYER, notification);
finish();
diff --git a/app/src/main/java/com/quranapp/android/utils/reader/recitation/RecitationParams.java b/app/src/main/java/com/quranapp/android/utils/reader/recitation/RecitationParams.java
index 4db27944..8b726579 100644
--- a/app/src/main/java/com/quranapp/android/utils/reader/recitation/RecitationParams.java
+++ b/app/src/main/java/com/quranapp/android/utils/reader/recitation/RecitationParams.java
@@ -4,7 +4,6 @@
import android.os.Parcel;
import android.os.Parcelable;
-import com.quranapp.android.utils.Log;
import com.quranapp.android.components.quran.QuranMeta;
public class RecitationParams implements Parcelable {
diff --git a/app/src/main/java/com/quranapp/android/utils/reader/recitation/RecitationUtils.java b/app/src/main/java/com/quranapp/android/utils/reader/recitation/RecitationUtils.java
index 09d528c5..f873ce8b 100644
--- a/app/src/main/java/com/quranapp/android/utils/reader/recitation/RecitationUtils.java
+++ b/app/src/main/java/com/quranapp/android/utils/reader/recitation/RecitationUtils.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.os.Build;
import android.text.TextUtils;
-
import androidx.annotation.Nullable;
import com.quranapp.android.components.recitation.RecitationModel;
@@ -23,7 +22,7 @@
public class RecitationUtils {
public static final String DIR_NAME = FileUtils.createPath(AppUtils.BASE_APP_DOWNLOADED_SAVED_DATA_DIR,
- "recitations");
+ "recitations");
public static final Pattern URL_CHAPTER_PATTERN = Pattern.compile("\\{chapNo:(.*?)\\}", Pattern.CASE_INSENSITIVE);
public static final Pattern URL_VERSE_PATTERN = Pattern.compile("\\{verseNo:(.*?)\\}", Pattern.CASE_INSENSITIVE);
@@ -94,9 +93,9 @@ public static String prepareAudioPathForSpecificReciter(String reciterSlug, int
}
public static synchronized void obtainRecitationModel(
- Context ctx,
- boolean force,
- OnResultReadyCallback callback
+ Context ctx,
+ boolean force,
+ OnResultReadyCallback callback
) {
String savedSlug = SPReader.getSavedRecitationSlug(ctx);
diff --git a/app/src/main/java/com/quranapp/android/utils/receivers/KFQPCScriptFontsDownloadReceiver.kt b/app/src/main/java/com/quranapp/android/utils/receivers/KFQPCScriptFontsDownloadReceiver.kt
index 33a45780..f5aaddc0 100644
--- a/app/src/main/java/com/quranapp/android/utils/receivers/KFQPCScriptFontsDownloadReceiver.kt
+++ b/app/src/main/java/com/quranapp/android/utils/receivers/KFQPCScriptFontsDownloadReceiver.kt
@@ -52,4 +52,4 @@ class KFQPCScriptFontsDownloadReceiver : BroadcastReceiver() {
const val ACTION_DOWNLOAD_STATUS = "action.download_status"
const val KEY_DOWNLOAD_FLOW = "key.download_flow"
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/receivers/NetworkStateReceiver.java b/app/src/main/java/com/quranapp/android/utils/receivers/NetworkStateReceiver.java
index 9dca7752..7bd11f03 100644
--- a/app/src/main/java/com/quranapp/android/utils/receivers/NetworkStateReceiver.java
+++ b/app/src/main/java/com/quranapp/android/utils/receivers/NetworkStateReceiver.java
@@ -6,7 +6,6 @@
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
-
import androidx.annotation.NonNull;
import com.quranapp.android.utils.univ.MessageUtils;
diff --git a/app/src/main/java/com/quranapp/android/utils/receivers/ReceiverUtils.java b/app/src/main/java/com/quranapp/android/utils/receivers/ReceiverUtils.java
index 5f18ab11..b7f44f88 100644
--- a/app/src/main/java/com/quranapp/android/utils/receivers/ReceiverUtils.java
+++ b/app/src/main/java/com/quranapp/android/utils/receivers/ReceiverUtils.java
@@ -4,14 +4,13 @@
package com.quranapp.android.utils.receivers;
-import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
-import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
-import static android.content.pm.PackageManager.DONT_KILL_APP;
-
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
+import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
+import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+import static android.content.pm.PackageManager.DONT_KILL_APP;
public final class ReceiverUtils {
public static void enableReceiver(Context context, Class extends BroadcastReceiver> receiverClass) {
diff --git a/app/src/main/java/com/quranapp/android/utils/receivers/VOTDReceiver.java b/app/src/main/java/com/quranapp/android/utils/receivers/VOTDReceiver.java
index 91f3efc0..0b41b011 100644
--- a/app/src/main/java/com/quranapp/android/utils/receivers/VOTDReceiver.java
+++ b/app/src/main/java/com/quranapp/android/utils/receivers/VOTDReceiver.java
@@ -4,16 +4,14 @@
package com.quranapp.android.utils.receivers;
-import static android.app.PendingIntent.FLAG_CANCEL_CURRENT;
-
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
-
import androidx.core.app.NotificationCompat;
+import static android.app.PendingIntent.FLAG_CANCEL_CURRENT;
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityReader;
@@ -27,41 +25,44 @@
public class VOTDReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent intent) {
- QuranMeta.prepareInstance(context, quranMeta -> VerseUtils.getVOTD(context, quranMeta, null, (chapterNo, verseNo) -> {
- if (!QuranMeta.isChapterValid(chapterNo) || !quranMeta.isVerseValid4Chapter(chapterNo, verseNo)) {
- return;
- }
+ QuranMeta.prepareInstance(context,
+ quranMeta -> VerseUtils.getVOTD(context, quranMeta, null, (chapterNo, verseNo) -> {
+ if (!QuranMeta.isChapterValid(chapterNo) || !quranMeta.isVerseValid4Chapter(chapterNo, verseNo)) {
+ return;
+ }
- int notificationId = Codes.NOTIF_ID_VOTD;
- int flag = FLAG_CANCEL_CURRENT;
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
- flag |= PendingIntent.FLAG_IMMUTABLE;
- }
+ int notificationId = Codes.NOTIF_ID_VOTD;
+ int flag = FLAG_CANCEL_CURRENT;
+ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
+ flag |= PendingIntent.FLAG_IMMUTABLE;
+ }
- Intent readerIntent = ReaderFactory.prepareSingleVerseIntent(chapterNo, verseNo);
- readerIntent.setClass(context, ActivityReader.class);
- PendingIntent readerPendingIntent = PendingIntent.getActivity(context, notificationId, readerIntent, flag);
+ Intent readerIntent = ReaderFactory.prepareSingleVerseIntent(chapterNo, verseNo);
+ readerIntent.setClass(context, ActivityReader.class);
+ PendingIntent readerPendingIntent = PendingIntent.getActivity(context, notificationId, readerIntent,
+ flag);
- String channelId = context.getString(R.string.strNotifChannelIdVOTD);
- NotificationCompat.Builder builder = new NotificationCompat.Builder(context, channelId);
- builder.setAutoCancel(true);
- builder.setContentTitle(context.getText(R.string.strTitleVOTD));
- builder.setCategory(NotificationCompat.CATEGORY_REMINDER);
- builder.setContentIntent(readerPendingIntent);
+ String channelId = context.getString(R.string.strNotifChannelIdVOTD);
+ NotificationCompat.Builder builder = new NotificationCompat.Builder(context, channelId);
+ builder.setAutoCancel(true);
+ builder.setContentTitle(context.getText(R.string.strTitleVOTD));
+ builder.setCategory(NotificationCompat.CATEGORY_REMINDER);
+ builder.setContentIntent(readerPendingIntent);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
- builder.setSmallIcon(R.drawable.dr_ic_shortcut_votd);
- } else {
- builder.setSmallIcon(R.drawable.dr_logo);
- }
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ builder.setSmallIcon(R.drawable.dr_ic_shortcut_votd);
+ } else {
+ builder.setSmallIcon(R.drawable.dr_logo);
+ }
- String chapName = quranMeta.getChapterName(context, chapterNo);
- CharSequence msg = context.getString(R.string.strLabelVerseWithChapNameWithColon, chapName, verseNo);
- builder.setContentText(msg);
+ String chapName = quranMeta.getChapterName(context, chapterNo);
+ CharSequence msg = context.getString(R.string.strLabelVerseWithChapNameWithColon, chapName, verseNo);
+ builder.setContentText(msg);
- NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
- notificationManager.notify(notificationId, builder.build());
- }));
+ NotificationManager notificationManager = (NotificationManager) context.getSystemService(
+ Context.NOTIFICATION_SERVICE);
+ notificationManager.notify(notificationId, builder.build());
+ }));
if (SPVerses.getVOTDReminderEnabled(context)) {
VOTDUtils.enableVOTDReminder(context);
diff --git a/app/src/main/java/com/quranapp/android/utils/services/KFQPCScriptFontsDownloadService.kt b/app/src/main/java/com/quranapp/android/utils/services/KFQPCScriptFontsDownloadService.kt
index dd1cadf1..e13f7845 100644
--- a/app/src/main/java/com/quranapp/android/utils/services/KFQPCScriptFontsDownloadService.kt
+++ b/app/src/main/java/com/quranapp/android/utils/services/KFQPCScriptFontsDownloadService.kt
@@ -18,14 +18,14 @@ import com.quranapp.android.utils.reader.getQuranScriptName
import com.quranapp.android.utils.reader.toKFQPCFontFilename
import com.quranapp.android.utils.receivers.KFQPCScriptFontsDownloadReceiver
import com.quranapp.android.utils.univ.FileUtils
+import java.io.File
+import java.io.InputStream
+import java.io.OutputStream
import kotlinx.coroutines.*
import kotlinx.coroutines.flow.FlowCollector
import kotlinx.coroutines.flow.catch
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.flowOn
-import java.io.File
-import java.io.InputStream
-import java.io.OutputStream
class KFQPCScriptFontsDownloadService : Service() {
companion object {
@@ -40,7 +40,9 @@ class KFQPCScriptFontsDownloadService : Service() {
private val job = Job()
private val coroutineScope = CoroutineScope(Dispatchers.Main + job)
private val binder = LocalBinder()
- private val notifManager by lazy { getSystemService(NOTIFICATION_SERVICE) as NotificationManager }
+ private val notifManager by lazy {
+ getSystemService(NOTIFICATION_SERVICE) as NotificationManager
+ }
var isDownloadRunning = false
var currentScriptKey: String? = null
@@ -118,7 +120,9 @@ class KFQPCScriptFontsDownloadService : Service() {
emit(DownloadFlow.Start(null))
emit(DownloadFlow.Progress(null, 0))
- val scriptResBody = RetrofitInstance.github.getQuranScript("script_$scriptKey.json")
+ val scriptResBody = RetrofitInstance.github.getQuranScript(
+ "script_$scriptKey.json"
+ )
val byteStream = scriptResBody.byteStream()
val totalBytes = byteStream.available()
@@ -132,14 +136,12 @@ class KFQPCScriptFontsDownloadService : Service() {
emit(DownloadFlow.Complete(null))
}
-
} catch (e: Exception) {
emit(DownloadFlow.Failed(null))
e.printStackTrace()
return@flow
}
-
val fontsDir = fileUtils.getKFQPCScriptFontDir(scriptKey)
for (pageNo in 1..QuranMeta.totalPages()) {
try {
@@ -179,14 +181,21 @@ class KFQPCScriptFontsDownloadService : Service() {
emit(DownloadFlow.Complete(PAGE_NO_ALL_DOWNLOADS_FINISHED))
}.flowOn(Dispatchers.IO).catch {
it.printStackTrace()
- sendBroadcast(Intent(KFQPCScriptFontsDownloadReceiver.ACTION_DOWNLOAD_STATUS).apply {
- putExtra(KFQPCScriptFontsDownloadReceiver.KEY_DOWNLOAD_FLOW, DownloadFlow.Failed(null))
- })
+ sendBroadcast(
+ Intent(KFQPCScriptFontsDownloadReceiver.ACTION_DOWNLOAD_STATUS).apply {
+ putExtra(
+ KFQPCScriptFontsDownloadReceiver.KEY_DOWNLOAD_FLOW,
+ DownloadFlow.Failed(null)
+ )
+ }
+ )
finish()
}.collect {
- sendBroadcast(Intent(KFQPCScriptFontsDownloadReceiver.ACTION_DOWNLOAD_STATUS).apply {
- putExtra(KFQPCScriptFontsDownloadReceiver.KEY_DOWNLOAD_FLOW, it)
- })
+ sendBroadcast(
+ Intent(KFQPCScriptFontsDownloadReceiver.ACTION_DOWNLOAD_STATUS).apply {
+ putExtra(KFQPCScriptFontsDownloadReceiver.KEY_DOWNLOAD_FLOW, it)
+ }
+ )
if (it is DownloadFlow.Complete && it.pageNo == PAGE_NO_ALL_DOWNLOADS_FINISHED || it is DownloadFlow.Failed && it.pageNo == null) {
finish()
@@ -194,7 +203,6 @@ class KFQPCScriptFontsDownloadService : Service() {
showProgressNotification(it.pageNo, it.progress, scriptKey)
}
}
-
}
}
@@ -218,7 +226,9 @@ class KFQPCScriptFontsDownloadService : Service() {
outS.write(buffer, 0, bytes)
progressBytes += bytes
- flowCollector.emit(DownloadFlow.Progress(pageNo, ((progressBytes * 100) / totalBytes).toInt()))
+ flowCollector.emit(
+ DownloadFlow.Progress(pageNo, ((progressBytes * 100) / totalBytes).toInt())
+ )
}
}
}
@@ -246,13 +256,23 @@ class KFQPCScriptFontsDownloadService : Service() {
.Builder(this, getString(R.string.strNotifChannelIdDownloads))
.setSmallIcon(R.drawable.dr_logo)
.setContentTitle(
- if (pageNo == null) getString(R.string.msgDownloadingScript)
- else getString(R.string.msgDownloadingFonts)
+ if (pageNo == null) {
+ getString(R.string.msgDownloadingScript)
+ } else {
+ getString(R.string.msgDownloadingFonts)
+ }
)
.setContentText(scriptKey.getQuranScriptName())
.setSubText(
- if (pageNo == null) null
- else getString(R.string.msgFontsDonwloadProgressShort, pageNo - 1, QuranMeta.totalPages())
+ if (pageNo == null) {
+ null
+ } else {
+ getString(
+ R.string.msgFontsDonwloadProgressShort,
+ pageNo - 1,
+ QuranMeta.totalPages()
+ )
+ }
)
.setProgress(100, progress, false)
.setOngoing(true)
@@ -279,7 +299,6 @@ class KFQPCScriptFontsDownloadService : Service() {
inner class LocalBinder : Binder() {
val service get() = this@KFQPCScriptFontsDownloadService
}
-
}
sealed class DownloadFlow : java.io.Serializable {
diff --git a/app/src/main/java/com/quranapp/android/utils/services/TranslationDownloadService.kt b/app/src/main/java/com/quranapp/android/utils/services/TranslationDownloadService.kt
index 105e70fa..fbc822c9 100644
--- a/app/src/main/java/com/quranapp/android/utils/services/TranslationDownloadService.kt
+++ b/app/src/main/java/com/quranapp/android/utils/services/TranslationDownloadService.kt
@@ -50,7 +50,10 @@ class TranslationDownloadService : Service() {
if (STARTED_BY_USER && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForeground(
1,
- NotificationUtils.createEmptyNotif(this, getString(R.string.strNotifChannelIdDownloads))
+ NotificationUtils.createEmptyNotif(
+ this,
+ getString(R.string.strNotifChannelIdDownloads)
+ )
)
}
}
@@ -65,15 +68,19 @@ class TranslationDownloadService : Service() {
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
-
if (intent == null) {
- val notification = NotificationUtils.createEmptyNotif(this, getString(R.string.strNotifChannelIdDownloads))
+ val notification = NotificationUtils.createEmptyNotif(
+ this,
+ getString(R.string.strNotifChannelIdDownloads)
+ )
startForeground(1, notification)
finish()
return START_NOT_STICKY
}
- val bookInfo = intent.serializableExtra(TranslDownloadReceiver.KEY_TRANSL_BOOK_INFO)
+ val bookInfo = intent.serializableExtra(
+ TranslDownloadReceiver.KEY_TRANSL_BOOK_INFO
+ )
?: return START_NOT_STICKY
mCurrentDownloads.add(bookInfo.slug)
@@ -87,19 +94,21 @@ class TranslationDownloadService : Service() {
return START_NOT_STICKY
}
- private fun showNotification(notifId: Int, notification: Notification, notifManager: NotificationManagerCompat) {
+ private fun showNotification(
+ notifId: Int,
+ notification: Notification,
+ notifManager: NotificationManagerCompat
+ ) {
notifManager.cancel(1)
ServiceCompat.stopForeground(this, ServiceCompat.STOP_FOREGROUND_DETACH)
startForeground(notifId, notification)
}
-
private fun startDownload(
bookInfo: QuranTranslBookInfo,
notifBuilder: NotificationCompat.Builder,
notifManager: NotificationManagerCompat
) {
-
CoroutineScope(Dispatchers.IO).launch {
val notifId = bookInfo.slug.hashCode()
@@ -111,7 +120,10 @@ class TranslationDownloadService : Service() {
val data = responseBody.string()
if (data.isEmpty()) {
- sendStatusBroadcast(TranslDownloadReceiver.TRANSL_DOWNLOAD_STATUS_FAILED, bookInfo)
+ sendStatusBroadcast(
+ TranslDownloadReceiver.TRANSL_DOWNLOAD_STATUS_FAILED,
+ bookInfo
+ )
return@launch
}
@@ -142,7 +154,11 @@ class TranslationDownloadService : Service() {
}
}
- private fun notify(notifId: Int, notifManager: NotificationManagerCompat, notification: Notification) {
+ private fun notify(
+ notifId: Int,
+ notifManager: NotificationManagerCompat,
+ notification: Notification
+ ) {
if (ActivityCompat.checkSelfPermission(
this,
Manifest.permission.POST_NOTIFICATIONS
@@ -154,12 +170,13 @@ class TranslationDownloadService : Service() {
notifManager.notify(notifId, notification)
}
-
private fun sendStatusBroadcast(status: String, bookInfo: QuranTranslBookInfo) {
- sendBroadcast(Intent(TranslDownloadReceiver.ACTION_TRANSL_DOWNLOAD_STATUS).apply {
- putExtra(TranslDownloadReceiver.KEY_TRANSL_BOOK_INFO, bookInfo)
- putExtra(TranslDownloadReceiver.KEY_TRANSL_DOWNLOAD_STATUS, status)
- })
+ sendBroadcast(
+ Intent(TranslDownloadReceiver.ACTION_TRANSL_DOWNLOAD_STATUS).apply {
+ putExtra(TranslDownloadReceiver.KEY_TRANSL_BOOK_INFO, bookInfo)
+ putExtra(TranslDownloadReceiver.KEY_TRANSL_DOWNLOAD_STATUS, status)
+ }
+ )
}
private fun prepareNotification(bookInfo: QuranTranslBookInfo): NotificationCompat.Builder {
@@ -181,8 +198,16 @@ class TranslationDownloadService : Service() {
}
val activityIntent = Intent(this, ActivitySettings::class.java)
- activityIntent.putExtra(ActivitySettings.KEY_SETTINGS_DESTINATION, ActivitySettings.SETTINGS_TRANSL_DOWNLOAD)
- val pendingIntent = PendingIntent.getActivity(this, bookInfo.slug.hashCode(), activityIntent, flag)
+ activityIntent.putExtra(
+ ActivitySettings.KEY_SETTINGS_DESTINATION,
+ ActivitySettings.SETTINGS_TRANSL_DOWNLOAD
+ )
+ val pendingIntent = PendingIntent.getActivity(
+ this,
+ bookInfo.slug.hashCode(),
+ activityIntent,
+ flag
+ )
builder.setContentIntent(pendingIntent)
return builder
}
@@ -207,4 +232,4 @@ class TranslationDownloadService : Service() {
inner class TranslationDownloadServiceBinder : Binder() {
val service: TranslationDownloadService get() = this@TranslationDownloadService
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPAppActions.kt b/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPAppActions.kt
index 8a80c1d0..06aa721f 100644
--- a/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPAppActions.kt
+++ b/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPAppActions.kt
@@ -29,7 +29,10 @@ object SPAppActions {
}
@JvmStatic
- fun getFetchTranslationsForce(ctx: Context): Boolean = sp(ctx).getBoolean(KEY_APP_ACTION_SP_TRANSLS_FETCH_FORCE, false)
+ fun getFetchTranslationsForce(ctx: Context): Boolean = sp(ctx).getBoolean(
+ KEY_APP_ACTION_SP_TRANSLS_FETCH_FORCE,
+ false
+ )
@JvmStatic
fun setFetchRecitationsForce(ctx: Context, fetchForce: Boolean) {
@@ -40,7 +43,10 @@ object SPAppActions {
}
@JvmStatic
- fun getFetchRecitationsForce(ctx: Context): Boolean = sp(ctx).getBoolean(KEY_APP_ACTION_SP_RECITATIONS_FETCH_FORCE, false)
+ fun getFetchRecitationsForce(ctx: Context): Boolean = sp(ctx).getBoolean(
+ KEY_APP_ACTION_SP_RECITATIONS_FETCH_FORCE,
+ false
+ )
@JvmStatic
fun setFetchUrlsForce(ctx: Context, fetchForce: Boolean) {
@@ -51,7 +57,10 @@ object SPAppActions {
}
@JvmStatic
- fun getFetchUrlsForce(ctx: Context): Boolean = sp(ctx).getBoolean(KEY_APP_ACTION_SP_URLS_FETCH_FORCE, false)
+ fun getFetchUrlsForce(ctx: Context): Boolean = sp(ctx).getBoolean(
+ KEY_APP_ACTION_SP_URLS_FETCH_FORCE,
+ false
+ )
@JvmStatic
fun addToPendingAction(ctx: Context, action: String, victim: String?) {
@@ -111,5 +120,4 @@ object SPAppActions {
apply()
}
}
-
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPAppConfigs.kt b/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPAppConfigs.kt
index 7a3654c4..34b51a22 100644
--- a/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPAppConfigs.kt
+++ b/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPAppConfigs.kt
@@ -15,7 +15,10 @@ object SPAppConfigs {
const val THEME_MODE_LIGHT = "app.theme.light"
const val THEME_MODE_DARK = "app.theme.dark"
- private fun sp(context: Context) = context.getSharedPreferences(SP_APP_CONFIGS, Context.MODE_PRIVATE)
+ private fun sp(context: Context) = context.getSharedPreferences(
+ SP_APP_CONFIGS,
+ Context.MODE_PRIVATE
+ )
@JvmStatic
fun setThemeMode(ctx: Context, themeMode: String?) {
@@ -64,4 +67,4 @@ object SPAppConfigs {
apply()
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPLog.kt b/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPLog.kt
index d173fabb..37e6291a 100644
--- a/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPLog.kt
+++ b/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPLog.kt
@@ -19,11 +19,10 @@ object SPLog {
fun getLastCrashLog(ctx: Context): String? = sp(ctx).getString(KEY_SP_LAST_CRASH_LOG, null)
-
fun removeLastCrashLog(ctx: Context) {
sp(ctx).edit().apply {
remove(KEY_SP_LAST_CRASH_LOG)
apply()
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPReader.java b/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPReader.java
index 6782df34..50c4420c 100644
--- a/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPReader.java
+++ b/app/src/main/java/com/quranapp/android/utils/sharedPrefs/SPReader.java
@@ -1,5 +1,7 @@
package com.quranapp.android.utils.sharedPrefs;
+import android.content.Context;
+import android.content.SharedPreferences;
import static com.quranapp.android.reader_managers.ReaderParams.READER_STYLE_DEFAULT;
import static com.quranapp.android.utils.reader.ReaderTextSizeUtils.KEY_TEXT_SIZE_MULT_ARABIC;
import static com.quranapp.android.utils.reader.ReaderTextSizeUtils.KEY_TEXT_SIZE_MULT_TRANSL;
@@ -10,9 +12,6 @@
import static com.quranapp.android.utils.reader.recitation.RecitationUtils.KEY_RECITATION_REPEAT;
import static com.quranapp.android.utils.reader.recitation.RecitationUtils.RECITATION_DEFAULT_VERSE_SYNC;
-import android.content.Context;
-import android.content.SharedPreferences;
-
import com.quranapp.android.utils.app.RecitationManager;
import com.quranapp.android.utils.reader.QuranScriptUtils;
import com.quranapp.android.utils.reader.TranslUtils;
@@ -152,8 +151,8 @@ public static boolean getRecitationContinueChapter(Context context) {
}
return sp.getBoolean(
- RecitationUtils.KEY_RECITATION_CONTINUE_CHAPTER,
- RecitationUtils.RECITATION_DEFAULT_CONTINUE_CHAPTER
+ RecitationUtils.KEY_RECITATION_CONTINUE_CHAPTER,
+ RecitationUtils.RECITATION_DEFAULT_CONTINUE_CHAPTER
);
}
diff --git a/app/src/main/java/com/quranapp/android/utils/simplified/SimpleSeekbarChangeListener.kt b/app/src/main/java/com/quranapp/android/utils/simplified/SimpleSeekbarChangeListener.kt
index f03a2d6c..7a53b095 100644
--- a/app/src/main/java/com/quranapp/android/utils/simplified/SimpleSeekbarChangeListener.kt
+++ b/app/src/main/java/com/quranapp/android/utils/simplified/SimpleSeekbarChangeListener.kt
@@ -6,4 +6,4 @@ abstract class SimpleSeekbarChangeListener : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {}
override fun onStartTrackingTouch(seekBar: SeekBar) {}
override fun onStopTrackingTouch(seekBar: SeekBar) {}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/simplified/SimpleTabSelectorListener.kt b/app/src/main/java/com/quranapp/android/utils/simplified/SimpleTabSelectorListener.kt
index ef2d9fe5..a9d4b54e 100644
--- a/app/src/main/java/com/quranapp/android/utils/simplified/SimpleTabSelectorListener.kt
+++ b/app/src/main/java/com/quranapp/android/utils/simplified/SimpleTabSelectorListener.kt
@@ -6,4 +6,4 @@ abstract class SimpleTabSelectorListener : TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab) {}
override fun onTabUnselected(tab: TabLayout.Tab) {}
override fun onTabReselected(tab: TabLayout.Tab) {}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/simplified/SimpleTextWatcher.kt b/app/src/main/java/com/quranapp/android/utils/simplified/SimpleTextWatcher.kt
index 76466d13..1aab1221 100644
--- a/app/src/main/java/com/quranapp/android/utils/simplified/SimpleTextWatcher.kt
+++ b/app/src/main/java/com/quranapp/android/utils/simplified/SimpleTextWatcher.kt
@@ -7,4 +7,4 @@ abstract class SimpleTextWatcher : TextWatcher {
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {}
override fun afterTextChanged(s: Editable) {}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/tafsir/TafsirUtils.java b/app/src/main/java/com/quranapp/android/utils/tafsir/TafsirUtils.java
index 38303852..67033912 100644
--- a/app/src/main/java/com/quranapp/android/utils/tafsir/TafsirUtils.java
+++ b/app/src/main/java/com/quranapp/android/utils/tafsir/TafsirUtils.java
@@ -1,7 +1,6 @@
package com.quranapp.android.utils.tafsir;
import android.annotation.SuppressLint;
-
import androidx.annotation.Nullable;
import com.quranapp.android.utils.app.AppUtils;
diff --git a/app/src/main/java/com/quranapp/android/utils/tafsir/TafsirWebViewClient.java b/app/src/main/java/com/quranapp/android/utils/tafsir/TafsirWebViewClient.java
index e29a2ca1..b05ea9b5 100644
--- a/app/src/main/java/com/quranapp/android/utils/tafsir/TafsirWebViewClient.java
+++ b/app/src/main/java/com/quranapp/android/utils/tafsir/TafsirWebViewClient.java
@@ -12,16 +12,15 @@
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
import android.webkit.WebViewClient;
-
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.core.graphics.drawable.DrawableCompat;
-import com.quranapp.android.utils.Log;
import com.peacedesign.android.utils.WindowUtils;
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityTafsir;
import com.quranapp.android.components.quran.subcomponents.Chapter;
+import com.quranapp.android.utils.Log;
import com.quranapp.android.utils.extensions.ContextKt;
import com.quranapp.android.utils.univ.ResUtils;
@@ -38,7 +37,7 @@ public class TafsirWebViewClient extends WebViewClient {
private final boolean isDarkTheme;
public TafsirWebViewClient(ActivityTafsir activityTafsir) {
- this.mActivityTafsir = activityTafsir;
+ mActivityTafsir = activityTafsir;
isDarkTheme = WindowUtils.isNightMode(activityTafsir);
}
@@ -75,8 +74,9 @@ private WebResourceResponse handleRequest(WebView view, WebResourceRequest reque
data = ctx.getResources().openRawResource(+R.font.me_quran_4_uthmani_text);
} else if (uriStr.contains("verse-preview")) {
data = ctx.getResources().openRawResource(+R.font.pdms);
- } else if (TafsirUtils.TAFSIR_SLUG_TAFSIR_IBN_KATHIR_UR.equals(mActivityTafsir.mTafsirSlug) && uriStr.contains(
- "content")) {
+ } else if (TafsirUtils.TAFSIR_SLUG_TAFSIR_IBN_KATHIR_UR.equals(
+ mActivityTafsir.mTafsirSlug) && uriStr.contains(
+ "content")) {
data = view.getContext().getResources().openRawResource(+R.font.font_urdu);
}
break;
@@ -109,7 +109,8 @@ private WebResourceResponse handleRequest(WebView view, WebResourceRequest reque
Map headers = request.getRequestHeaders();
headers.put("Access-Control-Allow-Origin", "*");
- return new WebResourceResponse(URLConnection.guessContentTypeFromName(uri.getPath()), "utf-8", 200, "OK", headers, data);
+ return new WebResourceResponse(URLConnection.guessContentTypeFromName(uri.getPath()), "utf-8", 200, "OK",
+ headers, data);
}
private InputStream createArrowDrawableStream(Context context, float rotate) {
@@ -122,7 +123,8 @@ private InputStream createArrowDrawableStream(Context context, float rotate) {
drawable.setTint(isDarkTheme ? Color.parseColor("#BBBBBB") : Color.BLACK);
- Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
+ Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(),
+ Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
if (rotate != 0) {
canvas.rotate(rotate, drawable.getIntrinsicWidth() >> 1, drawable.getIntrinsicHeight() >> 1);
@@ -157,12 +159,12 @@ private void installContents(WebView webView) throws JSONException {
JSONObject contentJson = new JSONObject();
contentJson.put("tafsir-title", TafsirUtils.getTafsirName(tafsirSlug));
contentJson.put("verse-info-title",
- mActivityTafsir.str(R.string.strLabelVerseWithChapNameWithBar, chapter.getName(), verseNo));
+ mActivityTafsir.str(R.string.strLabelVerseWithChapNameWithBar, chapter.getName(), verseNo));
contentJson.put("verse-preview", chapter.getVerse(verseNo).arabicText);
contentJson.put("previous-tafsir-title", preparePrevVerseTitle(verseNo));
contentJson.put("next-tafsir-title", prepareNextVerseTitle(verseNo, chapter.getVerseCount()));
- String js = "javascript:installContents('" + contentJson.toString() + "')";
+ String js = "javascript:installContents('" + contentJson + "')";
webView.loadUrl(js);
}
diff --git a/app/src/main/java/com/quranapp/android/utils/thread/runner/CallableTaskRunner.java b/app/src/main/java/com/quranapp/android/utils/thread/runner/CallableTaskRunner.java
index 2f7eb78a..be68541e 100644
--- a/app/src/main/java/com/quranapp/android/utils/thread/runner/CallableTaskRunner.java
+++ b/app/src/main/java/com/quranapp/android/utils/thread/runner/CallableTaskRunner.java
@@ -2,7 +2,6 @@
import android.os.Handler;
import android.os.Looper;
-
import androidx.annotation.NonNull;
import com.quranapp.android.utils.thread.tasks.TaskCallable;
diff --git a/app/src/main/java/com/quranapp/android/utils/thread/runner/MultiTaskRunner.java b/app/src/main/java/com/quranapp/android/utils/thread/runner/MultiTaskRunner.java
index 9c59a32f..957f2af8 100644
--- a/app/src/main/java/com/quranapp/android/utils/thread/runner/MultiTaskRunner.java
+++ b/app/src/main/java/com/quranapp/android/utils/thread/runner/MultiTaskRunner.java
@@ -2,7 +2,6 @@
import android.os.Handler;
import android.os.Looper;
-
import androidx.annotation.NonNull;
import com.quranapp.android.utils.thread.tasks.TaskCallable;
diff --git a/app/src/main/java/com/quranapp/android/utils/thread/runner/RunnableTaskRunner.java b/app/src/main/java/com/quranapp/android/utils/thread/runner/RunnableTaskRunner.java
index 3a5e0320..68946554 100644
--- a/app/src/main/java/com/quranapp/android/utils/thread/runner/RunnableTaskRunner.java
+++ b/app/src/main/java/com/quranapp/android/utils/thread/runner/RunnableTaskRunner.java
@@ -2,7 +2,6 @@
import android.os.Handler;
import android.os.Looper;
-
import androidx.annotation.NonNull;
import androidx.core.os.HandlerCompat;
diff --git a/app/src/main/java/com/quranapp/android/utils/thread/tasks/BaseCallableTask.java b/app/src/main/java/com/quranapp/android/utils/thread/tasks/BaseCallableTask.java
index 9d2a1a94..6971a6ab 100644
--- a/app/src/main/java/com/quranapp/android/utils/thread/tasks/BaseCallableTask.java
+++ b/app/src/main/java/com/quranapp/android/utils/thread/tasks/BaseCallableTask.java
@@ -1,13 +1,12 @@
package com.quranapp.android.utils.thread.tasks;
import android.os.Build;
-
import androidx.annotation.NonNull;
import java.net.HttpURLConnection;
public abstract class BaseCallableTask implements TaskCallable {
- private boolean mDone = false;
+ private boolean mDone;
@Override
public void preExecute() {
diff --git a/app/src/main/java/com/quranapp/android/utils/thread/tasks/BaseRunnableTask.java b/app/src/main/java/com/quranapp/android/utils/thread/tasks/BaseRunnableTask.java
index cac484b9..681c605c 100644
--- a/app/src/main/java/com/quranapp/android/utils/thread/tasks/BaseRunnableTask.java
+++ b/app/src/main/java/com/quranapp/android/utils/thread/tasks/BaseRunnableTask.java
@@ -1,13 +1,12 @@
package com.quranapp.android.utils.thread.tasks;
import android.os.Build;
-
import androidx.annotation.NonNull;
import java.net.HttpURLConnection;
public abstract class BaseRunnableTask implements TaskRunnable {
- private boolean mDone = false;
+ private boolean mDone;
@Override
public void preExecute() {
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/Codes.kt b/app/src/main/java/com/quranapp/android/utils/univ/Codes.kt
index b306ce37..6ab6d511 100644
--- a/app/src/main/java/com/quranapp/android/utils/univ/Codes.kt
+++ b/app/src/main/java/com/quranapp/android/utils/univ/Codes.kt
@@ -13,4 +13,4 @@ object Codes {
const val REQ_CODE_LOG_IN = 0x0200
const val REQ_CODE_PROFILE_UPDATE = 0x0210
const val REQ_CODE_PERMISSION_STORAGE_EXTERNAL = 0x0310
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/DBUtils.kt b/app/src/main/java/com/quranapp/android/utils/univ/DBUtils.kt
index 8c483629..d3179e84 100644
--- a/app/src/main/java/com/quranapp/android/utils/univ/DBUtils.kt
+++ b/app/src/main/java/com/quranapp/android/utils/univ/DBUtils.kt
@@ -20,4 +20,4 @@ object DBUtils {
}
return selection.toString()
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/FileUtils.java b/app/src/main/java/com/quranapp/android/utils/univ/FileUtils.java
index cf032a8b..8b2ff3bc 100644
--- a/app/src/main/java/com/quranapp/android/utils/univ/FileUtils.java
+++ b/app/src/main/java/com/quranapp/android/utils/univ/FileUtils.java
@@ -1,9 +1,5 @@
package com.quranapp.android.utils.univ;
-import static android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION;
-import static com.quranapp.android.utils.reader.TranslUtils.TRANSL_AVAILABLE_DOWNLOADS_FILE_NAME;
-import static com.quranapp.android.utils.reader.recitation.RecitationUtils.AVAILABLE_RECITATIONS_FILENAME;
-
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
@@ -12,10 +8,12 @@
import android.net.Uri;
import android.provider.MediaStore;
import android.text.TextUtils;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.FileProvider;
+import static com.quranapp.android.utils.reader.TranslUtils.TRANSL_AVAILABLE_DOWNLOADS_FILE_NAME;
+import static com.quranapp.android.utils.reader.recitation.RecitationUtils.AVAILABLE_RECITATIONS_FILENAME;
+import static android.content.Intent.FLAG_GRANT_READ_URI_PERMISSION;
import com.quranapp.android.utils.app.AppUtils;
import com.quranapp.android.utils.chapterInfo.ChapterInfoUtils;
@@ -301,10 +299,10 @@ public Uri getFileURI(@NonNull File file) {
@Nullable
public String getPathFromUri(@NonNull Uri uri) {
- String[] projection = {MediaStore.Images.Media.DATA};
+ String[] projection = {MediaStore.MediaColumns.DATA};
Cursor cursor = getContext().getContentResolver().query(uri, projection, null, null, null);
if (cursor == null) return null;
- int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
+ int column_index = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
cursor.moveToFirst();
String path = cursor.getString(column_index);
cursor.close();
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/Keys.kt b/app/src/main/java/com/quranapp/android/utils/univ/Keys.kt
index 84ab2d02..bef25d1c 100644
--- a/app/src/main/java/com/quranapp/android/utils/univ/Keys.kt
+++ b/app/src/main/java/com/quranapp/android/utils/univ/Keys.kt
@@ -17,4 +17,4 @@ object Keys {
const val KEY_REFERENCE_VERSE_MODEL = "verse_model"
const val KEY_LANGUAGE = "language"
const val KEY_ACTIVITY_RESUMED_FROM_NOTIFICATION = "key.resumeFromPlayerNotification"
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/PopupWindow2.java b/app/src/main/java/com/quranapp/android/utils/univ/PopupWindow2.java
index 40680942..806e3bca 100644
--- a/app/src/main/java/com/quranapp/android/utils/univ/PopupWindow2.java
+++ b/app/src/main/java/com/quranapp/android/utils/univ/PopupWindow2.java
@@ -4,7 +4,6 @@
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
-
import androidx.core.content.ContextCompat;
import com.quranapp.android.utils.extensions.ViewKt;
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/RegexPattern.kt b/app/src/main/java/com/quranapp/android/utils/univ/RegexPattern.kt
index 71dd8095..46a22761 100644
--- a/app/src/main/java/com/quranapp/android/utils/univ/RegexPattern.kt
+++ b/app/src/main/java/com/quranapp/android/utils/univ/RegexPattern.kt
@@ -19,5 +19,7 @@ object RegexPattern {
val VERSE_JUMP_PATTERN: Pattern = Pattern.compile("(\\d+)[\\s+]?:[\\s+]?(\\d+)")
@JvmField
- val VERSE_RANGE_JUMP_PATTERN: Pattern = Pattern.compile("(\\d+)[\\s+]?:[\\s+]?(\\d+)[\\-](\\d+)")
-}
\ No newline at end of file
+ val VERSE_RANGE_JUMP_PATTERN: Pattern = Pattern.compile(
+ "(\\d+)[\\s+]?:[\\s+]?(\\d+)[\\-](\\d+)"
+ )
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/RelativePopupWindow.java b/app/src/main/java/com/quranapp/android/utils/univ/RelativePopupWindow.java
index 8e02475f..83d3e096 100644
--- a/app/src/main/java/com/quranapp/android/utils/univ/RelativePopupWindow.java
+++ b/app/src/main/java/com/quranapp/android/utils/univ/RelativePopupWindow.java
@@ -5,7 +5,6 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.PopupWindow;
-
import androidx.annotation.IntDef;
import androidx.annotation.NonNull;
import androidx.core.widget.PopupWindowCompat;
@@ -20,11 +19,11 @@
public class RelativePopupWindow extends PopupWindow {
@IntDef({
- VerticalPosition.CENTER,
- VerticalPosition.ABOVE,
- VerticalPosition.BELOW,
- VerticalPosition.ALIGN_TOP,
- VerticalPosition.ALIGN_BOTTOM,
+ VerticalPosition.CENTER,
+ VerticalPosition.ABOVE,
+ VerticalPosition.BELOW,
+ VerticalPosition.ALIGN_TOP,
+ VerticalPosition.ALIGN_BOTTOM,
})
@Retention(RetentionPolicy.SOURCE)
public @interface VerticalPosition {
@@ -36,11 +35,11 @@ public class RelativePopupWindow extends PopupWindow {
}
@IntDef({
- HorizontalPosition.CENTER,
- HorizontalPosition.LEFT,
- HorizontalPosition.RIGHT,
- HorizontalPosition.ALIGN_LEFT,
- HorizontalPosition.ALIGN_RIGHT,
+ HorizontalPosition.CENTER,
+ HorizontalPosition.LEFT,
+ HorizontalPosition.RIGHT,
+ HorizontalPosition.ALIGN_LEFT,
+ HorizontalPosition.ALIGN_RIGHT,
})
@Retention(RetentionPolicy.SOURCE)
public @interface HorizontalPosition {
@@ -59,9 +58,9 @@ public class RelativePopupWindow extends PopupWindow {
* @param horizPos Horizontal Position Flag
*/
public void showOnAnchor(
- @NonNull View anchor,
- @VerticalPosition int vertPos,
- @HorizontalPosition int horizPos
+ @NonNull View anchor,
+ @VerticalPosition int vertPos,
+ @HorizontalPosition int horizPos
) {
showOnAnchor(anchor, vertPos, horizPos, 0, 0);
}
@@ -75,10 +74,10 @@ public void showOnAnchor(
* @param fitInScreen Automatically fit in screen or not
*/
public void showOnAnchor(
- @NonNull View anchor,
- @VerticalPosition int vertPos,
- @HorizontalPosition int horizPos,
- boolean fitInScreen
+ @NonNull View anchor,
+ @VerticalPosition int vertPos,
+ @HorizontalPosition int horizPos,
+ boolean fitInScreen
) {
showOnAnchor(anchor, vertPos, horizPos, 0, 0, fitInScreen);
}
@@ -93,11 +92,11 @@ public void showOnAnchor(
* @param y Translation Y
*/
public void showOnAnchor(
- @NonNull View anchor,
- @VerticalPosition int vertPos,
- @HorizontalPosition int horizPos,
- int x,
- int y
+ @NonNull View anchor,
+ @VerticalPosition int vertPos,
+ @HorizontalPosition int horizPos,
+ int x,
+ int y
) {
showOnAnchor(anchor, vertPos, horizPos, x, y, true);
}
@@ -113,12 +112,12 @@ public void showOnAnchor(
* @param fitInScreen Automatically fit in screen or not
*/
public void showOnAnchor(
- @NonNull View anchor,
- @VerticalPosition int vertPos,
- @HorizontalPosition int horizPos,
- int x,
- int y,
- boolean fitInScreen
+ @NonNull View anchor,
+ @VerticalPosition int vertPos,
+ @HorizontalPosition int horizPos,
+ int x,
+ int y,
+ boolean fitInScreen
) {
setClippingEnabled(fitInScreen);
final View contentView = getContentView();
@@ -127,8 +126,8 @@ public void showOnAnchor(
final int windowW = windowRect.width();
final int windowH = windowRect.height();
contentView.measure(
- makeDropDownMeasureSpec(getWidth(), windowW),
- makeDropDownMeasureSpec(getHeight(), windowH)
+ makeDropDownMeasureSpec(getWidth(), windowW),
+ makeDropDownMeasureSpec(getHeight(), windowH)
);
final int measuredW = contentView.getMeasuredWidth();
final int measuredH = contentView.getMeasuredHeight();
@@ -187,8 +186,8 @@ public void showOnAnchor(
private static int makeDropDownMeasureSpec(int measureSpec, int maxSize) {
return View.MeasureSpec.makeMeasureSpec(
- getDropDownMeasureSpecSize(measureSpec, maxSize),
- getDropDownMeasureSpecMode(measureSpec)
+ getDropDownMeasureSpecSize(measureSpec, maxSize),
+ getDropDownMeasureSpecMode(measureSpec)
);
}
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/ResUtils.kt b/app/src/main/java/com/quranapp/android/utils/univ/ResUtils.kt
index c72bd327..89bebff8 100644
--- a/app/src/main/java/com/quranapp/android/utils/univ/ResUtils.kt
+++ b/app/src/main/java/com/quranapp/android/utils/univ/ResUtils.kt
@@ -58,4 +58,4 @@ object ResUtils {
return text
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/SpannableFactory.kt b/app/src/main/java/com/quranapp/android/utils/univ/SpannableFactory.kt
index 4266c845..41258fc7 100644
--- a/app/src/main/java/com/quranapp/android/utils/univ/SpannableFactory.kt
+++ b/app/src/main/java/com/quranapp/android/utils/univ/SpannableFactory.kt
@@ -6,6 +6,8 @@ class SpannableFactory : Spannable.Factory() {
override fun newSpannable(source: CharSequence): Spannable {
return if (source is Spannable) {
source
- } else super.newSpannable(source)
+ } else {
+ super.newSpannable(source)
+ }
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/utils/univ/StringUtils.java b/app/src/main/java/com/quranapp/android/utils/univ/StringUtils.java
index 774b8d9c..0cdafd06 100644
--- a/app/src/main/java/com/quranapp/android/utils/univ/StringUtils.java
+++ b/app/src/main/java/com/quranapp/android/utils/univ/StringUtils.java
@@ -1,5 +1,9 @@
package com.quranapp.android.utils.univ;
+import android.os.Bundle;
+import android.text.TextUtils;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import static com.quranapp.android.utils.univ.StringUtils.RandomPattern.ALPHABETIC;
import static com.quranapp.android.utils.univ.StringUtils.RandomPattern.ALPHABETIC_LOWER;
import static com.quranapp.android.utils.univ.StringUtils.RandomPattern.ALPHABETIC_UPPER;
@@ -7,12 +11,6 @@
import static com.quranapp.android.utils.univ.StringUtils.RandomPattern.ALPHANUMERIC_UPPER;
import static com.quranapp.android.utils.univ.StringUtils.RandomPattern.NUMERIC;
-import android.os.Bundle;
-import android.text.TextUtils;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
@@ -196,9 +194,11 @@ public static String commonString(@NonNull String str1, @NonNull String str2, @N
* @return Returns first character of every word appended.
*/
@NonNull
- public static String appendFirstChars(@NonNull String string,
- @NonNull String sepDelimiter,
- @NonNull String apdDelimiter, int count) {
+ public static String appendFirstChars(
+ @NonNull String string,
+ @NonNull String sepDelimiter,
+ @NonNull String apdDelimiter, int count
+ ) {
String[] substringArr = string.split(sepDelimiter);
StringBuilder res = new StringBuilder();
int len = substringArr.length;
@@ -228,13 +228,20 @@ public static String appendFirstChars(@NonNull String string,
public static String random(int length, int randomPattern) {
final String chars;
switch (randomPattern) {
- case ALPHABETIC: chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; break;
- case ALPHABETIC_LOWER: chars = "abcdefghijklmnopqrstuvwxyz"; break;
- case ALPHABETIC_UPPER: chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; break;
- case ALPHANUMERIC_LOWER: chars = "abcdefghijklmnopqrstuvwxyz1234567890"; break;
- case ALPHANUMERIC_UPPER: chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; break;
- case NUMERIC: chars = "1234567890"; break;
- default: chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; break;
+ case ALPHABETIC: chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ break;
+ case ALPHABETIC_LOWER: chars = "abcdefghijklmnopqrstuvwxyz";
+ break;
+ case ALPHABETIC_UPPER: chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+ break;
+ case ALPHANUMERIC_LOWER: chars = "abcdefghijklmnopqrstuvwxyz1234567890";
+ break;
+ case ALPHANUMERIC_UPPER: chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
+ break;
+ case NUMERIC: chars = "1234567890";
+ break;
+ default: chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
+ break;
}
StringBuilder string = new StringBuilder();
@@ -265,9 +272,9 @@ public static String readInputStream(InputStream inputStream) throws IOException
public static boolean isRTL(char c) {
byte d = Character.getDirectionality(c);
return d == Character.DIRECTIONALITY_RIGHT_TO_LEFT ||
- d == Character.DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC ||
- d == Character.DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING ||
- d == Character.DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE;
+ d == Character.DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC ||
+ d == Character.DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING ||
+ d == Character.DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE;
}
/**
diff --git a/app/src/main/java/com/quranapp/android/utils/verse/VerseUtils.java b/app/src/main/java/com/quranapp/android/utils/verse/VerseUtils.java
index 5f52e392..b010196e 100644
--- a/app/src/main/java/com/quranapp/android/utils/verse/VerseUtils.java
+++ b/app/src/main/java/com/quranapp/android/utils/verse/VerseUtils.java
@@ -1,8 +1,5 @@
package com.quranapp.android.utils.verse;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static android.text.Spanned.SPAN_POINT_MARK;
-
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Typeface;
@@ -12,8 +9,9 @@
import android.text.TextUtils;
import android.text.style.AbsoluteSizeSpan;
import android.text.style.ForegroundColorSpan;
-
import androidx.annotation.NonNull;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
+import static android.text.Spanned.SPAN_POINT_MARK;
import com.peacedesign.android.utils.span.TypefaceSpan2;
import com.quranapp.android.components.quran.Quran;
diff --git a/app/src/main/java/com/quranapp/android/utils/votd/VOTDUtils.java b/app/src/main/java/com/quranapp/android/utils/votd/VOTDUtils.java
index f87af6b4..e63437d6 100644
--- a/app/src/main/java/com/quranapp/android/utils/votd/VOTDUtils.java
+++ b/app/src/main/java/com/quranapp/android/utils/votd/VOTDUtils.java
@@ -8,7 +8,6 @@
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
-
import androidx.core.content.ContextCompat;
import com.quranapp.android.utils.receivers.BootReceiver;
diff --git a/app/src/main/java/com/quranapp/android/vh/search/VHJuzJump.kt b/app/src/main/java/com/quranapp/android/vh/search/VHJuzJump.kt
index 9ce5e53e..fc26faff 100644
--- a/app/src/main/java/com/quranapp/android/vh/search/VHJuzJump.kt
+++ b/app/src/main/java/com/quranapp/android/vh/search/VHJuzJump.kt
@@ -18,4 +18,4 @@ class VHJuzJump(private val mBinding: LytReaderJuzSpinnerItemBinding, applyMargi
mBinding.root.setOnClickListener { startJuz(it.context, model.juzNo) }
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/vh/search/VHSearchResultBase.kt b/app/src/main/java/com/quranapp/android/vh/search/VHSearchResultBase.kt
index 73211d54..9fa19a50 100644
--- a/app/src/main/java/com/quranapp/android/vh/search/VHSearchResultBase.kt
+++ b/app/src/main/java/com/quranapp/android/vh/search/VHSearchResultBase.kt
@@ -13,7 +13,10 @@ open class VHSearchResultBase(itemView: View) : RecyclerView.ViewHolder(itemView
open fun bind(model: SearchResultModelBase, pos: Int) {}
protected fun setupJumperView(view: View, applyMargins: Boolean) {
- view.layoutParams = MarginLayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT).apply {
+ view.layoutParams = MarginLayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT
+ ).apply {
if (applyMargins) {
val marg = Dimen.dp2px(view.context, 10f)
updateMarginsRelative(start = marg, end = marg, bottom = 10)
@@ -21,4 +24,4 @@ open class VHSearchResultBase(itemView: View) : RecyclerView.ViewHolder(itemView
}
view.setBackgroundResource(R.drawable.dr_bg_chapter_card_bordered_onlylight)
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/vh/search/VHVerseJump.java b/app/src/main/java/com/quranapp/android/vh/search/VHVerseJump.java
index e86a4b08..b1d618ed 100644
--- a/app/src/main/java/com/quranapp/android/vh/search/VHVerseJump.java
+++ b/app/src/main/java/com/quranapp/android/vh/search/VHVerseJump.java
@@ -1,7 +1,5 @@
package com.quranapp.android.vh.search;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Typeface;
@@ -9,9 +7,9 @@
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
import android.text.style.TextAppearanceSpan;
-
import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.content.ContextCompat;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
import com.peacedesign.android.utils.Dimen;
import com.quranapp.android.R;
@@ -28,7 +26,8 @@ public VHVerseJump(AppCompatTextView textView, boolean applyMargins) {
super(textView);
mTextView = textView;
- ViewPaddingKt.updatePaddings(textView, Dimen.dp2px(textView.getContext(), 15), Dimen.dp2px(textView.getContext(), 10));
+ ViewPaddingKt.updatePaddings(textView, Dimen.dp2px(textView.getContext(), 15),
+ Dimen.dp2px(textView.getContext(), 10));
setupJumperView(textView, applyMargins);
}
@@ -38,7 +37,7 @@ public void bind(SearchResultModelBase parentModel, int pos) {
mTextView.setText(makeName(itemView.getContext(), model.titleText, model.chapterNameText));
mTextView.setOnClickListener(v -> ReaderFactory.startVerseRange(v.getContext(),
- model.chapterNo, model.fromVerseNo, model.toVerseNo));
+ model.chapterNo, model.fromVerseNo, model.toVerseNo));
}
private CharSequence makeName(Context ctx, String text, String subtext) {
diff --git a/app/src/main/java/com/quranapp/android/views/BoldHeader.java b/app/src/main/java/com/quranapp/android/views/BoldHeader.java
index d9f001fc..276144a9 100644
--- a/app/src/main/java/com/quranapp/android/views/BoldHeader.java
+++ b/app/src/main/java/com/quranapp/android/views/BoldHeader.java
@@ -11,7 +11,6 @@
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
-
import androidx.annotation.ColorRes;
import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull;
@@ -105,10 +104,10 @@ private void initThis() {
setBackgroundColor(Color.TRANSPARENT);
mBinding.search.searchBox.setPaddingRelative(
- ContextKt.dp2px(getContext(), 5),
- mBinding.search.searchBox.getPaddingTop(),
- mBinding.search.searchBox.getPaddingEnd(),
- mBinding.search.searchBox.getPaddingBottom()
+ ContextKt.dp2px(getContext(), 5),
+ mBinding.search.searchBox.getPaddingTop(),
+ mBinding.search.searchBox.getPaddingEnd(),
+ mBinding.search.searchBox.getPaddingBottom()
);
}
@@ -118,7 +117,7 @@ private void toggleSearchBox(LytSimpleSearchBoxBinding searchBoxBinding, boolean
EditText searchBox = searchBoxBinding.searchBox;
InputMethodManager imm = (InputMethodManager) searchBox.getContext().getSystemService(
- Context.INPUT_METHOD_SERVICE);
+ Context.INPUT_METHOD_SERVICE);
if (showSearch) {
searchBox.requestFocus();
diff --git a/app/src/main/java/com/quranapp/android/views/CardMessage.java b/app/src/main/java/com/quranapp/android/views/CardMessage.java
index aa4e263a..464a5f1b 100644
--- a/app/src/main/java/com/quranapp/android/views/CardMessage.java
+++ b/app/src/main/java/com/quranapp/android/views/CardMessage.java
@@ -4,9 +4,6 @@
package com.quranapp.android.views;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-import static com.quranapp.android.components.utility.CardMessageParams.STYLE_WARNING;
-
import android.content.Context;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
@@ -17,11 +14,12 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
-
import androidx.annotation.NonNull;
import androidx.annotation.StringRes;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.appcompat.widget.AppCompatTextView;
+import static com.quranapp.android.components.utility.CardMessageParams.STYLE_WARNING;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.ColorUtils;
import com.peacedesign.android.utils.Dimen;
@@ -76,7 +74,8 @@ private void createMessageView() {
}
mMessageView = new AppCompatTextView(getContext());
- mMessageView.setTextSize(TypedValue.COMPLEX_UNIT_PX, ContextKt.getDimenPx(getContext(), R.dimen.dmnCommonSize2));
+ mMessageView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
+ ContextKt.getDimenPx(getContext(), R.dimen.dmnCommonSize2));
mMessageView.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD);
LinearLayout.LayoutParams p = new LayoutParams(0, WRAP_CONTENT);
diff --git a/app/src/main/java/com/quranapp/android/views/VOTDView.java b/app/src/main/java/com/quranapp/android/views/VOTDView.java
index 3a5b16ac..0cf2e9b3 100644
--- a/app/src/main/java/com/quranapp/android/views/VOTDView.java
+++ b/app/src/main/java/com/quranapp/android/views/VOTDView.java
@@ -1,8 +1,5 @@
package com.quranapp.android.views;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static com.quranapp.android.utils.reader.TranslUtils.TRANSL_TRANSLITERATION;
-
import android.content.Context;
import android.content.Intent;
import android.text.SpannableString;
@@ -13,10 +10,11 @@
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
+import static com.quranapp.android.utils.reader.TranslUtils.TRANSL_TRANSLITERATION;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.span.LineHeightSpan2;
diff --git a/app/src/main/java/com/quranapp/android/views/helper/CheckBox2.java b/app/src/main/java/com/quranapp/android/views/helper/CheckBox2.java
index 64c56ecd..62afd884 100644
--- a/app/src/main/java/com/quranapp/android/views/helper/CheckBox2.java
+++ b/app/src/main/java/com/quranapp/android/views/helper/CheckBox2.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.util.AttributeSet;
import android.view.ContextThemeWrapper;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatCheckBox;
diff --git a/app/src/main/java/com/quranapp/android/views/helper/Edittext.java b/app/src/main/java/com/quranapp/android/views/helper/Edittext.java
index 4d0aaca6..995da03f 100644
--- a/app/src/main/java/com/quranapp/android/views/helper/Edittext.java
+++ b/app/src/main/java/com/quranapp/android/views/helper/Edittext.java
@@ -2,7 +2,6 @@
import android.content.Context;
import android.util.AttributeSet;
-
import androidx.annotation.NonNull;
import androidx.appcompat.widget.AppCompatEditText;
diff --git a/app/src/main/java/com/quranapp/android/views/helper/NpaGridLayoutManager.java b/app/src/main/java/com/quranapp/android/views/helper/NpaGridLayoutManager.java
index bb001a1e..16ed36cb 100644
--- a/app/src/main/java/com/quranapp/android/views/helper/NpaGridLayoutManager.java
+++ b/app/src/main/java/com/quranapp/android/views/helper/NpaGridLayoutManager.java
@@ -6,7 +6,6 @@
import android.content.Context;
import android.util.AttributeSet;
-
import androidx.recyclerview.widget.GridLayoutManager;
/**
diff --git a/app/src/main/java/com/quranapp/android/views/helper/RecyclerView2.java b/app/src/main/java/com/quranapp/android/views/helper/RecyclerView2.java
index f8d8f7b6..83921cd0 100644
--- a/app/src/main/java/com/quranapp/android/views/helper/RecyclerView2.java
+++ b/app/src/main/java/com/quranapp/android/views/helper/RecyclerView2.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.util.AttributeSet;
import android.view.inputmethod.InputMethodManager;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
diff --git a/app/src/main/java/com/quranapp/android/views/helper/Spinner2.java b/app/src/main/java/com/quranapp/android/views/helper/Spinner2.java
index 8f1ba9f1..fbecdc4c 100644
--- a/app/src/main/java/com/quranapp/android/views/helper/Spinner2.java
+++ b/app/src/main/java/com/quranapp/android/views/helper/Spinner2.java
@@ -6,7 +6,6 @@
import android.widget.AdapterView;
import android.widget.PopupWindow;
import android.widget.SpinnerAdapter;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatSpinner;
@@ -91,6 +90,6 @@ public void setAdapter(SpinnerAdapter adapter) {
public abstract static class SimplerSpinnerItemSelectListener implements OnItemSelectedListener {
@Override
- public void onNothingSelected(AdapterView> parent) { }
+ public void onNothingSelected(AdapterView> parent) {}
}
}
diff --git a/app/src/main/java/com/quranapp/android/views/helper/TabLayout2.java b/app/src/main/java/com/quranapp/android/views/helper/TabLayout2.java
index 04b3c485..301383b1 100644
--- a/app/src/main/java/com/quranapp/android/views/helper/TabLayout2.java
+++ b/app/src/main/java/com/quranapp/android/views/helper/TabLayout2.java
@@ -4,7 +4,6 @@
import android.util.AttributeSet;
import android.view.View;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.TooltipCompat;
diff --git a/app/src/main/java/com/quranapp/android/views/homepage/FeatureProphetsLayout.java b/app/src/main/java/com/quranapp/android/views/homepage/FeatureProphetsLayout.java
index 95b6b3eb..7395d752 100644
--- a/app/src/main/java/com/quranapp/android/views/homepage/FeatureProphetsLayout.java
+++ b/app/src/main/java/com/quranapp/android/views/homepage/FeatureProphetsLayout.java
@@ -9,7 +9,6 @@
import android.content.Context;
import android.content.Intent;
import android.util.AttributeSet;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
diff --git a/app/src/main/java/com/quranapp/android/views/homepage/FeatureReadingLayout.java b/app/src/main/java/com/quranapp/android/views/homepage/FeatureReadingLayout.java
index 2711149f..f19bfab2 100644
--- a/app/src/main/java/com/quranapp/android/views/homepage/FeatureReadingLayout.java
+++ b/app/src/main/java/com/quranapp/android/views/homepage/FeatureReadingLayout.java
@@ -9,7 +9,6 @@
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
diff --git a/app/src/main/java/com/quranapp/android/views/homepage/FeatureTopicsLayout.java b/app/src/main/java/com/quranapp/android/views/homepage/FeatureTopicsLayout.java
index 21a6029d..b2c9b0ff 100644
--- a/app/src/main/java/com/quranapp/android/views/homepage/FeatureTopicsLayout.java
+++ b/app/src/main/java/com/quranapp/android/views/homepage/FeatureTopicsLayout.java
@@ -10,7 +10,6 @@
import android.content.Intent;
import android.graphics.Color;
import android.util.AttributeSet;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
diff --git a/app/src/main/java/com/quranapp/android/views/homepage/HomepageCollectionLayoutBase.java b/app/src/main/java/com/quranapp/android/views/homepage/HomepageCollectionLayoutBase.java
index 323a1faf..6df34cf7 100644
--- a/app/src/main/java/com/quranapp/android/views/homepage/HomepageCollectionLayoutBase.java
+++ b/app/src/main/java/com/quranapp/android/views/homepage/HomepageCollectionLayoutBase.java
@@ -6,10 +6,6 @@
package com.quranapp.android.views.homepage;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-import static com.peacedesign.android.utils.Dimen.dp2px;
-
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
@@ -17,7 +13,6 @@
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
-
import androidx.annotation.CallSuper;
import androidx.annotation.DrawableRes;
import androidx.annotation.Nullable;
@@ -25,6 +20,9 @@
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
+import static com.peacedesign.android.utils.Dimen.dp2px;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.quranapp.android.R;
import com.quranapp.android.databinding.LytHomepageTitledItemTitleBinding;
@@ -59,7 +57,8 @@ private void initThis(Context context) {
}
private void initTitle(Context context) {
- LytHomepageTitledItemTitleBinding binding = LytHomepageTitledItemTitleBinding.inflate(LayoutInflater.from(context));
+ LytHomepageTitledItemTitleBinding binding = LytHomepageTitledItemTitleBinding.inflate(
+ LayoutInflater.from(context));
int headerIcon = getHeaderIcon();
if (headerIcon != 0) {
diff --git a/app/src/main/java/com/quranapp/android/views/homepage/ReadHistoryLayout.java b/app/src/main/java/com/quranapp/android/views/homepage/ReadHistoryLayout.java
index 674c598f..f24bdf59 100644
--- a/app/src/main/java/com/quranapp/android/views/homepage/ReadHistoryLayout.java
+++ b/app/src/main/java/com/quranapp/android/views/homepage/ReadHistoryLayout.java
@@ -6,22 +6,20 @@
package com.quranapp.android.views.homepage;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-import static com.peacedesign.android.utils.Dimen.dp2px;
-
import android.content.Context;
import android.content.Intent;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
+import static com.peacedesign.android.utils.Dimen.dp2px;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityReadHistory;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/BismillahView.java b/app/src/main/java/com/quranapp/android/views/reader/BismillahView.java
index ccb9887e..b605f21e 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/BismillahView.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/BismillahView.java
@@ -1,15 +1,13 @@
package com.quranapp.android.views.reader;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-
import android.content.Context;
import android.util.AttributeSet;
import android.view.Gravity;
import android.view.ViewGroup;
import android.view.ViewGroup.MarginLayoutParams;
-
import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.widget.TextViewCompat;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import com.peacedesign.android.utils.Dimen;
import com.quranapp.android.R;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/ChapterIcon.java b/app/src/main/java/com/quranapp/android/views/reader/ChapterIcon.java
index abe465d5..b8938006 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/ChapterIcon.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/ChapterIcon.java
@@ -5,7 +5,6 @@
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.util.TypedValue;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/ChapterInfoCardView.java b/app/src/main/java/com/quranapp/android/views/reader/ChapterInfoCardView.java
index bfa88590..f3035b4f 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/ChapterInfoCardView.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/ChapterInfoCardView.java
@@ -1,8 +1,5 @@
package com.quranapp.android.views.reader;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.content.Context;
import android.content.Intent;
import android.text.Spannable;
@@ -14,11 +11,12 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.cardview.widget.CardView;
import androidx.core.content.ContextCompat;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.span.RoundedBG_FGSpan;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/ChapterTitleView.java b/app/src/main/java/com/quranapp/android/views/reader/ChapterTitleView.java
index 74a044ff..398d0e86 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/ChapterTitleView.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/ChapterTitleView.java
@@ -54,7 +54,7 @@ public void setChapterNumber(int chapterNo) {
public void setLayoutParams(ViewGroup.LayoutParams params) {
if (params instanceof MarginLayoutParams) {
// params.width = WRAP_CONTENT;
- LayoutParamsKt.updateMarginVertical((MarginLayoutParams) params, Dimen.dp2px(getContext(),20));
+ LayoutParamsKt.updateMarginVertical((MarginLayoutParams) params, Dimen.dp2px(getContext(), 20));
}
super.setLayoutParams(params);
}
diff --git a/app/src/main/java/com/quranapp/android/views/reader/QuranPageHeadView.java b/app/src/main/java/com/quranapp/android/views/reader/QuranPageHeadView.java
index b35bdc1f..94d28818 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/QuranPageHeadView.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/QuranPageHeadView.java
@@ -4,7 +4,6 @@
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.widget.FrameLayout;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -40,12 +39,12 @@ public void initWithPageModel(QuranPageModel pageModel) {
}
public void setPageNumber(int pageNumber) {
- mBinding.pageNo.setText(getContext().getString(R.string.strLabelPageNo,pageNumber));
+ mBinding.pageNo.setText(getContext().getString(R.string.strLabelPageNo, pageNumber));
}
private void setJuzChapter(int juzNumber, String chaptersName) {
mBinding.chapter.setText(chaptersName);
- mBinding.juz.setText(getContext().getString(R.string.strLabelJuzNo,juzNumber));
+ mBinding.juz.setText(getContext().getString(R.string.strLabelJuzNo, juzNumber));
}
}
diff --git a/app/src/main/java/com/quranapp/android/views/reader/QuranPageView.java b/app/src/main/java/com/quranapp/android/views/reader/QuranPageView.java
index e051b6e9..fd3a16ff 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/QuranPageView.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/QuranPageView.java
@@ -1,8 +1,5 @@
package com.quranapp.android.views.reader;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ArgbEvaluator;
@@ -21,10 +18,11 @@
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityReader;
@@ -145,7 +143,8 @@ private void initBGAnimator() {
public void onAnimationEnd(Animator animation) {
VerseArabicHighlightSpan span = verseSpanToAnimate.get();
if (span != null) {
- span.setBackgroundColor(span.verseNo == recitingVerseNo ? mBGHighlightBGColor : Color.TRANSPARENT);
+ span.setBackgroundColor(
+ span.verseNo == recitingVerseNo ? mBGHighlightBGColor : Color.TRANSPARENT);
}
}
});
@@ -196,7 +195,8 @@ private void initVerses(QuranPageSectionModel sectionModel) {
if (!mScrollHighlightInProgress) {
Spannable spannable2 = (Spannable) mBinding.content.getText();
- VerseArabicHighlightSpan[] spans = spannable2.getSpans(0, spannable2.length(), VerseArabicHighlightSpan.class);
+ VerseArabicHighlightSpan[] spans = spannable2.getSpans(0, spannable2.length(),
+ VerseArabicHighlightSpan.class);
boolean anyReciting = false;
for (VerseArabicHighlightSpan span : spans) {
@@ -239,7 +239,8 @@ public VerseArabicHighlightSpan findVerseSpan(int verseNo) {
}
Spannable spannableStr = (Spannable) verseText;
- final VerseArabicHighlightSpan[] spans = spannableStr.getSpans(0, spannableStr.length(), VerseArabicHighlightSpan.class);
+ final VerseArabicHighlightSpan[] spans = spannableStr.getSpans(0, spannableStr.length(),
+ VerseArabicHighlightSpan.class);
if (spans == null) {
return null;
@@ -283,7 +284,8 @@ private void removeHighlight(int verseNo) {
}
SpannableString spannableStr = (SpannableString) verseText;
- final VerseArabicHighlightSpan[] spans = spannableStr.getSpans(0, spannableStr.length(), VerseArabicHighlightSpan.class);
+ final VerseArabicHighlightSpan[] spans = spannableStr.getSpans(0, spannableStr.length(),
+ VerseArabicHighlightSpan.class);
if (spans == null) {
return;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/ReaderFooter.java b/app/src/main/java/com/quranapp/android/views/reader/ReaderFooter.java
index 09139a83..ed735345 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/ReaderFooter.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/ReaderFooter.java
@@ -1,10 +1,5 @@
package com.quranapp.android.views.reader;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_CHAPTER;
-import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_JUZ;
-import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_VERSES;
-
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Typeface;
@@ -18,9 +13,12 @@
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
-
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
+import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_CHAPTER;
+import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_JUZ;
+import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_VERSES;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
import com.peacedesign.android.utils.DrawableUtils;
import com.quranapp.android.R;
@@ -159,7 +157,8 @@ public void clearParent() {
public void setupBottomNavigator() {
final QuranMeta quranMeta = mActivity.mQuranMetaRef.get();
switch (mReaderParams.readType) {
- case READER_READ_TYPE_CHAPTER: setupFooterForChapter(); break;
+ case READER_READ_TYPE_CHAPTER: setupFooterForChapter();
+ break;
case READER_READ_TYPE_VERSES:
Pair range = mReaderParams.verseRange;
if (QuranUtils.doesRangeDenoteSingle(range)) {
@@ -168,8 +167,10 @@ public void setupBottomNavigator() {
setupFooterForVersesRange(range);
}
break;
- case READER_READ_TYPE_JUZ: setupFooterForJuz(); break;
- default: setupFooterForNone(); break;
+ case READER_READ_TYPE_JUZ: setupFooterForJuz();
+ break;
+ default: setupFooterForNone();
+ break;
}
if (mReaderParams.readType == READER_READ_TYPE_JUZ) {
diff --git a/app/src/main/java/com/quranapp/android/views/reader/ReaderHeader.java b/app/src/main/java/com/quranapp/android/views/reader/ReaderHeader.java
index e41a852b..a7762ce3 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/ReaderHeader.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/ReaderHeader.java
@@ -1,24 +1,22 @@
package com.quranapp.android.views.reader;
-import static com.google.android.material.appbar.AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS;
-import static com.google.android.material.appbar.AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL;
-import static com.google.android.material.appbar.AppBarLayout.LayoutParams.SCROLL_FLAG_SNAP;
-import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_JUZ;
-import static com.quranapp.android.utils.univ.Keys.READER_KEY_READ_TYPE;
-import static com.quranapp.android.utils.univ.Keys.READER_KEY_SAVE_TRANSL_CHANGES;
-import static com.quranapp.android.utils.univ.Keys.READER_KEY_SETTING_IS_FROM_READER;
-import static com.quranapp.android.utils.univ.Keys.READER_KEY_TRANSL_SLUGS;
-
import android.content.Context;
import android.content.Intent;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.core.view.ViewCompat;
+import static com.google.android.material.appbar.AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS;
+import static com.google.android.material.appbar.AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL;
+import static com.google.android.material.appbar.AppBarLayout.LayoutParams.SCROLL_FLAG_SNAP;
+import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_JUZ;
+import static com.quranapp.android.utils.univ.Keys.READER_KEY_READ_TYPE;
+import static com.quranapp.android.utils.univ.Keys.READER_KEY_SAVE_TRANSL_CHANGES;
+import static com.quranapp.android.utils.univ.Keys.READER_KEY_SETTING_IS_FROM_READER;
+import static com.quranapp.android.utils.univ.Keys.READER_KEY_TRANSL_SLUGS;
import com.google.android.material.appbar.AppBarLayout;
import com.peacedesign.android.utils.Dimen;
@@ -81,7 +79,8 @@ private void init() {
mBinding.btnTranslLauncher.setOnClickListener(v -> openReaderSetting(ActivitySettings.SETTINGS_TRANSL));
ViewCompat.setTooltipText(mBinding.readerSetting, getContext().getString(R.string.strTitleReaderSettings));
- ViewCompat.setTooltipText(mBinding.btnTranslLauncher, getContext().getString(R.string.strLabelSelectTranslations));
+ ViewCompat.setTooltipText(mBinding.btnTranslLauncher,
+ getContext().getString(R.string.strLabelSelectTranslations));
mBinding.readerTitle.getRoot().setOnClickListener(v -> mJCVSelectorView.showPopup());
mJCVSelectorView.setJuzIconView(mBinding.readerTitle.juzIcon);
@@ -102,10 +101,10 @@ public void openReaderSetting(int destination) {
private void initThis() {
setBackground(DrawableUtils.createBackgroundStroked(
- ContextCompat.getColor(getContext(), R.color.colorBGReaderHeader),
- ContextCompat.getColor(getContext(), R.color.colorDivider),
- Dimen.createBorderWidthsForBG(0, 0, 0, Dimen.dp2px(getContext(), 1)),
- null
+ ContextCompat.getColor(getContext(), R.color.colorBGReaderHeader),
+ ContextCompat.getColor(getContext(), R.color.colorDivider),
+ Dimen.createBorderWidthsForBG(0, 0, 0, Dimen.dp2px(getContext(), 1)),
+ null
));
ViewGroup.LayoutParams params = mBinding.getRoot().getLayoutParams();
@@ -121,7 +120,7 @@ public void initJuzSelector() {
return;
}
if (mReaderParams != null && mReaderParams.readType == READER_READ_TYPE_JUZ
- && mJCVSelectorView.getJuzOrChapterAdapter() instanceof JuzSelectorAdapter2) {
+ && mJCVSelectorView.getJuzOrChapterAdapter() instanceof JuzSelectorAdapter2) {
return;
}
@@ -134,7 +133,7 @@ public void initChapterSelector() {
}
if (mReaderParams != null && mReaderParams.readType != READER_READ_TYPE_JUZ
- && mJCVSelectorView.getJuzOrChapterAdapter() instanceof ChapterSelectorAdapter2) {
+ && mJCVSelectorView.getJuzOrChapterAdapter() instanceof ChapterSelectorAdapter2) {
return;
}
@@ -149,7 +148,8 @@ public void initVerseSelector(VerseSelectorAdapter2 adapter, int chapterNo) {
if (adapter == null) {
String verseNoText = getContext().getString(R.string.strLabelVerseNo);
ArrayList items = new ArrayList<>();
- for (int verseNo = 1, l = mActivity.mQuranMetaRef.get().getChapterVerseCount(chapterNo); verseNo <= l; verseNo++) {
+ for (int verseNo = 1, l = mActivity.mQuranMetaRef.get().getChapterVerseCount(
+ chapterNo); verseNo <= l; verseNo++) {
VerseSpinnerItem item = new VerseSpinnerItem(chapterNo, verseNo);
item.setLabel(String.format(verseNoText, verseNo));
items.add(item);
diff --git a/app/src/main/java/com/quranapp/android/views/reader/RecitationPlayer.java b/app/src/main/java/com/quranapp/android/views/reader/RecitationPlayer.java
index 0b88b3d0..c2e3fc50 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/RecitationPlayer.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/RecitationPlayer.java
@@ -1,12 +1,5 @@
package com.quranapp.android.views.reader;
-import static com.quranapp.android.utils.reader.recitation.RecitationNotificationService.KEY_PLAYING;
-import static com.quranapp.android.utils.reader.recitation.RecitationNotificationService.KEY_RECITER;
-import static com.quranapp.android.utils.reader.recitation.RecitationNotificationService.KEY_TITLE;
-import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_PAUSE;
-import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_PLAY;
-import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_STOP;
-
import android.annotation.SuppressLint;
import android.content.Intent;
import android.media.MediaPlayer;
@@ -24,10 +17,15 @@
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
-
import androidx.annotation.NonNull;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.content.ContextCompat;
+import static com.quranapp.android.utils.reader.recitation.RecitationNotificationService.KEY_PLAYING;
+import static com.quranapp.android.utils.reader.recitation.RecitationNotificationService.KEY_RECITER;
+import static com.quranapp.android.utils.reader.recitation.RecitationNotificationService.KEY_TITLE;
+import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_PAUSE;
+import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_PLAY;
+import static com.quranapp.android.utils.receivers.RecitationPlayerReceiver.ACTION_STOP;
import com.google.android.material.behavior.HideBottomViewOnScrollBehavior;
import com.quranapp.android.R;
@@ -196,7 +194,7 @@ public void onRestoreInstanceState(Parcelable state) {
P = playerSS.recitationParams;
if (P.lastMediaURI != null) {
prepareMediaPlayer(P.lastMediaURI, P.currentReciterSlug, P.getCurrChapterNo(), P.getCurrVerseNo(),
- P.previouslyPlaying);
+ P.previouslyPlaying);
}
}
@@ -410,7 +408,7 @@ public void playMedia() {
showNotification(ACTION_PLAY);
Log.d("Curr - " + P.currVerse[0] + ":" + P.currVerse[1],
- P.fromVerse[0] + ":" + P.fromVerse[1] + " - " + P.toVerse[0] + ":" + P.toVerse[1]);
+ P.fromVerse[0] + ":" + P.fromVerse[1] + " - " + P.toVerse[0] + ":" + P.toVerse[1]);
setupPlayControlBtn(true);
P.previouslyPlaying = true;
@@ -518,9 +516,9 @@ public void setContinueChapter(boolean continueChapter) {
private String formatTime(int millis) {
final long m = TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(
- TimeUnit.MILLISECONDS.toHours(millis));
+ TimeUnit.MILLISECONDS.toHours(millis));
final long s = TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(
- TimeUnit.MILLISECONDS.toMinutes(millis));
+ TimeUnit.MILLISECONDS.toMinutes(millis));
return String.format(Locale.getDefault(), "%02d:%02d", m, s);
}
@@ -759,7 +757,7 @@ private void loadVersesAhead(QuranMeta quranMeta, RecitationModel model, int cha
// int loadAheadCount = P.continueRange ? 5 : 1;
int loadAheadCount = 2;
int l = Math.min(mActivity.mQuranMetaRef.get().getChapterVerseCount(chapterNo) - firstVerseToLoad,
- loadAheadCount - 1);
+ loadAheadCount - 1);
// Start from 1 so that the current verse is skipped.
for (int i = 1; i <= l; i++) {
int verseToLoad = firstVerseToLoad + i;
@@ -836,7 +834,7 @@ private void showNotification(String action) {
if (!ACTION_STOP.equals(action)) {
QuranMeta quranMeta = mActivity.mQuranMetaRef.get();
String title = quranMeta.getChapterName(getContext(),
- P.getCurrChapterNo()) + " : Verse " + P.getCurrVerseNo();
+ P.getCurrChapterNo()) + " : Verse " + P.getCurrVerseNo();
String reciter = RecitationUtils.getReciterName(P.currentReciterSlug);
i.putExtra(KEY_TITLE, title);
i.putExtra(KEY_RECITER, reciter);
diff --git a/app/src/main/java/com/quranapp/android/views/reader/VerseView.java b/app/src/main/java/com/quranapp/android/views/reader/VerseView.java
index 0b195201..56f76afe 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/VerseView.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/VerseView.java
@@ -14,7 +14,6 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
-
import androidx.core.content.ContextCompat;
import com.quranapp.android.R;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/chapterSpinner/ChapterSpinner.java b/app/src/main/java/com/quranapp/android/views/reader/chapterSpinner/ChapterSpinner.java
index dab03f73..67eb0a69 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/chapterSpinner/ChapterSpinner.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/chapterSpinner/ChapterSpinner.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/chapterSpinner/ChapterSpinnerAdapter.java b/app/src/main/java/com/quranapp/android/views/reader/chapterSpinner/ChapterSpinnerAdapter.java
index 94c23f12..0f864905 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/chapterSpinner/ChapterSpinnerAdapter.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/chapterSpinner/ChapterSpinnerAdapter.java
@@ -2,7 +2,6 @@
import android.content.Context;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import com.quranapp.android.components.quran.subcomponents.Chapter;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/chapterSpinner/ChapterSpinnerItem.kt b/app/src/main/java/com/quranapp/android/views/reader/chapterSpinner/ChapterSpinnerItem.kt
index e9006fb7..9a2eb695 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/chapterSpinner/ChapterSpinnerItem.kt
+++ b/app/src/main/java/com/quranapp/android/views/reader/chapterSpinner/ChapterSpinnerItem.kt
@@ -3,4 +3,4 @@ package com.quranapp.android.views.reader.chapterSpinner
import com.quranapp.android.components.quran.subcomponents.Chapter
import com.quranapp.android.views.reader.spinner.ReaderSpinnerItem
-class ChapterSpinnerItem(val chapter: Chapter) : ReaderSpinnerItem()
\ No newline at end of file
+class ChapterSpinnerItem(val chapter: Chapter) : ReaderSpinnerItem()
diff --git a/app/src/main/java/com/quranapp/android/views/reader/dialogs/FootnotePresenter.java b/app/src/main/java/com/quranapp/android/views/reader/dialogs/FootnotePresenter.java
index e1daf1d9..bc01b209 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/dialogs/FootnotePresenter.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/dialogs/FootnotePresenter.java
@@ -4,9 +4,6 @@
package com.quranapp.android.views.reader.dialogs;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static com.quranapp.android.utils.univ.StringUtils.HYPHEN;
-
import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
@@ -19,11 +16,12 @@
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.asynclayoutinflater.view.AsyncLayoutInflater;
import androidx.core.content.ContextCompat;
+import static com.quranapp.android.utils.univ.StringUtils.HYPHEN;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.chip.Chip;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/dialogs/QuickReference.java b/app/src/main/java/com/quranapp/android/views/reader/dialogs/QuickReference.java
index 0b5abadc..af09d673 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/dialogs/QuickReference.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/dialogs/QuickReference.java
@@ -4,10 +4,6 @@
package com.quranapp.android.views.reader.dialogs;
-import static android.view.View.GONE;
-import static android.view.View.VISIBLE;
-import static com.quranapp.android.utils.univ.RegexPattern.VERSE_RANGE_PATTERN;
-
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
@@ -15,12 +11,14 @@
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.asynclayoutinflater.view.AsyncLayoutInflater;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
+import static com.quranapp.android.utils.univ.RegexPattern.VERSE_RANGE_PATTERN;
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.widget.dialog.base.PeaceDialog;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/dialogs/VerseOptionsDialog.java b/app/src/main/java/com/quranapp/android/views/reader/dialogs/VerseOptionsDialog.java
index e88cbccc..d14fed04 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/dialogs/VerseOptionsDialog.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/dialogs/VerseOptionsDialog.java
@@ -4,8 +4,6 @@
package com.quranapp.android.views.reader.dialogs;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.app.Dialog;
import android.content.Context;
import android.content.res.TypedArray;
@@ -17,11 +15,11 @@
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.asynclayoutinflater.view.AsyncLayoutInflater;
import androidx.core.content.ContextCompat;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.AppBridge;
import com.peacedesign.android.utils.Dimen;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/dialogs/VerseReminderDialog.java b/app/src/main/java/com/quranapp/android/views/reader/dialogs/VerseReminderDialog.java
index 4b8fac21..5fb96ed1 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/dialogs/VerseReminderDialog.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/dialogs/VerseReminderDialog.java
@@ -6,11 +6,6 @@
package com.quranapp.android.views.reader.dialogs;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static android.view.ViewGroup.FOCUS_BLOCK_DESCENDANTS;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.content.Context;
import android.graphics.Typeface;
import android.os.Bundle;
@@ -24,10 +19,13 @@
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.asynclayoutinflater.view.AsyncLayoutInflater;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
+import static android.view.ViewGroup.FOCUS_BLOCK_DESCENDANTS;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.quranapp.android.R;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/dialogs/VerseShareDialog.java b/app/src/main/java/com/quranapp/android/views/reader/dialogs/VerseShareDialog.java
index 38dfc4e5..eedf7999 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/dialogs/VerseShareDialog.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/dialogs/VerseShareDialog.java
@@ -4,12 +4,6 @@
package com.quranapp.android.views.reader.dialogs;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-import static com.quranapp.android.utils.univ.StringUtils.DASH;
-import static com.quranapp.android.utils.univ.StringUtils.HYPHEN;
-import static com.quranapp.android.widgets.compound.PeaceCompoundButton.COMPOUND_TEXT_GRAVITY_LEFT;
-import static com.quranapp.android.widgets.compound.PeaceCompoundButton.COMPOUND_TEXT_GRAVITY_RIGHT;
-
import android.content.Context;
import android.content.Intent;
import android.text.Editable;
@@ -19,11 +13,15 @@
import android.view.ViewParent;
import android.view.inputmethod.InputMethodManager;
import android.widget.Toast;
-
import androidx.annotation.NonNull;
import androidx.asynclayoutinflater.view.AsyncLayoutInflater;
import androidx.core.content.ContextCompat;
import androidx.core.widget.NestedScrollView;
+import static com.quranapp.android.utils.univ.StringUtils.DASH;
+import static com.quranapp.android.utils.univ.StringUtils.HYPHEN;
+import static com.quranapp.android.widgets.compound.PeaceCompoundButton.COMPOUND_TEXT_GRAVITY_LEFT;
+import static com.quranapp.android.widgets.compound.PeaceCompoundButton.COMPOUND_TEXT_GRAVITY_RIGHT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.AppBridge;
import com.peacedesign.android.utils.Dimen;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/juzSpinner/JuzSpinner.java b/app/src/main/java/com/quranapp/android/views/reader/juzSpinner/JuzSpinner.java
index af3cf2a5..cc315fb7 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/juzSpinner/JuzSpinner.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/juzSpinner/JuzSpinner.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -32,7 +31,7 @@ public JuzSpinner(@NonNull Context context, @Nullable AttributeSet attrs, int de
protected boolean search(ReaderSpinnerItem item, Pattern pattern) {
JuzSpinnerItem juzSpinnerItem = (JuzSpinnerItem) item;
return pattern.matcher(String.valueOf(juzSpinnerItem.getJuzNumber())).find()
- || pattern.matcher(juzSpinnerItem.getLabel()).find();
+ || pattern.matcher(juzSpinnerItem.getLabel()).find();
}
@Override
diff --git a/app/src/main/java/com/quranapp/android/views/reader/juzSpinner/JuzSpinnerAdapter.java b/app/src/main/java/com/quranapp/android/views/reader/juzSpinner/JuzSpinnerAdapter.java
index 9260398b..ce1c32be 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/juzSpinner/JuzSpinnerAdapter.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/juzSpinner/JuzSpinnerAdapter.java
@@ -1,15 +1,13 @@
package com.quranapp.android.views.reader.juzSpinner;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.Dimen;
import com.quranapp.android.R;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/juzSpinner/JuzSpinnerItem.kt b/app/src/main/java/com/quranapp/android/views/reader/juzSpinner/JuzSpinnerItem.kt
index 475138f3..c1c8b727 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/juzSpinner/JuzSpinnerItem.kt
+++ b/app/src/main/java/com/quranapp/android/views/reader/juzSpinner/JuzSpinnerItem.kt
@@ -18,4 +18,4 @@ class JuzSpinnerItem(label: CharSequence) : ReaderSpinnerItem() {
init {
super.label = label
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/views/reader/sheet/JuzChapterVerseSheet.kt b/app/src/main/java/com/quranapp/android/views/reader/sheet/JuzChapterVerseSheet.kt
index 4a4a48fd..d6575ec4 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/sheet/JuzChapterVerseSheet.kt
+++ b/app/src/main/java/com/quranapp/android/views/reader/sheet/JuzChapterVerseSheet.kt
@@ -15,6 +15,4 @@ class JuzChapterVerseSheet : PeaceBottomSheet() {
super.onCreate(savedInstanceState)
}
-
-
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinner.java b/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinner.java
index 34b3a4e8..8d7386f9 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinner.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinner.java
@@ -1,7 +1,5 @@
package com.quranapp.android.views.reader.spinner;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.text.Editable;
@@ -13,20 +11,20 @@
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.TextView;
-
import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityReader;
import com.quranapp.android.databinding.LytReaderSpinnerBinding;
import com.quranapp.android.databinding.LytReaderSpinnerPopupBinding;
import com.quranapp.android.utils.extensions.ContextKt;
-import com.quranapp.android.utils.univ.PopupWindow2;
import com.quranapp.android.utils.simplified.SimpleTextWatcher;
+import com.quranapp.android.utils.univ.PopupWindow2;
import com.quranapp.android.utils.univ.StringUtils;
import java.util.ArrayList;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinnerAdapter.java b/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinnerAdapter.java
index 05bf7ed9..d3aa0a65 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinnerAdapter.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinnerAdapter.java
@@ -3,7 +3,6 @@
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
-
import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
@@ -12,7 +11,8 @@
import java.util.List;
-public abstract class ReaderSpinnerAdapter extends RecyclerView.Adapter {
+public abstract class ReaderSpinnerAdapter extends
+ RecyclerView.Adapter {
private final LayoutInflater mInflater;
private List mItems;
private ReaderSpinner mSpinner;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinnerItem.kt b/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinnerItem.kt
index 793a4c43..032855b7 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinnerItem.kt
+++ b/app/src/main/java/com/quranapp/android/views/reader/spinner/ReaderSpinnerItem.kt
@@ -4,4 +4,4 @@ import com.quranapp.android.components.ComponentBase
open class ReaderSpinnerItem : ComponentBase() {
var label: CharSequence = ""
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/views/reader/swipe/BaseViewSwipeTo.java b/app/src/main/java/com/quranapp/android/views/reader/swipe/BaseViewSwipeTo.java
index 675b1855..1dfe32d6 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/swipe/BaseViewSwipeTo.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/swipe/BaseViewSwipeTo.java
@@ -6,11 +6,6 @@
package com.quranapp.android.views.reader.swipe;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-import static android.view.animation.Animation.RELATIVE_TO_SELF;
-
import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.Typeface;
@@ -27,10 +22,13 @@
import android.view.animation.RotateAnimation;
import android.widget.LinearLayout;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.core.content.ContextCompat;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
+import static android.view.animation.Animation.RELATIVE_TO_SELF;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.DrawableUtils;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/swipe/ViewSwipeToNext.java b/app/src/main/java/com/quranapp/android/views/reader/swipe/ViewSwipeToNext.java
index ae6a18fd..c4568192 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/swipe/ViewSwipeToNext.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/swipe/ViewSwipeToNext.java
@@ -6,11 +6,10 @@
package com.quranapp.android.views.reader.swipe;
-import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_CHAPTER;
-import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_JUZ;
-
import android.content.Context;
import android.widget.TextView;
+import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_CHAPTER;
+import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_JUZ;
import com.peacedesign.android.utils.Dimen;
import com.quranapp.android.R;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/swipe/ViewSwipeToPrevious.java b/app/src/main/java/com/quranapp/android/views/reader/swipe/ViewSwipeToPrevious.java
index 4827314c..8f973bf7 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/swipe/ViewSwipeToPrevious.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/swipe/ViewSwipeToPrevious.java
@@ -6,11 +6,10 @@
package com.quranapp.android.views.reader.swipe;
-import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_CHAPTER;
-import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_JUZ;
-
import android.content.Context;
import android.widget.TextView;
+import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_CHAPTER;
+import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_JUZ;
import com.peacedesign.android.utils.Dimen;
import com.quranapp.android.R;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/verseSpinner/VerseSpinner.java b/app/src/main/java/com/quranapp/android/views/reader/verseSpinner/VerseSpinner.java
index 2764c8d0..7b44bd6c 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/verseSpinner/VerseSpinner.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/verseSpinner/VerseSpinner.java
@@ -1,16 +1,15 @@
package com.quranapp.android.views.reader.verseSpinner;
-import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_JUZ;
-import static com.quranapp.android.utils.univ.RegexPattern.VERSE_JUMP_PATTERN;
-
import android.content.Context;
+import android.text.InputType;
import android.util.AttributeSet;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import static com.quranapp.android.reader_managers.ReaderParams.READER_READ_TYPE_JUZ;
+import static com.quranapp.android.utils.univ.RegexPattern.VERSE_JUMP_PATTERN;
import com.quranapp.android.R;
import com.quranapp.android.components.quran.subcomponents.Chapter;
@@ -95,7 +94,7 @@ public void setAdapter(ReaderSpinnerAdapter> adapter) {
return;
}
- int inputType = mActivity.mReaderParams.readType == READER_READ_TYPE_JUZ ? EditorInfo.TYPE_CLASS_TEXT : EditorInfo.TYPE_CLASS_NUMBER;
+ int inputType = mActivity.mReaderParams.readType == READER_READ_TYPE_JUZ ? InputType.TYPE_CLASS_TEXT : InputType.TYPE_CLASS_NUMBER;
mSearchBox.setInputType(inputType);
}
}
diff --git a/app/src/main/java/com/quranapp/android/views/reader/verseSpinner/VerseSpinnerAdapter.java b/app/src/main/java/com/quranapp/android/views/reader/verseSpinner/VerseSpinnerAdapter.java
index 41495bf5..a48d72fe 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/verseSpinner/VerseSpinnerAdapter.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/verseSpinner/VerseSpinnerAdapter.java
@@ -1,14 +1,12 @@
package com.quranapp.android.views.reader.verseSpinner;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.content.Context;
import android.view.ViewGroup;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.Dimen;
import com.quranapp.android.R;
diff --git a/app/src/main/java/com/quranapp/android/views/reader/verseSpinner/VerseSpinnerItem.kt b/app/src/main/java/com/quranapp/android/views/reader/verseSpinner/VerseSpinnerItem.kt
index d3babd28..1e337c76 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/verseSpinner/VerseSpinnerItem.kt
+++ b/app/src/main/java/com/quranapp/android/views/reader/verseSpinner/VerseSpinnerItem.kt
@@ -2,4 +2,4 @@ package com.quranapp.android.views.reader.verseSpinner
import com.quranapp.android.views.reader.spinner.ReaderSpinnerItem
-class VerseSpinnerItem(val chapterNo: Int, val verseNo: Int) : ReaderSpinnerItem()
\ No newline at end of file
+class VerseSpinnerItem(val chapterNo: Int, val verseNo: Int) : ReaderSpinnerItem()
diff --git a/app/src/main/java/com/quranapp/android/views/readerSpinner2/adapters/ADPJuzChapterVerseBase.kt b/app/src/main/java/com/quranapp/android/views/readerSpinner2/adapters/ADPJuzChapterVerseBase.kt
index 479df1d0..b4b98521 100644
--- a/app/src/main/java/com/quranapp/android/views/readerSpinner2/adapters/ADPJuzChapterVerseBase.kt
+++ b/app/src/main/java/com/quranapp/android/views/readerSpinner2/adapters/ADPJuzChapterVerseBase.kt
@@ -134,4 +134,4 @@ abstract class ADPJuzChapterVerseBase- ) : ADPJuzChapterVerseBase(items) {
+class JuzSelectorAdapter2(items: MutableList) : ADPJuzChapterVerseBase(
+ items
+) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VHJuzSpinner {
return VHJuzSpinner(this, makeItemView(parent.context))
}
@@ -29,8 +31,13 @@ class JuzSelectorAdapter2(items: MutableList) : ADPJuzChapterVer
private fun makeItemView(context: Context): TextView {
val txtView = TextView(context)
txtView.updatePaddings(context.dp2px(15f), context.dp2px(10f))
- txtView.setTextColor(ContextCompat.getColorStateList(context, R.color.color_reader_spinner_item_label))
- txtView.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
+ txtView.setTextColor(
+ ContextCompat.getColorStateList(context, R.color.color_reader_spinner_item_label)
+ )
+ txtView.layoutParams = ViewGroup.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT
+ )
return txtView
}
}
@@ -51,8 +58,13 @@ class VerseSelectorAdapter2(items: MutableList) :
private fun makeItemView(context: Context): TextView {
val txtView = TextView(context)
txtView.updatePaddings(context.dp2px(8f), context.dp2px(10f))
- txtView.setTextColor(ContextCompat.getColorStateList(context, R.color.color_reader_spinner_item_label))
- txtView.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
+ txtView.setTextColor(
+ ContextCompat.getColorStateList(context, R.color.color_reader_spinner_item_label)
+ )
+ txtView.layoutParams = ViewGroup.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT
+ )
return txtView
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/views/readerSpinner2/juzChapterVerse/JuzChapterVerseSelector.kt b/app/src/main/java/com/quranapp/android/views/readerSpinner2/juzChapterVerse/JuzChapterVerseSelector.kt
index 7a709676..a9fd7658 100644
--- a/app/src/main/java/com/quranapp/android/views/readerSpinner2/juzChapterVerse/JuzChapterVerseSelector.kt
+++ b/app/src/main/java/com/quranapp/android/views/readerSpinner2/juzChapterVerse/JuzChapterVerseSelector.kt
@@ -22,16 +22,15 @@ import androidx.core.widget.TextViewCompat
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.tabs.TabLayout
-import com.peacedesign.android.utils.kotlin_utils.*
import com.quranapp.android.R
import com.quranapp.android.activities.ActivityReader
import com.quranapp.android.components.quran.QuranMeta
import com.quranapp.android.databinding.LytJuzChapterVerseSheetBinding
import com.quranapp.android.reader_managers.ReaderParams
import com.quranapp.android.utils.extensions.*
-import com.quranapp.android.utils.univ.RegexPattern
import com.quranapp.android.utils.simplified.SimpleTabSelectorListener
import com.quranapp.android.utils.simplified.SimpleTextWatcher
+import com.quranapp.android.utils.univ.RegexPattern
import com.quranapp.android.views.reader.ChapterIcon
import com.quranapp.android.views.reader.chapterSpinner.ChapterSpinnerItem
import com.quranapp.android.views.reader.juzSpinner.JuzSpinnerItem
@@ -74,7 +73,6 @@ class JuzChapterVerseSelector @JvmOverloads constructor(
var chapterIconView: ChapterIcon? = null
var activity: ActivityReader? = null
-
init {
initThis()
initBottomSheetView(context)
@@ -133,8 +131,8 @@ class JuzChapterVerseSelector @JvmOverloads constructor(
override fun onTabSelected(tab: TabLayout.Tab) {
tempJuzOrChapterItemSelectListener = null
- val isAlternateTab = (tab.position == 0 && juzOrChapterAdapter !is ChapterSelectorAdapter2)
- || (tab.position == 1 && juzOrChapterAdapter !is JuzSelectorAdapter2)
+ val isAlternateTab = (tab.position == 0 && juzOrChapterAdapter !is ChapterSelectorAdapter2) ||
+ (tab.position == 1 && juzOrChapterAdapter !is JuzSelectorAdapter2)
activity?.let {
if (isAlternateTab) {
@@ -155,7 +153,10 @@ class JuzChapterVerseSelector @JvmOverloads constructor(
})
}
- private fun selectTab(binding: LytJuzChapterVerseSheetBinding, adapter: ADPJuzChapterVerseBase<*, *>) {
+ private fun selectTab(
+ binding: LytJuzChapterVerseSheetBinding,
+ adapter: ADPJuzChapterVerseBase<*, *>
+ ) {
var tab: TabLayout.Tab? = null
if (adapter is ChapterSelectorAdapter2) {
tab = binding.tabLayout.getTabAt(0)
@@ -237,7 +238,10 @@ class JuzChapterVerseSelector @JvmOverloads constructor(
}
} else {
val chapter = activity!!.mReaderParams.currChapter ?: return
- activity!!.handleVerseSpinnerSelectedVerseNo(chapter.chapterNumber, searchQuery.toString().toInt())
+ activity!!.handleVerseSpinnerSelectedVerseNo(
+ chapter.chapterNumber,
+ searchQuery.toString().toInt()
+ )
}
}
@@ -279,7 +283,10 @@ class JuzChapterVerseSelector @JvmOverloads constructor(
if (juzOrChapterItem is ChapterSpinnerItem) {
text = juzOrChapterItem.label
} else {
- text = activity?.mQuranMetaRef?.get()?.getChapterName(context, spinnerItem.chapterNo) ?: ""
+ text = activity?.mQuranMetaRef?.get()?.getChapterName(
+ context,
+ spinnerItem.chapterNo
+ ) ?: ""
verseText = context.getString(R.string.strLabelVerseNo, spinnerItem.verseNo)
}
}
@@ -317,7 +324,10 @@ class JuzChapterVerseSelector @JvmOverloads constructor(
if (height >= context.dp2px(70f)) {
height = context.dp2px(650f)
}
- it.root.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, height)
+ it.root.layoutParams = ViewGroup.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ height
+ )
}
}
@@ -412,19 +422,22 @@ class JuzChapterVerseSelector @JvmOverloads constructor(
val juzAdapter = JuzSelectorAdapter2(items)
- setJuzOrChapterAdapter(juzAdapter, object : OnItemSelectedListener {
- override fun onItemSelect(item: ReaderSpinnerItem) {
- val juzSpinnerItem = item as JuzSpinnerItem
- if (activity.mNavigator.currJuzNo != juzSpinnerItem.juzNumber) {
- activity.mNavigator.goToJuz(juzSpinnerItem.juzNumber)
+ setJuzOrChapterAdapter(
+ juzAdapter,
+ object : OnItemSelectedListener {
+ override fun onItemSelect(item: ReaderSpinnerItem) {
+ val juzSpinnerItem = item as JuzSpinnerItem
+ if (activity.mNavigator.currJuzNo != juzSpinnerItem.juzNumber) {
+ activity.mNavigator.goToJuz(juzSpinnerItem.juzNumber)
+ }
}
- }
- }, isTemporary)
+ },
+ isTemporary
+ )
return juzAdapter
}
-
fun prepareAndSetChapterAdapter(activity: ActivityReader, isTemporary: Boolean = false): ChapterSelectorAdapter2 {
val quran = activity.mQuranRef.get()
val items = ArrayList()
@@ -435,14 +448,18 @@ class JuzChapterVerseSelector @JvmOverloads constructor(
items.add(chapterSpinnerItem)
}
val chapterAdapter = ChapterSelectorAdapter2(items)
- setJuzOrChapterAdapter(chapterAdapter, object : OnItemSelectedListener {
- override fun onItemSelect(item: ReaderSpinnerItem) {
- val chapterItem = item as ChapterSpinnerItem
- if (activity.mReaderParams.currChapter?.chapterNumber != chapterItem.chapter.chapterNumber) {
- activity.mNavigator.goToChapter(chapterItem.chapter.chapterNumber)
+ setJuzOrChapterAdapter(
+ chapterAdapter,
+ object : OnItemSelectedListener {
+ override fun onItemSelect(item: ReaderSpinnerItem) {
+ val chapterItem = item as ChapterSpinnerItem
+ if (activity.mReaderParams.currChapter?.chapterNumber != chapterItem.chapter.chapterNumber) {
+ activity.mNavigator.goToChapter(chapterItem.chapter.chapterNumber)
+ }
}
- }
- }, isTemporary)
+ },
+ isTemporary
+ )
return chapterAdapter
}
@@ -461,4 +478,4 @@ class JuzChapterVerseSelector @JvmOverloads constructor(
interface OnItemSelectedListener {
fun onItemSelect(item: ReaderSpinnerItem)
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/views/readerSpinner2/viewholders/VHsJuzChapterVerse.kt b/app/src/main/java/com/quranapp/android/views/readerSpinner2/viewholders/VHsJuzChapterVerse.kt
index 0ed7e53f..23806182 100644
--- a/app/src/main/java/com/quranapp/android/views/readerSpinner2/viewholders/VHsJuzChapterVerse.kt
+++ b/app/src/main/java/com/quranapp/android/views/readerSpinner2/viewholders/VHsJuzChapterVerse.kt
@@ -21,7 +21,10 @@ import com.quranapp.android.views.readerSpinner2.adapters.JuzSelectorAdapter2
import com.quranapp.android.views.readerSpinner2.adapters.VerseSelectorAdapter2
import com.quranapp.android.widgets.chapterCard.ChapterCard
-class VHJuzSpinner(adapter: JuzSelectorAdapter2, view: View) : VHJuzChapterVerseBase(adapter, view) {
+class VHJuzSpinner(adapter: JuzSelectorAdapter2, view: View) : VHJuzChapterVerseBase(
+ adapter,
+ view
+) {
override fun bind(item: JuzSpinnerItem) {
super.bind(item)
(itemView as TextView).text = item.label
@@ -38,14 +41,20 @@ class VHChapterSpinner(adapter: ChapterSelectorAdapter2, private val chapterCard
}
}
-class VHVerseSpinner(adapter: VerseSelectorAdapter2, view: View) : VHJuzChapterVerseBase(adapter, view) {
+class VHVerseSpinner(adapter: VerseSelectorAdapter2, view: View) : VHJuzChapterVerseBase(
+ adapter,
+ view
+) {
override fun bind(item: VerseSpinnerItem) {
super.bind(item)
(itemView as TextView).text = item.label
}
}
-open class VHJuzChapterVerseBase(private val adapter: ADPJuzChapterVerseBase, itemView: View) :
+open class VHJuzChapterVerseBase(
+ private val adapter: ADPJuzChapterVerseBase,
+ itemView: View
+) :
RecyclerView.ViewHolder(itemView) {
init {
itemView.setBackgroundResource(R.drawable.dr_bg_juz_chapter_verse_item)
@@ -56,4 +65,4 @@ open class VHJuzChapterVerseBase(private val adapter: ADP
itemView.isSelected = item.selected
itemView.setOnClickListener { adapter.onItemSelectInAdapter(item, true) }
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/AutoResizeTextView.java b/app/src/main/java/com/quranapp/android/widgets/AutoResizeTextView.java
index e6f4e772..6ab7677b 100644
--- a/app/src/main/java/com/quranapp/android/widgets/AutoResizeTextView.java
+++ b/app/src/main/java/com/quranapp/android/widgets/AutoResizeTextView.java
@@ -19,10 +19,10 @@ private interface SizeTester {
* text, it takes less space than {@code availableSpace}, > 0
* otherwise
*/
- public int onTestSize(int suggestedSize, RectF availableSpace);
+ int onTestSize(int suggestedSize, RectF availableSpace);
}
- private RectF mTextRect = new RectF();
+ private final RectF mTextRect = new RectF();
private RectF mAvailableSpaceRect;
@@ -132,7 +132,7 @@ public void setTextSize(int unit, float size) {
else
r = c.getResources();
mMaxTextSize = TypedValue.applyDimension(unit, size,
- r.getDisplayMetrics());
+ r.getDisplayMetrics());
mTextCachedSizes.clear();
adjustTextSize(getText().toString());
}
@@ -146,7 +146,6 @@ public void setLineSpacing(float add, float mult) {
/**
* Set the lower text size limit and invalidate the view
- *
*/
public void setMinTextSize(float minTextSize) {
mMinTextSize = minTextSize;
@@ -163,15 +162,15 @@ private void adjustTextSize(String string) {
}
int startSize = (int) mMinTextSize;
int heightLimit = getMeasuredHeight() - getCompoundPaddingBottom()
- - getCompoundPaddingTop();
+ - getCompoundPaddingTop();
mWidthLimit = getMeasuredWidth() - getCompoundPaddingLeft()
- - getCompoundPaddingRight();
+ - getCompoundPaddingRight();
mAvailableSpaceRect.right = mWidthLimit;
mAvailableSpaceRect.bottom = heightLimit;
super.setTextSize(
- TypedValue.COMPLEX_UNIT_PX,
- efficientTextSizeSearch(startSize, (int) mMaxTextSize,
- mSizeTester, mAvailableSpaceRect));
+ TypedValue.COMPLEX_UNIT_PX,
+ efficientTextSizeSearch(startSize, (int) mMaxTextSize,
+ mSizeTester, mAvailableSpaceRect));
}
private final SizeTester mSizeTester = new SizeTester() {
@@ -185,11 +184,11 @@ public int onTestSize(int suggestedSize, RectF availableSPace) {
mTextRect.right = mPaint.measureText(text);
} else {
StaticLayout layout = new StaticLayout(text, mPaint,
- mWidthLimit, Alignment.ALIGN_NORMAL, mSpacingMult,
- mSpacingAdd, true);
+ mWidthLimit, Alignment.ALIGN_NORMAL, mSpacingMult,
+ mSpacingAdd, true);
// return early if we have more lines
if (getMaxLines() != NO_LINE_LIMIT
- && layout.getLineCount() > getMaxLines()) {
+ && layout.getLineCount() > getMaxLines()) {
return 1;
}
mTextRect.bottom = layout.getHeight();
@@ -242,8 +241,10 @@ private int efficientTextSizeSearch(int start, int end, SizeTester sizeTester, R
return size;
}
- private static int binarySearch(int start, int end, SizeTester sizeTester,
- RectF availableSpace) {
+ private static int binarySearch(
+ int start, int end, SizeTester sizeTester,
+ RectF availableSpace
+ ) {
int lastBest = start;
int lo = start;
int hi = end - 1;
@@ -267,15 +268,19 @@ private static int binarySearch(int start, int end, SizeTester sizeTester,
}
@Override
- protected void onTextChanged(final CharSequence text, final int start,
- final int before, final int after) {
+ protected void onTextChanged(
+ final CharSequence text, final int start,
+ final int before, final int after
+ ) {
super.onTextChanged(text, start, before, after);
reAdjust();
}
@Override
- protected void onSizeChanged(int width, int height, int oldWidth,
- int oldHeight) {
+ protected void onSizeChanged(
+ int width, int height, int oldWidth,
+ int oldHeight
+ ) {
mTextCachedSizes.clear();
super.onSizeChanged(width, height, oldWidth, oldHeight);
if (width != oldWidth || height != oldHeight) {
diff --git a/app/src/main/java/com/quranapp/android/widgets/ColorPreviewerView.java b/app/src/main/java/com/quranapp/android/widgets/ColorPreviewerView.java
index 7d6b55d4..1f7d0c75 100644
--- a/app/src/main/java/com/quranapp/android/widgets/ColorPreviewerView.java
+++ b/app/src/main/java/com/quranapp/android/widgets/ColorPreviewerView.java
@@ -10,7 +10,6 @@
import android.graphics.drawable.BitmapDrawable;
import android.util.AttributeSet;
import android.view.View;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
@@ -44,7 +43,8 @@ public ColorPreviewerView(@NonNull Context context, @Nullable AttributeSet attrs
private void init() {
setBackgroundResource(R.drawable.dr_bg_cornered_preview);
setClipToOutline(true);
- BitmapDrawable drawable = (BitmapDrawable) ContextCompat.getDrawable(getContext(), R.drawable.dr_img_checkered_tiled);
+ BitmapDrawable drawable = (BitmapDrawable) ContextCompat.getDrawable(getContext(),
+ R.drawable.dr_img_checkered_tiled);
if (drawable != null) {
Bitmap checkeredBitmap = drawable.getBitmap();
bitmapShader = new BitmapShader(checkeredBitmap, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
diff --git a/app/src/main/java/com/quranapp/android/widgets/IconedTextView.java b/app/src/main/java/com/quranapp/android/widgets/IconedTextView.java
index 84884eb3..d4104f20 100644
--- a/app/src/main/java/com/quranapp/android/widgets/IconedTextView.java
+++ b/app/src/main/java/com/quranapp/android/widgets/IconedTextView.java
@@ -5,7 +5,6 @@
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.Gravity;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
@@ -36,7 +35,8 @@ public IconedTextView(@NonNull Context context, @Nullable AttributeSet attrs, in
mDrawableTopDimen = a.getDimensionPixelOffset(R.styleable.IconedTextView_drawableTopDimen, -1);
mDrawableEndDimen = a.getDimensionPixelOffset(R.styleable.IconedTextView_drawableEndDimen, -1);
mDrawableBottomDimen = a.getDimensionPixelOffset(R.styleable.IconedTextView_drawableBottomDimen, -1);
- int mDrawablePadding = a.getDimensionPixelOffset(R.styleable.IconedTextView_android_drawablePadding, Dimen.dp2px(context, 10));
+ int mDrawablePadding = a.getDimensionPixelOffset(R.styleable.IconedTextView_android_drawablePadding,
+ Dimen.dp2px(context, 10));
int mGravity = a.getInt(R.styleable.IconedTextView_android_gravity, Gravity.CENTER_VERTICAL);
a.recycle();
diff --git a/app/src/main/java/com/quranapp/android/widgets/PageAlert.kt b/app/src/main/java/com/quranapp/android/widgets/PageAlert.kt
index b1149449..75d56fa5 100644
--- a/app/src/main/java/com/quranapp/android/widgets/PageAlert.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/PageAlert.kt
@@ -45,7 +45,11 @@ open class PageAlert : LinearLayout {
init()
}
- constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
+ constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(
+ context,
+ attrs,
+ defStyleAttr
+ ) {
init()
}
@@ -127,7 +131,7 @@ open class PageAlert : LinearLayout {
private fun prepareMessage(title: CharSequence?, msg: CharSequence?): CharSequence {
val ssb = SpannableStringBuilder()
- val hasTitle = !TextUtils.isEmpty(title);
+ val hasTitle = !TextUtils.isEmpty(title)
if (hasTitle) {
ssb.append(prepareTitleSpannable(title))
}
@@ -196,7 +200,10 @@ open class PageAlert : LinearLayout {
fun setupForNoInternet(actionListener: Runnable?) {
setIcon(R.drawable.dr_icon_no_internet)
- setMessage(context.getString(R.string.strTitleNoInternet), context.getString(R.string.strMsgNoInternetLong))
+ setMessage(
+ context.getString(R.string.strTitleNoInternet),
+ context.getString(R.string.strMsgNoInternetLong)
+ )
setActionButton(context.getString(R.string.strLabelRetry), actionListener)
}
@@ -209,4 +216,4 @@ open class PageAlert : LinearLayout {
}
super.setLayoutParams(params)
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheet.kt b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheet.kt
index 0defffce..7ecdb1f9 100644
--- a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheet.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheet.kt
@@ -73,7 +73,6 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
}
}
-
protected open fun setupHeader(dialogLayout: ViewGroup, params: PeaceBottomSheetParams) {
if (!this.params.headerShown) return
@@ -96,7 +95,6 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
return context.drawable(R.drawable.dr_bg_sheet_dialog_header)
}
-
protected open fun prepareDragIcon(container: LinearLayout, params: PeaceBottomSheetParams) {
if (params.disableDragging) return
@@ -105,12 +103,15 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
setImageResource(R.drawable.dr_icon_drag)
}
- container.addView(dragIcon, 0, LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT).apply {
- topMargin = Dimen.dp2px(container.context, 10f)
- })
+ container.addView(
+ dragIcon,
+ 0,
+ LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT).apply {
+ topMargin = Dimen.dp2px(container.context, 10f)
+ }
+ )
}
-
protected open fun prepareTitleView(
container: LinearLayout,
params: PeaceBottomSheetParams,
@@ -122,7 +123,9 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
var titleView: AppCompatTextView? = container.findViewById(R.id.title)
if (hasTitle && titleView == null) {
- titleView = AppCompatTextView(ContextThemeWrapper(container.context, resolveTitleThemeId()))
+ titleView = AppCompatTextView(
+ ContextThemeWrapper(container.context, resolveTitleThemeId())
+ )
titleView.id = R.id.title
container.addView(titleView)
}
@@ -133,7 +136,6 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
}
}
-
fun updateHeaderTitle() {
val layout = dialogLayout ?: return
@@ -153,7 +155,6 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
}
}
-
private fun createHeaderView(dialogLayout: ViewGroup): LinearLayout {
val headerView = LinearLayout(dialogLayout.context).apply {
id = R.id.peaceBottomSheetHeaderView
@@ -198,7 +199,6 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
setupDialogInternal(dialog, style, params)
}
-
protected open fun setupDialogInternal(
dialog: Dialog,
style: Int,
@@ -258,7 +258,6 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
}
})
-
dialog.setOnKeyListener { dialogInterface, keyCode, event ->
onKey(
dialogInterface as BottomSheetDialog,
@@ -285,7 +284,6 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
return false
}
-
private fun setupFullHeight(modal: View) {
if (params.fullHeight) {
modal.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT
@@ -330,7 +328,6 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
show(fragmentManager, javaClass.simpleName)
}
-
override fun setCancelable(cancelable: Boolean) {
super.setCancelable(cancelable)
params.cancellable = cancelable
@@ -361,5 +358,4 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
interface OnPeaceBottomSheetDismissListener {
fun onDismissed()
}
-
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetDialog.kt b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetDialog.kt
index 96696173..48ee689d 100644
--- a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetDialog.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetDialog.kt
@@ -22,15 +22,17 @@ open class PeaceBottomSheetDialog constructor(
val targetWidth = context.dp2px(450f)
window.setLayout(
- if (context.getWindowWidth() > targetWidth) targetWidth
- else LayoutParams.MATCH_PARENT,
+ if (context.getWindowWidth() > targetWidth) {
+ targetWidth
+ } else {
+ LayoutParams.MATCH_PARENT
+ },
LayoutParams.MATCH_PARENT
)
setupDialogInternal(window)
}
-
protected fun setupDialogInternal(window: Window) {
if (params.supportsNoAnimation()) {
window.setWindowAnimations(R.style.SheetDialogAnimations_NoAnimations)
@@ -46,4 +48,4 @@ open class PeaceBottomSheetDialog constructor(
setCanceledOnTouchOutside(params.cancellable && !params.disableOutsideTouch)
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetMenu.kt b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetMenu.kt
index 193d7d7e..a739e1cf 100644
--- a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetMenu.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetMenu.kt
@@ -14,7 +14,6 @@ open class PeaceBottomSheetMenu : PeaceBottomSheet() {
var onItemClickListener: OnItemClickListener? = null
var adapter: BaseListAdapter? = null
-
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -52,8 +51,7 @@ open class PeaceBottomSheetMenu : PeaceBottomSheet() {
return listView
}
-
interface OnItemClickListener {
fun onItemClick(dialog: PeaceBottomSheetMenu, item: BaseListItem)
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetParams.kt b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetParams.kt
index e6cafea3..ca58a0e0 100644
--- a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetParams.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetParams.kt
@@ -43,7 +43,6 @@ class PeaceBottomSheetParams : Serializable {
@LayoutRes
var contentViewResId = 0
-
fun supportsNoAnimation(): Boolean {
return !supportsAnimations || !supportsEnterAnimation && !supportsExitAnimation
}
@@ -55,4 +54,4 @@ class PeaceBottomSheetParams : Serializable {
fun supportsExitAnimationOnly(): Boolean {
return supportsAnimations && !supportsEnterAnimation && supportsExitAnimation
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/chapterCard/ChapterCard.java b/app/src/main/java/com/quranapp/android/widgets/chapterCard/ChapterCard.java
index e28975ed..6fcf8834 100644
--- a/app/src/main/java/com/quranapp/android/widgets/chapterCard/ChapterCard.java
+++ b/app/src/main/java/com/quranapp/android/widgets/chapterCard/ChapterCard.java
@@ -6,11 +6,6 @@
package com.quranapp.android.widgets.chapterCard;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-import static androidx.constraintlayout.widget.ConstraintLayout.LayoutParams.PARENT_ID;
-
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Typeface;
@@ -22,12 +17,15 @@
import android.view.Gravity;
import android.view.View;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
+import static androidx.constraintlayout.widget.ConstraintLayout.LayoutParams.PARENT_ID;
import com.peacedesign.android.utils.Dimen;
import com.quranapp.android.R;
diff --git a/app/src/main/java/com/quranapp/android/widgets/chapterCard/ChapterCardJuz.java b/app/src/main/java/com/quranapp/android/widgets/chapterCard/ChapterCardJuz.java
index 8efa5e00..afd50366 100644
--- a/app/src/main/java/com/quranapp/android/widgets/chapterCard/ChapterCardJuz.java
+++ b/app/src/main/java/com/quranapp/android/widgets/chapterCard/ChapterCardJuz.java
@@ -6,9 +6,6 @@
package com.quranapp.android.widgets.chapterCard;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.content.Context;
import android.text.SpannableString;
import android.text.TextUtils;
@@ -18,11 +15,12 @@
import android.view.Gravity;
import android.view.View;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.content.ContextCompat;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.Dimen;
import com.quranapp.android.R;
@@ -65,7 +63,8 @@ public void setVersesCount(String versesInJuzPrefix, int fromVerse, int toVerse)
SpannableString spannableCount = new SpannableString(versesInJuzCount);
spannablePrefix.setSpan(new RelativeSizeSpan(0.75f), 0, spannablePrefix.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
- spannableCount.setSpan(new TypefaceSpan("sans-serif-medium"), 0, spannableCount.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
+ spannableCount.setSpan(new TypefaceSpan("sans-serif-medium"), 0, spannableCount.length(),
+ SPAN_EXCLUSIVE_EXCLUSIVE);
((TextView) verseCount).setText(TextUtils.concat(spannablePrefix, spannableCount));
}
diff --git a/app/src/main/java/com/quranapp/android/widgets/chapterCard/ChapterCardWithoutIcon.java b/app/src/main/java/com/quranapp/android/widgets/chapterCard/ChapterCardWithoutIcon.java
index 35741326..a64f9eee 100644
--- a/app/src/main/java/com/quranapp/android/widgets/chapterCard/ChapterCardWithoutIcon.java
+++ b/app/src/main/java/com/quranapp/android/widgets/chapterCard/ChapterCardWithoutIcon.java
@@ -8,7 +8,6 @@
import android.content.Context;
import android.view.View;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
diff --git a/app/src/main/java/com/quranapp/android/widgets/checkbox/PeaceCheckBox.kt b/app/src/main/java/com/quranapp/android/widgets/checkbox/PeaceCheckBox.kt
index c1ee7024..22fd6c31 100644
--- a/app/src/main/java/com/quranapp/android/widgets/checkbox/PeaceCheckBox.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/checkbox/PeaceCheckBox.kt
@@ -21,11 +21,18 @@ class PeaceCheckBox @JvmOverloads constructor(
private lateinit var checkBox: CheckBoxHelper
init {
- val a = context.obtainStyledAttributes(attrs, R.styleable.PeaceCompoundButton, defStyleAttr, 0)
+ val a = context.obtainStyledAttributes(
+ attrs,
+ R.styleable.PeaceCompoundButton,
+ defStyleAttr,
+ 0
+ )
if (a.hasValue(R.styleable.PeaceCompoundButton_peaceComp_buttonCompat)) {
hasInitialButtonDrawable = true
- checkBoxButtonCompat = a.getDrawable(R.styleable.PeaceCompoundButton_peaceComp_buttonCompat)
+ checkBoxButtonCompat = a.getDrawable(
+ R.styleable.PeaceCompoundButton_peaceComp_buttonCompat
+ )
}
a.recycle()
@@ -36,7 +43,6 @@ class PeaceCheckBox @JvmOverloads constructor(
super.setOnClickListener { toggle() }
}
-
override fun makeComponents() {
makeCheckBox()
super.makeComponents()
@@ -56,7 +62,6 @@ class PeaceCheckBox @JvmOverloads constructor(
return checkBox
}
-
fun setButtonDrawable(buttonDrawable: Drawable?) {
checkBox.buttonDrawable = buttonDrawable
}
@@ -69,9 +74,13 @@ class PeaceCheckBox @JvmOverloads constructor(
throw IllegalStateException("Use setOnCheckedChangedListener instead.")
}
- internal class CheckBoxHelper(context: Context) : AppCompatCheckBox(ContextThemeWrapper(context, R.style.PeaceCheckBox), null, 0) {
+ internal class CheckBoxHelper(context: Context) : AppCompatCheckBox(
+ ContextThemeWrapper(context, R.style.PeaceCheckBox),
+ null,
+ 0
+ ) {
init {
setPaddingRelative(0, 0, 0, 0)
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/checkbox/PeaceCheckboxGroup.kt b/app/src/main/java/com/quranapp/android/widgets/checkbox/PeaceCheckboxGroup.kt
index f6e2ce21..8f8d16f2 100644
--- a/app/src/main/java/com/quranapp/android/widgets/checkbox/PeaceCheckboxGroup.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/checkbox/PeaceCheckboxGroup.kt
@@ -120,5 +120,4 @@ class PeaceCheckboxGroup @JvmOverloads constructor(
}
}
}
-
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/compound/PeaceCompoundButton.kt b/app/src/main/java/com/quranapp/android/widgets/compound/PeaceCompoundButton.kt
index 55ca91c3..0c2a9aba 100644
--- a/app/src/main/java/com/quranapp/android/widgets/compound/PeaceCompoundButton.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/compound/PeaceCompoundButton.kt
@@ -45,7 +45,6 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
const val COMPOUND_TEXT_GRAVITY_RIGHT = 4
}
-
protected var initialChecked = false
@TextGravity
@@ -65,14 +64,28 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
private var txtView: AppCompatTextView? = null
init {
- val a = context.obtainStyledAttributes(attrs, R.styleable.PeaceCompoundButton, defStyleAttr, 0)
+ val a = context.obtainStyledAttributes(
+ attrs,
+ R.styleable.PeaceCompoundButton,
+ defStyleAttr,
+ 0
+ )
text = a.getText(R.styleable.PeaceCompoundButton_android_text)
subText = a.getText(R.styleable.PeaceCompoundButton_peaceComp_subText)
initialChecked = a.getBoolean(R.styleable.PeaceCompoundButton_android_checked, false)
- compoundDirection = a.getInt(R.styleable.PeaceCompoundButton_peaceComp_direction, COMPOUND_TEXT_RIGHT)
- spaceBetween = a.getDimensionPixelSize(R.styleable.PeaceCompoundButton_peaceComp_spaceBetween, context.dp2px(10f))
- textGravity = a.getInt(R.styleable.PeaceCompoundButton_peaceComp_textGravity, COMPOUND_TEXT_GRAVITY_START)
+ compoundDirection = a.getInt(
+ R.styleable.PeaceCompoundButton_peaceComp_direction,
+ COMPOUND_TEXT_RIGHT
+ )
+ spaceBetween = a.getDimensionPixelSize(
+ R.styleable.PeaceCompoundButton_peaceComp_spaceBetween,
+ context.dp2px(10f)
+ )
+ textGravity = a.getInt(
+ R.styleable.PeaceCompoundButton_peaceComp_textGravity,
+ COMPOUND_TEXT_GRAVITY_START
+ )
textAppearanceResId = a.getResourceId(
R.styleable.PeaceCompoundButton_android_textAppearance,
R.style.PeaceRadioTextAppearance
@@ -91,7 +104,6 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
makeComponents()
}
-
@CallSuper
protected open fun initThis() {
super.setOrientation(HORIZONTAL)
@@ -106,7 +118,10 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
private fun makeTexts() {
txtView = AppCompatTextView(context).apply {
- layoutParams = LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT).apply {
+ layoutParams = LayoutParams(
+ ViewGroup.LayoutParams.WRAP_CONTENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT
+ ).apply {
weight = 1f
}
gravity = resolveTextGravity(textGravity)
@@ -114,7 +129,6 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
setTextAppearancesInternal(textAppearanceResId, subTextAppearanceResId)
}
-
protected open fun addCompoundButton() {
val compoundButton = getCompoundButton()
txtView!!.removeView()
@@ -150,7 +164,6 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
protected abstract fun getCompoundButton(): CompoundButton?
-
@SuppressLint("RtlHardcoded")
private fun resolveTextGravity(@TextGravity textGravity: Int): Int {
return when (textGravity) {
@@ -163,7 +176,6 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
}
}
-
private fun setTextInternal(text: CharSequence?, subtext: CharSequence?) {
val ssb = SpannableStringBuilder()
@@ -183,7 +195,6 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
txtView!!.visibility = if (ssb.isNotEmpty()) VISIBLE else GONE
}
-
@SuppressLint("CustomViewStyleable")
private fun setTextAppearanceSpan(ss: SpannableString, styleId: Int, isSubText: Boolean) {
val txtSizeDef = context.sp2px(if (isSubText) 14F else 16.toFloat())
@@ -196,7 +207,9 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
if (font != null) {
ss.setSpan(TypefaceSpan2(font), 0, ss.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
} else {
- family = resolveFontFamily(ta.getString(R.styleable.TextAppearance_android_fontFamily))
+ family = resolveFontFamily(
+ ta.getString(R.styleable.TextAppearance_android_fontFamily)
+ )
}
} else {
family = resolveFontFamily(ta.getString(R.styleable.TextAppearance_android_fontFamily))
@@ -216,7 +229,6 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
ta.recycle()
}
-
private fun resolveFontFamily(s: String?): String {
return if ("sans-serif".equals(s, ignoreCase = true) ||
"sans-serif-light".equals(s, ignoreCase = true) ||
@@ -224,10 +236,13 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
"sans-serif-black".equals(s, ignoreCase = true) ||
"sans-serif-thin".equals(s, ignoreCase = true) ||
"sans-serif-medium".equals(s, ignoreCase = true)
- ) s!! else "sans-serif"
+ ) {
+ s!!
+ } else {
+ "sans-serif"
+ }
}
-
private fun setSpaceBetweenInternal(spaceBetween: Int) {
(txtView!!.layoutParams as LayoutParams).apply {
setMargins(0, 0, 0, 0)
@@ -244,14 +259,12 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
txtView!!.requestLayout()
}
-
private fun setTextAppearancesInternal(textAppearanceResId: Int, subTextAppearanceResId: Int) {
this.textAppearanceResId = textAppearanceResId
this.subTextAppearanceResId = subTextAppearanceResId
setTextInternal(text, subText)
}
-
fun setTextAppearance(@StyleRes styleResId: Int) {
textAppearanceResId = styleResId
setTextAppearances(styleResId, subTextAppearanceResId)
@@ -281,7 +294,6 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
setTextInternal(text, subText)
}
-
fun getSubText(): CharSequence? {
return subText
}
@@ -305,7 +317,10 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
setSpaceBetweenInternal(spaceBetween)
}
- fun setTextAppearances(@StyleRes textAppearanceResId: Int, @StyleRes subTextAppearanceResId: Int) {
+ fun setTextAppearances(
+ @StyleRes textAppearanceResId: Int,
+ @StyleRes subTextAppearanceResId: Int
+ ) {
setTextAppearancesInternal(textAppearanceResId, subTextAppearanceResId)
}
@@ -314,7 +329,6 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
setTextAppearances(textAppearanceResId, styleResId)
}
-
fun setForceTextGravity(@TextGravity gravity: Int) {
textGravity = gravity
txtView?.gravity = resolveTextGravity(gravity)
@@ -338,15 +352,20 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
override fun toggle() {
val btn = getCompoundButton() ?: return
- if (beforeCheckChangeListener == null || beforeCheckChangeListener!!.invoke(this, !isChecked)) {
+ if (beforeCheckChangeListener == null || beforeCheckChangeListener!!.invoke(
+ this,
+ !isChecked
+ )
+ ) {
btn.toggle()
}
}
-
@CallSuper
override fun onCheckedChanged(buttonView: CompoundButton?, isChecked: Boolean) {
- background?.state = intArrayOf(if (isChecked) android.R.attr.state_checked else -android.R.attr.state_checked)
+ background?.state = intArrayOf(
+ if (isChecked) android.R.attr.state_checked else -android.R.attr.state_checked
+ )
onCheckChangedListener?.invoke(this, isChecked)
}
@@ -359,7 +378,6 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
return true
}
-
@IntDef(COMPOUND_TEXT_LEFT, COMPOUND_TEXT_TOP, COMPOUND_TEXT_RIGHT, COMPOUND_TEXT_BOTTOM)
@Retention(AnnotationRetention.SOURCE)
annotation class CompoundDirection
@@ -373,6 +391,4 @@ abstract class PeaceCompoundButton @JvmOverloads constructor(
)
@Retention(AnnotationRetention.SOURCE)
annotation class TextGravity
-
-
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/compound/PeaceCompoundButtonGroup.kt b/app/src/main/java/com/quranapp/android/widgets/compound/PeaceCompoundButtonGroup.kt
index d1c3829d..fc2642ff 100644
--- a/app/src/main/java/com/quranapp/android/widgets/compound/PeaceCompoundButtonGroup.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/compound/PeaceCompoundButtonGroup.kt
@@ -3,7 +3,6 @@ package com.quranapp.android.widgets.compound
import androidx.annotation.IdRes
import com.quranapp.android.widgets.radio.PeaceRadioButton
-
interface PeaceCompoundButtonGroup {
fun clearCheck()
@@ -15,4 +14,4 @@ interface PeaceCompoundButtonGroup {
fun checkSansInvocation(@IdRes id: Int)
fun checkAtPosition(position: Int)
fun check(@IdRes id: Int)
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/dialog/loader/PeaceProgressDialog.kt b/app/src/main/java/com/quranapp/android/widgets/dialog/loader/PeaceProgressDialog.kt
index e3b641bd..82d6e42b 100644
--- a/app/src/main/java/com/quranapp/android/widgets/dialog/loader/PeaceProgressDialog.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/dialog/loader/PeaceProgressDialog.kt
@@ -33,9 +33,9 @@ class PeaceProgressDialog(context: Context) : PeaceDialog(context) {
controller.setAllowOutsideTouches(allow)
}
-
internal class ProgressDialogController(
- context: Context, dialog: PeaceDialog
+ context: Context,
+ dialog: PeaceDialog
) : PeaceDialogController(context, dialog) {
override fun setupContent(contentPanel: ViewGroup) {
super.setupContent(contentPanel)
@@ -68,5 +68,4 @@ class PeaceProgressDialog(context: Context) : PeaceDialog(context) {
return 0
}
}
-
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/editor/EditorBGView.java b/app/src/main/java/com/quranapp/android/widgets/editor/EditorBGView.java
index 8a23b29c..1eccd6d9 100644
--- a/app/src/main/java/com/quranapp/android/widgets/editor/EditorBGView.java
+++ b/app/src/main/java/com/quranapp/android/widgets/editor/EditorBGView.java
@@ -4,8 +4,6 @@
package com.quranapp.android.widgets.editor;
-import static android.graphics.Paint.ANTI_ALIAS_FLAG;
-
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
@@ -20,9 +18,9 @@
import android.graphics.Shader;
import android.graphics.drawable.Drawable;
import android.view.View;
-
import androidx.annotation.DrawableRes;
import androidx.core.content.ContextCompat;
+import static android.graphics.Paint.ANTI_ALIAS_FLAG;
import com.peacedesign.android.utils.ColorUtils;
import com.peacedesign.android.utils.Dimen;
@@ -115,7 +113,8 @@ private void regeneratePaints() {
if (bgType == VerseEditor.BG_TYPE_COLORS && colors.length > 0) {
if (colors.length > 1) {
- LinearGradient gradient = new LinearGradient(0, 0, getWidth(), getHeight(), colors, null, Shader.TileMode.CLAMP);
+ LinearGradient gradient = new LinearGradient(0, 0, getWidth(), getHeight(), colors, null,
+ Shader.TileMode.CLAMP);
mBGPaint.setShader(gradient);
} else {
mBGPaint.setColor(colors[0]);
diff --git a/app/src/main/java/com/quranapp/android/widgets/editor/EditorFGView.java b/app/src/main/java/com/quranapp/android/widgets/editor/EditorFGView.java
index ad381022..c259fccf 100644
--- a/app/src/main/java/com/quranapp/android/widgets/editor/EditorFGView.java
+++ b/app/src/main/java/com/quranapp/android/widgets/editor/EditorFGView.java
@@ -4,8 +4,6 @@
package com.quranapp.android.widgets.editor;
-import static android.graphics.Paint.ANTI_ALIAS_FLAG;
-
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
@@ -17,9 +15,9 @@
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.view.View;
-
import androidx.annotation.DrawableRes;
import androidx.core.content.ContextCompat;
+import static android.graphics.Paint.ANTI_ALIAS_FLAG;
import com.peacedesign.android.utils.ColorUtils;
import com.peacedesign.android.utils.Dimen;
diff --git a/app/src/main/java/com/quranapp/android/widgets/editor/EditorSelectImageView.java b/app/src/main/java/com/quranapp/android/widgets/editor/EditorSelectImageView.java
index 91820f55..9f7e0ba1 100644
--- a/app/src/main/java/com/quranapp/android/widgets/editor/EditorSelectImageView.java
+++ b/app/src/main/java/com/quranapp/android/widgets/editor/EditorSelectImageView.java
@@ -4,8 +4,6 @@
package com.quranapp.android.widgets.editor;
-import static android.graphics.Paint.ANTI_ALIAS_FLAG;
-
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
@@ -16,9 +14,9 @@
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.view.View;
-
import androidx.annotation.DrawableRes;
import androidx.core.content.ContextCompat;
+import static android.graphics.Paint.ANTI_ALIAS_FLAG;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.DrawableUtils;
diff --git a/app/src/main/java/com/quranapp/android/widgets/form/PeaceFormInputField.java b/app/src/main/java/com/quranapp/android/widgets/form/PeaceFormInputField.java
index 29e511cf..d8a4840c 100644
--- a/app/src/main/java/com/quranapp/android/widgets/form/PeaceFormInputField.java
+++ b/app/src/main/java/com/quranapp/android/widgets/form/PeaceFormInputField.java
@@ -19,7 +19,6 @@
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
@@ -53,7 +52,8 @@ public PeaceFormInputField(@NonNull Context context, @Nullable AttributeSet attr
public PeaceFormInputField(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
- TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.PeaceFormInputField, defStyleAttr, defStyleRes);
+ TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.PeaceFormInputField, defStyleAttr,
+ defStyleRes);
mFieldTitle = a.getString(R.styleable.PeaceFormInputField_PeaceFFTitle);
mFieldHint = a.getString(R.styleable.PeaceFormInputField_PeaceFFHint);
mFieldText = a.getString(R.styleable.PeaceFormInputField_PeaceFFText);
diff --git a/app/src/main/java/com/quranapp/android/widgets/form/PeaceFormSelectField.java b/app/src/main/java/com/quranapp/android/widgets/form/PeaceFormSelectField.java
index c097d456..173c3a9d 100644
--- a/app/src/main/java/com/quranapp/android/widgets/form/PeaceFormSelectField.java
+++ b/app/src/main/java/com/quranapp/android/widgets/form/PeaceFormSelectField.java
@@ -15,7 +15,6 @@
import android.view.View;
import android.widget.FrameLayout;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
@@ -50,7 +49,8 @@ public PeaceFormSelectField(@NonNull Context context, @Nullable AttributeSet att
public PeaceFormSelectField(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
- TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.PeaceFormSelectField, defStyleAttr, defStyleRes);
+ TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.PeaceFormSelectField, defStyleAttr,
+ defStyleRes);
mFieldTitle = a.getString(R.styleable.PeaceFormSelectField_PeaceFFTitle);
mFieldRequired = a.getBoolean(R.styleable.PeaceFormSelectField_PeaceFFRequired, false);
@@ -127,8 +127,9 @@ public boolean isWarningShown() {
public void setOptions(List options, SimplerSpinnerItemSelectListener selectListener) {
mFieldSpinnerView.setOnItemSelectedListener(selectListener);
- SpinnerAdapter2 adapter = new SpinnerAdapter2<>(getContext(), R.layout.lyt_simple_spinner_item, R.id.text,
- options);
+ SpinnerAdapter2 adapter = new SpinnerAdapter2<>(getContext(), R.layout.lyt_simple_spinner_item,
+ R.id.text,
+ options);
mFieldSpinnerView.setAdapter(adapter);
}
diff --git a/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListAdapter.kt b/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListAdapter.kt
index c52b1942..96c6e783 100644
--- a/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListAdapter.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListAdapter.kt
@@ -32,7 +32,6 @@ open class BaseListAdapter(val context: Context) {
}
}
-
open fun onCreateItem(item: BaseListItem, index: Int) {
val itemView = onCreateItemView(item, index) ?: return
@@ -48,7 +47,6 @@ open class BaseListAdapter(val context: Context) {
}
}
-
protected open fun onCreateItemView(item: BaseListItem, position: Int): View? {
return BaseListItemView(context, item)
}
@@ -98,7 +96,6 @@ open class BaseListAdapter(val context: Context) {
return container?.isLaidOut == true
}
-
fun removeItem(index: Int) {
removeItem(items[index])
}
@@ -205,4 +202,4 @@ open class BaseListAdapter(val context: Context) {
itemView.notifyForChange()
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListItem.kt b/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListItem.kt
index 6c90adbf..00dad15d 100644
--- a/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListItem.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListItem.kt
@@ -6,8 +6,8 @@ import com.quranapp.android.components.ComponentBase
class BaseListItem @JvmOverloads constructor(
var icon: Int = 0,
var label: String? = null,
- var message: String? = null,
+ var message: String? = null
) : ComponentBase() {
var adapter: BaseListAdapter? = null
var itemView: View? = null
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListItemView.kt b/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListItemView.kt
index cf12bba9..566936a1 100644
--- a/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListItemView.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListItemView.kt
@@ -64,7 +64,6 @@ class BaseListItemView(context: Context, val item: BaseListItem) : FrameLayout(c
containerView.addView(iconView)
}
-
private fun initLabelCont() {
labelCont.apply {
layoutParams = LayoutParams(WRAP_CONTENT, WRAP_CONTENT).apply {
@@ -102,7 +101,7 @@ class BaseListItemView(context: Context, val item: BaseListItem) : FrameLayout(c
mMessageView.setEllipsize(TextUtils.TruncateAt.END);*/
updateDescription()
- labelCont!!.addView(messageView)
+ labelCont.addView(messageView)
}
fun updateIcon() {
@@ -117,7 +116,6 @@ class BaseListItemView(context: Context, val item: BaseListItem) : FrameLayout(c
}
iconView?.setImageDrawable(context.drawable(item.icon))
-
}
fun updateLabel() {
@@ -182,5 +180,4 @@ class BaseListItemView(context: Context, val item: BaseListItem) : FrameLayout(c
private fun resolveItemMassageStyle(): Context {
return ContextThemeWrapper(context, R.style.SimpleListItemMessageStyle)
}
-
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListView.kt b/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListView.kt
index d3870345..85596847 100644
--- a/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListView.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/list/base/BaseListView.kt
@@ -14,7 +14,7 @@ import com.quranapp.android.utils.extensions.updatePaddingVertical
open class BaseListView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
- defStyleAttr: Int = 0,
+ defStyleAttr: Int = 0
) : NestedScrollView(context, attrs, defStyleAttr) {
companion object {
const val DEFAULT_ITEM_ANIMATOR = -1
@@ -47,7 +47,6 @@ open class BaseListView @JvmOverloads constructor(
create()
}
-
private fun create() {
container.removeAllViews()
@@ -86,10 +85,14 @@ open class BaseListView @JvmOverloads constructor(
}
private fun resolveAnimation(): Animation? {
- return if (itemAnimator == 0) null else try {
- AnimationUtils.loadAnimation(context, itemAnimator)
- } catch (e: Exception) {
- AnimationUtils.loadAnimation(context, android.R.anim.fade_in)
+ return if (itemAnimator == 0) {
+ null
+ } else {
+ try {
+ AnimationUtils.loadAnimation(context, itemAnimator)
+ } catch (e: Exception) {
+ AnimationUtils.loadAnimation(context, android.R.anim.fade_in)
+ }
}
}
@@ -110,7 +113,6 @@ open class BaseListView @JvmOverloads constructor(
onItemClickListener?.onItemClick(item)
}
-
open fun setOnItemClickListener(listener: OnItemClickListener) {
onItemClickListener = listener
}
diff --git a/app/src/main/java/com/quranapp/android/widgets/list/singleChoice/SingleChoiceListAdapter.kt b/app/src/main/java/com/quranapp/android/widgets/list/singleChoice/SingleChoiceListAdapter.kt
index 5aaadc18..0d67e130 100644
--- a/app/src/main/java/com/quranapp/android/widgets/list/singleChoice/SingleChoiceListAdapter.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/list/singleChoice/SingleChoiceListAdapter.kt
@@ -8,7 +8,6 @@ import com.quranapp.android.widgets.list.base.BaseListItem
import com.quranapp.android.widgets.radio.PeaceRadioButton
import com.quranapp.android.widgets.radio.PeaceRadioGroup
-
class SingleChoiceListAdapter(context: Context) : BaseListAdapter(context) {
override fun onCreateItemView(item: BaseListItem, position: Int): View {
val radio = PeaceRadioButton(context).apply {
@@ -30,4 +29,4 @@ class SingleChoiceListAdapter(context: Context) : BaseListAdapter(context) {
container.check(itemView.id)
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/list/singleChoice/SingleChoiceListView.kt b/app/src/main/java/com/quranapp/android/widgets/list/singleChoice/SingleChoiceListView.kt
index 4fe70ea2..ba6889db 100644
--- a/app/src/main/java/com/quranapp/android/widgets/list/singleChoice/SingleChoiceListView.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/list/singleChoice/SingleChoiceListView.kt
@@ -25,4 +25,4 @@ class SingleChoiceListView(context: Context) : BaseListView(context) {
override fun setOnItemClickListener(listener: OnItemClickListener) {
selectionChangeListener = listener
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/radio/PeaceRadioButton.kt b/app/src/main/java/com/quranapp/android/widgets/radio/PeaceRadioButton.kt
index d4c0fb95..b0b3d2b0 100644
--- a/app/src/main/java/com/quranapp/android/widgets/radio/PeaceRadioButton.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/radio/PeaceRadioButton.kt
@@ -17,7 +17,8 @@ import com.quranapp.android.widgets.compound.PeaceCompoundButton
* a radio group, checking one radio button unchecks all the others.
*
*/
-class PeaceRadioButton @JvmOverloads constructor(context: Context,
+class PeaceRadioButton @JvmOverloads constructor(
+ context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : PeaceCompoundButton(context, attrs, defStyleAttr) {
@@ -31,7 +32,10 @@ class PeaceRadioButton @JvmOverloads constructor(context: Context,
private fun makeRadio() {
radio = RadioHelper(context).apply {
isChecked = initialChecked
- layoutParams = LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
+ layoutParams = LayoutParams(
+ ViewGroup.LayoutParams.WRAP_CONTENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT
+ )
}
}
@@ -48,4 +52,4 @@ class PeaceRadioButton @JvmOverloads constructor(context: Context,
setOnCheckedChangeListener(this@PeaceRadioButton)
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/radio/PeaceRadioGroup.kt b/app/src/main/java/com/quranapp/android/widgets/radio/PeaceRadioGroup.kt
index 6bb35637..806b9b13 100644
--- a/app/src/main/java/com/quranapp/android/widgets/radio/PeaceRadioGroup.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/radio/PeaceRadioGroup.kt
@@ -39,7 +39,6 @@ class PeaceRadioGroup @JvmOverloads constructor(
private var passThroughListener = PassThroughHierarchyChangeListener()
-
init {
val a = context.obtainStyledAttributes(attrs, R.styleable.PeaceRadioGroup, defStyleAttr, 0)
@@ -72,7 +71,6 @@ class PeaceRadioGroup @JvmOverloads constructor(
protectFromCheckedChange = false
}
-
override fun addView(child: View, index: Int, params: ViewGroup.LayoutParams) {
if (child !is PeaceRadioButton) return
@@ -103,7 +101,6 @@ class PeaceRadioGroup @JvmOverloads constructor(
protectFromCheckedChange = false
}
-
override fun checkAtPosition(position: Int) {
val view = getChildAt(position) ?: return
@@ -120,7 +117,6 @@ class PeaceRadioGroup @JvmOverloads constructor(
}
}
-
private fun checkInternal(@IdRes id: Int) {
setCheckedForView(checkedId, false) // uncheck previously checked button
setCheckedForView(id, true) // check the new button
@@ -175,4 +171,4 @@ class PeaceRadioGroup @JvmOverloads constructor(
}
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTab.java b/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTab.java
index 2d348b66..dde34234 100644
--- a/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTab.java
+++ b/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTab.java
@@ -12,7 +12,7 @@
public class BottomTab extends ComponentBase {
private String tabLabel;
@DrawableRes
- private int tabIcon = 0;
+ private int tabIcon;
private BottomTabView tabView;
private boolean mIsKingTab;
private Fragment attachedFragment;
@@ -43,7 +43,7 @@ public void setTabLabel(@Nullable String tabLabel) {
@DrawableRes
public int getTabIcon() {
- return this.tabIcon;
+ return tabIcon;
}
public void setTabIcon(@DrawableRes int tabIcon) {
diff --git a/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTabLayout.java b/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTabLayout.java
index 90caf3f8..bf6190fe 100644
--- a/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTabLayout.java
+++ b/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTabLayout.java
@@ -1,8 +1,5 @@
package com.quranapp.android.widgets.tablayout;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
@@ -11,11 +8,12 @@
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.widget.LinearLayout;
-
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.viewpager2.widget.ViewPager2;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.DrawableUtils;
@@ -36,7 +34,7 @@ public class BottomTabLayout extends LinearLayout {
private OnTabSelectionUpdateListener mSelectionUpdateListener;
private BottomTab mKingTab;
private OnKingTabClickListener mKingTabClickCallback;
- private int mPreSelectedTabIndex = 0;
+ private int mPreSelectedTabIndex;
private boolean firstTime = true;
public BottomTabLayout(@NonNull Context context) {
@@ -143,8 +141,9 @@ private void drainTabs() {
public void addTab(@NonNull BottomTab tab, int position) {
if (position > mTabs.size()) {
- String msg = String.format("position cannot be larger than size of tabLayout items. Position: %s , Size: %s", position,
- mTabs.size());
+ String msg = String.format(
+ "position cannot be larger than size of tabLayout items. Position: %s , Size: %s", position,
+ mTabs.size());
throw new IllegalArgumentException(msg);
}
diff --git a/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTabView.java b/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTabView.java
index e8684d32..b42ff86c 100644
--- a/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTabView.java
+++ b/app/src/main/java/com/quranapp/android/widgets/tablayout/BottomTabView.java
@@ -1,9 +1,5 @@
package com.quranapp.android.widgets.tablayout;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-import static androidx.core.content.ContextCompat.getColorStateList;
-import static com.peacedesign.android.utils.Dimen.dp2px;
-
import android.annotation.SuppressLint;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
@@ -12,11 +8,13 @@
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
-
import androidx.annotation.NonNull;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
+import static com.peacedesign.android.utils.Dimen.dp2px;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
+import static androidx.core.content.ContextCompat.getColorStateList;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.DrawableUtils;
@@ -36,12 +34,12 @@ public class BottomTabView extends LinearLayout {
public BottomTabView(@NonNull BottomTabLayout tabLayout, @NonNull BottomTab tab) {
super(tabLayout.getContext());
- this.mTabLayout = tabLayout;
- this.mTab = tab;
- this.isKingTab = tab.isKingTab();
- this.primaryColor = ContextCompat.getColor(getContext(), R.color.colorPrimary);
- this.primaryColorDark = ContextCompat.getColor(getContext(), R.color.colorPrimaryDark);
- this.kingTabTintColor = ContextCompat.getColor(getContext(), R.color.white);
+ mTabLayout = tabLayout;
+ mTab = tab;
+ isKingTab = tab.isKingTab();
+ primaryColor = ContextCompat.getColor(getContext(), R.color.colorPrimary);
+ primaryColorDark = ContextCompat.getColor(getContext(), R.color.colorPrimaryDark);
+ kingTabTintColor = ContextCompat.getColor(getContext(), R.color.white);
init();
}
@@ -65,7 +63,8 @@ private void initThis() {
int padV = dp2px(getContext(), 5);
setPadding(padH, padV, padH, padV);
- Drawable background = DrawableUtils.createBackground(primaryColor, primaryColorDark, Dimen.dp2px(getContext(), 100));
+ Drawable background = DrawableUtils.createBackground(primaryColor, primaryColorDark,
+ dp2px(getContext(), 100));
setBackground(background);
setOnTouchListener(new HoverPushEffect());
@@ -126,7 +125,8 @@ private void initIconView(BottomTab tab) {
if (isKingTab) {
drawable.setTint(kingTabTintColor);
} else {
- DrawableCompat.setTintList(drawable.mutate(), getColorStateList(getContext(), R.color.color_bottom_tablayout_icon));
+ DrawableCompat.setTintList(drawable.mutate(),
+ getColorStateList(getContext(), R.color.color_bottom_tablayout_icon));
}
iconView.setImageDrawable(drawable);
diff --git a/peacedesign/src/main/java/com/peacedesign/android/utils/anim/DimensionAnimator.kt b/peacedesign/src/main/java/com/peacedesign/android/utils/anim/DimensionAnimator.kt
index 6b8b810c..889b3fac 100644
--- a/peacedesign/src/main/java/com/peacedesign/android/utils/anim/DimensionAnimator.kt
+++ b/peacedesign/src/main/java/com/peacedesign/android/utils/anim/DimensionAnimator.kt
@@ -12,7 +12,14 @@ import android.animation.ValueAnimator
import android.view.View
import java.lang.ref.WeakReference
-class DimensionAnimator private constructor(requestedDimen: Int, v: View, startWidth: Int, targetWidth: Int, startHeight: Int, targetHeight: Int) {
+class DimensionAnimator private constructor(
+ requestedDimen: Int,
+ v: View,
+ startWidth: Int,
+ targetWidth: Int,
+ startHeight: Int,
+ targetHeight: Int
+) {
companion object {
private const val DIMEN_BOTH = 0x0
private const val DIMEN_HEIGHT = 0x1
@@ -20,10 +27,16 @@ class DimensionAnimator private constructor(requestedDimen: Int, v: View, startW
private const val DURATION_DEFAULT: Long = 200
fun ofBoth(v: View, startWidth: Int, targetWidth: Int, startHeight: Int, targetHeight: Int): DimensionAnimator {
- return DimensionAnimator(DIMEN_BOTH, v, startWidth, targetWidth, startHeight, targetHeight)
+ return DimensionAnimator(
+ DIMEN_BOTH,
+ v,
+ startWidth,
+ targetWidth,
+ startHeight,
+ targetHeight
+ )
}
-
fun ofWidth(v: View, startWidth: Int, targetWidth: Int): DimensionAnimator {
return DimensionAnimator(DIMEN_WIDTH, v, startWidth, targetWidth, -1, -1)
}
@@ -83,7 +96,6 @@ class DimensionAnimator private constructor(requestedDimen: Int, v: View, startW
}
}
-
private fun prepareBothInternal(): Animator {
val animatorW = ValueAnimator.ofInt(mStartWidth, mTargetWidth)
animatorW.duration = mDurationWidth
@@ -119,7 +131,10 @@ class DimensionAnimator private constructor(requestedDimen: Int, v: View, startW
val interpolator = if (isHeight) mHeightInterpolator else mWidthInterpolator
val duration = if (isHeight) mDurationHeight else mDurationWidth
- val animator = ValueAnimator.ofInt(if (isHeight) mStartHeight else mStartWidth, if (isHeight) mTargetHeight else mTargetWidth)
+ val animator = ValueAnimator.ofInt(
+ if (isHeight) mStartHeight else mStartWidth,
+ if (isHeight) mTargetHeight else mTargetWidth
+ )
animator.duration = duration
if (interpolator != null) {
@@ -150,4 +165,4 @@ class DimensionAnimator private constructor(requestedDimen: Int, v: View, startW
}
mAnimator!!.start()
}
-}
\ No newline at end of file
+}
From b43c00c06c04861cc8530062bc1aa348469f965d Mon Sep 17 00:00:00 2001
From: faisalcodes
Date: Mon, 6 Mar 2023 17:31:57 +0530
Subject: [PATCH 5/6] -
---
.../android/adapters/ADPBookmark.java | 15 +-
.../android/adapters/editor/ADPEditorBG.java | 15 +-
.../adapters/search/ADPVerseResults.java | 27 +-
.../reader/dialogs/VerseShareDialog.java | 12 +-
.../widgets/bottomSheet/PeaceBottomSheet.kt | 62 +--
.../bottomSheet/PeaceBottomSheetDialog.kt | 10 +-
.../bottomSheet/PeaceBottomSheetMenu.kt | 30 +-
.../bottomSheet/PeaceBottomSheetParams.kt | 7 +-
.../widget/dialog/base/PeaceDialogParams.java | 3 +
.../widget/sheet/PeaceBottomSheet.java | 488 ++++++++++++++++++
10 files changed, 581 insertions(+), 88 deletions(-)
create mode 100644 peacedesign/src/main/java/com/peacedesign/android/widget/sheet/PeaceBottomSheet.java
diff --git a/app/src/main/java/com/quranapp/android/adapters/ADPBookmark.java b/app/src/main/java/com/quranapp/android/adapters/ADPBookmark.java
index 8daa17b4..e2ba66ab 100644
--- a/app/src/main/java/com/quranapp/android/adapters/ADPBookmark.java
+++ b/app/src/main/java/com/quranapp/android/adapters/ADPBookmark.java
@@ -4,6 +4,8 @@
package com.quranapp.android.adapters;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
+
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
import android.graphics.Typeface;
@@ -13,13 +15,14 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.span.LineHeightSpan2;
+import com.peacedesign.android.widget.list.base.BaseListItem;
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityBookmark;
import com.quranapp.android.adapters.extended.PeaceBottomSheetMenuAdapter;
@@ -28,7 +31,6 @@
import com.quranapp.android.databinding.LytBookmarkItemBinding;
import com.quranapp.android.utils.extensions.ContextKt;
import com.quranapp.android.widgets.bottomSheet.PeaceBottomSheetMenu;
-import com.quranapp.android.widgets.list.base.BaseListItem;
import java.util.ArrayList;
import java.util.LinkedHashSet;
@@ -218,12 +220,9 @@ private void openItemMenu(String title, BookmarkModel model) {
dialog1.dismiss();
switch (item.getPosition()) {
- case 0: mActivity.onView(model, getAdapterPosition());
- break;
- case 1: mActivity.onOpen(model);
- break;
- case 2: mActivity.removeVerseFromBookmark(model, getAdapterPosition());
- break;
+ case 0: mActivity.onView(model, getAdapterPosition()); break;
+ case 1: mActivity.onOpen(model); break;
+ case 2: mActivity.removeVerseFromBookmark(model, getAdapterPosition()); break;
}
});
diff --git a/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorBG.java b/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorBG.java
index fff75b6e..8c15a7b5 100644
--- a/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorBG.java
+++ b/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorBG.java
@@ -4,6 +4,8 @@
package com.quranapp.android.adapters.editor;
+import static android.provider.MediaStore.Images;
+
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
@@ -12,21 +14,20 @@
import android.view.ViewGroup;
import android.widget.SeekBar;
import android.widget.TextView;
+
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
-import static android.provider.MediaStore.Images;
import com.peacedesign.android.utils.ColorUtils;
+import com.peacedesign.android.widget.sheet.PeaceBottomSheet;
import com.quranapp.android.R;
import com.quranapp.android.components.editor.EditorBG;
import com.quranapp.android.components.editor.VerseEditor;
import com.quranapp.android.databinding.LytEditorAlphaDialogBinding;
import com.quranapp.android.frags.editshare.FragEditorBG;
import com.quranapp.android.utils.gesture.HoverPushOpacityEffect;
-import com.quranapp.android.utils.simplified.SimpleSeekbarChangeListener;
+import com.quranapp.android.utils.univ.SimpleSeekbarChangeListener;
import com.quranapp.android.widgets.ColorPreviewerView;
-import com.quranapp.android.widgets.bottomSheet.PeaceBottomSheet;
-import com.quranapp.android.widgets.bottomSheet.PeaceBottomSheetParams;
import com.quranapp.android.widgets.editor.EditorBGView;
import com.quranapp.android.widgets.editor.EditorSelectImageView;
@@ -132,10 +133,10 @@ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
});
mDialog = new PeaceBottomSheet();
- PeaceBottomSheetParams p = mDialog.getParams();
- p.setHeaderTitle(ctx.getString(R.string.strTitleAlphaBG));
+ PeaceBottomSheet.PeaceBottomSheetParams p = mDialog.getDialogParams();
+ p.headerTitle = ctx.getString(R.string.strTitleAlphaBG);
p.setContentView(alphaDialogBinding.getRoot());
- p.setWindowDimAmount(0);
+ p.windowDimAmount = 0;
mDialog.show(mFrag.getParentFragmentManager());
}
diff --git a/app/src/main/java/com/quranapp/android/adapters/search/ADPVerseResults.java b/app/src/main/java/com/quranapp/android/adapters/search/ADPVerseResults.java
index 1bfaed04..9c3e165f 100644
--- a/app/src/main/java/com/quranapp/android/adapters/search/ADPVerseResults.java
+++ b/app/src/main/java/com/quranapp/android/adapters/search/ADPVerseResults.java
@@ -1,5 +1,16 @@
package com.quranapp.android.adapters.search;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
+import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.CHAPTER_JUMPER;
+import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.JUZ_JUMPER;
+import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.RESULT;
+import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.RESULT_COUNT;
+import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.VERSE_JUMPER;
+import static com.quranapp.android.utils.univ.Keys.READER_KEY_SAVE_TRANSL_CHANGES;
+import static com.quranapp.android.utils.univ.Keys.READER_KEY_TRANSL_SLUGS;
+
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
@@ -13,23 +24,15 @@
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
+
import androidx.annotation.NonNull;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.RecyclerView;
-import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.CHAPTER_JUMPER;
-import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.JUZ_JUMPER;
-import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.RESULT;
-import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.RESULT_COUNT;
-import static com.quranapp.android.activities.ActivitySearch.SearchResultViewType.VERSE_JUMPER;
-import static com.quranapp.android.utils.univ.Keys.READER_KEY_SAVE_TRANSL_CHANGES;
-import static com.quranapp.android.utils.univ.Keys.READER_KEY_TRANSL_SLUGS;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.span.TypefaceSpan2;
+import com.peacedesign.android.widget.list.base.BaseListItem;
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityReader;
import com.quranapp.android.activities.ActivitySearch;
@@ -59,7 +62,6 @@
import com.quranapp.android.vh.search.VHVerseJump;
import com.quranapp.android.widgets.bottomSheet.PeaceBottomSheetMenu;
import com.quranapp.android.widgets.chapterCard.ChapterCard;
-import com.quranapp.android.widgets.list.base.BaseListItem;
import java.util.ArrayList;
import java.util.List;
@@ -408,8 +410,7 @@ private void openItemMenu(Context context, VerseResultModel model) {
switch (item.getId()) {
case 0: {
openItem(context, model);
- }
- break;
+ } break;
case 1: {
if (isBookmarked) {
dbHelper.removeFromBookmark(model.chapterNo, model.verseNo, model.verseNo, null);
diff --git a/app/src/main/java/com/quranapp/android/views/reader/dialogs/VerseShareDialog.java b/app/src/main/java/com/quranapp/android/views/reader/dialogs/VerseShareDialog.java
index eedf7999..38dfc4e5 100644
--- a/app/src/main/java/com/quranapp/android/views/reader/dialogs/VerseShareDialog.java
+++ b/app/src/main/java/com/quranapp/android/views/reader/dialogs/VerseShareDialog.java
@@ -4,6 +4,12 @@
package com.quranapp.android.views.reader.dialogs;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
+import static com.quranapp.android.utils.univ.StringUtils.DASH;
+import static com.quranapp.android.utils.univ.StringUtils.HYPHEN;
+import static com.quranapp.android.widgets.compound.PeaceCompoundButton.COMPOUND_TEXT_GRAVITY_LEFT;
+import static com.quranapp.android.widgets.compound.PeaceCompoundButton.COMPOUND_TEXT_GRAVITY_RIGHT;
+
import android.content.Context;
import android.content.Intent;
import android.text.Editable;
@@ -13,15 +19,11 @@
import android.view.ViewParent;
import android.view.inputmethod.InputMethodManager;
import android.widget.Toast;
+
import androidx.annotation.NonNull;
import androidx.asynclayoutinflater.view.AsyncLayoutInflater;
import androidx.core.content.ContextCompat;
import androidx.core.widget.NestedScrollView;
-import static com.quranapp.android.utils.univ.StringUtils.DASH;
-import static com.quranapp.android.utils.univ.StringUtils.HYPHEN;
-import static com.quranapp.android.widgets.compound.PeaceCompoundButton.COMPOUND_TEXT_GRAVITY_LEFT;
-import static com.quranapp.android.widgets.compound.PeaceCompoundButton.COMPOUND_TEXT_GRAVITY_RIGHT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import com.peacedesign.android.utils.AppBridge;
import com.peacedesign.android.utils.Dimen;
diff --git a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheet.kt b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheet.kt
index 7ecdb1f9..31f0559c 100644
--- a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheet.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheet.kt
@@ -26,8 +26,8 @@ import com.quranapp.android.utils.extensions.*
open class PeaceBottomSheet : BottomSheetDialogFragment() {
var params = PeaceBottomSheetParams()
- var onShowListener: OnPeaceBottomSheetShowListener? = null
- var onDismissListener: OnPeaceBottomSheetDismissListener? = null
+ var onPeaceBottomSheetShowListener: OnPeaceBottomSheetShowListener? = null
+ var onPeaceBottomSheetDismissListener: OnPeaceBottomSheetDismissListener? = null
private var dialogLayout: LinearLayout? = null
@@ -66,13 +66,10 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
}
private fun resolveTitle(context: Context) {
- try {
- params.headerTitle = params.headerTitle ?: context.getString(params.headerTitleResource)
- } catch (e: Exception) {
- e.printStackTrace()
- }
+ params.headerTitle = params.headerTitle ?: context.getString(params.headerTitleResource)
}
+
protected open fun setupHeader(dialogLayout: ViewGroup, params: PeaceBottomSheetParams) {
if (!this.params.headerShown) return
@@ -95,6 +92,7 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
return context.drawable(R.drawable.dr_bg_sheet_dialog_header)
}
+
protected open fun prepareDragIcon(container: LinearLayout, params: PeaceBottomSheetParams) {
if (params.disableDragging) return
@@ -103,15 +101,12 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
setImageResource(R.drawable.dr_icon_drag)
}
- container.addView(
- dragIcon,
- 0,
- LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT).apply {
- topMargin = Dimen.dp2px(container.context, 10f)
- }
- )
+ container.addView(dragIcon, 0, LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT).apply {
+ topMargin = Dimen.dp2px(container.context, 10f)
+ })
}
+
protected open fun prepareTitleView(
container: LinearLayout,
params: PeaceBottomSheetParams,
@@ -123,9 +118,7 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
var titleView: AppCompatTextView? = container.findViewById(R.id.title)
if (hasTitle && titleView == null) {
- titleView = AppCompatTextView(
- ContextThemeWrapper(container.context, resolveTitleThemeId())
- )
+ titleView = AppCompatTextView(ContextThemeWrapper(container.context, resolveTitleThemeId()))
titleView.id = R.id.title
container.addView(titleView)
}
@@ -136,6 +129,7 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
}
}
+
fun updateHeaderTitle() {
val layout = dialogLayout ?: return
@@ -155,6 +149,7 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
}
}
+
private fun createHeaderView(dialogLayout: ViewGroup): LinearLayout {
val headerView = LinearLayout(dialogLayout.context).apply {
id = R.id.peaceBottomSheetHeaderView
@@ -172,23 +167,23 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
}
protected open fun setupContentView(dialogLayout: LinearLayout, params: PeaceBottomSheetParams) {
- if (params.contentView == null) {
- if (params.contentViewResId != 0) {
- params.contentView = LayoutInflater.from(context).inflate(
- params.contentViewResId,
+ if (params.mContentView == null) {
+ if (params.mContentViewResId != 0) {
+ params.mContentView = LayoutInflater.from(context).inflate(
+ params.mContentViewResId,
dialogLayout,
false
)
}
}
- if (params.contentView != null) {
- params.contentView.removeView()
- dialogLayout.addView(params.contentView)
+ if (params.mContentView != null) {
+ params.mContentView.removeView()
+ dialogLayout.addView(params.mContentView)
}
- if (!params.headerShown && params.contentView != null) {
- val closeBtn: View? = params.contentView!!.findViewById(R.id.close)
+ if (!params.headerShown && params.mContentView != null) {
+ val closeBtn: View? = params.mContentView!!.findViewById(R.id.close)
closeBtn?.setOnClickListener { dismiss() }
}
}
@@ -199,6 +194,7 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
setupDialogInternal(dialog, style, params)
}
+
protected open fun setupDialogInternal(
dialog: Dialog,
style: Int,
@@ -258,6 +254,7 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
}
})
+
dialog.setOnKeyListener { dialogInterface, keyCode, event ->
onKey(
dialogInterface as BottomSheetDialog,
@@ -267,7 +264,7 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
}
dialog.setOnShowListener {
- onShowListener?.onShow()
+ onPeaceBottomSheetShowListener?.onShow()
setupDialogOnStateChange(dialog, dialogModal, P.initialBehaviorState)
}
@@ -284,6 +281,7 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
return false
}
+
private fun setupFullHeight(modal: View) {
if (params.fullHeight) {
modal.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT
@@ -328,18 +326,19 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
show(fragmentManager, javaClass.simpleName)
}
+
override fun setCancelable(cancelable: Boolean) {
super.setCancelable(cancelable)
params.cancellable = cancelable
}
- fun getDialogLayout(): LinearLayout {
- return dialogLayout!!
+ fun getDialogLayout(): LinearLayout? {
+ return dialogLayout
}
override fun onDismiss(dialog: DialogInterface) {
super.onDismiss(dialog)
- if (onDismissListener != null) onDismissListener!!.onDismissed()
+ if (onPeaceBottomSheetDismissListener != null) onPeaceBottomSheetDismissListener!!.onDismissed()
}
fun isShowing() = isAdded
@@ -358,4 +357,5 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
interface OnPeaceBottomSheetDismissListener {
fun onDismissed()
}
-}
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetDialog.kt b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetDialog.kt
index 48ee689d..96696173 100644
--- a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetDialog.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetDialog.kt
@@ -22,17 +22,15 @@ open class PeaceBottomSheetDialog constructor(
val targetWidth = context.dp2px(450f)
window.setLayout(
- if (context.getWindowWidth() > targetWidth) {
- targetWidth
- } else {
- LayoutParams.MATCH_PARENT
- },
+ if (context.getWindowWidth() > targetWidth) targetWidth
+ else LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT
)
setupDialogInternal(window)
}
+
protected fun setupDialogInternal(window: Window) {
if (params.supportsNoAnimation()) {
window.setWindowAnimations(R.style.SheetDialogAnimations_NoAnimations)
@@ -48,4 +46,4 @@ open class PeaceBottomSheetDialog constructor(
setCanceledOnTouchOutside(params.cancellable && !params.disableOutsideTouch)
}
-}
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetMenu.kt b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetMenu.kt
index a739e1cf..8414dd01 100644
--- a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetMenu.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetMenu.kt
@@ -4,15 +4,16 @@ import android.content.Context
import android.os.Bundle
import android.view.View
import android.widget.LinearLayout
-import com.quranapp.android.widgets.list.base.BaseListAdapter
-import com.quranapp.android.widgets.list.base.BaseListItem
-import com.quranapp.android.widgets.list.base.BaseListView
-import com.quranapp.android.widgets.list.singleChoice.SingleChoiceListAdapter
-import com.quranapp.android.widgets.list.singleChoice.SingleChoiceListView
+import com.peacedesign.android.widget.list.base.BaseListAdapter
+import com.peacedesign.android.widget.list.base.BaseListItem
+import com.peacedesign.android.widget.list.simple.SimpleListView
+import com.peacedesign.android.widget.list.singleChoice.SingleChoiceListAdapter
+import com.peacedesign.android.widget.list.singleChoice.SingleChoiceListView
open class PeaceBottomSheetMenu : PeaceBottomSheet() {
var onItemClickListener: OnItemClickListener? = null
- var adapter: BaseListAdapter? = null
+ var adapter: BaseListAdapter? = null
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -33,25 +34,24 @@ open class PeaceBottomSheetMenu : PeaceBottomSheet() {
dialogLayout.addView(createAdapterView(dialogLayout.context, adapter!!))
}
- protected open fun createAdapterView(context: Context, listAdapter: BaseListAdapter): View {
+ protected open fun createAdapterView(context: Context, listAdapter: BaseListAdapter): View {
val listView = if (listAdapter is SingleChoiceListAdapter) {
SingleChoiceListView(context)
} else {
- BaseListView(context)
+ SimpleListView(context)
}
- listView.setOnItemClickListener(object : BaseListView.OnItemClickListener {
- override fun onItemClick(item: BaseListItem) {
- onItemClickListener?.onItemClick(this@PeaceBottomSheetMenu, item)
- }
- })
+ listView.setOnItemClickListener { item ->
+ onItemClickListener?.onItemClick(this, item)
+ }
- listView.post { listView.setAdapter(adapter) }
+ listView.post { listView.adapter = adapter }
return listView
}
+
interface OnItemClickListener {
fun onItemClick(dialog: PeaceBottomSheetMenu, item: BaseListItem)
}
-}
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetParams.kt b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetParams.kt
index ca58a0e0..70a45583 100644
--- a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetParams.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetParams.kt
@@ -38,10 +38,11 @@ class PeaceBottomSheetParams : Serializable {
var headerTitleResource = 0
@Transient
- var contentView: View? = null
+ var mContentView: View? = null
@LayoutRes
- var contentViewResId = 0
+ var mContentViewResId = 0
+
fun supportsNoAnimation(): Boolean {
return !supportsAnimations || !supportsEnterAnimation && !supportsExitAnimation
@@ -54,4 +55,4 @@ class PeaceBottomSheetParams : Serializable {
fun supportsExitAnimationOnly(): Boolean {
return supportsAnimations && !supportsEnterAnimation && supportsExitAnimation
}
-}
+}
\ No newline at end of file
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/dialog/base/PeaceDialogParams.java b/peacedesign/src/main/java/com/peacedesign/android/widget/dialog/base/PeaceDialogParams.java
index 3606accd..ebcc1d0d 100644
--- a/peacedesign/src/main/java/com/peacedesign/android/widget/dialog/base/PeaceDialogParams.java
+++ b/peacedesign/src/main/java/com/peacedesign/android/widget/dialog/base/PeaceDialogParams.java
@@ -19,6 +19,9 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import com.peacedesign.android.widget.list.base.BaseListAdapter;
+import com.peacedesign.android.widget.list.base.BaseListItem;
+
class PeaceDialogParams {
@SuppressLint("UnknownNullness")
public Context context;
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/sheet/PeaceBottomSheet.java b/peacedesign/src/main/java/com/peacedesign/android/widget/sheet/PeaceBottomSheet.java
new file mode 100644
index 00000000..adcf272f
--- /dev/null
+++ b/peacedesign/src/main/java/com/peacedesign/android/widget/sheet/PeaceBottomSheet.java
@@ -0,0 +1,488 @@
+package com.peacedesign.android.widget.sheet;
+
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
+
+import android.annotation.SuppressLint;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.ContextThemeWrapper;
+import android.view.Gravity;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.LinearLayout;
+import android.widget.LinearLayout.LayoutParams;
+
+import androidx.annotation.FloatRange;
+import androidx.annotation.LayoutRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
+import androidx.appcompat.widget.AppCompatImageView;
+import androidx.appcompat.widget.AppCompatTextView;
+import androidx.core.content.ContextCompat;
+import androidx.fragment.app.DialogFragment;
+import androidx.fragment.app.FragmentManager;
+
+import com.google.android.material.bottomsheet.BottomSheetBehavior;
+import com.google.android.material.bottomsheet.BottomSheetBehavior.State;
+import com.google.android.material.bottomsheet.BottomSheetDialog;
+import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
+import com.peacedesign.R;
+import com.peacedesign.android.utils.Dimen;
+import com.peacedesign.android.utils.DrawableUtils;
+import com.peacedesign.android.utils.ResUtils;
+import com.peacedesign.android.utils.ViewUtils;
+import com.peacedesign.android.utils.WindowUtils;
+
+import java.io.Serializable;
+
+public class PeaceBottomSheet extends BottomSheetDialogFragment {
+ private PeaceBottomSheetParams P;
+ private OnPeaceBottomSheetShowListener mOnPeaceBottomSheetShowListener;
+ private OnPeaceBottomSheetDismissListener mOnPeaceBottomSheetDismissListener;
+ private LinearLayout mDialogLayout;
+
+ public PeaceBottomSheet() {
+ P = new PeaceBottomSheetParams();
+ }
+
+ @Override
+ public void onSaveInstanceState(@NonNull Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putSerializable("params", P);
+ }
+
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ setStyle(DialogFragment.STYLE_NORMAL, R.style.PeaceBottomSheetTheme);
+ if (savedInstanceState != null) {
+ P = (PeaceBottomSheetParams) savedInstanceState.getSerializable("params");
+ }
+
+ super.onCreate(savedInstanceState);
+ if (P.sheetBGColor == -1) {
+ P.sheetBGColor = ContextCompat.getColor(getContext(), R.color.colorBackgroundSheetDialog);
+ }
+ }
+
+ @NonNull
+ @Override
+ public PeaceBottomSheetDialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+ return new PeaceBottomSheetDialog(getContext(), getTheme(), P);
+ }
+
+ protected View prepareDialogLayout(Context context, PeaceBottomSheetParams params) {
+ mDialogLayout = new LinearLayout(context);
+ mDialogLayout.setOrientation(LinearLayout.VERTICAL);
+
+ setupHeader(mDialogLayout, params);
+ setupContentView(mDialogLayout, params);
+
+ return mDialogLayout;
+ }
+
+ private void resolveTitle() {
+ if (P.headerTitle == null) {
+ P.headerTitle = getContext().getString(P.headerTitleResource);
+ }
+ }
+
+ protected void setupHeader(ViewGroup dialogLayout, PeaceBottomSheetParams params) {
+ if (!P.headerShown) {
+ return;
+ }
+
+ resolveTitle();
+ final boolean hasTitle = !TextUtils.isEmpty(params.headerTitle);
+ if (!hasTitle && params.disableDragging) {
+ return;
+ }
+
+ LinearLayout headerView = createHeaderView(dialogLayout);
+
+ prepareDragIcon(headerView, params);
+ prepareTitleView(headerView, params, false);
+
+ if (hasTitle) {
+ headerView.setBackground(getHeaderBG(dialogLayout.getContext()));
+ }
+ }
+
+ private Drawable getHeaderBG(Context context) {
+ return ContextCompat.getDrawable(context, R.drawable.dr_bg_sheet_dialog_header);
+ }
+
+ protected void prepareDragIcon(LinearLayout container, PeaceBottomSheetParams params) {
+ if (params.disableDragging) {
+ return;
+ }
+
+ AppCompatImageView dragIcon = new AppCompatImageView(container.getContext());
+ dragIcon.setId(R.id.dragIcon);
+ dragIcon.setImageResource(R.drawable.dr_icon_drag);
+
+ LayoutParams lp = new LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
+ lp.topMargin = Dimen.dp2px(container.getContext(), 10);
+ container.addView(dragIcon, 0, lp);
+ }
+
+ protected void prepareTitleView(@NonNull LinearLayout container, PeaceBottomSheetParams params, boolean isUpdating) {
+ boolean hasTitle = !TextUtils.isEmpty(params.headerTitle);
+ if (!isUpdating && !hasTitle) {
+ return;
+ }
+
+ AppCompatTextView titleView = container.findViewById(R.id.title);
+ if (hasTitle && titleView == null) {
+ titleView = new AppCompatTextView(new ContextThemeWrapper(container.getContext(), resolveTitleThemeId()));
+ titleView.setId(R.id.title);
+ container.addView(titleView);
+ }
+
+ if (titleView != null) {
+ titleView.setText(params.headerTitle);
+ titleView.setVisibility(hasTitle ? View.VISIBLE : View.GONE);
+ }
+ }
+
+ public void updateHeaderTitle() {
+ if (mDialogLayout == null) {
+ return;
+ }
+
+ resolveTitle();
+ final boolean hasTitle = !TextUtils.isEmpty(P.headerTitle);
+
+ LinearLayout headerView = mDialogLayout.findViewById(R.id.peaceBottomSheetHeaderView);
+ if (hasTitle && headerView == null) {
+ headerView = createHeaderView(mDialogLayout);
+ }
+
+ if (headerView != null) {
+ prepareTitleView(headerView, P, true);
+ headerView.setBackground(hasTitle ? getHeaderBG(mDialogLayout.getContext()) : null);
+ }
+ }
+
+ private LinearLayout createHeaderView(ViewGroup dialogLayout) {
+ LinearLayout headerView = new LinearLayout(dialogLayout.getContext());
+ headerView.setId(R.id.peaceBottomSheetHeaderView);
+ headerView.setOrientation(LinearLayout.VERTICAL);
+ headerView.setGravity(Gravity.CENTER);
+ dialogLayout.addView(headerView, 0);
+ return headerView;
+ }
+
+ protected int resolveTitleThemeId() {
+ return R.style.PeaceBottomSheetTitleStyle;
+ }
+
+ protected void setupContentView(@NonNull LinearLayout dialogLayout, PeaceBottomSheetParams params) {
+ if (params.mContentView == null) {
+ if (params.mContentViewResId != 0) {
+ params.mContentView = LayoutInflater.from(getContext()).inflate(params.mContentViewResId, dialogLayout, false);
+ }
+ }
+
+ if (params.mContentView != null) {
+ ViewUtils.removeView(params.mContentView);
+ dialogLayout.addView(params.mContentView);
+ }
+
+ if (!params.headerShown && params.mContentView != null) {
+ View closeBtn = params.mContentView.findViewById(R.id.close);
+ if (closeBtn != null) {
+ closeBtn.setOnClickListener(v -> dismiss());
+ }
+ }
+ }
+
+ @SuppressLint("RestrictedApi")
+ @Override
+ public void setupDialog(@NonNull Dialog dialog, int style) {
+ super.setupDialog(dialog, style);
+ setupDialogInternal(dialog, style, P);
+ }
+
+ protected void setupDialogInternal(Dialog dialog, int style, PeaceBottomSheetParams params) {
+ View dialogLayout = prepareDialogLayout(getContext(), params);
+ dialog.setContentView(dialogLayout);
+
+ setupDialogStyles(dialog, dialogLayout, params);
+ }
+
+ protected void setupDialogStyles(Dialog dialog, View dialogLayout, PeaceBottomSheetParams P) {
+ Window window = dialog.getWindow();
+ window.getDecorView().setClipToOutline(true);
+
+ dialogLayout.setClipToOutline(true);
+ ((ViewGroup) dialogLayout).setClipChildren(true);
+
+ ViewGroup dialogModal = (ViewGroup) dialogLayout.getParent();
+ dialogModal.setClipToOutline(true);
+ dialogModal.setClipChildren(true);
+
+ setupFullHeight(dialogModal);
+ if (!P.supportsRoundedCorners) {
+ setupModalBackground(dialogModal, false);
+ }
+
+ BottomSheetBehavior bottomSheetBehavior = BottomSheetBehavior.from(dialogModal);
+ bottomSheetBehavior.setHideable(P.cancellable && !P.hideOnSwipe);
+ bottomSheetBehavior.setDraggable(P.cancellable && !P.disableDragging);
+ bottomSheetBehavior.setState(P.initialBehaviorState);
+ if (WindowUtils.isLandscapeMode(getContext())) {
+ bottomSheetBehavior.setSkipCollapsed(true);
+ }
+ bottomSheetBehavior.addBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
+ @Override
+ public void onStateChanged(@NonNull View bottomSheet, int newState) {
+ setupDialogOnStateChange(dialog, dialogModal, newState);
+
+ View focus = dialog.getCurrentFocus();
+ if (focus != null) {
+ InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(focus.getWindowToken(), 0);
+ }
+ }
+
+ @Override
+ public void onSlide(@NonNull View bottomSheet, float slideOffset) {
+ /*if (slideOffset <= 0) {
+ float mult = 1 + slideOffset;
+ window.setDimAmount(P.windowDimAmount * mult);
+ }*/
+ }
+ });
+
+ dialog.setOnKeyListener((dialogInterface, keyCode, event) -> onKey((BottomSheetDialog) dialogInterface, keyCode, event));
+ dialog.setOnShowListener(dialogInterface -> {
+ if (mOnPeaceBottomSheetShowListener != null) mOnPeaceBottomSheetShowListener.onShow();
+ setupDialogOnStateChange(dialog, dialogModal, P.initialBehaviorState);
+ });
+
+ dialogModal.addOnLayoutChangeListener((v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> {
+ setupDialogOnStateChange(dialog, dialogModal, bottomSheetBehavior.getState());
+ });
+ }
+
+ protected boolean onKey(@NonNull BottomSheetDialog dialog, int keyCode, @NonNull KeyEvent event) {
+ return false;
+ }
+
+ private void setupFullHeight(View modal) {
+ if (P.fullHeight) {
+ ViewGroup.LayoutParams params = modal.getLayoutParams();
+ params.height = MATCH_PARENT;
+ modal.setLayoutParams(params);
+ }
+ }
+
+ private void setupModalBackground(View modal, boolean isOnFullHeight) {
+ float[] radii = null;
+
+ if (P.supportsRoundedCorners) {
+ boolean cornerFlag = P.resetRoundedCornersOnFullHeight && isOnFullHeight;
+ if (!cornerFlag) {
+ radii = Dimen.createRadiiForBGInDP(getContext(), 15, 15, 0, 0);
+ }
+ }
+
+ Drawable background = DrawableUtils.createBackground(P.sheetBGColor, radii);
+ modal.setBackground(background);
+ }
+
+ private void setupDialogOnStateChange(Dialog dialog, View dialogModal, int newState) {
+ boolean isExpanded = newState == BottomSheetBehavior.STATE_EXPANDED;
+ boolean isHeightFilled = dialogModal.getHeight() >= (Dimen.getWindowHeight(getContext()) - 10);
+ boolean isOnFullHeight = isExpanded && isHeightFilled;
+
+ setupModalBackground(dialogModal, isOnFullHeight);
+
+ if (!P.resetRoundedCornersOnFullHeight) {
+ return;
+ }
+
+ Window window = dialog.getWindow();
+ window.setDimAmount(isOnFullHeight ? 0 : P.windowDimAmount);
+ window.setStatusBarColor(isOnFullHeight ? P.sheetBGColor : 0);
+
+ if (!WindowUtils.isNightMode(getContext())) {
+ if (isOnFullHeight) {
+ WindowUtils.setLightStatusBar(window);
+ } else {
+ WindowUtils.clearLightStatusBar(window);
+ }
+ }
+ }
+
+ public final void show(@NonNull FragmentManager fragmentManager) {
+ show(fragmentManager, getClass().getSimpleName());
+ }
+
+ public void setContentView(@NonNull View contentView) {
+ P.mContentView = contentView;
+ }
+
+ public void setContentView(@LayoutRes int layoutId) {
+ P.mContentViewResId = layoutId;
+ }
+
+ public void setHeaderTitle(CharSequence title) {
+ P.headerTitle = title;
+ }
+
+ public void setHeaderTitle(@StringRes int titleRes) {
+ P.headerTitleResource = titleRes;
+ }
+
+ @Override
+ public void setCancelable(boolean cancelable) {
+ super.setCancelable(cancelable);
+ P.cancellable = cancelable;
+ }
+
+ public void disableDragging(boolean flag) {
+ P.disableDragging = flag;
+ }
+
+ public void setHideOnSwipe(boolean flag) {
+ P.hideOnSwipe = flag;
+ }
+
+ public void disableOutsideTouch(boolean flag) {
+ P.disableOutsideTouch = flag;
+ }
+
+ public void disableBackKey(boolean flag) {
+ P.disableBackKey = flag;
+ }
+
+ public void setInitialBehaviorState(@State int state) {
+ P.initialBehaviorState = state;
+ }
+
+ public void setFullHeight(boolean flag) {
+ P.fullHeight = flag;
+ }
+
+ public void setHeaderShown(boolean shown) {
+ P.headerShown = shown;
+ }
+
+ @NonNull
+ public PeaceBottomSheetParams getDialogParams() {
+ return P;
+ }
+
+ public void applyParams(@NonNull PeaceBottomSheetParams params) {
+ P = params;
+ }
+
+ public void setOnShowListener(@NonNull OnPeaceBottomSheetShowListener listener) {
+ mOnPeaceBottomSheetShowListener = listener;
+ }
+
+ public void setOnDismissListener(@NonNull OnPeaceBottomSheetDismissListener listener) {
+ mOnPeaceBottomSheetDismissListener = listener;
+ }
+
+ public LinearLayout getDialogLayout() {
+ return mDialogLayout;
+ }
+
+ @NonNull
+ @Override
+ public Context getContext() {
+ //noinspection ConstantConditions
+ return super.getContext();
+ }
+
+ public int getSheetBGColor() {
+ return P.sheetBGColor;
+ }
+
+ @Override
+ public void onDismiss(@NonNull DialogInterface dialog) {
+ super.onDismiss(dialog);
+ if (mOnPeaceBottomSheetDismissListener != null) mOnPeaceBottomSheetDismissListener.onDismissed();
+ }
+
+ public boolean isShowing() {
+ return isAdded();
+ }
+
+ @Override
+ public void dismiss() {
+ try {
+ super.dismiss();
+ } catch (Exception ignored) {}
+ }
+
+ public interface OnPeaceBottomSheetShowListener {
+ void onShow();
+ }
+
+ public interface OnPeaceBottomSheetDismissListener {
+ void onDismissed();
+ }
+
+ public static class PeaceBottomSheetParams implements Serializable {
+ public boolean disableDragging;
+ public boolean hideOnSwipe;
+ public boolean disableOutsideTouch;
+ public boolean cancellable = true;
+ public boolean disableBackKey;
+ public boolean supportsRoundedCorners = true;
+ public boolean resetRoundedCornersOnFullHeight = true;
+ public boolean supportsOverlayBackground = true;
+ public boolean supportsAnimations = true;
+ public boolean supportsEnterAnimation = true;
+ public boolean supportsExitAnimation = true;
+ public boolean fullHeight;
+ public boolean headerShown = true;
+ public int sheetBGColor = -1;
+ @FloatRange(from = 0f, to = 1f)
+ public float windowDimAmount = 0.6f;
+ @State
+ public int initialBehaviorState = BottomSheetBehavior.STATE_EXPANDED;
+ @Nullable
+ public CharSequence headerTitle;
+ @StringRes
+ public int headerTitleResource;
+ @Nullable
+ protected transient View mContentView;
+ @LayoutRes
+ protected int mContentViewResId;
+
+ public boolean supportsNoAnimation() {
+ return !supportsAnimations || (!supportsEnterAnimation && !supportsExitAnimation);
+ }
+
+ public boolean supportsEnterAnimationOnly() {
+ return supportsAnimations && supportsEnterAnimation && !supportsExitAnimation;
+ }
+
+ public boolean supportsExitAnimationOnly() {
+ return supportsAnimations && !supportsEnterAnimation && supportsExitAnimation;
+ }
+
+
+ public void setContentView(@LayoutRes int viewResId) {
+ mContentViewResId = viewResId;
+ }
+
+ public void setContentView(@NonNull View contentView) {
+ mContentView = contentView;
+ }
+ }
+}
From b957c63df7cae17c104d54fa735a0e5d0a343367 Mon Sep 17 00:00:00 2001
From: faisalcodes
Date: Tue, 7 Mar 2023 04:40:52 +0530
Subject: [PATCH 6/6] Code improvements
---
.../android/adapters/ADPBookmark.java | 6 +-
.../android/adapters/editor/ADPEditorBG.java | 15 +-
.../adapters/search/ADPVerseResults.java | 2 +-
.../widgets/bottomSheet/PeaceBottomSheet.kt | 26 +-
.../bottomSheet/PeaceBottomSheetMenu.kt | 26 +-
.../bottomSheet/PeaceBottomSheetParams.kt | 4 +-
.../widget/dialog/base/PeaceDialogParams.java | 15 +-
.../widget/sheet/PeaceBottomSheet.java | 488 ------------------
8 files changed, 44 insertions(+), 538 deletions(-)
delete mode 100644 peacedesign/src/main/java/com/peacedesign/android/widget/sheet/PeaceBottomSheet.java
diff --git a/app/src/main/java/com/quranapp/android/adapters/ADPBookmark.java b/app/src/main/java/com/quranapp/android/adapters/ADPBookmark.java
index e2ba66ab..93bc961f 100644
--- a/app/src/main/java/com/quranapp/android/adapters/ADPBookmark.java
+++ b/app/src/main/java/com/quranapp/android/adapters/ADPBookmark.java
@@ -4,8 +4,6 @@
package com.quranapp.android.adapters;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
import android.graphics.Typeface;
@@ -15,14 +13,13 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
+import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.span.LineHeightSpan2;
-import com.peacedesign.android.widget.list.base.BaseListItem;
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityBookmark;
import com.quranapp.android.adapters.extended.PeaceBottomSheetMenuAdapter;
@@ -31,6 +28,7 @@
import com.quranapp.android.databinding.LytBookmarkItemBinding;
import com.quranapp.android.utils.extensions.ContextKt;
import com.quranapp.android.widgets.bottomSheet.PeaceBottomSheetMenu;
+import com.quranapp.android.widgets.list.base.BaseListItem;
import java.util.ArrayList;
import java.util.LinkedHashSet;
diff --git a/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorBG.java b/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorBG.java
index 8c15a7b5..fff75b6e 100644
--- a/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorBG.java
+++ b/app/src/main/java/com/quranapp/android/adapters/editor/ADPEditorBG.java
@@ -4,8 +4,6 @@
package com.quranapp.android.adapters.editor;
-import static android.provider.MediaStore.Images;
-
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
@@ -14,20 +12,21 @@
import android.view.ViewGroup;
import android.widget.SeekBar;
import android.widget.TextView;
-
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
+import static android.provider.MediaStore.Images;
import com.peacedesign.android.utils.ColorUtils;
-import com.peacedesign.android.widget.sheet.PeaceBottomSheet;
import com.quranapp.android.R;
import com.quranapp.android.components.editor.EditorBG;
import com.quranapp.android.components.editor.VerseEditor;
import com.quranapp.android.databinding.LytEditorAlphaDialogBinding;
import com.quranapp.android.frags.editshare.FragEditorBG;
import com.quranapp.android.utils.gesture.HoverPushOpacityEffect;
-import com.quranapp.android.utils.univ.SimpleSeekbarChangeListener;
+import com.quranapp.android.utils.simplified.SimpleSeekbarChangeListener;
import com.quranapp.android.widgets.ColorPreviewerView;
+import com.quranapp.android.widgets.bottomSheet.PeaceBottomSheet;
+import com.quranapp.android.widgets.bottomSheet.PeaceBottomSheetParams;
import com.quranapp.android.widgets.editor.EditorBGView;
import com.quranapp.android.widgets.editor.EditorSelectImageView;
@@ -133,10 +132,10 @@ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
});
mDialog = new PeaceBottomSheet();
- PeaceBottomSheet.PeaceBottomSheetParams p = mDialog.getDialogParams();
- p.headerTitle = ctx.getString(R.string.strTitleAlphaBG);
+ PeaceBottomSheetParams p = mDialog.getParams();
+ p.setHeaderTitle(ctx.getString(R.string.strTitleAlphaBG));
p.setContentView(alphaDialogBinding.getRoot());
- p.windowDimAmount = 0;
+ p.setWindowDimAmount(0);
mDialog.show(mFrag.getParentFragmentManager());
}
diff --git a/app/src/main/java/com/quranapp/android/adapters/search/ADPVerseResults.java b/app/src/main/java/com/quranapp/android/adapters/search/ADPVerseResults.java
index 9c3e165f..1b842d22 100644
--- a/app/src/main/java/com/quranapp/android/adapters/search/ADPVerseResults.java
+++ b/app/src/main/java/com/quranapp/android/adapters/search/ADPVerseResults.java
@@ -32,7 +32,6 @@
import com.peacedesign.android.utils.Dimen;
import com.peacedesign.android.utils.span.TypefaceSpan2;
-import com.peacedesign.android.widget.list.base.BaseListItem;
import com.quranapp.android.R;
import com.quranapp.android.activities.ActivityReader;
import com.quranapp.android.activities.ActivitySearch;
@@ -62,6 +61,7 @@
import com.quranapp.android.vh.search.VHVerseJump;
import com.quranapp.android.widgets.bottomSheet.PeaceBottomSheetMenu;
import com.quranapp.android.widgets.chapterCard.ChapterCard;
+import com.quranapp.android.widgets.list.base.BaseListItem;
import java.util.ArrayList;
import java.util.List;
diff --git a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheet.kt b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheet.kt
index 31f0559c..a3d1cd96 100644
--- a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheet.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheet.kt
@@ -27,7 +27,7 @@ import com.quranapp.android.utils.extensions.*
open class PeaceBottomSheet : BottomSheetDialogFragment() {
var params = PeaceBottomSheetParams()
var onPeaceBottomSheetShowListener: OnPeaceBottomSheetShowListener? = null
- var onPeaceBottomSheetDismissListener: OnPeaceBottomSheetDismissListener? = null
+ var onDismissListener: OnPeaceBottomSheetDismissListener? = null
private var dialogLayout: LinearLayout? = null
@@ -167,23 +167,23 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
}
protected open fun setupContentView(dialogLayout: LinearLayout, params: PeaceBottomSheetParams) {
- if (params.mContentView == null) {
- if (params.mContentViewResId != 0) {
- params.mContentView = LayoutInflater.from(context).inflate(
- params.mContentViewResId,
+ if (params.contentView == null) {
+ if (params.contentViewResId != 0) {
+ params.contentView = LayoutInflater.from(context).inflate(
+ params.contentViewResId,
dialogLayout,
false
)
}
}
- if (params.mContentView != null) {
- params.mContentView.removeView()
- dialogLayout.addView(params.mContentView)
+ if (params.contentView != null) {
+ params.contentView.removeView()
+ dialogLayout.addView(params.contentView)
}
- if (!params.headerShown && params.mContentView != null) {
- val closeBtn: View? = params.mContentView!!.findViewById(R.id.close)
+ if (!params.headerShown && params.contentView != null) {
+ val closeBtn: View? = params.contentView!!.findViewById(R.id.close)
closeBtn?.setOnClickListener { dismiss() }
}
}
@@ -332,13 +332,13 @@ open class PeaceBottomSheet : BottomSheetDialogFragment() {
params.cancellable = cancelable
}
- fun getDialogLayout(): LinearLayout? {
- return dialogLayout
+ fun getDialogLayout(): LinearLayout {
+ return dialogLayout!!
}
override fun onDismiss(dialog: DialogInterface) {
super.onDismiss(dialog)
- if (onPeaceBottomSheetDismissListener != null) onPeaceBottomSheetDismissListener!!.onDismissed()
+ if (onDismissListener != null) onDismissListener!!.onDismissed()
}
fun isShowing() = isAdded
diff --git a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetMenu.kt b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetMenu.kt
index 8414dd01..193d7d7e 100644
--- a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetMenu.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetMenu.kt
@@ -4,15 +4,15 @@ import android.content.Context
import android.os.Bundle
import android.view.View
import android.widget.LinearLayout
-import com.peacedesign.android.widget.list.base.BaseListAdapter
-import com.peacedesign.android.widget.list.base.BaseListItem
-import com.peacedesign.android.widget.list.simple.SimpleListView
-import com.peacedesign.android.widget.list.singleChoice.SingleChoiceListAdapter
-import com.peacedesign.android.widget.list.singleChoice.SingleChoiceListView
+import com.quranapp.android.widgets.list.base.BaseListAdapter
+import com.quranapp.android.widgets.list.base.BaseListItem
+import com.quranapp.android.widgets.list.base.BaseListView
+import com.quranapp.android.widgets.list.singleChoice.SingleChoiceListAdapter
+import com.quranapp.android.widgets.list.singleChoice.SingleChoiceListView
open class PeaceBottomSheetMenu : PeaceBottomSheet() {
var onItemClickListener: OnItemClickListener? = null
- var adapter: BaseListAdapter? = null
+ var adapter: BaseListAdapter? = null
override fun onCreate(savedInstanceState: Bundle?) {
@@ -34,18 +34,20 @@ open class PeaceBottomSheetMenu : PeaceBottomSheet() {
dialogLayout.addView(createAdapterView(dialogLayout.context, adapter!!))
}
- protected open fun createAdapterView(context: Context, listAdapter: BaseListAdapter): View {
+ protected open fun createAdapterView(context: Context, listAdapter: BaseListAdapter): View {
val listView = if (listAdapter is SingleChoiceListAdapter) {
SingleChoiceListView(context)
} else {
- SimpleListView(context)
+ BaseListView(context)
}
- listView.setOnItemClickListener { item ->
- onItemClickListener?.onItemClick(this, item)
- }
+ listView.setOnItemClickListener(object : BaseListView.OnItemClickListener {
+ override fun onItemClick(item: BaseListItem) {
+ onItemClickListener?.onItemClick(this@PeaceBottomSheetMenu, item)
+ }
+ })
- listView.post { listView.adapter = adapter }
+ listView.post { listView.setAdapter(adapter) }
return listView
}
diff --git a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetParams.kt b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetParams.kt
index 70a45583..e6cafea3 100644
--- a/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetParams.kt
+++ b/app/src/main/java/com/quranapp/android/widgets/bottomSheet/PeaceBottomSheetParams.kt
@@ -38,10 +38,10 @@ class PeaceBottomSheetParams : Serializable {
var headerTitleResource = 0
@Transient
- var mContentView: View? = null
+ var contentView: View? = null
@LayoutRes
- var mContentViewResId = 0
+ var contentViewResId = 0
fun supportsNoAnimation(): Boolean {
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/dialog/base/PeaceDialogParams.java b/peacedesign/src/main/java/com/peacedesign/android/widget/dialog/base/PeaceDialogParams.java
index ebcc1d0d..892fd1a0 100644
--- a/peacedesign/src/main/java/com/peacedesign/android/widget/dialog/base/PeaceDialogParams.java
+++ b/peacedesign/src/main/java/com/peacedesign/android/widget/dialog/base/PeaceDialogParams.java
@@ -1,11 +1,5 @@
package com.peacedesign.android.widget.dialog.base;
-import static android.content.DialogInterface.BUTTON_NEGATIVE;
-import static android.content.DialogInterface.BUTTON_NEUTRAL;
-import static android.content.DialogInterface.BUTTON_POSITIVE;
-import static android.content.DialogInterface.OnDismissListener;
-import static android.content.DialogInterface.OnKeyListener;
-
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.DialogInterface.OnCancelListener;
@@ -13,14 +7,15 @@
import android.content.DialogInterface.OnShowListener;
import android.view.View;
import android.view.ViewGroup;
-
import androidx.annotation.ColorInt;
import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-
-import com.peacedesign.android.widget.list.base.BaseListAdapter;
-import com.peacedesign.android.widget.list.base.BaseListItem;
+import static android.content.DialogInterface.BUTTON_NEGATIVE;
+import static android.content.DialogInterface.BUTTON_NEUTRAL;
+import static android.content.DialogInterface.BUTTON_POSITIVE;
+import static android.content.DialogInterface.OnDismissListener;
+import static android.content.DialogInterface.OnKeyListener;
class PeaceDialogParams {
@SuppressLint("UnknownNullness")
diff --git a/peacedesign/src/main/java/com/peacedesign/android/widget/sheet/PeaceBottomSheet.java b/peacedesign/src/main/java/com/peacedesign/android/widget/sheet/PeaceBottomSheet.java
deleted file mode 100644
index adcf272f..00000000
--- a/peacedesign/src/main/java/com/peacedesign/android/widget/sheet/PeaceBottomSheet.java
+++ /dev/null
@@ -1,488 +0,0 @@
-package com.peacedesign.android.widget.sheet;
-
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
-
-import android.annotation.SuppressLint;
-import android.app.Dialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.text.TextUtils;
-import android.view.ContextThemeWrapper;
-import android.view.Gravity;
-import android.view.KeyEvent;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.Window;
-import android.view.inputmethod.InputMethodManager;
-import android.widget.LinearLayout;
-import android.widget.LinearLayout.LayoutParams;
-
-import androidx.annotation.FloatRange;
-import androidx.annotation.LayoutRes;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.annotation.StringRes;
-import androidx.appcompat.widget.AppCompatImageView;
-import androidx.appcompat.widget.AppCompatTextView;
-import androidx.core.content.ContextCompat;
-import androidx.fragment.app.DialogFragment;
-import androidx.fragment.app.FragmentManager;
-
-import com.google.android.material.bottomsheet.BottomSheetBehavior;
-import com.google.android.material.bottomsheet.BottomSheetBehavior.State;
-import com.google.android.material.bottomsheet.BottomSheetDialog;
-import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
-import com.peacedesign.R;
-import com.peacedesign.android.utils.Dimen;
-import com.peacedesign.android.utils.DrawableUtils;
-import com.peacedesign.android.utils.ResUtils;
-import com.peacedesign.android.utils.ViewUtils;
-import com.peacedesign.android.utils.WindowUtils;
-
-import java.io.Serializable;
-
-public class PeaceBottomSheet extends BottomSheetDialogFragment {
- private PeaceBottomSheetParams P;
- private OnPeaceBottomSheetShowListener mOnPeaceBottomSheetShowListener;
- private OnPeaceBottomSheetDismissListener mOnPeaceBottomSheetDismissListener;
- private LinearLayout mDialogLayout;
-
- public PeaceBottomSheet() {
- P = new PeaceBottomSheetParams();
- }
-
- @Override
- public void onSaveInstanceState(@NonNull Bundle outState) {
- super.onSaveInstanceState(outState);
- outState.putSerializable("params", P);
- }
-
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- setStyle(DialogFragment.STYLE_NORMAL, R.style.PeaceBottomSheetTheme);
- if (savedInstanceState != null) {
- P = (PeaceBottomSheetParams) savedInstanceState.getSerializable("params");
- }
-
- super.onCreate(savedInstanceState);
- if (P.sheetBGColor == -1) {
- P.sheetBGColor = ContextCompat.getColor(getContext(), R.color.colorBackgroundSheetDialog);
- }
- }
-
- @NonNull
- @Override
- public PeaceBottomSheetDialog onCreateDialog(@Nullable Bundle savedInstanceState) {
- return new PeaceBottomSheetDialog(getContext(), getTheme(), P);
- }
-
- protected View prepareDialogLayout(Context context, PeaceBottomSheetParams params) {
- mDialogLayout = new LinearLayout(context);
- mDialogLayout.setOrientation(LinearLayout.VERTICAL);
-
- setupHeader(mDialogLayout, params);
- setupContentView(mDialogLayout, params);
-
- return mDialogLayout;
- }
-
- private void resolveTitle() {
- if (P.headerTitle == null) {
- P.headerTitle = getContext().getString(P.headerTitleResource);
- }
- }
-
- protected void setupHeader(ViewGroup dialogLayout, PeaceBottomSheetParams params) {
- if (!P.headerShown) {
- return;
- }
-
- resolveTitle();
- final boolean hasTitle = !TextUtils.isEmpty(params.headerTitle);
- if (!hasTitle && params.disableDragging) {
- return;
- }
-
- LinearLayout headerView = createHeaderView(dialogLayout);
-
- prepareDragIcon(headerView, params);
- prepareTitleView(headerView, params, false);
-
- if (hasTitle) {
- headerView.setBackground(getHeaderBG(dialogLayout.getContext()));
- }
- }
-
- private Drawable getHeaderBG(Context context) {
- return ContextCompat.getDrawable(context, R.drawable.dr_bg_sheet_dialog_header);
- }
-
- protected void prepareDragIcon(LinearLayout container, PeaceBottomSheetParams params) {
- if (params.disableDragging) {
- return;
- }
-
- AppCompatImageView dragIcon = new AppCompatImageView(container.getContext());
- dragIcon.setId(R.id.dragIcon);
- dragIcon.setImageResource(R.drawable.dr_icon_drag);
-
- LayoutParams lp = new LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
- lp.topMargin = Dimen.dp2px(container.getContext(), 10);
- container.addView(dragIcon, 0, lp);
- }
-
- protected void prepareTitleView(@NonNull LinearLayout container, PeaceBottomSheetParams params, boolean isUpdating) {
- boolean hasTitle = !TextUtils.isEmpty(params.headerTitle);
- if (!isUpdating && !hasTitle) {
- return;
- }
-
- AppCompatTextView titleView = container.findViewById(R.id.title);
- if (hasTitle && titleView == null) {
- titleView = new AppCompatTextView(new ContextThemeWrapper(container.getContext(), resolveTitleThemeId()));
- titleView.setId(R.id.title);
- container.addView(titleView);
- }
-
- if (titleView != null) {
- titleView.setText(params.headerTitle);
- titleView.setVisibility(hasTitle ? View.VISIBLE : View.GONE);
- }
- }
-
- public void updateHeaderTitle() {
- if (mDialogLayout == null) {
- return;
- }
-
- resolveTitle();
- final boolean hasTitle = !TextUtils.isEmpty(P.headerTitle);
-
- LinearLayout headerView = mDialogLayout.findViewById(R.id.peaceBottomSheetHeaderView);
- if (hasTitle && headerView == null) {
- headerView = createHeaderView(mDialogLayout);
- }
-
- if (headerView != null) {
- prepareTitleView(headerView, P, true);
- headerView.setBackground(hasTitle ? getHeaderBG(mDialogLayout.getContext()) : null);
- }
- }
-
- private LinearLayout createHeaderView(ViewGroup dialogLayout) {
- LinearLayout headerView = new LinearLayout(dialogLayout.getContext());
- headerView.setId(R.id.peaceBottomSheetHeaderView);
- headerView.setOrientation(LinearLayout.VERTICAL);
- headerView.setGravity(Gravity.CENTER);
- dialogLayout.addView(headerView, 0);
- return headerView;
- }
-
- protected int resolveTitleThemeId() {
- return R.style.PeaceBottomSheetTitleStyle;
- }
-
- protected void setupContentView(@NonNull LinearLayout dialogLayout, PeaceBottomSheetParams params) {
- if (params.mContentView == null) {
- if (params.mContentViewResId != 0) {
- params.mContentView = LayoutInflater.from(getContext()).inflate(params.mContentViewResId, dialogLayout, false);
- }
- }
-
- if (params.mContentView != null) {
- ViewUtils.removeView(params.mContentView);
- dialogLayout.addView(params.mContentView);
- }
-
- if (!params.headerShown && params.mContentView != null) {
- View closeBtn = params.mContentView.findViewById(R.id.close);
- if (closeBtn != null) {
- closeBtn.setOnClickListener(v -> dismiss());
- }
- }
- }
-
- @SuppressLint("RestrictedApi")
- @Override
- public void setupDialog(@NonNull Dialog dialog, int style) {
- super.setupDialog(dialog, style);
- setupDialogInternal(dialog, style, P);
- }
-
- protected void setupDialogInternal(Dialog dialog, int style, PeaceBottomSheetParams params) {
- View dialogLayout = prepareDialogLayout(getContext(), params);
- dialog.setContentView(dialogLayout);
-
- setupDialogStyles(dialog, dialogLayout, params);
- }
-
- protected void setupDialogStyles(Dialog dialog, View dialogLayout, PeaceBottomSheetParams P) {
- Window window = dialog.getWindow();
- window.getDecorView().setClipToOutline(true);
-
- dialogLayout.setClipToOutline(true);
- ((ViewGroup) dialogLayout).setClipChildren(true);
-
- ViewGroup dialogModal = (ViewGroup) dialogLayout.getParent();
- dialogModal.setClipToOutline(true);
- dialogModal.setClipChildren(true);
-
- setupFullHeight(dialogModal);
- if (!P.supportsRoundedCorners) {
- setupModalBackground(dialogModal, false);
- }
-
- BottomSheetBehavior bottomSheetBehavior = BottomSheetBehavior.from(dialogModal);
- bottomSheetBehavior.setHideable(P.cancellable && !P.hideOnSwipe);
- bottomSheetBehavior.setDraggable(P.cancellable && !P.disableDragging);
- bottomSheetBehavior.setState(P.initialBehaviorState);
- if (WindowUtils.isLandscapeMode(getContext())) {
- bottomSheetBehavior.setSkipCollapsed(true);
- }
- bottomSheetBehavior.addBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
- @Override
- public void onStateChanged(@NonNull View bottomSheet, int newState) {
- setupDialogOnStateChange(dialog, dialogModal, newState);
-
- View focus = dialog.getCurrentFocus();
- if (focus != null) {
- InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
- imm.hideSoftInputFromWindow(focus.getWindowToken(), 0);
- }
- }
-
- @Override
- public void onSlide(@NonNull View bottomSheet, float slideOffset) {
- /*if (slideOffset <= 0) {
- float mult = 1 + slideOffset;
- window.setDimAmount(P.windowDimAmount * mult);
- }*/
- }
- });
-
- dialog.setOnKeyListener((dialogInterface, keyCode, event) -> onKey((BottomSheetDialog) dialogInterface, keyCode, event));
- dialog.setOnShowListener(dialogInterface -> {
- if (mOnPeaceBottomSheetShowListener != null) mOnPeaceBottomSheetShowListener.onShow();
- setupDialogOnStateChange(dialog, dialogModal, P.initialBehaviorState);
- });
-
- dialogModal.addOnLayoutChangeListener((v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> {
- setupDialogOnStateChange(dialog, dialogModal, bottomSheetBehavior.getState());
- });
- }
-
- protected boolean onKey(@NonNull BottomSheetDialog dialog, int keyCode, @NonNull KeyEvent event) {
- return false;
- }
-
- private void setupFullHeight(View modal) {
- if (P.fullHeight) {
- ViewGroup.LayoutParams params = modal.getLayoutParams();
- params.height = MATCH_PARENT;
- modal.setLayoutParams(params);
- }
- }
-
- private void setupModalBackground(View modal, boolean isOnFullHeight) {
- float[] radii = null;
-
- if (P.supportsRoundedCorners) {
- boolean cornerFlag = P.resetRoundedCornersOnFullHeight && isOnFullHeight;
- if (!cornerFlag) {
- radii = Dimen.createRadiiForBGInDP(getContext(), 15, 15, 0, 0);
- }
- }
-
- Drawable background = DrawableUtils.createBackground(P.sheetBGColor, radii);
- modal.setBackground(background);
- }
-
- private void setupDialogOnStateChange(Dialog dialog, View dialogModal, int newState) {
- boolean isExpanded = newState == BottomSheetBehavior.STATE_EXPANDED;
- boolean isHeightFilled = dialogModal.getHeight() >= (Dimen.getWindowHeight(getContext()) - 10);
- boolean isOnFullHeight = isExpanded && isHeightFilled;
-
- setupModalBackground(dialogModal, isOnFullHeight);
-
- if (!P.resetRoundedCornersOnFullHeight) {
- return;
- }
-
- Window window = dialog.getWindow();
- window.setDimAmount(isOnFullHeight ? 0 : P.windowDimAmount);
- window.setStatusBarColor(isOnFullHeight ? P.sheetBGColor : 0);
-
- if (!WindowUtils.isNightMode(getContext())) {
- if (isOnFullHeight) {
- WindowUtils.setLightStatusBar(window);
- } else {
- WindowUtils.clearLightStatusBar(window);
- }
- }
- }
-
- public final void show(@NonNull FragmentManager fragmentManager) {
- show(fragmentManager, getClass().getSimpleName());
- }
-
- public void setContentView(@NonNull View contentView) {
- P.mContentView = contentView;
- }
-
- public void setContentView(@LayoutRes int layoutId) {
- P.mContentViewResId = layoutId;
- }
-
- public void setHeaderTitle(CharSequence title) {
- P.headerTitle = title;
- }
-
- public void setHeaderTitle(@StringRes int titleRes) {
- P.headerTitleResource = titleRes;
- }
-
- @Override
- public void setCancelable(boolean cancelable) {
- super.setCancelable(cancelable);
- P.cancellable = cancelable;
- }
-
- public void disableDragging(boolean flag) {
- P.disableDragging = flag;
- }
-
- public void setHideOnSwipe(boolean flag) {
- P.hideOnSwipe = flag;
- }
-
- public void disableOutsideTouch(boolean flag) {
- P.disableOutsideTouch = flag;
- }
-
- public void disableBackKey(boolean flag) {
- P.disableBackKey = flag;
- }
-
- public void setInitialBehaviorState(@State int state) {
- P.initialBehaviorState = state;
- }
-
- public void setFullHeight(boolean flag) {
- P.fullHeight = flag;
- }
-
- public void setHeaderShown(boolean shown) {
- P.headerShown = shown;
- }
-
- @NonNull
- public PeaceBottomSheetParams getDialogParams() {
- return P;
- }
-
- public void applyParams(@NonNull PeaceBottomSheetParams params) {
- P = params;
- }
-
- public void setOnShowListener(@NonNull OnPeaceBottomSheetShowListener listener) {
- mOnPeaceBottomSheetShowListener = listener;
- }
-
- public void setOnDismissListener(@NonNull OnPeaceBottomSheetDismissListener listener) {
- mOnPeaceBottomSheetDismissListener = listener;
- }
-
- public LinearLayout getDialogLayout() {
- return mDialogLayout;
- }
-
- @NonNull
- @Override
- public Context getContext() {
- //noinspection ConstantConditions
- return super.getContext();
- }
-
- public int getSheetBGColor() {
- return P.sheetBGColor;
- }
-
- @Override
- public void onDismiss(@NonNull DialogInterface dialog) {
- super.onDismiss(dialog);
- if (mOnPeaceBottomSheetDismissListener != null) mOnPeaceBottomSheetDismissListener.onDismissed();
- }
-
- public boolean isShowing() {
- return isAdded();
- }
-
- @Override
- public void dismiss() {
- try {
- super.dismiss();
- } catch (Exception ignored) {}
- }
-
- public interface OnPeaceBottomSheetShowListener {
- void onShow();
- }
-
- public interface OnPeaceBottomSheetDismissListener {
- void onDismissed();
- }
-
- public static class PeaceBottomSheetParams implements Serializable {
- public boolean disableDragging;
- public boolean hideOnSwipe;
- public boolean disableOutsideTouch;
- public boolean cancellable = true;
- public boolean disableBackKey;
- public boolean supportsRoundedCorners = true;
- public boolean resetRoundedCornersOnFullHeight = true;
- public boolean supportsOverlayBackground = true;
- public boolean supportsAnimations = true;
- public boolean supportsEnterAnimation = true;
- public boolean supportsExitAnimation = true;
- public boolean fullHeight;
- public boolean headerShown = true;
- public int sheetBGColor = -1;
- @FloatRange(from = 0f, to = 1f)
- public float windowDimAmount = 0.6f;
- @State
- public int initialBehaviorState = BottomSheetBehavior.STATE_EXPANDED;
- @Nullable
- public CharSequence headerTitle;
- @StringRes
- public int headerTitleResource;
- @Nullable
- protected transient View mContentView;
- @LayoutRes
- protected int mContentViewResId;
-
- public boolean supportsNoAnimation() {
- return !supportsAnimations || (!supportsEnterAnimation && !supportsExitAnimation);
- }
-
- public boolean supportsEnterAnimationOnly() {
- return supportsAnimations && supportsEnterAnimation && !supportsExitAnimation;
- }
-
- public boolean supportsExitAnimationOnly() {
- return supportsAnimations && !supportsEnterAnimation && supportsExitAnimation;
- }
-
-
- public void setContentView(@LayoutRes int viewResId) {
- mContentViewResId = viewResId;
- }
-
- public void setContentView(@NonNull View contentView) {
- mContentView = contentView;
- }
- }
-}