diff --git a/build.gradle b/build.gradle
index 35a89e426..9066cf8fa 100644
--- a/build.gradle
+++ b/build.gradle
@@ -80,6 +80,7 @@ dependencies {
provided 'com.squareup.dagger:dagger-compiler:1.2.2'
compile 'com.squareup.dagger:dagger:1.2.2'
+ compile 'com.nononsenseapps:filepicker:2.5.0'
compile 'com.android.support:design:23.1.1'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.jakewharton.timber:timber:4.1.0'
diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index 73c2de20d..05e9dab5e 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -416,7 +416,17 @@
android:theme="@style/TranslucentDialog" />
+
+
+
+
+
+
+
diff --git a/src/main/java/com/todoroo/astrid/backup/FilePickerBuilder.java b/src/main/java/com/todoroo/astrid/backup/FilePickerBuilder.java
deleted file mode 100644
index 43391ebe8..000000000
--- a/src/main/java/com/todoroo/astrid/backup/FilePickerBuilder.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * Copyright (c) 2012 Todoroo Inc
- *
- * See the file "LICENSE" for the full license governing this code.
- */
-package com.todoroo.astrid.backup;
-
-import android.content.Context;
-import android.content.DialogInterface;
-import android.support.v7.app.AlertDialog;
-
-import com.todoroo.andlib.utility.AndroidUtilities;
-
-import org.tasks.R;
-
-import java.io.File;
-import java.io.FilenameFilter;
-
-import timber.log.Timber;
-
-public class FilePickerBuilder extends AlertDialog.Builder implements DialogInterface.OnClickListener {
-
- public interface OnFilePickedListener {
- void onFilePicked(String filePath);
- }
-
- private OnFilePickedListener onFilePickedListener;
- private File path;
- private String[] files;
- private FilenameFilter filter;
-
- public FilePickerBuilder(Context ctx, int titleRes, File path, int theme) {
- super(ctx, theme);
- filter = new FilenameFilter() {
- @Override
- public boolean accept(File dir, String s) {
- File file = new File(dir, s);
- return file.isFile();
- }
- };
- setTitle(ctx.getString(titleRes));
- setPath(path);
- }
-
- public FilePickerBuilder setOnFilePickedListener(OnFilePickedListener onFilePickedListener) {
- this.onFilePickedListener = onFilePickedListener;
- return this;
- }
-
- private void setPath(final File path) {
- if (path != null && path.exists()) {
- this.path = path;
- File[] filesAsFile = path.listFiles(filter);
- AndroidUtilities.sortFilesByDateDesc(filesAsFile);
-
- files = new String[filesAsFile.length];
- for(int i = 0; i < files.length; i++) {
- files[i] = filesAsFile[i].getName();
- }
-
- setItems(files, this);
- } else {
- Timber.e("Cannot access sdcard.");
- setMessage(R.string.DLG_error_sdcard + "sdcard");
- }
- }
-
- @Override
- public void onClick(DialogInterface dialog, int which) {
- if (onFilePickedListener != null) {
- onFilePickedListener.onFilePicked(path.getAbsolutePath() + "/" + files[which]);
- }
- }
-}
diff --git a/src/main/java/com/todoroo/astrid/files/FileExplore.java b/src/main/java/com/todoroo/astrid/files/FileExplore.java
deleted file mode 100644
index ed5cf18d1..000000000
--- a/src/main/java/com/todoroo/astrid/files/FileExplore.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/**
- * Copyright (c) 2012 Todoroo Inc
- *
- * See the file "LICENSE" for the full license governing this code.
- */
-package com.todoroo.astrid.files;
-
-import android.app.Dialog;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnCancelListener;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.os.Environment;
-import android.support.v4.graphics.drawable.DrawableCompat;
-import android.support.v7.app.AlertDialog;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.ListAdapter;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import org.tasks.R;
-import org.tasks.dialogs.DialogBuilder;
-import org.tasks.injection.InjectingAppCompatActivity;
-import org.tasks.preferences.ActivityPreferences;
-import org.tasks.preferences.PermissionRequestor;
-
-import java.io.File;
-import java.io.FilenameFilter;
-import java.util.ArrayList;
-
-import javax.inject.Inject;
-
-import timber.log.Timber;
-
-/**
- * Based on the Android-File-Explore project by Manish Burman
- * https://github.com/mburman/Android-File-Explore
- *
- */
-public class FileExplore extends InjectingAppCompatActivity {
-
- private static final int DIALOG_LOAD_FILE = 1000;
-
- public static final String RESULT_FILE_SELECTED = "fileSelected"; //$NON-NLS-1$
- public static final String RESULT_DIR_SELECTED = "dirSelected"; //$NON-NLS-1$
- public static final String EXTRA_DIRECTORIES_SELECTABLE = "directoriesSelectable"; //$NON-NLS-1$
-
- ArrayList str = new ArrayList<>(); // Stores names of traversed directories
- private Boolean firstLvl = true; // Check if the first level of the directory structure is the one showing
-
- @Inject DialogBuilder dialogBuilder;
- @Inject ActivityPreferences activityPreferences;
- @Inject PermissionRequestor permissionRequestor;
-
- private Item[] fileList;
- private File path;
- private String chosenFile;
- private String upString;
- private boolean directoryMode;
- private ListAdapter adapter;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- if (permissionRequestor.requestFileWritePermission()) {
- showDialog();
- }
- }
-
- private void showDialog() {
- activityPreferences.applyDialogTheme();
-
- if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
- path = new File(Environment.getExternalStorageDirectory().toString());
- } else {
- path = Environment.getRootDirectory();
- }
-
- loadFileList();
-
- directoryMode = getIntent().getBooleanExtra(EXTRA_DIRECTORIES_SELECTABLE, false);
-
- showDialog(DIALOG_LOAD_FILE);
- upString = getString(R.string.back);
- Timber.d(path.getAbsolutePath());
- }
-
- @Override
- public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
- if (requestCode == PermissionRequestor.REQUEST_FILE_WRITE) {
- if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- showDialog();
- } else {
- finish();
- }
- } else {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- }
- }
-
- private void loadFileList() {
- try {
- path.mkdirs();
- } catch (SecurityException e) {
- Timber.e(e, e.getMessage());
- Toast.makeText(this, R.string.file_browser_err_permissions, Toast.LENGTH_LONG).show();
- }
-
- // Checks whether path exists
- if (path.exists()) {
- FilenameFilter filter = new FilenameFilter() {
- @Override
- public boolean accept(File dir, String filename) {
- File sel = new File(dir, filename);
- // Filters based on whether the file is hidden or not
- return (sel.isFile() || sel.isDirectory())
- && !sel.isHidden();
-
- }
- };
-
- String[] fList = path.list(filter);
- fileList = new Item[fList.length];
- for (int i = 0; i < fList.length; i++) {
- fileList[i] = new Item(fList[i], R.drawable.ic_insert_drive_file_24dp);
-
- // Convert into file path
- File sel = new File(path, fList[i]);
-
- // Set drawables
- if (sel.isDirectory()) {
- fileList[i].icon = R.drawable.ic_folder_24dp;
- }
- }
-
- if (!firstLvl) {
- Item temp[] = new Item[fileList.length + 1];
- System.arraycopy(fileList, 0, temp, 1, fileList.length);
- temp[0] = new Item(upString, R.drawable.ic_arrow_back_24dp);
- fileList = temp;
- }
- } else {
- Timber.e("path %s does not exist", path); //$NON-NLS-1$
- }
-
- adapter = new ArrayAdapter- (this,
- android.R.layout.select_dialog_item, android.R.id.text1,
- fileList) {
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- // creates view
- View view = super.getView(position, convertView, parent);
- TextView textView = (TextView) view
- .findViewById(android.R.id.text1);
-
- // put the image on the text view
- int icon = fileList[position].icon;
- Drawable drawable = getResources().getDrawable(icon);
- if (activityPreferences.isDarkTheme()) {
- Drawable wrapDrawable = DrawableCompat.wrap(drawable);
- DrawableCompat.setTint(wrapDrawable, getResources().getColor(android.R.color.white));
- drawable = wrapDrawable;
- }
- if (drawable != null) {
- drawable.setAlpha(138);
- }
- textView.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null);
-
- // add margin between image and text (support various screen
- // densities)
- int dp5 = (int) (5 * getResources().getDisplayMetrics().density + 0.5f);
-
- textView.setCompoundDrawablePadding(dp5);
-
- return view;
- }
- };
-
- }
-
- private class Item {
- public String file;
- public int icon;
-
- public Item(String file, Integer icon) {
- this.file = file;
- this.icon = icon;
- }
-
- @Override
- public String toString() {
- return file;
- }
- }
-
- @Override
- protected Dialog onCreateDialog(int id) {
- Dialog dialog;
- AlertDialog.Builder builder = dialogBuilder.newDialog();
-
- if (fileList == null) {
- dialog = builder.create();
- return dialog;
- }
-
- switch (id) {
- case DIALOG_LOAD_FILE:
- builder.setTitle(getString(directoryMode ? R.string.dir_browser_title : R.string.file_browser_title));
- builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface d, int which) {
- chosenFile = fileList[which].file;
- File sel = new File(path + File.separator + chosenFile);
- if (sel.isDirectory()) {
- firstLvl = false;
-
- // Adds chosen directory to list
- str.add(chosenFile);
- fileList = null;
- path = new File(sel.toString());
-
- loadFileList();
-
- removeDialog(DIALOG_LOAD_FILE);
- showDialog(DIALOG_LOAD_FILE);
- } else if (chosenFile.equals(upString) && !sel.exists()) { // Checks if 'up' was clicked
- // present directory removed from list
- String s = str.remove(str.size() - 1);
-
- // path modified to exclude present directory
- path = new File(path.toString().substring(0,
- path.toString().lastIndexOf(s)));
- fileList = null;
-
- // if there are no more directories in the list, then
- // its the first level
- if (str.isEmpty()) {
- firstLvl = true;
- }
- loadFileList();
-
- removeDialog(DIALOG_LOAD_FILE);
- showDialog(DIALOG_LOAD_FILE);
- } else {
- Intent result = new Intent();
- if (directoryMode) {
- result.putExtra(RESULT_DIR_SELECTED, path.getAbsolutePath());
- } else {
- result.putExtra(RESULT_FILE_SELECTED, sel.getAbsolutePath());
- }
- setResult(RESULT_OK, result);
- removeDialog(DIALOG_LOAD_FILE);
- finish();
- }
-
- }
- });
- break;
- }
- if (directoryMode) {
- builder.setPositiveButton(R.string.file_dir_dialog_ok, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface d, int which) {
- Intent result = new Intent();
- result.putExtra(RESULT_DIR_SELECTED, path.getAbsolutePath());
- setResult(RESULT_OK, result);
- removeDialog(DIALOG_LOAD_FILE);
- finish();
- }
- });
- builder.setNegativeButton(R.string.file_dir_dialog_default, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface d, int which) {
- Intent result = new Intent();
- result.putExtra(RESULT_DIR_SELECTED, ""); //$NON-NLS-1$
- setResult(RESULT_OK, result);
- removeDialog(DIALOG_LOAD_FILE);
- finish();
- }
- });
- }
-
- dialog = builder.show();
- dialog.setCancelable(true);
- dialog.setOnCancelListener(new OnCancelListener() {
- @Override
- public void onCancel(DialogInterface d) {
- finish();
- }
- });
- return dialog;
- }
-
-}
diff --git a/src/main/java/org/tasks/activities/AddAttachmentActivity.java b/src/main/java/org/tasks/activities/AddAttachmentActivity.java
index 127174811..b395ee50b 100644
--- a/src/main/java/org/tasks/activities/AddAttachmentActivity.java
+++ b/src/main/java/org/tasks/activities/AddAttachmentActivity.java
@@ -11,7 +11,7 @@ import android.webkit.MimeTypeMap;
import android.widget.Toast;
import com.todoroo.andlib.utility.AndroidUtilities;
-import com.todoroo.astrid.files.FileExplore;
+import org.tasks.files.FileExplore;
import org.tasks.R;
import org.tasks.dialogs.AddAttachmentDialog;
@@ -111,7 +111,7 @@ public class AddAttachmentActivity extends InjectingAppCompatActivity implements
finish();
} else if (requestCode == REQUEST_STORAGE) {
if (resultCode == RESULT_OK) {
- String path = data.getStringExtra(FileExplore.RESULT_FILE_SELECTED);
+ String path = data.getStringExtra(FileExplore.EXTRA_FILE);
final String destination = copyToAttachmentDirectory(path);
if (destination != null) {
Timber.i("Copied %s to %s", path, destination);
diff --git a/src/main/java/org/tasks/activities/ImportTaskActivity.java b/src/main/java/org/tasks/activities/ImportTaskActivity.java
index d27b8b1ac..504c35e75 100644
--- a/src/main/java/org/tasks/activities/ImportTaskActivity.java
+++ b/src/main/java/org/tasks/activities/ImportTaskActivity.java
@@ -1,14 +1,12 @@
package org.tasks.activities;
-import android.content.DialogInterface;
+import android.app.Activity;
+import android.content.Intent;
import android.os.Bundle;
-import android.support.v7.app.AlertDialog;
-import com.todoroo.astrid.backup.FilePickerBuilder;
import com.todoroo.astrid.backup.TasksXmlImporter;
-import com.todoroo.astrid.utility.Flags;
-import org.tasks.R;
+import org.tasks.files.FileExplore;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.ActivityPreferences;
@@ -16,42 +14,36 @@ import javax.inject.Inject;
public class ImportTaskActivity extends InjectingAppCompatActivity {
- @Inject TasksXmlImporter xmlImporter;
- @Inject
- ActivityPreferences preferences;
+ private static final int REQUEST_PICKER = 1000;
- private boolean initiatedImport;
+ @Inject TasksXmlImporter xmlImporter;
+ @Inject ActivityPreferences preferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- AlertDialog filePicker =
- new FilePickerBuilder(this, R.string.import_file_prompt, preferences.getBackupDirectory(), preferences.getDialogTheme())
- .setOnFilePickedListener(new FilePickerBuilder.OnFilePickedListener() {
- @Override
- public void onFilePicked(String filePath) {
- initiatedImport = true;
- xmlImporter.importTasks(ImportTaskActivity.this, filePath, new Runnable() {
- @Override
- public void run() {
- finish();
- }
- });
- }
- })
- .setOnCancelListener(new DialogInterface.OnCancelListener() {
- @Override
- public void onCancel(DialogInterface dialog) {
- finish();
- }
- }).show();
- filePicker.setOnDismissListener(new DialogInterface.OnDismissListener() {
- @Override
- public void onDismiss(DialogInterface dialog) {
- if (!initiatedImport) {
- finish();
- }
+
+ startActivityForResult(new Intent(this, FileExplore.class) {{
+ putExtra(FileExplore.EXTRA_START_PATH, preferences.getBackupDirectory().getAbsolutePath());
+ }}, REQUEST_PICKER);
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ if (requestCode == REQUEST_PICKER) {
+ if (resultCode == Activity.RESULT_OK) {
+ String filePath = data.getStringExtra(FileExplore.EXTRA_FILE);
+ xmlImporter.importTasks(ImportTaskActivity.this, filePath, new Runnable() {
+ @Override
+ public void run() {
+ finish();
+ }
+ });
+ } else {
+ finish();
}
- });
+ } else {
+ super.onActivityResult(requestCode, resultCode, data);
+ }
}
}
diff --git a/src/main/java/org/tasks/files/FileExplore.java b/src/main/java/org/tasks/files/FileExplore.java
new file mode 100644
index 000000000..22fb9a459
--- /dev/null
+++ b/src/main/java/org/tasks/files/FileExplore.java
@@ -0,0 +1,97 @@
+package org.tasks.files;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Environment;
+
+import com.google.common.base.Strings;
+import com.nononsenseapps.filepicker.FilePickerActivity;
+
+import org.tasks.injection.InjectingAppCompatActivity;
+import org.tasks.preferences.PermissionRequestor;
+
+import java.io.File;
+
+import javax.inject.Inject;
+
+public class FileExplore extends InjectingAppCompatActivity {
+
+ private static final int REQUEST_PICKER = 1000;
+
+ public static final String EXTRA_FILE = "extra_file"; //$NON-NLS-1$
+ public static final String EXTRA_DIRECTORY = "extra_directory"; //$NON-NLS-1$
+ public static final String EXTRA_START_PATH = "extra_start_path";
+ public static final String EXTRA_DIRECTORY_MODE = "extra_directory_mode"; //$NON-NLS-1$
+
+ @Inject PermissionRequestor permissionRequestor;
+
+ private boolean directoryMode;
+ private String startPath;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ Intent intent = getIntent();
+ directoryMode = intent.getBooleanExtra(EXTRA_DIRECTORY_MODE, false);
+ startPath = intent.getStringExtra(EXTRA_START_PATH);
+
+ if (permissionRequestor.requestFileWritePermission()) {
+ launchPicker();
+ }
+ }
+
+ private void launchPicker() {
+ File path = null;
+ if (!Strings.isNullOrEmpty(startPath)) {
+ path = new File(startPath);
+ }
+ if (path == null || !path.exists()) {
+ if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
+ path = new File(Environment.getExternalStorageDirectory().toString());
+ } else {
+ path = Environment.getRootDirectory();
+ }
+ }
+
+ Intent i = new Intent(this, MyFilePickerActivity.class);
+ i.putExtra(FilePickerActivity.EXTRA_START_PATH, path.getAbsolutePath());
+ if (directoryMode) {
+ i.putExtra(FilePickerActivity.EXTRA_ALLOW_CREATE_DIR, true);
+ i.putExtra(FilePickerActivity.EXTRA_MODE, FilePickerActivity.MODE_DIR);
+ }
+ startActivityForResult(i, REQUEST_PICKER);
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
+ if (requestCode == PermissionRequestor.REQUEST_FILE_WRITE) {
+ if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ launchPicker();
+ } else {
+ finish();
+ }
+ } else {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+ }
+ }
+
+ @Override
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ if (requestCode == REQUEST_PICKER) {
+ if (resultCode == Activity.RESULT_OK) {
+ Uri uri = data.getData();
+ final File file = new File(uri.getPath());
+ setResult(Activity.RESULT_OK, new Intent() {{
+ putExtra(directoryMode ? EXTRA_DIRECTORY : EXTRA_FILE, file.getAbsolutePath());
+ }});
+ }
+ finish();
+ } else {
+ super.onActivityResult(requestCode, resultCode, data);
+ }
+ }
+}
diff --git a/src/main/java/org/tasks/files/MyFilePickerActivity.java b/src/main/java/org/tasks/files/MyFilePickerActivity.java
new file mode 100644
index 000000000..cdc2ca9b9
--- /dev/null
+++ b/src/main/java/org/tasks/files/MyFilePickerActivity.java
@@ -0,0 +1,19 @@
+package org.tasks.files;
+
+import android.os.Bundle;
+
+import com.nononsenseapps.filepicker.FilePickerActivity;
+
+import org.tasks.preferences.ActivityPreferences;
+import org.tasks.preferences.PermissionChecker;
+
+public class MyFilePickerActivity extends FilePickerActivity {
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ ActivityPreferences activityPreferences = new ActivityPreferences(this, new PermissionChecker(this));
+ activityPreferences.applyThemeAndStatusBarColor();
+
+ super.onCreate(savedInstanceState);
+ }
+}
diff --git a/src/main/java/org/tasks/injection/ActivityModule.java b/src/main/java/org/tasks/injection/ActivityModule.java
index 7e3934d1a..3621b24b3 100644
--- a/src/main/java/org/tasks/injection/ActivityModule.java
+++ b/src/main/java/org/tasks/injection/ActivityModule.java
@@ -13,7 +13,7 @@ import com.todoroo.astrid.core.CustomFilterActivity;
import com.todoroo.astrid.core.DefaultsPreferences;
import com.todoroo.astrid.core.OldTaskPreferences;
import com.todoroo.astrid.files.AACRecordingActivity;
-import com.todoroo.astrid.files.FileExplore;
+import org.tasks.files.FileExplore;
import com.todoroo.astrid.gcal.CalendarAlarmListCreator;
import com.todoroo.astrid.gcal.CalendarReminderActivity;
import com.todoroo.astrid.gtasks.GtasksPreferences;
diff --git a/src/main/java/org/tasks/preferences/BackupPreferences.java b/src/main/java/org/tasks/preferences/BackupPreferences.java
index d6b8e2ad8..76b8e09ba 100644
--- a/src/main/java/org/tasks/preferences/BackupPreferences.java
+++ b/src/main/java/org/tasks/preferences/BackupPreferences.java
@@ -4,7 +4,7 @@ import android.content.Intent;
import android.os.Bundle;
import android.preference.Preference;
-import com.todoroo.astrid.files.FileExplore;
+import org.tasks.files.FileExplore;
import org.tasks.R;
import org.tasks.injection.InjectingPreferenceActivity;
@@ -32,7 +32,7 @@ public class BackupPreferences extends InjectingPreferenceActivity {
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_BACKUP_DIR && resultCode == RESULT_OK) {
if (data != null) {
- String dir = data.getStringExtra(FileExplore.RESULT_DIR_SELECTED);
+ String dir = data.getStringExtra(FileExplore.EXTRA_DIRECTORY);
preferences.setString(R.string.p_backup_dir, dir);
updateBackupDirectory();
}
@@ -46,7 +46,8 @@ public class BackupPreferences extends InjectingPreferenceActivity {
@Override
public boolean onPreferenceClick(Preference p) {
Intent filesDir = new Intent(BackupPreferences.this, FileExplore.class);
- filesDir.putExtra(FileExplore.EXTRA_DIRECTORIES_SELECTABLE, true);
+ filesDir.putExtra(FileExplore.EXTRA_DIRECTORY_MODE, true);
+ filesDir.putExtra(FileExplore.EXTRA_START_PATH, getBackupDirectory());
startActivityForResult(filesDir, REQUEST_CODE_BACKUP_DIR);
return true;
}
@@ -55,8 +56,11 @@ public class BackupPreferences extends InjectingPreferenceActivity {
}
private void updateBackupDirectory() {
+ findPreference(getString(R.string.p_backup_dir)).setSummary(getBackupDirectory());
+ }
+
+ private String getBackupDirectory() {
File dir = preferences.getBackupDirectory();
- String summary = dir == null ? "" : dir.getAbsolutePath();
- findPreference(getString(R.string.p_backup_dir)).setSummary(summary);
+ return dir == null ? "" : dir.getAbsolutePath();
}
}
diff --git a/src/main/java/org/tasks/preferences/MiscellaneousPreferences.java b/src/main/java/org/tasks/preferences/MiscellaneousPreferences.java
index fb76badce..87cdecaa0 100644
--- a/src/main/java/org/tasks/preferences/MiscellaneousPreferences.java
+++ b/src/main/java/org/tasks/preferences/MiscellaneousPreferences.java
@@ -7,10 +7,10 @@ import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.speech.tts.TextToSpeech;
-import com.todoroo.astrid.files.FileExplore;
import com.todoroo.astrid.voice.VoiceOutputAssistant;
import org.tasks.R;
+import org.tasks.files.FileExplore;
import org.tasks.injection.InjectingPreferenceActivity;
import org.tasks.scheduling.BackgroundScheduler;
@@ -50,7 +50,7 @@ public class MiscellaneousPreferences extends InjectingPreferenceActivity {
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE_FILES_DIR && resultCode == RESULT_OK) {
if (data != null) {
- String dir = data.getStringExtra(FileExplore.RESULT_DIR_SELECTED);
+ String dir = data.getStringExtra(FileExplore.EXTRA_DIRECTORY);
preferences.setString(R.string.p_attachment_dir, dir);
updateAttachmentDirectory();
}
@@ -87,7 +87,8 @@ public class MiscellaneousPreferences extends InjectingPreferenceActivity {
@Override
public boolean onPreferenceClick(Preference p) {
Intent filesDir = new Intent(MiscellaneousPreferences.this, FileExplore.class);
- filesDir.putExtra(FileExplore.EXTRA_DIRECTORIES_SELECTABLE, true);
+ filesDir.putExtra(FileExplore.EXTRA_DIRECTORY_MODE, true);
+ filesDir.putExtra(FileExplore.EXTRA_START_PATH, getAttachmentDirectory());
startActivityForResult(filesDir, REQUEST_CODE_FILES_DIR);
return true;
}
@@ -96,9 +97,12 @@ public class MiscellaneousPreferences extends InjectingPreferenceActivity {
}
private void updateAttachmentDirectory() {
+ findPreference(getString(R.string.p_attachment_dir)).setSummary(getAttachmentDirectory());
+ }
+
+ private String getAttachmentDirectory() {
File dir = preferences.getAttachmentsDirectory();
- String summary = dir == null ? "" : dir.getAbsolutePath();
- findPreference(getString(R.string.p_attachment_dir)).setSummary(summary);
+ return dir == null ? "" : dir.getAbsolutePath();
}
private void initializeCalendarReminderPreference() {
diff --git a/src/main/res/drawable/ic_check_24dp.xml b/src/main/res/drawable/ic_check_24dp.xml
deleted file mode 100644
index ba0874016..000000000
--- a/src/main/res/drawable/ic_check_24dp.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/main/res/drawable/ic_folder_24dp.xml b/src/main/res/drawable/ic_folder_24dp.xml
deleted file mode 100644
index df23bc878..000000000
--- a/src/main/res/drawable/ic_folder_24dp.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/main/res/drawable/ic_insert_drive_file_24dp.xml b/src/main/res/drawable/ic_insert_drive_file_24dp.xml
deleted file mode 100644
index 4f4262981..000000000
--- a/src/main/res/drawable/ic_insert_drive_file_24dp.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/main/res/drawable/ic_snooze_24dp.xml b/src/main/res/drawable/ic_snooze_24dp.xml
deleted file mode 100644
index 985c5b671..000000000
--- a/src/main/res/drawable/ic_snooze_24dp.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/src/main/res/values-ar/strings.xml b/src/main/res/values-ar/strings.xml
index 2102e4f78..d0a94be82 100644
--- a/src/main/res/values-ar/strings.xml
+++ b/src/main/res/values-ar/strings.xml
@@ -116,10 +116,6 @@
هل أنت متأكد؟ لن تستطيع العودة
تسجيل صوت
توقف عن التسجيل
- أختر ملف
- أختار المسار
- استخدم هذا المسار
- إعادة إلى الافتراضي
- ساعه
- يوم
diff --git a/src/main/res/values-bg-rBG/strings.xml b/src/main/res/values-bg-rBG/strings.xml
index 76669beef..d16217ad7 100644
--- a/src/main/res/values-bg-rBG/strings.xml
+++ b/src/main/res/values-bg-rBG/strings.xml
@@ -24,7 +24,6 @@
Прочитане на задачи %d...
Нямате достъп до папка: %s
SD картата не може да бъде достъпена!
- Изберете файл за възстановяване
Tasks Разрешение
Tasks Разрешение
Сигурни ли сте че искате да отхвърлите промените си?
@@ -217,12 +216,7 @@
Спри Записването
Съжаляваме! Не е намерено приложение, което да работи с този тип файл.
Назад
- Избери файл
- Избери директория
- Грешка в Разрешения! Моля, проверете дали не сте блокирани Tasks от достъп до SD картата.
Грешка при копиране на файла за прикачване
- Използвай тази директория
- Възстанови по подразбиране
Поръчай една година и спести 25%!
Звънене веднъж
Звънене пет пъти
diff --git a/src/main/res/values-ca/strings.xml b/src/main/res/values-ca/strings.xml
index 8744a67c9..641689286 100644
--- a/src/main/res/values-ca/strings.xml
+++ b/src/main/res/values-ca/strings.xml
@@ -15,7 +15,6 @@
S\'està llegint la tasca %d
No es pot accedir a la carpeta: %s
No s\'ha pogut accedir a la targeta SD.
- Tria un fitxer per restaurar
Permís de l\'Tasks
Permís de l\'Tasks
Voleu suprimir aquesta tasca?
diff --git a/src/main/res/values-cs/strings.xml b/src/main/res/values-cs/strings.xml
index 67850feaf..dc3a20983 100644
--- a/src/main/res/values-cs/strings.xml
+++ b/src/main/res/values-cs/strings.xml
@@ -17,7 +17,6 @@
Načítávání úkolu %d...
Chyba v přístupu k adresáři: %s
Chyba v přístupu k SD kartě!
- Zvolte soubor k obnově
Tasks Práva
Tasks Práva
Smazat tento úkol?
@@ -184,12 +183,7 @@
Nahrávám zvuk
Ukončit záznam
Pro tento typ souborů nebyla nalezena žádná aplikace.
- Vybrat soubor
- Vytvořit složku
- Chyba oprávnění! Ujistěte se prosím, že jste Tasks nezabránil v přístupu k SD kartě.
Chyba při kopírování souboru jako přílohy
- Použít tento adresář
- Obnovit výchozí nastavení
Objednejte na rok a ušetříte 25%!
- hodina
diff --git a/src/main/res/values-da/strings.xml b/src/main/res/values-da/strings.xml
index b9b6834a4..17887476e 100644
--- a/src/main/res/values-da/strings.xml
+++ b/src/main/res/values-da/strings.xml
@@ -17,7 +17,6 @@
Læser opgave %d...
Kan ikke få adgang til mappen: %s
Kan ikke få adgang til dig SD-kort!
- Vælg en fil for at gendanne
Tasks Tilladelser
Tasks Tilladelser
Slet denne opgave?
diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml
index b0e5d8d3a..ae7b0a135 100644
--- a/src/main/res/values-de/strings.xml
+++ b/src/main/res/values-de/strings.xml
@@ -19,7 +19,6 @@
Aufgabe %d wird gelesen …
Ordner konnte nicht geöffnet werden: %s
Auf die SD-Karte konnte nicht zugegriffen werden!
- Wählen Sie eine Datei zum Wiederherstellen
Tasks Zugriffsrechte
Tasks Zugriffsrechte
Diese Aufgabe löschen?
@@ -205,12 +204,7 @@
Aufnahme stoppen
Tut mir leid! Dieser Dateityp kann nicht geöffnet werden.
Zurück
- Wählen Sie eine Datei
- Wähle ein Verzeichnis
- Konnte nicht auf die SD-Karte zugreifen. Bitte stellen Sie sicher, das sie den Zugriff auf sie SD Karte nicht eingeschränkt haben.
Fehler beim Kopieren der anzuhängenden Datei
- Dieses Verzeichnis verwenden
- Auf Standardeinstellungen zurücksetzen
Bestelle für ein ganzes Jahr und spare 25%!
Einmal klingeln
Fünfmal klingeln
diff --git a/src/main/res/values-el/strings.xml b/src/main/res/values-el/strings.xml
index b08a1ae5a..49e60150f 100644
--- a/src/main/res/values-el/strings.xml
+++ b/src/main/res/values-el/strings.xml
@@ -20,7 +20,6 @@
Ανάγνωση εργασίας %d...
Δεν υπάρχει πρόσβαση στον φάκελο: %s
Δεν υπάρχει πρόσβαση στην SD κάρτα!
- Επιλογή αρχείου για επαναφορά
Άδεια εργασιών
Άδεια Εργασιών
Διαγραφή εργασίας;
@@ -184,12 +183,7 @@
Εγγραφή Ήχου
Σταμάτημα εγγραφής
Συγγνώμη! Δεν βρέθηκε εφαρμογή που να χειρίζεται τέτοιο τύπο αρχείου
- Επιλογή αρχείου
- Επιλογή φακέλου
- Σφάλμα αδειών! Παρακαλώ σιγουρευτείτε ότι δεν έχετε μπλοκάρει την εφαρμογή από την πρόσβαση στην SD κάρτα σας.
Σφάλμα αντιγραφής αρχείου προς επισύναψη
- Χρήση αυτού του φακέλου
- Επαναφορά προεπιλογών
Παραγγείλετε ένα χρόνο και εξοικονομήστε 25%!
- μια ώρα
diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml
index 81a65572b..913435a4b 100644
--- a/src/main/res/values-es/strings.xml
+++ b/src/main/res/values-es/strings.xml
@@ -21,7 +21,6 @@
Leyendo tarea %d...
No se puede acceder a la carpeta: %s
¡No se pudo acceder a su tarjeta de memoria SD!
- Selecciona un archivo a restaurar
Permisos de Tasks
Permisos de Tasks
¿Borrar esta tarea?
@@ -202,12 +201,7 @@
Detener grabación
Lo sentimos! No se encontró ninguna aplicación para abrir este tipo de archivo.
Volver
- Elija un archivo
- Elija un directorio
- ¡Permiso denegado! Por favor asegúrese permitir a Tasks el acceso a la tarjeta SD.
Error al copiar el archivo a adjuntar
- Usar este directorio
- Restaurar a valores por defecto
¡Ordena un año y ahorra un 25%%!
Sonar una vez
Sonar cinco veces
diff --git a/src/main/res/values-fa/strings.xml b/src/main/res/values-fa/strings.xml
index 60a45b2e0..ae2ec978a 100644
--- a/src/main/res/values-fa/strings.xml
+++ b/src/main/res/values-fa/strings.xml
@@ -141,12 +141,7 @@
توقف ضبط
پوزش! هیچ برنامه ای برای بازکردن این فایل پیدا نشد.
عقب
- انتخاب یک فایل
- یک پوشه انتخاب کنید
- خطای دسترسی! لطفا مطمن شوید تسکس را از دسترسی به حافظه خارجی منع نکرده اید.
خطای کپی فایل برای ضمیمه
- استفاده از این پوشه
- بازگرداندن به پیش فرض
یک بار زنگ بزن
پنج بار زنگ بزن
بدون توقف زنگ بزن
diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml
index f457b6307..d6cf8ddf4 100644
--- a/src/main/res/values-fr/strings.xml
+++ b/src/main/res/values-fr/strings.xml
@@ -21,7 +21,6 @@
Lecture de la tâche %d…
Impossible d\'accéder au dossier : %s
Impossible d\'accéder à la carte SD !
- Choisissez un fichier à restaurer
Permission d\'Tasks
Permission d\'Tasks
Supprimer cette tâche ?
@@ -202,12 +201,7 @@
Arrêter l\'enregistrement
Désolé ! Aucune application n\'a été trouvé pour gérer ce type de fichier.
Retour
- Choisissez un fichier
- Choisissez un dossier
- Erreur de permissions ! Assurez-vous qu\'Tasks à le droit d\'accéder à la carte SD.
Erreur lors de la copie du fichier à joindre
- Utiliser ce dossier
- Rétablir les valeurs par défaut
Commandez pour un an et économisez 25%%!
Sonner une fois
Sonner cinq fois
diff --git a/src/main/res/values-it/strings.xml b/src/main/res/values-it/strings.xml
index bd2011947..55b2930b7 100644
--- a/src/main/res/values-it/strings.xml
+++ b/src/main/res/values-it/strings.xml
@@ -21,7 +21,6 @@
Lettura compito %d...
Impossibile accedere alla cartella: %s
Impossibile accedere alla scheda SD!
- Seleziona un file da ripristinare
Permessi Tasks
Permessi Tasks
Sicuro di voler annullare tutte le modifiche?
@@ -211,12 +210,7 @@ Se visualizzi questo errore più volte, ti consigliamo di cancellare tutti i dat
Fine Registrazione
Spiacente! Non è stata trovata nessuna applicazione per gestire questo tipo di file
Indietro
- Scegli un file
- Scegli una cartella
- Errore di autorizzazioni! Assicurati di non aver bloccato l\'accesso alla scheda SD da parte di Tasks
Errore di copia dei file da allegare
- Utilizza questa directory
- Ripristino impostazioni iniziali
Sottoscrivi 1 anno e risparmia il 25%%!
Suona una volta
Suona cinque volte
diff --git a/src/main/res/values-iw/strings.xml b/src/main/res/values-iw/strings.xml
index 0c72ac8b4..40f1c2f22 100644
--- a/src/main/res/values-iw/strings.xml
+++ b/src/main/res/values-iw/strings.xml
@@ -17,7 +17,6 @@
קוראת משימה %d...
לא ניתן לגשת לתיקיה: %s
לא ניתן לגשת לכרטיס ה־SD שלך!
- נא לבחור קובץ לשחזור
הרשאות אסטריד
הרשאות אסטריד
למחוק משימה זו?
@@ -186,12 +185,7 @@
מקליטה שֵׁמַע
הפסק הקלטה
\"מצטערת! לא מצאתי ישום שיכול לטפל בקבצים מסוג זה\"
- בחר קובץ
- יש לבחור תיקייה
- הרשאות לא מספיקות! אנא בדוק שלא חסמת את אסטריד מלגשת לכרטיס הזיכרון
שגיאה בהעתקת הקובץ המצורף
- השתמש בתיקיה זו
- אפס לברירת מחדל
הזמן לשנה וחסוך !25%%
- שעה
diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml
index eff222c31..206351d60 100644
--- a/src/main/res/values-ja/strings.xml
+++ b/src/main/res/values-ja/strings.xml
@@ -21,7 +21,6 @@
タスク %d を読み込み中
フォルダ %s を開けません
SDカードにアクセスできません
- 復元に使うファイルを選択してください
タスクの読み込み
タスクの読み込み
変更を破棄してもよろしいですか?
@@ -215,12 +214,7 @@
録音を停止
申し訳ありません! このファイル形式を扱うアプリケーションがありません.
戻る
- ファイルを選択
- ディレクトリを選択
- パーミッションエラー! SD カードのアクセスで Tasks をブロックしていないことを確認してください.
ファイル添付のコピー中にエラー
- このディレクトリを使用
- デフォルトにリセット
1 年注文すると 25% 節約できます!
1回通知音を鳴らす
5回通知音を鳴らす
diff --git a/src/main/res/values-ko/strings.xml b/src/main/res/values-ko/strings.xml
index c4e40a655..5fc42a6b1 100644
--- a/src/main/res/values-ko/strings.xml
+++ b/src/main/res/values-ko/strings.xml
@@ -24,7 +24,6 @@
일정 %d 읽는 중...
폴더에 접근 불가: %s
SD 카드에 접근할 수 없습니다!
- 복원할 파일을 선택하세요
Tasks 권한
Tasks 권한
이 일정을 삭제할까요?
@@ -212,12 +211,7 @@ Tasks의 백업에서 당신의 일정을 복구하시기 바랍니다.
녹음 중단
죄송하지만 이 파일 형식을 다룰 수 있는 프로그램이 없습니다.
뒤로
- 파일 선택하기
- 디렉토리 선택하기
- 권한 에러! Tasks가 SD 카드에 접근하는 것을 막지 않았는지 확인하세요.
첨부용 파일 복사 에러
- 이 디렉토리 사용
- 기본값으로 초기화
1년 사용권 구매시 25%% 할인!
한번 울림
다섯번 울림
diff --git a/src/main/res/values-nb/strings.xml b/src/main/res/values-nb/strings.xml
index 7324eb7df..00a7e83f6 100644
--- a/src/main/res/values-nb/strings.xml
+++ b/src/main/res/values-nb/strings.xml
@@ -15,7 +15,6 @@
Leser oppgave %d...
Får ikke tilgang til mappen: %s
Ditt SD-kort er ikke tilgjengelig!
- Velg fil å gjenopprette
Tasks Tillatelse
Tasks Tillatelse
Slett denne oppgaven?
@@ -102,7 +101,6 @@
Åpne kalenderhendelse
%s (fullført)
I liste: ?
- Velg en fil
Allerede utført!
Slumre
Stilletimer start
diff --git a/src/main/res/values-nl/strings.xml b/src/main/res/values-nl/strings.xml
index c056bb2c8..c3734ebd1 100644
--- a/src/main/res/values-nl/strings.xml
+++ b/src/main/res/values-nl/strings.xml
@@ -21,7 +21,6 @@
Taak %d lezen...
Toegang geweigerd tot map: %s
Toegang tot SD-kaart geweigerd!
- Selecteer een back-up om te herstellen
Taak toestemmingen
Taak toestemmingen
Taak verwijderen?
@@ -210,12 +209,7 @@
Opname stoppen
Sorry! Er is geen applicatie gevonden die dit bestandtype ondersteunt.
Terug
- Bestand kiezen
- Kies een directory
- Bestandsrechtenfout! Let erop dat Tasks toegang heeft tot de SD-kaart.
Fout bij kopiëren toe te voegen bestand
- Gebruik deze directory.
- Stel opnieuw in naar standaardinstellingen
Bestel voor een jaar en bespaar 25%%!
Ring eenmalig
Ring vijf keer
diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml
index deb66dda1..6df6edbb5 100644
--- a/src/main/res/values-pl/strings.xml
+++ b/src/main/res/values-pl/strings.xml
@@ -17,7 +17,6 @@
Czytanie zadania %d...
Brak dostępu do folderu: %s
Brak dostępu do Twojej karty SD!
- Wskaż plik do przywrócenia
Uprawnienia Tasks
Zezwolenia Tasks
Usunąć to zadanie?
@@ -186,12 +185,7 @@ i odzyskanie zadań z kopi zapasowej (Settings->Sync and backup->Backup-&g
Nagrywanie dźwięku
Zakończ nagrywanie
Przepraszamy! Nie znaleziono aplikacji do obsługi tego typu pliku.
- Wybierz plik
- Wybierz katalog
- Błąd dostępu! Proszę upewnić się, że Tasks nie ma zablokowanego dostępu do karty SD.
Błąd kopiowania pliku do załącznika
- Użycie tego katalogu
- Przywróć ustawienia domyślne
Zamów na rok i oszczędź 25%%!
- na godzinę
diff --git a/src/main/res/values-pt-rBR/strings.xml b/src/main/res/values-pt-rBR/strings.xml
index 568e214db..32934403d 100644
--- a/src/main/res/values-pt-rBR/strings.xml
+++ b/src/main/res/values-pt-rBR/strings.xml
@@ -16,7 +16,6 @@
Lendo tarefa %d...
Não foi possível acessar a pasta: %s
Não foi possível acessar seu cartão SD!
- Selecione um arquivo para ser restaurado
Permissões do Tasks
Permissões do Tasks
Excluir esta tarefa?
@@ -183,12 +182,7 @@
Gravando Áudio
Parar Gravação
Desculpa! Nenhuma aplicação para manipular este tipo de arquivo foi encontrada.
- Escolha um arquivo
- Escolha um diretório
- Erro de permissões! Certifique-se de que você não bloqueou o Tasks de acessar o cartão SD.
Erro ao copiar o arquivo para o anexo
- Usar este diretório
- Restaurar padrões
Contrate um ano e tenha 25%% de desconto
- por hora
diff --git a/src/main/res/values-pt/strings.xml b/src/main/res/values-pt/strings.xml
index 55981c4e6..de9f14fff 100644
--- a/src/main/res/values-pt/strings.xml
+++ b/src/main/res/values-pt/strings.xml
@@ -22,7 +22,6 @@
A ler tarefa %d...
Não é possível aceder à pasta: %s
Não é possível aceder ao seu cartão SD!
- Selecione o ficheiro a restaurar
Permissões do Tasks
Permissões do Tasks
Remover esta tarefa?
@@ -204,12 +203,7 @@ das tarefas através de um backup em Definições->Sincronização e backup-&
Parar gravação
Não foi encontrada qualquer aplicação para gerir ficheiros deste tipo.
Recuar
- Escolha um ficheiro
- Escolha um diretório
- Erro de permissões! Certifique-se que o Tasks tem permissões para aceder ao cartão SD:
Erro ao copiar o ficheiro como anexo
- Usar este diretório
- Restaurar definições originais
Compre por um ano e poupe 25%!
Tocar uma vez
Tocar 5 vezes
diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml
index c86b53c22..1bfe90fa3 100644
--- a/src/main/res/values-ru/strings.xml
+++ b/src/main/res/values-ru/strings.xml
@@ -21,7 +21,6 @@
Чтение задачи %d…
Нет доступа к папке:%s
Нет доступа к карте памяти!
- Выберите файл для восстановления
Разрешения Tasks
Разрешения Tasks
Вы действительно хотите отказаться от сделанных изменений?
@@ -214,12 +213,7 @@
Остановить запись
Извините! Не найдена программа для просмотра файлов этого типа.
Назад
- Выбрать файл
- Выбрать папку
- Ошибка доступа! Пожалуйста убедитесь, что Tasks имеет доступ к SD карте.
Ошибка копирования прикрепляемого файла.
- Использовать эту папку
- Сбросить настройки
Подпишитесь на год и сэкономьте 25%%!
1 раз
5 раз
diff --git a/src/main/res/values-sk/strings.xml b/src/main/res/values-sk/strings.xml
index 4d6f7aec0..82cdd6816 100644
--- a/src/main/res/values-sk/strings.xml
+++ b/src/main/res/values-sk/strings.xml
@@ -19,7 +19,6 @@
Čítanie úloh %d...
Chyba v prístupe k súboru: %s
Chyba v prístupe k SD karte!
- Vybrať súbor k obnove
Tasks povolenia
Tasks povolenia
Vymazať túto úlohu?
@@ -196,12 +195,7 @@
Zastaviť nahrávanie
Pre tento typ súboru nebola nájdená žiadna aplikácia
Späť
- Vybrať súbor
- Vytvoriť zložku
- Chyba oprávnenia! Prosím, uisti sa, či Tasks namá zablokovaný prístup k SD karte.
Chyba pri kopírovaní súboru do prílohy
- Použiť tento adresár
- Obnoviť predvolené
Objednaj na rok a ušetri 25%!
Zvoniť raz
Zvoniť päť krát
diff --git a/src/main/res/values-sl-rSI/strings.xml b/src/main/res/values-sl-rSI/strings.xml
index 2ab3d4f52..718c0ecbf 100644
--- a/src/main/res/values-sl-rSI/strings.xml
+++ b/src/main/res/values-sl-rSI/strings.xml
@@ -20,7 +20,6 @@
Berem opravek %d...
Datoteka:%s ni dostopna
Tvoja SD kartica ni dostopna.
- Izberi datoteko za obnovo
Dovoljenje Opravkom
Dovoljenje Opravkom
Zbrišem ta opravek?
@@ -188,12 +187,7 @@
Snemam zvok
Prekini snemanje
Žal nobena aplikacija ne ustreza takim datotekam.
- Izberite datoteko
- Izberite mapo
- Napaka pri dovoljenjih! Prosimo, preverite, da niste preprečili aplikaciji Opravki dostopa do SD kartice.
Napaka pri kopiranju datoteke za priponko
- Uporabi to mapo
- Ponastavi na privzeto
Enoletna naročnina prihrani 25%!
- na uro
diff --git a/src/main/res/values-sv/strings.xml b/src/main/res/values-sv/strings.xml
index c7258ac28..71a78a1ac 100644
--- a/src/main/res/values-sv/strings.xml
+++ b/src/main/res/values-sv/strings.xml
@@ -17,7 +17,6 @@
Läser uppgift %d...
Mappåtkomst nekad: %s
SD-kort ej tillgängligt!
- Välj en fil att återställa
Tasks Tillstånd
Tasks Tillstånd
Radera denna uppgift?
@@ -181,12 +180,7 @@ och återställer dina aktuella uppgifter från en backup
Spelar in ljud
Avsluta inspelning
Tyvärr hittades ingen applikation för att hantera den här filtypen
- Välj en fil
- Välj sökväg
- Behörighets fel! Vänligen kontrollera att du inte blockat Tasks från att komma åt SD-kortet.
Bifoga fil misslyckades: fel vid kopiering
- Använd denna mapp
- Återställ till standard
Beställ för helår och spara 25%!
- en timme
diff --git a/src/main/res/values-tr/strings.xml b/src/main/res/values-tr/strings.xml
index ce039b659..3dde3d666 100644
--- a/src/main/res/values-tr/strings.xml
+++ b/src/main/res/values-tr/strings.xml
@@ -17,7 +17,6 @@
%d görev okunuyor..
%s dizinine erişilemedi.
Hafıza kartına erişemiyorum!
- Geri Alınacak Bir Dosya Seçin
Tasks İzni
Tasks İzni
Bu görev silinsin mi?
@@ -161,12 +160,7 @@
Ses Kaydediliyor
Kaydı Durdur
Üzgünüm! Bu dosya türünü destekleyen bir uygulama bulunamadı.
- Bir dosya seçin
- Bir dizin seçin
- İzin hatası! Tasks\'in SD kartınıza erişiminin engellenmediğinden emin olun lütfen.
Dosyanın ek olarak kopyalanmasında hata
- Bu dizini kullan
- Öntanımlı değere dön
Bir yıllık satın alın ve %%25 kâr yapın!
- bir saat
diff --git a/src/main/res/values-uk/strings.xml b/src/main/res/values-uk/strings.xml
index 77c5d52f9..75e9ad02d 100644
--- a/src/main/res/values-uk/strings.xml
+++ b/src/main/res/values-uk/strings.xml
@@ -20,7 +20,6 @@
Читання завдання %d...
Немає доступу до папки: %s
Немає доступу до карти SD!
- Виберіть файл для відновлення
Дозволи Tasks
Дозволи Tasks
Видалити цю задачу?
@@ -199,12 +198,7 @@
Зупинити запис
Вибачте! Не знайдено програму для перегляду файлів цього типу.
Назад
- Вибрати файл
- Вибрати каталог
- Помилка доступу! Будь ласка переконайтеся, що ви не заблокували Tasks для доступу до SD карти.
Помилка копіювання доданого файлу.
- Використовувати цю папку
- Скинути налаштування за замовчуванням
Підпишіться на рік і заощаджуйте 25%%!
- година
diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml
index ee0107b31..818d9ae64 100644
--- a/src/main/res/values-zh-rCN/strings.xml
+++ b/src/main/res/values-zh-rCN/strings.xml
@@ -17,7 +17,6 @@
读取任务 %d...
无法开启文件夹:%s
无法访问您的 SD 卡!
- 选取要还原的文件
清单小助理权限
清单小助理权限
确认删除?
@@ -140,12 +139,7 @@
正在录制音频
停止录制
对不起!找不到应用程序处理这种文件类型。
- 选择一个文件
- 选择一个目录
- 权限出错!请确保您没有阻止清单小助理访问 SD 卡。
复制文件添加附件时出错
- 使用此目录
- 重设为默认值
购买一年的服务并且得到25%%的折扣
- 一个小时
diff --git a/src/main/res/values-zh-rTW/strings.xml b/src/main/res/values-zh-rTW/strings.xml
index 05143960a..be0326793 100644
--- a/src/main/res/values-zh-rTW/strings.xml
+++ b/src/main/res/values-zh-rTW/strings.xml
@@ -17,7 +17,6 @@
讀取工作 %d...
無法開啟資料夾: %s
無法存取您的SD卡!
- 選取欲還原的檔案
Tasks 權限
Tasks 權限
確認刪除?
@@ -171,12 +170,7 @@
正在錄製音頻
停止錄製
對不起!找不到應用程序處理這種文件類型。
- 選擇一個文件
- 選擇一個目錄
- 權限出錯!請確保您沒有阻止Tasks訪問SD 卡。
複製文件添加附件時出錯
- 使用此目錄
- 重設為默認值
購買一年的服務並且得到25%%的折扣
- 一個小時
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index e6cf52470..96b1c1a09 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -62,10 +62,6 @@ File %1$s contained %2$s.\n\n
Cannot access your SD card!
-
- Select a file to restore
-
-
@@ -595,14 +591,8 @@ File %1$s contained %2$s.\n\n
Sorry! No application was found to handle this file type.
Back
- Choose a file
- Choose a directory
- Permissions error! Please make sure you have not blocked Tasks from accessing the SD card.
Error copying file for attachment
- Use this directory
- Reset to default
-
Order one year and save 25%!
diff --git a/src/main/res/values/styles.xml b/src/main/res/values/styles.xml
index 2f45ecc13..937a65b12 100644
--- a/src/main/res/values/styles.xml
+++ b/src/main/res/values/styles.xml
@@ -110,6 +110,10 @@
- @color/widget_text_color_light
+
+