diff --git a/build.gradle b/build.gradle
index 52901b9b3..57bb5687d 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,7 +8,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:7.4.2'
+ classpath 'com.android.tools.build:gradle:8.0.2'
classpath 'com.google.gms:google-services:3.2.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
diff --git a/core/build.gradle b/core/build.gradle
index 1a9324084..bdbf9e84b 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -6,6 +6,7 @@ apply plugin: 'kotlin-parcelize'
android {
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
+ namespace 'in.testpress'
defaultConfig {
minSdkVersion rootProject.minSdkVersion
@@ -40,12 +41,12 @@ android {
}
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
+ sourceCompatibility JavaVersion.VERSION_17
+ targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
- jvmTarget = JavaVersion.VERSION_1_8.toString()
+ jvmTarget = JavaVersion.VERSION_17.toString()
}
packagingOptions {
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index ecf79e5d7..dc4e4cac7 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -75,4 +75,275 @@
in %d %ss
+
+ Testpress Exam Sdk
+ Exams
+
+ Course
+ Questions
+ attempt
+ attempts
+ to
+
+ Retry Again
+
+ Exam is paused, Please check your internet connection & resume again.
+ Exam is paused, Please check your internet connection & try again.
+ Try again
+
+ You do not have permission to attempt this exam.
+ Loading questions
+ No Exams
+ You can buy exams from the store.
+ No Attempts
+ To review, start and complete your exams.
+ Loading exams failed
+ Loading exam failed
+ Loading permission failed
+ Loading languages failed
+ Loading attempts failed
+ Loading questions failed
+ Loading bookmarks failed
+ Can\'t attempt this exam
+ No Questions
+ There are no questions to review.
+ No Categories
+ We\'ll be adding new categories here soon.\nCheck back later. Thanks!
+ Loading categories failed
+ Exam not available
+ This is no longer available or not published yet.
+ Exam is paused, click resume to continue
+ You navigated away from the app, so the attempt has ended because resume is disabled for this exam.
+
+
+ Analytics
+ Loading analytics failed
+ No Analytics Data
+ This exam doesn\'t contain any subjects.
+ To review the Analytics, start and complete your exams.
+
+ Available
+ Upcoming
+ History
+
+ Stats
+ All
+ Correct
+ Incorrect
+ Unanswered
+ Marked for Review
+
+ PAUSE
+ RESUME EXAM ONLINE
+ RESUME
+ RETAKE EXAM ONLINE
+ RETAKE
+ REVIEW
+ Retake Exam
+ Start Exam
+ Resume Exam
+ End Exam
+ Not Now
+ NEXT
+ PREV
+ PAUSED
+ END
+ Yes, Pause!
+ Are you sure? Want to Pause the exam & resume later before the end date.
+ Exit Exam?
+ You can pause the exam & resume later before the end date.
+
+ Email MCQs
+
+ Mail PDF
+ PDF will be mailed to your email address. Click OK to confirm.
+ Initiating PDF mail
+ PDF Request Complete
+ Your PDF request has been initiated. Please wait while your PDF is generated and mailed to you.
+ PDF Request Error
+ There was an error in generating your PDF.
+
+ All the best!
+ This exam has ended
+ Number of Questions
+ Duration
+ Mark per question
+ Negative marks
+ Start & End date
+ Select Language
+ Select Subject
+ Description
+ QUESTIONS LIST
+
+ Your score
+ correct
+ Percentile
+ incorrect
+ Time Remaining
+
+ Question
+ Review Later
+ Uncategorized
+ Attempted on
+ Started on
+
+ Show Passage
+ Hide Passage
+
+ Test Report
+ Rank
+ Score
+ Total correct
+ Total Incorrect
+ Total Unanswered
+ Time Taken
+ Speed
+ Accuracy
+ Your Answer:
+ Correct Answer:
+ Marks Awarded:
+ Explanation:
+ Subject:
+ Review
+ Resume
+ Your percentile is
+ \u0020of users scored less than your score of\u0020
+
+ Search
+ Search…
+ Sorry, No results found
+ Please try with some other keywords
+ Opps! Your device doesn\'t support Speech to Text
+
+ Grid
+ List
+
+ Date
+ Action
+ Trophies
+
+ Solutions
+ Time Analytics
+
+ Web Only Exam
+ This exam can only be attempted on the website.
+ You can attempt this exam only after \n%1$s
+ You need to get good scores in the previous tests to attempt this test.
+
+ Strength
+ Weakness
+
+ Strength / Correct
+ Weakness / Incorrect
+
+ Individual Reports
+ Overall Reports
+ Subject
+
+ No questions added to this exam till now, Please check back later or contact administrator
+
+ Comments
+ Write a comment…
+ Load previous comments
+ Load new comments
+ Load comments
+ Comment posted successfully
+ Be the first to post a comment
+
+ Tap to view a new comment
+ Tap to view %d new comments
+
+
+ Test completed!\nYou’ve earned
+ Okay
+
+ Continue
+ Time Analytics
+ Incorrect
+ Correct
+ Unanswered
+ Answer Type
+ Filter by Subject
+ Sort by Time
+ users answered right
+ QUESTIONS
+ TOTAL MARKS
+ TOTAL TIME
+ CUTOFF
+
+ This exam has ended
+
+ Access Code
+ Enter Access Code
+ Get Exams
+ Invalid Access Code
+
+ Bookmark
+ Bookmarks
+ Bookmark this
+ Remove Bookmark
+ Move Bookmark
+ Remove
+ Add Folder
+ Enter Folder Name
+ Bookmarks List
+ No bookmarks added yet
+ You can bookmark stuff like Questions, Articles, Videos and Files you see in the courses you’ve opted for.
+ Bookmark moved successfully
+ Bookmark deleted successfully
+ Rename Folder
+ Update
+ Delete
+ Folder updated successfully
+ Folder deleted successfully
+ Folder name not allowed
+ Undo
+ Do you want to delete this folder?
+
+ Previous
+
+ Download Attachment
+
+ Saving your last change
+ Ending current section
+ Starting next section
+ Loading \"%s\" questions
+ Ending exam
+ Can\'t Switch Section!
+ Section is locked. Switching section is not allowed.
+ You have already submitted this section.
+ Switch Section?
+ Are you sure want to move to the next section? You won\'t be able to switch back to this section.
+ You need to attempt sections in order.
+ End current section
+
+ Before you proceed, please be aware:\n\nDO NOT CLOSE THIS APP: Once you begin your exam, if you close or navigate away from this app, you will NOT be able to resume your attempt.\n\nRESUME IS DISABLED: The admin has disabled the resume feature for this exam. Once closed, your attempt will be permanently ended.\n\nEnsure you are ready to take the exam without interruptions. Double-check your internet connection and make sure your device has sufficient power.
+
+ "IMPORTANT NOTICE!"
+
+ Before you proceed, please be aware:\n\nWINDOW MONITORING IS ENABLED: This exam monitors if you leave the app.\n\nDO NOT SWITCH APPS: If you minimize this app or switch to another app more than 2 times, your exam will be automatically ended.\n\nStay focused in the exam screen to avoid violations and complete your attempt without interruption.
+
+ Before you proceed, please be aware:\n\nRESUME IS DISABLED: The admin has disabled the resume feature for this exam. Once you begin, if you close or navigate away from this app, you will NOT be able to resume your attempt. Your attempt will be permanently ended.\n\nWINDOW MONITORING IS ENABLED: This exam monitors if you leave the app. Minimizing this app or switching to another app more than 2 times will automatically end your exam.\n\nEnsure you are ready to take the exam without any interruptions. Double-check your internet connection, silence notifications, and make sure your device has sufficient power.
+ Window Switch Detected
+ You switched apps %1$d time(s). Switching apps more than %2$d times will end the exam.
+ Violation Detected: You have exceeded the maximum allowed interruptions during the assessment.\n\nThe system has recorded multiple interruptions, which may be caused by one or more of the following:\n1) Minimizing the app or switching to another app.\n2) Pressing restricted keys or attempting to access system features.\n3) Trying to leave the assessment screen.\n\nYour exam will now be ended permanently.\n\nYou will not be able to resume this attempt. Please contact your administrator if you believe this was a mistake.
+ Retake with?
+
+ All Questions
+ Wrong Questions
+
+ You can retake this exam %s. Meanwhile review your previous attempt.
+
+ Share
+ Share Screenshot
+ No App Available
+ Do check out this question from %1$s. Get it at %2$s
+ Share this app to your friends twice to unlock explanations
+
+ Advanced Analytics
+
+ Rank will be published %s
+ The photos and videos permission is required to upload files.
+ PDF Preview
+
diff --git a/course/build.gradle b/course/build.gradle
index 404e7efd1..5e172dc6d 100644
--- a/course/build.gradle
+++ b/course/build.gradle
@@ -4,6 +4,7 @@ apply plugin: 'kotlin-android'
android {
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
+ namespace 'in.testpress.course'
defaultConfig {
minSdkVersion rootProject.minSdkVersion
@@ -26,11 +27,11 @@ android {
unitTests.includeAndroidResources = true
}
compileOptions {
- sourceCompatibility 1.8
- targetCompatibility 1.8
+ sourceCompatibility JavaVersion.VERSION_17
+ targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
- jvmTarget = JavaVersion.VERSION_1_8.toString()
+ jvmTarget = JavaVersion.VERSION_17.toString()
}
buildFeatures {
viewBinding true
diff --git a/course/src/main/java/in/testpress/course/fragments/LiveStreamFragment.kt b/course/src/main/java/in/testpress/course/fragments/LiveStreamFragment.kt
index 0363fb4d1..b38cba369 100644
--- a/course/src/main/java/in/testpress/course/fragments/LiveStreamFragment.kt
+++ b/course/src/main/java/in/testpress/course/fragments/LiveStreamFragment.kt
@@ -88,7 +88,7 @@ class LiveStreamFragment : BaseContentDetailFragment(), LiveStreamCallbackListen
exoPlayerView = view!!.findViewById(R.id.exo_player_main_frame)
exoPlayerView.visibility = View.VISIBLE
exoPlayerView.setAspectRatio(16f / 9f)
- exoPlayerView.findViewById(R.id.exo_duration).visibility = View.GONE
+ //exoPlayerView.findViewById(R.id.exo_duration).visibility = View.GONE
exoPlayerView.findViewById(R.id.live_label).visibility = View.VISIBLE
}
diff --git a/course/src/main/java/in/testpress/course/ui/VideoDownloadQualityChooserDialog.kt b/course/src/main/java/in/testpress/course/ui/VideoDownloadQualityChooserDialog.kt
index 532d9b751..c76c52aee 100644
--- a/course/src/main/java/in/testpress/course/ui/VideoDownloadQualityChooserDialog.kt
+++ b/course/src/main/java/in/testpress/course/ui/VideoDownloadQualityChooserDialog.kt
@@ -61,7 +61,7 @@ class VideoDownloadQualityChooserDialog(val content: DomainContent) : DialogFrag
}
private fun initializeTrackSelectionView(view: View) {
- trackSelectionView = view.findViewById(R.id.exo_track_selection_view)
+ trackSelectionView = view.findViewById(com.google.android.exoplayer2.ui.R.id.exo_track_selection_view)
trackSelectionView.setShowDisableOption(false)
trackSelectionView.setAllowAdaptiveSelections(false)
trackSelectionView.setAllowMultipleOverrides(false)
diff --git a/course/src/main/java/in/testpress/course/util/TrackSelectionDialog.kt b/course/src/main/java/in/testpress/course/util/TrackSelectionDialog.kt
index 821faff49..6713274ad 100644
--- a/course/src/main/java/in/testpress/course/util/TrackSelectionDialog.kt
+++ b/course/src/main/java/in/testpress/course/util/TrackSelectionDialog.kt
@@ -1,6 +1,6 @@
package `in`.testpress.course.util
-import `in`.testpress.course.R
+
import `in`.testpress.course.databinding.LayoutDocumentViewerBinding
import `in`.testpress.course.databinding.TrackSelectionDialogBinding
import android.app.Dialog
@@ -15,6 +15,7 @@ import com.google.android.exoplayer2.C
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector
import com.google.android.exoplayer2.trackselection.MappingTrackSelector
import com.google.android.exoplayer2.ui.TrackSelectionView
+import `in`.testpress.course.R
open class TrackSelectionDialog(
private val parameters: DefaultTrackSelector.Parameters,
@@ -68,7 +69,7 @@ open class TrackSelectionDialog(
}
private fun initializeTrackSelectionView(view: View) {
- trackSelectionView = view.findViewById(R.id.exo_track_selection_view)
+ trackSelectionView = view.findViewById(com.google.android.exoplayer2.ui.R.id.exo_track_selection_view)
trackSelectionView.setShowDisableOption(false)
trackSelectionView.setAllowAdaptiveSelections(allowAdaptiveSelections)
trackSelectionView.setAllowMultipleOverrides(false)
diff --git a/course/src/main/res/drawable/crown.png b/course/src/main/res/drawable/crown.png
new file mode 100644
index 000000000..d6c9a5afb
Binary files /dev/null and b/course/src/main/res/drawable/crown.png differ
diff --git a/course/src/main/res/drawable/ic_bookmark.png b/course/src/main/res/drawable/ic_bookmark.png
new file mode 100755
index 000000000..a2db8a4e8
Binary files /dev/null and b/course/src/main/res/drawable/ic_bookmark.png differ
diff --git a/course/src/main/res/drawable/ic_error_outline_black_18dp.png b/course/src/main/res/drawable/ic_error_outline_black_18dp.png
new file mode 100644
index 000000000..1c9095995
Binary files /dev/null and b/course/src/main/res/drawable/ic_error_outline_black_18dp.png differ
diff --git a/course/src/main/res/drawable/ic_file_download_18dp.png b/course/src/main/res/drawable/ic_file_download_18dp.png
new file mode 100755
index 000000000..ea535541a
Binary files /dev/null and b/course/src/main/res/drawable/ic_file_download_18dp.png differ
diff --git a/course/src/main/res/drawable/ic_remove_bookmark.png b/course/src/main/res/drawable/ic_remove_bookmark.png
new file mode 100755
index 000000000..d5c50d58b
Binary files /dev/null and b/course/src/main/res/drawable/ic_remove_bookmark.png differ
diff --git a/course/src/main/res/drawable/testpress_alert_warning.png b/course/src/main/res/drawable/testpress_alert_warning.png
new file mode 100644
index 000000000..fd27c655a
Binary files /dev/null and b/course/src/main/res/drawable/testpress_alert_warning.png differ
diff --git a/course/src/main/res/drawable/testpress_attachment_content_icon.png b/course/src/main/res/drawable/testpress_attachment_content_icon.png
new file mode 100755
index 000000000..ee7a91b36
Binary files /dev/null and b/course/src/main/res/drawable/testpress_attachment_content_icon.png differ
diff --git a/course/src/main/res/drawable/testpress_bookmark_flat_icon.png b/course/src/main/res/drawable/testpress_bookmark_flat_icon.png
new file mode 100644
index 000000000..762bc64b4
Binary files /dev/null and b/course/src/main/res/drawable/testpress_bookmark_flat_icon.png differ
diff --git a/course/src/main/res/drawable/testpress_difficulty_left_off.xml b/course/src/main/res/drawable/testpress_difficulty_left_off.xml
new file mode 100644
index 000000000..72d5e0352
--- /dev/null
+++ b/course/src/main/res/drawable/testpress_difficulty_left_off.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/drawable/testpress_difficulty_left_on.xml b/course/src/main/res/drawable/testpress_difficulty_left_on.xml
new file mode 100644
index 000000000..a71653339
--- /dev/null
+++ b/course/src/main/res/drawable/testpress_difficulty_left_on.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/drawable/testpress_difficulty_right_off.xml b/course/src/main/res/drawable/testpress_difficulty_right_off.xml
new file mode 100644
index 000000000..6a119e91a
--- /dev/null
+++ b/course/src/main/res/drawable/testpress_difficulty_right_off.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/drawable/testpress_difficulty_right_on.xml b/course/src/main/res/drawable/testpress_difficulty_right_on.xml
new file mode 100644
index 000000000..f2de61028
--- /dev/null
+++ b/course/src/main/res/drawable/testpress_difficulty_right_on.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/drawable/testpress_ebook_content_icon.png b/course/src/main/res/drawable/testpress_ebook_content_icon.png
new file mode 100644
index 000000000..92ebdb055
Binary files /dev/null and b/course/src/main/res/drawable/testpress_ebook_content_icon.png differ
diff --git a/course/src/main/res/drawable/testpress_exam_icon.png b/course/src/main/res/drawable/testpress_exam_icon.png
new file mode 100644
index 000000000..30d2207c9
Binary files /dev/null and b/course/src/main/res/drawable/testpress_exam_icon.png differ
diff --git a/course/src/main/res/drawable/testpress_no_wifi.png b/course/src/main/res/drawable/testpress_no_wifi.png
new file mode 100644
index 000000000..07ae9b12c
Binary files /dev/null and b/course/src/main/res/drawable/testpress_no_wifi.png differ
diff --git a/course/src/main/res/drawable/testpress_profile_image_place_holder.png b/course/src/main/res/drawable/testpress_profile_image_place_holder.png
new file mode 100644
index 000000000..bfe9b369e
Binary files /dev/null and b/course/src/main/res/drawable/testpress_profile_image_place_holder.png differ
diff --git a/course/src/main/res/drawable/testpress_question_content_icon.png b/course/src/main/res/drawable/testpress_question_content_icon.png
new file mode 100644
index 000000000..81ea06bf1
Binary files /dev/null and b/course/src/main/res/drawable/testpress_question_content_icon.png differ
diff --git a/course/src/main/res/drawable/testpress_video_content_icon.png b/course/src/main/res/drawable/testpress_video_content_icon.png
new file mode 100755
index 000000000..01241dfe4
Binary files /dev/null and b/course/src/main/res/drawable/testpress_video_content_icon.png differ
diff --git a/course/src/main/res/layout/base_list_layout.xml b/course/src/main/res/layout/base_list_layout.xml
new file mode 100644
index 000000000..77462ad9b
--- /dev/null
+++ b/course/src/main/res/layout/base_list_layout.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/content_list_item.xml b/course/src/main/res/layout/content_list_item.xml
new file mode 100644
index 000000000..df574c77a
--- /dev/null
+++ b/course/src/main/res/layout/content_list_item.xml
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/course/src/main/res/layout/course_preview_layout.xml b/course/src/main/res/layout/course_preview_layout.xml
new file mode 100644
index 000000000..c30ec213c
--- /dev/null
+++ b/course/src/main/res/layout/course_preview_layout.xml
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/exam_content_list_item.xml b/course/src/main/res/layout/exam_content_list_item.xml
new file mode 100644
index 000000000..0afd97d67
--- /dev/null
+++ b/course/src/main/res/layout/exam_content_list_item.xml
@@ -0,0 +1,231 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/course/src/main/res/layout/quiz_question_layout.xml b/course/src/main/res/layout/quiz_question_layout.xml
new file mode 100644
index 000000000..2d04ab89d
--- /dev/null
+++ b/course/src/main/res/layout/quiz_question_layout.xml
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/testpress_actionbar_spinner.xml b/course/src/main/res/layout/testpress_actionbar_spinner.xml
new file mode 100644
index 000000000..80201fd17
--- /dev/null
+++ b/course/src/main/res/layout/testpress_actionbar_spinner.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
diff --git a/course/src/main/res/layout/testpress_attempt_list_header.xml b/course/src/main/res/layout/testpress_attempt_list_header.xml
new file mode 100644
index 000000000..333d92aea
--- /dev/null
+++ b/course/src/main/res/layout/testpress_attempt_list_header.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/testpress_attempt_list_item.xml b/course/src/main/res/layout/testpress_attempt_list_item.xml
new file mode 100644
index 000000000..7b1bcc6ae
--- /dev/null
+++ b/course/src/main/res/layout/testpress_attempt_list_item.xml
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/testpress_chapters_list_item.xml b/course/src/main/res/layout/testpress_chapters_list_item.xml
new file mode 100644
index 000000000..8393fd6c5
--- /dev/null
+++ b/course/src/main/res/layout/testpress_chapters_list_item.xml
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/testpress_container_layout.xml b/course/src/main/res/layout/testpress_container_layout.xml
new file mode 100644
index 000000000..bcbe1bd64
--- /dev/null
+++ b/course/src/main/res/layout/testpress_container_layout.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/testpress_content_list_item.xml b/course/src/main/res/layout/testpress_content_list_item.xml
new file mode 100644
index 000000000..9f9183399
--- /dev/null
+++ b/course/src/main/res/layout/testpress_content_list_item.xml
@@ -0,0 +1,232 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/testpress_edit_text_dialog_box.xml b/course/src/main/res/layout/testpress_edit_text_dialog_box.xml
new file mode 100644
index 000000000..bd2540385
--- /dev/null
+++ b/course/src/main/res/layout/testpress_edit_text_dialog_box.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/testpress_empty_view.xml b/course/src/main/res/layout/testpress_empty_view.xml
new file mode 100644
index 000000000..4badbb5e9
--- /dev/null
+++ b/course/src/main/res/layout/testpress_empty_view.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/testpress_empty_view_with_image.xml b/course/src/main/res/layout/testpress_empty_view_with_image.xml
new file mode 100644
index 000000000..4091c9f77
--- /dev/null
+++ b/course/src/main/res/layout/testpress_empty_view_with_image.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/testpress_exam_details_layout.xml b/course/src/main/res/layout/testpress_exam_details_layout.xml
new file mode 100644
index 000000000..dcf38a18d
--- /dev/null
+++ b/course/src/main/res/layout/testpress_exam_details_layout.xml
@@ -0,0 +1,240 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/testpress_fragment_carousel.xml b/course/src/main/res/layout/testpress_fragment_carousel.xml
new file mode 100644
index 000000000..d7698efbe
--- /dev/null
+++ b/course/src/main/res/layout/testpress_fragment_carousel.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/testpress_fragment_carousel_with_empty_view.xml b/course/src/main/res/layout/testpress_fragment_carousel_with_empty_view.xml
new file mode 100644
index 000000000..129114f79
--- /dev/null
+++ b/course/src/main/res/layout/testpress_fragment_carousel_with_empty_view.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/testpress_list.xml b/course/src/main/res/layout/testpress_list.xml
new file mode 100644
index 000000000..2550dc86e
--- /dev/null
+++ b/course/src/main/res/layout/testpress_list.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/testpress_loading_layout.xml b/course/src/main/res/layout/testpress_loading_layout.xml
new file mode 100644
index 000000000..7809372ff
--- /dev/null
+++ b/course/src/main/res/layout/testpress_loading_layout.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/testpress_loading_layout_small.xml b/course/src/main/res/layout/testpress_loading_layout_small.xml
new file mode 100644
index 000000000..e414022c8
--- /dev/null
+++ b/course/src/main/res/layout/testpress_loading_layout_small.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/testpress_lockable_spinner_item_dropdown.xml b/course/src/main/res/layout/testpress_lockable_spinner_item_dropdown.xml
new file mode 100644
index 000000000..50833ed45
--- /dev/null
+++ b/course/src/main/res/layout/testpress_lockable_spinner_item_dropdown.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/testpress_plain_spinner_item.xml b/course/src/main/res/layout/testpress_plain_spinner_item.xml
new file mode 100644
index 000000000..d36ee1608
--- /dev/null
+++ b/course/src/main/res/layout/testpress_plain_spinner_item.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/course/src/main/res/layout/video_content_list_item.xml b/course/src/main/res/layout/video_content_list_item.xml
new file mode 100644
index 000000000..a9fa6b1ef
--- /dev/null
+++ b/course/src/main/res/layout/video_content_list_item.xml
@@ -0,0 +1,218 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/course/src/main/res/values/color.xml b/course/src/main/res/values/color.xml
new file mode 100644
index 000000000..98b1c74f6
--- /dev/null
+++ b/course/src/main/res/values/color.xml
@@ -0,0 +1,20 @@
+
+
+ #e65c6c
+ #ff7519
+ #ffb319
+ #aacc00
+ #44cc00
+ #666666
+ #d9534f
+ #18be99
+ #333333
+ #777
+ #2196F3
+ #2196F3
+ #00ccaa
+ #E65C6C
+ #80b6dcfb
+
+ #e6e6e6
+
\ No newline at end of file
diff --git a/course/src/main/res/values/strings.xml b/course/src/main/res/values/strings.xml
index 484fa8787..b64a47d1c 100644
--- a/course/src/main/res/values/strings.xml
+++ b/course/src/main/res/values/strings.xml
@@ -128,5 +128,354 @@
A decoding error occurred. Please try again later.\n\n%1$s\n(Code: %2$d, ID: %3$s)An AudioTrack error occurred. Please try again later.\n\n%1$s\n(Code: %2$d, ID: %3$s)A DRM error occurred. Please try again later.\n\n%1$s\n(Code: %2$d, ID: %3$s)
+ Your Answer:
+ Correct Answer:
+ Explanation:
+ Network Error
+ Please check your internet connection & try again.
+ Loading questions failed
+ Some thing went wrong, please try again later.
+ Loading bookmarks failed
+ Marks Awarded:
+ Testpress Exam Sdk
+ Subject:
+ Bookmark moved successfully
+ Bookmark deleted successfully
+ Undo
+ Folder name not allowed
+
+
+
+ Please Wait…
+
+ Loading…
+
+ No internet connection
+ Tap to retry
+
+ Loading Failed
+ Authentication failed
+ Permission Denied
+ This content is scheduled!
+ Please login to see this exams
+ You do not have permission to view this.
+
+ This Video is locked!
+ You\'ve exhausted your views limit for this content. Contact your administrator for further information.
+
+ OK
+ Cancel
+
+ Filter
+ Vote casted successfully!
+ You can\'t vote for yourself!
+
+ *Please fill required details
+
+ Yes
+ No
+
+ Are you sure?
+
+ Deny
+ Permission Denied
+ Without this permission app is unable to do your intended action, Goto app settings -> Permissions -> Enable permission to continue.
+ Goto Settings
+ Action can\'t be done without permission
+ Last Used
+ IP Address
+ Logout Devices
+ Your account has been locked as it has exceeded maximum devices it can be used.
+ Your account will automatically get unlocked within
+ No devices found
+ Your session has been cleared. Please log out and login again.
+ Note : Admin has restricted login attempts to %d
+
+ Failed to load the PDF
+ Type message
+
+
+
+
+ All
+ My threads
+
+
+
+ All
+ Upvoted By me
+
+
+
+ All
+ Commented By me
+
+
+
+ in %d %s
+ in %d %ss
+
+
+
+
+ Exams
+
+ Course
+ Questions
+ attempt
+ attempts
+ to
+
+ Retry Again
+
+ Exam is paused, Please check your internet connection & resume again.
+ Exam is paused, Please check your internet connection & try again.
+ Try again
+
+ You do not have permission to attempt this exam.
+ Loading questions
+ No Exams
+ You can buy exams from the store.
+ No Attempts
+ To review, start and complete your exams.
+ Loading exams failed
+ Loading exam failed
+ Loading permission failed
+ Loading languages failed
+ Loading attempts failed
+
+ Can\'t attempt this exam
+ No Questions
+ There are no questions to review.
+ No Categories
+ We\'ll be adding new categories here soon.\nCheck back later. Thanks!
+ Loading categories failed
+ Exam not available
+ This is no longer available or not published yet.
+ Exam is paused, click resume to continue
+ You navigated away from the app, so the attempt has ended because resume is disabled for this exam.
+
+
+ Analytics
+ Loading analytics failed
+ No Analytics Data
+ This exam doesn\'t contain any subjects.
+ To review the Analytics, start and complete your exams.
+
+ Available
+ Upcoming
+ History
+
+ Stats
+ All
+ Correct
+ Incorrect
+ Unanswered
+ Marked for Review
+
+ PAUSE
+ RESUME EXAM ONLINE
+ RESUME
+ RETAKE EXAM ONLINE
+ RETAKE
+ REVIEW
+ Retake Exam
+ Start Exam
+ Resume Exam
+ End Exam
+ Not Now
+ NEXT
+ PREV
+ PAUSED
+ END
+ Yes, Pause!
+ Are you sure? Want to Pause the exam & resume later before the end date.
+ Exit Exam?
+ You can pause the exam & resume later before the end date.
+
+ Email MCQs
+
+ Mail PDF
+ PDF will be mailed to your email address. Click OK to confirm.
+ Initiating PDF mail
+ PDF Request Complete
+ Your PDF request has been initiated. Please wait while your PDF is generated and mailed to you.
+ PDF Request Error
+ There was an error in generating your PDF.
+
+ All the best!
+ This exam has ended
+ Number of Questions
+ Duration
+ Mark per question
+ Negative marks
+ Start & End date
+ Select Language
+ Select Subject
+ Description
+ QUESTIONS LIST
+
+ Your score
+ correct
+ Percentile
+ incorrect
+ Time Remaining
+
+ Question
+ Review Later
+ Uncategorized
+ Attempted on
+ Started on
+
+ Show Passage
+ Hide Passage
+
+ Test Report
+ Rank
+ Score
+ Total correct
+ Total Incorrect
+ Total Unanswered
+ Time Taken
+ Speed
+ Accuracy
+
+ Review
+ Resume
+ Your percentile is
+ \u0020of users scored less than your score of\u0020
+
+ Search
+ Search…
+ Sorry, No results found
+ Please try with some other keywords
+ Opps! Your device doesn\'t support Speech to Text
+
+ Grid
+ List
+
+ Date
+ Action
+ Trophies
+
+ Solutions
+ Time Analytics
+
+ Web Only Exam
+ This exam can only be attempted on the website.
+ You can attempt this exam only after \n%1$s
+ You need to get good scores in the previous tests to attempt this test.
+
+ Strength
+ Weakness
+
+ Strength / Correct
+ Weakness / Incorrect
+
+ Individual Reports
+ Overall Reports
+ Subject
+
+ No questions added to this exam till now, Please check back later or contact administrator
+
+ Comments
+ Write a comment…
+ Load previous comments
+ Load new comments
+ Load comments
+ Comment posted successfully
+ Be the first to post a comment
+
+ Tap to view a new comment
+ Tap to view %d new comments
+
+
+ Test completed!\nYou’ve earned
+ Okay
+
+ Continue
+ Time Analytics
+ Incorrect
+ Correct
+ Unanswered
+ Answer Type
+ Filter by Subject
+ Sort by Time
+ users answered right
+ QUESTIONS
+ TOTAL MARKS
+ TOTAL TIME
+ CUTOFF
+
+ This exam has ended
+
+ Access Code
+ Enter Access Code
+ Get Exams
+ Invalid Access Code
+
+ Bookmark
+ Bookmarks
+ Bookmark this
+ Remove Bookmark
+ Move Bookmark
+ Remove
+ Add Folder
+ Enter Folder Name
+ Bookmarks List
+ No bookmarks added yet
+ You can bookmark stuff like Questions, Articles, Videos and Files you see in the courses you’ve opted for.
+
+ Rename Folder
+ Update
+ Delete
+ Folder updated successfully
+ Folder deleted successfully
+
+ Do you want to delete this folder?
+
+
+
+ Saving your last change
+ Ending current section
+ Starting next section
+ Loading \"%s\" questions
+ Ending exam
+ Can\'t Switch Section!
+ Section is locked. Switching section is not allowed.
+ You have already submitted this section.
+ Switch Section?
+ Are you sure want to move to the next section? You won\'t be able to switch back to this section.
+ You need to attempt sections in order.
+ End current section
+
+ Before you proceed, please be aware:\n\nDO NOT CLOSE THIS APP: Once you begin your exam, if you close or navigate away from this app, you will NOT be able to resume your attempt.\n\nRESUME IS DISABLED: The admin has disabled the resume feature for this exam. Once closed, your attempt will be permanently ended.\n\nEnsure you are ready to take the exam without interruptions. Double-check your internet connection and make sure your device has sufficient power.
+
+ "IMPORTANT NOTICE!"
+
+ Before you proceed, please be aware:\n\nWINDOW MONITORING IS ENABLED: This exam monitors if you leave the app.\n\nDO NOT SWITCH APPS: If you minimize this app or switch to another app more than 2 times, your exam will be automatically ended.\n\nStay focused in the exam screen to avoid violations and complete your attempt without interruption.
+
+ Before you proceed, please be aware:\n\nRESUME IS DISABLED: The admin has disabled the resume feature for this exam. Once you begin, if you close or navigate away from this app, you will NOT be able to resume your attempt. Your attempt will be permanently ended.\n\nWINDOW MONITORING IS ENABLED: This exam monitors if you leave the app. Minimizing this app or switching to another app more than 2 times will automatically end your exam.\n\nEnsure you are ready to take the exam without any interruptions. Double-check your internet connection, silence notifications, and make sure your device has sufficient power.
+ Window Switch Detected
+ You switched apps %1$d time(s). Switching apps more than %2$d times will end the exam.
+ Violation Detected: You have exceeded the maximum allowed interruptions during the assessment.\n\nThe system has recorded multiple interruptions, which may be caused by one or more of the following:\n1) Minimizing the app or switching to another app.\n2) Pressing restricted keys or attempting to access system features.\n3) Trying to leave the assessment screen.\n\nYour exam will now be ended permanently.\n\nYou will not be able to resume this attempt. Please contact your administrator if you believe this was a mistake.
+ Retake with?
+
+ All Questions
+ Wrong Questions
+
+ You can retake this exam %s. Meanwhile review your previous attempt.
+
+ Share
+ Share Screenshot
+ No App Available
+ Do check out this question from %1$s. Get it at %2$s
+ Share this app to your friends twice to unlock explanations
+
+ Advanced Analytics
+
+ Rank will be published %s
+ The photos and videos permission is required to upload files.
+ PDF Preview
\ No newline at end of file
diff --git a/course/src/main/res/values/style.xml b/course/src/main/res/values/style.xml
index dc0b52641..f92e7968d 100644
--- a/course/src/main/res/values/style.xml
+++ b/course/src/main/res/values/style.xml
@@ -15,4 +15,10 @@
16dp?attr/selectableItemBackground
+
+
\ No newline at end of file
diff --git a/exam/build.gradle b/exam/build.gradle
index afff67415..06300ce04 100644
--- a/exam/build.gradle
+++ b/exam/build.gradle
@@ -4,6 +4,7 @@ apply plugin: 'kotlin-android'
android {
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
+ namespace 'in.testpress.exam'
defaultConfig {
minSdkVersion rootProject.minSdkVersion
@@ -25,8 +26,8 @@ android {
unitTests.includeAndroidResources = true
}
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
+ sourceCompatibility JavaVersion.VERSION_17
+ targetCompatibility JavaVersion.VERSION_17
}
buildFeatures {
diff --git a/exam/src/main/res/drawable/testpress_alert_warning.png b/exam/src/main/res/drawable/testpress_alert_warning.png
new file mode 100644
index 000000000..fd27c655a
Binary files /dev/null and b/exam/src/main/res/drawable/testpress_alert_warning.png differ
diff --git a/exam/src/main/res/drawable/testpress_no_wifi.png b/exam/src/main/res/drawable/testpress_no_wifi.png
new file mode 100644
index 000000000..07ae9b12c
Binary files /dev/null and b/exam/src/main/res/drawable/testpress_no_wifi.png differ
diff --git a/exam/src/main/res/layout/testpress_container_layout.xml b/exam/src/main/res/layout/testpress_container_layout.xml
new file mode 100644
index 000000000..bcbe1bd64
--- /dev/null
+++ b/exam/src/main/res/layout/testpress_container_layout.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam/src/main/res/layout/testpress_empty_view.xml b/exam/src/main/res/layout/testpress_empty_view.xml
new file mode 100644
index 000000000..4badbb5e9
--- /dev/null
+++ b/exam/src/main/res/layout/testpress_empty_view.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam/src/main/res/layout/testpress_empty_view_with_image.xml b/exam/src/main/res/layout/testpress_empty_view_with_image.xml
new file mode 100644
index 000000000..4091c9f77
--- /dev/null
+++ b/exam/src/main/res/layout/testpress_empty_view_with_image.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam/src/main/res/layout/testpress_filter_menu_view.xml b/exam/src/main/res/layout/testpress_filter_menu_view.xml
new file mode 100644
index 000000000..18693fbc3
--- /dev/null
+++ b/exam/src/main/res/layout/testpress_filter_menu_view.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam/src/main/res/layout/testpress_list.xml b/exam/src/main/res/layout/testpress_list.xml
new file mode 100644
index 000000000..2550dc86e
--- /dev/null
+++ b/exam/src/main/res/layout/testpress_list.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam/src/main/res/layout/testpress_loading_layout.xml b/exam/src/main/res/layout/testpress_loading_layout.xml
new file mode 100644
index 000000000..7809372ff
--- /dev/null
+++ b/exam/src/main/res/layout/testpress_loading_layout.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/exam/src/main/res/menu/testpress_filter.xml b/exam/src/main/res/menu/testpress_filter.xml
new file mode 100644
index 000000000..96ebf195c
--- /dev/null
+++ b/exam/src/main/res/menu/testpress_filter.xml
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/exam/src/main/res/menu/testpress_time_analytics_filter.xml b/exam/src/main/res/menu/testpress_time_analytics_filter.xml
index c832bf918..1cce4da27 100644
--- a/exam/src/main/res/menu/testpress_time_analytics_filter.xml
+++ b/exam/src/main/res/menu/testpress_time_analytics_filter.xml
@@ -2,6 +2,13 @@