Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit ee997ba3 authored by Marvin W.'s avatar Marvin W. 🐿️
Browse files

UI: Do not rely on SQLiteDatabase implementing AutoClosable

Fixes #1816
parent d01f3719
Loading
Loading
Loading
Loading
+8 −20
Original line number Diff line number Diff line
@@ -8,28 +8,10 @@ package org.microg.gms.ui
import android.annotation.SuppressLint
import android.os.Bundle
import android.text.format.DateUtils
import android.util.Base64
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.appcompat.app.AlertDialog
import androidx.core.view.ViewCompat
import androidx.fragment.app.DialogFragment
import androidx.fragment.app.FragmentContainerView
import androidx.fragment.app.add
import androidx.fragment.app.commit
import androidx.lifecycle.lifecycleScope
import androidx.preference.*
import com.google.android.gms.R
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.json.JSONObject
import org.microg.gms.gcm.GcmDatabase
import org.microg.gms.gcm.PushRegisterManager
import org.microg.gms.safetynet.SafetyNetDatabase
import org.microg.gms.safetynet.SafetyNetRequestType
import org.microg.gms.safetynet.SafetyNetRequestType.ATTESTATION
import org.microg.gms.safetynet.SafetyNetRequestType.RECAPTCHA

@@ -58,8 +40,14 @@ class SafetyNetAppPreferencesFragment : PreferenceFragmentCompat() {
        lifecycleScope.launchWhenResumed {
            val context = requireContext()
            val summaries =
                packageName?.let { packageName -> SafetyNetDatabase(context).use { it.getRecentRequests(packageName) } }
                    .orEmpty()
                packageName?.let { packageName ->
                    val db = SafetyNetDatabase(context)
                    try {
                        db.getRecentRequests(packageName)
                    } finally {
                        db.close()
                    }
                }.orEmpty()
            recents.removeAll()
            recents.addPreference(recentsNone)
            recentsNone.isVisible = summaries.isEmpty()
+6 −1
Original line number Diff line number Diff line
@@ -103,7 +103,12 @@ class SafetyNetPreferencesFragment : PreferenceFragmentCompat() {
        lifecycleScope.launchWhenResumed {
            val context = requireContext()
            val (apps, showAll) = withContext(Dispatchers.IO) {
                val apps = SafetyNetDatabase(requireContext()).use { it.recentApps }
                val db = SafetyNetDatabase(context)
                val apps = try {
                    db.recentApps
                } finally {
                    db.close()
                }
                apps.map { app ->
                    app to context.packageManager.getApplicationInfoIfExists(app.first)
                }.mapNotNull { (app, info) ->