move the library files in a separate folder + misc changes

- dont do such commits at home
This commit is contained in:
tibbi 2016-10-11 20:09:31 +02:00
parent 471169190c
commit 0d9d0b8b1c
57 changed files with 143 additions and 158 deletions

1
.gitignore vendored
View File

@ -8,3 +8,4 @@
/captures
release.keystore
signing.properties
/library/build

View File

@ -36,11 +36,14 @@ dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.jakewharton:butterknife:8.0.1'
compile 'com.android.support:design:23.4.0'
compile 'com.jakewharton:butterknife:8.0.1'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
apt 'com.jakewharton:butterknife-compiler:8.0.1'
debugCompile project(path: ':library', configuration: 'debug')
releaseCompile project(path: ':library', configuration: 'release')
}
repositories {

View File

@ -6,8 +6,6 @@ import android.content.pm.PackageManager;
import android.support.v4.content.ContextCompat;
import android.widget.Toast;
import com.simplemobiletools.filemanager.models.FileDirItem;
import java.text.DecimalFormat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -35,11 +33,6 @@ public class Utils {
return matcher.matches();
}
public static String getFormattedSize(FileDirItem item) {
final long size = item.getSize();
return formatSize(size);
}
public static String formatSize(long size) {
if (size <= 0)
return "0 B";

View File

@ -41,7 +41,7 @@ public class AboutActivity extends SimpleActivity {
private void setupEmail() {
final String email = mRes.getString(R.string.email);
final String appName = mRes.getString(R.string.app_name);
final String appName = mRes.getString(R.string.smtfp_app_name);
final String href = "<a href=\"mailto:" + email + "?subject=" + appName + "\">" + email + "</a>";
mEmailTV.setText(Html.fromHtml(href));
mEmailTV.setMovementMethod(LinkMovementMethod.getInstance());
@ -63,9 +63,9 @@ public class AboutActivity extends SimpleActivity {
@OnClick(R.id.about_invite)
public void inviteFriend() {
final Intent intent = new Intent();
final String text = String.format(getString(R.string.share_text), getString(R.string.app_name), getStoreUrl());
final String text = String.format(getString(R.string.share_text), getString(R.string.smtfp_app_name), getStoreUrl());
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.app_name));
intent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.smtfp_app_name));
intent.putExtra(Intent.EXTRA_TEXT, text);
intent.setType("text/plain");
startActivity(Intent.createChooser(intent, getString(R.string.invite_via)));

View File

@ -9,13 +9,13 @@ import android.support.v4.app.ActivityCompat;
import android.view.Menu;
import android.view.MenuItem;
import com.simplemobiletools.filemanager.Breadcrumbs;
import com.simplemobiletools.filemanager.Config;
import com.simplemobiletools.filemanager.Constants;
import com.simplemobiletools.filemanager.R;
import com.simplemobiletools.filemanager.Utils;
import com.simplemobiletools.filemanager.fragments.ItemsFragment;
import com.simplemobiletools.filemanager.models.FileDirItem;
import com.simplemobiletools.filepicker.models.FileDirItem;
import com.simplemobiletools.filepicker.Breadcrumbs;
import butterknife.BindView;
import butterknife.ButterKnife;

View File

@ -11,7 +11,7 @@ import android.widget.TextView;
import com.simplemobiletools.filemanager.Config;
import com.simplemobiletools.filemanager.R;
import com.simplemobiletools.filemanager.Utils;
import com.simplemobiletools.filemanager.models.FileDirItem;
import com.simplemobiletools.filepicker.models.FileDirItem;
import java.io.File;
import java.util.Calendar;
@ -50,17 +50,18 @@ public class PropertiesDialog extends DialogFragment {
final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle(getResources().getString(title));
builder.setView(infoView);
builder.setPositiveButton(R.string.ok, null);
builder.setPositiveButton(R.string.smtfp_ok, null);
return builder.create();
}
private String getItemSize() {
if (mItem.isDirectory()) {
return Utils.formatSize(directorySize(new File(mItem.getPath())));
return Utils.formatSize(getDirectorySize(new File(mItem.getPath())));
}
return Utils.getFormattedSize(mItem);
return "";
//return Utils.getFormattedSize(mItem);
}
private String formatLastModified(long ts) {
@ -69,13 +70,13 @@ public class PropertiesDialog extends DialogFragment {
return DateFormat.format("dd/MM/yyyy HH:mm", cal).toString();
}
private long directorySize(File dir) {
private long getDirectorySize(File dir) {
if (dir.exists()) {
long size = 0;
File[] files = dir.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
size += directorySize(files[i]);
size += getDirectorySize(files[i]);
} else {
size += files[i].length();
if ((!files[i].isHidden() && !dir.isHidden()) || mShowHidden)

View File

@ -39,7 +39,7 @@ import com.simplemobiletools.filemanager.adapters.ItemsAdapter;
import com.simplemobiletools.filemanager.asynctasks.CopyTask;
import com.simplemobiletools.filemanager.dialogs.PropertiesDialog;
import com.simplemobiletools.filemanager.dialogs.SelectFolderDialog;
import com.simplemobiletools.filemanager.models.FileDirItem;
import com.simplemobiletools.filepicker.models.FileDirItem;
import java.io.File;
import java.io.FileFilter;
@ -215,8 +215,8 @@ public class ItemsFragment extends android.support.v4.app.Fragment
final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle(getResources().getString(R.string.create_new));
builder.setView(newItemView);
builder.setPositiveButton(R.string.ok, null);
builder.setNegativeButton(R.string.cancel, null);
builder.setPositiveButton(R.string.smtfp_ok, null);
builder.setNegativeButton(R.string.smtfp_cancel, null);
final AlertDialog alertDialog = builder.create();
alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
@ -394,8 +394,8 @@ public class ItemsFragment extends android.support.v4.app.Fragment
final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle(getResources().getString(title));
builder.setView(renameView);
builder.setPositiveButton(R.string.ok, null);
builder.setNegativeButton(R.string.cancel, null);
builder.setPositiveButton(R.string.smtfp_ok, null);
builder.setNegativeButton(R.string.smtfp_cancel, null);
final AlertDialog alertDialog = builder.create();
alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
@ -445,8 +445,8 @@ public class ItemsFragment extends android.support.v4.app.Fragment
final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle(getResources().getString(copyString));
builder.setView(copyView);
builder.setPositiveButton(R.string.ok, null);
builder.setNegativeButton(R.string.cancel, null);
builder.setPositiveButton(R.string.smtfp_ok, null);
builder.setNegativeButton(R.string.smtfp_cancel, null);
mCopyDialog = builder.create();
mCopyDialog.show();
@ -454,7 +454,7 @@ public class ItemsFragment extends android.support.v4.app.Fragment
@Override
public void onClick(View v) {
final String destinationPath = mDestinationView.getText().toString().trim();
if (destinationPath.equals(getResources().getString(R.string.select_destination))) {
if (destinationPath.equals(getResources().getString(R.string.smtfp_select_destination))) {
Utils.showToast(getContext(), R.string.please_select_destination);
return;
}

View File

@ -10,9 +10,9 @@ import android.widget.BaseAdapter
import android.widget.ImageView
import android.widget.TextView
import com.simplemobiletools.filemanager.R
import com.simplemobiletools.filemanager.Utils
import com.simplemobiletools.filemanager.extensions.formatSize
import com.simplemobiletools.filemanager.extensions.getColoredIcon
import com.simplemobiletools.filemanager.models.FileDirItem
import com.simplemobiletools.filepicker.models.FileDirItem
import kotlinx.android.synthetic.main.list_item.view.*
class ItemsAdapter(context: Context, private val mItems: List<FileDirItem>) : BaseAdapter() {
@ -48,7 +48,7 @@ class ItemsAdapter(context: Context, private val mItems: List<FileDirItem>) : Ba
viewHolder.details.text = getChildrenCnt(item)
} else {
viewHolder.icon.setImageBitmap(mFileBmp)
viewHolder.details.text = Utils.getFormattedSize(item)
viewHolder.details.text = item.size.formatSize()
}
return view
@ -56,7 +56,7 @@ class ItemsAdapter(context: Context, private val mItems: List<FileDirItem>) : Ba
private fun getChildrenCnt(item: FileDirItem): String {
val children = item.children
return mRes.getQuantityString(R.plurals.items, children, children)
return mRes.getQuantityString(R.plurals.smtfp_items, children, children)
}
override fun getCount(): Int {

View File

@ -12,7 +12,7 @@ import com.simplemobiletools.filemanager.R
import com.simplemobiletools.filemanager.Utils
import com.simplemobiletools.filemanager.adapters.ItemsAdapter
import com.simplemobiletools.filemanager.fragments.ItemsFragment
import com.simplemobiletools.filemanager.models.FileDirItem
import com.simplemobiletools.filepicker.models.FileDirItem
import kotlinx.android.synthetic.main.directory_picker.view.*
import java.io.File
import java.util.*
@ -39,10 +39,10 @@ class SelectFolderDialog : DialogFragment() {
setupBreadcrumbs()
return AlertDialog.Builder(activity)
.setTitle(resources.getString(R.string.select_destination))
.setTitle(resources.getString(R.string.smtfp_select_destination))
.setView(dialog)
.setPositiveButton(R.string.ok) { dialog, which -> sendResult() }
.setNegativeButton(R.string.cancel, null)
.setPositiveButton(R.string.smtfp_ok) { dialog, which -> sendResult() }
.setNegativeButton(R.string.smtfp_cancel, null)
.create()
}

View File

@ -0,0 +1,12 @@
package com.simplemobiletools.filemanager.extensions
import java.text.DecimalFormat
fun Long.formatSize(): String {
if (this <= 0)
return "0 B"
val units = arrayOf("B", "kB", "MB", "GB", "TB")
val digitGroups = (Math.log10(toDouble()) / Math.log10(1024.0)).toInt()
return DecimalFormat("#,##0.#").format(this / Math.pow(1024.0, digitGroups.toDouble())) + " " + units[digitGroups]
}

View File

@ -1,19 +0,0 @@
package com.simplemobiletools.filemanager.models
class FileDirItem(val path: String, val name: String, val isDirectory: Boolean, val children: Int, val size: Long) :
Comparable<FileDirItem> {
override fun compareTo(other: FileDirItem): Int {
if (isDirectory && !other.isDirectory) {
return -1
} else if (!isDirectory && other.isDirectory) {
return 1
}
return name.toLowerCase().compareTo(other.name.toLowerCase())
}
override fun toString(): String {
return "FileDirItem{name=$name, isDirectory=$isDirectory, path=$path, children=$children, size=$size}"
}
}

View File

@ -5,7 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.simplemobiletools.filemanager.Breadcrumbs
<com.simplemobiletools.filepicker.Breadcrumbs
android:id="@+id/breadcrumbs"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@ -42,7 +42,7 @@
android:paddingBottom="@dimen/small_margin"
android:paddingRight="@dimen/small_margin"
android:paddingTop="@dimen/small_margin"
android:text="@string/select_destination"/>
android:text="@string/smtfp_select_destination"/>
<RadioGroup
android:id="@+id/dialog_radio_group"

View File

@ -6,7 +6,7 @@
android:layout_height="wrap_content"
android:orientation="vertical">
<com.simplemobiletools.filemanager.Breadcrumbs
<com.simplemobiletools.filepicker.Breadcrumbs
android:id="@+id/directory_picker_breadcrumbs"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@ -3,12 +3,12 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 24
buildToolsVersion "24.0.2"
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 16
targetSdkVersion 24
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
@ -23,10 +23,12 @@ android {
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
publishNonDefault true
}
dependencies {
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:appcompat-v7:23.4.0'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.simplemobiletools.filepicker"/>

View File

@ -1,4 +1,4 @@
package com.simplemobiletools.filemanager
package com.simplemobiletools.filepicker
import android.content.Context
import android.graphics.Point
@ -9,7 +9,7 @@ import android.view.View
import android.view.WindowManager
import android.widget.LinearLayout
import android.widget.TextView
import com.simplemobiletools.filemanager.models.FileDirItem
import com.simplemobiletools.filepicker.models.FileDirItem
class Breadcrumbs(context: Context, attrs: AttributeSet) : LinearLayout(context, attrs), View.OnClickListener {
private var mDeviceWidth: Int = 0
@ -52,8 +52,8 @@ class Breadcrumbs(context: Context, attrs: AttributeSet) : LinearLayout(context,
for (i in 0..cnt - 1) {
val child = getChildAt(i)
child.measure(View.MeasureSpec.makeMeasureSpec(usableWidth, View.MeasureSpec.AT_MOST),
View.MeasureSpec.makeMeasureSpec(childHeight, View.MeasureSpec.AT_MOST))
child.measure(MeasureSpec.makeMeasureSpec(usableWidth, MeasureSpec.AT_MOST),
MeasureSpec.makeMeasureSpec(childHeight, MeasureSpec.AT_MOST))
curWidth = child.measuredWidth
curHeight = child.measuredHeight
@ -90,18 +90,18 @@ class Breadcrumbs(context: Context, attrs: AttributeSet) : LinearLayout(context,
}
}
val parentWidth = View.MeasureSpec.getSize(widthMeasureSpec)
val parentWidth = MeasureSpec.getSize(widthMeasureSpec)
val calculatedHeight = paddingTop + paddingBottom + rowHeight * lines
setMeasuredDimension(parentWidth, calculatedHeight)
}
fun setInitialBreadcrumb(fullPath: String) {
val showFullPath = Config.newInstance(context).showFullPath
val showFullPath = false//com.simplemobiletools.filemanager.Config.newInstance(context).showFullPath
val basePath = Environment.getExternalStorageDirectory().toString()
var tempPath = fullPath
var currPath = basePath
if (!showFullPath) {
tempPath = fullPath.replace(basePath, context.getString(R.string.initial_breadcrumb) + "/")
tempPath = fullPath.replace(basePath, context.getString(R.string.smtfp_initial_breadcrumb) + "/")
} else {
currPath = "/"
}

View File

@ -56,7 +56,7 @@ class ItemsAdapter(context: Context, private val mItems: List<FileDirItem>) : Ba
private fun getChildrenCnt(item: FileDirItem): String {
val children = item.children
return mRes.getQuantityString(R.plurals.items, children, children)
return mRes.getQuantityString(R.plurals.smtfp_items, children, children)
}
override fun getCount(): Int {

View File

@ -40,10 +40,10 @@ class SelectFolderDialog : DialogFragment() {
setupBreadcrumbs()
return AlertDialog.Builder(activity)
.setTitle(resources.getString(R.string.select_destination))
.setTitle(resources.getString(R.string.smtfp_select_destination))
.setView(dialog)
.setPositiveButton(R.string.ok) { dialog, which -> sendResult() }
.setNegativeButton(R.string.cancel, null)
.setPositiveButton(R.string.smtfp_ok) { dialog, which -> sendResult() }
.setNegativeButton(R.string.smtfp_cancel, null)
.create()
}

View File

@ -8,7 +8,7 @@ fun Resources.getColoredIcon(colorId: Int, resId: Int): Bitmap {
options.inMutable = true
val bitmap = BitmapFactory.decodeResource(this, resId, options)
val paint = Paint()
val filter = PorterDuffColorFilter(getColor(colorId), PorterDuff.Mode.SRC_IN)
val filter = PorterDuffColorFilter(this.getColor(colorId), PorterDuff.Mode.SRC_IN)
paint.colorFilter = filter
val canvas = Canvas(bitmap)
canvas.drawBitmap(bitmap, 0f, 0f, paint)

View File

@ -102,7 +102,7 @@ class Breadcrumbs(context: Context, attrs: AttributeSet) : LinearLayout(context,
var tempPath = fullPath
var currPath = basePath
if (!showFullPath) {
tempPath = fullPath.replace(basePath, context.getString(R.string.initial_breadcrumb) + "/")
tempPath = fullPath.replace(basePath, context.getString(R.string.smtfp_initial_breadcrumb) + "/")
} else {
currPath = "/"
}

View File

@ -6,7 +6,7 @@
android:layout_height="wrap_content"
android:orientation="vertical">
<com.simplemobiletools.filemanager.Breadcrumbs
<com.simplemobiletools.filepicker.Breadcrumbs
android:id="@+id/directory_picker_breadcrumbs"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

Before

Width:  |  Height:  |  Size: 135 B

After

Width:  |  Height:  |  Size: 135 B

View File

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 153 B

View File

Before

Width:  |  Height:  |  Size: 122 B

After

Width:  |  Height:  |  Size: 122 B

View File

Before

Width:  |  Height:  |  Size: 133 B

After

Width:  |  Height:  |  Size: 133 B

View File

Before

Width:  |  Height:  |  Size: 181 B

After

Width:  |  Height:  |  Size: 181 B

View File

Before

Width:  |  Height:  |  Size: 206 B

After

Width:  |  Height:  |  Size: 206 B

View File

Before

Width:  |  Height:  |  Size: 245 B

After

Width:  |  Height:  |  Size: 245 B

View File

Before

Width:  |  Height:  |  Size: 283 B

After

Width:  |  Height:  |  Size: 283 B

View File

Before

Width:  |  Height:  |  Size: 325 B

After

Width:  |  Height:  |  Size: 325 B

View File

Before

Width:  |  Height:  |  Size: 372 B

After

Width:  |  Height:  |  Size: 372 B

View File

@ -0,0 +1,12 @@
<resources>
<string name="smtfp_app_name">Simple File Picker</string>
<string name="smtfp_select_destination">Ziel auswählen</string>
<string name="smtfp_initial_breadcrumb">home</string>
<string name="smtfp_ok">OK</string>
<string name="smtfp_cancel">Abbrechen</string>
<plurals name="smtfp_items">
<item quantity="one">1 Datei/Ordner</item>
<item quantity="other">%1$d Dateien/Ordner</item>
</plurals>
</resources>

View File

@ -0,0 +1,12 @@
<resources>
<string name="smtfp_app_name">Simple File Picker</string>
<string name="smtfp_select_destination">Seleziona destinazione</string>
<string name="smtfp_initial_breadcrumb">home</string>
<string name="smtfp_ok">OK</string>
<string name="smtfp_cancel">Annulla</string>
<plurals name="smtfp_items">
<item quantity="one">1 elemento</item>
<item quantity="other">%1$d elementi</item>
</plurals>
</resources>

View File

@ -0,0 +1,12 @@
<resources>
<string name="smtfp_app_name">Simple File Picker</string>
<string name="smtfp_select_destination">宛先を選択</string>
<string name="smtfp_initial_breadcrumb">ホーム</string>
<string name="smtfp_ok">OK</string>
<string name="smtfp_cancel">Cancel</string>
<plurals name="smtfp_items">
<item quantity="one">1 アイテム</item>
<item quantity="other">%1$d アイテム</item>
</plurals>
</resources>

View File

@ -0,0 +1,12 @@
<resources>
<string name="smtfp_app_name">Simple File Picker</string>
<string name="smtfp_select_destination">Selecionar destino</string>
<string name="smtfp_initial_breadcrumb">início</string>
<string name="smtfp_ok">OK</string>
<string name="smtfp_cancel">Cancelar</string>
<plurals name="smtfp_items">
<item quantity="one">1 item</item>
<item quantity="other">%1$d itens</item>
</plurals>
</resources>

View File

@ -0,0 +1,12 @@
<resources>
<string name="smtfp_app_name">Simple File Picker</string>
<string name="smtfp_select_destination">Välj mål</string>
<string name="smtfp_initial_breadcrumb">home</string>
<string name="smtfp_ok">OK</string>
<string name="smtfp_cancel">Cancel</string>
<plurals name="smtfp_items">
<item quantity="one">1 objekt</item>
<item quantity="other">%1$d objekt</item>
</plurals>
</resources>

View File

@ -0,0 +1,12 @@
<resources>
<string name="smtfp_app_name">Simple File Picker</string>
<string name="smtfp_select_destination">Select destination</string>
<string name="smtfp_initial_breadcrumb">home</string>
<string name="smtfp_ok">OK</string>
<string name="smtfp_cancel">Cancel</string>
<plurals name="smtfp_items">
<item quantity="one">1 item</item>
<item quantity="other">%1$d items</item>
</plurals>
</resources>

View File

@ -1 +1 @@
include ':app', ':simplefilepicker'
include ':app', ':library'

View File

@ -1 +0,0 @@
/build

View File

@ -1,9 +0,0 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.simplemobiletools.filepicker">
<application
android:allowBackup="true"
android:label="@string/app_name">
</application>
</manifest>

View File

@ -1,12 +0,0 @@
<resources>
<string name="app_name">Simple File Picker</string>
<string name="select_destination">Ziel auswählen</string>
<string name="initial_breadcrumb">home</string>
<string name="ok">OK</string>
<string name="cancel">Abbrechen</string>
<plurals name="items">
<item quantity="one">1 Datei/Ordner</item>
<item quantity="other">%1$d Dateien/Ordner</item>
</plurals>
</resources>

View File

@ -1,12 +0,0 @@
<resources>
<string name="app_name">Simple File Picker</string>
<string name="select_destination">Seleziona destinazione</string>
<string name="initial_breadcrumb">home</string>
<string name="ok">OK</string>
<string name="cancel">Annulla</string>
<plurals name="items">
<item quantity="one">1 elemento</item>
<item quantity="other">%1$d elementi</item>
</plurals>
</resources>

View File

@ -1,12 +0,0 @@
<resources>
<string name="app_name">Simple File Picker</string>
<string name="select_destination">宛先を選択</string>
<string name="initial_breadcrumb">ホーム</string>
<string name="ok">OK</string>
<string name="cancel">Cancel</string>
<plurals name="items">
<item quantity="one">1 アイテム</item>
<item quantity="other">%1$d アイテム</item>
</plurals>
</resources>

View File

@ -1,12 +0,0 @@
<resources>
<string name="app_name">Simple File Picker</string>
<string name="select_destination">Selecionar destino</string>
<string name="initial_breadcrumb">início</string>
<string name="ok">OK</string>
<string name="cancel">Cancelar</string>
<plurals name="items">
<item quantity="one">1 item</item>
<item quantity="other">%1$d itens</item>
</plurals>
</resources>

View File

@ -1,12 +0,0 @@
<resources>
<string name="app_name">Simple File Picker</string>
<string name="select_destination">Välj mål</string>
<string name="initial_breadcrumb">home</string>
<string name="ok">OK</string>
<string name="cancel">Cancel</string>
<plurals name="items">
<item quantity="one">1 objekt</item>
<item quantity="other">%1$d objekt</item>
</plurals>
</resources>

View File

@ -1,12 +0,0 @@
<resources>
<string name="app_name">Simple File Picker</string>
<string name="select_destination">Select destination</string>
<string name="initial_breadcrumb">home</string>
<string name="ok">OK</string>
<string name="cancel">Cancel</string>
<plurals name="items">
<item quantity="one">1 item</item>
<item quantity="other">%1$d items</item>
</plurals>
</resources>