Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: open-learning-exchange/myplanet
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: a23caf143375329b1396f834c5f5057ea6e7dd33
Choose a base ref
..
head repository: open-learning-exchange/myplanet
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 85219aa462efe8fbb8451ef9394b92efadfa791f
Choose a head ref
Showing with 805 additions and 774 deletions.
  1. +1 −0 .github/workflows/android-release.yml
  2. +6 −6 app/build.gradle
  3. +8 −2 app/src/main/AndroidManifest.xml
  4. +8 −2 app/src/main/AndroidManifest.xml.lite
  5. +5 −11 app/src/main/java/org/ole/planet/myplanet/base/BaseContainerFragment.kt
  6. +5 −11 app/src/main/java/org/ole/planet/myplanet/base/BaseContainerFragment.kt.lite
  7. +0 −3 app/src/main/java/org/ole/planet/myplanet/base/BaseMemberFragment.kt
  8. +7 −1 app/src/main/java/org/ole/planet/myplanet/base/BaseResourceFragment.kt
  9. +145 −129 app/src/main/java/org/ole/planet/myplanet/datamanager/MyDownloadService.kt
  10. +0 −3 app/src/main/java/org/ole/planet/myplanet/ui/SettingActivity.kt
  11. +1 −4 app/src/main/java/org/ole/planet/myplanet/ui/chat/ChatHistoryListAdapter.kt
  12. +0 −3 app/src/main/java/org/ole/planet/myplanet/ui/community/CommunityPagerAdapter.kt
  13. +0 −3 app/src/main/java/org/ole/planet/myplanet/ui/community/ServicesFragment.kt
  14. +0 −5 app/src/main/java/org/ole/planet/myplanet/ui/courses/CourseDetailFragment.kt
  15. +12 −9 app/src/main/java/org/ole/planet/myplanet/ui/courses/CourseStepFragment.kt
  16. +22 −4 app/src/main/java/org/ole/planet/myplanet/ui/courses/CoursesFragment.kt
  17. +0 −5 app/src/main/java/org/ole/planet/myplanet/ui/dashboard/BaseDashboardFragment.kt
  18. +0 −4 app/src/main/java/org/ole/planet/myplanet/ui/dashboard/BaseDashboardFragmentPlugin.kt
  19. +1 −21 app/src/main/java/org/ole/planet/myplanet/ui/dashboard/BellDashboardFragment.kt
  20. +25 −6 app/src/main/java/org/ole/planet/myplanet/ui/dashboard/DashboardActivity.kt
  21. +25 −6 app/src/main/java/org/ole/planet/myplanet/ui/dashboard/DashboardActivity.kt.lite
  22. +0 −3 app/src/main/java/org/ole/planet/myplanet/ui/dashboard/DashboardFragment.kt
  23. +1 −1 app/src/main/java/org/ole/planet/myplanet/ui/dashboard/MyActivityFragment.kt
  24. +0 −3 app/src/main/java/org/ole/planet/myplanet/ui/dashboard/notification/NotificationsFragment.kt
  25. +0 −2 app/src/main/java/org/ole/planet/myplanet/ui/enterprises/EnterpriseCalendarFragment.kt
  26. +0 −5 app/src/main/java/org/ole/planet/myplanet/ui/enterprises/FinanceFragment.kt
  27. +0 −3 app/src/main/java/org/ole/planet/myplanet/ui/enterprises/ReportsFragment.kt
  28. +2 −2 app/src/main/java/org/ole/planet/myplanet/ui/exam/TakeExamFragment.kt
  29. +2 −6 app/src/main/java/org/ole/planet/myplanet/ui/mylife/AdapterMyLife.kt
  30. +0 −7 app/src/main/java/org/ole/planet/myplanet/ui/resources/ResourceDetailFragment.kt
  31. +13 −1 app/src/main/java/org/ole/planet/myplanet/ui/resources/ResourcesFragment.kt
  32. +4 −10 app/src/main/java/org/ole/planet/myplanet/ui/sync/LoginActivity.kt
  33. +88 −85 app/src/main/java/org/ole/planet/myplanet/ui/team/AdapterTeamList.kt
  34. +0 −3 app/src/main/java/org/ole/planet/myplanet/ui/team/BaseTeamFragment.kt
  35. +0 −3 app/src/main/java/org/ole/planet/myplanet/ui/team/MyTeamsDetailFragment.kt
  36. +0 −3 app/src/main/java/org/ole/planet/myplanet/ui/team/PlanFragment.kt
  37. +0 −3 app/src/main/java/org/ole/planet/myplanet/ui/team/TeamDetailFragment.kt
  38. +6 −4 app/src/main/java/org/ole/planet/myplanet/ui/team/TeamFragment.kt
  39. +0 −3 app/src/main/java/org/ole/planet/myplanet/ui/team/TeamPagerAdapter.kt
  40. +0 −3 app/src/main/java/org/ole/planet/myplanet/ui/team/teamCourse/TeamCourseFragment.kt
  41. +0 −3 app/src/main/java/org/ole/planet/myplanet/ui/team/teamDiscussion/DiscussionListFragment.kt
  42. +0 −4 app/src/main/java/org/ole/planet/myplanet/ui/team/teamMember/JoinedMemberFragment.kt
  43. +0 −5 app/src/main/java/org/ole/planet/myplanet/ui/team/teamMember/MembersFragment.kt
  44. +0 −3 app/src/main/java/org/ole/planet/myplanet/ui/team/teamResource/TeamResourceFragment.kt
  45. +0 −3 app/src/main/java/org/ole/planet/myplanet/ui/team/teamTask/TeamTaskFragment.kt
  46. +0 −4 app/src/main/java/org/ole/planet/myplanet/ui/userprofile/AchievementFragment.kt
  47. +5 −5 app/src/main/java/org/ole/planet/myplanet/ui/userprofile/UserProfileFragment.kt
  48. +123 −36 app/src/main/java/org/ole/planet/myplanet/ui/viewer/VideoPlayerActivity.kt
  49. +3 −6 app/src/main/java/org/ole/planet/myplanet/utilities/DialogUtils.kt
  50. +11 −31 app/src/main/java/org/ole/planet/myplanet/utilities/FileUtils.kt
  51. +5 −18 app/src/main/java/org/ole/planet/myplanet/utilities/Utilities.kt
  52. +13 −0 app/src/main/res/drawable/bg_multiselect_grey.xml
  53. +9 −3 app/src/main/res/layout/activity_add_resource.xml
  54. +2 −1 app/src/main/res/layout/fragment_feedback.xml
  55. +0 −25 app/src/main/res/layout/fragment_home_bell.xml
  56. +3 −37 app/src/main/res/layout/fragment_library_detail.xml
  57. +8 −8 app/src/main/res/layout/fragment_member_detail.xml
  58. +19 −6 app/src/main/res/layout/fragment_my_course.xml
  59. +15 −2 app/src/main/res/layout/fragment_my_library.xml
  60. +62 −59 app/src/main/res/layout/fragment_team.xml
  61. +75 −100 app/src/main/res/layout/item_team_list.xml
  62. +1 −1 app/src/main/res/layout/layout_search.xml
  63. +9 −3 app/src/main/res/values-ar/strings.xml
  64. +10 −4 app/src/main/res/values-es/strings.xml
  65. +10 −4 app/src/main/res/values-fr/strings.xml
  66. +10 −4 app/src/main/res/values-ne/strings.xml
  67. +1 −0 app/src/main/res/values-night/colors.xml
  68. +10 −4 app/src/main/res/values-so/strings.xml
  69. +1 −0 app/src/main/res/values/colors.xml
  70. +9 −3 app/src/main/res/values/strings.xml
  71. +2 −2 build.gradle
  72. +2 −2 gradle/wrapper/gradle-wrapper.properties
1 change: 1 addition & 0 deletions .github/workflows/android-release.yml
Original file line number Diff line number Diff line change
@@ -100,6 +100,7 @@ jobs:

- name: publish AAB to playstore fallback
if: github.event_name != 'workflow_dispatch' && matrix.build == 'lite' && steps.playstore.outcome == 'failure'
continue-on-error: true
uses: dogi/upload-google-play@v1.1.4
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
12 changes: 6 additions & 6 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -5,13 +5,13 @@ apply plugin: 'kotlinx-serialization'
apply plugin: 'dagger.hilt.android.plugin'
apply plugin: 'realm-android'
android {
compileSdkVersion 34
compileSdk 34
defaultConfig {
applicationId "org.ole.planet.myplanet"
minSdkVersion 21
minSdkVersion 26
targetSdkVersion 34
versionCode 1988
versionName "0.19.88"
versionCode 2020
versionName "0.20.20"
ndkVersion '21.3.6528147'
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
@@ -189,7 +189,7 @@ dependencies {
implementation 'de.hdodenhof:circleimageview:3.1.0'
implementation 'de.rtner:PBKDF2:1.1.4'
implementation 'org.osmdroid:osmdroid-android:6.1.20'
implementation 'org.jetbrains:annotations:25.0.0'
implementation 'org.jetbrains:annotations:26.0.0'
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3"
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.29'
@@ -230,7 +230,7 @@ dependencies {
implementation "io.noties.markwon:image:$markwon_version"
implementation "io.noties.markwon:html:$markwon_version"
implementation "io.noties.markwon:ext-tables:$markwon_version"
implementation(platform("org.jetbrains.kotlin:kotlin-bom:2.0.20"))
implementation(platform("org.jetbrains.kotlin:kotlin-bom:2.0.21"))
}
realm {
syncEnabled = true
10 changes: 8 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -6,6 +6,14 @@
<action android:name="android.intent.action.VIEW" />
<data android:mimeType="application/vnd.android.package-archive" />
</intent>
<intent>
<action android:name="android.intent.action.GET_CONTENT" />
<data android:mimeType="image/*" />
</intent>
<intent>
<action android:name="android.intent.action.GET_CONTENT" />
<data android:mimeType="video/*" />
</intent>
</queries>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<uses-permission
@@ -29,8 +37,6 @@
<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />

<uses-feature
10 changes: 8 additions & 2 deletions app/src/main/AndroidManifest.xml.lite
Original file line number Diff line number Diff line change
@@ -6,6 +6,14 @@
<action android:name="android.intent.action.VIEW" />
<data android:mimeType="application/vnd.android.package-archive" />
</intent>
<intent>
<action android:name="android.intent.action.GET_CONTENT" />
<data android:mimeType="image/*" />
</intent>
<intent>
<action android:name="android.intent.action.GET_CONTENT" />
<data android:mimeType="video/*" />
</intent>
</queries>
<!-- <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>-->
<uses-permission
@@ -29,8 +37,6 @@
<uses-permission
android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />

<uses-feature
Original file line number Diff line number Diff line change
@@ -5,7 +5,6 @@ import android.content.Context
import android.content.DialogInterface
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.provider.Settings
import android.text.TextUtils
@@ -19,7 +18,6 @@ import android.widget.TextView
import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.view.ContextThemeWrapper
import androidx.appcompat.widget.AppCompatRatingBar
@@ -51,7 +49,6 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
private lateinit var installApkLauncher: ActivityResultLauncher<Intent>
lateinit var prefData: SharedPrefManager

@RequiresApi(Build.VERSION_CODES.O)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
profileDbHandler = UserProfileDbHandler(requireActivity())
@@ -126,7 +123,7 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
fileOpenIntent.putExtra("resourceId", item.id)
startActivity(fileOpenIntent)
}
@RequiresApi(Build.VERSION_CODES.O)

fun openResource(items: RealmMyLibrary) {
val matchingItems = mRealm.where(RealmMyLibrary::class.java)
.equalTo("resourceLocalAddress", items.resourceLocalAddress)
@@ -148,7 +145,7 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
}
}
}
@RequiresApi(Build.VERSION_CODES.O)

private fun checkFileExtension(items: RealmMyLibrary) {
val filenameArray = items.resourceLocalAddress?.split("\\.".toRegex())?.toTypedArray()
val extension = filenameArray?.get(filenameArray.size - 1)
@@ -165,7 +162,7 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
}
}
}
@RequiresApi(Build.VERSION_CODES.O)

private fun checkMoreFileExtensions(extension: String?, items: RealmMyLibrary) {
when (extension) {
"txt" -> openIntent(items, TextFileViewerActivity::class.java)
@@ -178,7 +175,6 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
}
}

@RequiresApi(Build.VERSION_CODES.O)
private fun installApk(items: RealmMyLibrary) {
currentLibrary = items
val directory = File(MainApplication.context.getExternalFilesDir(null).toString() + "/ole" + "/" + items.id)
@@ -212,14 +208,12 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
}
}

@RequiresApi(Build.VERSION_CODES.O)
private fun requestInstallPermission() {
val intent = Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES)
intent.data = Uri.parse("package:" + MainApplication.context.packageName)
installApkLauncher.launch(intent)
}

@RequiresApi(Build.VERSION_CODES.O)
private fun openFileType(items: RealmMyLibrary, videoType: String) {
val mimetype = Utilities.getMimeType(items.resourceLocalAddress)
if (mimetype == null) {
@@ -252,7 +246,7 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
intent.putExtras(bundle)
startActivity(intent)
}
@RequiresApi(Build.VERSION_CODES.O)

private fun showResourceList(downloadedResources: List<RealmMyLibrary>?) {
val builderSingle = AlertDialog.Builder(ContextThemeWrapper(requireActivity(), R.style.CustomAlertDialog))
builderSingle.setTitle(getString(R.string.select_resource_to_open))
@@ -282,7 +276,7 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
}
builderSingle.setNegativeButton(R.string.dismiss, null).show()
}
@RequiresApi(Build.VERSION_CODES.O)

fun setOpenResourceButton(downloadedResources: List<RealmMyLibrary>?, btnOpen: Button) {
if (downloadedResources.isNullOrEmpty()) {
btnOpen.visibility = View.GONE
Original file line number Diff line number Diff line change
@@ -5,7 +5,6 @@ import android.content.Context
import android.content.DialogInterface
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.os.Bundle
//import android.provider.Settings
import android.text.TextUtils
@@ -19,7 +18,6 @@ import android.widget.TextView
import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.view.ContextThemeWrapper
import androidx.appcompat.widget.AppCompatRatingBar
@@ -51,7 +49,6 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
// private lateinit var installApkLauncher: ActivityResultLauncher<Intent>
lateinit var prefData: SharedPrefManager

@RequiresApi(Build.VERSION_CODES.O)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
profileDbHandler = UserProfileDbHandler(requireActivity())
@@ -126,7 +123,7 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
fileOpenIntent.putExtra("resourceId", item.id)
startActivity(fileOpenIntent)
}
@RequiresApi(Build.VERSION_CODES.O)

fun openResource(items: RealmMyLibrary) {
val matchingItems = mRealm.where(RealmMyLibrary::class.java)
.equalTo("resourceLocalAddress", items.resourceLocalAddress)
@@ -148,7 +145,7 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
}
}
}
@RequiresApi(Build.VERSION_CODES.O)

private fun checkFileExtension(items: RealmMyLibrary) {
val filenameArray = items.resourceLocalAddress?.split("\\.".toRegex())?.toTypedArray()
val extension = filenameArray?.get(filenameArray.size - 1)
@@ -165,7 +162,7 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
}
}
}
@RequiresApi(Build.VERSION_CODES.O)

private fun checkMoreFileExtensions(extension: String?, items: RealmMyLibrary) {
when (extension) {
"txt" -> openIntent(items, TextFileViewerActivity::class.java)
@@ -178,7 +175,6 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
}
}

// @RequiresApi(Build.VERSION_CODES.O)
// private fun installApk(items: RealmMyLibrary) {
// currentLibrary = items
// val directory = File(MainApplication.context.getExternalFilesDir(null).toString() + "/ole" + "/" + items.id)
@@ -212,14 +208,12 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
// }
// }

// @RequiresApi(Build.VERSION_CODES.O)
// private fun requestInstallPermission() {
// val intent = Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES)
// intent.data = Uri.parse("package:" + MainApplication.context.packageName)
// installApkLauncher.launch(intent)
// }

@RequiresApi(Build.VERSION_CODES.O)
private fun openFileType(items: RealmMyLibrary, videoType: String) {
val mimetype = Utilities.getMimeType(items.resourceLocalAddress)
if (mimetype == null) {
@@ -252,7 +246,7 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
intent.putExtras(bundle)
startActivity(intent)
}
@RequiresApi(Build.VERSION_CODES.O)

private fun showResourceList(downloadedResources: List<RealmMyLibrary>?) {
val builderSingle = AlertDialog.Builder(ContextThemeWrapper(requireActivity(), R.style.CustomAlertDialog))
builderSingle.setTitle(getString(R.string.select_resource_to_open))
@@ -282,7 +276,7 @@ abstract class BaseContainerFragment : BaseResourceFragment() {
}
builderSingle.setNegativeButton(R.string.dismiss, null).show()
}
@RequiresApi(Build.VERSION_CODES.O)

fun setOpenResourceButton(downloadedResources: List<RealmMyLibrary>?, btnOpen: Button) {
if (downloadedResources.isNullOrEmpty()) {
btnOpen.visibility = View.GONE
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
package org.ole.planet.myplanet.base

import android.os.Build
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.annotation.RequiresApi
import androidx.recyclerview.widget.RecyclerView
import org.ole.planet.myplanet.R
import org.ole.planet.myplanet.model.RealmUserModel
import org.ole.planet.myplanet.ui.team.BaseTeamFragment

@RequiresApi(Build.VERSION_CODES.O)
abstract class BaseMemberFragment : BaseTeamFragment() {
abstract val list: List<RealmUserModel?>
abstract val adapter: RecyclerView.Adapter<*>?
Original file line number Diff line number Diff line change
@@ -198,7 +198,13 @@ abstract class BaseResourceFragment : Fragment() {
}
}

open fun onDownloadComplete() {}
open fun onDownloadComplete() {
prgDialog.setPositiveButton("Finish", isVisible = true){
prgDialog.dismiss()
}
prgDialog.setNegativeButton("disabling", isVisible = false){ prgDialog.dismiss() }
}

fun createListView(dbMyLibrary: List<RealmMyLibrary?>, alertDialog: AlertDialog) {
lv = convertView?.findViewById(R.id.alertDialog_listView)
val names = ArrayList<String?>()
Loading