Merge pull request #7 from SimpleMobileTools/master

update
This commit is contained in:
solokot 2017-12-10 18:43:38 +03:00 committed by GitHub
commit 301350fbcc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 186 additions and 122 deletions

View file

@ -7,7 +7,7 @@ buildscript {
propMinSdkVersion = 16
propTargetSdkVersion = propCompileSdkVersion
propVersionCode = 1
propVersionName = '3.1.4'
propVersionName = '3.2.6'
kotlin_version = '1.2.0'
support_libs = '27.0.2'
}

View file

@ -30,14 +30,14 @@ android {
dependencies {
compile "com.android.support:design:$support_libs"
compile "com.android.support:appcompat-v7:$support_libs"
compile 'com.github.bumptech.glide:glide:4.3.1'
compile 'com.github.bumptech.glide:glide:4.4.0'
compile 'com.booking:rtlviewpager:1.0.1'
compile 'com.andrognito.patternlockview:patternlockview:1.0.0'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile 'com.bignerdranch.android:recyclerview-multiselect:0.2'
compile 'com.github.ajalt.reprint:core:3.2.0@aar'
kapt 'com.github.bumptech.glide:compiler:4.3.1'
kapt 'com.github.bumptech.glide:compiler:4.4.0'
}
apply from: '../bintray-upload.gradle'

View file

@ -8,10 +8,7 @@ import android.view.KeyEvent
import com.simplemobiletools.commons.R
import com.simplemobiletools.commons.activities.BaseSimpleActivity
import com.simplemobiletools.commons.adapters.FilepickerItemsAdapter
import com.simplemobiletools.commons.extensions.beVisible
import com.simplemobiletools.commons.extensions.getFilenameFromPath
import com.simplemobiletools.commons.extensions.internalStoragePath
import com.simplemobiletools.commons.extensions.setupDialogStuff
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.models.FileDirItem
import com.simplemobiletools.commons.views.Breadcrumbs
import kotlinx.android.synthetic.main.dialog_filepicker.view.*
@ -126,7 +123,10 @@ class FilePickerDialog(val activity: BaseSimpleActivity,
mDialogView.apply {
filepicker_list.adapter = adapter
filepicker_breadcrumbs.setBreadcrumb(currPath)
filepicker_fastscroller.setViews(filepicker_list)
filepicker_fastscroller.allowBubbleDisplay = context.baseConfig.showInfoBubble
filepicker_fastscroller.setViews(filepicker_list) {
filepicker_fastscroller.updateBubbleText(items[it].getBubbleText())
}
}
layoutManager.onRestoreInstanceState(mScrollStates[currPath.trimEnd('/')])

View file

@ -194,5 +194,5 @@ fun Activity.getThemeId(color: Int = baseConfig.primaryColor) = when (color) {
-13154481 -> R.style.AppTheme_Blue_Grey_800
-14273992 -> R.style.AppTheme_Blue_Grey_900
else -> throw RuntimeException("Unknown theme id $color")
else -> R.style.AppTheme_Orange_700
}

View file

@ -15,7 +15,10 @@ import android.provider.DocumentsContract
import android.provider.MediaStore
import android.support.v4.provider.DocumentFile
import android.support.v7.app.AlertDialog
import android.view.*
import android.view.View
import android.view.ViewGroup
import android.view.Window
import android.view.WindowManager
import android.view.inputmethod.InputMethodManager
import android.widget.EditText
import android.widget.TextView
@ -38,24 +41,36 @@ import java.util.*
fun Activity.toast(id: Int, length: Int = Toast.LENGTH_SHORT) {
if (isOnMainThread()) {
Toast.makeText(this, id, length).show()
showToast(this, id, length)
} else {
runOnUiThread {
Toast.makeText(this, id, length).show()
showToast(this, id, length)
}
}
}
fun Activity.toast(msg: String, length: Int = Toast.LENGTH_SHORT) {
if (isOnMainThread()) {
Toast.makeText(this, msg, length).show()
showToast(this, msg, length)
} else {
runOnUiThread {
Toast.makeText(this, msg, length).show()
showToast(this, msg, length)
}
}
}
private fun showToast(activity: Activity, messageId: Int, length: Int) {
if (!activity.isActivityDestroyed()) {
Toast.makeText(activity, messageId, length).show()
}
}
private fun showToast(activity: Activity, message: String, length: Int) {
if (!activity.isActivityDestroyed()) {
Toast.makeText(activity, message, length).show()
}
}
fun Activity.showErrorToast(msg: String, length: Int = Toast.LENGTH_LONG) {
toast(String.format(getString(R.string.an_error_occurred), msg), length)
}
@ -621,7 +636,7 @@ fun Activity.setupDialogStuff(view: View, dialog: AlertDialog, titleId: Int = 0,
var title: TextView? = null
if (titleId != 0) {
title = LayoutInflater.from(this).inflate(R.layout.dialog_title, null) as TextView
title = layoutInflater.inflate(R.layout.dialog_title, null) as TextView
title.dialog_title_textview.apply {
setText(titleId)
setTextColor(baseConfig.textColor)

View file

@ -189,6 +189,7 @@ fun Context.getPermissionString(id: Int) = when (id) {
PERMISSION_CAMERA -> Manifest.permission.CAMERA
PERMISSION_RECORD_AUDIO -> Manifest.permission.RECORD_AUDIO
PERMISSION_READ_CONTACTS -> Manifest.permission.READ_CONTACTS
PERMISSION_WRITE_CONTACTS -> Manifest.permission.WRITE_CONTACTS
PERMISSION_READ_CALENDAR -> Manifest.permission.READ_CALENDAR
PERMISSION_WRITE_CALENDAR -> Manifest.permission.WRITE_CALENDAR
else -> ""

View file

@ -43,7 +43,10 @@ fun ClosedRange<Int>.random() = Random().nextInt(endInclusive - start) + start
fun Int.darkenColor(): Int {
if (this == Color.WHITE) {
return -2105377
} else if (this == Color.BLACK) {
return Color.BLACK
}
val DARK_FACTOR = 8
var hsv = FloatArray(3)
Color.colorToHSV(this, hsv)

View file

@ -27,7 +27,7 @@ fun String.isAValidFilename(): Boolean {
return true
}
val String.photoExtensions: Array<String> get() = arrayOf(".jpg", ".png", ".jpeg", ".bmp", ".webp")
val String.photoExtensions: Array<String> get() = arrayOf(".jpg", ".png", ".jpeg", ".bmp", ".webp", ".dng")
val String.videoExtensions: Array<String> get() = arrayOf(".mp4", ".mkv", ".webm", ".avi", ".3gp", ".mov", ".m4v", ".3gpp")
val String.audioExtensions: Array<String> get() = arrayOf(".mp3", ".wav", ".wma", ".ogg", ".m4a")
@ -39,6 +39,8 @@ fun String.isPng() = endsWith(".png", true)
fun String.isJpg() = endsWith(".jpg", true) or endsWith(".jpeg")
fun String.isDng() = endsWith(".dng", true)
// fast extension checks, not guaranteed to be accurate
fun String.isVideoFast() = videoExtensions.any { endsWith(it, true) }
@ -223,6 +225,7 @@ fun String.getMimeTypeFromPath(): String {
put("dll", "application/x-msdownload")
put("dll.config", "text/xml")
put("dlm", "text/dlm")
put("dng", "image/x-adobe-dng")
put("doc", "application/msword")
put("docm", "application/vnd.ms-word.document.macroEnabled.12")
put("docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document")

View file

@ -70,6 +70,7 @@ val SORT_BY_SIZE = 4
val SORT_BY_DATE_TAKEN = 8
val SORT_BY_EXTENSION = 16
val SORT_BY_PATH = 32
val SORT_BY_NUMBER = 64
val SORT_DESCENDING = 1024
// security
@ -88,5 +89,6 @@ val PERMISSION_WRITE_STORAGE = 2
val PERMISSION_CAMERA = 3
val PERMISSION_RECORD_AUDIO = 4
val PERMISSION_READ_CONTACTS = 5
val PERMISSION_READ_CALENDAR = 6
val PERMISSION_WRITE_CALENDAR = 7
val PERMISSION_WRITE_CONTACTS = 6
val PERMISSION_READ_CALENDAR = 7
val PERMISSION_WRITE_CALENDAR = 8

View file

@ -1,9 +1,8 @@
package com.simplemobiletools.commons.models
import com.simplemobiletools.commons.helpers.SORT_BY_DATE_MODIFIED
import com.simplemobiletools.commons.helpers.SORT_BY_NAME
import com.simplemobiletools.commons.helpers.SORT_BY_SIZE
import com.simplemobiletools.commons.helpers.SORT_DESCENDING
import com.simplemobiletools.commons.extensions.formatDate
import com.simplemobiletools.commons.extensions.formatSize
import com.simplemobiletools.commons.helpers.*
import java.io.File
data class FileDirItem(val path: String, val name: String, val isDirectory: Boolean, val children: Int, val size: Long) :
@ -36,9 +35,7 @@ data class FileDirItem(val path: String, val name: String, val isDirectory: Bool
}
}
else -> {
val extension = if (isDirectory) name else path.substringAfterLast('.', "")
val otherExtension = if (other.isDirectory) other.name else other.path.substringAfterLast('.', "")
result = extension.toLowerCase().compareTo(otherExtension.toLowerCase())
result = getExtension().toLowerCase().compareTo(other.getExtension().toLowerCase())
}
}
@ -48,4 +45,13 @@ data class FileDirItem(val path: String, val name: String, val isDirectory: Bool
result
}
}
fun getExtension() = if (isDirectory) name else path.substringAfterLast('.', "")
fun getBubbleText() = when {
sorting and SORT_BY_SIZE != 0 -> size.formatSize()
sorting and SORT_BY_DATE_MODIFIED != 0 -> File(path).lastModified().formatDate()
sorting and SORT_BY_EXTENSION != 0 -> getExtension().toLowerCase()
else -> name
}
}

View file

@ -17,13 +17,13 @@ import com.simplemobiletools.commons.extensions.baseConfig
// based on https://blog.stylingandroid.com/recyclerview-fastscroll-part-1
class FastScroller : FrameLayout {
var isHorizontal = false
var allowBubbleDisplay = false
private var handle: View? = null
private var bubble: TextView? = null
private var currHeight = 0
private var currWidth = 0
private var bubbleOffset = 0
private var allowBubbleDisplay = false
private var fastScrollCallback: ((Int) -> Unit)? = null
private val HANDLE_HIDE_DELAY = 1000L
@ -54,7 +54,6 @@ class FastScroller : FrameLayout {
}
})
allowBubbleDisplay = callback != null
fastScrollCallback = callback
}
@ -203,6 +202,10 @@ class FastScroller : FrameLayout {
val position = pos / currWidth
val handleWidth = handle!!.width
handle!!.x = getValueInRange(0f, (currWidth - handleWidth).toFloat(), (currWidth - handleWidth) * position)
val bubbleWidth = bubble?.width ?: 0
val newX = getValueInRange(0f, (currWidth - bubbleWidth).toFloat(), (currWidth - bubbleWidth) * position)
bubble?.x = Math.max(0f, newX)
} else {
val position = pos / currHeight
val handleHeight = handle!!.height

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 B

View file

@ -21,6 +21,7 @@
android:layout_marginBottom="@dimen/activity_margin"
android:inputType="textCapSentences"
android:singleLine="true"
android:textCursorDrawable="@null"/>
android:textCursorDrawable="@null"
android:textSize="@dimen/normal_text_size"/>
</LinearLayout>

View file

@ -18,7 +18,8 @@
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/activity_margin"
android:singleLine="true"
android:textCursorDrawable="@null"/>
android:textCursorDrawable="@null"
android:textSize="@dimen/normal_text_size"/>
<com.simplemobiletools.commons.views.MyTextView
android:id="@+id/rename_item_extension_label"
@ -32,6 +33,7 @@
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/activity_margin"
android:singleLine="true"
android:textCursorDrawable="@null"/>
android:textCursorDrawable="@null"
android:textSize="@dimen/normal_text_size"/>
</LinearLayout>

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<merge
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<ImageView
android:id="@+id/fastscroller_handle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:alpha="0"
android:background="@drawable/fastscroller_handle_horizontal"/>
<TextView
android:id="@+id/fastscroller_bubble"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/fastscroll_height"
android:alpha="0"
android:background="@drawable/fastscroller_bubble"
android:ellipsize="end"
android:lines="1"
android:padding="@dimen/medium_margin"
android:singleLine="true"
android:textSize="@dimen/normal_text_size"
tools:text="bubble"/>
</merge>

View file

@ -126,21 +126,21 @@
<string name="undo_changes">Annulla modifiche</string>
<string name="undo_changes_confirmation">Sei sicuro di annullare le tue modifiche?</string>
<string name="save_before_closing">Hai modifiche non salvate. Salvare prima di uscire?</string>
<string name="apply_to_all_apps">Apply colors to all Simple Apps</string>
<string name="share_colors_success">Colors updated successfully. A new Theme called \'Shared\' has been added, please use that for updating all app colors in the future.</string>
<string name="apply_to_all_apps">Applica i colori a tutte le app Simple</string>
<string name="share_colors_success">Colori aggiornati correttamente. È stato aggiunto un nuovo tema chiamato \'Condiviso\', usa quello per aggiornare tutti i colori dell\'app in futuro.</string>
<string name="purchase_thank_you">
<![CDATA[
Please purchase <a href="https://play.google.com/store/apps/details?id=com.simplemobiletools.thankyou">Simple Thank You</a> to unlock this function and support the development. Thanks!
Acquista <a href="https://play.google.com/store/apps/details?id=com.simplemobiletools.thankyou">Simple Thank You</a> per sbloccare questa funzione e supportare lo sviluppo. Grazie!
]]>
</string>
<!-- Themes -->
<string name="light_theme">Chiaro</string>
<string name="dark_theme">Scuro</string>
<string name="solarized">Solarized</string>
<string name="dark_red">Dark red</string>
<string name="solarized">Solarizzato</string>
<string name="dark_red">Rosso scuro</string>
<string name="custom">Personale</string>
<string name="shared">Shared</string>
<string name="shared">Condiviso</string>
<!-- What's new -->
<string name="whats_new">Novità</string>
@ -215,7 +215,7 @@
<!-- Settings -->
<string name="settings">Impostazioni</string>
<string name="customize_colors">Personalizza i colori</string>
<string name="use_english_language">Forza lingua Inglese</string>
<string name="use_english_language">Forza la lingua inglese</string>
<string name="show_hidden">Mostra file e cartelle nascosti</string>
<string name="font_size">Dimensione carattere</string>
<string name="small">Piccolo</string>
@ -225,7 +225,7 @@
<string name="password_protect_hidden_items">Proteggi con password gli elementi nascosti</string>
<string name="password_protect_whole_app">Proteggi con password tutta l\'applicazione</string>
<string name="keep_last_modified">Mantieni data/ora ultima modifica in copia/sposta/rinomina</string>
<string name="show_info_bubble">Show an info bubble at scrolling items by scrollbar dragging</string>
<string name="show_info_bubble">Mostra un fumetto informativo durante il trascinamento della barra di scorrimento</string>
<!-- About -->
<string name="about">Informazioni</string>
@ -233,7 +233,7 @@
<string name="email_label">Invia la tua opinione o i tuoi suggerimenti a</string>
<string name="more_apps_underlined"><u>Altre app</u></string>
<string name="third_party_licences_underlined"><u>Licenze di terze parti</u></string>
<string name="invite_friends_underlined"><u>Invita amico</u></string>
<string name="invite_friends_underlined"><u>Invita un amico</u></string>
<string name="share_text">Ciao, controlla %1$s su %2$s</string>
<string name="invite_via">Invita con</string>
<string name="rate_us_underlined"><u>Dacci un voto sul Play Store</u></string>
@ -247,7 +247,7 @@
<string name="donate_please">
<![CDATA[
Ciao,<br><br>
spero che tu sia contento dell\'app. Non contiene pubblicità, per favore supportane lo sviluppo acquistando l\'app <a href="https://play.google.com/store/apps/details?id=com.simplemobiletools.thankyou">Simple Thank You</a>, inoltre questa finestra non verrà più mostrata.<br><br>
spero che tu sia contento dell\'app. Non contiene pubblicità, per favore supportane lo sviluppo acquistando l\'app <a href="https://play.google.com/store/apps/details?id=com.simplemobiletools.thankyou">Simple Thank You</a>. Inoltre questa finestra non verrà più mostrata.<br><br>
Puoi trovare ulteriori opzioni di donazione <a href="http://simplemobiletools.com/donate">qui</a>.<br><br>
Grazie!
]]>
@ -274,6 +274,6 @@
<string name="autofittextview_title">AutoFitTextView (ridimensionamento testo)</string>
<string name="robolectric_title">Robolectric (ambiente di test)</string>
<string name="espresso_title">Espresso (aiutante nei test)</string>
<string name="gson_title">Gson (JSON parser)</string>
<string name="leak_canary_title">Leak Canary (memory leak detector)</string>
<string name="gson_title">Gson (parser JSON)</string>
<string name="leak_canary_title">Leak Canary (rileva leak di memoria)</string>
</resources>

View file

@ -5,18 +5,18 @@
<string name="save_as">Lagre som</string>
<string name="file_saved">Fil vellykket lagret</string>
<string name="invalid_file_format">Ugyldig filformat</string>
<string name="out_of_memory_error">Out of memory error</string>
<string name="out_of_memory_error">Feil: Tomt for minne</string>
<string name="an_error_occurred">En feil oppstod: %s</string>
<string name="open_with">Åpne med</string>
<string name="no_app_found">Ingen gyldig app funnet</string>
<string name="set_as">Sett som</string>
<string name="value_copied_to_clipboard">Value copied to clipboard</string>
<string name="value_copied_to_clipboard">Verdi kopiert til utklippstavle</string>
<!-- Permissions -->
<string name="no_storage_permissions">Storage permission is required</string>
<string name="no_contacts_permission">Contacts permission is required</string>
<string name="no_camera_permissions">Camera permission is required</string>
<string name="no_audio_permissions">Audio permission is required</string>
<string name="no_storage_permissions">Tillatelse for lagring kreves</string>
<string name="no_contacts_permission">Tillatelse for kontakter kreves</string>
<string name="no_camera_permissions">Tillatelse for kamera kreves</string>
<string name="no_audio_permissions">Tillatelse for lyd kreves</string>
<!-- Renaming -->
<string name="rename_file">Rename file</string>
@ -41,46 +41,46 @@
<string name="source">Kilde</string>
<string name="destination">Mål</string>
<string name="select_destination">Velg mål</string>
<string name="click_select_destination">Click here to select destination</string>
<string name="invalid_destination">Could not write to the selected destination</string>
<string name="please_select_destination">Please select a destination</string>
<string name="source_and_destination_same">Source and destination cannot be the same</string>
<string name="copy_failed">Could not copy the files</string>
<string name="copying">Copying&#8230;</string>
<string name="copying_success">Files copied successfully</string>
<string name="copy_move_failed">An error occurred</string>
<string name="moving">Moving&#8230;</string>
<string name="moving_success">Files moved successfully</string>
<string name="moving_success_partial">Some files could not be moved</string>
<string name="copying_success_partial">Some files could not be copied</string>
<string name="no_files_selected">No files selected</string>
<string name="saving">Saving&#8230;</string>
<string name="could_not_create_folder">Could not create folder %s</string>
<string name="could_not_create_file">Could not create file %s</string>
<string name="click_select_destination">Trykk her for å velge mål</string>
<string name="invalid_destination">Kunne ikke skrive til det valgte målet</string>
<string name="please_select_destination">Velg et mål</string>
<string name="source_and_destination_same">Kilde og mål kan ikke være det samme</string>
<string name="copy_failed">Kunne ikke kopiere filene</string>
<string name="copying">Kopierer&#8230;</string>
<string name="copying_success">Filer ble kopiert vellykket</string>
<string name="copy_move_failed">En feil oppstod</string>
<string name="moving">Flytter&#8230;</string>
<string name="moving_success">Filer ble flyttet vellykket</string>
<string name="moving_success_partial">Noen filer kunne ikke flyttes</string>
<string name="copying_success_partial">Noen filer kunne ikke kopieres</string>
<string name="no_files_selected">Ingen filer valgt</string>
<string name="saving">Lagrer&#8230;</string>
<string name="could_not_create_folder">Kunne ikke opprette mappen %s</string>
<string name="could_not_create_file">Kunne ikke opprette filen %s</string>
<!-- Create new -->
<string name="create_new">Opprett ny</string>
<string name="folder">Mappe</string>
<string name="file">Fil</string>
<string name="create_new_folder">Opprett ny mappe</string>
<string name="name_taken">A file or folder with that name already exists</string>
<string name="invalid_name">The name contains invalid characters</string>
<string name="empty_name">Please enter a name</string>
<string name="unknown_error_occurred">An unknown error occurred</string>
<string name="name_taken">En fil eller mappe med det navnet finnes allerede</string>
<string name="invalid_name">Navnet inneholder ugyldige tegn</string>
<string name="empty_name">Oppfør et navn</string>
<string name="unknown_error_occurred">En ukjent feil oppstod</string>
<!-- Copy conflicts -->
<string name="file_already_exists">File %1$s already exists</string>
<string name="file_already_exists_overwrite">File %1$s already exists. Overwrite?</string>
<string name="select_an_action">Select an action</string>
<string name="file_already_exists">Filen %1$s finnes allerede</string>
<string name="file_already_exists_overwrite">Filen %1$s finnes allerede. Overskrive?</string>
<string name="select_an_action">Velg en handling</string>
<string name="overwrite">Overskriv</string>
<string name="skip">Hopp over</string>
<string name="append">Append with \'_1\'</string>
<string name="apply_to_all">Apply to all conflicts</string>
<string name="append">Tilføy \'_1\'</string>
<string name="apply_to_all">Bruk på alle konflikter</string>
<!-- File picker -->
<string name="select_folder">Velg en mappe</string>
<string name="select_file">Velg en fil</string>
<string name="confirm_storage_access_title">Confirm external storage access</string>
<string name="confirm_storage_access_title">Bekreft ekstern lagringstilgang</string>
<string name="confirm_storage_access_text">Please choose the root folder of the SD card on the next screen, to grant write access</string>
<string name="confirm_storage_access_text_sd">If you don\'t see the SD card, try this</string>
<string name="confirm_selection">Confirm selection</string>
@ -91,10 +91,10 @@
</plurals>
<!-- Storages -->
<string name="select_storage">Select storage</string>
<string name="internal">Internal</string>
<string name="sd_card">SD Card</string>
<string name="root">Root</string>
<string name="select_storage">Velg lagring</string>
<string name="internal">Intern</string>
<string name="sd_card">SD-kort</string>
<string name="root">Rot</string>
<string name="wrong_root_selected">Wrong folder selected, please select the root folder of your SD card</string>
<!-- File properties -->
@ -118,16 +118,16 @@
<string name="background_color">Bakgrunnsfarge</string>
<string name="text_color">Tekstfarge</string>
<string name="primary_color">Primærfarge</string>
<string name="restore_defaults">Restore defaults</string>
<string name="restore_defaults">Gjenopprett standard</string>
<string name="theme">Tema</string>
<string name="changing_color_description">Changing a color will make it switch to Custom theme</string>
<string name="changing_color_description">Endring av farge vil gjøre at det skiftes til Tilpasset tema</string>
<string name="save">Lagre</string>
<string name="discard">Discard</string>
<string name="undo_changes">Undo changes</string>
<string name="undo_changes_confirmation">Are you sure you want to undo your changes?</string>
<string name="save_before_closing">You have unsaved changes. Save before exit?</string>
<string name="apply_to_all_apps">Apply colors to all Simple Apps</string>
<string name="share_colors_success">Colors updated successfully. A new Theme called \'Shared\' has been added, please use that for updating all app colors in the future.</string>
<string name="discard">Forkast</string>
<string name="undo_changes">Angre endringer</string>
<string name="undo_changes_confirmation">Er du sikker på at du vil angre dine endringer?</string>
<string name="save_before_closing">Du har endringer som ikke er lagret. Lagre før du avslutter?</string>
<string name="apply_to_all_apps">Bruk fargene i alle Simple Apps</string>
<string name="share_colors_success">Fargene er vellykket oppdatert. Et nytt tema kalt \'Delt\' er lagt til, bruk det for å oppdatere alle appenes farger i fremtiden.</string>
<string name="purchase_thank_you">
<![CDATA[
Please purchase <a href="https://play.google.com/store/apps/details?id=com.simplemobiletools.thankyou">Simple Thank You</a> to unlock this function and support the development. Thanks!
@ -137,14 +137,14 @@
<!-- Themes -->
<string name="light_theme">Lyst</string>
<string name="dark_theme">Mørkt</string>
<string name="solarized">Solarized</string>
<string name="dark_red">Dark red</string>
<string name="solarized">Solarisert</string>
<string name="dark_red">Mørkerødt</string>
<string name="custom">Tilpasset</string>
<string name="shared">Shared</string>
<string name="shared">Delt</string>
<!-- What's new -->
<string name="whats_new">What\'s new</string>
<string name="whats_new_disclaimer">* only the bigger updates are listed here, there are always some smaller improvements too</string>
<string name="whats_new">Hva er nytt</string>
<string name="whats_new_disclaimer">* bare de større oppdateringene er oppført her, det er alltid noen mindre forbedringer også</string>
<!-- Actionbar items -->
<string name="delete">Slett</string>
@ -164,14 +164,14 @@
<string name="sort_by">Sorter etter</string>
<string name="name">Navn</string>
<string name="size">Størrelse</string>
<string name="last_modified">Last modified</string>
<string name="date_taken">Date taken</string>
<string name="last_modified">Sist endret</string>
<string name="date_taken">Dato tatt</string>
<string name="title">Tittel</string>
<string name="filename">Filnavn</string>
<string name="extension">Extension</string>
<string name="ascending">Ascending</string>
<string name="descending">Descending</string>
<string name="use_for_this_folder">Use for this folder only</string>
<string name="extension">Filendelse</string>
<string name="ascending">Stigende</string>
<string name="descending">Fallende</string>
<string name="use_for_this_folder">Bruk kun for denne mappen</string>
<!-- Confirmation dialog -->
<string name="proceed_with_deletion">Er du sikker på at du vil fortsette med slettingen?</string>
@ -215,8 +215,8 @@
<!-- Settings -->
<string name="settings">Innstillinger</string>
<string name="customize_colors">Tilpass farger</string>
<string name="use_english_language">Use English language</string>
<string name="show_hidden">Show hidden files and folders</string>
<string name="use_english_language">Bruk engelsk språk</string>
<string name="show_hidden">Vis skjulte filer og mapper</string>
<string name="font_size">Skriftstørrelse</string>
<string name="small">Liten</string>
<string name="medium">Middels</string>
@ -229,21 +229,21 @@
<!-- About -->
<string name="about">Om</string>
<string name="website_label">For the source codes visit</string>
<string name="email_label">Send your feedback or suggestions to</string>
<string name="more_apps_underlined"><u>More apps</u></string>
<string name="third_party_licences_underlined"><u>Third party licences</u></string>
<string name="invite_friends_underlined"><u>Invite friends</u></string>
<string name="website_label">For kildekoden besøk</string>
<string name="email_label">Send tilbakemelding eller forslag til</string>
<string name="more_apps_underlined"><u>Flere apper</u></string>
<string name="third_party_licences_underlined"><u>Tredjepartslisenser</u></string>
<string name="invite_friends_underlined"><u>Inviter venner</u></string>
<string name="share_text">Hey, come check out %1$s at %2$s</string>
<string name="invite_via">Invite via</string>
<string name="rate_us_underlined"><u>Rate us</u></string>
<string name="donate">Donate</string>
<string name="donate_underlined"><u>Donate</u></string>
<string name="follow_us">Follow us</string>
<string name="invite_via">Inviter via</string>
<string name="rate_us_underlined"><u>Bedøm oss</u></string>
<string name="donate">Gi et bidrag</string>
<string name="donate_underlined"><u>Gi et bidrag</u></string>
<string name="follow_us">Følg oss</string>
<string name="copyright">v %1$s\nCopyright © Simple Mobile Tools %2$d</string>
<string name="additional_info">Additional info</string>
<string name="app_version">App version: %1$s</string>
<string name="device_os">Device OS: %1$s</string>
<string name="additional_info">Tilleggsinformasjon</string>
<string name="app_version">App-versjon: %1$s</string>
<string name="device_os">Operativsystem: %1$s</string>
<string name="donate_please">
<![CDATA[
Hello,<br><br>
@ -252,11 +252,11 @@
Thank you!
]]>
</string>
<string name="purchase">Purchase</string>
<string name="purchase">Kjøp</string>
<!-- License -->
<string name="notice">This app uses the following third party libraries to make my life easier. Thank you.</string>
<string name="third_party_licences">Third party licences</string>
<string name="third_party_licences">Tredjepartslisenser</string>
<string name="kotlin_title">Kotlin (programming language)</string>
<string name="subsampling_title">Subsampling Scale Image View (zoomable imageviews)</string>
<string name="glide_title">Glide (image loading and caching)</string>

View file

@ -162,14 +162,14 @@
<string name="maximum_share_reached">Nemôžete zdieľať toľko obsahu naraz</string>
<!-- Sorting -->
<string name="sort_by">Zoradiť podľa</string>
<string name="name">Názvu</string>
<string name="size">Veľkosti</string>
<string name="last_modified">Dátumu poslednej úpravy</string>
<string name="date_taken">Dátumu vytvorenia</string>
<string name="title">Názvu</string>
<string name="filename">Názvu súboru</string>
<string name="extension">Prípony</string>
<string name="sort_by">Na zoradenie použiť</string>
<string name="name">Názov</string>
<string name="size">Veľkosť</string>
<string name="last_modified">Dátum poslednej úpravy</string>
<string name="date_taken">Dátum vytvorenia</string>
<string name="title">Názov</string>
<string name="filename">Názov súboru</string>
<string name="extension">Prípona</string>
<string name="ascending">Vzostupne</string>
<string name="descending">Klesajúco</string>
<string name="use_for_this_folder">Použiť iba pre tento priečinok</string>