From b9f77df66abe0b219ad87a56a837d503ada2fe85 Mon Sep 17 00:00:00 2001 From: Deep Vora <70479785+deeppp15@users.noreply.github.com> Date: Mon, 2 Dec 2024 14:19:33 -0500 Subject: [PATCH 1/7] teams: smoother leader leaving (fixes #4807) (#4808) Co-authored-by: dogi --- app/build.gradle | 4 +-- .../ui/team/teamMember/AdapterJoinedMember.kt | 34 +++++++++++++++++-- 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index cd01a7eec0..33ec92ab67 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "org.ole.planet.myplanet" minSdkVersion 26 targetSdkVersion 34 - versionCode 2112 - versionName "0.21.12" + versionCode 2113 + versionName "0.21.13" ndkVersion '21.3.6528147' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true diff --git a/app/src/main/java/org/ole/planet/myplanet/ui/team/teamMember/AdapterJoinedMember.kt b/app/src/main/java/org/ole/planet/myplanet/ui/team/teamMember/AdapterJoinedMember.kt index bdd392837e..0ca7594c59 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/team/teamMember/AdapterJoinedMember.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/team/teamMember/AdapterJoinedMember.kt @@ -19,6 +19,7 @@ import org.ole.planet.myplanet.model.RealmTeamLog import org.ole.planet.myplanet.model.RealmUserModel import org.ole.planet.myplanet.service.UserProfileDbHandler import io.realm.Realm +import io.realm.Sort import org.ole.planet.myplanet.utilities.Utilities class AdapterJoinedMember(private val context: Context, private val list: List, private val mRealm: Realm, private val teamId: String) : RecyclerView.Adapter() { @@ -95,14 +96,20 @@ class AdapterJoinedMember(private val context: Context, private val list: List - if (position >= 0 && position < list.size) { when (i) { 0 -> { if (currentUser.id != list[position].id) { reject(list[position], position) } else { - Toast.makeText(context, R.string.cannot_remove_user, Toast.LENGTH_SHORT).show() + val nextOfKin= getNextOfKin() + if(nextOfKin!=null){ + makeLeader(nextOfKin) + reject(list[position], position) + } + else { + Toast.makeText(context, R.string.cannot_remove_user, Toast.LENGTH_SHORT).show() + } } } 1 -> { @@ -122,7 +129,29 @@ class AdapterJoinedMember(private val context: Context, private val list: List = mRealm.where(RealmMyTeam::class.java) + .equalTo("teamId", teamId) + .equalTo("isLeader", false) + .notEqualTo("status","archived") + .sort("createdDate", Sort.DESCENDING) + .findAll() + val successor = if (members.isNotEmpty()) members?.first() else null + if(successor==null){ + return null + } + else{ + val user= mRealm.where(RealmUserModel::class.java).equalTo("id", successor.userId).findFirst() + return user + } + return null + } + private fun makeLeader(userModel: RealmUserModel) { + if(userModel==null){ + Utilities.toast(context, context.getString(R.string.cannot_remove_user)) + return + } mRealm.executeTransaction { realm -> val team = realm.where(RealmMyTeam::class.java) .equalTo("teamId", teamId) @@ -134,6 +163,7 @@ class AdapterJoinedMember(private val context: Context, private val list: List Date: Mon, 2 Dec 2024 14:22:29 -0500 Subject: [PATCH 2/7] teams: smoother last member (fixes #4814) (#4816) Co-authored-by: dogi --- app/build.gradle | 4 ++-- .../planet/myplanet/ui/team/teamMember/AdapterJoinedMember.kt | 2 +- app/src/main/res/values/strings.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 33ec92ab67..d7a1756297 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "org.ole.planet.myplanet" minSdkVersion 26 targetSdkVersion 34 - versionCode 2113 - versionName "0.21.13" + versionCode 2114 + versionName "0.21.14" ndkVersion '21.3.6528147' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true diff --git a/app/src/main/java/org/ole/planet/myplanet/ui/team/teamMember/AdapterJoinedMember.kt b/app/src/main/java/org/ole/planet/myplanet/ui/team/teamMember/AdapterJoinedMember.kt index 0ca7594c59..3fec35d920 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/team/teamMember/AdapterJoinedMember.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/team/teamMember/AdapterJoinedMember.kt @@ -79,7 +79,7 @@ class AdapterJoinedMember(private val context: Context, private val list: List, isLoggedInUserTeamLeader: Boolean ) { - if (isLoggedInUserTeamLeader) { + if (isLoggedInUserTeamLeader && list.size>1) { rowJoinedUserBinding.icMore.visibility = View.VISIBLE rowJoinedUserBinding.icMore.setOnClickListener { val builder = AlertDialog.Builder(context, R.style.AlertDialogTheme) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8e7803a437..235f83249e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -180,7 +180,7 @@ Showing reply of: Open Date mySurvey - User couldnot be removed + User could not be removed No Team members present to assign tasks No member selected. Please try again From 7bd4dd9fac7dfe2a8cf1b532ff09eed1fb8f4188 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 14:25:06 -0500 Subject: [PATCH 3/7] all: bump `kotlin_version` to 2.1.0 (fixes #4827) (#4817) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dogi --- app/build.gradle | 4 ++-- build.gradle | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d7a1756297..1c4d0f6720 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "org.ole.planet.myplanet" minSdkVersion 26 targetSdkVersion 34 - versionCode 2114 - versionName "0.21.14" + versionCode 2115 + versionName "0.21.15" ndkVersion '21.3.6528147' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true diff --git a/build.gradle b/build.gradle index da7baf0208..57419d3624 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext { - kotlin_version = '2.0.21' + kotlin_version = '2.1.0' setup = [ compileSdk : 34, buildTools : "28.0.0", From 53d0cf610da69e319e3f5dab9c84514ef76b18f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 14:29:35 -0500 Subject: [PATCH 4/7] all: bump `org.jetbrains.kotlin:kotlin-bom` to 2.1.0 (fixes #4828) (#4818) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dogi --- app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 1c4d0f6720..dd01916a93 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "org.ole.planet.myplanet" minSdkVersion 26 targetSdkVersion 34 - versionCode 2115 - versionName "0.21.15" + versionCode 2116 + versionName "0.21.16" ndkVersion '21.3.6528147' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true @@ -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.21")) + implementation(platform("org.jetbrains.kotlin:kotlin-bom:2.1.0")) implementation 'com.github.chrisbanes:PhotoView:2.3.0' } From d9f25fd7f3f0e58a81280c39af146c2f8083d243 Mon Sep 17 00:00:00 2001 From: Gideon Okuro Date: Mon, 2 Dec 2024 22:31:56 +0300 Subject: [PATCH 5/7] all: less build: warnings is more (fixes #4820) (#4823) Co-authored-by: dogi --- app/build.gradle | 4 ++-- .../ole/planet/myplanet/ui/exam/TakeExamFragment.kt | 2 +- .../ole/planet/myplanet/ui/mylife/AdapterMyLife.kt | 13 +++++++------ 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index dd01916a93..e4d9efb6cc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "org.ole.planet.myplanet" minSdkVersion 26 targetSdkVersion 34 - versionCode 2116 - versionName "0.21.16" + versionCode 2117 + versionName "0.21.17" ndkVersion '21.3.6528147' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true diff --git a/app/src/main/java/org/ole/planet/myplanet/ui/exam/TakeExamFragment.kt b/app/src/main/java/org/ole/planet/myplanet/ui/exam/TakeExamFragment.kt index 20bb49b0a6..af0183729a 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/exam/TakeExamFragment.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/exam/TakeExamFragment.kt @@ -189,7 +189,7 @@ class TakeExamFragment : BaseExamFragment(), View.OnClickListener, CompoundButto if (isRadio) { fragmentTakeExamBinding.groupChoices.addView(rdBtn) } else { - rdBtn.setTextColor(resources.getColor(R.color.daynight_textColor)) + rdBtn.setTextColor(ContextCompat.getColor(requireContext(), R.color.daynight_textColor)) rdBtn.buttonTintList = ContextCompat.getColorStateList(requireContext(), R.color.daynight_textColor) fragmentTakeExamBinding.llCheckbox.addView(rdBtn) } diff --git a/app/src/main/java/org/ole/planet/myplanet/ui/mylife/AdapterMyLife.kt b/app/src/main/java/org/ole/planet/myplanet/ui/mylife/AdapterMyLife.kt index 39234cecff..b47c19adb6 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/mylife/AdapterMyLife.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/mylife/AdapterMyLife.kt @@ -13,6 +13,7 @@ import android.widget.ImageView import android.widget.LinearLayout import android.widget.TextView import androidx.appcompat.app.AppCompatActivity +import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import androidx.recyclerview.widget.RecyclerView import io.realm.Realm @@ -81,10 +82,10 @@ class AdapterMyLife(private val context: Context, private val myLifeList: List Date: Mon, 2 Dec 2024 14:37:40 -0500 Subject: [PATCH 6/7] teams: smoother joining (fixes #4815) (#4826) Co-authored-by: Gideon Okuro Co-authored-by: dogi --- app/build.gradle | 4 +-- .../myplanet/ui/team/TeamDetailFragment.kt | 28 ++++++++++++++++++- .../main/res/layout/fragment_team_detail.xml | 2 +- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e4d9efb6cc..848fc3c004 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "org.ole.planet.myplanet" minSdkVersion 26 targetSdkVersion 34 - versionCode 2117 - versionName "0.21.17" + versionCode 2118 + versionName "0.21.18" ndkVersion '21.3.6528147' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true diff --git a/app/src/main/java/org/ole/planet/myplanet/ui/team/TeamDetailFragment.kt b/app/src/main/java/org/ole/planet/myplanet/ui/team/TeamDetailFragment.kt index 13bc105782..d039299051 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/team/TeamDetailFragment.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/team/TeamDetailFragment.kt @@ -42,8 +42,34 @@ class TeamDetailFragment : BaseTeamFragment() { fragmentTeamDetailBinding.subtitle.text = team?.type if (!isMyTeam) { - fragmentTeamDetailBinding.llActionButtons.visibility = View.GONE + fragmentTeamDetailBinding.btnAddDoc.isEnabled = false + fragmentTeamDetailBinding.btnAddDoc.visibility = View.GONE + val currentTeam = team + if (currentTeam != null && !currentTeam._id.isNullOrEmpty()) { + + val isUserRequested = currentTeam.requested(user?.id, mRealm) + + if (isUserRequested) { + fragmentTeamDetailBinding.btnLeave.text = getString(R.string.requested) + fragmentTeamDetailBinding.btnLeave.isEnabled = false + } else { + fragmentTeamDetailBinding.btnLeave.text = getString(R.string.join) + fragmentTeamDetailBinding.btnLeave.setOnClickListener { + RealmMyTeam.requestToJoin(currentTeam._id!!, user, mRealm) + fragmentTeamDetailBinding.btnLeave.text = getString(R.string.requested) + fragmentTeamDetailBinding.btnLeave.isEnabled = false + } + } + } else { + throw IllegalStateException("Team or team ID is null, cannot proceed.") + } + } else { + + fragmentTeamDetailBinding.btnAddDoc.isEnabled = true + fragmentTeamDetailBinding.btnAddDoc.visibility = View.VISIBLE + fragmentTeamDetailBinding.btnLeave.isEnabled = true + fragmentTeamDetailBinding.btnLeave.visibility = View.VISIBLE fragmentTeamDetailBinding.btnLeave.setOnClickListener { AlertDialog.Builder(requireContext()).setMessage(R.string.confirm_exit) .setPositiveButton(R.string.yes) { _: DialogInterface?, _: Int -> diff --git a/app/src/main/res/layout/fragment_team_detail.xml b/app/src/main/res/layout/fragment_team_detail.xml index 99ad60c3c2..8938f536a7 100644 --- a/app/src/main/res/layout/fragment_team_detail.xml +++ b/app/src/main/res/layout/fragment_team_detail.xml @@ -63,7 +63,7 @@