Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
35ef379
Init screen - EN string resources
fernandospr Apr 29, 2022
e861cd7
Init screen - ES string resources
fernandospr Apr 29, 2022
8d47f77
Import Wallet screen - EN string resources
fernandospr Apr 29, 2022
8afea9c
Import Wallet screen - ES string resources
fernandospr Apr 29, 2022
9302dc5
Server status and biometrics - EN string resources
fernandospr Apr 29, 2022
56bce87
Server status and biometrics - ES string resources
fernandospr Apr 29, 2022
bb9f3aa
Init Wallet screen - EN string resources
fernandospr Apr 29, 2022
9dbac97
Init Wallet screen - ES string resources
fernandospr Apr 29, 2022
dabad6b
Bottom navigation - EN string resources
fernandospr Apr 29, 2022
9427ced
Bottom navigation - ES string resources
fernandospr Apr 29, 2022
4277495
Wallet tab screen - EN string resources
fernandospr Apr 29, 2022
6982f18
Wallet tab screen - ES string resources
fernandospr Apr 29, 2022
fff9095
Settings tab screen - EN string resources
fernandospr Apr 29, 2022
3146205
Settings tab screen - ES string resources
fernandospr Apr 29, 2022
d019fda
Receive modal - EN string resources
fernandospr Apr 29, 2022
7458496
Receive modal - ES string resources
fernandospr Apr 29, 2022
0022b68
Swap modal - EN string resources
fernandospr Apr 29, 2022
ad74b4a
Swap modal - ES string resources
fernandospr Apr 29, 2022
698ea83
Send modal - EN string resources
fernandospr Apr 30, 2022
3cc6d2f
Send modal - ES string resources
fernandospr Apr 30, 2022
88c751a
Camera screen - EN string resources
fernandospr Apr 30, 2022
2501532
Camera screen - ES string resources
fernandospr Apr 30, 2022
94b7de8
Swap modal - string resources - fix
fernandospr Apr 30, 2022
66a2d4a
Earn modal - EN string resources
fernandospr May 1, 2022
63f9e25
Earn modal - ES string resources
fernandospr May 1, 2022
605e820
Home screen - EN/ES string resources
fernandospr May 1, 2022
4764e03
Removing text named parameter
fernandospr May 1, 2022
2f1d5cf
Send modal - string resources - fix
fernandospr May 1, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions app/src/main/java/app/terraplanet/terraplanet/BaseApplication.kt
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,16 @@ class BaseApplication : Application() {
}
}

fun startServer(auth: Auth, status: (String) -> Unit, result: (Boolean) -> Unit) {
status("Server starting...")
fun startServer(auth: Auth, status: (Int) -> Unit, result: (Boolean) -> Unit) {
status(R.string.server_status_starting)
ioThread = Thread {
val nodeDir = applicationContext.filesDir.absolutePath + "/nodejs-project"
val nodeDirReference = File(nodeDir)
if (nodeDirReference.exists()) {
AppUtil.deleteFolderRecursively(File(nodeDir))
}
AppUtil.copyAssetFolder(applicationContext.assets, "nodejs-project", nodeDir)
uiThread.post { status("Server connecting...") }
uiThread.post { status(R.string.server_status_connecting) }
try {
startNodeWithArguments(
arrayOf("node", "$nodeDir/bin/www", auth.username, auth.password)
Expand All @@ -74,25 +74,25 @@ class BaseApplication : Application() {
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
disposable?.dispose()
status("Server connected")
status(R.string.server_status_connected)
result(ping)
}, {
disposable?.dispose()
status("Server error")
status(R.string.server_status_error)
result(ping)
Log.e(LOG_E, "${it.message}")
})
}

fun checkServerStatus(status: (String) -> Unit, result: (Boolean) -> Unit) {
fun checkServerStatus(status: (Int) -> Unit, result: (Boolean) -> Unit) {
val auth = Storage.getAuth()
var value: Boolean
status("Server status...")
status(R.string.server_status)
api.getStatus()
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ data ->
value = data.status == OK
if (value) status("Server running...")
if (value) status(R.string.server_status_running)
result(value)
}, {
value = false
Expand Down
24 changes: 13 additions & 11 deletions app/src/main/java/app/terraplanet/terraplanet/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import android.os.Build
import android.os.Bundle
import androidx.activity.compose.setContent
import androidx.annotation.RequiresApi
import androidx.annotation.StringRes
import androidx.biometric.BiometricPrompt
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Column
Expand All @@ -19,6 +20,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.fragment.app.FragmentActivity
Expand All @@ -35,10 +37,10 @@ import app.terraplanet.terraplanet.util.bitmapDrawable
import app.terraplanet.terraplanet.viewmodel.State
import com.google.accompanist.systemuicontroller.rememberSystemUiController

data class LoginState(val state: State, val status: String, val loading: Boolean)
data class LoginState(val state: State, @StringRes val statusResId: Int, val loading: Boolean)

class MainActivity : FragmentActivity() {
var status = mutableStateOf(LoginState(State.LOADING, "Server status...", true))
var status = mutableStateOf(LoginState(State.LOADING, R.string.server_status, true))
val app by lazy { (applicationContext as BaseApplication) }
val api = APIServiceImpl()

Expand Down Expand Up @@ -69,7 +71,7 @@ class MainActivity : FragmentActivity() {
goToInitScreen()
}
} else {
status.value = LoginState(State.FAILED, "Server failed. Close the app and try again", false)
status.value = LoginState(State.FAILED, R.string.server_status_failed, false)
}
})
}
Expand All @@ -96,35 +98,35 @@ class MainActivity : FragmentActivity() {
object : BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
super.onAuthenticationSucceeded(result)
status.value = LoginState(State.SUCCESS, "Auth Successful", false)
status.value = LoginState(State.SUCCESS, R.string.biometrics_successful, false)
goToHomeScreen()
}

override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
super.onAuthenticationError(errorCode, errString)
status.value = LoginState(State.CANCELLED, "Auth Canceled", false)
status.value = LoginState(State.CANCELLED, R.string.biometrics_canceled, false)
}

override fun onAuthenticationFailed() {
super.onAuthenticationFailed()
status.value = LoginState(State.CANCELLED, "Error. Try Again", false)
status.value = LoginState(State.CANCELLED, R.string.biometrics_error, false)
}
}

@RequiresApi(Build.VERSION_CODES.Q)
private fun launchBiometric(context: Context, authenticationCallback: BiometricPrompt.AuthenticationCallback) {
if (checkBiometricSupport(context)) {
val biometricPromptInfo = BiometricPrompt.PromptInfo.Builder()
.setTitle("Terra Planet")
.setDescription("Authenticate with Biometrics")
.setNegativeButtonText("Cancel")
.setTitle(getString(R.string.app_name))
.setDescription(getString(R.string.biometrics_authenticate))
.setNegativeButtonText(getString(R.string.biometrics_cancel))
.setConfirmationRequired(true)
.build()

val biometricPrompt = BiometricPrompt(this, mainExecutor, authenticationCallback)
biometricPrompt.authenticate(biometricPromptInfo)
} else {
status.value = LoginState(State.SUCCESS, "Auth Successful", false)
status.value = LoginState(State.SUCCESS, R.string.biometrics_successful, false)
goToHomeScreen()
}
}
Expand Down Expand Up @@ -166,7 +168,7 @@ private fun LoadingScreen(state: LoginState, onBiometrics: () -> Unit) {
}
}
VSpacer(20)
Text(state.status, color = Color.White, textAlign = TextAlign.Center)
Text(stringResource(state.statusResId), color = Color.White, textAlign = TextAlign.Center)
VSpacer(50)
}
}
Expand Down
10 changes: 6 additions & 4 deletions app/src/main/java/app/terraplanet/terraplanet/nav/Screen.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package app.terraplanet.terraplanet.nav

import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import app.terraplanet.terraplanet.R

sealed class Screen(val title: String, val icon: Int, val route: String) {
object Wallet : Screen("Wallet", icon = R.drawable.tab_wallet, route = "wallet_tab")
object Transactions : Screen("Transactions", icon = R.drawable.tab_transactions, route = "transactions_tab")
object Settings : Screen("Settings", icon = R.drawable.tab_settings, route = "settings_tab")
sealed class Screen(@StringRes val title: Int, @DrawableRes val icon: Int, val route: String) {
object Wallet : Screen(R.string.bottom_navigation_wallet, icon = R.drawable.tab_wallet, route = "wallet_tab")
object Transactions : Screen(R.string.bottom_navigation_transactions, icon = R.drawable.tab_transactions, route = "transactions_tab")
object Settings : Screen(R.string.bottom_navigation_settings, icon = R.drawable.tab_settings, route = "settings_tab")
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,15 @@ import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.layout.onSizeChanged
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.viewinterop.AndroidView
import androidx.core.content.ContextCompat
import app.terraplanet.terraplanet.R
import app.terraplanet.terraplanet.ui.theme.TerraPlanetTheme
import app.terraplanet.terraplanet.ui.util.Center
import app.terraplanet.terraplanet.ui.util.Expandable
Expand Down Expand Up @@ -157,7 +159,7 @@ fun CameraScreen(onResult: (String) -> Unit) {
) {}
VSpacer(20)
Text(
text = "Scan a Terra address QR Code",
stringResource(R.string.camera_qr_scan),
textAlign = TextAlign.Center,
color = Color.White,
fontSize = 18.sp,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,19 @@ import androidx.compose.material.*
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.sp
import androidx.fragment.app.FragmentActivity
import androidx.navigation.NavController
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
import app.terraplanet.terraplanet.R
import app.terraplanet.terraplanet.nav.Screen
import app.terraplanet.terraplanet.nav.SetupNavGraph
import app.terraplanet.terraplanet.network.APIServiceImpl
import app.terraplanet.terraplanet.ui.theme.*
import app.terraplanet.terraplanet.ui.theme.TerraPlanetTheme
import app.terraplanet.terraplanet.ui.theme.bgColor
import app.terraplanet.terraplanet.ui.theme.bottomNavBgColor
import app.terraplanet.terraplanet.util.Biometrics
import com.google.accompanist.systemuicontroller.rememberSystemUiController

Expand Down Expand Up @@ -52,15 +56,15 @@ class HomeActivity : FragmentActivity() {
@RequiresApi(Build.VERSION_CODES.Q)
fun launchBiometric(
context: Context,
description: String = "Authenticate with Biometrics",
description: String,
authenticationCallback: BiometricPrompt.AuthenticationCallback,
unsupportedCallback: () -> Unit
) {
if (Biometrics.checkBiometricSupport(context)) {
val biometricPromptInfo = BiometricPrompt.PromptInfo.Builder()
.setTitle("Terra Planet")
.setTitle(getString(R.string.app_name))
.setDescription(description)
.setNegativeButtonText("Cancel")
.setNegativeButtonText(getString(R.string.biometrics_cancel))
.setConfirmationRequired(true)
.build()

Expand Down Expand Up @@ -109,8 +113,8 @@ private fun BottomNavigation(navController: NavController) {

tabs.forEach { tab ->
BottomNavigationItem(
icon = { Icon(painter = painterResource(id = tab.icon), tab.title) },
label = { Text(tab.title, fontSize = 12.sp) },
icon = { Icon(painter = painterResource(id = tab.icon), stringResource(tab.title)) },
label = { Text(text = stringResource(tab.title), fontSize = 12.sp) },
selected = currentRoute == tab.route,
onClick = {
navController.navigate(tab.route) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@ import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import app.terraplanet.terraplanet.R
import app.terraplanet.terraplanet.network.APIServiceImpl
import app.terraplanet.terraplanet.ui.theme.MainColor
import app.terraplanet.terraplanet.ui.theme.TerraPlanetTheme
Expand Down Expand Up @@ -82,7 +84,7 @@ private fun ImportWallet(loading: Boolean, onContinue: (String) -> Unit) {
) {
VSpacer(30)
Text(
"Import Wallet",
stringResource(R.string.import_wallet_import_wallet),
fontSize = 40.sp,
fontWeight = FontWeight.Bold,
)
Expand All @@ -91,7 +93,7 @@ private fun ImportWallet(loading: Boolean, onContinue: (String) -> Unit) {
modifier = Modifier.fillMaxWidth()
) {
Text(
"Seed Phrase:",
stringResource(R.string.import_wallet_seed_phrase),
fontSize = 18.sp,
fontWeight = FontWeight.Bold
)
Expand All @@ -118,7 +120,7 @@ private fun ImportWallet(loading: Boolean, onContinue: (String) -> Unit) {
)
) {
Text(
text = "CONTINUE",
stringResource(R.string.import_wallet_continue),
color = MainColor,
fontWeight = FontWeight.Bold,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
Expand Down Expand Up @@ -79,7 +80,7 @@ private fun InitScreen(onWallet: () -> Unit, onImport: () -> Unit) {
)
VSpacer(30)
Text(
text = "The open source non-custodial Terra Wallet.",
stringResource(R.string.init_app_description),
color = Color.White,
fontSize = 18.sp,
textAlign = TextAlign.Center,
Expand All @@ -93,7 +94,7 @@ private fun InitScreen(onWallet: () -> Unit, onImport: () -> Unit) {
shape = RoundedCornerShape(25)
) {
Text(
text = "CREATE NEW WALLET",
stringResource(R.string.init_create_wallet),
color = MainColor,
fontWeight = FontWeight.Bold,
)
Expand All @@ -110,7 +111,7 @@ private fun InitScreen(onWallet: () -> Unit, onImport: () -> Unit) {
)
) {
Text(
text = "IMPORT WALLET",
stringResource(R.string.init_import_wallet),
color = Color.White,
fontWeight = FontWeight.Bold,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import app.terraplanet.terraplanet.R
import app.terraplanet.terraplanet.model.Wallet
import app.terraplanet.terraplanet.network.APIServiceImpl
import app.terraplanet.terraplanet.network.APIServiceImpl.Companion.LOG_E
Expand Down Expand Up @@ -86,7 +88,7 @@ private fun YourWallet(loading: Boolean, wallet: Wallet?, onContinue: () -> Unit
) {
VSpacer(30)
Text(
"Your Wallet",
stringResource(R.string.init_wallet_your_wallet),
fontSize = 40.sp,
fontWeight = FontWeight.Bold,
)
Expand All @@ -95,7 +97,7 @@ private fun YourWallet(loading: Boolean, wallet: Wallet?, onContinue: () -> Unit
modifier = Modifier.fillMaxWidth()
) {
Text(
"Address:",
stringResource(R.string.init_wallet_address),
fontSize = 18.sp,
fontWeight = FontWeight.Bold
)
Expand All @@ -120,7 +122,7 @@ private fun YourWallet(loading: Boolean, wallet: Wallet?, onContinue: () -> Unit
modifier = Modifier.fillMaxWidth()
) {
Text(
"Seed Phrase:",
stringResource(R.string.init_wallet_seed_phrase),
fontSize = 18.sp,
fontWeight = FontWeight.Bold
)
Expand All @@ -139,9 +141,7 @@ private fun YourWallet(loading: Boolean, wallet: Wallet?, onContinue: () -> Unit
)
}
VSpacer(10)
Text(
"Please store your seed phrase securely. We would not be able to recover your wallet if you lose it. We suggest copying it on paper.",
)
Text(stringResource(R.string.init_wallet_description))
Expandable()
Button(
onClick = { onContinue() },
Expand All @@ -154,7 +154,7 @@ private fun YourWallet(loading: Boolean, wallet: Wallet?, onContinue: () -> Unit
)
) {
Text(
text = "CONTINUE",
stringResource(R.string.init_wallet_continue),
color = MainColor,
fontWeight = FontWeight.Bold,
)
Expand Down
Loading