From 95dbabf3ac720a44d40ab06e807eccaacd1ad0d6 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Wed, 10 Feb 2016 21:37:13 -0600 Subject: [PATCH] Use nononsense-filepicker Closes #338 --- build.gradle | 1 + src/main/AndroidManifest.xml | 12 +- .../astrid/backup/FilePickerBuilder.java | 74 ----- .../com/todoroo/astrid/files/FileExplore.java | 299 ------------------ .../activities/AddAttachmentActivity.java | 4 +- .../tasks/activities/ImportTaskActivity.java | 64 ++-- .../java/org/tasks/files/FileExplore.java | 97 ++++++ .../org/tasks/files/MyFilePickerActivity.java | 19 ++ .../org/tasks/injection/ActivityModule.java | 2 +- .../tasks/preferences/BackupPreferences.java | 14 +- .../preferences/MiscellaneousPreferences.java | 14 +- src/main/res/drawable/ic_check_24dp.xml | 6 - src/main/res/drawable/ic_folder_24dp.xml | 6 - .../drawable/ic_insert_drive_file_24dp.xml | 6 - src/main/res/drawable/ic_snooze_24dp.xml | 6 - src/main/res/values-ar/strings.xml | 4 - src/main/res/values-bg-rBG/strings.xml | 6 - src/main/res/values-ca/strings.xml | 1 - src/main/res/values-cs/strings.xml | 6 - src/main/res/values-da/strings.xml | 1 - src/main/res/values-de/strings.xml | 6 - src/main/res/values-el/strings.xml | 6 - src/main/res/values-es/strings.xml | 6 - src/main/res/values-fa/strings.xml | 5 - src/main/res/values-fr/strings.xml | 6 - src/main/res/values-it/strings.xml | 6 - src/main/res/values-iw/strings.xml | 6 - src/main/res/values-ja/strings.xml | 6 - src/main/res/values-ko/strings.xml | 6 - src/main/res/values-nb/strings.xml | 2 - src/main/res/values-nl/strings.xml | 6 - src/main/res/values-pl/strings.xml | 6 - src/main/res/values-pt-rBR/strings.xml | 6 - src/main/res/values-pt/strings.xml | 6 - src/main/res/values-ru/strings.xml | 6 - src/main/res/values-sk/strings.xml | 6 - src/main/res/values-sl-rSI/strings.xml | 6 - src/main/res/values-sv/strings.xml | 6 - src/main/res/values-tr/strings.xml | 6 - src/main/res/values-uk/strings.xml | 6 - src/main/res/values-zh-rCN/strings.xml | 6 - src/main/res/values-zh-rTW/strings.xml | 6 - src/main/res/values/strings.xml | 10 - src/main/res/values/styles.xml | 4 + src/main/res/values/styles_dark.xml | 1 + src/main/res/values/styles_light.xml | 1 + 46 files changed, 183 insertions(+), 602 deletions(-) delete mode 100644 src/main/java/com/todoroo/astrid/backup/FilePickerBuilder.java delete mode 100644 src/main/java/com/todoroo/astrid/files/FileExplore.java create mode 100644 src/main/java/org/tasks/files/FileExplore.java create mode 100644 src/main/java/org/tasks/files/MyFilePickerActivity.java delete mode 100644 src/main/res/drawable/ic_check_24dp.xml delete mode 100644 src/main/res/drawable/ic_folder_24dp.xml delete mode 100644 src/main/res/drawable/ic_insert_drive_file_24dp.xml delete mode 100644 src/main/res/drawable/ic_snooze_24dp.xml 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 + +