Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,5 @@ fastlane/.idea
apps/captures

libs/DocumentScanner/build/
apps/buildSrc/src/main/java/candroid.keystore
open_source_data/student/google-services.json
1 change: 1 addition & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
[submodule "apps/mobile-offline-downloader-android"]
path = apps/mobile-offline-downloader-android
url = https://github.com/2uinc/mobile-offline-downloader-android.git
branch = main
4 changes: 2 additions & 2 deletions apps/buildSrc/src/main/java/OfflineDependencies.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
object OfflineDependencies {
const val versionCode = 10
const val versionName = "1.5"
const val versionCode = 15
const val versionName = "1.9"
const val constraintLayout = "2.1.0"
const val appCompat = "1.5.0"
const val recyclerView = "1.2.1"
Expand Down
2 changes: 0 additions & 2 deletions apps/settings.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
/* Top-level project modules */
Copy link

Copilot AI Nov 25, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The teacher and parent modules have been commented out, which may indicate incomplete work or temporary changes that should not be in a release. If these modules are intentionally excluded from this release, consider documenting why in the PR description.

Suggested change
/* Top-level project modules */
/* Top-level project modules */
// The teacher and parent modules are intentionally excluded from this release.
// If you need to include them, uncomment their respective lines and ensure they are properly configured.

Copilot uses AI. Check for mistakes.
include ':student'
include ':teacher'
include ':parent'

/* Library modules */
include ':annotations'
Expand Down
1 change: 0 additions & 1 deletion apps/student/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ android {
/* Add private data */
PrivateData.merge(project, "student")
buildConfigField "String", "TRANSLATION_TAGS", "\"${LocaleScanner.getAvailableLanguageTags(project)}\""
buildConfigField "String", "PSPDFKIT_LICENSE_KEY", "\"$pspdfkitLicenseKey\""

testBuildType = "debug"

Expand Down
10 changes: 0 additions & 10 deletions apps/student/proguard-rules.txt
Original file line number Diff line number Diff line change
Expand Up @@ -193,16 +193,6 @@
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-dontwarn okhttp3.**

#PSPDFKit
-keep class com.pspdfkit.** { *; }
-dontwarn sun.misc.**
-dontwarn edu.umd.cs.findbugs.annotations.SuppressWarnings
-keepnames class io.reactivex.android.schedulers.AndroidSchedulers
-keepnames class io.reactivex.Observable
-dontwarn com.pspdfkit.**
-dontwarn android.view.WindowInsets
-dontwarn android.graphics.Insets

# Keep third party lib class names. PSPDFKit relies on those class names to be present.
-keepnames class rx.android.schedulers.AndroidSchedulers
-keepnames class rx.Observable
Expand Down
5 changes: 0 additions & 5 deletions apps/student/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -155,11 +155,6 @@
android:foregroundServiceType="dataSync"
android:exported="false" />

<activity
android:name=".activity.CandroidPSPDFActivity"
android:theme="@style/PSPDFKitTheme"
android:windowSoftInputMode="adjustNothing" />

<activity android:name=".activity.PandaAvatarActivity"
android:label="@string/pandaAvatar"
android:theme="@style/CanvasMaterialTheme_Default"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,10 +122,6 @@ class AnnotationCommentListFragment : ParentFragment() {
sendCommentJob?.cancel()
editCommentJob?.cancel()
deleteCommentJob?.cancel()
EventBus.getDefault().post(
PdfStudentSubmissionView.AnnotationCommentDeleteAcknowledged(
annotations.filter { it.deleted && it.deleteAcknowledged.isNullOrEmpty() },
assigneeId))
}

fun configureRecyclerView() {
Expand Down Expand Up @@ -186,7 +182,6 @@ class AnnotationCommentListFragment : ParentFragment() {
val rootComment = annotations.firstOrNull()
if (rootComment != null) {
val newCommentReply = awaitApi<CanvaDocAnnotation> { CanvaDocsManager.putAnnotation(apiValues.sessionId, generateAnnotationId(), createCommentReplyAnnotation(comment, headAnnotationId, apiValues.documentId, ApiPrefs.user?.id.toString(), rootComment.page), apiValues.canvaDocsDomain, it) }
EventBus.getDefault().post(PdfStudentSubmissionView.AnnotationCommentAdded(newCommentReply, assigneeId))
// The put request doesn't return this property, so we need to set it to true
newCommentReply.isEditable = true
recyclerAdapter?.add(newCommentReply) //ALSO, add it to the UI
Expand All @@ -204,7 +199,6 @@ class AnnotationCommentListFragment : ParentFragment() {
private fun editComment(annotation: CanvaDocAnnotation, position: Int) {
editCommentJob = tryWeave {
awaitApi<CanvaDocAnnotation> { CanvaDocsManager.putAnnotation(apiValues.sessionId, annotation.annotationId, annotation, apiValues.canvaDocsDomain, it) }
EventBus.getDefault().post(PdfStudentSubmissionView.AnnotationCommentEdited(annotation, assigneeId))
// Update the UI
recyclerAdapter?.add(annotation)
recyclerAdapter?.notifyItemChanged(position)
Expand All @@ -219,10 +213,8 @@ class AnnotationCommentListFragment : ParentFragment() {
awaitApi<ResponseBody> { CanvaDocsManager.deleteAnnotation(apiValues.sessionId, annotation.annotationId, apiValues.canvaDocsDomain, it) }
if(annotation.annotationId == annotations.firstOrNull()?.annotationId) {
//this is the root comment, deleting this deletes the entire thread
EventBus.getDefault().post(PdfStudentSubmissionView.AnnotationCommentDeleted(annotation, true, assigneeId))
headAnnotationDeleted()
} else {
EventBus.getDefault().post(PdfStudentSubmissionView.AnnotationCommentDeleted(annotation, false, assigneeId))
recyclerAdapter?.remove(annotation)
recyclerAdapter?.notifyItemChanged(position)
}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ class StudentAssignmentDetailsSubmissionHandler(
}
if (isUploading && submission.errorFlag) {
data.value?.attempts = attempts?.toMutableList()?.apply {
if (isNotEmpty()) removeFirst()
if (isNotEmpty()) removeAt(0)
add(0, AssignmentDetailsAttemptItemViewModel(
AssignmentDetailsAttemptViewData(
resources.getString(R.string.attempt, attempts.size),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,6 @@ class AnnotationSubmissionUploadFragment : BaseCanvasFragment() {
PdfStudentSubmissionView(
activity = requireActivity(),
pdfUrl = it,
fragmentManager = childFragmentManager,
studentAnnotationSubmit = true,
courseId = canvasContext.id
)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,7 @@ class AnnotationSubmissionViewFragment : BaseCanvasFragment() {
PdfStudentSubmissionView(
requireActivity(),
it,
courseId,
childFragmentManager,
studentAnnotationView = true,
courseId
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To get PDF Name

)
)
}
Expand Down
Loading
Loading