Merge branch 'master' into feat/scoped-storage

# Conflicts:
#	build.gradle
#	commons/build.gradle
This commit is contained in:
darthpaul 2021-11-04 14:00:38 +00:00
commit 2438a35af8
63 changed files with 281 additions and 128 deletions

View file

@ -1,70 +0,0 @@
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
def siteUrl = 'https://github.com/SimpleMobileTools/Simple-Commons'
def gitUrl = 'https://github.com/SimpleMobileTools/Simple-Commons.git'
group = "com.simplemobiletools"
version = propVersionName
install {
repositories.mavenInstaller {
pom.project {
packaging 'aar'
name 'Simple Commons'
description = 'Some helper functions, dialogs etc used by multiple simple apps.'
url siteUrl
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
}
}
developers {
developer {
id 'tibbi'
name 'Tibor Kaputa'
email 'hello@simplemobiletools.com'
}
}
scm {
connection gitUrl
developerConnection gitUrl
url siteUrl
}
}
}
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
artifacts {
archives sourcesJar
}
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintray {
user = properties.getProperty("bintray.user")
key = properties.getProperty("bintray.apikey")
configurations = ['archives']
pkg {
repo = "simple-commons"
name = "simple-commons"
websiteUrl = siteUrl
vcsUrl = gitUrl
licenses = ["Apache-2.0"]
publish = true
version {
gpg {
sign = true
passphrase = properties.getProperty("bintray.gpg.password")
}
}
}
}

View file

@ -125,10 +125,31 @@ class CustomizationActivity : BaseSimpleActivity() {
private fun setupThemes() {
predefinedThemes.apply {
put(THEME_LIGHT, MyTheme(R.string.light_theme, R.color.theme_light_text_color, R.color.theme_light_background_color, R.color.color_primary, R.color.color_primary))
put(THEME_DARK, MyTheme(R.string.dark_theme, R.color.theme_dark_text_color, R.color.theme_dark_background_color, R.color.color_primary, R.color.color_primary))
put(
THEME_LIGHT,
MyTheme(
R.string.light_theme,
R.color.theme_light_text_color,
R.color.theme_light_background_color,
R.color.color_primary,
R.color.color_primary
)
)
put(
THEME_DARK,
MyTheme(R.string.dark_theme, R.color.theme_dark_text_color, R.color.theme_dark_background_color, R.color.color_primary, R.color.color_primary)
)
//put(THEME_SOLARIZED, MyTheme(R.string.solarized, R.color.theme_solarized_text_color, R.color.theme_solarized_background_color, R.color.theme_solarized_primary_color))
put(THEME_DARK_RED, MyTheme(R.string.dark_red, R.color.theme_dark_text_color, R.color.theme_dark_background_color, R.color.theme_dark_red_primary_color, R.color.md_red_700))
put(
THEME_DARK_RED,
MyTheme(
R.string.dark_red,
R.color.theme_dark_text_color,
R.color.theme_dark_background_color,
R.color.theme_dark_red_primary_color,
R.color.md_red_700
)
)
put(THEME_WHITE, MyTheme(R.string.white, R.color.dark_grey, android.R.color.white, android.R.color.white, R.color.color_primary))
put(THEME_BLACK_WHITE, MyTheme(R.string.black_white, android.R.color.white, android.R.color.black, android.R.color.black, R.color.md_grey_black))
put(THEME_CUSTOM, MyTheme(R.string.custom, 0, 0, 0, 0))
@ -408,11 +429,13 @@ class CustomizationActivity : BaseSimpleActivity() {
private fun handleAccentColorLayout() {
customization_accent_color_holder.beVisibleIf(curSelectedThemeId == THEME_WHITE || isCurrentWhiteTheme() || curSelectedThemeId == THEME_BLACK_WHITE || isCurrentBlackAndWhiteTheme())
customization_accent_color_label.text = getString(if (curSelectedThemeId == THEME_WHITE || isCurrentWhiteTheme()) {
R.string.accent_color_white
} else {
R.string.accent_color_black_and_white
})
customization_accent_color_label.text = getString(
if (curSelectedThemeId == THEME_WHITE || isCurrentWhiteTheme()) {
R.string.accent_color_white
} else {
R.string.accent_color_black_and_white
}
)
}
private fun isCurrentWhiteTheme() = curTextColor == DARK_GREY && curPrimaryColor == Color.WHITE && curBackgroundColor == Color.WHITE

View file

@ -14,19 +14,29 @@ import com.simplemobiletools.commons.R
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.views.ColorPickerSquare
import kotlinx.android.synthetic.main.dialog_color_picker.view.*
import java.util.*
private const val RECENT_COLORS_NUMBER = 5
// forked from https://github.com/yukuku/ambilwarna
class ColorPickerDialog(val activity: Activity, color: Int, val removeDimmedBackground: Boolean = false, showUseDefaultButton: Boolean = false,
val currentColorCallback: ((color: Int) -> Unit)? = null, val callback: (wasPositivePressed: Boolean, color: Int) -> Unit) {
lateinit var viewHue: View
lateinit var viewSatVal: ColorPickerSquare
lateinit var viewCursor: ImageView
lateinit var viewNewColor: ImageView
lateinit var viewTarget: ImageView
lateinit var newHexField: EditText
lateinit var viewContainer: ViewGroup
class ColorPickerDialog(
val activity: Activity,
color: Int,
val removeDimmedBackground: Boolean = false,
showUseDefaultButton: Boolean = false,
val currentColorCallback: ((color: Int) -> Unit)? = null,
val callback: (wasPositivePressed: Boolean, color: Int) -> Unit
) {
var viewHue: View
var viewSatVal: ColorPickerSquare
var viewCursor: ImageView
var viewNewColor: ImageView
var viewTarget: ImageView
var newHexField: EditText
var viewContainer: ViewGroup
private val baseConfig = activity.baseConfig
private val currentColorHsv = FloatArray(3)
private val backgroundColor = activity.baseConfig.backgroundColor
private val backgroundColor = baseConfig.backgroundColor
private val cornerRadius = activity.getCornerRadius()
private var isHueBeingDragged = false
private var wasDimmedBackgroundRemoved = false
@ -57,6 +67,7 @@ class ColorPickerDialog(val activity: Activity, color: Int, val removeDimmedBack
true
}
newHexField.setText(hexCode)
setupRecentColors()
}
viewHue.setOnTouchListener(OnTouchListener { v, event ->
@ -125,11 +136,11 @@ class ColorPickerDialog(val activity: Activity, color: Int, val removeDimmedBack
}
}
val textColor = activity.baseConfig.textColor
val textColor = baseConfig.textColor
val builder = AlertDialog.Builder(activity)
.setPositiveButton(R.string.ok) { dialog, which -> confirmNewColor() }
.setNegativeButton(R.string.cancel) { dialog, which -> dialogDismissed() }
.setOnCancelListener { dialogDismissed() }
.setPositiveButton(R.string.ok) { dialog, which -> confirmNewColor() }
.setNegativeButton(R.string.cancel) { dialog, which -> dialogDismissed() }
.setOnCancelListener { dialogDismissed() }
if (showUseDefaultButton) {
builder.setNeutralButton(R.string.use_default) { dialog, which -> useDefault() }
@ -149,21 +160,57 @@ class ColorPickerDialog(val activity: Activity, color: Int, val removeDimmedBack
}
}
private fun View.setupRecentColors() {
val recentColors = baseConfig.colorPickerRecentColors
if (recentColors.isNotEmpty()) {
recent_colors.beVisible()
val squareSize = context.resources.getDimensionPixelSize(R.dimen.colorpicker_hue_width)
recentColors.take(RECENT_COLORS_NUMBER).reversed().forEach { recentColor ->
val recentColorView = ImageView(context)
recentColorView.id = View.generateViewId()
recentColorView.layoutParams = ViewGroup.LayoutParams(squareSize, squareSize)
recentColorView.setFillWithStroke(recentColor, backgroundColor, cornerRadius)
recentColorView.setOnClickListener { newHexField.setText(getHexCode(recentColor)) }
recent_colors.addView(recentColorView)
recent_colors_flow.addView(recentColorView)
}
}
}
private fun dialogDismissed() {
callback(false, 0)
}
private fun confirmNewColor() {
val hexValue = newHexField.value
if (hexValue.length == 6) {
callback(true, Color.parseColor("#$hexValue"))
val newColor = if (hexValue.length == 6) {
Color.parseColor("#$hexValue")
} else {
callback(true, getColor())
getColor()
}
addRecentColor(newColor)
callback(true, newColor)
}
private fun useDefault() {
callback(true, activity.baseConfig.defaultNavigationBarColor)
val defaultColor = baseConfig.defaultNavigationBarColor
addRecentColor(defaultColor)
callback(true, defaultColor)
}
private fun addRecentColor(color: Int) {
var recentColors = baseConfig.colorPickerRecentColors
recentColors.remove(color)
if (recentColors.size >= RECENT_COLORS_NUMBER) {
val numberOfColorsToDrop = recentColors.size - RECENT_COLORS_NUMBER + 1
recentColors = LinkedList(recentColors.dropLast(numberOfColorsToDrop))
}
recentColors.addFirst(color)
baseConfig.colorPickerRecentColors = recentColors
}
private fun getHexCode(color: Int) = color.toHex().substring(1)

View file

@ -16,8 +16,10 @@ import kotlinx.android.synthetic.main.dialog_message.view.*
* @param negative negative buttons text ID (optional)
* @param callback an anonymous function
*/
class ConfirmationDialog(activity: Activity, message: String = "", messageId: Int = R.string.proceed_with_deletion, positive: Int = R.string.yes,
negative: Int = R.string.no, val callback: () -> Unit) {
class ConfirmationDialog(
activity: Activity, message: String = "", messageId: Int = R.string.proceed_with_deletion, positive: Int = R.string.yes,
negative: Int = R.string.no, val cancelOnTouchOutside: Boolean = true, val callback: () -> Unit
) {
var dialog: AlertDialog
init {
@ -25,13 +27,13 @@ class ConfirmationDialog(activity: Activity, message: String = "", messageId: In
view.message.text = if (message.isEmpty()) activity.resources.getString(messageId) else message
val builder = AlertDialog.Builder(activity)
.setPositiveButton(positive) { dialog, which -> dialogConfirmed() }
.setPositiveButton(positive) { dialog, which -> dialogConfirmed() }
if (negative != 0)
builder.setNegativeButton(negative, null)
dialog = builder.create().apply {
activity.setupDialogStuff(view, this)
activity.setupDialogStuff(view, this, cancelOnTouchOutside = cancelOnTouchOutside)
}
}

View file

@ -1,5 +1,6 @@
package com.simplemobiletools.commons.dialogs
import android.content.ActivityNotFoundException
import android.content.Intent
import android.media.MediaPlayer
import android.net.Uri
@ -18,9 +19,11 @@ import com.simplemobiletools.commons.views.MyCompatRadioButton
import kotlinx.android.synthetic.main.dialog_select_alarm_sound.view.*
import java.util.*
class SelectAlarmSoundDialog(val activity: BaseSimpleActivity, val currentUri: String, val audioStream: Int, val pickAudioIntentId: Int,
val type: Int, val loopAudio: Boolean, val onAlarmPicked: (alarmSound: AlarmSound?) -> Unit,
val onAlarmSoundDeleted: (alarmSound: AlarmSound) -> Unit) {
class SelectAlarmSoundDialog(
val activity: BaseSimpleActivity, val currentUri: String, val audioStream: Int, val pickAudioIntentId: Int,
val type: Int, val loopAudio: Boolean, val onAlarmPicked: (alarmSound: AlarmSound?) -> Unit,
val onAlarmSoundDeleted: (alarmSound: AlarmSound) -> Unit
) {
private val ADD_NEW_SOUND_ID = -2
private val view = activity.layoutInflater.inflate(R.layout.dialog_select_alarm_sound, null)
@ -42,13 +45,13 @@ class SelectAlarmSoundDialog(val activity: BaseSimpleActivity, val currentUri: S
addYourAlarms()
dialog = AlertDialog.Builder(activity)
.setOnDismissListener { mediaPlayer?.stop() }
.setPositiveButton(R.string.ok) { dialog, which -> dialogConfirmed() }
.setNegativeButton(R.string.cancel, null)
.create().apply {
activity.setupDialogStuff(view, this)
window?.volumeControlStream = audioStream
}
.setOnDismissListener { mediaPlayer?.stop() }
.setPositiveButton(R.string.ok) { dialog, which -> dialogConfirmed() }
.setNegativeButton(R.string.cancel, null)
.create().apply {
activity.setupDialogStuff(view, this)
window?.volumeControlStream = audioStream
}
}
private fun addYourAlarms() {
@ -103,11 +106,16 @@ class SelectAlarmSoundDialog(val activity: BaseSimpleActivity, val currentUri: S
alarmSound.uri == SILENT -> mediaPlayer?.stop()
alarmSound.id == ADD_NEW_SOUND_ID -> {
val action = Intent.ACTION_OPEN_DOCUMENT
Intent(action).apply {
val intent = Intent(action).apply {
type = "audio/*"
activity.startActivityForResult(this, pickAudioIntentId)
flags = flags or Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
}
try {
activity.startActivityForResult(intent, pickAudioIntentId)
} catch (e: ActivityNotFoundException) {
activity.toast(R.string.no_app_found)
}
dialog.dismiss()
}
else -> try {

View file

@ -4,10 +4,14 @@ import android.database.Cursor
fun Cursor.getStringValue(key: String) = getString(getColumnIndex(key))
fun Cursor.getStringValueOrNull(key: String) = if (isNull(getColumnIndex(key))) null else getString(getColumnIndex(key))
fun Cursor.getIntValue(key: String) = getInt(getColumnIndex(key))
fun Cursor.getIntValueOrNull(key: String) = if (isNull(getColumnIndex(key))) null else getInt(getColumnIndex(key))
fun Cursor.getLongValue(key: String) = getLong(getColumnIndex(key))
fun Cursor.getLongValueOrNull(key: String) = if (isNull(getColumnIndex(key))) null else getLong(getColumnIndex(key))
fun Cursor.getBlobValue(key: String) = getBlob(getColumnIndex(key))

View file

@ -10,7 +10,7 @@ fun ImageView.setFillWithStroke(fillColor: Int, backgroundColor: Int, cornerRadi
shape = GradientDrawable.RECTANGLE
setColor(fillColor)
setStroke(2, strokeColor)
setBackgroundDrawable(this)
background = this
if (cornerRadiusSize != 0f) {
cornerRadius = cornerRadiusSize

View file

@ -456,4 +456,9 @@ open class BaseConfig(val context: Context) {
var showCallConfirmation: Boolean
get() = prefs.getBoolean(SHOW_CALL_CONFIRMATION, false)
set(showCallConfirmation) = prefs.edit().putBoolean(SHOW_CALL_CONFIRMATION, showCallConfirmation).apply()
// color picker last used colors
internal var colorPickerRecentColors: LinkedList<Int>
get() = LinkedList(prefs.getString(COLOR_PICKER_RECENT_COLORS, null)?.lines()?.map { it.toInt() } ?: emptyList())
set(recentColors) = prefs.edit().putString(COLOR_PICKER_RECENT_COLORS, recentColors.joinToString(separator = "\n")).apply()
}

View file

@ -156,6 +156,7 @@ const val DEFAULT_TAB = "default_tab"
const val START_NAME_WITH_SURNAME = "start_name_with_surname"
const val FAVORITES = "favorites"
const val SHOW_CALL_CONFIRMATION = "show_call_confirmation"
internal const val COLOR_PICKER_RECENT_COLORS = "color_picker_recent_colors"
// licenses
internal const val LICENSE_KOTLIN = 1

View file

@ -44,4 +44,24 @@ data class SimpleContact(val rawId: Int, val contactId: Int, var name: String, v
false
}
}
fun doesHavePhoneNumber(text: String): Boolean {
return if (text.isNotEmpty()) {
val normalizedText = text.normalizePhoneNumber()
if (normalizedText.isEmpty()) {
phoneNumbers.any { phoneNumber ->
phoneNumber == text
}
} else {
phoneNumbers.any { phoneNumber ->
PhoneNumberUtils.compare(phoneNumber.normalizePhoneNumber(), normalizedText) ||
phoneNumber == text ||
phoneNumber.normalizePhoneNumber() == normalizedText ||
phoneNumber == normalizedText
}
}
} else {
false
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/color_picker_scrollview"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -11,10 +12,34 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/recent_colors"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/activity_margin"
android:layout_marginTop="@dimen/activity_margin">
<androidx.constraintlayout.helper.widget.Flow
android:id="@+id/recent_colors_flow"
android:layout_width="match_parent"
android:layout_height="0dp"
app:flow_horizontalAlign="start"
app:flow_horizontalGap="@dimen/activity_margin"
app:flow_verticalGap="@dimen/medium_margin"
app:flow_maxElementsWrap="5"
app:flow_wrapMode="chain"
app:flow_horizontalStyle="packed"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<RelativeLayout
android:id="@+id/color_picker_top_holder"
android:layout_width="match_parent"
android:layout_height="@dimen/colorpicker_size_with_padding"
android:layout_below="@+id/recent_colors"
android:gravity="center_horizontal">
<com.simplemobiletools.commons.views.ColorPickerSquare

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">النمط</string>
<string name="string_to_add">السلسلة التي تريد إضافتها</string>
<string name="rename_date_time_pattern">%Y - سنة\n%M - شهر\n%D - يوم\n%h - ساعة\n%m - دقيقة\n%s - ثانية\n%i - الرقم يزداد من 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">نسخ</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Pattern</string>
<string name="string_to_add">String to add</string>
<string name="rename_date_time_pattern">%Y - year\n%M - month\n%D - day\n%h - hour\n%m - minute\n%s - second\n%i - number increasing from 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Kopyala</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Pattern</string>
<string name="string_to_add">String to add</string>
<string name="rename_date_time_pattern">%Y - year\n%M - month\n%D - day\n%h - hour\n%m - minute\n%s - second\n%i - number increasing from 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Copy</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Patró</string>
<string name="string_to_add">Cadena per afegir</string>
<string name="rename_date_time_pattern">%Y - any\n%M - mes\n%D - dia\n%h - hora\n%m - minut\n%s - segon\n%i - nombre augmentant des de 1</string>
<string name="filename_without_txt">Nom del fitxer (sense .txt)</string>
<string name="filename_without_json">Nom del fitxer (sense .json)</string>
<!-- Copy / Move -->
<string name="copy">Copiar</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Vzor</string>
<string name="string_to_add">Přidat řetězec</string>
<string name="rename_date_time_pattern">%Y - rok\n%M - měsíc\n%D - den\n%h - hodina\n%m - minuta\n%s - sekunda\n%i - číslo narůstající od 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Kopírovat</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Pattern</string>
<string name="string_to_add">String to add</string>
<string name="rename_date_time_pattern">%Y - year\n%M - month\n%D - day\n%h - hour\n%m - minute\n%s - second\n%i - number increasing from 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Copïo</string>

View file

@ -1,7 +1,7 @@
<resources>
<string name="ok">OK</string>
<string name="cancel">Annuller</string>
<string name="nothing">Nothing</string>
<string name="nothing">Intet</string>
<string name="later">Senere</string>
<string name="save_as">Gem som</string>
<string name="file_saved">Fil gemt</string>
@ -56,8 +56,8 @@
<string name="block_number">Blokér nummer</string>
<string name="block_numbers">Blokér numre</string>
<string name="blocked_numbers">Blokerede numre</string>
<string name="export_blocked_numbers">Export blocked numbers</string>
<string name="import_blocked_numbers">Import blocked numbers</string>
<string name="export_blocked_numbers">Eksporter blokerede numre</string>
<string name="import_blocked_numbers">Importer blokerede numre</string>
<string name="must_make_default_dialer">Du skal gøre denne app til standardopkaldsappen for at gøre brug af blokerede numre.</string>
<string name="set_as_default">Gør til standard</string>
<string name="block_confirmation">Er du sikker på at du vil blokere \"%s\"?</string>
@ -104,6 +104,8 @@
<string name="pattern_renaming">Mønster</string>
<string name="string_to_add">Tekststreng der skal tilføjes</string>
<string name="rename_date_time_pattern">%Y - år\n%M - måned\n%D - dag\n%h - time\n%m - minut\n%s - sekund\n%i - tal stigende fra 1</string>
<string name="filename_without_txt">Filenavn (uden .txt)</string>
<string name="filename_without_json">Filenavn (uden .json)</string>
<!-- Copy / Move -->
<string name="copy">Kopier</string>
@ -292,7 +294,7 @@
<string name="name">Navn</string>
<string name="size">Størrelse</string>
<string name="last_modified">Senest ændret</string>
<string name="date_created">Date created</string>
<string name="date_created">Oprettelsesdato</string>
<string name="date_taken">Eksponeringsdato</string>
<string name="title">Titel</string>
<string name="filename">Filnavn</string>
@ -317,7 +319,7 @@
<string name="are_you_sure_delete">Er du sikker på at du vil slette dette?</string>
<string name="are_you_sure_recycle_bin">Er du sikker på at du vil flytte dette til papirkurven?</string>
<string name="do_not_ask_again">Spørg ikke igen i denne session</string>
<string name="do_not_show_again">Do not show again</string>
<string name="do_not_show_again">Vis ikke dette igen</string>
<string name="yes">Ja</string>
<string name="no">Nej</string>
<string name="maybe">Måske</string>
@ -341,8 +343,8 @@
<string name="fingerprint">Fingeraftryk</string>
<string name="add_fingerprint">Tilføj fingeraftryk</string>
<string name="place_finger">Sæt din finger på sensoren</string>
<string name="open_biometric_dialog">Open biometric ID verification dialog</string>
<string name="authenticate">Authenticate</string>
<string name="open_biometric_dialog">Åbn dialogboksen til verifikation af biometrisk ID</string>
<string name="authenticate">Godkend</string>
<string name="authentication_failed">Godkendelsen fejlede</string>
<string name="authentication_blocked">Godkendelse blokeret, prøv igen om lidt</string>
<string name="no_fingerprints_registered">Du har ingen registrerede fingeraftryk, tilføj nogle i indstillingerne på din enhed</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Muster</string>
<string name="string_to_add">Text zum Hinzufügen</string>
<string name="rename_date_time_pattern">%Y - Jahr\n%M - Monat\n%D - Tag\n%h - Stunde\n%m - Minute\n%s - Sekunde\n%i - Aufsteigender Index, beginnt bei 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Kopieren</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Μοτίβο</string>
<string name="string_to_add">Συμβολοσειρά για προσθήκη</string>
<string name="rename_date_time_pattern">%Y - έτος\n%M - μήνας\n%D - ημέρα\n%h - ώρα\n%m - λεπτό\n%s - δευτ/το\n%i - αύξηση αριθμού από 1</string>
<string name="filename_without_txt">Όνομα αρχείου (χωρίς .txt)</string>
<string name="filename_without_json">Όνομα αρχείου (χωρίς .json)</string>
<!-- Copy / Move -->
<string name="copy">Αντιγραφή</string>
@ -337,7 +339,7 @@
<string name="insert_pattern">Εισαγωγή μοτίβου</string>
<string name="wrong_pattern">Λάθος μοτίβο</string>
<string name="repeat_pattern">Επανάληψη μοτίβου</string>
<string name="biometrics">Biometrics</string>
<string name="biometrics">Βιομετρικά</string>
<string name="fingerprint">Δακτυλικό αποτύπωμα</string>
<string name="add_fingerprint">Προσθήκη δακτυλικού αποτυπώματος</string>
<string name="place_finger">Παρακαλώ τοποθετήστε το δάκτυλό σας στον αισθητήρα δακτυλικών αποτυπωμάτων</string>
@ -518,7 +520,7 @@
<string name="small">Μικρό</string>
<string name="medium">Μεσαίο</string>
<string name="large">Μεγάλο</string>
<string name="extra_large">Πολύ Μεγάλο</string>
<string name="extra_large">Τεράστιο</string>
<string name="password_protect_hidden_items">Κωδικός προστασίας προβολής κρυφών στοιχείων</string>
<string name="password_protect_whole_app">Κωδικός προστασίας ολόκληρης της εφαρμογής</string>
<string name="password_protect_file_deletion">Προστασία με κωδικό για διαγραφή ή μετακίνηση</string>
@ -575,7 +577,7 @@
<string name="recycle_bin_emptied">Ο Κάδος Ανακύκλωσης άδειασε επιτυχώς</string>
<string name="files_restored_successfully">Τα αρχεία επαναφέρθηκαν επιτυχώς</string>
<string name="empty_recycle_bin_confirmation">Σίγουρα θέλετε να αδειάσετε τον Κάδο Ανακύκλωσης; Τα αρχεία θα χαθούν οριστικά.</string>
<string name="recycle_bin_empty">Ο Κάδος Ανακύκλωσης είναι κενός</string>
<string name="recycle_bin_empty">Ο Κάδος Ανακύκλωσης είναι άδειος</string>
<string name="moving_recycle_bin_items_disabled">Η μετακίνηση στον Κάδο είναι ανενεργή, χρησιμοποιείστε την Επαναφορά</string>
<string name="show_the_recycle_bin">Εμφάνιση Κάδου Ανακύκλωσης</string>
<string name="hide_the_recycle_bin">Απόκρυψη Κάδου Ανακύκλωσης</string>
@ -700,7 +702,7 @@
<string name="rate_us_prompt">Γειά σας,\n\nφαίνεται ότι χρησιμοποιείτε αυτήν την εφαρμογή ήδη για αρκετό καιρό, και το εκτιμούμε πραγματικά.\n\nΑν μπορούμε να σας ζητήσουμε μια χάρη, παρακαλούμε αξιολογήστε μας στο Google Play. Αυτό θα μας βοηθούσε πολύ.\n\nΑνεξάρτητα τι αποφασίσατε, δεν θα εμφανιστεί ξανά αυτό το μήνυμα.\n\nΕυχαριστούμε!</string>
<string name="rate_our_app">Βαθμολογήστε την εφαρμογή μας παρακαλώ :)</string>
<string name="thank_you">Σας Ευχαριστούμε</string>
<string name="widget_locked_pro">Το widget είναι κλειδωμένο.\nΠαρακαλώ αναβαθμίστε σε Pro έκδοση, για να το ξεκλειδώστε το.</string>
<string name="widget_locked_pro">Το widget είναι κλειδωμένο.\nΠαρακαλώ αναβαθμίστε σε Pro έκδοση, για να το ξεκλειδώσετε.</string>
<string name="widget_locked">
<![CDATA[
Αυτό το γραφικό είναι κλειδωμένο.<br>Παρακαλώ αγοράστε το <a href="https://play.google.com/store/apps/details?id=com.simplemobiletools.thankyou">Simple Thank You</a> για να το ξεκλειδώσετε.
@ -822,7 +824,7 @@
<!-- Notes Pro -->
<string name="why_upgrade_checklists">Λίστες ελέγχου</string>
<string name="why_upgrade_different_note_per_widget">Διαφορετική σημείωση και χρώματα ανά γραφικό συστατικό</string>
<string name="why_upgrade_different_note_per_widget">Διαφορετική σημείωση και χρώματα ανά γραφικό στοιχείο</string>
<string name="why_upgrade_note_locking">Κλείδωμα Σημείωσης</string>
<!-- File Manager Pro -->

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Modelo</string>
<string name="string_to_add">Cadena para agregar</string>
<string name="rename_date_time_pattern">%Y - Año\n%M - Mes\n%D - Día\n%h - Hora\n%m - Minuto\n%s - Segundo\n%i - número aumentando desde 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Copiar</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Eredua</string>
<string name="string_to_add">Gehitzeko katea</string>
<string name="rename_date_time_pattern">%Y - urtea\n%M - hilabetea\n%D - eguna\n%h - ordua\n%m - minutua\n%s - segundoa\n%i - 1 baino gehiago den zenbakia</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Kopiatu</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">الگو</string>
<string name="string_to_add">رشته برای افزودن</string>
<string name="rename_date_time_pattern">%Y - سال\n%M - ماه\n%D - روز\n%h - ساعت\n%m - دقیقه\n%s - ثانیه\n%i - افزایش اعداد با شروع از 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">رونوشت</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Kuvio</string>
<string name="string_to_add">Lisättävä merkkijono</string>
<string name="rename_date_time_pattern">%Y - vuosi\n%M - kuukausi\n%D - päivä\n%h - tunti\n%m - minuutti\n%s - sekunti\n%i - nouseva numero, alkaen numerosta 1</string>
<string name="filename_without_txt">Tiedostonimi (ilman .txt-päätettä)</string>
<string name="filename_without_json">Tiedostonimi (ilman .json-päätettä)</string>
<!-- Copy / Move -->
<string name="copy">Kopioi</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Modèle</string>
<string name="string_to_add">Caractères à ajouter</string>
<string name="rename_date_time_pattern">%Y - année\n%M - mois\n%D - jour\n%h - heure\n%m - minute\n%s - seconde\n%i - Incrémentation débute à 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Copier</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Patrón</string>
<string name="string_to_add">Cadea a engadir</string>
<string name="rename_date_time_pattern">%Y - ano\n%M - mes\n%D - día\n%h - hora\n%m - minuto\n%s - segundo\n%i - número incremental desde 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Copiar</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Pattern</string>
<string name="string_to_add">String to add</string>
<string name="rename_date_time_pattern">%Y - year\n%M - month\n%D - day\n%h - hour\n%m - minute\n%s - second\n%i - number increasing from 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Copy</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Pattern</string>
<string name="string_to_add">String to add</string>
<string name="rename_date_time_pattern">%Y - year\n%M - month\n%D - day\n%h - hour\n%m - minute\n%s - second\n%i - number increasing from 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Kopiraj</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Minta</string>
<string name="string_to_add">String to add</string>
<string name="rename_date_time_pattern">%É - év\n%H - hónap\n%N - nap\n%ó - óra\n%p - perc\n%mp - másodperc\n%i - number increasing from 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Másolás</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Pola</string>
<string name="string_to_add">Kata untuk ditambahkan</string>
<string name="rename_date_time_pattern">%Y - tahun\n%M - bulan\n%D - hari\n%h - jam\n%m - menit\n%s - detik\n%i - angka bertambah mulai dari 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Salin</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Pola</string>
<string name="string_to_add">Kata untuk ditambahkan</string>
<string name="rename_date_time_pattern">%Y - tahun\n%M - bulan\n%D - hari\n%h - jam\n%m - menit\n%s - detik\n%i - angka bertambah mulai dari 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Salin</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Modello</string>
<string name="string_to_add">Stringa da aggiungere</string>
<string name="rename_date_time_pattern">%Y - anno\n%M - mese\n%D - giorno\n%h - ora\n%m - minuto\n%s - secondo\n%i - number increasing from 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Copia</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">דפוס</string>
<string name="string_to_add">מחרוזת להוספה</string>
<string name="rename_date_time_pattern">%Y - year\n%M - month\n%D - day\n%h - hour\n%m - minute\n%s - second\n%i - number increasing from 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">העתק</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">パターン</string>
<string name="string_to_add">追加する文字列</string>
<string name="rename_date_time_pattern">%Y - 年\n%M - 月\n%D - 日\n%h - 時\n%m - 分\n%s - 秒\n%i - 1から増える数</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">コピー</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">패턴</string>
<string name="string_to_add">추가할 문장</string>
<string name="rename_date_time_pattern">%Y - 년\n%M - 월\n%D - 일\n%h - 시\n%m - 분\n%s - 초\n%i - number increasing from 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">복사</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Modelis</string>
<string name="string_to_add">Pridedama eilutė</string>
<string name="rename_date_time_pattern">%Y - metai\n%M - mėnuo\n%D - diena\n%h - valanda\n%m - minutė\n%s - sekundė\n%i - number increasing from 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Kopijuoti</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Pattern</string>
<string name="string_to_add">String to add</string>
<string name="rename_date_time_pattern">%Y - year\n%M - month\n%D - day\n%h - hour\n%m - minute\n%s - second\n%i - number increasing from 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Kopier</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Patroon</string>
<string name="string_to_add">Tekens toevoegen</string>
<string name="rename_date_time_pattern">%Y - jaar\n%M - maand\n%D - dag\n%h - uur\n%m - minuut\n%s - seconde\n%i - getal oplopend vanaf 1</string>
<string name="filename_without_txt">Bestandsnaam (zonder .txt)</string>
<string name="filename_without_json">Bestandsnaam (zonder .json)</string>
<!-- Copy / Move -->
<string name="copy">Kopiëren</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Pattern</string>
<string name="string_to_add">String to add</string>
<string name="rename_date_time_pattern">%Y - year\n%M - month\n%D - day\n%h - hour\n%m - minute\n%s - second\n%i - number increasing from 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Kopier</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Wzór</string>
<string name="string_to_add">Ciąg do dodania</string>
<string name="rename_date_time_pattern">%Y - rok\n%M - miesiąc\n%D - dzień\n%h - godzina\n%m - minuta\n%s - sekunda\n%i - numer rosnący od 1</string>
<string name="filename_without_txt">Nazwa pliku (bez .txt)</string>
<string name="filename_without_json">Nazwa pliku (bez .json)</string>
<!-- Copy / Move -->
<string name="copy">Kopiuj</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Padrão</string>
<string name="string_to_add">Texto a adicionar</string>
<string name="rename_date_time_pattern">%Y - ano\n%M - mês\n%D - dia\n%h - hora\n%m - minuto\n%s - segundo\n%i aumento numérico de 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Copiar</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Padrão</string>
<string name="string_to_add">Texto a adicionar</string>
<string name="rename_date_time_pattern">%Y - ano\n%M - mês\n%D - dia\n%h - horas\n%m - minutos\n%s - segundos\n%i - incremento númerico a partir de 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Copiar</string>

View file

@ -103,7 +103,9 @@
<string name="simple_renaming">Простое переименование</string>
<string name="pattern_renaming">Шаблон</string>
<string name="string_to_add">Строка для добавления</string>
<string name="rename_date_time_pattern">%Y - год\n%M - месяц\n%D - день\n%h - час\n%m - минута\n%s - секунда\n%i - порядковый номер с 1</string>
<string name="rename_date_time_pattern">%Y — год\n%M — месяц\n%D — день\n%h — час\n%m — минута\n%s — секунда\n%i — порядковый номер с 1</string>
<string name="filename_without_txt">Имя файла (без .txt)</string>
<string name="filename_without_json">Имя файла (без .json)</string>
<!-- Copy / Move -->
<string name="copy">Копировать</string>
@ -519,8 +521,8 @@
</plurals>
<!-- For example: Time remaining till the alarm goes off: 6 hours, 5 minutes -->
<string name="alarm_goes_off_in">Время, оставшееся до срабатывания будильника:\n%s</string>
<string name="reminder_triggers_in">Время, оставшееся до срабатывания напоминания:\n%s</string>
<string name="alarm_goes_off_in">Время до срабатывания будильника:\n%s</string>
<string name="reminder_triggers_in">Время до срабатывания напоминания:\n%s</string>
<string name="alarm_warning">Убедитесь, что будильник работает правильно, прежде чем полагаться на него. Он может не работать должным образом из-за системных ограничений, связанных с экономией батареи.</string>
<string name="reminder_warning">Убедитесь, что напоминания работают правильно, прежде чем полагаться на них. Они могут не работать должным образом из-за системных ограничений, связанных с экономией батареи.</string>
<string name="notifications_disabled">Уведомления этого приложения отключены. Перейдите в настройки устройства и включите их.</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Vzor</string>
<string name="string_to_add">Reťazec na pridanie</string>
<string name="rename_date_time_pattern">%Y - rok\n%M - mesiac\n%D - deň\n%h - hodina\n%m - minúta\n%s - sekunda\n%i - číslo narastajúce od 1</string>
<string name="filename_without_txt">Názov súboru (bez .txt)</string>
<string name="filename_without_json">Názov súboru (bez .json)</string>
<!-- Copy / Move -->
<string name="copy">Kopírovať</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Pattern</string>
<string name="string_to_add">String to add</string>
<string name="rename_date_time_pattern">%Y - year\n%M - month\n%D - day\n%h - hour\n%m - minute\n%s - second\n%i - number increasing from 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Kopiraj</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Pattern</string>
<string name="string_to_add">String to add</string>
<string name="rename_date_time_pattern">%Y - year\n%M - month\n%D - day\n%h - hour\n%m - minute\n%s - second\n%i - number increasing from 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Копирај</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Pattern</string>
<string name="string_to_add">String to add</string>
<string name="rename_date_time_pattern">%Y - år\n%M - månad\n%D - dag\n%h - timme\n%m - minut\n%s - sekund\n%i - number increasing from 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Kopiera</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">முறை</string>
<string name="string_to_add">சேர்க்க வேண்டிய சரம்</string>
<string name="rename_date_time_pattern">%Y - ஆண்டு\n%M - மாதம்\n%D - நாள்\n%h - மணி\n%m - நிமிடம்\n%s - விநாடிகள்\n%i - 1 இலிருந்து அதிகரிக்கும் எண்</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">நகலெடுக்கவும்</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Desen</string>
<string name="string_to_add">Eklenecek dize</string>
<string name="rename_date_time_pattern">%Y - yıl\n%M - ay\n%D - gün\n%h - saat\n%m - dakika\n%s - saniye\n%i - 1\'den artan sayı</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Kopyala</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Шаблон</string>
<string name="string_to_add">Рядок для додавання</string>
<string name="rename_date_time_pattern">%Y - рік\n%M - місяць\n%D - день\n%h - година\n%m - хвилина\n%s - секунда\n%i - номер від 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Копіювати</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Mẫu</string>
<string name="string_to_add">Chuỗi để thêm</string>
<string name="rename_date_time_pattern">%Y - năm\n%M - tháng\n%D - ngày\n%h - giờ\n%m - phút\n%s - giây\n%i - số tăng từ 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Sao chép</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">图案</string>
<string name="string_to_add">要添加的字符串</string>
<string name="rename_date_time_pattern">%Y - 年\n%M - 月\n%D - 日\n%h - 时\n%m - 分\n%s - 秒\n%i - 数字从1递增</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">复制</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">格式重新命名</string>
<string name="string_to_add">添加文字</string>
<string name="rename_date_time_pattern">%Y - 年\n%M - 月\n%D - 日\n%h - 小時\n%m - 分鐘\n%s - 秒鐘\n%i - 數字從1增加起</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">複製</string>

View file

@ -104,6 +104,8 @@
<string name="pattern_renaming">Pattern</string>
<string name="string_to_add">String to add</string>
<string name="rename_date_time_pattern">%Y - year\n%M - month\n%D - day\n%h - hour\n%m - minute\n%s - second\n%i - number increasing from 1</string>
<string name="filename_without_txt">Filename (without .txt)</string>
<string name="filename_without_json">Filename (without .json)</string>
<!-- Copy / Move -->
<string name="copy">Copy</string>

2
jitpack.yml Normal file
View file

@ -0,0 +1,2 @@
jdk:
- openjdk11