diff options
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/Utils.kt')
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/Utils.kt | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/Utils.kt b/wallet/src/main/java/net/taler/wallet/Utils.kt index c0ccbed..5c4fedc 100644 --- a/wallet/src/main/java/net/taler/wallet/Utils.kt +++ b/wallet/src/main/java/net/taler/wallet/Utils.kt @@ -21,16 +21,28 @@ import android.net.ConnectivityManager import android.net.ConnectivityManager.NetworkCallback import android.net.NetworkCapabilities import android.net.NetworkRequest +import android.net.Uri import android.net.wifi.WifiConfiguration import android.net.wifi.WifiManager import android.net.wifi.WifiNetworkSpecifier import android.os.Build.VERSION.SDK_INT +import android.util.TypedValue import android.widget.Toast import android.widget.Toast.LENGTH_LONG import androidx.annotation.RequiresApi +import androidx.browser.customtabs.CustomTabsIntent import androidx.core.content.getSystemService +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentActivity +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json import net.taler.common.Amount import net.taler.common.AmountParserException +import net.taler.common.showError +import net.taler.common.startActivitySafe +import net.taler.wallet.backend.TalerErrorInfo + +const val CURRENCY_BTC = "BITCOINBTC" fun connectToWifi(context: Context, ssid: String) { if (SDK_INT >= 29) { @@ -94,3 +106,42 @@ fun getAmount(currency: String, text: String): Amount? { null } } + +fun Context.getAttrColor(attr: Int): Int { + val value = TypedValue() + theme.resolveAttribute(attr, value, true) + return value.data +} + +fun launchInAppBrowser(context: Context, url: String) { + val builder = CustomTabsIntent.Builder() + val intent = builder.build().intent + intent.data = Uri.parse(url) + context.startActivitySafe(intent) +} + +fun Fragment.showError(error: TalerErrorInfo) { + @Suppress("OPT_IN_USAGE") + val json = Json { + prettyPrint = true + prettyPrintIndent = " " + } + val message = json.encodeToString(error) + showError(message) +} + +fun FragmentActivity.showError(error: TalerErrorInfo) { + @Suppress("OPT_IN_USAGE") + val json = Json { + prettyPrint = true + prettyPrintIndent = " " + } + val message = json.encodeToString(error) + showError(message) +} + +fun Context.getThemeColor(attr: Int): Int { + val typedValue = TypedValue() + theme.resolveAttribute(attr, typedValue, true) + return typedValue.data +}
\ No newline at end of file |