Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion app/src/main/java/com/paulcoding/hviewer/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog
import com.paulcoding.hviewer.extensions.setSecureScreen
Expand Down Expand Up @@ -77,7 +78,7 @@ fun UpdateDialog() {
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.spacedBy(12.dp)
) {
Text("Checking for update")
Text(stringResource(R.string.checking_for_update))
HLoading()
}
}
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/java/com/paulcoding/hviewer/helper/Toast.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.paulcoding.hviewer.helper

import android.widget.Toast
import androidx.annotation.StringRes
import com.paulcoding.hviewer.MainApp.Companion.appContext

fun makeToast(message: String?) {
Expand All @@ -11,4 +12,12 @@ fun makeToast(message: String?) {
message,
Toast.LENGTH_SHORT
).show()
}

fun makeToast(@StringRes stringId: Int) {
Toast.makeText(
appContext,
appContext.getString(stringId),
Toast.LENGTH_SHORT
).show()
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,16 @@ import androidx.compose.runtime.mutableLongStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.paulcoding.hviewer.BuildConfig
import com.paulcoding.hviewer.R
import com.paulcoding.hviewer.helper.makeToast

@Composable
fun H7Tap(modifier: Modifier = Modifier, onDevModeChange: (Boolean) -> Unit) {
val context = LocalContext.current
var tapCount by remember { mutableIntStateOf(0) }
var lastTapTime by remember { mutableLongStateOf(0L) }
TextButton(
Expand All @@ -26,7 +30,7 @@ fun H7Tap(modifier: Modifier = Modifier, onDevModeChange: (Boolean) -> Unit) {
} else {
tapCount++
if (tapCount >= 7) {
makeToast("Dev Mode Enabled")
makeToast(context.getString(R.string.dev_mode_enabled))
onDevModeChange(true)
tapCount = 0
}
Expand All @@ -35,6 +39,6 @@ fun H7Tap(modifier: Modifier = Modifier, onDevModeChange: (Boolean) -> Unit) {
}, modifier = modifier
.padding(16.dp)
) {
Text("Version ${BuildConfig.VERSION_NAME}")
Text(stringResource(R.string.app_version, BuildConfig.VERSION_NAME))
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.platform.LocalContext
import com.paulcoding.hviewer.MainActivity
import com.paulcoding.hviewer.R
import com.paulcoding.hviewer.helper.makeToast
import java.util.concurrent.TimeUnit

Expand All @@ -29,7 +30,7 @@ fun ToastExit() {
}

if (showToast) {
makeToast("Press again to exit")
makeToast(R.string.press_again_to_exit)
showToast = false
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,10 @@ import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.lifecycle.viewmodel.compose.viewModel
import com.paulcoding.hviewer.R
import com.paulcoding.hviewer.model.PostItem
import com.paulcoding.hviewer.model.Tag
import com.paulcoding.hviewer.ui.component.HBackIcon
Expand All @@ -35,6 +38,7 @@ fun FavoritePage(
navToCustomTag: (PostItem, Tag) -> Unit,
goBack: () -> Boolean
) {
val context = LocalContext.current
val viewModel: AppViewModel = viewModel()
val snackbarHostState = remember { SnackbarHostState() }
val scope = rememberCoroutineScope()
Expand All @@ -45,8 +49,8 @@ fun FavoritePage(

scope.launch {
val result = snackbarHostState.showSnackbar(
"${post.name} removed from favorite",
"Undo",
context.getString(R.string.post_removed_from_favorite, post.name),
context.getString(R.string.undo),
duration = SnackbarDuration.Short
)
when (result) {
Expand All @@ -64,7 +68,7 @@ fun FavoritePage(
modifier = Modifier.fillMaxSize(),
snackbarHost = { SnackbarHost(snackbarHostState) },
topBar = {
TopAppBar(title = { Text("Favorite") }, navigationIcon = {
TopAppBar(title = { Text(stringResource(R.string.favorite)) }, navigationIcon = {
HBackIcon { goBack() }
})
}) { paddings ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
import androidx.compose.ui.res.stringResource
import com.paulcoding.hviewer.R
import com.paulcoding.hviewer.helper.crashLogDir
import com.paulcoding.hviewer.helper.makeToast
import com.paulcoding.hviewer.helper.readFile
Expand Down Expand Up @@ -49,7 +51,7 @@ fun EditorPage(
Scaffold(
modifier = Modifier.fillMaxSize(),
topBar = {
TopAppBar(title = { Text(text = "Editor") }, navigationIcon = {
TopAppBar(title = { Text(text = stringResource(R.string.editor)) }, navigationIcon = {
HBackIcon {
goBack()
}
Expand All @@ -59,7 +61,7 @@ fun EditorPage(
Github.refreshLocalConfigs()
localSoftwareKeyboardController?.hide()
goBack()
makeToast("Saved!")
makeToast(R.string.saved)
}
})
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import com.paulcoding.hviewer.R
import com.paulcoding.hviewer.model.PostHistory
import com.paulcoding.hviewer.model.PostItem
import com.paulcoding.hviewer.model.Tag
Expand All @@ -40,7 +42,7 @@ fun HistoryPage(
modifier = Modifier.fillMaxSize(),
topBar = {
TopAppBar(
title = { Text("History") },
title = { Text(stringResource(R.string.history)) },
navigationIcon = {
HBackIcon { goBack() }
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.paulcoding.hviewer.R
import com.paulcoding.hviewer.helper.makeToast
import com.paulcoding.hviewer.preference.Preferences
import com.paulcoding.hviewer.ui.component.HOTP
Expand All @@ -26,6 +29,7 @@ import kotlinx.coroutines.delay
@Composable
fun LockPage(onUnlocked: () -> Unit) {
val focusRequester = remember { FocusRequester() }
val context = LocalContext.current

LaunchedEffect(Unit) {
delay(300)
Expand All @@ -35,7 +39,7 @@ fun LockPage(onUnlocked: () -> Unit) {
Scaffold(
topBar = {
TopAppBar(
title = { Text("Lock") },
title = { Text(stringResource(R.string.lock)) },
)
}
) { paddings ->
Expand All @@ -45,13 +49,13 @@ fun LockPage(onUnlocked: () -> Unit) {
.fillMaxSize()
) {
Column(modifier = Modifier.padding(16.dp)) {
Text("Enter your PIN:")
Text(stringResource(R.string.enter_your_pin))
Spacer(modifier = Modifier.height(12.dp))
HOTP(modifier = Modifier.focusRequester(focusRequester)) {
if (it == Preferences.pin) {
onUnlocked()
} else {
makeToast("Wrong PIN")
makeToast(context.getString(R.string.wrong_pin))
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,14 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog
import androidx.compose.ui.window.DialogProperties
import androidx.lifecycle.viewmodel.compose.viewModel
import com.paulcoding.hviewer.MainActivity
import com.paulcoding.hviewer.MainApp.Companion.appContext
import com.paulcoding.hviewer.R
import com.paulcoding.hviewer.extensions.isScrolledToEnd
import com.paulcoding.hviewer.extensions.isScrollingUp
import com.paulcoding.hviewer.extensions.openInBrowser
Expand Down Expand Up @@ -158,7 +160,7 @@ fun ImageModal(url: String, dismiss: () -> Unit) {
modifier = Modifier
.zoomable(
state = zoomableState,
onClick = { makeToast("Double click to dismiss") },
onClick = { makeToast(R.string.double_click_to_dismiss) },
onDoubleClick = doubleClickToZoomListener
)
) {
Expand Down Expand Up @@ -201,7 +203,7 @@ fun PostImage(url: String, onTap: () -> Unit = {}) {
context.openInBrowser(url)
},
text = {
Text("Open in browser")
Text(stringResource(R.string.open_in_browser))
}
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,12 @@ 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.style.TextDecoration
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.paulcoding.hviewer.MainActivity
import com.paulcoding.hviewer.R
import com.paulcoding.hviewer.extensions.openInBrowser
import com.paulcoding.hviewer.model.PostItem
import com.paulcoding.hviewer.model.Tag
Expand Down Expand Up @@ -141,10 +143,10 @@ fun PostCard(
)
}
if (size != null) {
Text(text = "Size: $size")
Text(text = stringResource(R.string.post_size, size))
}
if (views != null) {
Text(text = "Views: $views")
Text(text = stringResource(R.string.post_views, views))
}
postItem.tags?.run {
forEach { tag ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,13 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.unit.dp
import androidx.lifecycle.viewmodel.compose.viewModel
import com.paulcoding.hviewer.MainApp.Companion.appContext
import com.paulcoding.hviewer.R
import com.paulcoding.hviewer.extensions.isScrolledToEnd
import com.paulcoding.hviewer.model.PostItem
import com.paulcoding.hviewer.model.Tag
Expand Down Expand Up @@ -79,7 +81,7 @@ fun SearchPage(
}

Scaffold(topBar = {
TopAppBar(title = { Text("Search") }, navigationIcon = {
TopAppBar(title = { Text(stringResource(R.string.search)) }, navigationIcon = {
HBackIcon { goBack() }
},
actions = {
Expand All @@ -102,7 +104,9 @@ fun SearchPage(
imeAction = ImeAction.Go
),
keyboardActions = KeyboardActions(onGo = { submit() }),
modifier = Modifier.focusRequester(focusRequester).weight(1f),
modifier = Modifier
.focusRequester(focusRequester)
.weight(1f),
trailingIcon = {
if (query.isNotEmpty())
HIcon(Icons.Outlined.Clear) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,13 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog
import androidx.compose.ui.window.DialogProperties
import com.paulcoding.hviewer.R


@Composable
Expand Down Expand Up @@ -76,7 +78,7 @@ fun InputRemoteModal(
text,
onValueChange = { text = it },
modifier = Modifier.focusRequester(focusRequester),
label = { Text("Remote Url") },
label = { Text(stringResource(R.string.remote_url)) },
keyboardOptions = KeyboardOptions(
keyboardType = KeyboardType.Text,
imeAction = ImeAction.Send
Expand All @@ -96,7 +98,7 @@ fun InputRemoteModal(
}
Spacer(modifier = Modifier.width(12.dp))
TextButton(onClick = { submit() }) {
Text("OK", color = MaterialTheme.colorScheme.primary)
Text(stringResource(R.string.ok), color = MaterialTheme.colorScheme.primary)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog
import com.paulcoding.hviewer.R
import com.paulcoding.hviewer.ui.component.HOTP

@Composable
Expand All @@ -32,18 +34,21 @@ fun LockModal(onDismiss: () -> Unit, onPinConfirmed: (String) -> Unit = {}) {
Dialog(onDismissRequest = { dismiss() }) {
Surface {
Column(modifier = Modifier.padding(16.dp)) {
Text("Enter New Pin")
Text(stringResource(R.string.enter_new_pin))
HOTP {
pin = it
}
Spacer(modifier = Modifier.height(12.dp))
Row(modifier = Modifier.align(Alignment.End)) {
TextButton(onClick = { dismiss() }) {
Text("Cancel", color = MaterialTheme.colorScheme.error)
Text(
stringResource(R.string.cancel),
color = MaterialTheme.colorScheme.error
)
}
Spacer(modifier = Modifier.width(12.dp))
TextButton(onClick = { onPinConfirmed(pin) }) {
Text("OK", color = MaterialTheme.colorScheme.primary)
Text(stringResource(R.string.ok), color = MaterialTheme.colorScheme.primary)
}
}
}
Expand Down
Loading
Loading