mirror of
https://github.com/Myzel394/Alibi.git
synced 2025-06-18 23:05:26 +02:00
feat: Add contact methods
Signed-off-by: Myzel394 <50424412+Myzel394@users.noreply.github.com>
This commit is contained in:
parent
eb6baac503
commit
4e93ff4bb2
@ -2,6 +2,7 @@ package app.myzel394.alibi.ui
|
||||
|
||||
import android.os.Build
|
||||
import androidx.compose.ui.unit.dp
|
||||
import java.util.Base64
|
||||
|
||||
val BIG_PRIMARY_BUTTON_SIZE = 64.dp
|
||||
val BIG_PRIMARY_BUTTON_MAX_WIDTH = 450.dp
|
||||
@ -63,3 +64,17 @@ val CRYPTO_DONATIONS = mapOf(
|
||||
"Litecoin" to "LZayhTosZ9ToRvcbeR1gEDgb76Z7ZA2drN",
|
||||
"Filecoin" to "f1j6pm3chzhgadpf6iwmtux33jb5gccj5arkg4dsq",
|
||||
)
|
||||
|
||||
// Base64encoding these values so that bots can't easily scrape them.
|
||||
val b64d = Base64.getDecoder()
|
||||
val CONTACT_METHODS = mapOf<String, String>(
|
||||
"E-Mail" to String(b64d.decode("Z2" + "9vZ2xlLXBsYX" + "k" + "uMjlrMWFAYWxlZWFzL" + "mNvbQo=")).trim(),
|
||||
"GitHub" to String(
|
||||
b64d.decode(
|
||||
"aHR" +
|
||||
"0cHM6Ly9n" + "a" + "XRodWIuY29t" + "L015emVsMzk0L2NvbnRhY3QtbWUK"
|
||||
)
|
||||
).trim(),
|
||||
"Mastodon" to String(b64d.decode("T" + "X" + "l6Z" + "WwzOTRAbWFzdG9kb24uc29" + "jaWFsCg" + "==")).trim(),
|
||||
"Reddit" to "https://reddit.com/u/Myzel394"
|
||||
)
|
||||
|
@ -1,8 +1,12 @@
|
||||
package app.myzel394.alibi.ui.screens
|
||||
|
||||
import android.content.ClipData
|
||||
import android.content.ClipboardManager
|
||||
import android.content.Context
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.horizontalScroll
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
@ -18,6 +22,7 @@ import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.automirrored.filled.ArrowBack
|
||||
import androidx.compose.material.icons.automirrored.filled.OpenInNew
|
||||
import androidx.compose.material.icons.filled.ContentCopy
|
||||
import androidx.compose.material3.ButtonDefaults
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
@ -34,6 +39,7 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.graphics.ColorFilter
|
||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.LocalUriHandler
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
@ -43,6 +49,7 @@ import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import app.myzel394.alibi.BuildConfig
|
||||
import app.myzel394.alibi.R
|
||||
import app.myzel394.alibi.ui.CONTACT_METHODS
|
||||
import app.myzel394.alibi.ui.REPO_URL
|
||||
import app.myzel394.alibi.ui.TRANSLATION_HELP_URL
|
||||
import app.myzel394.alibi.ui.components.AboutScreen.atoms.DonationsTile
|
||||
@ -125,7 +132,7 @@ fun AboutScreen(
|
||||
)
|
||||
Text(
|
||||
stringResource(R.string.ui_about_contribute_message),
|
||||
style = MaterialTheme.typography.titleMedium,
|
||||
style = MaterialTheme.typography.bodySmall,
|
||||
)
|
||||
|
||||
val githubLabel = stringResource(R.string.accessibility_open_in_browser, REPO_URL)
|
||||
@ -203,6 +210,54 @@ fun AboutScreen(
|
||||
|
||||
DonationsTile()
|
||||
|
||||
Text(
|
||||
stringResource(R.string.ui_about_support_title),
|
||||
style = MaterialTheme.typography.titleMedium,
|
||||
)
|
||||
Text(
|
||||
stringResource(R.string.ui_about_support_message),
|
||||
style = MaterialTheme.typography.bodySmall,
|
||||
)
|
||||
Column(
|
||||
verticalArrangement = Arrangement.spacedBy(8.dp)
|
||||
) {
|
||||
val clipboardManager =
|
||||
LocalContext.current.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
|
||||
for (contact in CONTACT_METHODS) {
|
||||
val name = contact.key
|
||||
val uri = contact.value
|
||||
|
||||
Row(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.clip(MaterialTheme.shapes.medium)
|
||||
.clickable {
|
||||
val clip = ClipData.newPlainText("text", uri)
|
||||
clipboardManager.setPrimaryClip(clip)
|
||||
}
|
||||
.padding(16.dp)
|
||||
.horizontalScroll(rememberScrollState()),
|
||||
horizontalArrangement = Arrangement.spacedBy(8.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
Icon(
|
||||
Icons.Default.ContentCopy,
|
||||
contentDescription = null,
|
||||
)
|
||||
Text(
|
||||
name,
|
||||
style = MaterialTheme.typography.bodyMedium,
|
||||
fontWeight = FontWeight.Bold,
|
||||
)
|
||||
Text(
|
||||
uri,
|
||||
fontSize = MaterialTheme.typography.bodyMedium.fontSize.times(0.5),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GPGKeyOverview()
|
||||
}
|
||||
}
|
||||
|
@ -219,4 +219,6 @@
|
||||
<string name="ui_welcome_ready_title">You are ready!</string>
|
||||
<string name="ui_welcome_ready_message">You are ready to start using Alibi! Go ahead and try it out!</string>
|
||||
<string name="ui_welcome_ready_start">Start Alibi</string>
|
||||
<string name="ui_about_support_title">Get Support</string>
|
||||
<string name="ui_about_support_message">If you have any questions, feedback or face any issues, please don\'t hesitate to contact me. I\'m happy to help you! Below is a list of ways to get in touch with me:</string>
|
||||
</resources>
|
Loading…
x
Reference in New Issue
Block a user