New 'Add Attachment' dialog

pull/384/head
Alex Baker 9 years ago
parent 2bacb5f1de
commit 8cc0f77527

@ -116,6 +116,10 @@
android:exported="true"
android:theme="@style/TranslucentDialog" />
<activity
android:name=".activities.AddAttachmentActivity"
android:theme="@style/TranslucentDialog" />
<!-- Activity that displays task list -->
<activity
android:name="com.todoroo.astrid.activity.TaskListActivity"

@ -6,13 +6,11 @@
package com.todoroo.astrid.actfm;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.v4.app.Fragment;
import android.webkit.MimeTypeMap;
import android.widget.ArrayAdapter;
import android.widget.Toast;
@ -24,9 +22,7 @@ import org.tasks.preferences.DeviceInfo;
import org.tasks.preferences.Preferences;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
@ -38,7 +34,6 @@ public class ActFmCameraModule {
private static final Logger log = LoggerFactory.getLogger(ActFmCameraModule.class);
protected static final int REQUEST_CODE_CAMERA = 1;
protected static final int REQUEST_CODE_PICTURE = 2;
private static File lastTempFile = null;
@ -78,22 +73,7 @@ public class ActFmCameraModule {
}
}
});
options.add(fragment.getString(R.string.actfm_picture_camera));
}
if (deviceInfo.hasGallery()) {
runnables.add(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI) {{
setType("image/*");
}};
if (intent.resolveActivity(fragment.getActivity().getPackageManager()) != null) {
fragment.startActivityForResult(intent, REQUEST_CODE_PICTURE);
}
}
});
options.add(fragment.getString(R.string.actfm_picture_gallery));
options.add(fragment.getString(R.string.take_a_picture));
}
if (clearImageOption != null) {
@ -160,33 +140,7 @@ public class ActFmCameraModule {
cameraResult.handleCameraResult(uri);
}
return true;
} else if(requestCode == ActFmCameraModule.REQUEST_CODE_PICTURE && resultCode == Activity.RESULT_OK) {
Uri uri = data.getData();
ContentResolver contentResolver = fragment.getActivity().getContentResolver();
MimeTypeMap mime = MimeTypeMap.getSingleton();
String extension = mime.getExtensionFromMimeType(contentResolver.getType(uri));
File tempFile = getFilename(extension);
log.debug("Writing {} to {}", uri, tempFile);
try {
InputStream inputStream = fragment.getActivity().getContentResolver().openInputStream(uri);
copyFile(inputStream, tempFile.getPath());
} catch (IOException e) {
throw new RuntimeException(e);
}
fragment.getActivity().setResult(Activity.RESULT_OK);
cameraResult.handleCameraResult(Uri.fromFile(tempFile));
return true;
}
return false;
}
private static void copyFile(InputStream inputStream, String to) throws IOException {
FileOutputStream fos = new FileOutputStream(to);
byte[] buf = new byte[1024];
int len;
while ((len = inputStream.read(buf)) != -1) {
fos.write(buf, 0, len);
}
fos.close();
}
}

@ -47,7 +47,6 @@ import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskAttachment;
import com.todoroo.astrid.files.AACRecordingActivity;
import com.todoroo.astrid.files.FileExplore;
import com.todoroo.astrid.files.FilesControlSet;
import com.todoroo.astrid.gcal.GCalControlSet;
import com.todoroo.astrid.gcal.GCalHelper;
@ -73,6 +72,7 @@ import com.todoroo.astrid.utility.Flags;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.activities.AddAttachmentActivity;
import org.tasks.activities.LocationPickerActivity;
import org.tasks.activities.TimePickerActivity;
import org.tasks.dialogs.DialogBuilder;
@ -81,7 +81,6 @@ import org.tasks.location.Geofence;
import org.tasks.location.GeofenceService;
import org.tasks.notifications.NotificationManager;
import org.tasks.preferences.ActivityPreferences;
import org.tasks.preferences.DeviceInfo;
import org.tasks.ui.DeadlineControlSet;
import org.tasks.ui.MenuColorizer;
@ -147,7 +146,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
// --- request codes
public static final int REQUEST_CODE_RECORD = 30;
public static final int REQUEST_CODE_ATTACH_FILE = 40;
public static final int REQUEST_ADD_ATTACHMENT = 50;
// --- result codes
@ -172,7 +171,6 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
@Inject TagDataDao tagDataDao;
@Inject ActFmCameraModule actFmCameraModule;
@Inject GeofenceService geofenceService;
@Inject DeviceInfo deviceInfo;
@Inject DialogBuilder dialogBuilder;
// --- UI components
@ -400,7 +398,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
controls.add(timerControl);
controlSetMap.put(getString(R.string.TEA_ctrl_timer_pref), timerControl);
filesControlSet = new FilesControlSet(preferences, taskAttachmentDao, this, deviceInfo, actFmCameraModule);
filesControlSet = new FilesControlSet(preferences, taskAttachmentDao, this);
controls.add(filesControlSet);
controlSetMap.put(getString(R.string.TEA_ctrl_files_pref), filesControlSet);
@ -843,8 +841,11 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
String recordedAudioPath = data.getStringExtra(AACRecordingActivity.RESULT_OUTFILE);
String recordedAudioName = data.getStringExtra(AACRecordingActivity.RESULT_FILENAME);
filesControlSet.createNewFileAttachment(recordedAudioPath, recordedAudioName, TaskAttachment.FILE_TYPE_AUDIO + "m4a"); //$NON-NLS-1$
} else if (requestCode == REQUEST_CODE_ATTACH_FILE && resultCode == Activity.RESULT_OK) {
filesControlSet.attachFile(data.getStringExtra(FileExplore.RESULT_FILE_SELECTED));
} else if (requestCode == REQUEST_ADD_ATTACHMENT && resultCode == Activity.RESULT_OK) {
String path = data.getStringExtra(AddAttachmentActivity.EXTRA_PATH);
File file = new File(path);
String extension = path.substring(path.lastIndexOf('.') + 1);
filesControlSet.createNewFileAttachment(path, file.getName(), TaskAttachment.FILE_TYPE_IMAGE + extension);
}
actFmCameraModule.activityResult(requestCode, resultCode, data, new CameraResultCallback() {
@Override

@ -444,8 +444,7 @@ public class TaskAdapter extends CursorAdapter implements Filterable {
private void showFilesDialog(Task task) {
FilesControlSet filesControlSet = new FilesControlSet(
preferences, taskAttachmentDao,
fragment, null, null);
preferences, taskAttachmentDao, fragment);
filesControlSet.hideAddAttachmentButton();
filesControlSet.readFromTask(task);
filesControlSet.getView().performClick();

@ -17,14 +17,12 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.MimeTypeMap;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.todoroo.andlib.data.Callback;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.actfm.ActFmCameraModule;
import com.todoroo.astrid.activity.TaskEditFragment;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.data.SyncFlags;
@ -35,13 +33,12 @@ import com.todoroo.astrid.helper.TaskEditControlSetBase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.activities.AddAttachmentActivity;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.preferences.ActivityPreferences;
import org.tasks.preferences.DeviceInfo;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class FilesControlSet extends TaskEditControlSetBase {
@ -49,23 +46,17 @@ public class FilesControlSet extends TaskEditControlSetBase {
private final ArrayList<TaskAttachment> files = new ArrayList<>();
private final LayoutInflater inflater;
private ActivityPreferences preferences;
private final TaskAttachmentDao taskAttachmentDao;
private final Fragment fragment;
private final DeviceInfo deviceInfo;
private final ActFmCameraModule actFmCameraModule;
private final DialogBuilder dialogBuilder;
private LinearLayout attachmentContainer;
private TextView addAttachment;
public FilesControlSet(ActivityPreferences preferences, TaskAttachmentDao taskAttachmentDao,
Fragment fragment, DeviceInfo deviceInfo, ActFmCameraModule actFmCameraModule) {
Fragment fragment) {
super(fragment.getActivity(), R.layout.control_set_files);
this.preferences = preferences;
this.taskAttachmentDao = taskAttachmentDao;
this.fragment = fragment;
this.deviceInfo = deviceInfo;
this.actFmCameraModule = actFmCameraModule;
this.dialogBuilder = new DialogBuilder(activity, preferences);
inflater = (LayoutInflater) activity.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
}
@ -171,7 +162,7 @@ public class FilesControlSet extends TaskEditControlSetBase {
addAttachment.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
startAttachFile();
fragment.startActivityForResult(new Intent(activity, AddAttachmentActivity.class), TaskEditFragment.REQUEST_ADD_ATTACHMENT);
}
});
}
@ -248,79 +239,6 @@ public class FilesControlSet extends TaskEditControlSetBase {
}
}
private void startAttachFile() {
final List<Runnable> runnables = new ArrayList<>();
List<String> options = new ArrayList<>();
if (deviceInfo.hasCamera() || deviceInfo.hasGallery()) {
runnables.add(new Runnable() {
@Override
public void run() {
actFmCameraModule.showPictureLauncher(null);
}
});
options.add(activity.getString(R.string.file_add_picture));
}
runnables.add(new Runnable() {
@Override
public void run() {
Intent attachFile = new Intent(activity, FileExplore.class);
fragment.startActivityForResult(attachFile, TaskEditFragment.REQUEST_CODE_ATTACH_FILE);
}
});
options.add(activity.getString(R.string.file_add_sdcard));
ArrayAdapter<String> adapter = new ArrayAdapter<>(
activity,
android.R.layout.simple_spinner_dropdown_item,
options.toArray(new String[options.size()]));
DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface d, int which) {
runnables.get(which).run();
}
};
// show a menu of available options
dialogBuilder.newDialog()
.setAdapter(adapter, listener)
.show()
.setOwnerActivity(activity);
}
public void attachFile(String file) {
File src = new File(file);
if (!src.exists()) {
Toast.makeText(activity, R.string.file_err_copy, Toast.LENGTH_LONG).show();
return;
}
File dst = new File(preferences.getAttachmentsDirectory() + File.separator + src.getName());
try {
AndroidUtilities.copyFile(src, dst);
} catch (Exception e) {
log.error(e.getMessage(), e);
Toast.makeText(activity, R.string.file_err_copy, Toast.LENGTH_LONG).show();
return;
}
String path = dst.getAbsolutePath();
String name = dst.getName();
String extension = AndroidUtilities.getFileExtension(name);
String type = TaskAttachment.FILE_TYPE_OTHER;
if (!TextUtils.isEmpty(extension)) {
MimeTypeMap map = MimeTypeMap.getSingleton();
String guessedType = map.getMimeTypeFromExtension(extension);
if (!TextUtils.isEmpty(guessedType)) {
type = guessedType;
}
}
createNewFileAttachment(path, name, type);
}
public void createNewFileAttachment(String path, String fileName, String fileType) {
TaskAttachment attachment = TaskAttachment.createNewAttachment(model.getUuid(), path, fileName, fileType);
taskAttachmentDao.createNew(attachment);

@ -0,0 +1,191 @@
package org.tasks.activities;
import android.content.ContentResolver;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.app.FragmentManager;
import android.text.TextUtils;
import android.webkit.MimeTypeMap;
import android.widget.Toast;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.data.TaskAttachment;
import com.todoroo.astrid.files.FileExplore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.dialogs.AddAttachmentDialog;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.preferences.Preferences;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.concurrent.atomic.AtomicReference;
import javax.inject.Inject;
public class AddAttachmentActivity extends InjectingAppCompatActivity implements DialogInterface.OnCancelListener, AddAttachmentDialog.AddAttachmentCallback {
private static final Logger log = LoggerFactory.getLogger(AddAttachmentActivity.class);
private static final String FRAG_TAG_ATTACHMENT_DIALOG = "frag_tag_attachment_dialog";
private static final int REQUEST_CAMERA = 12120;
private static final int REQUEST_GALLERY = 12121;
private static final int REQUEST_STORAGE = 12122;
public static final String EXTRA_PATH = "extra_path";
@Deprecated private static File lastTempFile = null;
@Inject Preferences preferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FragmentManager supportFragmentManager = getSupportFragmentManager();
AddAttachmentDialog dialog = (AddAttachmentDialog) supportFragmentManager.findFragmentByTag(FRAG_TAG_ATTACHMENT_DIALOG);
if (dialog == null) {
dialog = new AddAttachmentDialog();
dialog.show(supportFragmentManager, FRAG_TAG_ATTACHMENT_DIALOG);
}
dialog.setOnCancelListener(this);
dialog.setAddAttachmentCallback(this);
}
@Override
public void onCancel(DialogInterface dialog) {
finish();
}
@Override
public void takePicture() {
lastTempFile = getFilename(".jpeg");
if (lastTempFile == null) {
Toast.makeText(this, R.string.external_storage_unavailable, Toast.LENGTH_LONG).show();
} else {
startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE) {{
addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(lastTempFile));
}}, REQUEST_CAMERA);
}
}
@Override
public void pickFromGallery() {
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI) {{
setType("image/*");
}};
if (intent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(intent, REQUEST_GALLERY);
}
}
@Override
public void pickFromStorage() {
startActivityForResult(new Intent(this, FileExplore.class), REQUEST_STORAGE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
if (requestCode == REQUEST_CAMERA) {
if (resultCode == RESULT_OK) {
if (lastTempFile != null) {
log.info("Saved {}", lastTempFile.getAbsolutePath());
setResult(RESULT_OK, new Intent() {{
putExtra(EXTRA_PATH, lastTempFile.getAbsolutePath());
}});
lastTempFile = null;
}
}
finish();
} else if (requestCode == REQUEST_GALLERY) {
if (resultCode == RESULT_OK) {
Uri uri = data.getData();
ContentResolver contentResolver = getContentResolver();
MimeTypeMap mime = MimeTypeMap.getSingleton();
String extension = mime.getExtensionFromMimeType(contentResolver.getType(uri));
final File tempFile = getFilename(extension);
log.info("Writing {} to {}", uri, tempFile);
try {
InputStream inputStream = contentResolver.openInputStream(uri);
copyFile(inputStream, tempFile.getPath());
} catch (IOException e) {
throw new RuntimeException(e);
}
setResult(RESULT_OK, new Intent() {{
putExtra(EXTRA_PATH, tempFile.getAbsolutePath());
}});
}
finish();
} else if (requestCode == REQUEST_STORAGE) {
if (resultCode == RESULT_OK) {
String path = data.getStringExtra(FileExplore.RESULT_FILE_SELECTED);
final String destination = copyToAttachmentDirectory(path);
if (destination != null) {
log.info("Copied {} to {}", path, destination);
setResult(RESULT_OK, new Intent() {{
putExtra(EXTRA_PATH, destination);
}});
}
}
finish();
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
private File getFilename(String extension) {
AtomicReference<String> nameRef = new AtomicReference<>();
if (!extension.startsWith(".")) {
extension = "." + extension;
}
try {
String path = preferences.getNewAttachmentPath(extension, nameRef);
File file = new File(path);
file.getParentFile().mkdirs();
if (!file.createNewFile()) {
throw new RuntimeException("Failed to create " + file.getPath());
}
return file;
} catch (IOException e) {
log.error(e.getMessage(), e);
}
return null;
}
private void copyFile(InputStream inputStream, String to) throws IOException {
FileOutputStream fos = new FileOutputStream(to);
byte[] buf = new byte[1024];
int len;
while ((len = inputStream.read(buf)) != -1) {
fos.write(buf, 0, len);
}
fos.close();
}
private String copyToAttachmentDirectory(String file) {
File src = new File(file);
if (!src.exists()) {
Toast.makeText(this, R.string.file_err_copy, Toast.LENGTH_LONG).show();
return null;
}
File dst = new File(preferences.getAttachmentsDirectory() + File.separator + src.getName());
try {
AndroidUtilities.copyFile(src, dst);
} catch (Exception e) {
log.error(e.getMessage(), e);
Toast.makeText(this, R.string.file_err_copy, Toast.LENGTH_LONG).show();
return null;
}
return dst.getAbsolutePath();
}
}

@ -0,0 +1,88 @@
package org.tasks.dialogs;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import org.tasks.R;
import org.tasks.injection.InjectingDialogFragment;
import org.tasks.preferences.DeviceInfo;
import java.util.List;
import javax.inject.Inject;
import static com.google.api.client.util.Lists.newArrayList;
public class AddAttachmentDialog extends InjectingDialogFragment {
public interface AddAttachmentCallback {
void takePicture();
void pickFromGallery();
void pickFromStorage();
}
@Inject DialogBuilder dialogBuilder;
@Inject DeviceInfo deviceInfo;
private AddAttachmentCallback callback;
private DialogInterface.OnCancelListener onCancelListener;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
List<String> entries = newArrayList();
final List<Runnable> actions = newArrayList();
if (deviceInfo.hasCamera()) {
entries.add(getString(R.string.take_a_picture));
actions.add(new Runnable() {
@Override
public void run() {
callback.takePicture();
}
});
}
if (deviceInfo.hasGallery()) {
entries.add(getString(R.string.pick_from_gallery));
actions.add(new Runnable() {
@Override
public void run() {
callback.pickFromGallery();
}
});
}
entries.add(getString(R.string.pick_from_storage));
actions.add(new Runnable() {
@Override
public void run() {
callback.pickFromStorage();
}
});
return dialogBuilder.newDialog()
.setItems(entries.toArray(new String[entries.size()]), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
actions.get(which).run();
}
})
.show();
}
@Override
public void onCancel(DialogInterface dialog) {
super.onCancel(dialog);
if (onCancelListener != null) {
onCancelListener.onCancel(dialog);
}
}
public void setAddAttachmentCallback(AddAttachmentCallback callback) {
this.callback = callback;
}
public void setOnCancelListener(DialogInterface.OnCancelListener onCancelListener) {
this.onCancelListener = onCancelListener;
}
}

@ -22,6 +22,7 @@ import com.todoroo.astrid.reminders.ReminderPreferences;
import com.todoroo.astrid.service.UpgradeService;
import com.todoroo.astrid.widget.WidgetConfigActivity;
import org.tasks.activities.AddAttachmentActivity;
import org.tasks.activities.CalendarSelectionActivity;
import org.tasks.activities.ClearAllDataActivity;
import org.tasks.activities.ClearGtaskDataActivity;
@ -96,7 +97,8 @@ import dagger.Provides;
FileExplore.class,
DonationActivity.class,
UpgradeService.UpgradeActivity.class,
CalendarSelectionActivity.class
CalendarSelectionActivity.class,
AddAttachmentActivity.class
})
public class ActivityModule {

@ -4,8 +4,10 @@ import android.app.Activity;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentActivity;
import org.tasks.activities.AddAttachmentActivity;
import org.tasks.activities.CalendarSelectionDialog;
import org.tasks.dialogs.AccountSelectionDialog;
import org.tasks.dialogs.AddAttachmentDialog;
import org.tasks.dialogs.LocationPickerDialog;
import org.tasks.reminders.MissedCallDialog;
import org.tasks.reminders.NotificationDialog;
@ -21,7 +23,8 @@ import dagger.Provides;
SnoozeDialog.class,
MissedCallDialog.class,
CalendarSelectionDialog.class,
AccountSelectionDialog.class
AccountSelectionDialog.class,
AddAttachmentDialog.class
},
library = true)
public class DialogFragmentModule {

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">التقط صورة</string>
<string name="actfm_picture_gallery">اختار من المعرض</string>
<string name="actfm_picture_clear">مسح الصورة</string>
<string name="TVA_add_comment">إضافة تعليق ...</string>
<string name="backup_BPr_header">النسخ الإحتياطي</string>
@ -139,8 +137,6 @@
<string name="audio_stop_recording">توقف عن التسجيل</string>
<string name="file_browser_title">أختر ملف</string>
<string name="dir_browser_title">أختار المسار</string>
<string name="file_add_picture">ارفق صورة</string>
<string name="file_add_sdcard">ارفق ملف من الذاكرة الخارجية</string>
<string name="file_dir_dialog_ok">استخدم هذا المسار</string>
<string name="file_dir_dialog_default">إعادة إلى الافتراضي</string>
<string-array name="TEA_reminder_random">

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Направете снимка</string>
<string name="actfm_picture_gallery">Изберете от Галерия</string>
<string name="actfm_picture_clear">Изчисти Картинка</string>
<string name="TVA_add_comment">Добави коментар...</string>
<string name="name">Име</string>
@ -241,8 +239,6 @@
<string name="file_browser_title">Избери файл</string>
<string name="dir_browser_title">Избери директория</string>
<string name="file_browser_err_permissions">Грешка в Разрешения! Моля, проверете дали не сте блокирани Tasks от достъп до SD картата.</string>
<string name="file_add_picture">Прикачи снимка</string>
<string name="file_add_sdcard">Прикачи файл от SD карта</string>
<string name="file_err_copy">Грешка при копиране на файла за прикачване</string>
<string name="file_dir_dialog_ok">Използвай тази директория</string>
<string name="file_dir_dialog_default">Възстанови по подразбиране</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Fes una fotografia</string>
<string name="actfm_picture_gallery">Tria una imatge de la galeria</string>
<string name="actfm_picture_clear">Neteja la selecció d\'imatge</string>
<string name="TVA_add_comment">Afegiu un comentari...</string>
<string name="backup_BPr_header">Còpies de seguretat</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Vyfoť obrázek</string>
<string name="actfm_picture_gallery">Vybrat obrázek z galerie</string>
<string name="actfm_picture_clear">Odebrat obrázek</string>
<string name="TVA_add_comment">Přidej comment...</string>
<string name="backup_BPr_header">Zálohy</string>
@ -211,8 +209,6 @@
<string name="file_browser_title">Vybrat soubor</string>
<string name="dir_browser_title">Vytvořit složku</string>
<string name="file_browser_err_permissions">Chyba oprávnění! Ujistěte se prosím, že jste Tasks nezabránil v přístupu k SD kartě.</string>
<string name="file_add_picture">Připojit obrázek</string>
<string name="file_add_sdcard">Připojit soubor z SD karty</string>
<string name="file_err_copy">Chyba při kopírování souboru jako přílohy</string>
<string name="file_dir_dialog_ok">Použít tento adresář</string>
<string name="file_dir_dialog_default">Obnovit výchozí nastavení</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Tag et billede</string>
<string name="actfm_picture_gallery">Vælg fra galleri</string>
<string name="actfm_picture_clear">Ryd markering</string>
<string name="TVA_add_comment">Tilføj en kommentar</string>
<string name="backup_BPr_header">Backup</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Bild aufnehmen</string>
<string name="actfm_picture_gallery">Aus Galerie wählen</string>
<string name="actfm_picture_clear">Bild entfernen</string>
<string name="TVA_add_comment">Kommentar hinzufügen …</string>
<string name="enter_tag_name">Schlagwort eingeben</string>
@ -222,8 +220,6 @@
<string name="file_browser_title">Wählen Sie eine Datei</string>
<string name="dir_browser_title">Wähle ein Verzeichnis</string>
<string name="file_browser_err_permissions">Konnte nicht auf die SD-Karte zugreifen. Bitte stellen Sie sicher, das sie den Zugriff auf sie SD Karte nicht eingeschränkt haben.</string>
<string name="file_add_picture">Ein Bild anhängen</string>
<string name="file_add_sdcard">Eine Datei von der SD-Karte anhängen</string>
<string name="file_err_copy">Fehler beim Kopieren der anzuhängenden Datei</string>
<string name="file_dir_dialog_ok">Dieses Verzeichnis verwenden</string>
<string name="file_dir_dialog_default">Auf Standardeinstellungen zurücksetzen</string>

@ -5,7 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Τράβα φωτογραφία</string>
<string name="actfm_picture_clear">Καθαρή εικόνα</string>
<string name="TVA_add_comment">Προσθήκη σχόλιου...</string>
<string name="backup_BPr_header">Αντίγραφα ασφαλείας</string>
@ -213,8 +212,6 @@
<string name="file_browser_title">Επιλογή αρχείου</string>
<string name="dir_browser_title">Επιλογή φακέλου</string>
<string name="file_browser_err_permissions">Σφάλμα αδειών! Παρακαλώ σιγουρευτείτε ότι δεν έχετε μπλοκάρει την εφαρμογή από την πρόσβαση στην SD κάρτα σας.</string>
<string name="file_add_picture">Επισύναψη εικόνας</string>
<string name="file_add_sdcard">Επισύναψη αρχείου απο την SD κάρτα σας</string>
<string name="file_err_copy">Σφάλμα αντιγραφής αρχείου προς επισύναψη</string>
<string name="file_dir_dialog_ok">Χρήση αυτού του φακέλου</string>
<string name="file_dir_dialog_default">Επαναφορά προεπιλογών</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Tomar una foto</string>
<string name="actfm_picture_gallery">Elegir de la galería</string>
<string name="actfm_picture_clear">Borrar imagen</string>
<string name="TVA_add_comment">Añadir un comentario...</string>
<string name="name">Nombre</string>
@ -223,8 +221,6 @@
<string name="file_browser_title">Elija un archivo</string>
<string name="dir_browser_title">Elija un directorio</string>
<string name="file_browser_err_permissions">¡Permiso denegado! Por favor asegúrese permitir a Tasks el acceso a la tarjeta SD.</string>
<string name="file_add_picture">Adjuntar una imagen</string>
<string name="file_add_sdcard">Adjuntar un archivo desde su tarjeta SD</string>
<string name="file_err_copy">Error al copiar el archivo a adjuntar</string>
<string name="file_dir_dialog_ok">Usar este directorio</string>
<string name="file_dir_dialog_default">Restaurar a valores por defecto</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">گرفتن عکس</string>
<string name="actfm_picture_gallery">انتخاب از گالری</string>
<string name="actfm_picture_clear">پاک کردن عکس</string>
<string name="TVA_add_comment">اضافه کردن نظر</string>
<string name="name">نام</string>
@ -168,8 +166,6 @@
<string name="file_browser_title">انتخاب یک فایل</string>
<string name="dir_browser_title">یک پوشه انتخاب کنید</string>
<string name="file_browser_err_permissions">خطای دسترسی! لطفا مطمن شوید تسکس را از دسترسی به حافظه خارجی منع نکرده اید.</string>
<string name="file_add_picture">الصاق یک تصویر</string>
<string name="file_add_sdcard">الصاق یک فایل از حافظه خارجی</string>
<string name="file_err_copy">خطای کپی فایل برای ضمیمه</string>
<string name="file_dir_dialog_ok">استفاده از این پوشه</string>
<string name="file_dir_dialog_default">بازگرداندن به پیش فرض</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Prendre une photo</string>
<string name="actfm_picture_gallery">Choisir depuis la galerie</string>
<string name="actfm_picture_clear">Supprimer l\'image</string>
<string name="TVA_add_comment">Ajouter un commentaire</string>
<string name="name">Nom</string>
@ -226,8 +224,6 @@
<string name="file_browser_title">Choisissez un fichier</string>
<string name="dir_browser_title">Choisissez un dossier</string>
<string name="file_browser_err_permissions">Erreur de permissions ! Assurez-vous qu\'Tasks à le droit d\'accéder à la carte SD.</string>
<string name="file_add_picture">Joindre une photo</string>
<string name="file_add_sdcard">Joindre un fichier à partir de votre carte SD</string>
<string name="file_err_copy">Erreur lors de la copie du fichier à joindre</string>
<string name="file_dir_dialog_ok">Utiliser ce dossier</string>
<string name="file_dir_dialog_default">Rétablir les valeurs par défaut</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Scatta una foto</string>
<string name="actfm_picture_gallery">Scegli dalla Galleria</string>
<string name="actfm_picture_clear">Deseleziona Immagine</string>
<string name="TVA_add_comment">Aggiungi un commento...</string>
<string name="name">Nome</string>
@ -236,8 +234,6 @@ Se visualizzi questo errore più volte, ti consigliamo di cancellare tutti i dat
<string name="file_browser_title">Scegli un file</string>
<string name="dir_browser_title">Scegli una cartella</string>
<string name="file_browser_err_permissions">Errore di autorizzazioni! Assicurati di non aver bloccato l\'accesso alla scheda SD da parte di Tasks</string>
<string name="file_add_picture">Allega una foto</string>
<string name="file_add_sdcard">Allega un file dalla tua scheda SD</string>
<string name="file_err_copy">Errore di copia dei file da allegare</string>
<string name="file_dir_dialog_ok">Utilizza questa directory</string>
<string name="file_dir_dialog_default">Ripristino impostazioni iniziali</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">צַלֵּם תמונה</string>
<string name="actfm_picture_gallery">בחר מגלריה</string>
<string name="actfm_picture_clear">הסר תמונה</string>
<string name="TVA_add_comment">הוסף הערה</string>
<string name="backup_BPr_header">גיבויים</string>
@ -214,8 +212,6 @@
<string name="file_browser_title">בחר קובץ</string>
<string name="dir_browser_title">יש לבחור תיקייה</string>
<string name="file_browser_err_permissions">הרשאות לא מספיקות! אנא בדוק שלא חסמת את אסטריד מלגשת לכרטיס הזיכרון</string>
<string name="file_add_picture">צרף תמונה</string>
<string name="file_add_sdcard">צרף קובץ מכרטיס הזיכרון</string>
<string name="file_err_copy">שגיאה בהעתקת הקובץ המצורף</string>
<string name="file_dir_dialog_ok">השתמש בתיקיה זו</string>
<string name="file_dir_dialog_default">אפס לברירת מחדל</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">写真を撮る</string>
<string name="actfm_picture_gallery">ギャラリーから選択</string>
<string name="actfm_picture_clear">写真を削除</string>
<string name="TVA_add_comment">コメントする</string>
<string name="name">名前</string>
@ -240,8 +238,6 @@
<string name="file_browser_title">ファイルを選択</string>
<string name="dir_browser_title">ディレクトリを選択</string>
<string name="file_browser_err_permissions">パーミッションエラー! SD カードのアクセスで Tasks をブロックしていないことを確認してください.</string>
<string name="file_add_picture">画像を添付</string>
<string name="file_add_sdcard">SD カードからファイルを添付</string>
<string name="file_err_copy">ファイル添付のコピー中にエラー</string>
<string name="file_dir_dialog_ok">このディレクトリを使用</string>
<string name="file_dir_dialog_default">デフォルトにリセット</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">사진 찍기</string>
<string name="actfm_picture_gallery">갤러리에서 가져오기</string>
<string name="actfm_picture_clear">사진 제거하기</string>
<string name="TVA_add_comment">댓글 쓰기...</string>
<string name="name">이름</string>
@ -243,8 +241,6 @@ Tasks의 백업에서 당신의 일정을 복구하시기 바랍니다.
<string name="file_browser_title">파일 선택하기</string>
<string name="dir_browser_title">디렉토리 선택하기</string>
<string name="file_browser_err_permissions">권한 에러! Tasks가 SD 카드에 접근하는 것을 막지 않았는지 확인하세요.</string>
<string name="file_add_picture">그림 첨부하기</string>
<string name="file_add_sdcard">SD 카드에서 파일 첨부하기</string>
<string name="file_err_copy">첨부용 파일 복사 에러</string>
<string name="file_dir_dialog_ok">이 디렉토리 사용</string>
<string name="file_dir_dialog_default">기본값으로 초기화</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Maak een Foto</string>
<string name="actfm_picture_gallery">Kies uit de Galerij</string>
<string name="actfm_picture_clear">Verwijder Foto</string>
<string name="TVA_add_comment">Voeg een opmerking toe</string>
<string name="name">Naam</string>
@ -237,8 +235,6 @@
<string name="file_browser_title">Bestand kiezen</string>
<string name="dir_browser_title">Kies een directory</string>
<string name="file_browser_err_permissions">Bestandsrechtenfout! Let erop dat Tasks toegang heeft tot de SD-kaart.</string>
<string name="file_add_picture">Afbeelding toevoegen</string>
<string name="file_add_sdcard">Bestand toevoegen vanaf SD-kaart</string>
<string name="file_err_copy">Fout bij kopiëren toe te voegen bestand</string>
<string name="file_dir_dialog_ok">Gebruik deze directory.</string>
<string name="file_dir_dialog_default">Stel opnieuw in naar standaardinstellingen</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Zrób zdjęcie</string>
<string name="actfm_picture_gallery">Wybierz z galerii</string>
<string name="actfm_picture_clear">Usuń obrazek</string>
<string name="TVA_add_comment">Dodaj komentarz...</string>
<string name="backup_BPr_header">Kopie zapasowe</string>
@ -217,8 +215,6 @@ i odzyskanie zadań z kopi zapasowej (Settings-&gt;Sync and backup-&gt;Backup-&g
<string name="file_browser_title">Wybierz plik</string>
<string name="dir_browser_title">Wybierz katalog</string>
<string name="file_browser_err_permissions">Błąd dostępu! Proszę upewnić się, że Tasks nie ma zablokowanego dostępu do karty SD.</string>
<string name="file_add_picture">Dodaj obrazek</string>
<string name="file_add_sdcard">Dodaj plik z karty SD</string>
<string name="file_err_copy">Błąd kopiowania pliku do załącznika</string>
<string name="file_dir_dialog_ok">Użycie tego katalogu</string>
<string name="file_dir_dialog_default">Przywróć ustawienia domyślne</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Tirar uma foto</string>
<string name="actfm_picture_gallery">Selecionar da galeria</string>
<string name="actfm_picture_clear">Limpar imagem</string>
<string name="TVA_add_comment">Comentar...</string>
<string name="backup_BAc_import">Importar tarefas</string>
@ -213,8 +211,6 @@
<string name="file_browser_title">Escolha um arquivo</string>
<string name="dir_browser_title">Escolha um diretório</string>
<string name="file_browser_err_permissions">Erro de permissões! Certifique-se de que você não bloqueou o Tasks de acessar o cartão SD.</string>
<string name="file_add_picture">Anexe uma imagem</string>
<string name="file_add_sdcard">Anexe um arquivo do seu cartão SD</string>
<string name="file_err_copy">Erro ao copiar o arquivo para o anexo</string>
<string name="file_dir_dialog_ok">Usar este diretório</string>
<string name="file_dir_dialog_default">Restaurar padrões</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Tirar uma foto</string>
<string name="actfm_picture_gallery">Escolher da galeria</string>
<string name="actfm_picture_clear">Limpar imagem</string>
<string name="TVA_add_comment">Adicionar um comentário...</string>
<string name="name">Nome</string>
@ -234,8 +232,6 @@ das tarefas através de um backup em Definições-&gt;Sincronização e backup-&
<string name="file_browser_title">Escolha um ficheiro</string>
<string name="dir_browser_title">Escolha um diretório</string>
<string name="file_browser_err_permissions">Erro de permissões! Certifique-se que o Tasks tem permissões para aceder ao cartão SD:</string>
<string name="file_add_picture">Anexar imagem</string>
<string name="file_add_sdcard">Anexar um ficheiro do cartão SD</string>
<string name="file_err_copy">Erro ao copiar o ficheiro como anexo</string>
<string name="file_dir_dialog_ok">Usar este diretório</string>
<string name="file_dir_dialog_default">Restaurar definições originais</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Сделать снимок</string>
<string name="actfm_picture_gallery">Взять из галереи</string>
<string name="actfm_picture_clear">Убрать изображение</string>
<string name="TVA_add_comment">Добавить комментарий...</string>
<string name="name">Тег:</string>
@ -239,8 +237,6 @@
<string name="file_browser_title">Выбрать файл</string>
<string name="dir_browser_title">Выбрать папку</string>
<string name="file_browser_err_permissions">Ошибка доступа! Пожалуйста убедитесь, что Tasks имеет доступ к SD карте.</string>
<string name="file_add_picture">Прикрепите изображение</string>
<string name="file_add_sdcard">Прикрепите файл с карты памяти SD.</string>
<string name="file_err_copy">Ошибка копирования прикрепляемого файла.</string>
<string name="file_dir_dialog_ok">Использовать эту папку</string>
<string name="file_dir_dialog_default">Сбросить настройки</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Odfotiť</string>
<string name="actfm_picture_gallery">Vybrať z galérie</string>
<string name="actfm_picture_clear">Vymazať obrázok</string>
<string name="TVA_add_comment">Komentovať...</string>
<string name="name">Názov</string>
@ -226,8 +224,6 @@
<string name="file_browser_title">Vybrať súbor</string>
<string name="dir_browser_title">Vytvoriť zložku</string>
<string name="file_browser_err_permissions">Chyba oprávnenia! Prosím, uisti sa, či Tasks namá zablokovaný prístup k SD karte.</string>
<string name="file_add_picture">Priložiť obrázok</string>
<string name="file_add_sdcard">Priložiť súbor z SD karty</string>
<string name="file_err_copy">Chyba pri kopírovaní súboru do prílohy</string>
<string name="file_dir_dialog_ok">Použiť tento adresár</string>
<string name="file_dir_dialog_default">Obnoviť predvolené</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Naredi fotografijo</string>
<string name="actfm_picture_gallery">Izberi iz Galerije</string>
<string name="actfm_picture_clear">Zbriši fotografijo</string>
<string name="TVA_add_comment">Dodaj komentar...</string>
<string name="backup_BPr_header">Varnostne kopije</string>
@ -217,8 +215,6 @@
<string name="file_browser_title">Izberite datoteko</string>
<string name="dir_browser_title">Izberite mapo</string>
<string name="file_browser_err_permissions">Napaka pri dovoljenjih! Prosimo, preverite, da niste preprečili aplikaciji Opravki dostopa do SD kartice.</string>
<string name="file_add_picture">Pripni sliko</string>
<string name="file_add_sdcard">Pripni datoteko z SD kartice</string>
<string name="file_err_copy">Napaka pri kopiranju datoteke za priponko</string>
<string name="file_dir_dialog_ok">Uporabi to mapo</string>
<string name="file_dir_dialog_default">Ponastavi na privzeto</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Ta en bild</string>
<string name="actfm_picture_gallery">Välj från galleri</string>
<string name="actfm_picture_clear">Rensa bild</string>
<string name="TVA_add_comment">Lägg till en kommentar...</string>
<string name="backup_BPr_header">Säkerhetskopior</string>
@ -211,8 +209,6 @@ och återställer dina aktuella uppgifter från en backup
<string name="file_browser_title">Välj en fil</string>
<string name="dir_browser_title">Välj sökväg</string>
<string name="file_browser_err_permissions">Behörighets fel! Vänligen kontrollera att du inte blockat Tasks från att komma åt SD-kortet.</string>
<string name="file_add_picture">Bifoga en bild</string>
<string name="file_add_sdcard">Bifoga en fil från SD-kortet</string>
<string name="file_err_copy">Bifoga fil misslyckades: fel vid kopiering</string>
<string name="file_dir_dialog_ok">Använd denna mapp</string>
<string name="file_dir_dialog_default">Återställ till standard</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">ถ่ายภาพ</string>
<string name="actfm_picture_gallery">เลือกจากคลังภาพ</string>
<string name="actfm_picture_clear">ล้างภาพ</string>
<string name="backup_BPr_header">สำรองข้อมูล</string>
<string name="import_progress_read">กำลังอ่านแผนงาน %d...</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Resim Çek</string>
<string name="actfm_picture_gallery">Galeriden Seç</string>
<string name="actfm_picture_clear">Resmi sil</string>
<string name="TVA_add_comment">Yorum Gir</string>
<string name="backup_BPr_header">Yedekler</string>
@ -192,8 +190,6 @@
<string name="file_browser_title">Bir dosya seçin</string>
<string name="dir_browser_title">Bir dizin seçin</string>
<string name="file_browser_err_permissions">İzin hatası! Tasks\'in SD kartınıza erişiminin engellenmediğinden emin olun lütfen.</string>
<string name="file_add_picture">Bir resim ekle</string>
<string name="file_add_sdcard">SD kartınızdan bir dosya ekleyin</string>
<string name="file_err_copy">Dosyanın ek olarak kopyalanmasında hata</string>
<string name="file_dir_dialog_ok">Bu dizini kullan</string>
<string name="file_dir_dialog_default">Öntanımlı değere dön</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">Зробити знімок</string>
<string name="actfm_picture_gallery">Завантажити з Галереї</string>
<string name="actfm_picture_clear">Очистити</string>
<string name="TVA_add_comment">Додати коментар</string>
<string name="backup_BPr_header">Резервні копії</string>
@ -221,8 +219,6 @@
<string name="file_browser_title">Вибрати файл</string>
<string name="dir_browser_title">Вибрати каталог</string>
<string name="file_browser_err_permissions">Помилка доступу! Будь ласка переконайтеся, що ви не заблокували Tasks для доступу до SD карти.</string>
<string name="file_add_picture">Прикріпити зображення</string>
<string name="file_add_sdcard">Додати файл з SD карти</string>
<string name="file_err_copy">Помилка копіювання доданого файлу.</string>
<string name="file_dir_dialog_ok">Використовувати цю папку</string>
<string name="file_dir_dialog_default">Скинути налаштування за замовчуванням</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">拍照</string>
<string name="actfm_picture_gallery">从相册中选取</string>
<string name="actfm_picture_clear">取消选择</string>
<string name="TVA_add_comment">添加注释...</string>
<string name="backup_BPr_header">备份</string>
@ -171,8 +169,6 @@
<string name="file_browser_title">选择一个文件</string>
<string name="dir_browser_title">选择一个目录</string>
<string name="file_browser_err_permissions">权限出错!请确保您没有阻止清单小助理访问 SD 卡。</string>
<string name="file_add_picture">附上一幅图片</string>
<string name="file_add_sdcard">附上一份来自您 SD 卡的文件</string>
<string name="file_err_copy">复制文件添加附件时出错</string>
<string name="file_dir_dialog_ok">使用此目录</string>
<string name="file_dir_dialog_default">重设为默认值</string>

@ -5,8 +5,6 @@
<!-- ******************* DO NOT MODIFY MANUALLY ******************* -->
<!-- ************************************************************** -->
<resources>
<string name="actfm_picture_camera">拍下照片</string>
<string name="actfm_picture_gallery">從圖庫選擇</string>
<string name="actfm_picture_clear">清除圖片</string>
<string name="TVA_add_comment">添加評論</string>
<string name="backup_BPr_header">備份</string>
@ -202,8 +200,6 @@
<string name="file_browser_title">選擇一個文件</string>
<string name="dir_browser_title">選擇一個目錄</string>
<string name="file_browser_err_permissions">權限出錯請確保您沒有阻止Tasks訪問SD 卡。</string>
<string name="file_add_picture">附上一幅圖片</string>
<string name="file_add_sdcard">附上一份來自您 SD 卡的文件</string>
<string name="file_err_copy">複製文件添加附件時出錯</string>
<string name="file_dir_dialog_ok">使用此目錄</string>
<string name="file_dir_dialog_default">重設為默認值</string>

@ -3,12 +3,6 @@
<!-- ================================================== general terms == -->
<!-- slide 29a: menu item to take a picture -->
<string name="actfm_picture_camera">Take a Picture</string>
<!-- slide 29b: menu item to select from gallery -->
<string name="actfm_picture_gallery">Pick from Gallery</string>
<!-- menu item to clear picture selection -->
<string name="actfm_picture_clear">Clear Picture</string>

@ -13,8 +13,6 @@
<string name="file_browser_title">Choose a file</string>
<string name="dir_browser_title">Choose a directory</string>
<string name="file_browser_err_permissions">Permissions error! Please make sure you have not blocked Tasks from accessing the SD card.</string>
<string name="file_add_picture">Attach a picture</string>
<string name="file_add_sdcard">Attach a file from your SD card</string>
<string name="file_err_copy">Error copying file for attachment</string>
<string name="file_dir_dialog_ok">Use this directory</string>

@ -129,6 +129,9 @@
<string name="vibration_count">Number of vibrations</string>
<string name="vibration_duration">Length of each vibration (milliseconds)</string>
<string name="vibration_pause">Pause between vibrations (milliseconds)</string>
<string name="take_a_picture">Take a picture</string>
<string name="pick_from_gallery">Pick from gallery</string>
<string name="pick_from_storage">Pick from storage</string>
<string-array name="sync_SPr_interval_entries">
<!-- sync_SPr_interval_entries: Synchronization Intervals -->

Loading…
Cancel
Save