From 7e8d24dc25700745b725b8d11d47fb4a051bd53c Mon Sep 17 00:00:00 2001 From: Deep Vora <70479785+deeppp15@users.noreply.github.com> Date: Mon, 14 Oct 2024 15:20:13 -0400 Subject: [PATCH 1/9] courses: smoother survey retake (fixes #4608) (#4619) Co-authored-by: dogi --- app/build.gradle | 4 +- .../myplanet/ui/courses/CourseStepFragment.kt | 53 ++++++++----------- 2 files changed, 25 insertions(+), 32 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index ad349919e..96265559c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "org.ole.planet.myplanet" minSdkVersion 26 targetSdkVersion 34 - versionCode 2020 - versionName "0.20.20" + versionCode 2021 + versionName "0.20.21" ndkVersion '21.3.6528147' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true diff --git a/app/src/main/java/org/ole/planet/myplanet/ui/courses/CourseStepFragment.kt b/app/src/main/java/org/ole/planet/myplanet/ui/courses/CourseStepFragment.kt index 16cc4fb21..c79d8bfd1 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/courses/CourseStepFragment.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/courses/CourseStepFragment.kt @@ -8,7 +8,6 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment -import io.realm.Case import io.realm.Realm import org.ole.planet.myplanet.MainApplication import org.ole.planet.myplanet.R @@ -127,40 +126,34 @@ class CourseStepFragment : BaseContainerFragment(), ImageCaptureCallback { fragmentCourseStepBinding.btnTakeSurvey.visibility = View.GONE if (stepExams.isNotEmpty()) { val firstStepId = stepExams[0].id - val questions = cRealm.where(RealmExamQuestion::class.java).equalTo("examId", firstStepId).findAll() - val submissionsCount = step.courseId?.let { - cRealm.where(RealmSubmission::class.java).equalTo("userId",user?.id).contains("parentId", it) - .notEqualTo("status", "pending", Case.INSENSITIVE).count() - } - if (questions != null && questions.size > 0) { - val examId=questions[0]?.examId - - val isSubmitted = step.courseId?.let { courseId -> - val parentId = "$examId@$courseId" - cRealm.where(RealmSubmission::class.java) - .equalTo("userId",user?.id) - .equalTo("parentId", parentId) - .equalTo("type", "exam") - .findFirst() != null - } ?: false - fragmentCourseStepBinding.btnTakeTest.text = if (isSubmitted) { getString(R.string.retake_test, stepExams.size) } else { getString(R.string.take_test, stepExams.size) } - fragmentCourseStepBinding.btnTakeTest.visibility = View.VISIBLE - } + val isTestPersent = existsSubmission(firstStepId, "exam") + fragmentCourseStepBinding.btnTakeTest.text = if (isTestPersent) { getString(R.string.retake_test, stepExams.size) } else { getString(R.string.take_test, stepExams.size) } + fragmentCourseStepBinding.btnTakeTest.visibility = View.VISIBLE } if (stepSurvey.isNotEmpty()) { val firstStepId = stepSurvey[0].id - val questions = cRealm.where(RealmExamQuestion::class.java).equalTo("examId", firstStepId).findAll() - val submissionsCount = step.courseId?.let { - cRealm.where(RealmSubmission::class.java).contains("parentId", it) - .notEqualTo("status", "pending", Case.INSENSITIVE).count() - } - if (questions != null && questions.size > 0) { - if (submissionsCount != null) { - fragmentCourseStepBinding.btnTakeSurvey.text = if (submissionsCount > 0) { "redo survey" } else { "record survey" } - } - fragmentCourseStepBinding.btnTakeSurvey.visibility = View.VISIBLE + val isSurveyPresent = existsSubmission(firstStepId, "survey") + fragmentCourseStepBinding.btnTakeSurvey.text = if (isSurveyPresent) { "redo survey" } else { "record survey" } + fragmentCourseStepBinding.btnTakeSurvey.visibility = View.VISIBLE } } + + private fun existsSubmission(firstStepId:String? , submissionType: String): Boolean{ + val questions = cRealm.where(RealmExamQuestion::class.java).equalTo("examId", firstStepId).findAll() + var isPresent=false + if (questions != null && questions.size > 0) { + val examId=questions[0]?.examId + val isSubmitted = step.courseId?.let { courseId -> + val parentId = "$examId@$courseId" + cRealm.where(RealmSubmission::class.java) + .equalTo("userId",user?.id) + .equalTo("parentId", parentId) + .equalTo("type", submissionType) + .findFirst() != null + } ?: false + isPresent= isSubmitted + } + return isPresent } override fun setMenuVisibility(visible: Boolean) { From 87996858529894e521659ff25fcaf586c44296c4 Mon Sep 17 00:00:00 2001 From: Gideon Okuro Date: Mon, 14 Oct 2024 22:34:33 +0300 Subject: [PATCH 2/9] all: smoother notifications (fixes #4623) (#4625) Co-authored-by: dogi --- app/build.gradle | 4 ++-- .../ui/dashboard/notification/NotificationsFragment.kt | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 96265559c..d1b63943f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "org.ole.planet.myplanet" minSdkVersion 26 targetSdkVersion 34 - versionCode 2021 - versionName "0.20.21" + versionCode 2022 + versionName "0.20.22" ndkVersion '21.3.6528147' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true diff --git a/app/src/main/java/org/ole/planet/myplanet/ui/dashboard/notification/NotificationsFragment.kt b/app/src/main/java/org/ole/planet/myplanet/ui/dashboard/notification/NotificationsFragment.kt index be41e5748..b642cd3b8 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/dashboard/notification/NotificationsFragment.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/dashboard/notification/NotificationsFragment.kt @@ -197,6 +197,8 @@ class NotificationsFragment : Fragment() { override fun onDestroy() { super.onDestroy() - mRealm.close() + if (::mRealm.isInitialized) { + mRealm.close() + } } } From d83e15e9e6c37b4fd05bb97c31a2dcbf821785d7 Mon Sep 17 00:00:00 2001 From: Deep Vora <70479785+deeppp15@users.noreply.github.com> Date: Tue, 15 Oct 2024 15:05:43 -0400 Subject: [PATCH 3/9] login: smoother learner list (fixes #4571) (#4624) Co-authored-by: dogi --- app/build.gradle | 4 ++-- app/src/main/res/layout/activity_login.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d1b63943f..1488167c9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "org.ole.planet.myplanet" minSdkVersion 26 targetSdkVersion 34 - versionCode 2022 - versionName "0.20.22" + versionCode 2023 + versionName "0.20.23" ndkVersion '21.3.6528147' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index d8e2c73e5..6e0f82c04 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -350,11 +350,11 @@ android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="350dp" - android:layout_marginTop="@dimen/_10dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintTop_toBottomOf="@+id/team" /> + app:layout_constraintTop_toBottomOf="@+id/team" + app:layout_constraintVertical_bias="0.1" /> From 0013b443e7c4378ad0e707259b5f5c6529e1d215 Mon Sep 17 00:00:00 2001 From: Deep Vora <70479785+deeppp15@users.noreply.github.com> Date: Tue, 15 Oct 2024 15:11:21 -0400 Subject: [PATCH 4/9] mylife: smoother myhealth dark mode (fixes #4598) (#4627) Co-authored-by: dogi --- app/build.gradle | 4 +- .../ui/myhealth/AddMyHealthActivity.kt | 23 ++++++ .../res/layout/activity_add_my_health.xml | 80 ++++++++++++------- 3 files changed, 77 insertions(+), 30 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 1488167c9..a50823c01 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "org.ole.planet.myplanet" minSdkVersion 26 targetSdkVersion 34 - versionCode 2023 - versionName "0.20.23" + versionCode 2024 + versionName "0.20.24" ndkVersion '21.3.6528147' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true diff --git a/app/src/main/java/org/ole/planet/myplanet/ui/myhealth/AddMyHealthActivity.kt b/app/src/main/java/org/ole/planet/myplanet/ui/myhealth/AddMyHealthActivity.kt index 75f277d10..a5fabaf09 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/myhealth/AddMyHealthActivity.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/myhealth/AddMyHealthActivity.kt @@ -4,6 +4,10 @@ import android.os.Bundle import android.text.TextUtils import android.view.MenuItem import android.view.View +import android.view.ViewGroup +import android.widget.ArrayAdapter +import android.widget.Spinner +import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import com.google.gson.Gson import io.realm.Realm @@ -19,6 +23,7 @@ import org.ole.planet.myplanet.utilities.AndroidDecrypter.Companion.encrypt import org.ole.planet.myplanet.utilities.AndroidDecrypter.Companion.generateKey import org.ole.planet.myplanet.utilities.Utilities + class AddMyHealthActivity : AppCompatActivity() { private lateinit var activityAddMyHealthBinding: ActivityAddMyHealthBinding lateinit var realm: Realm @@ -47,6 +52,24 @@ class AddMyHealthActivity : AppCompatActivity() { createMyHealth() Utilities.toast(this@AddMyHealthActivity, getString(R.string.my_health_saved_successfully)) } + val spinner: Spinner = findViewById(R.id.spn_contact_type) + + val adapter = object : ArrayAdapter( + this, R.layout.spinner_item, resources.getStringArray(R.array.contact_type) + ) { + override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { + val view = super.getView(position, convertView, parent) as TextView + return view + } + + override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup): View { + val view = super.getDropDownView(position, convertView, parent) as TextView + return view + } + } + + spinner.adapter = adapter + initViews() } diff --git a/app/src/main/res/layout/activity_add_my_health.xml b/app/src/main/res/layout/activity_add_my_health.xml index b43da97cc..d0d2d4649 100644 --- a/app/src/main/res/layout/activity_add_my_health.xml +++ b/app/src/main/res/layout/activity_add_my_health.xml @@ -5,16 +5,19 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:padding="@dimen/padding_large" - tools:context=".ui.myhealth.AddMyHealthActivity"> + tools:context=".ui.myhealth.AddMyHealthActivity" + android:background="@color/secondary_bg"> + android:layout_height="match_parent" + android:background="@color/secondary_bg"> + android:orientation="vertical" + android:background="@color/secondary_bg"> + android:layout_weight="1" + android:textColorHint="@color/hint_color"> + android:backgroundTint="@color/daynight_textColor" + android:textColor="@color/daynight_textColor" /> + android:layout_weight="1" + android:textColorHint="@color/hint_color"> + android:backgroundTint="@color/daynight_textColor" + android:textColor="@color/daynight_textColor" /> + android:layout_weight="1" + android:textColorHint="@color/hint_color"> + android:backgroundTint="@color/daynight_textColor" + android:textColor="@color/daynight_textColor" /> - + android:layout_weight="1" + android:textColorHint="@color/hint_color"> + android:backgroundTint="@color/daynight_textColor" + android:textColor="@color/daynight_textColor" /> + android:layout_weight="1" + android:textColorHint="@color/hint_color"> + android:backgroundTint="@color/daynight_textColor" + android:textColor="@color/daynight_textColor" /> @@ -107,28 +119,32 @@ android:id="@+id/et_birthplace" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_weight="1"> + android:layout_weight="1" + android:textColorHint="@color/hint_color"> + android:backgroundTint="@color/daynight_textColor" + android:textColor="@color/daynight_textColor" /> + android:layout_weight="1" + android:textColorHint="@color/hint_color"> + android:backgroundTint="@color/daynight_textColor" + android:textColor="@color/daynight_textColor" /> @@ -140,43 +156,48 @@ android:id="@+id/et_emergency" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_weight="1"> + android:layout_weight="1" + android:textColorHint="@color/hint_color"> + android:backgroundTint="@color/daynight_textColor" + android:textColor="@color/daynight_textColor" /> + android:padding="@dimen/padding_large" /> + android:layout_weight="1" + android:textColorHint="@color/hint_color"> + android:backgroundTint="@color/daynight_textColor" + android:textColor="@color/daynight_textColor" /> + android:layout_height="wrap_content" + android:textColorHint="@color/hint_color"> + android:backgroundTint="@color/daynight_textColor" + android:textColor="@color/daynight_textColor" /> + android:layout_height="wrap_content" + android:textColorHint="@color/hint_color"> + android:backgroundTint="@color/daynight_textColor" + android:textColor="@color/daynight_textColor" />