From 47a67b71fb294599cfb862f302f8ca3dc203f215 Mon Sep 17 00:00:00 2001 From: rlam20 <52076121+rlam20@users.noreply.github.com> Date: Wed, 3 Jul 2024 11:04:58 -0400 Subject: [PATCH 1/4] actions: less warnings is more (fixes #3699) (#3703) Co-authored-by: Gideon Okuro Co-authored-by: dogi --- app/build.gradle | 4 ++-- .../myplanet/ui/team/MyTeamsDetailFragment.kt | 14 +++++++++----- app/src/main/res/values-ar/strings.xml | 1 + app/src/main/res/values-es/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-ne/strings.xml | 3 ++- app/src/main/res/values-so/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 8 files changed, 18 insertions(+), 8 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 39c736ec40..15a602428d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "org.ole.planet.myplanet" minSdkVersion 21 targetSdkVersion 34 - versionCode 1647 - versionName "0.16.47" + versionCode 1648 + versionName "0.16.48" 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/MyTeamsDetailFragment.kt b/app/src/main/java/org/ole/planet/myplanet/ui/team/MyTeamsDetailFragment.kt index 2fbc315fb3..593171b39b 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/team/MyTeamsDetailFragment.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/team/MyTeamsDetailFragment.kt @@ -1,6 +1,7 @@ package org.ole.planet.myplanet.ui.team import android.content.DialogInterface +import android.os.Build import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -10,6 +11,7 @@ import android.widget.ArrayAdapter import android.widget.LinearLayout import android.widget.ListView import android.widget.TextView +import androidx.annotation.RequiresApi import androidx.appcompat.app.AlertDialog import androidx.fragment.app.Fragment import androidx.recyclerview.widget.LinearLayoutManager @@ -43,6 +45,7 @@ import org.ole.planet.myplanet.utilities.Utilities import java.util.Date import java.util.UUID +@RequiresApi(Build.VERSION_CODES.O) class MyTeamsDetailFragment : BaseNewsFragment() { private lateinit var fragmentMyTeamsDetailBinding: FragmentMyTeamsDetailBinding lateinit var tvDescription: TextView @@ -50,7 +53,7 @@ class MyTeamsDetailFragment : BaseNewsFragment() { var teamId: String? = null var team: RealmMyTeam? = null lateinit var listContent: ListView - lateinit var tabLayout: TabLayout + private lateinit var tabLayout: TabLayout lateinit var dbService: DatabaseService private lateinit var rvDiscussion: RecyclerView lateinit var llRv: LinearLayout @@ -113,7 +116,7 @@ class MyTeamsDetailFragment : BaseNewsFragment() { map["messageType"] = team?.teamType!! map["messagePlanetCode"] = team?.teamPlanetCode!! createNews(map, mRealm, user, imageList) - rvDiscussion.adapter?.notifyDataSetChanged() + rvDiscussion.adapter?.notifyItemInserted(0) }.setNegativeButton(R.string.cancel, null).show() } @@ -233,14 +236,15 @@ class MyTeamsDetailFragment : BaseNewsFragment() { llRv.visibility = View.GONE tab.setText(s) listContent.adapter = object : ArrayAdapter(requireActivity(), android.R.layout.simple_list_item_1, data) { - override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { - var convertView = convertView + override fun getView(position: Int, viewConverted: View?, parent: ViewGroup): View { + var convertView = viewConverted if (convertView == null) { convertView = LayoutInflater.from(activity) .inflate(android.R.layout.simple_list_item_1, parent, false) } val tv = convertView!!.findViewById(android.R.id.text1) - tv.text = getItem(position)?.name + " (" + getVisitCount(mRealm, getItem(position)?.name, teamId) + getString(R.string.visits) + ")" + val formattedText = getString(R.string.visit_count, getItem(position)?.name ?: "", getVisitCount(mRealm, getItem(position)?.name, teamId), getString(R.string.visits)) + tv.text = formattedText return convertView } } diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 8ba1172472..2a813cee63 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -1046,6 +1046,7 @@ جارٍ فحص الخادم إصدار Apk أقل من المسموح. يرجى تحديث التطبيق إلى أحدث إصدار. إضافة ملاحظة (اختياري) + %s (%d %s) الفرق غير متوفرة كوكب %s التقديمات غير متاحة diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index e113de955d..fabf3b6219 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -1046,6 +1046,7 @@ verificando el servidor la versión de la aplicación está por debajo de la permitida. Actualice la aplicación a la última versión. Agregar una nota (opcional) + %s (%d %s) equipos no disponibles %s Planeta envíos no disponibles diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 44c2fe74f3..1dbbcabaec 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -1046,6 +1046,7 @@ vérification du serveur la version de l\'app est inférieure à celle autorisée. veuillez mettre à jour l\'application vers la dernière version. Ajouter une note (optionnel) + %s (%d %s) équipes non disponibles %s planète soumissions non disponibles diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml index 4afa29909d..8ab701350e 100644 --- a/app/src/main/res/values-ne/strings.xml +++ b/app/src/main/res/values-ne/strings.xml @@ -1046,7 +1046,8 @@ सर्भर जाँच गर्दै एप संस्करण अनुमत संस्करणभन्दा कम छ। कृपया अनुप्रयोगलाई नवीनतम संस्करणमा अद्यावधिक गर्नुहोस्। नोट थप्नुहोस् (वैकल्पिक) - टोलीहरू उपलब्ध छैनन् + %s (%d %s) + टोलीहरू उपलब्ध छैनन्%s ग्रह पेशाहरू उपलब्ध छैनन् अघिल्ला कुराकानीहरू छैनन् diff --git a/app/src/main/res/values-so/strings.xml b/app/src/main/res/values-so/strings.xml index 5a31b31005..d682020cd4 100644 --- a/app/src/main/res/values-so/strings.xml +++ b/app/src/main/res/values-so/strings.xml @@ -1046,6 +1046,7 @@ hubinta server-ka nooca app-ga waa ka hooseeyaa kan la oggol yahay. fadlan cusbooneysii app-ka nooca ugu dambeeya. Ku dar falanqeey (ixtiyaacsi ah) + %s (%d %s) kooxaha aan la heli karin %s Meerah soo gudbin lama heli karo diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7844aec845..76235546bc 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1046,6 +1046,7 @@ checking server app is below allowed version. please update the app to the latest version. add a note (optional) + %s (%d %s)teams not available %s\'s Planet submissions not available From 1a83d564920a86b62e89331eeae319c682a7b249 Mon Sep 17 00:00:00 2001 From: Elijah Date: Wed, 3 Jul 2024 14:58:47 -0500 Subject: [PATCH 2/4] actions: less is more (fixes #3777) --- .../myplanet/ui/courses/CourseStepFragment.kt | 4 +- .../myplanet/ui/exam/TakeExamFragment.kt | 4 +- .../planet/myplanet/utilities/CameraUtils.kt | 77 ++++++++++++------- 3 files changed, 54 insertions(+), 31 deletions(-) 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 fd61014b61..e2a44d1c8d 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 @@ -25,7 +25,7 @@ import org.ole.planet.myplanet.model.RealmSubmission import org.ole.planet.myplanet.model.RealmUserModel import org.ole.planet.myplanet.service.UserProfileDbHandler import org.ole.planet.myplanet.ui.exam.TakeExamFragment -import org.ole.planet.myplanet.utilities.CameraUtils.CapturePhoto +import org.ole.planet.myplanet.utilities.CameraUtils.capturePhoto import org.ole.planet.myplanet.utilities.CameraUtils.ImageCaptureCallback import org.ole.planet.myplanet.utilities.Constants import org.ole.planet.myplanet.utilities.Constants.showBetaFeature @@ -164,7 +164,7 @@ class CourseStepFragment : BaseContainerFragment(), ImageCaptureCallback { takeExam.arguments = b homeItemClickListener?.openCallFragment(takeExam) context?.let { it1 -> - CapturePhoto(it1, object : ImageCaptureCallback { + capturePhoto(it1, object : ImageCaptureCallback { override fun onImageCapture(fileUri: String?) { } }) 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 b698a9102f..e47cb79318 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 @@ -21,7 +21,7 @@ import org.ole.planet.myplanet.model.RealmExamQuestion import org.ole.planet.myplanet.model.RealmSubmission import org.ole.planet.myplanet.model.RealmSubmission.Companion.createSubmission import org.ole.planet.myplanet.service.UserProfileDbHandler -import org.ole.planet.myplanet.utilities.CameraUtils.CapturePhoto +import org.ole.planet.myplanet.utilities.CameraUtils.capturePhoto import org.ole.planet.myplanet.utilities.CameraUtils.ImageCaptureCallback import org.ole.planet.myplanet.utilities.JsonParserUtils.getStringAsJsonArray import org.ole.planet.myplanet.utilities.JsonUtils.getString @@ -210,7 +210,7 @@ class TakeExamFragment : BaseExamFragment(), View.OnClickListener, CompoundButto try { if (isCertified && !isMySurvey) { context?.let { it1 -> - CapturePhoto(it1, object : ImageCaptureCallback { + capturePhoto(it1, object : ImageCaptureCallback { override fun onImageCapture(fileUri: String?) { } }) diff --git a/app/src/main/java/org/ole/planet/myplanet/utilities/CameraUtils.kt b/app/src/main/java/org/ole/planet/myplanet/utilities/CameraUtils.kt index 59efc46ee8..b9caaf7d66 100644 --- a/app/src/main/java/org/ole/planet/myplanet/utilities/CameraUtils.kt +++ b/app/src/main/java/org/ole/planet/myplanet/utilities/CameraUtils.kt @@ -6,24 +6,28 @@ import android.content.pm.PackageManager import android.graphics.ImageFormat import android.graphics.SurfaceTexture import android.hardware.camera2.* +import android.hardware.camera2.params.OutputConfiguration +import android.hardware.camera2.params.SessionConfiguration import android.media.ImageReader +import android.os.Build import android.os.Handler import android.os.HandlerThread -import android.util.Size import android.view.Surface import androidx.core.content.ContextCompat import java.io.File import java.io.FileOutputStream import java.util.* +import java.util.concurrent.Executors object CameraUtils { private var cameraDevice: CameraDevice? = null private var captureSession: CameraCaptureSession? = null private var imageReader: ImageReader? = null private var backgroundHandler: Handler - private var backgroundThread: HandlerThread + private var backgroundThread: HandlerThread = HandlerThread("CameraBackground") + @JvmStatic - fun CapturePhoto(context: Context, callback: ImageCaptureCallback) { + fun capturePhoto(context: Context, callback: ImageCaptureCallback) { if (ContextCompat.checkSelfPermission( context, Manifest.permission.CAMERA @@ -48,11 +52,7 @@ object CameraUtils { captureBuilder?.addTarget(imageReader!!.surface) captureBuilder?.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE) - val captureCallback = object : CameraCaptureSession.CaptureCallback() { - override fun onCaptureCompleted(session: CameraCaptureSession, request: CaptureRequest, result: TotalCaptureResult) { - super.onCaptureCompleted(session, request, result) - } - } + val captureCallback = object : CameraCaptureSession.CaptureCallback() {} captureSession?.stopRepeating() captureSession?.abortCaptures() @@ -83,13 +83,6 @@ object CameraUtils { val manager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager try { val cameraId = manager.cameraIdList[0] // Assuming we want to use the first (rear) camera - val characteristics = manager.getCameraCharacteristics(cameraId) - val map = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP) - val largest = Collections.max( - listOf(*map!!.getOutputSizes(ImageFormat.JPEG)), - CompareSizesByArea() - ) - val reader = ImageReader.newInstance(largest.width, largest.height, ImageFormat.JPEG, 2) manager.openCamera(cameraId, object : CameraDevice.StateCallback() { override fun onOpened(camera: CameraDevice) { cameraDevice = camera @@ -117,9 +110,10 @@ object CameraUtils { val surface = Surface(texture) val captureRequestBuilder = cameraDevice!!.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW) captureRequestBuilder.addTarget(surface) - cameraDevice!!.createCaptureSession( - listOf(surface), - object : CameraCaptureSession.StateCallback() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + val outputConfigurations = listOf(OutputConfiguration(surface)) + val executor = Executors.newSingleThreadExecutor() + val stateCallback = object : CameraCaptureSession.StateCallback() { override fun onConfigured(session: CameraCaptureSession) { if (cameraDevice == null) return captureSession = session @@ -139,9 +133,44 @@ object CameraUtils { } override fun onConfigureFailed(session: CameraCaptureSession) {} - }, - backgroundHandler - ) + } + + val sessionConfiguration = SessionConfiguration( + SessionConfiguration.SESSION_REGULAR, + outputConfigurations, + executor, + stateCallback + ) + + cameraDevice!!.createCaptureSession(sessionConfiguration) + } else { + @Suppress("DEPRECATION") + cameraDevice!!.createCaptureSession( + listOf(surface), + object : CameraCaptureSession.StateCallback() { + override fun onConfigured(session: CameraCaptureSession) { + if (cameraDevice == null) return + captureSession = session + try { + captureRequestBuilder.set( + CaptureRequest.CONTROL_AF_MODE, + CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE + ) + captureSession!!.setRepeatingRequest( + captureRequestBuilder.build(), + null, + backgroundHandler + ) + } catch (e: CameraAccessException) { + e.printStackTrace() + } + } + + override fun onConfigureFailed(session: CameraCaptureSession) {} + }, + backgroundHandler + ) + } } catch (e: CameraAccessException) { e.printStackTrace() } @@ -151,13 +180,7 @@ object CameraUtils { fun onImageCapture(fileUri: String?) } - private class CompareSizesByArea : Comparator { - override fun compare(lhs: Size, rhs: Size): Int { - return java.lang.Long.signum(lhs.width.toLong() * lhs.height - rhs.width.toLong() * rhs.height) - } - } init { - backgroundThread = HandlerThread("CameraBackground") backgroundThread.start() backgroundHandler = Handler(backgroundThread.looper) } From 5dbfdad3ddacd34ae444606f56fe2f38c09aaec2 Mon Sep 17 00:00:00 2001 From: Elijah Whang <59347000+ewhang5@users.noreply.github.com> Date: Wed, 3 Jul 2024 15:06:23 -0500 Subject: [PATCH 3/4] Update strings.xml --- app/src/main/res/values-ne/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml index 4afa29909d..f71b84ba06 100644 --- a/app/src/main/res/values-ne/strings.xml +++ b/app/src/main/res/values-ne/strings.xml @@ -1046,6 +1046,7 @@ सर्भर जाँच गर्दै एप संस्करण अनुमत संस्करणभन्दा कम छ। कृपया अनुप्रयोगलाई नवीनतम संस्करणमा अद्यावधिक गर्नुहोस्। नोट थप्नुहोस् (वैकल्पिक) + %s (%d %s) टोलीहरू उपलब्ध छैनन् %s ग्रह पेशाहरू उपलब्ध छैनन् From fe3e21fd7d316bfbb5889296dc505ea1ad8f6e37 Mon Sep 17 00:00:00 2001 From: dogi Date: Mon, 8 Jul 2024 14:13:37 -0400 Subject: [PATCH 4/4] Update build.gradle --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 62d8b3212d..1997250c14 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "org.ole.planet.myplanet" minSdkVersion 21 targetSdkVersion 34 - versionCode 1651 - versionName "0.16.51" + versionCode 1657 + versionName "0.16.57" ndkVersion '21.3.6528147' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true