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

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

Location: Add UI to configure custom location service URL

parent 7b6e7d12
Loading
Loading
Loading
Loading
+5 −13
Original line number Diff line number Diff line
@@ -6,24 +6,16 @@
package org.microg.gms.auth.phone

import android.annotation.TargetApi
import android.app.Activity
import android.app.Dialog
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.*
import android.telephony.SmsMessage
import android.text.Html
import android.text.TextUtils
import android.util.Log
import android.view.Gravity
import android.view.ViewGroup.LayoutParams
import android.widget.Button
import android.widget.TextView
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.core.os.bundleOf
import com.google.android.gms.auth.api.phone.SmsRetriever
import org.microg.gms.ui.buildAlertDialog
import org.microg.gms.utils.getApplicationLabel

private const val TAG = "UserConsentPrompt"
@@ -53,10 +45,10 @@ class UserConsentPromptActivity : AppCompatActivity() {
    @TargetApi(16)
    private fun showConsentDialog(callingPackage: String, message: String) {
        val view = layoutInflater.inflate(R.layout.dialog_sms_user_consent, null)
        val dialog = AlertDialog.Builder(this).apply {
            setCancelable(false)
            setView(view)
        }.create()
        val dialog = buildAlertDialog()
            .setCancelable(false)
            .setView(view)
            .create()
        val appName = packageManager.getApplicationLabel(callingPackage)

        view.findViewById<TextView>(android.R.id.title).text = Html.fromHtml(getString(R.string.sms_user_consent_title, Html.escapeHtml(appName)))
+1 −1
Original line number Diff line number Diff line
@@ -336,7 +336,7 @@ class SettingsProvider : ContentProvider() {
                Location.CELL_ICHNAEA -> editor.putBoolean(key, value as Boolean)
                Location.CELL_LEARNING -> editor.putBoolean(key, value as Boolean)
                Location.GEOCODER_NOMINATIM -> editor.putBoolean(key, value as Boolean)
                Location.ICHNAEA_ENDPOINT -> editor.putString(key, value as String)
                Location.ICHNAEA_ENDPOINT -> (value as String).let { if (it.isBlank()) editor.remove(key) else editor.putString(key, it) }
                else -> throw IllegalArgumentException("Unknown key: $key")
            }
        }
+8 −0
Original line number Diff line number Diff line
@@ -17,11 +17,13 @@ import android.view.View
import androidx.annotation.AttrRes
import androidx.annotation.ColorInt
import androidx.annotation.IdRes
import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat
import androidx.databinding.BindingAdapter
import androidx.navigation.NavController
import androidx.navigation.navOptions
import androidx.navigation.ui.R
import com.google.android.material.dialog.MaterialAlertDialogBuilder

fun PackageManager.getApplicationInfoIfExists(packageName: String?, flags: Int = 0): ApplicationInfo? = packageName?.let {
    try {
@@ -57,6 +59,12 @@ val Context.systemAnimationsEnabled: Boolean
        return duration != 0f && transition != 0f
    }

fun Context.buildAlertDialog() = try {
    // Try material design first
    MaterialAlertDialogBuilder(this)
} catch (e: Exception) {
    AlertDialog.Builder(this)
}

@ColorInt
fun Context.resolveColor(@AttrRes resid: Int): Int? {
+3 −2
Original line number Diff line number Diff line
@@ -76,12 +76,13 @@ class PushNotificationAppFragment : PreferenceFragmentCompat() {
    private fun showUnregisterConfirm(unregisterConfirmDesc: Int) {
        val pm = requireContext().packageManager
        val applicationInfo = pm.getApplicationInfoIfExists(packageName)
        AlertDialog.Builder(requireContext())
        requireContext().buildAlertDialog()
                .setTitle(getString(R.string.gcm_unregister_confirm_title, applicationInfo?.loadLabel(pm)
                        ?: packageName))
                .setMessage(unregisterConfirmDesc)
                .setPositiveButton(android.R.string.yes) { _, _ -> unregister() }
                .setNegativeButton(android.R.string.no) { _, _ -> }.show()
                .setNegativeButton(android.R.string.no) { _, _ -> }
                .show()
    }

    private fun unregister() {
+1 −1
Original line number Diff line number Diff line
@@ -438,7 +438,7 @@ class NetworkLocationService : LifecycleService(), WifiDetailsCallback, CellDeta
        writer.println("Last cell location: $lastCellLocation${if (lastCellLocation == lastLocation) " (active)" else ""}")
        writer.println("Wifi settings: ichnaea=${settings.wifiIchnaea} moving=${settings.wifiMoving} learn=${settings.wifiLearning}")
        writer.println("Cell settings: ichnaea=${settings.cellIchnaea} learn=${settings.cellLearning}")
        writer.println("Ichnaea settings: endpoint=${settings.ichneaeEndpoint}")
        writer.println("Ichnaea settings: endpoint=${settings.ichneaeEndpoint} contribute=${settings.ichnaeaContribute}")
        writer.println("Wifi scan cache size=${wifiScanCache.size()} hits=${wifiScanCache.hitCount()} miss=${wifiScanCache.missCount()} puts=${wifiScanCache.putCount()} evicts=${wifiScanCache.evictionCount()}")
        writer.println("GPS location buffer size=${gpsLocationBuffer.size} first=${gpsLocationBuffer.firstOrNull()?.elapsedMillis?.formatRealtime()} last=${gpsLocationBuffer.lastOrNull()?.elapsedMillis?.formatRealtime()}")
        cache.dump(writer)
Loading