</receiver>
<service android:name=".services.observer.FileObserverService"/>
+ <activity
+ android:name=".ui.activity.CopyToClipboardActivity"
+ android:label="@string/copy_link"
+ android:icon="@drawable/copy_link"/>
+
<activity
- android:name=".ui.activity.CopyToClipboardActivity"
- android:label="@string/copy_link"
- android:icon="@drawable/copy_link" />
+ android:name=".ui.activity.MoveActivity"
+ android:label="@string/app_name"/>
</application>
<owncloud.version>1.5.1-SNAPSHOT</owncloud.version>
<java-version>1.6</java-version>
<!-- Given by maven-android-sdk-deployer -->
- <google.android-version>4.4.2_r2</google.android-version>
+ <google.android-version>4.4.2_r3</google.android-version>
<!-- Usually the latest Android API -->
<google.android-api>19</google.android-api>
<actionbarsherlock-version>4.2.0</actionbarsherlock-version>
</scm>
<dependencies>
-
+ <!-- Dirty trick, but it works. TouchImageView library is not available as Maven project. -->
+ <dependency>
+ <groupId>touch-image-view.jar</groupId>
+ <artifactId>touch-image-view.jar</artifactId>
+ <version>1.0</version>
+ <scope>system</scope>
+ <systemPath>${basedir}/libs/touch-image-view.jar</systemPath>
+ </dependency>
+
+ <!-- This causes a (version?) conflict during packaging since sherlockactionbar also includes compatibility-v4 -->
+ <!--<dependency>
+ <groupId>android.support</groupId>
+ <artifactId>compatibility-v4</artifactId>
+ <version>19.1.0</version>
+ </dependency>-->
+ <!-- Instead we need to include the exact same version -->
+ <dependency>
+ <groupId>android-support-v4.jar</groupId>
+ <artifactId>android-support-v4.jar</artifactId>
+ <version>1.0</version>
+ <scope>system</scope>
+ <systemPath>${basedir}/third_party/android-support-library/android-support-v4.jar</systemPath>
+ </dependency>
+
<dependency>
<groupId>android</groupId>
<artifactId>android</artifactId>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/background_color"
+ android:orientation="vertical" >
+
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:layout_height="0dip"
+ android:layout_weight="1"
+ android:id="@+id/fragment_container" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:orientation="horizontal" >
+
+ <Button
+ android:id="@+id/move_files_btn_cancel"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="@string/common_cancel" />
+
+ <Button
+ android:id="@+id/move_files_btn_choose"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:text="@string/move_choose_button_text" />
+
+ </LinearLayout>
+
+ </LinearLayout>
\ No newline at end of file
<item android:id="@+id/action_cancel_download" android:title="@string/common_cancel_download" android:icon="@android:drawable/ic_menu_close_clear_cancel" android:orderInCategory="1" />
<item android:id="@+id/action_cancel_upload" android:title="@string/common_cancel_upload" android:icon="@android:drawable/ic_menu_close_clear_cancel" android:orderInCategory="1" />
<item android:id="@+id/action_rename_file" android:title="@string/common_rename" android:icon="@android:drawable/ic_menu_edit" android:orderInCategory="1" />
+ <item android:id="@+id/action_move" android:title="@string/actionbar_move" android:icon="@android:drawable/ic_menu_set_as" android:orderInCategory="1" />
<item android:id="@+id/action_remove_file" android:title="@string/common_remove" android:icon="@android:drawable/ic_menu_delete" android:orderInCategory="1" />
<item android:id="@+id/action_send_file" android:title="@string/actionbar_send_file" android:icon="@android:drawable/ic_menu_set_as" android:orderInCategory="1" />
<item android:id="@+id/action_see_details" android:title="@string/actionbar_see_details" android:icon="@android:drawable/ic_menu_info_details" android:orderInCategory="1" />
-
+
</menu>
<string name="common_ok">OK</string>
<string name="common_cancel">Kanseleer</string>
<string name="empty"></string>
+ <string name="move_choose_button_text">Kies</string>
</resources>
<string name="error__upload__local_file_not_copied">%1$s تعذر نسخه %2$s للمجلد المحلي</string>
<string name="share_link_no_support_share_api">عذراً, المشاركة غير متاحة في الخادم الخاص بك. الرجاء الإتصال
بالمسؤول.</string>
- <string name="share_link_file_no_exist">لم يتمكن من مشاركة الملف او المجلد. يرجى التاكد من وجوده </string>
<string name="share_link_file_error">حدث خطأ ما أثناء محاولة مشاركة هذا الملف أو المجلد</string>
- <string name="unshare_link_file_no_exist">غير قادر على إلغاء مشاركة هذا الملف أو المجلد.لا وجود له</string>
<string name="unshare_link_file_error">حدث خطأ ما أثناء محاولة إلغاء مشاركة هذا الملف أو المجلد</string>
<string name="activity_chooser_send_file_title">أرسل</string>
<string name="copy_link">نسخ الرابط</string>
<string name="network_host_not_available">تعذر إكمال العملية، الخادم غير متوفر</string>
<string name="empty"></string>
<string name="prefs_category_accounts">حسابات</string>
+ <string name="saml_authentication_wrong_pass">كلمة مرور خاطئة</string>
+ <string name="move_choose_button_text">اختيار</string>
</resources>
<string name="actionbar_see_details">Detallar</string>
<string name="actionbar_send_file">Göndər</string>
<string name="prefs_category_general">Ümumi</string>
- <string name="prefs_category_more">Yenə</string>
+ <string name="prefs_category_more">Daha da</string>
<string name="prefs_accounts">Hesablar</string>
<string name="prefs_manage_accounts">İstifadəçilərin idarəedilməsi</string>
<string name="prefs_pincode">Proqram təminatının PİN-i</string>
<string name="auth_host_url">Server ünvanı https://…</string>
<string name="auth_username">İstifadəçi adı</string>
<string name="auth_password">Şifrə</string>
+ <string name="auth_register">Yeni edək %1$s?</string>
<string name="sync_string_files">Fayllar</string>
<string name="setup_btn_connect">Qoşul</string>
<string name="uploader_btn_upload_text">Serverə yüklə</string>
+ <string name="uploader_top_message">Yüklənmə qovluöunu seçin:</string>
+ <string name="uploader_wrn_no_account_title">Hesab tapılmadı</string>
+ <string name="uploader_wrn_no_account_text">Sizin alətinizda %1$s hesabi tapılmadı. Xahiş olunur öncə hesabi quraşdırasınız.</string>
+ <string name="uploader_wrn_no_account_setup_btn_text">Qurulum</string>
+ <string name="uploader_wrn_no_account_quit_btn_text">Çıx</string>
+ <string name="uploader_wrn_no_content_title">Yükləmək üçün kontent yoxdur</string>
+ <string name="uploader_wrn_no_content_text">Heç bir kontent gəlmədi. Yukləmək üçün heçnə yoxdur.</string>
+ <string name="uploader_error_forbidden_content">%1$s yayımlanmış kontent üçün yetkili deyil</string>
+ <string name="uploader_info_uploading">Yüklənmə gedir</string>
+ <string name="file_list_empty">Burda heçnə yoxdur. Nese yükləyin!</string>
+ <string name="file_list_loading">Yüklənir...</string>
+ <string name="local_file_list_empty">Bu qovluqda heç bir fayl movcud deyil.</string>
+ <string name="filedetails_select_file">Faylın üstünə sıxın ki, əlavə məlumat ekrana çıxsın.</string>
+ <string name="filedetails_size">Həcm:</string>
+ <string name="filedetails_type">Tip:</string>
+ <string name="filedetails_created">Yaradıldı:</string>
+ <string name="filedetails_modified">Dəyişdirildi:</string>
<string name="filedetails_download">Yüklə</string>
+ <string name="filedetails_sync_file">Faylı yenilə</string>
+ <string name="filedetails_renamed_in_upload_msg">Yüklənmə müddətində fayl buna %1$s yeniləndi</string>
+ <string name="action_share_file">Linki yayımla</string>
+ <string name="action_unshare_file">Link yayımlanmasını dayandır</string>
+ <string name="common_yes">Bəli</string>
+ <string name="common_no">Xeyir</string>
+ <string name="common_ok">Oldu</string>
+ <string name="common_cancel_download">Endirimi dayandır</string>
+ <string name="common_cancel_upload">Yüklənməni dayandır</string>
<string name="common_cancel">Dayandır</string>
+ <string name="common_save_exit">Saxla & Çıx</string>
<string name="common_error">Səhv</string>
+ <string name="common_loading">Yüklənir...</string>
<string name="common_error_unknown">Bəlli olmayan səhv baş verdi</string>
+ <string name="about_title">Haqqında</string>
+ <string name="change_password">Şifrəni dəyiş</string>
+ <string name="delete_account">Hesabı sil</string>
+ <string name="create_account">Hesab yarat</string>
+ <string name="upload_chooser_title">Burdan yüklə ...</string>
<string name="uploader_info_dirname">Qovluq adı</string>
+ <string name="uploader_upload_in_progress_ticker">Yüklənmə gedir ...</string>
+ <string name="uploader_upload_in_progress_content">%1$d%% Yüklənmə gedir %2$s</string>
+ <string name="uploader_upload_succeeded_ticker">Uğurla yükləndi</string>
+ <string name="uploader_upload_succeeded_content_single">%1$s uğurla yüklənmişdir</string>
+ <string name="uploader_upload_failed_ticker">Yüklənmədə səhv baş verdi</string>
+ <string name="uploader_upload_failed_content_single">%1$s yüklənməsi bitə bilməz</string>
+ <string name="uploader_upload_failed_credentials_error">Yüklənmədə səhv baş verdi, siz yenidən daxil olmalısınız</string>
+ <string name="downloader_download_in_progress_ticker">Endirilir ...</string>
+ <string name="downloader_download_in_progress_content">%1$d%% Endirilir %2$s</string>
+ <string name="downloader_download_succeeded_ticker">Endirim uğurla bitdi</string>
+ <string name="downloader_download_succeeded_content">%1$s uğurla endirildi</string>
+ <string name="downloader_download_failed_ticker">Endirim olmadı</string>
+ <string name="downloader_download_failed_content">%1$s endirimi bitə bilməz</string>
+ <string name="downloader_not_downloaded_yet">Hələ endirilməyib</string>
+ <string name="downloader_download_failed_credentials_error">Endirmədə səhv, siz yenidən daxil olmalısınız</string>
+ <string name="common_choose_account">Hesabı seç</string>
+ <string name="sync_fail_ticker">Sinxronizasiyada səhv oldu</string>
+ <string name="sync_fail_ticker_unauthorized">Sinxronizasiyada səhv oldu, siz yenidən daxil olmalısınız</string>
+ <string name="sync_fail_content">%1$s sinxronizasiyası bitə bilməyəcək</string>
+ <string name="sync_fail_content_unauthorized">%1$s üçün yalnış şifrə</string>
+ <string name="sync_conflicts_in_favourites_ticker">Konflikt tapıldı</string>
+ <string name="sync_conflicts_in_favourites_content">%1$d sinxronizasiyada olan fayllar sinxronizasiya edilə bilməz</string>
+ <string name="sync_fail_in_favourites_ticker">Sinxronizasiyada saxlanılan fayllarda səhv baş verdi</string>
+ <string name="sync_fail_in_favourites_content">%1$d fayllarin kontentləri sinxronizasiya edilə bilməz (%2$d konfliktdədir)</string>
+ <string name="sync_foreign_files_forgotten_ticker">Bəzi lokal fayllar unudulmuşdur</string>
+ <string name="sync_foreign_files_forgotten_content">%1$d faylları %2$s qovluğundan kənardadır və qovluğun daxilinə nüsxələnə bilməz </string>
+ <string name="sync_foreign_files_forgotten_explanation">1.3.16 versiyasından başlayaraq, bu alətdən nüsxələnən fayllar daxili %1$s qovluğuna nüsxələnmişdir ki, bir fayl bir neçə hesabla sinxronizasiya edildikdə, data itkisinin qarşısı alınsın.
+
+Bu dəyişikliklə bağlı, bu proqramın öncəki versiyasında yüklənmiş olan fayllar %2$s qovluğuna nüsxələnmişdir. Ancaq bu hesabın sinxronizasiyası zamanı səhv baş vermişdir.\n\nSiz ya fayl(ları) saxlaya və %3$s üçün linki silə bilər, yada fayl(ları) %1$s qovluğuna köçürə və linki %4$s -ə saxlaya bilərsiniz.
+
+Aşağıda göstərilən %5$s-də olan daxili və xarici fayl(lar) link edilmişdir.</string>
+ <string name="sync_current_folder_was_removed">%1$s qovluğu heç bir yerdə mövcud deyil</string>
+ <string name="foreign_files_move">Hamısını köçür</string>
+ <string name="foreign_files_success">Bütün fayllar köçürüldü</string>
+ <string name="foreign_files_fail">Bəzi fayllar köçürülə bilməz</string>
+ <string name="foreign_files_local_text">Daxili: %1$s</string>
+ <string name="foreign_files_remote_text">Uzaq: %1$s</string>
+ <string name="upload_query_move_foreign_files">Seçdiyiniz faylların %1$s qovluğuna köçüçrülməsi üçün kifayət qədər yer yoxdur. Əvəzinə onları köçürmək istəyirsinizmi?</string>
+ <string name="pincode_enter_pin_code">Xahiş olunur öz proqramınızın PİN-ni daxil edəsiniz</string>
+ <string name="pincode_configure_your_pin">Proqramınızın PİN-ni daxil edin</string>
+ <string name="pincode_configure_your_pin_explanation">Proqram hər dəfə işə düşdükdə PİN yenidən istəniləcək</string>
+ <string name="pincode_reenter_your_pincode">Öz proqramınızn PİN-ni yenidən daxil etməyi xahiş edirik</string>
+ <string name="pincode_remove_your_pincode">Öz proqramınızın PİN-ni silin</string>
+ <string name="pincode_mismatch">Proqram PİN-ləri eyni deyil</string>
+ <string name="pincode_wrong">Yalnış proqram PİN-i</string>
+ <string name="pincode_removed">Proqram PİN-i silindi</string>
+ <string name="pincode_stored">Proqram PİN-i saxlanıldı </string>
+ <string name="media_notif_ticker">%1$s musiqi oxuducusu</string>
+ <string name="media_state_playing">%1$s (oxuyur)</string>
+ <string name="media_state_loading">%1$s (yüklənir)</string>
+ <string name="media_event_done">%1$s geriyə oxunuş bitib</string>
<string name="common_remove">Sil</string>
<string name="ssl_validator_btn_details_see">Detallar</string>
- <string name="unshare_link_file_no_exist">Fayl və ya qovluğun yayımlanmasını dayandırmaq olmur. Bu mövcud deyil.</string>
<string name="unshare_link_file_error">Bu fayl və ya qovluğun yayımlanmasının dayandırılmasında səhv baş verdi</string>
<string name="activity_chooser_send_file_title">Göndər</string>
<string name="copy_link">linki nüsxələ</string>
<string name="uploader_upload_forbidden_permissions">bu qovluğa yükləmək üçün</string>
<string name="prefs_category_accounts">Hesablar</string>
<string name="prefs_add_account">Hesab əlavə et</string>
+ <string name="saml_authentication_wrong_pass">Yalnış şifrə</string>
</resources>
<string name="common_ok">Добра</string>
<string name="common_error">Памылка</string>
<string name="empty"></string>
+ <string name="move_choose_button_text">Выбар</string>
</resources>
<string name="prefs_feedback">Обратна Връзка</string>
<string name="prefs_imprint">Imprint</string>
<string name="recommend_subject">Опитай %1$s на смартфона си!</string>
- <string name="recommend_text">\"Искам да те поканя да опиташ %1$s на своя смартфон!\nИзтегли от %2$s\"</string>
+ <string name="recommend_text">Бих желал да те поканя да ползваш %1$s на своя смартфон!\nИзтеглия я от тук:%2$s</string>
<string name="auth_check_server">Проверка на сървъра</string>
<string name="auth_host_url">Адрес на сървъра https://…</string>
<string name="auth_username">Потребител</string>
<string name="error__upload__local_file_not_copied">%1$s не може да бъде копиран в локалната папка %2$s</string>
<string name="share_link_no_support_share_api">За съжаление споделянето не е включено на сървъра ви.
Моля, свържете се с администратора.</string>
- <string name="share_link_file_no_exist">Неуспешен опит за споделяне на този файл или папка. Моля, проверете дали съществува.</string>
+ <string name="share_link_file_no_exist">Неуспешен опит за споделяне. Моля, провери дали файла съществува.</string>
<string name="share_link_file_error">Настъпи грешка при опита за споделяне на този файл или папка.</string>
- <string name="unshare_link_file_no_exist">Ð\9dеÑ\83Ñ\81пеÑ\88ен опиÑ\82 за пÑ\80емаÑ\85ване на Ñ\81поделÑ\8fнеÑ\82о на Ñ\82ози Ñ\84айл или папка. Той не съществува.</string>
+ <string name="unshare_link_file_no_exist">Ð\9dеÑ\83Ñ\81пеÑ\88ен опиÑ\82 за пÑ\80екÑ\80аÑ\82Ñ\8fване на Ñ\81поделÑ\8fнеÑ\82о. Ð\9cолÑ\8f, пÑ\80овеÑ\80и дали Ñ\84айла съществува.</string>
<string name="unshare_link_file_error">Настъпи грешка при опита за премахване на споделянето на този файл или папка.</string>
<string name="activity_chooser_send_file_title">Изпращане</string>
<string name="copy_link">Копиране на връзката</string>
<string name="prefs_category_accounts">Профили</string>
<string name="prefs_add_account">Добавяне на профил</string>
<string name="auth_redirect_non_secure_connection_title">Сигурна връзка е пренасочена по несигурен път.</string>
+ <string name="saml_authentication_required_text">Нужна е идентификация</string>
+ <string name="saml_authentication_wrong_pass">Грешна парола</string>
+ <string name="actionbar_move">Премести</string>
+ <string name="file_list_empty_moving">Тук няма нищо. Можеш да добавиш папка!</string>
+ <string name="move_choose_button_text">Избери</string>
+ <string name="move_file_not_found">Неуспешно преместване. Моля, провери дали файла съществува.</string>
+ <string name="move_file_invalid_into_descendent">Не е възможно да преместиш папка в нейна под папка.</string>
+ <string name="move_file_invalid_overwrite">Файлът вече съществува в отдалечената папка.</string>
+ <string name="move_file_error">Настъпи грешка при опита за преместване на този файл или папка.</string>
+ <string name="forbidden_permissions_move">за да преместиш този файл</string>
</resources>
<string name="prefs_log_title">লগিং সক্রিয় কর</string>
<string name="prefs_log_summary">সমস্যা তালিকাভুক্ত করার জায়গা</string>
<string name="prefs_log_title_history">লগিং ইতিহাস </string>
- <string name="prefs_log_summary_history">রেকরডেড লগ এখানে দেখেন</string>
+ <string name="prefs_log_summary_history">রà§\87à¦\95রà§\8dডà§\87ড লà¦\97 à¦\8fà¦\96ানà§\87 দà§\87à¦\96à§\87ন</string>
<string name="prefs_log_delete_history_button">ইতিহাস ডিলিট করেন</string>
<string name="prefs_help">সহায়িকা</string>
<string name="prefs_recommend">বন্ধুর কাছে সুপারিশ করুন</string>
<string name="error__upload__local_file_not_copied">%1$s কে %2$s স্থানীয় ফোল্ডারে কপি করা গেলনা </string>
<string name="share_link_no_support_share_api">দুঃখিত, আপনার সার্ভার ভাগাভাগি উপযোগী নয়। দয়া করে আপনার
⇥⇥প্রশাসকের সঙ্গে যোগাযোগ করুন।</string>
- <string name="share_link_file_no_exist">এই ফাইল বা ফোল্ডার ভাগাভাগি করা সম্ভব নয়। এর অস্তিত্ব নিশ্চিত করুন</string>
<string name="share_link_file_error">এই ফাইল অথবা ফোল্ডার ভাগাভাগির চেষ্টা করতে যেয়ে একটি জটিলতা হয়েছে</string>
- <string name="unshare_link_file_no_exist">এই ফাইল বা ফোল্ডার এর ভাগাভাগি রদ করা সম্ভব নয়। এর অস্তিত্ব নেই।</string>
<string name="unshare_link_file_error">এই ফাইল অথবা ফোল্ডার ভাগাভাগি রদ করার চেষ্টা করতে যেয়ে একটি জটিলতা হয়েছে</string>
<string name="activity_chooser_send_file_title">পাঠাও</string>
<string name="copy_link">লিঙ্ক কপি করো</string>
<string name="prefs_category_accounts">একাউন্ট</string>
<string name="prefs_add_account">একাউন্ট যোগ কর</string>
<string name="auth_redirect_non_secure_connection_title">নিরাপদ সংযোগকে একটি অনিরাপদ পথে দিকবদল করা হয়েছে</string>
+ <string name="move_choose_button_text">বেছে নিন</string>
</resources>
<string name="prefs_feedback">Comentaris</string>
<string name="prefs_imprint">Imprint</string>
<string name="recommend_subject">Proveu %1$s a un telèfon avançat!</string>
- <string name="recommend_text">\"Vull convidar-te a utilitzar l\'aplicació %1$s al teu smartphone! Baixa\'l aquí: %2$s\"</string>
<string name="auth_check_server">Comprova el servidor</string>
<string name="auth_host_url">Adreça del servidor https://…</string>
<string name="auth_username">Nom d\'usuari</string>
<string name="preview_image_error_unknown_format">Aquesta imatge no es pot mostrar</string>
<string name="error__upload__local_file_not_copied">%1$s no s\'ha pogut copiar a la carpeta local %2$s</string>
<string name="share_link_no_support_share_api">La compartició no es troba disponible al vostre servidor. Contacteu amb l\'administrador.</string>
- <string name="share_link_file_no_exist">No es pot compartir aquest fitxer o carpeta. Assegureu-vos que existeix</string>
<string name="share_link_file_error">S\'ha produït un error en intentar compartir aquest fitxer o carpeta</string>
- <string name="unshare_link_file_no_exist">No es pot deixar de compartir aquest fitxer o carpeta. No existeix.</string>
<string name="unshare_link_file_error">S\'ha produït un error en intentar deixar de compartir aquest fitxer o carpeta</string>
<string name="activity_chooser_send_file_title">Envia</string>
<string name="copy_link">Copia l\'enllaç</string>
<string name="prefs_category_accounts">Comptes</string>
<string name="prefs_add_account">Afegeix compte</string>
<string name="auth_redirect_non_secure_connection_title">La connexió segura està essent redirigida a través d\'una ruta insegura</string>
+ <string name="saml_authentication_required_text">Es requereix autenticació</string>
+ <string name="saml_authentication_wrong_pass">Contrasenya incorrecta</string>
+ <string name="move_choose_button_text">Escull</string>
</resources>
<string name="prefs_feedback">Odezva</string>
<string name="prefs_imprint">Imprint</string>
<string name="recommend_subject">Zkuste %1$s na vašem smartphonu!</string>
- <string name="recommend_text">\"Chtěl bych vás pozvat k používání %1$s na vašem smartphonu!\nKe stažení zde: %2$s\"</string>
+ <string name="recommend_text">Chtěl bych vás pozvat k používání %1$s na vašem chytrém telefonu!\nKe stažení zde: %2$s</string>
<string name="auth_check_server">Zkontrolovat server</string>
<string name="auth_host_url">Adresa serveru https://...</string>
<string name="auth_username">Uživatelské jméno</string>
<string name="error__upload__local_file_not_copied">%1$s nelze zkopírovat do místního adresáře %2$s</string>
<string name="share_link_no_support_share_api">Je nám líto, ale sdílení není na vašem serveru povoleno. Kontaktujte svého
administrátora.</string>
- <string name="share_link_file_no_exist">Nepodařilo se sdílet tento soubor či složku. Ujistěte se, že existuje.</string>
+ <string name="share_link_file_no_exist">Nelze sdílet. Zkontrolujte prosím že soubor existuje</string>
<string name="share_link_file_error">Při pokusu o sdílení tohoto souboru či složky nastala chyba</string>
- <string name="unshare_link_file_no_exist">Nepodařilo se zrušit sdílení tohoto souboru nebo složky, protože neexistuje.</string>
+ <string name="unshare_link_file_no_exist">Nelze ukončit sdílení. Zkontrolujte prosím že soubor existuje</string>
<string name="unshare_link_file_error">Při pokusu o zrušení sdílení tohoto souboru či složky nastala chyba</string>
<string name="activity_chooser_send_file_title">Odeslat</string>
<string name="copy_link">Zkopírovat odkaz</string>
<string name="prefs_category_accounts">Účty</string>
<string name="prefs_add_account">Přidat účet</string>
<string name="auth_redirect_non_secure_connection_title">Zabezpečené spojení je přesměrováváno nezabezpečenou trasou.</string>
+ <string name="saml_authentication_required_text">Vyžadováno přihlášení</string>
+ <string name="saml_authentication_wrong_pass">Nesprávné heslo</string>
+ <string name="actionbar_move">Přesunout</string>
+ <string name="file_list_empty_moving">Zde nic není. Můžete přidat adresář!</string>
+ <string name="move_choose_button_text">Vybrat</string>
+ <string name="move_file_not_found">Nelze přesunout. Zkontrolujte prosím že soubor existuje</string>
+ <string name="move_file_invalid_into_descendent">Není možné adresář přesunout do vlastního podadresáře</string>
+ <string name="move_file_invalid_overwrite">Soubor již v cílovém adresáři existuje</string>
+ <string name="move_file_error">Při pokusu o přesun tohoto souboru či složky nastala chyba</string>
+ <string name="forbidden_permissions_move">pro přesun tohoto souboru</string>
</resources>
<string name="activity_chooser_send_file_title">Anfon</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Cyfrifon</string>
+ <string name="move_choose_button_text">Dewisiwch</string>
</resources>
<string name="actionbar_upload_from_apps">Indhold fra andre apps</string>
<string name="actionbar_upload_files">Filer</string>
<string name="actionbar_open_with">Åben med</string>
- <string name="actionbar_mkdir">Ny Mappe</string>
+ <string name="actionbar_mkdir">Ny mappe</string>
<string name="actionbar_settings">Indstillinger</string>
<string name="actionbar_see_details">Detaljer</string>
<string name="actionbar_send_file">Send</string>
<string name="prefs_category_general">Generel</string>
<string name="prefs_category_more">Mere</string>
<string name="prefs_accounts">Konti</string>
- <string name="prefs_manage_accounts">Administrer konti</string>
+ <string name="prefs_manage_accounts">Administrér konti</string>
<string name="prefs_pincode">App PIN</string>
<string name="prefs_pincode_summary">Beskyt din klient</string>
<string name="prefs_instant_upload">Upload billeder straks</string>
<string name="prefs_instant_upload_summary">Upload straks billeder taget med kameraet</string>
<string name="prefs_instant_video_upload">Upload videoer straks</string>
<string name="prefs_instant_video_upload_summary">Upload straks videor optaget med kameraet</string>
- <string name="prefs_log_title">Aktiver Logning</string>
- <string name="prefs_log_summary">Dette bruges til at logge problemer</string>
+ <string name="prefs_log_title">Aktivér logregistrering</string>
+ <string name="prefs_log_summary">Dette bruges til at logregistrere problemer</string>
<string name="prefs_log_title_history">Logger Historik</string>
<string name="prefs_log_summary_history">Dette viser de optagne logger</string>
- <string name="prefs_log_delete_history_button">Slet Historik</string>
+ <string name="prefs_log_delete_history_button">Slet historik</string>
<string name="prefs_help">Hjælp</string>
<string name="prefs_recommend">Anbefal til en ven</string>
<string name="prefs_feedback">Feedback</string>
<string name="prefs_imprint">Imprint</string>
<string name="recommend_subject">Prøv %1$s på din smartphone!</string>
- <string name="recommend_text">\"Jeg ønsker at invitere dig til at bruge %1$s på din smartphone!\nHent den her: %2$s\"
- </string>
- <string name="auth_check_server">Check Server</string>
- <string name="auth_host_url">Server addresse https://…</string>
+ <string name="recommend_text">Jeg ønsker at invitere dig til at bruge %1$s på din smartphone!\nHent den her: %2$s</string>
+ <string name="auth_check_server">Tjek server</string>
+ <string name="auth_host_url">Serveradresse https://…</string>
<string name="auth_username">Brugernavn</string>
<string name="auth_password">Kodeord</string>
<string name="auth_register">Uvant med %1$s</string>
<string name="sync_string_files">Filer</string>
<string name="setup_btn_connect">Tilslut</string>
<string name="uploader_btn_upload_text">Upload</string>
- <string name="uploader_top_message">Vælg upload mappe:</string>
+ <string name="uploader_top_message">Vælg upload-mappe:</string>
<string name="uploader_wrn_no_account_title">Ingen konto fundet</string>
<string name="uploader_wrn_no_account_text">Der er ingen %1$s brugere på din enhed. Sæt venligst en bruger op først.</string>
<string name="uploader_wrn_no_account_setup_btn_text">Opsætning</string>
<string name="filedetails_created">Oprettet:</string>
<string name="filedetails_modified">Ændret:</string>
<string name="filedetails_download">Hent</string>
- <string name="filedetails_sync_file">Opdater fil</string>
+ <string name="filedetails_sync_file">Genopfrisk fil</string>
<string name="filedetails_renamed_in_upload_msg">Filen blev omdøbt til %1$s under upload</string>
<string name="action_share_file">Del link</string>
<string name="action_unshare_file">Ophæv deling</string>
<string name="media_err_security_ex">Sikkerhedsfejl ved forsøg på afspilning af </string>
<string name="media_err_io_ex">Inputfejl ved forsøg på afspilning af %1$s</string>
<string name="media_err_unexpected">Uventet fejl ved forsøg på afspilning af %1$s</string>
- <string name="media_rewind_description">Tilbagespolings knap</string>
+ <string name="media_rewind_description">Tilbagespolingsknap</string>
<string name="media_play_pause_description">Afspil eller pause knap</string>
- <string name="media_forward_description">Hurtigt fremad kanp</string>
+ <string name="media_forward_description">Hurtigt fremad-knap</string>
<string name="auth_getting_authorization">Forsøger godkendelse...</string>
<string name="auth_trying_to_login">Forsøger at logge ind...</string>
<string name="auth_no_net_conn_title">Ingen netværksforbindelse</string>
<string name="auth_account_not_new">En konto for den samme bruger og server eksisterer allerede på enheden</string>
<string name="auth_account_not_the_same">Den indtastede bruger passer ikke til brugeren for denne konto</string>
<string name="auth_unknown_error_title">Ukendt fejl opstod!</string>
- <string name="auth_unknown_host_title">Kunne ikke finde host</string>
+ <string name="auth_unknown_host_title">Kunne ikke finde værten</string>
<string name="auth_incorrect_path_title">Server instans blev ikke fundet</string>
<string name="auth_timeout_title">Serveren var for længe om at svare</string>
<string name="auth_incorrect_address_title">Deform URL</string>
- <string name="auth_ssl_general_error_title">SSL initialisering fejlede</string>
+ <string name="auth_ssl_general_error_title">SSL-initialiseringen fejlede</string>
<string name="auth_ssl_unverified_server_title">Kunne ikke bekræfte SSl-serverens identitet</string>
- <string name="auth_bad_oc_version_title">Ikke genkendt server version</string>
+ <string name="auth_bad_oc_version_title">Ikke genkendt serverversion</string>
<string name="auth_wrong_connection_title">Ikke ikke oprette forbindelse</string>
<string name="auth_secure_connection">Sikker forbindelse oprettet</string>
<string name="auth_unauthorized">Forkert brugernavn eller kodeord</string>
<string name="auth_unsupported_multiaccount">%1$s understøtter ikke multiple konti</string>
<string name="auth_fail_get_user_name">Din server retunere ikke et korrekt bruger-id. Kontakt venligst din administrator</string>
<string name="auth_can_not_auth_against_server">Kan ikke autentificere mod denne server</string>
- <string name="fd_keep_in_sync">Hold fil opdateret</string>
+ <string name="fd_keep_in_sync">Hold filen opdateret</string>
<string name="common_rename">Omdøb</string>
<string name="common_remove">Fjern</string>
<string name="confirmation_remove_alert">Er du sikker på at du vil fjerne %1$s ?</string>
<string name="filedisplay_no_file_selected">Ingen fil blev valgt</string>
<string name="activity_chooser_title">Send link til ...</string>
<string name="oauth_check_onoff">Log på med oAuth2</string>
- <string name="oauth_login_connection">Forbinder til oAuth2 server...</string>
+ <string name="oauth_login_connection">Forbinder til oAuth2-server...</string>
<string name="ssl_validator_header">Sidens identitet kunne ikke verificeres</string>
<string name="ssl_validator_reason_cert_not_trusted">- Serverens certifikat er ikke troværdigt</string>
<string name="ssl_validator_reason_cert_expired">- Serverens certifikat er udløbet</string>
<string name="ssl_validator_null_cert">Certifikatet kunne ikke vises.</string>
<string name="ssl_validator_no_info_about_error">- Ingen information om fejlen</string>
<string name="placeholder_sentence">Dette er en pladsholder</string>
- <string name="placeholder_filename">stedfortræder.txt</string>
+ <string name="placeholder_filename">pladsholder.txt</string>
<string name="placeholder_filetype">PNG Billede</string>
<string name="placeholder_filesize">389 KB</string>
<string name="placeholder_timestamp">2012/05/18 12:23 PM</string>
<string name="placeholder_media_time">12:23:45</string>
- <string name="instant_upload_on_wifi">Upload billeder kun via WiFi </string>
+ <string name="instant_upload_on_wifi">Upload kun billeder via WiFi </string>
<string name="instant_video_upload_on_wifi">Upload kun videoer via WiFi</string>
<string name="instant_upload_path">/Øjeblikkelig upload</string>
<string name="conflict_title">Opdaterings konflikt</string>
<string name="conflict_keep_both">Behold begge</string>
<string name="conflict_overwrite">Overskriv</string>
<string name="conflict_dont_upload">Upload ikke</string>
- <string name="preview_image_description">Billede preview</string>
+ <string name="preview_image_description">Forhåndsvisning af billede</string>
<string name="preview_image_error_unknown_format">Dette billede kan ikke vises</string>
<string name="error__upload__local_file_not_copied">%1$s kunne ikke kopieres til %2$s lokale mappe</string>
<string name="share_link_no_support_share_api">Beklager, deling er ikke slået til på din server. Kontakt venligst din administrator.</string>
- <string name="share_link_file_no_exist">Kan ikke dele denne fil eller mappe. Find venligst ud af om den eksisterer</string>
+ <string name="share_link_file_no_exist">Kan ikke dele. Tjek venligst om filen findes.</string>
<string name="share_link_file_error">Der opstod en fejl ved deling af denne fil eller mappe</string>
- <string name="unshare_link_file_no_exist">Kan ikke fjerne delingen af denne fil eller mappe. Den findes ikke.</string>
+ <string name="unshare_link_file_no_exist">Kan ikke fjerne deling. Tjek venligst om filen findes.</string>
<string name="unshare_link_file_error">Der opstod en fejl ved stopning af deling af denne mappe.</string>
<string name="activity_chooser_send_file_title">Send</string>
- <string name="copy_link">Kopier link</string>
+ <string name="copy_link">Kopiér link</string>
<string name="clipboard_text_copied">Kopieret til udklipsholder</string>
<string name="error_cant_bind_to_operations_service">Kritisk fejl: kan ikke udføre handlingerne</string>
<string name="network_error_socket_exception">Der opstod en fejl under tilslutningen til serveren.</string>
<string name="prefs_category_accounts">Konti</string>
<string name="prefs_add_account">Tilføj konto</string>
<string name="auth_redirect_non_secure_connection_title">Sikker forbindelse videredirigeres gennem en usikker rute.</string>
+ <string name="saml_authentication_required_text">Godkendelse påkrævet</string>
+ <string name="saml_authentication_wrong_pass">Forkert kodeord</string>
+ <string name="actionbar_move">Flyt</string>
+ <string name="file_list_empty_moving">Der er intet her. Du kan tilføje en mappe!</string>
+ <string name="move_choose_button_text">Vælg</string>
+ <string name="move_file_not_found">Kan ikke flytte. Tjek venligst om filen findes</string>
+ <string name="move_file_invalid_into_descendent">Det er ikke muligt at flytte en mappe til en undermappe</string>
+ <string name="move_file_invalid_overwrite">Filen findes allerede i destinationsmappen</string>
+ <string name="move_file_error">Der opstod en fejl under forsøg på at flytte denne mappe eller fil</string>
+ <string name="forbidden_permissions_move">til at flytte denne fil</string>
</resources>
<string name="clipboard_text_copied">In die Zwischenablage kopiert</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Konten</string>
+ <string name="move_choose_button_text">Auswählen</string>
</resources>
<string name="actionbar_upload_from_apps">Inhalt von anderen Apps</string>
<string name="actionbar_upload_files">Dateien</string>
<string name="actionbar_open_with">Öffnen mit</string>
- <string name="actionbar_mkdir">Neues Ordner</string>
+ <string name="actionbar_mkdir">Neuer Ordner</string>
<string name="actionbar_settings">Einstellungen</string>
<string name="actionbar_see_details">Details</string>
<string name="actionbar_send_file">Senden</string>
<string name="prefs_manage_accounts">Konten verwalten</string>
<string name="prefs_pincode">App-PIN</string>
<string name="prefs_pincode_summary">Schützen Sie Ihren Client</string>
- <string name="prefs_instant_upload">Sofortiger Bilder-Upload</string>
- <string name="prefs_instant_upload_summary">Lade Fotos von der Kamera sofort hoch</string>
- <string name="prefs_instant_video_upload">Sofortiger Video-Upload</string>
- <string name="prefs_instant_video_upload_summary">Lade Videos von der Kamera sofort hoch</string>
+ <string name="prefs_instant_upload">Sofortiges Bilderhochladen</string>
+ <string name="prefs_instant_upload_summary">Fotos von der Kamera sofort hochladen</string>
+ <string name="prefs_instant_video_upload">Sofortiges Videohochladen</string>
+ <string name="prefs_instant_video_upload_summary">Videos von der Kamera sofort hochladen</string>
<string name="prefs_log_title">Protokollierung aktivieren</string>
- <string name="prefs_log_summary">Dies wird zur Protokollierung von Problemen genutzt</string>
+ <string name="prefs_log_summary">Dieses wird zur Protokollierung von Problemen benutzt</string>
<string name="prefs_log_title_history">Protokollierungsverlauf</string>
- <string name="prefs_log_summary_history">Dies zeigt die gespeicherten Protokollierungen</string>
+ <string name="prefs_log_summary_history">Dieses zeigt die gespeicherten Protokollierungen</string>
<string name="prefs_log_delete_history_button">Verlauf löschen</string>
<string name="prefs_help">Hilfe</string>
- <string name="prefs_recommend">Empfehlen Sie dies einem Freund</string>
+ <string name="prefs_recommend">Dieses einem Freund empfehlen</string>
<string name="prefs_feedback">Rückmeldungen</string>
<string name="prefs_imprint">Impressum</string>
- <string name="recommend_subject">Probieren Sie %1$s auf Ihrem Smartphone!</string>
- <string name="recommend_text">\"Ich möchte Sie zum Benutzen von %1$s auf Ihrem Smartphone einladen!\nLaden Sie es hier herunter: %2$s\"</string>
+ <string name="recommend_subject">%1$s auf Ihrem Smartphone ausprobieren!</string>
+ <string name="recommend_text">Ich möchte Sie zum Benutzen von %1$s auf Ihrem Smartphone einladen!\nHier herunterladen: %2$s</string>
<string name="auth_check_server">Server überprüfen</string>
<string name="auth_host_url">Server-Adresse https://…</string>
<string name="auth_username">Benutzername</string>
<string name="sync_string_files">Dateien</string>
<string name="setup_btn_connect">Verbinden</string>
<string name="uploader_btn_upload_text">Hochladen</string>
- <string name="uploader_top_message">Wähle Zielordner:</string>
+ <string name="uploader_top_message">Zielordner auswählen:</string>
<string name="uploader_wrn_no_account_title">Kein Konto gefunden</string>
<string name="uploader_wrn_no_account_text">Es sind keine %1$s-Konten auf Ihrem Gerät eingerichtet. Bitte richten Sie zuerst ein Konto ein.</string>
<string name="uploader_wrn_no_account_setup_btn_text">Einrichten</string>
<string name="uploader_error_forbidden_content">%1$s darf den freigegebenen Inhalt nicht nutzen.</string>
<string name="uploader_info_uploading">Lade hoch</string>
<string name="file_list_empty">Alles leer. Laden Sie etwas hoch!</string>
- <string name="file_list_loading">Lade…</string>
+ <string name="file_list_loading">Ladevorgang …</string>
<string name="local_file_list_empty">Es befinden sich keine Dateien in diesem Ordner.</string>
<string name="filedetails_select_file">Klicken Sie auf eine Datei für weitere Informationen.</string>
<string name="filedetails_size">Größe:</string>
<string name="sync_fail_in_favourites_ticker">Synchronisationsdateien konnten nicht synchronisiert werden.</string>
<string name="sync_fail_in_favourites_content">Inhalte von %1$d konnte nicht synchronisiert werden (%2$d Konflikte)</string>
<string name="sync_foreign_files_forgotten_ticker">Einige lokale Dateien wurden vergessen</string>
- <string name="sync_foreign_files_forgotten_content">%1$d Dateien aus dem %2$s Verzeichnis konnten nicht kopiert werden nach</string>
+ <string name="sync_foreign_files_forgotten_content">%1$d Dateien aus dem %2$s Ordner konnten nicht kopiert werden nach</string>
<string name="sync_foreign_files_forgotten_explanation">Mit Version 1.3.16 werden Dateien die von diesem Gerät aus hochgeladen werden in den lokalen Ordner %1$s kopiert um Datenverlust zu vermeiden, wenn eine einzelne Datei mit mehreren Accounts synchronisiert wird.\n\nInfolge dieser Änderung wurden alle Dateien, die mit vorherigen Versionen dieser App hochgeladen wurden, in den Ordner %2$s verschoben. Jedoch ist während der Account-Synchronisation ein Fehler aufgetreten, der das Abschließen dieses Vorgangs verhindert. Sie können die Datei(en) entweder wie sie sind belassen und den Link zu %3$s entfernen oder die Datei(en) in den %1$s Ordner verschieben und den Link zu %4$s beibehalten.\n\nUnten befindet sich eine Liste der lokalen Datei(en) und der mit ihnen verbundenen Remote-Datei(en) in %5$s.</string>
<string name="sync_current_folder_was_removed">Das Verzeichnis %1$s existiert nicht mehr</string>
<string name="foreign_files_move">Verschiebe alle</string>
<string name="media_rewind_description">Zurückspulen Button</string>
<string name="media_play_pause_description">Abspielen oder Pausieren Button</string>
<string name="media_forward_description">Vorspulen Button</string>
- <string name="auth_getting_authorization">Autorisierung empfangen...</string>
- <string name="auth_trying_to_login">Anmeldungsversuch...</string>
+ <string name="auth_getting_authorization">Legitimierung empfangen …</string>
+ <string name="auth_trying_to_login">Anmeldeversuch …</string>
<string name="auth_no_net_conn_title">Keine Netzwerkverbindung</string>
<string name="auth_nossl_plain_ok_title">Sichere Verbindung nicht verfügbar.</string>
<string name="auth_connection_established">Verbindung hergestellt</string>
- <string name="auth_testing_connection">Verbindung testen...</string>
+ <string name="auth_testing_connection">Verbindungstest …</string>
<string name="auth_not_configured_title">Fehlerhafte Server Konfiguration</string>
<string name="auth_account_not_new">Ein Benutzerkonto für den gleichen Benutzer und Server existiert auf diesem Gerät bereits</string>
<string name="auth_account_not_the_same">Der eingegebene Benutzer passt nicht zu dem Benutzer dieses Benutzerkontos</string>
<string name="auth_wrong_connection_title">Konnte keine Verbindung aufbauen.</string>
<string name="auth_secure_connection">Sichere Verbindung hergestellt</string>
<string name="auth_unauthorized">Falscher Benutzername oder Passwort</string>
- <string name="auth_oauth_error">Autorisierung nicht erfolgreich</string>
- <string name="auth_oauth_error_access_denied">Zugriff durch den Autorisierungsserver abgelehnt</string>
- <string name="auth_wtf_reenter_URL">Unerwarteter Zustand; bitte geben Sie die URL des Servers nochmals ein</string>
- <string name="auth_expired_oauth_token_toast">Ihre Autorisierung ist abgelaufen. Bitte Autorisierung nochmals durchführen</string>
+ <string name="auth_oauth_error">Legitimierung nicht erfolgreich</string>
+ <string name="auth_oauth_error_access_denied">Zugriff durch den Legitimierungsserver abgelehnt</string>
+ <string name="auth_wtf_reenter_URL">Unerwarteter Zustand; bitte geben Sie die Adresse des Servers nochmals ein</string>
+ <string name="auth_expired_oauth_token_toast">Ihre Legitimierung ist abgelaufen. Bitte Legitimierung nochmals durchführen</string>
<string name="auth_expired_basic_auth_toast">Bitte geben Sie Ihr aktuelles Passwort ein</string>
<string name="auth_expired_saml_sso_token_toast">Ihre Sitzung ist abgelaufen. Bitte Anmeldung nochmals durchführen</string>
- <string name="auth_connecting_auth_server">Verbinde mit dem Authentifizierung-Server…</string>
- <string name="auth_unsupported_auth_method">Der Server unterstützt diese Authentifizierung-Methode nicht</string>
+ <string name="auth_connecting_auth_server">Zum Legitimierungsserver wird verbunden …</string>
+ <string name="auth_unsupported_auth_method">Der Server unterstützt diese Legitimierungsmethode nicht</string>
<string name="auth_unsupported_multiaccount">%1$s unterstützt nicht mehrere Benutzerkonten</string>
- <string name="auth_fail_get_user_name">Ihr Server gibt keine korrekte Benutzer-ID zurück, bitte kontaktieren Sie einen Administrator
+ <string name="auth_fail_get_user_name">Ihr Server gibt keine richtige Benutzerkennung zurück, bitte kontaktieren Sie einen Administrator
⇥</string>
- <string name="auth_can_not_auth_against_server">Die Authentifizierung gegenüber dem Server konnte nicht durchgeführt werden</string>
+ <string name="auth_can_not_auth_against_server">Die Legitimierung gegenüber dem Server konnte nicht durchgeführt werden</string>
<string name="fd_keep_in_sync">Datei aktuell halten</string>
<string name="common_rename">Umbenennen</string>
<string name="common_remove">Löschen</string>
<string name="rename_server_fail_msg">Die Umbenennung konnte nicht abgeschlossen werden.</string>
<string name="sync_file_fail_msg">Die entfernte Datei konnte nicht überprüft werden</string>
<string name="sync_file_nothing_to_do_msg">Dateiinhalte bereits synchronisiert</string>
- <string name="create_dir_fail_msg">Verzeichnis konnte nicht erstellt werden</string>
+ <string name="create_dir_fail_msg">Ordner konnte nicht erstellt werden</string>
<string name="filename_forbidden_characters">Verbotene Zeichen: / \\ < > : \" | ? *</string>
<string name="filename_empty">Dateiname darf nicht leer sein</string>
<string name="wait_a_moment">Bitte warten Sie einen Moment.</string>
<string name="filedisplay_unexpected_bad_get_content">Ein unerwartetes Problem ist aufgetreten. Bitte versuchen Sie, die Datei in einer anderen App zu öffnen.</string>
<string name="filedisplay_no_file_selected">Es wurde keine Datei ausgewählt.</string>
- <string name="activity_chooser_title">Link senden an ...</string>
+ <string name="activity_chooser_title">Link senden an …</string>
<string name="oauth_check_onoff">Anmelden mit oAuth2</string>
- <string name="oauth_login_connection">Verbinde mit dem oAuth2-Server…</string>
+ <string name="oauth_login_connection">Mit dem oAuth2-Server wird verbunden …</string>
<string name="ssl_validator_header">Die Identität der Website konnte nicht überprüft werden</string>
<string name="ssl_validator_reason_cert_not_trusted">- Das Zertifikat des Servers ist nicht vertrauenswürdig</string>
<string name="ssl_validator_reason_cert_expired">- Das Zertifikat des Servers ist abgelaufen</string>
<string name="ssl_validator_label_validity_to">An:</string>
<string name="ssl_validator_label_signature">Signatur:</string>
<string name="ssl_validator_label_signature_algorithm">Algorithmus:</string>
- <string name="ssl_validator_null_cert">Das Zertifikat konnte nicht gezeigt werden.</string>
+ <string name="ssl_validator_null_cert">Das Zertifikat konnte nicht angezeigt werden.</string>
<string name="ssl_validator_no_info_about_error">- Keine Informationen über den Fehler</string>
<string name="placeholder_sentence">Dies ist ein Platzhalter</string>
<string name="placeholder_filename">platzhalter.txt</string>
<string name="error__upload__local_file_not_copied">%1$s konnte nicht in den lokalen %2$s Ordner kopiert werden</string>
<string name="share_link_no_support_share_api">Entschuldigung, Freigaben sind auf Ihrem Server nicht aktiviert. Bitte kontaktieren Sie Ihren
⇥⇥Administrator.</string>
- <string name="share_link_file_no_exist">Die Freigabe der Datei oder des Ordners ist nicht möglich. Bitte stellen Sie sicher, dass diese existiert.</string>
+ <string name="share_link_file_no_exist">Teilen nicht möglich. Prüfen Sie, dass die Datei existiert</string>
<string name="share_link_file_error">Es ist ein Fehler beim Freigeben der Datei oder des Ordners aufgetreten.</string>
- <string name="unshare_link_file_no_exist">Das Entfernen der Freigabe für die Datei oder den Ordner ist nicht möglich. Diese existieren nicht.</string>
+ <string name="unshare_link_file_no_exist">Entfernen der Freigabe nicht möglich. Prüfen Sie, dass die Datei existiert</string>
<string name="unshare_link_file_error">Es ist ein Fehler beim Entfernen der Freigabe für diese Datei oder den Ordner aufgetreten.</string>
<string name="activity_chooser_send_file_title">Senden</string>
<string name="copy_link">Link kopieren</string>
<string name="prefs_category_accounts">Konten</string>
<string name="prefs_add_account">Konto hinzufügen</string>
<string name="auth_redirect_non_secure_connection_title">Die gesicherte Verbindung wird auf eine unsichere Route weitergeleitet.</string>
+ <string name="saml_authentication_required_text">Authentifizierung benötigt</string>
+ <string name="saml_authentication_wrong_pass">Falsches Passwort</string>
+ <string name="actionbar_move">Verschieben</string>
+ <string name="file_list_empty_moving">Nichts vorhanden. Sie können einen Ordner hinzufügen!</string>
+ <string name="move_choose_button_text">Auswählen</string>
+ <string name="move_file_not_found">Verschieben nicht möglich. Prüfen Sie, ob die Datei existiert</string>
+ <string name="move_file_invalid_into_descendent">Es ist nicht möglich einen Ordner eine Ebene tiefer zu verschieben</string>
+ <string name="move_file_invalid_overwrite">Die Datei existiert bereits im Zielordner</string>
+ <string name="move_file_error">Es ist ein Fehler beim Verschieben dieser Datei oder Ordners aufgetreten.</string>
+ <string name="forbidden_permissions_move">um diese Datei zu verschieben</string>
</resources>
<string name="prefs_feedback">Rückmeldungen</string>
<string name="prefs_imprint">Impressum</string>
<string name="recommend_subject">Probiere %1$s auf Deinem Smartphone!</string>
- <string name="recommend_text">\"Ich möchte Dich zum Benutzen von %1$s auf Deinem Smartphone einladen!\nLade es hier herunter: %2$s\"</string>
+ <string name="recommend_text">Ich möchte Dich zum Benutzen von %1$s auf Deinem Smartphone einladen!\nLade es hier herunter: %2$s</string>
<string name="auth_check_server">Überprüfe den Server</string>
<string name="auth_host_url">Server-Adresse https://…</string>
<string name="auth_username">Benutzername</string>
<string name="uploader_error_forbidden_content">%1$s darf den freigegebenen Inhalt nicht nutzen.</string>
<string name="uploader_info_uploading">Lade hoch</string>
<string name="file_list_empty">Alles leer. Lade etwas hoch!</string>
- <string name="file_list_loading">Lade...</string>
+ <string name="file_list_loading">Ladevorgang …</string>
<string name="local_file_list_empty">Es befinden sich keine Dateien in diesem Ordner.</string>
<string name="filedetails_select_file">Klicken Sie auf eine Datei für weitere Informationen.</string>
<string name="filedetails_size">Größe:</string>
<string name="error__upload__local_file_not_copied">%1$s konnte nicht in den lokalen %2$s Ordner kopiert werden</string>
<string name="share_link_no_support_share_api">Entschuldigung, Freigaben sind auf Deinem Server nicht aktiviert. Bitte kontaktiere Deinen
⇥⇥Administrator.</string>
- <string name="share_link_file_no_exist">Die Freigabe der Datei oder des Ordners ist nicht möglich. Bitte stelle sicher, dass diese existiert.</string>
+ <string name="share_link_file_no_exist">Teilen nicht möglich. Prüfe, dass die Datei existiert</string>
<string name="share_link_file_error">Es ist ein Fehler beim Freigeben der Datei oder des Ordners aufgetreten.</string>
- <string name="unshare_link_file_no_exist">Das Entfernen der Freigabe für die Datei oder den Ordner ist nicht möglich. Diese existieren nicht.</string>
+ <string name="unshare_link_file_no_exist">Entfernen der Freigabe nicht möglich. Prüfe, dass die Datei existiert</string>
<string name="unshare_link_file_error">Es ist ein Fehler beim Entfernen der Freigabe für diese Datei oder den Ordner aufgetreten.</string>
<string name="activity_chooser_send_file_title">Senden</string>
<string name="copy_link">Link kopieren</string>
<string name="prefs_category_accounts">Konten</string>
<string name="prefs_add_account">Konto hinzufügen</string>
<string name="auth_redirect_non_secure_connection_title">Die gesicherte Verbindung wird auf eine unsichere Route weitergeleitet.</string>
+ <string name="saml_authentication_required_text">Authentifizierung benötigt</string>
+ <string name="saml_authentication_wrong_pass">Falsches Passwort</string>
+ <string name="actionbar_move">Verschieben</string>
+ <string name="file_list_empty_moving">Nichts vorhanden. Du kannst einen Ordner hinzufügen!</string>
+ <string name="move_choose_button_text">Auswählen</string>
+ <string name="move_file_not_found">Verschieben nicht möglich. Prüfe, dass die Datei existiert</string>
+ <string name="move_file_invalid_into_descendent">Es ist nicht möglich einen Ordner eine Ebene tiefer zu verschieben</string>
+ <string name="move_file_invalid_overwrite">Die Datei existiert bereits im Zielordner</string>
+ <string name="move_file_error">Es ist ein Fehler beim Verschieben dieser Datei oder Ordners aufgetreten.</string>
+ <string name="forbidden_permissions_move">zum Datei verschieben</string>
</resources>
<string name="error__upload__local_file_not_copied">Το %1$s δεν μπόρεσε να αντιγραφεί στον τοπικό φάκελο %2$s</string>
<string name="share_link_no_support_share_api">Λυπούμαστε, ο διαμοιρασμός δεν επιτρέπεται στο διακομιστή σας. Παρακαλούμε επικοινωνείστε με το
διαχειριστή σας.</string>
- <string name="share_link_file_no_exist">Αδυναμία διαμοιρασμού αυτού του αρχείου ή φακέλου. Παρακαλώ βεβαιωθείτε ότι υπάρχει</string>
<string name="share_link_file_error">Ένα σφάλμα προέκυψε κατά την προσπάθεια διαμοιρασμού αυτού του αρχείου ή φακέλου</string>
- <string name="unshare_link_file_no_exist">Ήταν αδύνατη η ακύρωση διαμοιρασμού αυτού του αρχείου ή φακέλου. Δεν υπάρχει.</string>
<string name="unshare_link_file_error">Ένα σφάλμα προέκυψε κατά τη διάρκεια ακύρωσης διαμοιρασμού αυτού του αρχείου ή φακέλου</string>
<string name="activity_chooser_send_file_title">Αποστολή</string>
<string name="copy_link">Αντιγραφή συνδέσμου</string>
<string name="prefs_category_accounts">Λογαριασμοί</string>
<string name="prefs_add_account">Προσθήκη λογαριασμού</string>
<string name="auth_redirect_non_secure_connection_title">Ασφαλής σύνδεση ανακατευθύνεται μέσω μιας μη ασφαλούς διαδρομής.</string>
+ <string name="saml_authentication_required_text">Απαιτείται πιστοποίηση</string>
+ <string name="saml_authentication_wrong_pass">Εσφαλμένο συνθηματικό</string>
+ <string name="move_choose_button_text">Επιλέξτε</string>
</resources>
<string name="prefs_feedback">Feedback</string>
<string name="prefs_imprint">Imprint</string>
<string name="recommend_subject">Try %1$s on your smartphone!</string>
- <string name="recommend_text">\"I want to invite you to use %1$s on your smartphone!\nDownload here: %2$s\"
- </string>
+ <string name="recommend_text">I want to invite you to use %1$s on your smartphone!\nDownload here: %2$s</string>
<string name="auth_check_server">Check Server</string>
<string name="auth_host_url">Server address https://…</string>
<string name="auth_username">Username</string>
<string name="error__upload__local_file_not_copied">%1$s could not be copied to %2$s local folder</string>
<string name="share_link_no_support_share_api">Sorry, sharing is not enabled on your server. Please contact your
administrator.</string>
- <string name="share_link_file_no_exist">Unable to share this file or folder. Please, make sure it exists</string>
+ <string name="share_link_file_no_exist">Unable to share. Please check whether the file exists</string>
<string name="share_link_file_error">An error occurred while trying to share this file or folder</string>
- <string name="unshare_link_file_no_exist">Unable to unshare this file or folder. It does not exist.</string>
+ <string name="unshare_link_file_no_exist">Unable to unshare. Please check whether the file exists</string>
<string name="unshare_link_file_error">An error occurred while trying to unshare this file or folder</string>
<string name="activity_chooser_send_file_title">Send</string>
<string name="copy_link">Copy link</string>
<string name="prefs_category_accounts">Accounts</string>
<string name="prefs_add_account">Add account</string>
<string name="auth_redirect_non_secure_connection_title">Secure connection is redirected through an unsecured route.</string>
+ <string name="saml_authentication_required_text">Authentication required</string>
+ <string name="saml_authentication_wrong_pass">Incorrect password</string>
+ <string name="actionbar_move">Move</string>
+ <string name="file_list_empty_moving">Nothing in here. You can add a folder!</string>
+ <string name="move_choose_button_text">Choose</string>
+ <string name="move_file_not_found">Unable to move. Please check whether the file exists</string>
+ <string name="move_file_invalid_into_descendent">It is not possible to move a folder into a descendant</string>
+ <string name="move_file_invalid_overwrite">The file exists already in the destination folder</string>
+ <string name="move_file_error">An error occurred whilst trying to move this file or folder</string>
+ <string name="forbidden_permissions_move">to move this file</string>
</resources>
<string name="network_error_socket_exception">Eraro okazis dum konekto al la servilo.</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Kontoj</string>
+ <string name="saml_authentication_required_text">Aŭtentiĝo nepras</string>
+ <string name="saml_authentication_wrong_pass">Malĝusta pasvorto</string>
+ <string name="move_choose_button_text">Elekti</string>
</resources>
<string name="clipboard_text_copied">Copiado al portapapeles</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Cuentas</string>
+ <string name="saml_authentication_required_text">Autentificación requerida</string>
+ <string name="saml_authentication_wrong_pass">Clave incorrecta</string>
+ <string name="move_choose_button_text">Elegir</string>
</resources>
<string name="error__upload__local_file_not_copied">%1$s no pudo ser copiado a la carpeta local %2$s</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Cuentas</string>
+ <string name="move_choose_button_text">Choose</string>
</resources>
<string name="clipboard_text_copied">Copiado al portapapeles</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Cuentas</string>
+ <string name="saml_authentication_wrong_pass">Contraseña incorrecta</string>
+ <string name="move_choose_button_text">Seleccionar</string>
</resources>
<string name="prefs_feedback">Mensajes de retroalimentación</string>
<string name="prefs_imprint">pie de imprenta</string>
<string name="recommend_subject">Prueba %1$s en tu smarthphone!</string>
+ <string name="recommend_text">¡Quiero invitarle a usar %1$s en su smartphone!\nDescárguelo aquí: %2$s</string>
<string name="auth_check_server">Compruebe el servidor.</string>
<string name="auth_host_url">Dirección del servidor https://…</string>
<string name="auth_username">Nombre de usuario</string>
<string name="error__upload__local_file_not_copied">%1$s no pudo ser copiado a la carpeta local %2$s</string>
<string name="share_link_no_support_share_api">La función Compartir no está activada en su servidor. Contacte a su
administrador.</string>
- <string name="share_link_file_no_exist">No es posible compartir este archivo o carpeta. Asegúrese de que existe.</string>
+ <string name="share_link_file_no_exist">No se puede compartir. Revise si el archivo existe</string>
<string name="share_link_file_error">Ocurrió un error al tratar de compartir este archivo o carpeta</string>
- <string name="unshare_link_file_no_exist">No se puede dejar de compartir este archivo o carpeta. No existe.</string>
+ <string name="unshare_link_file_no_exist">No se puede dejar de compartir. Revise si el archivo existe</string>
<string name="unshare_link_file_error">Ocurrió un error al tratar de ya no compartir este archivo o carpeta</string>
<string name="activity_chooser_send_file_title">Enviar</string>
<string name="copy_link">Copiar enlace</string>
<string name="prefs_category_accounts">Cuentas</string>
<string name="prefs_add_account">Agregar cuenta</string>
<string name="auth_redirect_non_secure_connection_title">La conexión segura está siendo redirigida por una ruta insegura.</string>
+ <string name="saml_authentication_required_text">Se necesita autenticación</string>
+ <string name="saml_authentication_wrong_pass">Contraseña incorrecta</string>
+ <string name="actionbar_move">Mover</string>
+ <string name="file_list_empty_moving">Aquí no hay nada. ¡Puede agregar una carpeta!</string>
+ <string name="move_choose_button_text">Seleccionar</string>
+ <string name="move_file_not_found">No se puede mover. Revise si el archivo existe</string>
+ <string name="move_file_invalid_overwrite">El archivo ya existe en la carpeta de destino</string>
+ <string name="move_file_error">Hubo un error al tratar de mover este archivo o carpeta</string>
+ <string name="forbidden_permissions_move">para mover este archivo</string>
</resources>
<string name="prefs_feedback">Tagasiside</string>
<string name="prefs_imprint">Impressum</string>
<string name="recommend_subject">Proovi oma nutitelefonil rakendust %1$s!</string>
- <string name="recommend_text">\"Ma kutsun sind kasutama oma telefonis rakendust %1$s!\nLaadi see alla siit: %2$s\"
- </string>
<string name="auth_check_server">Kontrolli serverit</string>
<string name="auth_host_url">Serveri aadress https://...</string>
<string name="auth_username">Kasutajanimi</string>
<string name="sync_fail_in_favourites_content">Faili %1$d sisu ei suudeta sünkroniseerida (konflikt %2$d)</string>
<string name="sync_foreign_files_forgotten_ticker">Osad kohalikud faili ununesid</string>
<string name="sync_foreign_files_forgotten_content">%1$d faili %2$s kataloogis ei saa kopeerida</string>
+ <string name="sync_foreign_files_forgotten_explanation">Alates versioonist 1.3.16 failid, mis on üles laaditud kopeeritakse kohalikku kataloogi %1$s vältimaks andmete kadu vältimaks andmete kadu juhul, kui ühte faili sünkroniseeritakse mitmelt kontolt.
+
+Selle muudatusega seoses kõik failid, mis on üles laetud rakenduse vanemate versioonidega, kopeeriti kataloogi %2$s. Selle tegevuse peatas viga, mis tekkis konto sünkroniseerimise käigus. Sa saad jätta faili(d) nagu nad on ning eemaldata viite %3$s või tõsta faili(d) %1$s kataloogi ja säilitada viite %4$s.
+
+Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, millele nad viitavad.</string>
<string name="sync_current_folder_was_removed">Kausta %1$s pole enam olemas</string>
<string name="foreign_files_move">Tõsta kõik ümber</string>
<string name="foreign_files_success">Kõik failid tõsteti ümber</string>
<string name="error__upload__local_file_not_copied">%1$s ei suudetud kopeerida kohalikku kataloogi %2$s</string>
<string name="share_link_no_support_share_api">Vabandust, server ei toeta jagamist. Palun kontakteeru
⇥⇥administraatoriga.</string>
- <string name="share_link_file_no_exist">Antud faili või kausta ei saa jagada. Tee kindlaks, et see on olemas</string>
+ <string name="share_link_file_no_exist">Jagamine ebaõnnestus. Palun kontrolli, kas fail on olemas</string>
<string name="share_link_file_error">Faili või kausta jagamisel esines viga</string>
- <string name="unshare_link_file_no_exist">Antud faili või kausta jagamist pole võimalik tühistada</string>
+ <string name="unshare_link_file_no_exist">Liigutamise lõpetamine ebaõnnestus. Palun kontrolli, kas fail on olemas</string>
<string name="unshare_link_file_error">Faili või kausta jagamise tühistamisel esines viga</string>
<string name="activity_chooser_send_file_title">Saada</string>
<string name="copy_link">Kopeeri link</string>
<string name="prefs_category_accounts">Kontod</string>
<string name="prefs_add_account">Lisa konto</string>
<string name="auth_redirect_non_secure_connection_title">Turvalist ühendust suunatakse läbi turvamata ühenduse.</string>
+ <string name="saml_authentication_required_text">Autentimine on vajalik</string>
+ <string name="saml_authentication_wrong_pass">Vale parool</string>
+ <string name="actionbar_move">Tõsta ümber</string>
+ <string name="file_list_empty_moving">Siin pole midagi. Sa võid lisada kausta!</string>
+ <string name="move_choose_button_text">Vali</string>
+ <string name="move_file_not_found">Liigutamine ebaõnnestus. Palun kontrolli, kas fail on olemas</string>
+ <string name="move_file_invalid_into_descendent">Kausta ei saa liigutada selle alamkausta</string>
+ <string name="move_file_invalid_overwrite">See fail on juba sihtkaustas olemas</string>
+ <string name="move_file_error">Selle faili või kausta liigutamisel tekkis tõrge</string>
+ <string name="forbidden_permissions_move">selle faili liigutamiseks</string>
</resources>
<string name="preview_image_error_unknown_format">Ezin da irudi hau erakutsi</string>
<string name="error__upload__local_file_not_copied">%1$s ezin da %2$s karpeta lokalera kopiatu</string>
<string name="share_link_no_support_share_api">Sentitzen dut, partekatzea ez dago zure zerbitzarian gaituta. Mesedez jarri harremanetan zure administratzailearekin.</string>
- <string name="share_link_file_no_exist">Ezin izan da karpeta edo fitxategi hau partekatu. Mesedez, ziurtatu existitzen dela</string>
<string name="share_link_file_error">Errore bat egon da fitxategaia edo karpeta partekatzerakoan</string>
- <string name="unshare_link_file_no_exist">Ezin izan da karpeta edo fitxategi honen partekatzeari utzi. Ez da existitzen.</string>
<string name="unshare_link_file_error">Errore bat egon da fitxategaia edo karpeta partekatzeari uzterakoan</string>
<string name="activity_chooser_send_file_title">Bidali</string>
<string name="copy_link">Lotura kopiatu</string>
<string name="prefs_category_accounts">Kontuak</string>
<string name="prefs_add_account">Gehitu kontua</string>
<string name="auth_redirect_non_secure_connection_title">Konexio segurua birbideratu da segurua ez den bide batetik.</string>
+ <string name="saml_authentication_required_text">Autentikazioa beharrezkoa</string>
+ <string name="saml_authentication_wrong_pass">Pasahitz okerra</string>
+ <string name="move_choose_button_text">Aukeratu</string>
</resources>
<string name="conflict_dont_upload">آپلود نکن</string>
<string name="preview_image_description">پیش نمایش تصویر</string>
<string name="preview_image_error_unknown_format">نمایش این عکس امکانپذیر نمی باشد</string>
- <string name="share_link_file_no_exist">به اشتراک گذاری این فایل یا پوشه ممکن نیست. لطفاً از وجود آن اطمینان حاصل نمایید</string>
<string name="share_link_file_error">در حین اشتراک گذاری این فایل یا پوشه خطایی رخ داده است</string>
- <string name="unshare_link_file_no_exist">حذف اشتراک گذاری این فایل یا پوشه ممکن نیست. لطفاً از وجود آن اطمینان حاصل نمایید</string>
<string name="unshare_link_file_error">در حین حذف اشتراک گذاری این فایل یا پوشه خطایی رخ داده است</string>
<string name="activity_chooser_send_file_title">ارسال</string>
<string name="clipboard_text_copied">کپی به کلیپ بورد</string>
<string name="uploader_upload_forbidden_permissions">برای آپلود در این پوشه</string>
<string name="downloader_download_file_not_found">این فایل دیگر روی سرور وجود ندارد</string>
<string name="prefs_category_accounts">حسابها</string>
+ <string name="saml_authentication_required_text">احراز هویت مورد نیاز است</string>
+ <string name="saml_authentication_wrong_pass">رمز عبور اشتباه است</string>
+ <string name="move_choose_button_text">انتخاب کردن</string>
</resources>
<string name="prefs_recommend">Suosittele kaverille</string>
<string name="prefs_feedback">Palaute</string>
<string name="recommend_subject">Kokeile %1$sia älypuhelimellasi!</string>
- <string name="recommend_text">\"Kutsun sinut käyttämään %1$sia älypuhelimellasi!\nLataa tästä: %2$s\"
- </string>
<string name="auth_check_server">Tarkista palvelin</string>
<string name="auth_host_url">Palvelinosoite https://…</string>
<string name="auth_username">Käyttäjätunnus</string>
<string name="media_err_io">Mediatiedoston luku ei onnistunut</string>
<string name="media_err_timeout">Aikakatkaisu toistoa yrittäessä</string>
<string name="media_err_invalid_progressive_playback">Mediatiedostoa ei voi suoratoistaa</string>
+ <string name="media_err_security_ex">Turvallisuusvirhe yrittäessä toistaa kohdetta %1$s</string>
+ <string name="media_err_unexpected">Odottamaton virhe yrittäessä toistaa kohdetta %1$s</string>
<string name="media_rewind_description">Taaksepäin kelaus -painike</string>
<string name="media_play_pause_description">Toisto tai keskeytys -painike</string>
<string name="media_forward_description">Eteenpäin kelaus -painike</string>
<string name="preview_image_error_unknown_format">Tätä kuvaa ei voi näyttää</string>
<string name="share_link_no_support_share_api">Jakaminen ei ole käytössä palvelimellasi. Ota yhteys
ylläpitäjään.</string>
- <string name="share_link_file_no_exist">Valitettavasti tämän tiedoston tai kansion jakaminen ei onnistu. Varmista että se on olemassa</string>
<string name="share_link_file_error">Virhe tiedoston tai kansion jakamista yrittäessä</string>
- <string name="unshare_link_file_no_exist">Tämän tiedoston tai kansion jaon poistaminen ei onnistunut, koska sitä ei ole olemassa.</string>
<string name="activity_chooser_send_file_title">Lähetä</string>
<string name="copy_link">Kopioi linkki</string>
<string name="clipboard_text_copied">Kopioitu leikepöydälle</string>
<string name="prefs_category_accounts">Tilit</string>
<string name="prefs_add_account">Lisää tili</string>
<string name="auth_redirect_non_secure_connection_title">Salattu yhteys on ohjattu uudelleen salaamatonta reittiä pitkin.</string>
+ <string name="saml_authentication_required_text">Tunnistautuminen vaaditaan</string>
+ <string name="saml_authentication_wrong_pass">Väärä salasana</string>
+ <string name="actionbar_move">Siirrä</string>
+ <string name="file_list_empty_moving">Täällä ei ole mitään. Voit lisätä kansion!</string>
+ <string name="move_choose_button_text">Valitse</string>
+ <string name="move_file_not_found">Siirto ei onnistu. Tarkista, ettei tiedostoa ole jo olemassa</string>
+ <string name="move_file_invalid_overwrite">Tiedosto on jo olemassa kohdekansiossa</string>
+ <string name="move_file_error">Tämän tiedoston tai kansion siirtoa yrittäessä tapahtui virhe</string>
</resources>
<string name="preview_image_error_unknown_format">Cette image ne peut pas être affichée</string>
<string name="error__upload__local_file_not_copied">%1$s n\'a pas pu être copié dans le dossier local %2$s</string>
<string name="share_link_no_support_share_api">Désolé, le partage n\'est pas disponible sur votre serveur. Contactez votre administrateur, s\'il vous plait.</string>
- <string name="share_link_file_no_exist">Impossible de partager ce fichier ou répertoire. Vérifiez qu’il est bien présent</string>
<string name="share_link_file_error">Une erreur est survenue lors de la tentative de partage de ce fichier ou répertoire</string>
- <string name="unshare_link_file_no_exist">Impossible d’annuler le partage de ce fichier ou répertoire : il n’existe pas.</string>
<string name="unshare_link_file_error">Une erreur est survenue lors de la tentative d’annulation du partage de ce fichier ou répertoire</string>
<string name="activity_chooser_send_file_title">Envoyer</string>
<string name="copy_link">Copier le lien</string>
<string name="downloader_download_file_not_found">Ce fichier n’est plus disponible sur le serveur</string>
<string name="prefs_category_accounts">Comptes</string>
<string name="prefs_add_account">Ajouter un compte</string>
+ <string name="saml_authentication_required_text">Authentification requise</string>
+ <string name="saml_authentication_wrong_pass">Mot de passe incorrect</string>
+ <string name="actionbar_move">Déplacer</string>
+ <string name="move_choose_button_text">Choisir</string>
</resources>
<string name="error__upload__local_file_not_copied">Non foi posíbel copiar %1$s no cartafol local %2$s</string>
<string name="share_link_no_support_share_api">O seu servidor non ten activada a opción de compartir. Póñase en contacto co
administrador.</string>
- <string name="share_link_file_no_exist">Non foi posíbel compartir este ficheiro ou cartafol. Asegurese de que existe.</string>
<string name="share_link_file_error">Produciuse un erro ao tentar compartir este ficheiro ou cartafol.</string>
- <string name="unshare_link_file_no_exist">Non foi posíbel deixar de compartir este ficheiro ou cartafol xa que non existe.</string>
<string name="unshare_link_file_error">Produciuse un erro ao tentar deixar de compartir este ficheiro ou cartafol</string>
<string name="activity_chooser_send_file_title">Enviar</string>
<string name="copy_link">Copiar a ligazón</string>
<string name="prefs_category_accounts">Contas</string>
<string name="prefs_add_account">Engadir unha conta</string>
<string name="auth_redirect_non_secure_connection_title">A conexión segura está a ser redirixida a través dunha ruta non segura.</string>
+ <string name="saml_authentication_required_text">Requírese autenticación</string>
+ <string name="saml_authentication_wrong_pass">Contrasinal incorrecto</string>
+ <string name="actionbar_move">Mover</string>
+ <string name="move_choose_button_text">Escoller</string>
</resources>
<string name="prefs_feedback">משוב</string>
<string name="prefs_imprint">חותמת</string>
<string name="recommend_subject">לבדיקה %1$s בטלפון החכם שלך!</string>
- <string name="recommend_text">\"הנכם מוזמנים להשתמש ב- %1$s בטלפון החכם שלכם!\n קישור הורדה כאן: %2$s\"
-⇥</string>
<string name="auth_check_server">בודק שרת</string>
<string name="auth_host_url">כתובת שרת https://…</string>
<string name="auth_username">שם משתמש</string>
<string name="error__upload__local_file_not_copied">%1$s לא ניתן להעתקה לתיקייה מקומית %2$s</string>
<string name="share_link_no_support_share_api">מצטערים, שיתוף אינו מורשה על השרת שלך. יש ליצור קשר עם
⇥⇥מנהל.</string>
- <string name="share_link_file_no_exist">לא ניתן לשתף קובץ זה או תיקייה זו. יש לוודא שהם קיימים</string>
<string name="share_link_file_error">שגיאה אירעה בזמן ניסיון לשתף קובץ זה או תיקייה זו</string>
- <string name="unshare_link_file_no_exist">לא ניתן לבטל שיתוף לקובץ זה או לתיקייה זו. הקובץ או התיקייה אינם קיימים.</string>
<string name="unshare_link_file_error">שגיאה אירעה בזמן ניסיון לבטל שיתוף לקובץ זה או לתיקייה זו</string>
<string name="activity_chooser_send_file_title">שליחה</string>
<string name="copy_link">העתקת קישור</string>
<string name="prefs_category_accounts">חשבונות</string>
<string name="prefs_add_account">הוספת חשבון</string>
<string name="auth_redirect_non_secure_connection_title">חיבור מאובטח מנותב דרך נתיב לא מאובטח</string>
+ <string name="move_choose_button_text">בחירה</string>
</resources>
<resources>
<string name="actionbar_upload">Učitaj</string>
<string name="actionbar_upload_files">Datoteke</string>
+ <string name="actionbar_mkdir">Nova mapa</string>
<string name="actionbar_settings">Postavke</string>
+ <string name="actionbar_send_file">Pošaljite</string>
<string name="prefs_category_general">Općenito</string>
<string name="prefs_category_more">više</string>
<string name="prefs_accounts">Korisnićki računi</string>
<string name="uploader_wrn_no_account_quit_btn_text">Izlaz</string>
<string name="file_list_empty">Nema ničega u ovoj mapi. Pošalji nešto!</string>
<string name="filedetails_download">Preuzimanje</string>
+ <string name="action_share_file">Podijelite vezu</string>
<string name="common_yes">Da</string>
<string name="common_no">Ne</string>
<string name="common_ok">U redu</string>
<string name="common_cancel_upload">Prekini upload</string>
<string name="common_cancel">Odustani</string>
<string name="common_error">Greška</string>
+ <string name="common_error_unknown">Nepoznata pogreška</string>
<string name="change_password">Izmjena lozinke</string>
+ <string name="uploader_info_dirname">Naziv mape</string>
<string name="auth_trying_to_login">Trying to login…</string>
<string name="common_rename">Promjeni ime</string>
<string name="common_remove">Makni</string>
+ <string name="activity_chooser_send_file_title">Pošaljite</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Korisnićki računi</string>
+ <string name="saml_authentication_required_text">Potrebna autentikacija</string>
+ <string name="saml_authentication_wrong_pass">Pogrešna lozinka</string>
+ <string name="move_choose_button_text">Izaberi</string>
</resources>
<string name="prefs_manage_accounts">Fiókok kezelése</string>
<string name="prefs_pincode">Alkalmazás PIN</string>
<string name="prefs_pincode_summary">Védje meg az alkalmazást</string>
+ <string name="prefs_instant_upload">Azonnali képfeltöltések</string>
+ <string name="prefs_instant_upload_summary">Kamera által készítette képek azonnali feltöltése</string>
+ <string name="prefs_instant_video_upload">Azonnali video feltöltések</string>
+ <string name="prefs_instant_video_upload_summary">Kamera által készített videó azonnali feltöltése</string>
<string name="prefs_log_title">Naplózás engedélyezése</string>
<string name="prefs_log_summary">Ez használható a problémák naplózásához</string>
<string name="prefs_log_title_history">Naplózás előzménye</string>
<string name="sync_string_files">Fájlok</string>
<string name="setup_btn_connect">Kapcsolódás</string>
<string name="uploader_btn_upload_text">Feltöltés</string>
+ <string name="uploader_top_message">Válassz feltöltési mappát:</string>
<string name="uploader_wrn_no_account_title">Nincs ilyen felhasználói fiók</string>
<string name="uploader_wrn_no_account_text">Nem található %1$s fiók ezen a készüléken. Hozzon létre egy fiókot előbb.</string>
<string name="uploader_wrn_no_account_setup_btn_text">Beállítás</string>
<string name="uploader_info_uploading">Feltöltés</string>
<string name="file_list_empty">Itt nincs semmi. Töltsön fel valamit!</string>
<string name="file_list_loading">Betöltés...</string>
+ <string name="local_file_list_empty">Nincs fájl ebben a mappában.</string>
<string name="filedetails_select_file">Érintsen meg egy fájlt a további információkért.</string>
<string name="filedetails_size">Méret:</string>
<string name="filedetails_type">Tipus:</string>
<string name="conflict_overwrite">Felülírás</string>
<string name="conflict_dont_upload">Ne töltsük föl</string>
<string name="preview_image_description">Előnézeti kép</string>
- <string name="share_link_file_no_exist">A mappa nem osztható meg. Lehet, hogy nem is létezik.</string>
<string name="share_link_file_error">Hiba lépett fel a mappa megosztásakor</string>
- <string name="unshare_link_file_no_exist">Nem lehet a megosztást megszüntetni. A mappa vagy fájl nem létezik.</string>
<string name="unshare_link_file_error">Hiba lépett fel a mappa megosztásának visszavonásakor</string>
<string name="activity_chooser_send_file_title">Küldjük el</string>
<string name="copy_link">Link másolása</string>
<string name="clipboard_text_copied">Bemásolva a vágólapra</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Fiókok</string>
+ <string name="saml_authentication_required_text">Felhasználóazonosítás szükséges</string>
+ <string name="saml_authentication_wrong_pass">Hibás jelszó</string>
+ <string name="move_choose_button_text">Válasszon</string>
</resources>
<string name="uploader_info_dirname">Nomine de dossier</string>
<string name="activity_chooser_send_file_title">Invia</string>
<string name="empty"></string>
+ <string name="move_choose_button_text">Seliger</string>
</resources>
<string name="activity_chooser_send_file_title">Kirim</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Akun</string>
+ <string name="saml_authentication_required_text">Diperlukan otentikasi</string>
+ <string name="saml_authentication_wrong_pass">Sandi salah</string>
+ <string name="move_choose_button_text">Pilih</string>
</resources>
<string name="common_remove">Fjarlægja</string>
<string name="activity_chooser_send_file_title">Senda</string>
<string name="empty"></string>
+ <string name="move_choose_button_text">Veldu</string>
</resources>
<string name="prefs_feedback">Segnalazioni</string>
<string name="prefs_imprint">Imprint</string>
<string name="recommend_subject">Prova %1$s sul tuo smartphone!</string>
- <string name="recommend_text">\"Vorrei invitarti a usare %1$s sul tuo smartphone!\nScaricalo qua: %2$s\"
- </string>
<string name="auth_check_server">Verifica server</string>
<string name="auth_host_url">Indirizzo server https://...</string>
<string name="auth_username">Nome utente</string>
<string name="error__upload__local_file_not_copied">%1$s non può essere copiato nella cartella locale %2$s</string>
<string name="share_link_no_support_share_api">Spiacenti, la condivisione non è abilitata sul tuo server. Contatta il tuo
amministratore.</string>
- <string name="share_link_file_no_exist">Impossibile condividere il file o la cartella. Assicurati che esista.</string>
+ <string name="share_link_file_no_exist">Impossibile condividere. Assicurati che il file esista</string>
<string name="share_link_file_error">Si è verificato un errore durante il tentativo di condivisione del file o della cartella</string>
- <string name="unshare_link_file_no_exist">Impossibile rimuovere dalla condivisione il file o la cartella. Non esiste.</string>
+ <string name="unshare_link_file_no_exist">Impossibile rimuovere dalla condivisione. Assicurati che il file esista</string>
<string name="unshare_link_file_error">Si è verificato un errore durante il tentativo di rimuovere la condivisione del file o della cartella</string>
<string name="activity_chooser_send_file_title">Invia</string>
<string name="copy_link">Copia collegamento</string>
<string name="prefs_category_accounts">Account</string>
<string name="prefs_add_account">Aggiungi account</string>
<string name="auth_redirect_non_secure_connection_title">La connessione sicura è rediretta attraverso un percorso non sicuro.</string>
+ <string name="saml_authentication_required_text">Autenticazione richiesta</string>
+ <string name="saml_authentication_wrong_pass">Password errata</string>
+ <string name="actionbar_move">Sposta</string>
+ <string name="file_list_empty_moving">Qui non c\'è niente. Puoi aggiungere una cartella.</string>
+ <string name="move_choose_button_text">Scegli</string>
+ <string name="move_file_not_found">Impossibile spostare. Assicurati che il file esista</string>
+ <string name="move_file_invalid_into_descendent">Impossibile spostare una cartella in una cartella inferiore</string>
+ <string name="move_file_invalid_overwrite">Il file esiste già nella cartella di destinazione</string>
+ <string name="move_file_error">Si è verificato un errore durante il tentativo di spostare il file o la cartella</string>
+ <string name="forbidden_permissions_move">per spostare questo file</string>
</resources>
<string name="prefs_feedback">フィードバック</string>
<string name="prefs_imprint">インプリント</string>
<string name="recommend_subject">スマートフォンで %1$s を試してください!</string>
+ <string name="recommend_text">スマートフォンで %1$s を利用してみませんか!
+ここからダウンロードしてください: %2$s</string>
<string name="auth_check_server">サーバーを確認する</string>
<string name="auth_host_url">サーバーアドレス https://…</string>
<string name="auth_username">ユーザー名</string>
<string name="sync_fail_in_favourites_content">%1$d ファイルのコンテンツを同期できませんでした(%2$d の競合)</string>
<string name="sync_foreign_files_forgotten_ticker">一部のローカルファイルが忘れられています</string>
<string name="sync_foreign_files_forgotten_content"> %2$s フォルダー内の %1$d ファイルはコピーできませんでした。</string>
+ <string name="sync_foreign_files_forgotten_explanation">バージョン 1.3.16以降、このデバイスからアップロードされたファイルは、単独のファイルが複数のアカウントと同期する際にデータの損失を防ぐため、ローカルの%1$sフォルダーにコピーされます。 この変更により、このアプリの以前のバージョンでアップロードされたすべてのファイルは%2$sフォルダーにコピーされます。しかしながら、アカウント同期中にはエラーが発生してこの操作が完了しないようになっています。ファイルをこのままにして%3$sへのリンクを削除するか、あるいは%1$sフォルダーにファイルを移動して%4$sへのリンクを維持することができます。 以下のリストにあるのは、ローカルのファイル及びそれらにリンクしている %5$s内のリモートファイルです。</string>
<string name="sync_current_folder_was_removed">フォルダー %1$s はもう存在しません</string>
<string name="foreign_files_move">すべて移動</string>
<string name="foreign_files_success">すべてのファイルを移動しました</string>
<string name="error__upload__local_file_not_copied">%1$s は、ローカルフォルダー %2$s にコピーできませんでした。</string>
<string name="share_link_no_support_share_api">申し訳ございません。共有がサーバー上で有効になっていません。 管理者に
ご連絡ください。</string>
- <string name="share_link_file_no_exist">このファイルまたはフォルダーは共有できません。存在するか確認してください。</string>
+ <string name="share_link_file_no_exist">共有できません。ファイルがあるか確認してください。</string>
<string name="share_link_file_error">このファイルまたはフォルダーを共有する際にエラーが発生しました</string>
- <string name="unshare_link_file_no_exist">このファイルまたはフォルダは存在しないため、共有を解除できません。</string>
+ <string name="unshare_link_file_no_exist">共有を解除できません。ファイルがあるか確認してください。</string>
<string name="unshare_link_file_error">このファイルまたはフォルダーの共有を解除する際にエラーが発生しました</string>
<string name="activity_chooser_send_file_title">送信</string>
<string name="copy_link">リンクをコピー</string>
<string name="downloader_download_file_not_found">ファイルはサーバー上で利用できません</string>
<string name="prefs_category_accounts">アカウント</string>
<string name="prefs_add_account">アカウントを追加</string>
+ <string name="auth_redirect_non_secure_connection_title">暗号化されていない接続を経て、暗号化接続へリダイレクトされました。</string>
+ <string name="saml_authentication_required_text">認証を必要とする</string>
+ <string name="saml_authentication_wrong_pass">無効なパスワード</string>
+ <string name="actionbar_move">移動</string>
+ <string name="file_list_empty_moving">ファイルが有りません。フォルダを追加してください。</string>
+ <string name="move_choose_button_text">選択</string>
+ <string name="move_file_not_found">移動できません。ファイルがあるか確認してください。</string>
+ <string name="move_file_invalid_into_descendent">フォルダを子フォルダへ移動することはできません。</string>
+ <string name="move_file_invalid_overwrite">そのファイルは、宛先フォルダに既に存在しています。</string>
+ <string name="move_file_error">このファイルまたはフォルダーを移動する際にエラーが発生しました</string>
+ <string name="forbidden_permissions_move">このファイルを移動</string>
</resources>
<string name="clipboard_text_copied">კოპირებულია კლიპბორდში</string>
<string name="empty"></string>
<string name="prefs_category_accounts">ანგარიში</string>
+ <string name="move_choose_button_text">არჩევა</string>
</resources>
<string name="activity_chooser_send_file_title">ផ្ញើ</string>
<string name="empty"></string>
<string name="prefs_category_accounts">គណនី</string>
+ <string name="saml_authentication_wrong_pass">ខុសពាក្យសម្ងាត់</string>
+ <string name="move_choose_button_text">ជ្រើស</string>
</resources>
<string name="clipboard_text_copied">클립보드로 복사됨</string>
<string name="empty"></string>
<string name="prefs_category_accounts">계정</string>
+ <string name="saml_authentication_required_text">인증 필요함</string>
+ <string name="saml_authentication_wrong_pass">잘못된 암호</string>
+ <string name="move_choose_button_text">선택</string>
</resources>
<string name="activity_chooser_send_file_title">Schécken</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Accounten</string>
+ <string name="move_choose_button_text">Auswielen</string>
</resources>
<string name="conflict_dont_upload">Nebesiųsti</string>
<string name="preview_image_description">Paveikslėlio peržiūra</string>
<string name="preview_image_error_unknown_format">Neįmanoma parodyti šio paveikslėlio</string>
- <string name="share_link_file_no_exist">Nepavyksta dalinti šio failo ar aplanko. Prašome įsitikinti ar jis egzistuoja</string>
<string name="share_link_file_error">Įvyko klaida bandant dalinti šį failą ar aplanką</string>
- <string name="unshare_link_file_no_exist">Nepavyksta nebedalinti šiuo failu ar aplanku. Jis neegzistuoja</string>
<string name="unshare_link_file_error">Įvyko klaida bandant nebedalinti šio failu ar aplanku</string>
<string name="activity_chooser_send_file_title">Siųsti</string>
<string name="copy_link">Kopijuoti nuorodą</string>
<string name="clipboard_text_copied">Nukopijuota į talpyklę</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Paskyros</string>
+ <string name="saml_authentication_wrong_pass">Neteisingas slaptažodis</string>
+ <string name="move_choose_button_text">Pasirinkite</string>
</resources>
<string name="activity_chooser_send_file_title">Sūtīt</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Konti</string>
+ <string name="move_choose_button_text">Izvēlieties</string>
</resources>
<string name="activity_chooser_send_file_title">Прати</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Сметки</string>
+ <string name="saml_authentication_required_text">Потребна е автентификација</string>
+ <string name="saml_authentication_wrong_pass">Погрешна лозинка</string>
+ <string name="move_choose_button_text">Избери</string>
</resources>
<string name="common_ok">အိုကေ</string>
<string name="common_cancel">ပယ်ဖျက်မည်</string>
<string name="empty"></string>
+ <string name="move_choose_button_text">ရွေးချယ်</string>
</resources>
<string name="error__upload__local_file_not_copied">%1$s kunne ikke kopieres til lokal mappe %2$s</string>
<string name="share_link_no_support_share_api">Beklager, deling er ikke skrudd på for din tjener. Ta kontakt med
administratoren.</string>
- <string name="share_link_file_no_exist">Klarte ikke å dele denne filen eller mappen. Sjekk at den eksisterer.</string>
<string name="share_link_file_error">Det skjedde en feil under deling av denne filen eller mappen</string>
- <string name="unshare_link_file_no_exist">Klarte ikke å avslutte delingen av denne filen eller mappen. Den eksisterer ikke.</string>
<string name="unshare_link_file_error">En feil oppstod ved avslutting av delingen av denne filen eller mappen</string>
<string name="activity_chooser_send_file_title">Send</string>
<string name="copy_link">Kopier lenke</string>
<string name="prefs_category_accounts">Kontoer</string>
<string name="prefs_add_account">Legg til en konto</string>
<string name="auth_redirect_non_secure_connection_title">Sikker tilkobling videresendes gjennom en usikker rute.</string>
+ <string name="saml_authentication_required_text">Autentisering kreves</string>
+ <string name="saml_authentication_wrong_pass">Feil passord</string>
+ <string name="move_choose_button_text">Velg</string>
</resources>
<string name="prefs_feedback">Feedback</string>
<string name="prefs_imprint">afdruk</string>
<string name="recommend_subject">Probeer %1$s op uw smartphone!</string>
- <string name="recommend_text">\"Ik wil u graag uitnodigen om %1$s op uw smartphone te gebruiken!
-Download hier: %2$s\"
- </string>
+ <string name="recommend_text">Uitnodiging om %1$s op uw smartphone uit te proberen!
+Download hier: %2$s</string>
<string name="auth_check_server">Controleer server</string>
<string name="auth_host_url">Serveradres https://…</string>
<string name="auth_username">Gebruikersnaam</string>
<string name="error__upload__local_file_not_copied">%1$s kon niet worden gekopieerd naar de %2$s lokale map</string>
<string name="share_link_no_support_share_api">Sorry, delen is niet mogelijk op uw server. Neem contact op met uw
beheerder.</string>
- <string name="share_link_file_no_exist">Kan dit bestand of deze map niet delen. Controleer of dit object wel bestaat.</string>
+ <string name="share_link_file_no_exist">Kan dit niet delen. Controleer of dit bestand wel bestaat.</string>
<string name="share_link_file_error">Er trad een fout op bij uw poging dit bestand of deze map te delen</string>
- <string name="unshare_link_file_no_exist">Kan delen van dit bestand of deze map niet beëindigen. Het object bestaat niet.</string>
+ <string name="unshare_link_file_no_exist">Kan delen niet beëindigen. Ga na of het bestand bestaat</string>
<string name="unshare_link_file_error">Er trad een fout op bij uw poging het delen van dit bestand of deze map te beëindigen</string>
<string name="activity_chooser_send_file_title">Versturen</string>
<string name="copy_link">Link kopiëren</string>
<string name="prefs_category_accounts">Accounts</string>
<string name="prefs_add_account">Toevoegen account</string>
<string name="auth_redirect_non_secure_connection_title">De beveiligde verbinding is omgeleid via een onveilige route.</string>
+ <string name="saml_authentication_required_text">Authenticatie vereist</string>
+ <string name="saml_authentication_wrong_pass">Onjuist wachtwoord</string>
+ <string name="actionbar_move">verplaatsen</string>
+ <string name="file_list_empty_moving">Niets hier. U kunt een map toevoegen!</string>
+ <string name="move_choose_button_text">Kies</string>
+ <string name="move_file_not_found">Kan niet verplaatsen. Ga na of het bestand wel bestaat</string>
+ <string name="move_file_invalid_into_descendent">De map kan niet naar een onderliggende map worden verplaatst</string>
+ <string name="move_file_invalid_overwrite">Het bestand bestaat al in de doelmap</string>
+ <string name="move_file_error">Er trad een fout op bij uw poging dit bestand of deze map te verplaatsen</string>
+ <string name="forbidden_permissions_move">om dit bestand te verplaatsen</string>
</resources>
<string name="activity_chooser_send_file_title">Send</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Kontoar</string>
+ <string name="saml_authentication_wrong_pass">Feil passord</string>
+ <string name="move_choose_button_text">Vel</string>
</resources>
<string name="common_rename">Torna nomenar</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Comptes</string>
+ <string name="move_choose_button_text">Causís</string>
</resources>
<string name="activity_chooser_send_file_title">ਭੇਜੋ</string>
<string name="empty"></string>
<string name="prefs_category_accounts">ਅਕਾਊਂਟ</string>
+ <string name="move_choose_button_text">ਚੁਣੋ</string>
</resources>
<string name="prefs_feedback">Wsparcie</string>
<string name="prefs_imprint">Stopka</string>
<string name="recommend_subject">Wypróbuj %1$s na swoim smartphonie!</string>
+ <string name="recommend_text">Chciałbym zaprosić Cię do używania %1$s na swoim smartfonie!\nŚciągnij tutaj: %2$s</string>
<string name="auth_check_server">Sprawdź serwer</string>
<string name="auth_host_url">Adres serwera https://...</string>
<string name="auth_username">Nazwa użytkownika</string>
<string name="sync_fail_in_favourites_content">Zawartość %1$d plików nie może zostać synchronizowana (%2$d konfliktów)</string>
<string name="sync_foreign_files_forgotten_ticker">Niektóre lokalne pliki zostały zgubione.</string>
<string name="sync_foreign_files_forgotten_content">%1$d plików z folderu %2$s nie udało się się przekopiować</string>
+ <string name="sync_foreign_files_forgotten_explanation">Od wersji 1.3.16, pliki wysyłane z tego urządzenia są kopiowane do lokalnego folderu %1$s aby zapobiec utracie danych gdy pojedynczy plik jest synchronizowany z wieloma kontami.\n\nZ powodu tej zmiany, wszystkie pliki wysłane za pomocą poprzedniej wersji tej aplikacji były kopiowane do folderu %2$s. Jednakże, błąd uniemożliwiał dokończenie tej operacji podczas synchronizacji konta. Możesz albo pozostawić plik(i) tak jak jest i usunąć link do %3$s lub przenieść plik(i) do folderu %1$s i pozostawić link do %4$s.\n\nPoniżej plik(i) lokalny i plik(i) zdalny w %5$s, do którego zostały zlinkowane.</string>
<string name="sync_current_folder_was_removed">Folder %1$s nie istnieje.</string>
<string name="foreign_files_move">Przenieś wszystko</string>
<string name="foreign_files_success">Wszystkie pliki zostały przeniesione</string>
<string name="error__upload__local_file_not_copied">%1$s nie może zostać skopiowany do lokalnego folderu %2$s</string>
<string name="share_link_no_support_share_api">Przepraszamy, ale współdzielenie nie jest włączone na Twoim serwerze. Proszę skontaktuj się z
administratorem.</string>
- <string name="share_link_file_no_exist">Brak możliwości udostępnienia tego pliku lub folderu. Upewnij się, że istnieje.</string>
+ <string name="share_link_file_no_exist">Nie można udostępnić. Proszę sprawdzić, czy plik istnieje</string>
<string name="share_link_file_error">Wystąpił błąd podczas udostępniania tego pliku lub folderu.</string>
- <string name="unshare_link_file_no_exist">Nie można anulować udostępniania tego pliku lub folderu. On nie istnieje.</string>
+ <string name="unshare_link_file_no_exist">Nie można wyłączyć udostępniania. Proszę sprawdzić, czy plik istnieje</string>
<string name="unshare_link_file_error">Wystąpił błąd podczas anulowania udostępniania tego pliku lub folderu.</string>
<string name="activity_chooser_send_file_title">Wyślij</string>
<string name="copy_link">Skopiuj link</string>
<string name="prefs_category_accounts">Konta</string>
<string name="prefs_add_account">Dodaj konto</string>
<string name="auth_redirect_non_secure_connection_title">Bezpieczne połączenie jest przekierowywane przez niezabezpieczone trasy.</string>
+ <string name="saml_authentication_required_text">Wymagana autoryzacja</string>
+ <string name="saml_authentication_wrong_pass">Złe hasło</string>
+ <string name="actionbar_move">Przenieś</string>
+ <string name="file_list_empty_moving">Nic tu nie ma. Możesz dodać folder!</string>
+ <string name="move_choose_button_text">Wybierz</string>
+ <string name="move_file_not_found">Nie można przenieść. Proszę sprawdzić, czy plik istnieje</string>
+ <string name="move_file_invalid_into_descendent">Nie jest możliwe przeniesienie folderu do potomka</string>
+ <string name="move_file_invalid_overwrite">Plik istnieje już w folderze docelowym</string>
+ <string name="move_file_error">Pojawił się błąd podczas próby przeniesienia tego pliku lub folderu</string>
+ <string name="forbidden_permissions_move">aby przenieść ten plik</string>
</resources>
<string name="prefs_feedback">Feedback</string>
<string name="prefs_imprint">Imprint</string>
<string name="recommend_subject">Tentar %1$s em seu smartfone!</string>
- <string name="recommend_text">\"Eu quero convidá-lo a utilizar %1$s em seu smartphone!\nDownload aqui: %2$s\"</string>
+ <string name="recommend_text">Gostaria de convida-lo a usar %1$s em seu smartphone!\nBaixe aqui: %2$s</string>
<string name="auth_check_server">Verificar Servidor</string>
<string name="auth_host_url">Endereço do servidor https://...</string>
<string name="auth_username">Nome de usuário</string>
<string name="error__upload__local_file_not_copied">%1$s não pôde ser copiado para pasta local %2$s</string>
<string name="share_link_no_support_share_api">Desculpe, o compartilhamento não está habilitado em seu servidor. Entre em contato com seu
⇥⇥ administrador.</string>
- <string name="share_link_file_no_exist">Incapaz de compartilhar esse arquivo ou pasta. Por favor, certifique-se que existe</string>
+ <string name="share_link_file_no_exist">Não é possível compartilhar. Por favor verifique se o arquivo existe</string>
<string name="share_link_file_error">Ocorreu um erro durante a tentativa de compartilhar esse arquivo ou pasta</string>
- <string name="unshare_link_file_no_exist">Incapaz de descompartilhar este arquivo ou pasta. Ela não existe.</string>
+ <string name="unshare_link_file_no_exist">Não é possível cancelar o compartilhamento. Por favor verifique se o arquivo existe</string>
<string name="unshare_link_file_error">Ocorreu um erro ao tentar descompartilhar este arquivo ou pasta</string>
<string name="activity_chooser_send_file_title">Enviar</string>
<string name="copy_link">Copiar o link</string>
<string name="prefs_category_accounts">Contas</string>
<string name="prefs_add_account">Adicionar uma conta</string>
<string name="auth_redirect_non_secure_connection_title">A conexão segura está redirecionada através de uma rota insegura.</string>
+ <string name="saml_authentication_required_text">Autenticação é requerida</string>
+ <string name="saml_authentication_wrong_pass">Senha incorreta</string>
+ <string name="actionbar_move">Mover</string>
+ <string name="file_list_empty_moving">Nada aqui. Você pode adicionar uma pasta!</string>
+ <string name="move_choose_button_text">Escolher</string>
+ <string name="move_file_not_found">Não é possível mover. Por favor verifique se o arquivo existe</string>
+ <string name="move_file_invalid_into_descendent">Não é possível mover a pasta para uma descendente</string>
+ <string name="move_file_invalid_overwrite">O arquivo já existe na pasta de destino</string>
+ <string name="move_file_error">Ocorreu um erro ao tentar mover este arquivo ou pasta</string>
+ <string name="forbidden_permissions_move">mover este arquivo</string>
</resources>
<string name="prefs_feedback">Resposta</string>
<string name="prefs_imprint">Imprint</string>
<string name="recommend_subject">Experimente %1$s no seu smartphone!</string>
- <string name="recommend_text">Quero convidá-lo a usar %1$s no seu smartphone!\nDescarregue aqui: %2$s\"
-⇥</string>
<string name="auth_check_server">Verificar Servidor</string>
<string name="auth_host_url">Endereço do servidor https://..</string>
<string name="auth_username">Nome de Utilizador</string>
<string name="preview_image_error_unknown_format">Esta imagem não pode ser mostrada</string>
<string name="error__upload__local_file_not_copied">Não foi possível copiar %1$s para a pasta local %2$s</string>
<string name="share_link_no_support_share_api">Lamentamos mas não é possível partilhar através do seu servidor. Por favor contacte o seu administrador.</string>
- <string name="share_link_file_no_exist">Não é possível partilhar este ficheiro ou pasta. Por favor, verifique se existe</string>
+ <string name="share_link_file_no_exist">Não é possivel partilhar. Por favor verifique se o ficheiro existe</string>
<string name="share_link_file_error">Ocorreu um erro enquanto tentava partilhar este ficheiro ou pasta</string>
- <string name="unshare_link_file_no_exist">Não é possível retirar a partilha deste ficheiro ou pasta. Não existe.</string>
<string name="unshare_link_file_error">Ocorreu um erro enquanto retirava a partilha deste ficheiro ou pasta</string>
<string name="activity_chooser_send_file_title">Enviar</string>
<string name="copy_link">Copiar ligação</string>
<string name="prefs_category_accounts">Contas</string>
<string name="prefs_add_account">Adicionar conta</string>
<string name="auth_redirect_non_secure_connection_title">Uma ligação segura foi redireccionada por uma rota insegura.</string>
+ <string name="saml_authentication_required_text">Autenticação necessária</string>
+ <string name="saml_authentication_wrong_pass">Password errada</string>
+ <string name="actionbar_move">Mover</string>
+ <string name="file_list_empty_moving">Não está aqui nada. Pode adicionar uma pasta!</string>
+ <string name="move_choose_button_text">Escolha</string>
+ <string name="forbidden_permissions_move">para mover este ficheiro</string>
</resources>
<string name="preview_image_error_unknown_format">Aceasta imagine nu poate fi arătată</string>
<string name="error__upload__local_file_not_copied">%1$s nu a putut fi copiat in dosarul local %2$s </string>
<string name="share_link_no_support_share_api">Ne pare rău, partajarea nu este activată pe server. Vă rugăm să contactați administratorul dvs.</string>
- <string name="share_link_file_no_exist">Acest fișier sau director nu se poate partaja. Vă rugăm, asigurați-vă că există</string>
<string name="share_link_file_error">A apărut o eroare în timp ce încerca să partajeze acest fișier sau folder</string>
- <string name="unshare_link_file_no_exist">Imposibil de anulat partajarea acestui fișier sau director. Nu există.</string>
<string name="unshare_link_file_error">A apărut o eroare în timp ce încerca să departajeze sau unshare acest fișier sau folder</string>
<string name="activity_chooser_send_file_title">Expediază</string>
<string name="copy_link">Link copiat</string>
<string name="uploader_upload_forbidden_permissions">pentru a încărca în acest folder</string>
<string name="downloader_download_file_not_found">Fișierul nu mai este disponibil pe server</string>
<string name="prefs_category_accounts">Conturi</string>
+ <string name="saml_authentication_wrong_pass">Parolă greșită</string>
+ <string name="move_choose_button_text">Alege</string>
</resources>
<string name="sync_fail_in_favourites_content">Содержимое %1$d файлов не может быть синхронизировано (конфликтов: %2$d)</string>
<string name="sync_foreign_files_forgotten_ticker">Несколько локальных файлов были забыты</string>
<string name="sync_foreign_files_forgotten_content"> Не возможно скопировать %1$d файлы из %2$s папки</string>
+ <string name="sync_foreign_files_forgotten_explanation">Начиная с версии 1.3.16, файлы, загружаемые с этого устройства, копируются в локальную директорию %1$s, чтобы предотвратить потерю данных при синхронизации файла с несколькими учётными записями.\n\nПоэтому все файлы, загруженные предыдущими версиями данного приложения, были скопированы в директорию %2$s. Однако, во время синхронизации что-то помешало завершить эту операцию. Теперь можно либо оставить файлы как есть и удалить ссылку на %3$s, либо переместить их в %1$s и сохранить ссылку на %4$s.\n\nНиже перечислены локальные файлы, и соответствующие им удалённые файлы в %5$s, к которым они привязаны.</string>
<string name="sync_current_folder_was_removed">Каталог %1$s больше не существует</string>
<string name="foreign_files_move">Переместить всё</string>
<string name="foreign_files_success">Все файлы были перемещены</string>
<string name="preview_image_error_unknown_format">Это изображение не может быть отображено</string>
<string name="error__upload__local_file_not_copied">%1$s не возможно скопировать в локальною папку %2$s </string>
<string name="share_link_no_support_share_api">К сожалению, на вашем сервере отключен совместный доступ. Пожалуйста, свяжитесь с вашим администратором.</string>
- <string name="share_link_file_no_exist">Невозможно предоставить доступ к этому файлу или каталогу. Убедитесь, что он существует</string>
<string name="share_link_file_error">Ошибка предоставления общего доступа к этому файлу или каталогу</string>
- <string name="unshare_link_file_no_exist">Невозможно снять общий доступ с этого файла или каталога. Он не существует.</string>
<string name="unshare_link_file_error">Ошибка удаления общего доступа к этому файлу или каталогу</string>
<string name="activity_chooser_send_file_title">Отправить</string>
<string name="copy_link">Копировать ссылку</string>
<string name="prefs_category_accounts">Учётные записи</string>
<string name="prefs_add_account">Добавить учетную запись</string>
<string name="auth_redirect_non_secure_connection_title">Безопасное соединение перенаправлено через небезопасный маршрут.</string>
+ <string name="saml_authentication_required_text">Требуется аутентификация </string>
+ <string name="saml_authentication_wrong_pass">Неправильный пароль</string>
+ <string name="actionbar_move">Переместить</string>
+ <string name="move_choose_button_text">Выбрать</string>
</resources>
<string name="ssl_validator_btn_details_hide">සඟවන්න</string>
<string name="empty"></string>
<string name="prefs_category_accounts">ගිණුම්</string>
+ <string name="move_choose_button_text">තෝරන්න</string>
</resources>
<string name="error__upload__local_file_not_copied">%1$s nemožno skopírovať do lokálneho priečinka %2$s</string>
<string name="share_link_no_support_share_api">Je nám to ľúto, ale zdieľanie nie je na vašom serveri povolené. Prosím kontaktujte vášho
administrátora.</string>
- <string name="share_link_file_no_exist">Nie je možné zdieľať tento súbor alebo priečinok. Prosím uistite sa že existuje</string>
<string name="share_link_file_error">Pri pokuse o zdieľanie tohto súboru alebo priečinka došlo k chybe</string>
- <string name="unshare_link_file_no_exist">Nie je možné zrušiť zdieľanie tohoto súboru alebo priečinka. Súbor alebo priečinok neexistuje.</string>
<string name="unshare_link_file_error">Pri pokuse zrušiť zdieľanie tohto súboru alebo priečinka došlo k chybe</string>
<string name="activity_chooser_send_file_title">Odoslať</string>
<string name="copy_link">Kopíruj odkaz</string>
<string name="prefs_category_accounts">Účty</string>
<string name="prefs_add_account">Pridať účet</string>
<string name="auth_redirect_non_secure_connection_title">Zabezpečené spojenie je presmerované nezabezpečenou cestou.</string>
+ <string name="saml_authentication_required_text">Vyžaduje sa overenie</string>
+ <string name="saml_authentication_wrong_pass">Nesprávne heslo</string>
+ <string name="actionbar_move">Presunúť</string>
+ <string name="move_choose_button_text">Vybrať</string>
</resources>
<string name="prefs_feedback">Odziv</string>
<string name="prefs_imprint">Natis</string>
<string name="recommend_subject">Preizkusi %1$s na pametnem telefonu!</string>
- <string name="recommend_text">\"Želim ti priporočiti program %1$s za pametni telefon!\nPrejeti ga je mogoče s te strani: %2$s\"
- </string>
<string name="auth_check_server">Preveri strežnik</string>
<string name="auth_host_url">Naslov strežnika https://…</string>
<string name="auth_username">Uporabniško ime</string>
<string name="error__upload__local_file_not_copied">Datoteke %1$s ni mogoče kopirati v krajevno mapo %2$s</string>
<string name="share_link_no_support_share_api">Souporaba je na strežniku onemogočena. Možnost lahko spreminjajo le
uporabniki s skrbniškimi dovoljenji.</string>
- <string name="share_link_file_no_exist">Ni mogoče omogočiti souporabe te datoteke ali mape. Prepričajte se, da obstaja ...</string>
+ <string name="share_link_file_no_exist">Souporaba ni mogoča. Preverite, ali datoteka obstaja.</string>
<string name="share_link_file_error">Prišlo je do napake med poskusom omogočanja souporabe te datoteke ali mape</string>
- <string name="unshare_link_file_no_exist">Ni mogoče prekiniti souporabe te datoteke ali mape, ker ne obstaja.</string>
+ <string name="unshare_link_file_no_exist">Ni mogoče prekiniti souporabe. Preverite, ali datoteka obstaja.</string>
<string name="unshare_link_file_error">Prišlo je do napake med poskusom odstranjevanja souporabe te datoteke ali mape</string>
<string name="activity_chooser_send_file_title">Pošlji</string>
<string name="copy_link">Kopiraj povezavo</string>
<string name="prefs_category_accounts">Računi</string>
<string name="prefs_add_account">Dodaj račun</string>
<string name="auth_redirect_non_secure_connection_title">Varna povezava je preusmerjena preko ne-varne poti.</string>
+ <string name="saml_authentication_required_text">Zahtevana je overitev</string>
+ <string name="saml_authentication_wrong_pass">Napačno geslo</string>
+ <string name="actionbar_move">Premakni</string>
+ <string name="file_list_empty_moving">Ni vsebine in datotek. Lahko ustvarite na primer mapo.</string>
+ <string name="move_choose_button_text">Izbor</string>
+ <string name="move_file_not_found">Ni mogoče premakniti datoteke. Preverite, ali obstaja.</string>
+ <string name="move_file_invalid_into_descendent">Ni mogoče premakniti mape v podrejeno mapo.</string>
+ <string name="move_file_invalid_overwrite">Datoteka v ciljni mapi že obstaja.</string>
+ <string name="move_file_error">Prišlo je do napake med premikanjem datoteke v mapo</string>
</resources>
<string name="activity_chooser_send_file_title">Dërgo</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Llogarit</string>
+ <string name="saml_authentication_wrong_pass">Fjalëkalim i gabuar</string>
+ <string name="move_choose_button_text">Zgjidh</string>
</resources>
<string name="activity_chooser_send_file_title">Pošalji</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Nalozi</string>
+ <string name="move_choose_button_text">Izaberi</string>
</resources>
<string name="activity_chooser_send_file_title">Пошаљи</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Налози</string>
+ <string name="move_choose_button_text">Одабери</string>
</resources>
<string name="error__upload__local_file_not_copied">%1$s kunde inte kopieras till %2$s lokal mapp</string>
<string name="share_link_no_support_share_api">Ledsen, delning är inte aktiverat på din server. Vänligen kontakta din
administratör.</string>
- <string name="share_link_file_no_exist">Kan inte dela denna fil eller mapp. Se till att den existerar</string>
<string name="share_link_file_error">Ett fel uppstod vid försök att dela denna fil eller mapp</string>
- <string name="unshare_link_file_no_exist">Kan inte ta bort delningen för denna fil eller mapp. Den existerar inte.</string>
<string name="unshare_link_file_error">Ett fel uppstod vid försök att sluta dela denna fil eller mapp</string>
<string name="activity_chooser_send_file_title">Skicka</string>
<string name="copy_link">Kopiera länk</string>
<string name="network_host_not_available">Åtgärden kunte inte slutföras, servern är ej tillgänglig</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Konton</string>
+ <string name="saml_authentication_required_text">Autentisering krävs</string>
+ <string name="saml_authentication_wrong_pass">Fel lösenord</string>
+ <string name="move_choose_button_text">Välj</string>
</resources>
<string name="conflict_dont_upload">பதிவேற்ற வேண்டாம்</string>
<string name="empty"></string>
<string name="prefs_category_accounts">கணக்குகள்</string>
+ <string name="move_choose_button_text">தெரிவுசெய்க </string>
</resources>
<string name="activity_chooser_send_file_title">ส่ง</string>
<string name="empty"></string>
<string name="prefs_category_accounts">บัญชี</string>
+ <string name="move_choose_button_text">เลือก</string>
</resources>
<string name="prefs_feedback">Geribildirim</string>
<string name="prefs_imprint">İzlenim</string>
<string name="recommend_subject">%1$s uygulamasını akıllı telefonunda dene!</string>
- <string name="recommend_text">\"Seni, akıllı telefonunda %1$s kullanmaya davet ediyorum!\nBuradan indirebilirsin: %2$s\"
- </string>
+ <string name="recommend_text">Seni, akıllı telefonunda %1$s kullanmaya davet ediyorum!\nBuradan indirebilirsin: %2$s</string>
<string name="auth_check_server">Sunucuyu Denetle</string>
<string name="auth_host_url">Sunucu adresi https://…</string>
<string name="auth_username">Kullanıcı Adı</string>
<string name="error__upload__local_file_not_copied">%1$s, %2$s yerel klasörüne kopyalanamadı</string>
<string name="share_link_no_support_share_api">Üzgünüz, paylaşım sunucunuzda etkin değil. Lütfen yöneticinizle
iletişime geçin.</string>
- <string name="share_link_file_no_exist">Bu dosya veya klasör paylaşılamıyor. Lütfen mevcut olup olmadığını denetleyin</string>
+ <string name="share_link_file_no_exist">Paylaşma başarısız. Lütfen dosyanın mevcut olup olmadığını denetleyin</string>
<string name="share_link_file_error">Bu dosya veya klasörü paylaşmaya çalışılırken bir hata oluştu</string>
- <string name="unshare_link_file_no_exist">Bu dosya veya klasörün paylaşımı kaldırılamadı. Mevcut değil.</string>
+ <string name="unshare_link_file_no_exist">Paylaşımı kaldırma başarısız. Lütfen dosyanın mevcut olup olmadığını denetleyin</string>
<string name="unshare_link_file_error">Bu dosya veya klasör paylaşımı kaldırılmaya çalışılırken bir hata oluştu</string>
<string name="activity_chooser_send_file_title">Gönder</string>
<string name="copy_link">Bağlantıyı kopyala</string>
<string name="prefs_category_accounts">Hesaplar</string>
<string name="prefs_add_account">Hesap ekle</string>
<string name="auth_redirect_non_secure_connection_title">Güvenli bağlantı, güvenli olmayan bir rotaya yönlendiriliyor.</string>
+ <string name="saml_authentication_required_text">Kimlik doğrulama gerekli</string>
+ <string name="saml_authentication_wrong_pass">Hatalı parola</string>
+ <string name="actionbar_move">Taşı</string>
+ <string name="file_list_empty_moving">Burada bir şey yok. Bir klasör ekleyebilirsiniz!</string>
+ <string name="move_choose_button_text">Seç</string>
+ <string name="move_file_not_found">Taşıma başarısız. Lütfen dosyanın mevcut olup olmadığını denetleyin</string>
+ <string name="move_file_invalid_into_descendent">Klasörü, kendi alt klasörüne taşımak mümkün değil</string>
+ <string name="move_file_invalid_overwrite">Dosya zaten hedef klasörde mevcut</string>
+ <string name="move_file_error">Bu dosya veya klasörü taşımaya çalışılırken bir hata oluştu</string>
+ <string name="forbidden_permissions_move">bu dosyayı taşımak için</string>
</resources>
<string name="clipboard_text_copied">Скопійовано в буфер обміну</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Облікові записи</string>
+ <string name="move_choose_button_text">Обрати</string>
</resources>
<string name="common_error_unknown">غیر معروف خرابی</string>
<string name="activity_chooser_send_file_title">بھجیں</string>
<string name="empty"></string>
+ <string name="move_choose_button_text">منتخب کریں</string>
</resources>
<string name="conflict_overwrite">Ghi đè lên</string>
<string name="conflict_dont_upload">Không tải lên</string>
<string name="preview_image_description">Xem trước hình ảnh</string>
- <string name="share_link_file_no_exist">Không thể chia sẻ file hoặc thư mục này. Hãy chắc chắn rằng nó tồn tại</string>
<string name="share_link_file_error">Một lỗi đã xảy ra khi thử chia sẻ file hoặc thư mục này</string>
- <string name="unshare_link_file_no_exist">Không thể gỡ chia sẻ file hoặc thư mục. Nó không tồn tại.</string>
<string name="unshare_link_file_error">Một lỗi đã xảy ra khi thử gỡ chia sẻ file hoặc thư mục này</string>
<string name="activity_chooser_send_file_title">Gởi</string>
<string name="empty"></string>
<string name="prefs_category_accounts">Tài khoản</string>
+ <string name="move_choose_button_text">Chọn</string>
</resources>
<string name="uploader_info_uploading">上传</string>
<string name="file_list_empty">这里还什么都没有。上传些东西吧!</string>
<string name="file_list_loading">载入中....</string>
+ <string name="local_file_list_empty">在该文件夹中不存在文件。</string>
<string name="filedetails_select_file">点击一个文件来显示额外的信息。</string>
<string name="filedetails_size">大小:</string>
<string name="filedetails_type">类型:</string>
<string name="preview_image_error_unknown_format">不能显示图片</string>
<string name="error__upload__local_file_not_copied">无法复制 %1$s 到本地目录 %2$s</string>
<string name="share_link_no_support_share_api">抱歉,共享功能未启用。请联系管理员。</string>
- <string name="share_link_file_no_exist">无法共享该文件或目录,请确定该文件或目录存在</string>
+ <string name="share_link_file_no_exist">无法共享。请检查文件是否存在</string>
<string name="share_link_file_error">共享文件或目录出错</string>
- <string name="unshare_link_file_no_exist">不能取消该文件或文件夹的共享,因为它不存在。</string>
+ <string name="unshare_link_file_no_exist">无法取消共享。请检查文件是否存在</string>
<string name="unshare_link_file_error">解除文件或目录共享时出错</string>
<string name="activity_chooser_send_file_title">发送</string>
<string name="copy_link">复制链接</string>
<string name="network_error_connect_timeout_exception">等待服务器响应时发生了一个错误,此操作无法完成</string>
<string name="network_host_not_available">服务器不可用,此操作无法完成</string>
<string name="empty"></string>
+ <string name="forbidden_permissions">你没有许可%s</string>
+ <string name="forbidden_permissions_rename">重命名该文件</string>
+ <string name="forbidden_permissions_delete">删除该文件</string>
+ <string name="share_link_forbidden_permissions">分享该文件</string>
+ <string name="unshare_link_forbidden_permissions">取消共享该文件</string>
+ <string name="forbidden_permissions_create">创建文件</string>
+ <string name="uploader_upload_forbidden_permissions">上传此文件夹</string>
+ <string name="downloader_download_file_not_found">该文件在服务器上不可用</string>
<string name="prefs_category_accounts">账号</string>
+ <string name="prefs_add_account">添加账号</string>
+ <string name="auth_redirect_non_secure_connection_title">安全连接是通过一个非安全路由定向的。</string>
+ <string name="saml_authentication_required_text">需要认证</string>
+ <string name="saml_authentication_wrong_pass">错误密码</string>
+ <string name="actionbar_move">移动</string>
+ <string name="file_list_empty_moving">这里还什么都没有。上传些东西吧!</string>
+ <string name="move_choose_button_text">选择(&C)...</string>
+ <string name="move_file_not_found">无法移动。请检查文件是否存在</string>
+ <string name="move_file_invalid_overwrite">该文件已经存在在目标文件夹</string>
+ <string name="move_file_error">尝试移动该文件或文件夹时发生错误</string>
+ <string name="forbidden_permissions_move">移动该文件</string>
</resources>
<string name="copy_link">複製連結</string>
<string name="empty"></string>
<string name="prefs_category_accounts">帳號</string>
+ <string name="saml_authentication_wrong_pass">密碼錯誤</string>
</resources>
<string name="error__upload__local_file_not_copied">%1$s 無法被複製到本地目錄 %2$s</string>
<string name="share_link_no_support_share_api">很抱歉, 您的伺服器並未開啟分享的功能. 請聯絡您的
伺服器管理員.</string>
- <string name="share_link_file_no_exist">無法分享這個檔案或目錄. 請檢查它們是否存在</string>
<string name="share_link_file_error">在分享檔案或目錄時發生了錯誤</string>
- <string name="unshare_link_file_no_exist">無法將這個檔案或目錄取消分享. 它並不存在.</string>
<string name="unshare_link_file_error">在取消分享檔案或目錄時發生了錯誤</string>
<string name="activity_chooser_send_file_title">寄出</string>
<string name="copy_link">複製連結</string>
<string name="network_host_not_available">這個操作無法完成, 無法使用伺服器</string>
<string name="empty"></string>
<string name="prefs_category_accounts">帳號</string>
+ <string name="saml_authentication_required_text">必須驗證</string>
+ <string name="saml_authentication_wrong_pass">密碼錯誤</string>
+ <string name="move_choose_button_text">選擇</string>
</resources>
<string name="prefs_imprint">Imprint</string>
<string name="recommend_subject">"Try %1$s on your smartphone!"</string>
- <string name="recommend_text">"I want to invite you to use %1$s on your smartphone!\nDownload here: %2$s"
- </string>
+ <string name="recommend_text">"I want to invite you to use %1$s on your smartphone!\nDownload here: %2$s"</string>
<string name="auth_check_server">Check Server</string>
<string name="auth_host_url">Server address https://…</string>
<string name="share_link_no_support_share_api">Sorry, sharing is not enabled on your server. Please contact your
administrator.</string>
- <string name="share_link_file_no_exist">Unable to share this file or folder. Please, make sure it exists</string>
+ <string name="share_link_file_no_exist">Unable to share. Please check whether the file exists</string>
<string name="share_link_file_error">An error occurred while trying to share this file or folder</string>
- <string name="unshare_link_file_no_exist">Unable to unshare this file or folder. It does not exist.</string>
+ <string name="unshare_link_file_no_exist">Unable to unshare. Please check whether the file exists</string>
<string name="unshare_link_file_error">An error occurred while trying to unshare this file or folder</string>
<string name="activity_chooser_send_file_title">Send</string>
<string name="log_mail_subject">Owncloud Android app logs</string>
<string name="log_progress_dialog_text">Loading data...</string>
+ <string name="saml_authentication_required_text">Authentication required</string>
+ <string name="saml_authentication_wrong_pass">Wrong password</string>
+ <string name="actionbar_move">Move</string>
+ <string name="file_list_empty_moving">Nothing in here. You can add a folder!</string>
+ <string name="move_choose_button_text">Choose</string>
+
+ <string name="move_file_not_found">Unable to move. Please check whether the file exists</string>
+ <string name="move_file_invalid_into_descendent">It is not possible to move a folder into a descendant</string>
+ <string name="move_file_invalid_overwrite">The file exists already in the destination folder</string>
+ <string name="move_file_error">An error occurred while trying to move this file or folder</string>
+ <string name="forbidden_permissions_move">to move this file</string>
+
</resources>
import android.view.View.OnTouchListener;\r
import android.view.Window;\r
import android.view.inputmethod.EditorInfo;\r
+import android.webkit.HttpAuthHandler;\r
import android.webkit.SslErrorHandler;\r
+import android.webkit.WebView;\r
import android.widget.Button;\r
import android.widget.CheckBox;\r
import android.widget.EditText;\r
import com.owncloud.android.operations.OAuth2GetAccessToken;\r
import com.owncloud.android.services.OperationsService;\r
import com.owncloud.android.services.OperationsService.OperationsServiceBinder;\r
+import com.owncloud.android.ui.dialog.CredentialsDialogFragment;\r
import com.owncloud.android.ui.dialog.IndeterminateProgressDialog;\r
import com.owncloud.android.ui.dialog.SamlWebViewDialog;\r
import com.owncloud.android.ui.dialog.SslUntrustedCertDialog;\r
private static final String UNTRUSTED_CERT_DIALOG_TAG = "UNTRUSTED_CERT_DIALOG";\r
private static final String SAML_DIALOG_TAG = "SAML_DIALOG";\r
private static final String WAIT_DIALOG_TAG = "WAIT_DIALOG";\r
+ private static final String CREDENTIALS_DIALOG_TAG = "CREDENTIALS_DIALOG";\r
+ private static final String KEY_AUTH_IS_FIRST_ATTEMPT_TAG = "KEY_AUTH_IS_FIRST_ATTEMPT";\r
\r
\r
/// parameters from EXTRAs in starter Intent\r
\r
private String mAuthToken = "";\r
\r
+ private boolean mIsFirstAuthAttempt;\r
+\r
\r
/// Identifier of operation in progress which result shouldn't be lost \r
private long mWaitingForOpId = Long.MAX_VALUE;\r
super.onCreate(savedInstanceState);\r
getWindow().requestFeature(Window.FEATURE_NO_TITLE);\r
\r
+ mIsFirstAuthAttempt = true;\r
+\r
// bind to Operations Service\r
mOperationsServiceConnection = new OperationsServiceConnection();\r
if (!bindService(new Intent(this, OperationsService.class), \r
} else {\r
mAuthTokenType = savedInstanceState.getString(KEY_AUTH_TOKEN_TYPE);\r
mWaitingForOpId = savedInstanceState.getLong(KEY_WAITING_FOR_OP_ID);\r
+ mIsFirstAuthAttempt = savedInstanceState.getBoolean(KEY_AUTH_IS_FIRST_ATTEMPT_TAG);\r
}\r
\r
/// load user interface\r
outState.putInt(KEY_AUTH_STATUS_TEXT, mAuthStatusText);\r
outState.putString(KEY_AUTH_TOKEN, mAuthToken);\r
\r
+ /// authentication\r
+ outState.putBoolean(KEY_AUTH_IS_FIRST_ATTEMPT_TAG, mIsFirstAuthAttempt);\r
+\r
//Log_OC.wtf(TAG, "onSaveInstanceState end" );\r
}\r
\r
dialog.show(ft, UNTRUSTED_CERT_DIALOG_TAG);\r
}\r
\r
+\r
/**\r
* Show untrusted cert dialog \r
*/\r
}\r
\r
}\r
- \r
+\r
+ /**\r
+ * Create and show dialog for request authentication to the user\r
+ * @param webView\r
+ * @param handler\r
+ */\r
+ public void createAuthenticationDialog(WebView webView, HttpAuthHandler handler) {\r
+\r
+ // Show a dialog with the certificate info\r
+ CredentialsDialogFragment dialog = CredentialsDialogFragment.newInstanceForCredentials(webView, handler);\r
+ FragmentManager fm = getSupportFragmentManager();\r
+ FragmentTransaction ft = fm.beginTransaction();\r
+ ft.addToBackStack(null);\r
+ dialog.setCancelable(false);\r
+ dialog.show(ft, CREDENTIALS_DIALOG_TAG);\r
+\r
+ if (!mIsFirstAuthAttempt) {\r
+ Toast.makeText(getApplicationContext(), getText(R.string.saml_authentication_wrong_pass), Toast.LENGTH_LONG).show();\r
+ } else {\r
+ mIsFirstAuthAttempt = false;\r
+ }\r
+ }\r
+\r
+ /**\r
+ * For retrieving the clicking on authentication cancel button\r
+ */\r
+ public void doNegativeAuthenticatioDialogClick(){\r
+ mIsFirstAuthAttempt = true;\r
+ }\r
}\r
private WeakReference<SsoWebViewClientListener> mListenerRef;
private String mTargetUrl;
private String mLastReloadedUrlAtError;
+
public SsoWebViewClient (Context context, Handler listenerHandler, SsoWebViewClientListener listener) {
mContext = context;
@Override
public void onPageStarted (WebView view, String url, Bitmap favicon) {
Log_OC.d(TAG, "onPageStarted : " + url);
+ view.clearCache(true);
super.onPageStarted(view, url, favicon);
}
@Override
public void onReceivedHttpAuthRequest (WebView view, HttpAuthHandler handler, String host, String realm) {
Log_OC.d(TAG, "onReceivedHttpAuthRequest : " + host);
+
+ ((AuthenticatorActivity)mContext).createAuthenticationDialog(view, handler);
}
@Override
Log_OC.d(TAG, "shouldOverrideKeyEvent : " + event);
return false;
}
-
}
}
+ public void moveLocalFile(OCFile file, String targetPath, String targetParentPath) {
+
+ if (file != null && file.fileExists() && !OCFile.ROOT_PATH.equals(file.getFileName())) {
+
+ OCFile targetParent = getFileByPath(targetParentPath);
+ if (targetParent == null) {
+ // TODO panic
+ }
+
+ /// 1. get all the descendants of the moved element in a single QUERY
+ Cursor c = null;
+ if (getContentProviderClient() != null) {
+ try {
+ c = getContentProviderClient().query(
+ ProviderTableMeta.CONTENT_URI,
+ null,
+ ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " +
+ ProviderTableMeta.FILE_PATH + " LIKE ? ",
+ new String[] {
+ mAccount.name,
+ file.getRemotePath() + "%"
+ },
+ ProviderTableMeta.FILE_PATH + " ASC "
+ );
+ } catch (RemoteException e) {
+ Log_OC.e(TAG, e.getMessage());
+ }
+
+ } else {
+ c = getContentResolver().query(
+ ProviderTableMeta.CONTENT_URI,
+ null,
+ ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " +
+ ProviderTableMeta.FILE_PATH + " LIKE ? ",
+ new String[] {
+ mAccount.name,
+ file.getRemotePath() + "%"
+ },
+ ProviderTableMeta.FILE_PATH + " ASC "
+ );
+ }
+
+ /// 2. prepare a batch of update operations to change all the descendants
+ ArrayList<ContentProviderOperation> operations =
+ new ArrayList<ContentProviderOperation>(c.getCount());
+ String defaultSavePath = FileStorageUtils.getSavePath(mAccount.name);
+ if (c.moveToFirst()) {
+ int lengthOfOldPath = file.getRemotePath().length();
+ int lengthOfOldStoragePath = defaultSavePath.length() + lengthOfOldPath;
+ do {
+ ContentValues cv = new ContentValues(); // keep construction in the loop
+ OCFile child = createFileInstance(c);
+ cv.put(
+ ProviderTableMeta.FILE_PATH,
+ targetPath + child.getRemotePath().substring(lengthOfOldPath)
+ );
+ if (child.getStoragePath() != null &&
+ child.getStoragePath().startsWith(defaultSavePath)) {
+ // update link to downloaded content - but local move is not done here!
+ cv.put(
+ ProviderTableMeta.FILE_STORAGE_PATH,
+ defaultSavePath + targetPath +
+ child.getStoragePath().substring(lengthOfOldStoragePath)
+ );
+ }
+ if (child.getRemotePath().equals(file.getRemotePath())) {
+ cv.put(
+ ProviderTableMeta.FILE_PARENT,
+ targetParent.getFileId()
+ );
+ }
+ operations.add(
+ ContentProviderOperation.newUpdate(ProviderTableMeta.CONTENT_URI).
+ withValues(cv).
+ withSelection(
+ ProviderTableMeta._ID + "=?",
+ new String[] { String.valueOf(child.getFileId()) }
+ )
+ .build());
+
+ } while (c.moveToNext());
+ }
+ c.close();
+
+ /// 3. apply updates in batch
+ try {
+ if (getContentResolver() != null) {
+ getContentResolver().applyBatch(MainApp.getAuthority(), operations);
+
+ } else {
+ getContentProviderClient().applyBatch(operations);
+ }
+
+ } catch (Exception e) {
+ Log_OC.e(
+ TAG,
+ "Fail to update " + file.getFileId() + " and descendants in database",
+ e
+ );
+ }
+
+ /// 4. move in local file system
+ String localPath = FileStorageUtils.getDefaultSavePathFor(mAccount.name, file);
+ File localFile = new File(localPath);
+ boolean renamed = false;
+ if (localFile.exists()) {
+ File targetFile = new File(defaultSavePath + targetPath);
+ File targetFolder = targetFile.getParentFile();
+ if (!targetFolder.exists()) {
+ targetFolder.mkdirs();
+ }
+ renamed = localFile.renameTo(targetFile);
+ }
+ Log_OC.d(TAG, "Local file RENAMED : " + renamed);
+
+ }
+
+ }
+
+
private Vector<OCFile> getFolderContent(long parentId) {
Vector<OCFile> ret = new Vector<OCFile>();
*/
//}
}
+
}
} else {
toShow.add(R.id.action_rename_file);
}
+
+ // MOVE
+ if (mFile == null || downloading || uploading) {
+ toHide.add(R.id.action_move);
+
+ } else {
+ toShow.add(R.id.action_move);
+ }
// REMOVE
if (mFile == null || downloading || uploading) {
} else if (uploaderBinder != null && uploaderBinder.isUploading(account, file)) {
uploaderBinder.cancel(account, file);
}
- }
+ }
+
+ /**
+ * Start move file operation
+ * @param newfile File where it is going to be moved
+ * @param currentFile File with the previous info
+ */
+ public void moveFile(OCFile newfile, OCFile currentFile) {
+ // Move files
+ Intent service = new Intent(mFileActivity, OperationsService.class);
+ service.setAction(OperationsService.ACTION_MOVE_FILE);
+ service.putExtra(OperationsService.EXTRA_NEW_PARENT_PATH, newfile.getRemotePath());
+ service.putExtra(OperationsService.EXTRA_REMOTE_PATH, currentFile.getRemotePath());
+ service.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
+ mWaitingForOpId = mFileActivity.getOperationsServiceBinder().newOperation(service);
+
+ mFileActivity.showLoadingDialog();
+ }
public long getOpIdWaitingFor() {
import android.webkit.MimeTypeMap;
import com.owncloud.android.R;
+import com.owncloud.android.authentication.AccountUtils;
import com.owncloud.android.authentication.AuthenticatorActivity;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
return Service.START_NOT_STICKY;
}
Account account = intent.getParcelableExtra(KEY_ACCOUNT);
+ if (!AccountUtils.exists(account, getApplicationContext())) {
+ return Service.START_NOT_STICKY;
+ }
String[] localPaths = null, remotePaths = null, mimeTypes = null;
OCFile[] files = null;
--- /dev/null
+/* ownCloud Android client application
+ * Copyright (C) 2012-2014 ownCloud Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.operations;
+
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
+import com.owncloud.android.lib.resources.files.MoveRemoteFileOperation;
+import com.owncloud.android.operations.common.SyncOperation;
+
+import android.accounts.Account;
+
+
+/**
+ * Operation mmoving an {@link OCFile} to a different folder.
+ *
+ * @author David A. Velasco
+ */
+public class MoveFileOperation extends SyncOperation {
+
+ //private static final String TAG = MoveFileOperation.class.getSimpleName();
+
+ private String mSrcPath;
+ private String mTargetParentPath;
+
+ private OCFile mFile;
+
+
+
+ /**
+ * Constructor
+ *
+ * @param path Remote path of the {@link OCFile} to move.
+ * @param newParentPath Path to the folder where the file will be moved into.
+ * @param account OwnCloud account containing both the file and the target folder
+ */
+ public MoveFileOperation(String srcPath, String targetParentPath, Account account) {
+ mSrcPath = srcPath;
+ mTargetParentPath = targetParentPath;
+ if (!mTargetParentPath.endsWith(OCFile.PATH_SEPARATOR)) {
+ mTargetParentPath += OCFile.PATH_SEPARATOR;
+ }
+
+ mFile = null;
+ }
+
+ /**
+ * Performs the operation.
+ *
+ * @param client Client object to communicate with the remote ownCloud server.
+ */
+ @Override
+ protected RemoteOperationResult run(OwnCloudClient client) {
+ RemoteOperationResult result = null;
+
+ /// 1. check move validity
+ if (mTargetParentPath.startsWith(mSrcPath)) {
+ return new RemoteOperationResult(ResultCode.INVALID_MOVE_INTO_DESCENDANT);
+ }
+ mFile = getStorageManager().getFileByPath(mSrcPath);
+ if (mFile == null) {
+ return new RemoteOperationResult(ResultCode.FILE_NOT_FOUND);
+ }
+
+ /// 2. remote move
+ String targetPath = mTargetParentPath + mFile.getFileName();
+ if (mFile.isFolder()) {
+ targetPath += OCFile.PATH_SEPARATOR;
+ }
+ MoveRemoteFileOperation operation = new MoveRemoteFileOperation(
+ mSrcPath,
+ targetPath,
+ false
+ );
+ result = operation.execute(client);
+
+ /// 3. local move
+ if (result.isSuccess()) {
+ getStorageManager().moveLocalFile(mFile, targetPath, mTargetParentPath);
+ }
+ // TODO handle ResultCode.PARTIAL_MOVE_DONE in client Activity, for the moment
+
+ return result;
+ }
+
+
+}
import com.owncloud.android.operations.CreateFolderOperation;
import com.owncloud.android.operations.CreateShareOperation;
import com.owncloud.android.operations.GetServerInfoOperation;
+import com.owncloud.android.operations.MoveFileOperation;
import com.owncloud.android.operations.OAuth2GetAccessToken;
import com.owncloud.android.operations.RemoveFileOperation;
import com.owncloud.android.operations.RenameFileOperation;
public static final String EXTRA_CREATE_FULL_PATH = "CREATE_FULL_PATH";
public static final String EXTRA_SYNC_FILE_CONTENTS = "SYNC_FILE_CONTENTS";
public static final String EXTRA_RESULT = "RESULT";
+ public static final String EXTRA_NEW_PARENT_PATH = "NEW_PARENT_PATH";
// TODO review if ALL OF THEM are necessary
public static final String EXTRA_SUCCESS_IF_ABSENT = "SUCCESS_IF_ABSENT";
public static final String ACTION_REMOVE = "REMOVE";
public static final String ACTION_CREATE_FOLDER = "CREATE_FOLDER";
public static final String ACTION_SYNC_FILE = "SYNC_FILE";
+ public static final String ACTION_MOVE_FILE = "MOVE_FILE";
public static final String ACTION_OPERATION_ADDED = OperationsService.class.getName() + ".OPERATION_ADDED";
public static final String ACTION_OPERATION_FINISHED = OperationsService.class.getName() + ".OPERATION_FINISHED";
String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH);
boolean syncFileContents = operationIntent.getBooleanExtra(EXTRA_SYNC_FILE_CONTENTS, true);
operation = new SynchronizeFileOperation(remotePath, account, syncFileContents, getApplicationContext());
+ } else if (action.equals(ACTION_MOVE_FILE)) {
+ // Move file/folder
+ String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH);
+ String newParentPath = operationIntent.getStringExtra(EXTRA_NEW_PARENT_PATH);
+ operation = new MoveFileOperation(remotePath,newParentPath,account);
}
}
private static final String DIALOG_WAIT_TAG = "DIALOG_WAIT";
private static final String KEY_WAITING_FOR_OP_ID = "WAITING_FOR_OP_ID";;
+ protected static final long DELAY_TO_REQUEST_OPERATION_ON_ACTIVITY_RESULTS = 200;
+
/** OwnCloud {@link Account} where the main {@link OCFile} handled by the activity is located. */
private Account mAccount;
}
- private void updateFileFromDB(){
- OCFile file = getStorageManager().getFileByPath(getFile().getRemotePath());
- if (file != null) {
- setFile(file);
- }
+ protected void updateFileFromDB(){
+ OCFile file = getFile();
+ if (file != null) {
+ file = getStorageManager().getFileByPath(file.getRemotePath());
+ setFile(file);
+ }
}
/**
import java.io.File;
import java.io.IOException;
+import org.apache.commons.httpclient.methods.PostMethod;
+
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AuthenticatorException;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
+import android.support.v4.widget.SwipeRefreshLayout;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.operations.CreateFolderOperation;
import com.owncloud.android.operations.CreateShareOperation;
+import com.owncloud.android.operations.MoveFileOperation;
import com.owncloud.android.operations.RemoveFileOperation;
import com.owncloud.android.operations.RenameFileOperation;
import com.owncloud.android.operations.SynchronizeFileOperation;
*/
public class FileDisplayActivity extends HookActivity implements
-FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener {
-
+FileFragment.ContainerActivity, OnNavigationListener,
+OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener {
+
private ArrayAdapter<String> mDirectories;
private SyncBroadcastReceiver mSyncBroadcastReceiver;
private static final int ACTION_SELECT_CONTENT_FROM_APPS = 1;
private static final int ACTION_SELECT_MULTIPLE_FILES = 2;
+ public static final int ACTION_MOVE_FILES = 3;
private static final String TAG = FileDisplayActivity.class.getSimpleName();
} else if (requestCode == ACTION_SELECT_MULTIPLE_FILES && (resultCode == RESULT_OK || resultCode == UploadFilesActivity.RESULT_OK_AND_MOVE)) {
requestMultipleUpload(data, resultCode);
+ } else if (requestCode == ACTION_MOVE_FILES && (resultCode == RESULT_OK ||
+ resultCode == MoveActivity.RESULT_OK_AND_MOVE)){
+
+ final Intent fData = data;
+ final int fResultCode = resultCode;
+ getHandler().postDelayed(
+ new Runnable() {
+ @Override
+ public void run() {
+ requestMoveOperation(fData, fResultCode);
+ }
+ },
+ DELAY_TO_REQUEST_OPERATION_ON_ACTIVITY_RESULTS
+ );
}
}
startService(i);
}
+ /**
+ * Request the operation for moving the file/folder from one path to another
+ *
+ * @param data Intent received
+ * @param resultCode Result code received
+ */
+ private void requestMoveOperation(Intent data, int resultCode) {
+ OCFile folderToMoveAt = (OCFile) data.getParcelableExtra(MoveActivity.EXTRA_CURRENT_FOLDER);
+ OCFile targetFile = (OCFile) data.getParcelableExtra(MoveActivity.EXTRA_TARGET_FILE);
+ getFileOperationsHelper().moveFile(folderToMoveAt, targetFile);
+ }
+
@Override
public void onBackPressed() {
OCFileListFragment listOfFiles = getListOfFilesFragment();
} else if (operation instanceof UnshareLinkOperation) {
onUnshareLinkOperationFinish((UnshareLinkOperation)operation, result);
- }
+ } else if (operation instanceof MoveFileOperation) {
+ onMoveFileOperationFinish((MoveFileOperation)operation, result);
+ }
}
/**
- * Updates the view associated to the activity after the finish of an operation trying create a new folder
+ * Updates the view associated to the activity after the finish of an operation trying to move a
+ * file.
*
- * @param operation Creation operation performed.
- * @param result Result of the creation.
+ * @param operation Move operation performed.
+ * @param result Result of the move operation.
*/
- private void onCreateFolderOperationFinish(CreateFolderOperation operation, RemoteOperationResult result) {
+ private void onMoveFileOperationFinish(MoveFileOperation operation, RemoteOperationResult result) {
if (result.isSuccess()) {
dismissLoadingDialog();
refreshListOfFilesFragment();
}
}
+ /**
+ * Updates the view associated to the activity after the finish of an operation trying create a new folder
+ *
+ * @param operation Creation operation performed.
+ * @param result Result of the creation.
+ */
+ private void onCreateFolderOperationFinish(CreateFolderOperation operation, RemoteOperationResult result) {
+ if (result.isSuccess()) {
+ dismissLoadingDialog();
+ refreshListOfFilesFragment();
+ } else {
+ dismissLoadingDialog();
+ try {
+ Toast msg = Toast.makeText(FileDisplayActivity.this,
+ ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
+ Toast.LENGTH_LONG);
+ msg.show();
+
+ } catch (NotFoundException e) {
+ Log_OC.e(TAG, "Error while trying to show fail message " , e);
+ }
+ }
+ }
+
/**
* {@inheritDoc}
onTransferStateChanged(file, false, false);
}
+ @Override
+ public void onRefresh() {
+ OCFileListFragment listOfFiles = getListOfFilesFragment();
+ if (listOfFiles != null) {
+ OCFile folder = listOfFiles.getCurrentFile();
+ if (folder != null) {
+ /*mFile = mContainerActivity.getStorageManager().getFileById(mFile.getFileId());
+ listDirectory(mFile);*/
+ startSyncFolderOperation(folder);
+ }
+ }
+ }
+
}
--- /dev/null
+/* ownCloud Android client application
+ * Copyright (C) 2012-2014 ownCloud Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.ui.activity;
+
+import java.io.IOException;
+
+import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.accounts.AuthenticatorException;
+import android.accounts.OperationCanceledException;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.res.Resources.NotFoundException;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentTransaction;
+import android.support.v4.widget.SwipeRefreshLayout;
+import android.util.Log;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.Button;
+import android.widget.Toast;
+
+import com.actionbarsherlock.app.ActionBar;
+import com.actionbarsherlock.view.Menu;
+import com.actionbarsherlock.view.MenuInflater;
+import com.actionbarsherlock.view.MenuItem;
+import com.actionbarsherlock.view.Window;
+import com.owncloud.android.R;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.common.OwnCloudAccount;
+import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
+import com.owncloud.android.lib.common.OwnCloudCredentials;
+import com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException;
+import com.owncloud.android.lib.common.operations.RemoteOperation;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
+import com.owncloud.android.operations.CreateFolderOperation;
+import com.owncloud.android.operations.SynchronizeFolderOperation;
+import com.owncloud.android.syncadapter.FileSyncAdapter;
+import com.owncloud.android.ui.dialog.CreateFolderDialogFragment;
+import com.owncloud.android.ui.fragment.FileFragment;
+import com.owncloud.android.ui.fragment.OCFileListFragment;
+import com.owncloud.android.utils.DisplayUtils;
+import com.owncloud.android.utils.ErrorMessageAdapter;
+import com.owncloud.android.lib.common.utils.Log_OC;
+
+public class MoveActivity extends HookActivity implements FileFragment.ContainerActivity,
+ OnClickListener, SwipeRefreshLayout.OnRefreshListener {
+
+ public static final String EXTRA_CURRENT_FOLDER = UploadFilesActivity.class.getCanonicalName() + ".EXTRA_CURRENT_FOLDER";
+ public static final String EXTRA_TARGET_FILE = UploadFilesActivity.class.getCanonicalName() + "EXTRA_TARGET_FILE";
+
+ public static final int RESULT_OK_AND_MOVE = 1;
+
+ private SyncBroadcastReceiver mSyncBroadcastReceiver;
+
+ private static final String TAG = MoveActivity.class.getSimpleName();
+
+ private static final String TAG_LIST_OF_FOLDERS = "LIST_OF_FOLDERS";
+
+ private boolean mSyncInProgress = false;
+
+ private Button mCancelBtn;
+ private Button mChooseBtn;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ Log_OC.d(TAG, "onCreate() start");
+ requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
+
+ super.onCreate(savedInstanceState);
+
+ setContentView(R.layout.files_move);
+
+ if (savedInstanceState == null) {
+ createFragments();
+ }
+
+ // sets callback listeners for UI elements
+ initControls();
+
+ // Action bar setup
+ ActionBar actionBar = getSupportActionBar();
+ actionBar.setDisplayShowTitleEnabled(true);
+ actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
+ setSupportProgressBarIndeterminateVisibility(mSyncInProgress);
+ // always AFTER setContentView(...) ; to work around bug in its implementation
+
+ // sets message for empty list of folders
+ setBackgroundText();
+
+ Log_OC.d(TAG, "onCreate() end");
+
+ }
+
+ @Override
+ protected void onStart() {
+ super.onStart();
+ getSupportActionBar().setIcon(DisplayUtils.getSeasonalIconId());
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ }
+
+ /**
+ * Called when the ownCloud {@link Account} associated to the Activity was just updated.
+ */
+ @Override
+ protected void onAccountSet(boolean stateWasRecovered) {
+ super.onAccountSet(stateWasRecovered);
+ if (getAccount() != null) {
+
+ updateFileFromDB();
+
+ OCFile folder = getFile();
+ if (folder == null || !folder.isFolder()) {
+ // fall back to root folder
+ setFile(getStorageManager().getFileByPath(OCFile.ROOT_PATH));
+ folder = getFile();
+ }
+
+ if (!stateWasRecovered) {
+ OCFileListFragment listOfFolders = getListOfFilesFragment();
+ listOfFolders.listDirectory(folder);
+
+ startSyncFolderOperation(folder);
+ }
+
+ updateNavigationElementsInActionBar();
+ }
+ }
+
+ private void createFragments() {
+ OCFileListFragment listOfFiles = new OCFileListFragment();
+ Bundle args = new Bundle();
+ args.putBoolean(OCFileListFragment.ARG_JUST_FOLDERS, true);
+ args.putBoolean(OCFileListFragment.ARG_ALLOW_CONTEXTUAL_ACTIONS, false);
+ listOfFiles.setArguments(args);
+ FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
+ transaction.add(R.id.fragment_container, listOfFiles, TAG_LIST_OF_FOLDERS);
+ transaction.commit();
+ }
+
+ /**
+ * Show a text message on screen view for notifying user if content is
+ * loading or folder is empty
+ */
+ private void setBackgroundText() {
+ OCFileListFragment listFragment = getListOfFilesFragment();
+ if (listFragment != null) {
+ int message = R.string.file_list_loading;
+ if (!mSyncInProgress) {
+ // In case folder list is empty
+ message = R.string.file_list_empty_moving;
+ }
+ listFragment.setMessageForEmptyList(getString(message));
+ } else {
+ Log.e(TAG, "OCFileListFragment is null");
+ }
+ }
+
+ private OCFileListFragment getListOfFilesFragment() {
+ Fragment listOfFiles = getSupportFragmentManager().findFragmentByTag(MoveActivity.TAG_LIST_OF_FOLDERS);
+ if (listOfFiles != null) {
+ return (OCFileListFragment)listOfFiles;
+ }
+ Log_OC.wtf(TAG, "Access to unexisting list of files fragment!!");
+ return null;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ *
+ * Updates action bar and second fragment, if in dual pane mode.
+ */
+ @Override
+ public void onBrowsedDownTo(OCFile directory) {
+ setFile(directory);
+ updateNavigationElementsInActionBar();
+ // Sync Folder
+ startSyncFolderOperation(directory);
+
+ }
+
+
+ public void startSyncFolderOperation(OCFile folder) {
+ long currentSyncTime = System.currentTimeMillis();
+
+ mSyncInProgress = true;
+
+ // perform folder synchronization
+ RemoteOperation synchFolderOp = new SynchronizeFolderOperation( folder,
+ currentSyncTime,
+ false,
+ getFileOperationsHelper().isSharedSupported(),
+ getStorageManager(),
+ getAccount(),
+ getApplicationContext()
+ );
+ synchFolderOp.execute(getAccount(), this, null, null);
+
+ setSupportProgressBarIndeterminateVisibility(true);
+
+ setBackgroundText();
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ Log_OC.e(TAG, "onResume() start");
+
+ // refresh list of files
+ refreshListOfFilesFragment();
+
+ // Listen for sync messages
+ IntentFilter syncIntentFilter = new IntentFilter(FileSyncAdapter.EVENT_FULL_SYNC_START);
+ syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_END);
+ syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_FOLDER_CONTENTS_SYNCED);
+ syncIntentFilter.addAction(SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_CONTENTS_SYNCED);
+ syncIntentFilter.addAction(SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED);
+ mSyncBroadcastReceiver = new SyncBroadcastReceiver();
+ registerReceiver(mSyncBroadcastReceiver, syncIntentFilter);
+
+ Log_OC.d(TAG, "onResume() end");
+ }
+
+ @Override
+ protected void onPause() {
+ Log_OC.e(TAG, "onPause() start");
+ if (mSyncBroadcastReceiver != null) {
+ unregisterReceiver(mSyncBroadcastReceiver);
+ //LocalBroadcastManager.getInstance(this).unregisterReceiver(mSyncBroadcastReceiver);
+ mSyncBroadcastReceiver = null;
+ }
+
+ Log_OC.d(TAG, "onPause() end");
+ super.onPause();
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ MenuInflater inflater = getSherlock().getMenuInflater();
+ inflater.inflate(R.menu.main_menu, menu);
+ menu.findItem(R.id.action_upload).setVisible(false);
+ menu.findItem(R.id.action_settings).setVisible(false);
+ menu.findItem(R.id.action_sync_account).setVisible(false);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ boolean retval = true;
+ switch (item.getItemId()) {
+ case R.id.action_create_dir: {
+ CreateFolderDialogFragment dialog =
+ CreateFolderDialogFragment.newInstance(getCurrentFolder());
+ dialog.show(
+ getSupportFragmentManager(),
+ CreateFolderDialogFragment.CREATE_FOLDER_FRAGMENT
+ );
+ break;
+ }
+ case android.R.id.home: {
+ OCFile currentDir = getCurrentFolder();
+ if(currentDir != null && currentDir.getParentId() != 0) {
+ onBackPressed();
+ }
+ break;
+ }
+ default:
+ retval = super.onOptionsItemSelected(item);
+ }
+ return retval;
+ }
+
+ private OCFile getCurrentFolder() {
+ OCFile file = getFile();
+ if (file != null) {
+ if (file.isFolder()) {
+ return file;
+ } else if (getStorageManager() != null) {
+ String parentPath = file.getRemotePath().substring(0, file.getRemotePath().lastIndexOf(file.getFileName()));
+ return getStorageManager().getFileByPath(parentPath);
+ }
+ }
+ return null;
+ }
+
+ protected void refreshListOfFilesFragment() {
+ OCFileListFragment fileListFragment = getListOfFilesFragment();
+ if (fileListFragment != null) {
+ fileListFragment.listDirectory();
+ }
+ }
+
+ public void browseToRoot() {
+ OCFileListFragment listOfFiles = getListOfFilesFragment();
+ if (listOfFiles != null) { // should never be null, indeed
+ OCFile root = getStorageManager().getFileByPath(OCFile.ROOT_PATH);
+ listOfFiles.listDirectory(root);
+ setFile(listOfFiles.getCurrentFile());
+ updateNavigationElementsInActionBar();
+ startSyncFolderOperation(root);
+ }
+ }
+
+ @Override
+ public void onBackPressed() {
+ OCFileListFragment listOfFiles = getListOfFilesFragment();
+ if (listOfFiles != null) { // should never be null, indeed
+ int levelsUp = listOfFiles.onBrowseUp();
+ if (levelsUp == 0) {
+ finish();
+ return;
+ }
+ setFile(listOfFiles.getCurrentFile());
+ updateNavigationElementsInActionBar();
+ }
+ }
+
+ private void updateNavigationElementsInActionBar() {
+ ActionBar actionBar = getSupportActionBar();
+ OCFile currentDir = getCurrentFolder();
+ boolean atRoot = (currentDir == null || currentDir.getParentId() == 0);
+ actionBar.setDisplayHomeAsUpEnabled(!atRoot);
+ actionBar.setHomeButtonEnabled(!atRoot);
+ actionBar.setTitle(
+ atRoot
+ ? getString(R.string.default_display_name_for_root_folder)
+ : currentDir.getFileName()
+ );
+ }
+
+ /**
+ * Set per-view controllers
+ */
+ private void initControls(){
+ mCancelBtn = (Button) findViewById(R.id.move_files_btn_cancel);
+ mCancelBtn.setOnClickListener(this);
+ mChooseBtn = (Button) findViewById(R.id.move_files_btn_choose);
+ mChooseBtn.setOnClickListener(this);
+ }
+
+ @Override
+ public void onClick(View v) {
+ if (v == mCancelBtn) {
+ finish();
+ } else if (v == mChooseBtn) {
+ Intent i = getIntent();
+ OCFile targetFile = (OCFile) i.getParcelableExtra(MoveActivity.EXTRA_TARGET_FILE);
+
+ Intent data = new Intent();
+ data.putExtra(EXTRA_CURRENT_FOLDER, getCurrentFolder());
+ data.putExtra(EXTRA_TARGET_FILE, targetFile);
+ setResult(RESULT_OK_AND_MOVE, data);
+ finish();
+ }
+ }
+
+
+ @Override
+ public void onRemoteOperationFinish(RemoteOperation operation, RemoteOperationResult result) {
+ super.onRemoteOperationFinish(operation, result);
+
+ if (operation instanceof CreateFolderOperation) {
+ onCreateFolderOperationFinish((CreateFolderOperation)operation, result);
+
+ }
+ }
+
+
+ /**
+ * Updates the view associated to the activity after the finish of an operation trying
+ * to create a new folder.
+ *
+ * @param operation Creation operation performed.
+ * @param result Result of the creation.
+ */
+ private void onCreateFolderOperationFinish(
+ CreateFolderOperation operation, RemoteOperationResult result
+ ) {
+
+ if (result.isSuccess()) {
+ dismissLoadingDialog();
+ refreshListOfFilesFragment();
+ } else {
+ dismissLoadingDialog();
+ try {
+ Toast msg = Toast.makeText(MoveActivity.this,
+ ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()),
+ Toast.LENGTH_LONG);
+ msg.show();
+
+ } catch (NotFoundException e) {
+ Log_OC.e(TAG, "Error while trying to show fail message " , e);
+ }
+ }
+ }
+
+
+
+ private class SyncBroadcastReceiver extends BroadcastReceiver {
+
+ /**
+ * {@link BroadcastReceiver} to enable syncing feedback in UI
+ */
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ try {
+ String event = intent.getAction();
+ Log_OC.d(TAG, "Received broadcast " + event);
+ String accountName = intent.getStringExtra(FileSyncAdapter.EXTRA_ACCOUNT_NAME);
+ String synchFolderRemotePath = intent.getStringExtra(FileSyncAdapter.EXTRA_FOLDER_PATH);
+ RemoteOperationResult synchResult = (RemoteOperationResult)intent.getSerializableExtra(FileSyncAdapter.EXTRA_RESULT);
+ boolean sameAccount = (getAccount() != null && accountName.equals(getAccount().name) && getStorageManager() != null);
+
+ if (sameAccount) {
+
+ if (FileSyncAdapter.EVENT_FULL_SYNC_START.equals(event)) {
+ mSyncInProgress = true;
+
+ } else {
+ OCFile currentFile = (getFile() == null) ? null : getStorageManager().getFileByPath(getFile().getRemotePath());
+ OCFile currentDir = (getCurrentFolder() == null) ? null : getStorageManager().getFileByPath(getCurrentFolder().getRemotePath());
+
+ if (currentDir == null) {
+ // current folder was removed from the server
+ Toast.makeText( MoveActivity.this,
+ String.format(getString(R.string.sync_current_folder_was_removed), getCurrentFolder().getFileName()),
+ Toast.LENGTH_LONG)
+ .show();
+ browseToRoot();
+
+ } else {
+ if (currentFile == null && !getFile().isFolder()) {
+ // currently selected file was removed in the server, and now we know it
+ currentFile = currentDir;
+ }
+
+ if (synchFolderRemotePath != null && currentDir.getRemotePath().equals(synchFolderRemotePath)) {
+ OCFileListFragment fileListFragment = getListOfFilesFragment();
+ if (fileListFragment != null) {
+ fileListFragment.listDirectory(currentDir);
+ }
+ }
+ setFile(currentFile);
+ }
+
+ mSyncInProgress = (!FileSyncAdapter.EVENT_FULL_SYNC_END.equals(event) && !SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED.equals(event));
+
+ if (SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_CONTENTS_SYNCED.
+ equals(event) &&
+ /// TODO refactor and make common
+ synchResult != null && !synchResult.isSuccess() &&
+ (synchResult.getCode() == ResultCode.UNAUTHORIZED ||
+ synchResult.isIdPRedirection() ||
+ (synchResult.isException() && synchResult.getException()
+ instanceof AuthenticatorException))) {
+
+ OwnCloudClient client = null;
+ try {
+ OwnCloudAccount ocAccount =
+ new OwnCloudAccount(getAccount(), context);
+ client = (OwnCloudClientManagerFactory.getDefaultSingleton().
+ removeClientFor(ocAccount));
+ // TODO get rid of these exceptions
+ } catch (AccountNotFoundException e) {
+ e.printStackTrace();
+ } catch (AuthenticatorException e) {
+ e.printStackTrace();
+ } catch (OperationCanceledException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ if (client != null) {
+ OwnCloudCredentials cred = client.getCredentials();
+ if (cred != null) {
+ AccountManager am = AccountManager.get(context);
+ if (cred.authTokenExpires()) {
+ am.invalidateAuthToken(
+ getAccount().type,
+ cred.getAuthToken()
+ );
+ } else {
+ am.clearPassword(getAccount());
+ }
+ }
+ }
+
+ requestCredentialsUpdate();
+
+ }
+ }
+ removeStickyBroadcast(intent);
+ Log_OC.d(TAG, "Setting progress visibility to " + mSyncInProgress);
+ setSupportProgressBarIndeterminateVisibility(mSyncInProgress /*|| mRefreshSharesInProgress*/);
+
+ setBackgroundText();
+
+ }
+
+ } catch (RuntimeException e) {
+ // avoid app crashes after changing the serial id of RemoteOperationResult
+ // in owncloud library with broadcast notifications pending to process
+ removeStickyBroadcast(intent);
+ }
+ }
+ }
+
+
+
+ /**
+ * Shows the information of the {@link OCFile} received as a
+ * parameter in the second fragment.
+ *
+ * @param file {@link OCFile} whose details will be shown
+ */
+ @Override
+ public void showDetails(OCFile file) {
+
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onTransferStateChanged(OCFile file, boolean downloading, boolean uploading) {
+
+ }
+
+
+ @Override
+ public void onRefresh() {
+ OCFileListFragment listOfFiles = getListOfFilesFragment();
+ if (listOfFiles != null) {
+ OCFile folder = listOfFiles.getCurrentFile();
+ if (folder != null) {
+ startSyncFolderOperation(folder);
+ }
+ }
+ }
+
+}
private static final String TAG = "OwnCloudPreferences";
- private static final String PREVIOUS_ACCOUNT_KEY = "ACCOUNT";
-
private DbHandler mDbHandler;
private CheckBoxPreference pCode;
private Preference pAboutApp;
- private Account mPreviousAccount = null;
private PreferenceCategory mAccountsPrefCategory = null;
private final Handler mHandler = new Handler();
private String mAccountName;
ActionBar actionBar = getSherlock().getActionBar();
actionBar.setIcon(DisplayUtils.getSeasonalIconId());
actionBar.setDisplayHomeAsUpEnabled(true);
+ actionBar.setTitle(R.string.actionbar_settings);
- if (savedInstanceState != null) {
- mPreviousAccount = savedInstanceState.getParcelable(PREVIOUS_ACCOUNT_KEY);
- } else {
- mPreviousAccount = AccountUtils.getCurrentOwnCloudAccount(this);
- }
-
// Load the accounts category for adding the list of accounts
mAccountsPrefCategory = (PreferenceCategory) findPreference("accounts_category");
for (Account a : accounts) {
CheckBoxPreference p = (CheckBoxPreference) findPreference(a.name);
if (key.equals(a.name)) {
+ boolean accountChanged = !p.isChecked();
p.setChecked(true);
- AccountUtils.setCurrentOwnCloudAccount(getApplicationContext(), a.name);
+ AccountUtils.setCurrentOwnCloudAccount(
+ getApplicationContext(),
+ a.name
+ );
+ if (accountChanged) {
+ // restart the main activity
+ Intent i = new Intent(
+ Preferences.this,
+ FileDisplayActivity.class
+ );
+ i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ startActivity(i);
+ } else {
+ finish();
+ }
} else {
p.setChecked(false);
}
}
- @Override
- protected void onPause() {
- if (this.isFinishing()) {
- Account current = AccountUtils.getCurrentOwnCloudAccount(this);
- if ((mPreviousAccount == null && current != null)
- || (mPreviousAccount != null && !mPreviousAccount.equals(current))) {
- // the account set as default changed since this activity was
- // created
-
- // restart the main activity
- Intent i = new Intent(this, FileDisplayActivity.class);
- i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
- startActivity(i);
- }
- }
- super.onPause();
- }
-
}
private Context mContext;\r
private OCFile mFile = null;\r
private Vector<OCFile> mFiles = null;\r
+ private boolean mJustFolders;\r
\r
private FileDataStorageManager mStorageManager;
private Account mAccount;
private ComponentsGetter mTransferServiceGetter;\r
\r
- public FileListListAdapter(Context context, ComponentsGetter transferServiceGetter) {\r
+ public FileListListAdapter(\r
+ boolean justFolders, \r
+ Context context, \r
+ ComponentsGetter transferServiceGetter\r
+ ) {\r
+ mJustFolders = justFolders;\r
mContext = context;\r
mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext);\r
mTransferServiceGetter = transferServiceGetter;\r
}\r
if (mStorageManager != null) {\r
mFiles = mStorageManager.getFolderContent(mFile);\r
+ if (mJustFolders) {\r
+ mFiles = getFolders(mFiles);\r
+ }\r
} else {\r
mFiles = null;\r
}\r
notifyDataSetChanged();\r
}\r
\r
+ \r
+ /**\r
+ * Filter for getting only the folders\r
+ * @param files\r
+ * @return Vector<OCFile>\r
+ */\r
+ public Vector<OCFile> getFolders(Vector<OCFile> files) {\r
+ Vector<OCFile> ret = new Vector<OCFile>(); \r
+ OCFile current = null; \r
+ for (int i=0; i<files.size(); i++) {\r
+ current = files.get(i);\r
+ if (current.isFolder()) {\r
+ ret.add(current);\r
+ }\r
+ }\r
+ return ret;\r
+ }\r
+ \r
+ \r
/**\r
* Check if parent folder does not include 'S' permission and if file/folder\r
* is shared with me\r
extends SherlockDialogFragment implements DialogInterface.OnClickListener {
private static final String ARG_PARENT_FOLDER = "PARENT_FOLDER";
+
+ public static final String CREATE_FOLDER_FRAGMENT = "CREATE_FOLDER_FRAGMENT";
/**
* Public factory method to create new CreateFolderDialogFragment instances.
--- /dev/null
+/* ownCloud Android client application
+ * Copyright (C) 2014 ownCloud Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.ui.dialog;
+
+import com.actionbarsherlock.app.SherlockDialogFragment;
+import com.owncloud.android.R;
+import com.owncloud.android.authentication.AuthenticatorActivity;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.AlertDialog.Builder;
+import android.content.DialogInterface;
+import android.os.Bundle;
+import android.text.InputType;
+import android.view.WindowManager.LayoutParams;
+import android.webkit.HttpAuthHandler;
+import android.webkit.WebView;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+
+
+
+/**
+ * Dialog to input authentication credentials
+ *
+ */
+public class CredentialsDialogFragment extends SherlockDialogFragment
+ implements DialogInterface.OnClickListener {
+
+ private WebView mWebView = null;
+ private HttpAuthHandler mHandler = null;
+
+ private EditText mUsernameET;
+ private EditText mPasswordET;
+
+ private String mUsernameStr;
+ private String mPasswordStr;
+
+
+ /**
+ * Public factory method to create new CredentialsDialogFragment instances.
+ * @param webView WebView that is being loaded
+ * @param handler HttpAuthHandler
+ * @return Dialog ready to show
+ */
+ public static CredentialsDialogFragment newInstanceForCredentials(WebView webView, HttpAuthHandler handler) {
+ if (handler == null) {
+ throw new IllegalArgumentException("Trying to create instance with parameter handler == null");
+ }
+ CredentialsDialogFragment frag = new CredentialsDialogFragment();
+ frag.mHandler = handler;
+ frag.mWebView = webView;
+ return frag;
+ }
+
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+
+ // Create field for username
+ mUsernameET = new EditText(getSherlockActivity());
+ mUsernameET.setHint(getSherlockActivity().getText(R.string.auth_username));
+
+ // Create field for password
+ mPasswordET = new EditText(getSherlockActivity());
+ mPasswordET.setHint(getSherlockActivity().getText(R.string.auth_password));
+ mPasswordET.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
+
+ // Prepare LinearLayout for dialog
+ LinearLayout ll = new LinearLayout(getSherlockActivity());
+ ll.setOrientation(LinearLayout.VERTICAL);
+ ll.addView(mUsernameET);
+ ll.addView(mPasswordET);
+
+ ll.requestFocus();
+
+ setRetainInstance(true);
+
+ Builder authDialog = new AlertDialog
+ .Builder(getSherlockActivity())
+ .setTitle(getSherlockActivity().getText(R.string.saml_authentication_required_text))
+ .setView(ll)
+ .setCancelable(false)
+ .setPositiveButton(R.string.common_ok, this)
+ .setNegativeButton(R.string.common_cancel, this);
+
+ Dialog d = authDialog.create();
+ d.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);
+ return d;
+ }
+
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ // Due to the use of setRetainInstance(true) for keep the dialog over the rest of dialogs,
+ // we need to save the inputs text for being injected in onResume()
+ mUsernameStr = mUsernameET.getText().toString();
+ mPasswordStr = mPasswordET.getText().toString();
+ }
+
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ mUsernameET.setText(mUsernameStr);
+ mPasswordET.setText(mPasswordStr);
+ }
+
+
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ if (which == AlertDialog.BUTTON_POSITIVE) {
+
+ String username = mUsernameET.getText().toString();
+ String password = mPasswordET.getText().toString();
+
+ // Proceed with the authentication
+ mHandler.proceed(username, password);
+
+ } else if (which == AlertDialog.BUTTON_NEGATIVE) {
+ mWebView.stopLoading();
+ ((AuthenticatorActivity)getActivity()).doNegativeAuthenticatioDialogClick();
+ }
+
+ dialog.dismiss();
+ }
+
+
+ @Override
+ public void onDestroyView() {
+ if (getDialog() != null && getRetainInstance())
+ getDialog().setDismissMessage(null);
+ super.onDestroyView();
+ }
+
+}
package com.owncloud.android.ui.fragment;
+import java.util.ArrayList;
+
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
import android.view.LayoutInflater;
/**
* TODO extending SherlockListFragment instead of SherlockFragment
*/
-public class ExtendedListFragment extends SherlockFragment implements OnItemClickListener, SwipeRefreshLayout.OnRefreshListener{
+public class ExtendedListFragment extends SherlockFragment
+implements OnItemClickListener, SwipeRefreshLayout.OnRefreshListener {
private static final String TAG = ExtendedListFragment.class.getSimpleName();
private static final String KEY_SAVED_LIST_POSITION = "SAVED_LIST_POSITION";
+ private static final String KEY_INDEXES = "INDEXES";
+ private static final String KEY_FIRST_POSITIONS= "FIRST_POSITIONS";
+ private static final String KEY_TOPS = "TOPS";
+ private static final String KEY_HEIGHT_CELL = "HEIGHT_CELL";
+ private static final String KEY_EMPTY_LIST_MESSAGE = "EMPTY_LIST_MESSAGE";
protected ExtendedListView mList;
private SwipeRefreshLayout mRefreshEmptyLayout;
private TextView mEmptyListMessage;
+ // Save the state of the scroll in browsing
+ private ArrayList<Integer> mIndexes;
+ private ArrayList<Integer> mFirstPositions;
+ private ArrayList<Integer> mTops;
+ private int mHeightCell = 0;
+
+ private SwipeRefreshLayout.OnRefreshListener mOnRefreshListener = null;
+
+
public void setListAdapter(ListAdapter listAdapter) {
mList.setAdapter(listAdapter);
mList.invalidate();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Log_OC.e(TAG, "onCreateView");
- //mList = new ExtendedListView(getActivity());
View v = inflater.inflate(R.layout.list_fragment, null);
mEmptyListMessage = (TextView) v.findViewById(R.id.empty_list_view);
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+
+ if (savedInstanceState != null) {
+ mIndexes = savedInstanceState.getIntegerArrayList(KEY_INDEXES);
+ mFirstPositions = savedInstanceState.getIntegerArrayList(KEY_FIRST_POSITIONS);
+ mTops = savedInstanceState.getIntegerArrayList(KEY_TOPS);
+ mHeightCell = savedInstanceState.getInt(KEY_HEIGHT_CELL);
+ setMessageForEmptyList(savedInstanceState.getString(KEY_EMPTY_LIST_MESSAGE));
+
+ } else {
+ mIndexes = new ArrayList<Integer>();
+ mFirstPositions = new ArrayList<Integer>();
+ mTops = new ArrayList<Integer>();
+ mHeightCell = 0;
+ }
+ }
+
+
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
Log_OC.e(TAG, "onSaveInstanceState()");
savedInstanceState.putInt(KEY_SAVED_LIST_POSITION, getReferencePosition());
+ savedInstanceState.putIntegerArrayList(KEY_INDEXES, mIndexes);
+ savedInstanceState.putIntegerArrayList(KEY_FIRST_POSITIONS, mFirstPositions);
+ savedInstanceState.putIntegerArrayList(KEY_TOPS, mTops);
+ savedInstanceState.putInt(KEY_HEIGHT_CELL, mHeightCell);
+ savedInstanceState.putString(KEY_EMPTY_LIST_MESSAGE, getEmptyViewText());
}
}
}
+
+ /*
+ * Restore index and position
+ */
+ protected void restoreIndexAndTopPosition() {
+ if (mIndexes.size() > 0) {
+ // needs to be checked; not every browse-up had a browse-down before
+
+ int index = mIndexes.remove(mIndexes.size() - 1);
+
+ int firstPosition = mFirstPositions.remove(mFirstPositions.size() -1);
+
+ int top = mTops.remove(mTops.size() - 1);
+
+ mList.setSelectionFromTop(firstPosition, top);
+
+ // Move the scroll if the selection is not visible
+ int indexPosition = mHeightCell*index;
+ int height = mList.getHeight();
+
+ if (indexPosition > height) {
+ if (android.os.Build.VERSION.SDK_INT >= 11)
+ {
+ mList.smoothScrollToPosition(index);
+ }
+ else if (android.os.Build.VERSION.SDK_INT >= 8)
+ {
+ mList.setSelectionFromTop(index, 0);
+ }
+
+ }
+ }
+ }
+
+ /*
+ * Save index and top position
+ */
+ protected void saveIndexAndTopPosition(int index) {
+
+ mIndexes.add(index);
+
+ int firstPosition = mList.getFirstVisiblePosition();
+ mFirstPositions.add(firstPosition);
+
+ View view = mList.getChildAt(0);
+ int top = (view == null) ? 0 : view.getTop() ;
+
+ mTops.add(top);
+
+ // Save the height of a cell
+ mHeightCell = (view == null || mHeightCell != 0) ? mHeightCell : view.getHeight();
+ }
+
+
@Override
public void onItemClick (AdapterView<?> parent, View view, int position, long id) {
// to be @overriden
// to be @overriden
mRefreshLayout.setRefreshing(false);
mRefreshEmptyLayout.setRefreshing(false);
+
+ if (mOnRefreshListener != null) {
+ mOnRefreshListener.onRefresh();
+ }
+ }
+
+ public void setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener listener) {
+ mOnRefreshListener = listener;
}
+
/**
* Enables swipe gesture
item.setVisible(false);
item.setEnabled(false);
}
+
+ // additional restriction for this fragment
+ item = menu.findItem(R.id.action_move);
+ if (item != null) {
+ item.setVisible(false);
+ item.setEnabled(false);
+ }
}
public void onActivityCreated(Bundle savedInstanceState) {
Log_OC.i(TAG, "onActivityCreated() start");
- super.onCreate(savedInstanceState);
+ super.onActivityCreated(savedInstanceState);
mAdapter = new LocalFileListAdapter(mContainerActivity.getInitialDirectory(), getActivity());
setListAdapter(mAdapter);
listDirectory(file);
// notify the click to container Activity
mContainerActivity.onDirectoryClick(file);
+ // save index and top position
+ saveIndexAndTopPosition(position);
} else { /// Click on a file
ImageView checkBoxV = (ImageView) v.findViewById(R.id.custom_checkbox);
parentDir = mDirectory.getParentFile(); // can be null
}
listDirectory(parentDir);
+
+ // restore index and top position
+ restoreIndexAndTopPosition();
}
package com.owncloud.android.ui.fragment;
import java.io.File;
-import java.util.ArrayList;
import android.app.Activity;
+import android.content.Intent;
import android.os.Bundle;
+import android.support.v4.widget.SwipeRefreshLayout;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import com.owncloud.android.files.FileMenuFilter;
import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.ui.activity.FileDisplayActivity;
+import com.owncloud.android.ui.activity.MoveActivity;
import com.owncloud.android.ui.adapter.FileListListAdapter;
import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
import com.owncloud.android.ui.dialog.RemoveFileDialogFragment;
private static final String TAG = OCFileListFragment.class.getSimpleName();
- private static final String MY_PACKAGE = OCFileListFragment.class.getPackage() != null ? OCFileListFragment.class.getPackage().getName() : "com.owncloud.android.ui.fragment";
- private static final String EXTRA_FILE = MY_PACKAGE + ".extra.FILE";
+ private static final String MY_PACKAGE = OCFileListFragment.class.getPackage() != null ?
+ OCFileListFragment.class.getPackage().getName() : "com.owncloud.android.ui.fragment";
+
+ public final static String ARG_JUST_FOLDERS = MY_PACKAGE + ".JUST_FOLDERS";
+ public final static String ARG_ALLOW_CONTEXTUAL_ACTIONS = MY_PACKAGE + ".ALLOW_CONTEXTUAL";
+
+ private static final String KEY_FILE = MY_PACKAGE + ".extra.FILE";
- private static final String KEY_INDEXES = "INDEXES";
- private static final String KEY_FIRST_POSITIONS= "FIRST_POSITIONS";
- private static final String KEY_TOPS = "TOPS";
- private static final String KEY_HEIGHT_CELL = "HEIGHT_CELL";
- private static final String KEY_EMPTY_LIST_MESSAGE = "EMPTY_LIST_MESSAGE";
-
private FileFragment.ContainerActivity mContainerActivity;
private OCFile mFile = null;
private OCFile mTargetFile;
- // Save the state of the scroll in browsing
- private ArrayList<Integer> mIndexes;
- private ArrayList<Integer> mFirstPositions;
- private ArrayList<Integer> mTops;
-
- private int mHeightCell = 0;
/**
* {@inheritDoc}
Log_OC.e(TAG, "onAttach");
try {
mContainerActivity = (FileFragment.ContainerActivity) activity;
+
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement " +
FileFragment.ContainerActivity.class.getSimpleName());
}
+ try {
+ setOnRefreshListener((SwipeRefreshLayout.OnRefreshListener) activity);
+
+ } catch (ClassCastException e) {
+ throw new ClassCastException(activity.toString() + " must implement " +
+ SwipeRefreshLayout.OnRefreshListener.class.getSimpleName());
+ }
}
@Override
public void onDetach() {
+ setOnRefreshListener(null);
mContainerActivity = null;
super.onDetach();
}
super.onActivityCreated(savedInstanceState);
Log_OC.e(TAG, "onActivityCreated() start");
- mAdapter = new FileListListAdapter(getSherlockActivity(), mContainerActivity);
-
if (savedInstanceState != null) {
- mFile = savedInstanceState.getParcelable(EXTRA_FILE);
- mIndexes = savedInstanceState.getIntegerArrayList(KEY_INDEXES);
- mFirstPositions = savedInstanceState.getIntegerArrayList(KEY_FIRST_POSITIONS);
- mTops = savedInstanceState.getIntegerArrayList(KEY_TOPS);
- mHeightCell = savedInstanceState.getInt(KEY_HEIGHT_CELL);
- setMessageForEmptyList(savedInstanceState.getString(KEY_EMPTY_LIST_MESSAGE));
-
- } else {
- mIndexes = new ArrayList<Integer>();
- mFirstPositions = new ArrayList<Integer>();
- mTops = new ArrayList<Integer>();
- mHeightCell = 0;
-
+ mFile = savedInstanceState.getParcelable(KEY_FILE);
}
- mAdapter = new FileListListAdapter(getSherlockActivity(), mContainerActivity);
-
+ Bundle args = getArguments();
+ boolean justFolders = (args == null) ? false : args.getBoolean(ARG_JUST_FOLDERS, false);
+ mAdapter = new FileListListAdapter(
+ justFolders,
+ getSherlockActivity(),
+ mContainerActivity
+ );
setListAdapter(mAdapter);
registerForContextMenu(getListView());
@Override
public void onSaveInstanceState (Bundle outState) {
super.onSaveInstanceState(outState);
- outState.putParcelable(EXTRA_FILE, mFile);
- outState.putIntegerArrayList(KEY_INDEXES, mIndexes);
- outState.putIntegerArrayList(KEY_FIRST_POSITIONS, mFirstPositions);
- outState.putIntegerArrayList(KEY_TOPS, mTops);
- outState.putInt(KEY_HEIGHT_CELL, mHeightCell);
- outState.putString(KEY_EMPTY_LIST_MESSAGE, getEmptyViewText());
+ outState.putParcelable(KEY_FILE, mFile);
}
/**
* Call this, when the user presses the up button.
*
- * Tries to move up the current folder one level. If the parent folder was removed from the database,
- * it continues browsing up until finding an existing folders.
+ * Tries to move up the current folder one level. If the parent folder was removed from the
+ * database, it continues browsing up until finding an existing folders.
*
* return Count of folder levels browsed up.
*/
String parentPath = null;
if (mFile.getParentId() != FileDataStorageManager.ROOT_PARENT_ID) {
parentPath = new File(mFile.getRemotePath()).getParent();
- parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath : parentPath + OCFile.PATH_SEPARATOR;
+ parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath :
+ parentPath + OCFile.PATH_SEPARATOR;
parentDir = storageManager.getFileByPath(parentPath);
moveCount++;
} else {
- parentDir = storageManager.getFileByPath(OCFile.ROOT_PATH); // never returns null; keep the path in root folder
+ parentDir = storageManager.getFileByPath(OCFile.ROOT_PATH);
}
while (parentDir == null) {
parentPath = new File(parentPath).getParent();
- parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath : parentPath + OCFile.PATH_SEPARATOR;
+ parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath :
+ parentPath + OCFile.PATH_SEPARATOR;
parentDir = storageManager.getFileByPath(parentPath);
moveCount++;
} // exit is granted because storageManager.getFileByPath("/") never returns null
- mFile = parentDir;
- }
-
- if (mFile != null) {
+ mFile = parentDir;
+
listDirectory(mFile);
- ((FileDisplayActivity)mContainerActivity).startSyncFolderOperation(mFile);
+ onRefresh();
// restore index and top position
restoreIndexAndTopPosition();
return moveCount;
}
- /*
- * Restore index and position
- */
- private void restoreIndexAndTopPosition() {
- if (mIndexes.size() > 0) {
- // needs to be checked; not every browse-up had a browse-down before
-
- int index = mIndexes.remove(mIndexes.size() - 1);
-
- int firstPosition = mFirstPositions.remove(mFirstPositions.size() -1);
-
- int top = mTops.remove(mTops.size() - 1);
-
- mList.setSelectionFromTop(firstPosition, top);
-
- // Move the scroll if the selection is not visible
- int indexPosition = mHeightCell*index;
- int height = mList.getHeight();
-
- if (indexPosition > height) {
- if (android.os.Build.VERSION.SDK_INT >= 11)
- {
- mList.smoothScrollToPosition(index);
- }
- else if (android.os.Build.VERSION.SDK_INT >= 8)
- {
- mList.setSelectionFromTop(index, 0);
- }
-
- }
- }
- }
-
- /*
- * Save index and top position
- */
- private void saveIndexAndTopPosition(int index) {
-
- mIndexes.add(index);
-
- int firstPosition = mList.getFirstVisiblePosition();
- mFirstPositions.add(firstPosition);
-
- View view = mList.getChildAt(0);
- int top = (view == null) ? 0 : view.getTop() ;
-
- mTops.add(top);
-
- // Save the height of a cell
- mHeightCell = (view == null || mHeightCell != 0) ? mHeightCell : view.getHeight();
- }
-
@Override
public void onItemClick(AdapterView<?> l, View v, int position, long id) {
OCFile file = (OCFile) mAdapter.getItem(position);
if (file.isFolder()) {
// update state and view of this fragment
listDirectory(file);
- // then, notify parent activity to let it update its state and view, and other fragments
+ // then, notify parent activity to let it update its state and view
mContainerActivity.onBrowsedDownTo(file);
// save index and top position
saveIndexAndTopPosition(position);
* {@inheritDoc}
*/
@Override
- public void onCreateContextMenu (ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
+ public void onCreateContextMenu (
+ ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
- MenuInflater inflater = getSherlockActivity().getMenuInflater();
- inflater.inflate(R.menu.file_actions_menu, menu);
- AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
- OCFile targetFile = (OCFile) mAdapter.getItem(info.position);
-
- if (mContainerActivity.getStorageManager() != null) {
- FileMenuFilter mf = new FileMenuFilter(
- targetFile,
- mContainerActivity.getStorageManager().getAccount(),
- mContainerActivity,
- getSherlockActivity()
- );
- mf.filter(menu);
- }
-
- /// additional restrictions for this fragment
- // TODO allow in the future 'open with' for previewable files
- MenuItem item = menu.findItem(R.id.action_open_file_with);
- if (item != null) {
- item.setVisible(false);
- item.setEnabled(false);
- }
- /// TODO break this direct dependency on FileDisplayActivity... if possible
- FileFragment frag = ((FileDisplayActivity)getSherlockActivity()).getSecondFragment();
- if (frag != null && frag instanceof FileDetailFragment &&
- frag.getFile().getFileId() == targetFile.getFileId()) {
- item = menu.findItem(R.id.action_see_details);
+ Bundle args = getArguments();
+ boolean allowContextualActions =
+ (args == null) ? true : args.getBoolean(ARG_ALLOW_CONTEXTUAL_ACTIONS, true);
+ if (allowContextualActions) {
+ MenuInflater inflater = getSherlockActivity().getMenuInflater();
+ inflater.inflate(R.menu.file_actions_menu, menu);
+ AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
+ OCFile targetFile = (OCFile) mAdapter.getItem(info.position);
+
+ if (mContainerActivity.getStorageManager() != null) {
+ FileMenuFilter mf = new FileMenuFilter(
+ targetFile,
+ mContainerActivity.getStorageManager().getAccount(),
+ mContainerActivity,
+ getSherlockActivity()
+ );
+ mf.filter(menu);
+ }
+
+ /// additional restrictions for this fragment
+ // TODO allow in the future 'open with' for previewable files
+ MenuItem item = menu.findItem(R.id.action_open_file_with);
if (item != null) {
item.setVisible(false);
item.setEnabled(false);
}
+ /// TODO break this direct dependency on FileDisplayActivity... if possible
+ FileFragment frag = ((FileDisplayActivity)getSherlockActivity()).getSecondFragment();
+ if (frag != null && frag instanceof FileDetailFragment &&
+ frag.getFile().getFileId() == targetFile.getFileId()) {
+ item = menu.findItem(R.id.action_see_details);
+ if (item != null) {
+ item.setVisible(false);
+ item.setEnabled(false);
+ }
+ }
}
-
-
}
}
return true;
}
+ case R.id.action_move: {
+ Intent action = new Intent(getActivity(), MoveActivity.class);
+
+ // Pass mTargetFile that contains info of selected file/folder
+ action.putExtra(MoveActivity.EXTRA_TARGET_FILE, mTargetFile);
+ getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_MOVE_FILES);
+ return true;
+ }
default:
return super.onContextItemSelected(item);
}
}
}
-
- @Override
- public void onRefresh() {
- super.onRefresh();
-
- if (mFile != null) {
- // Refresh mFile
- mFile = mContainerActivity.getStorageManager().getFileById(mFile.getFileId());
-
- listDirectory(mFile);
-
- ((FileDisplayActivity)mContainerActivity).startSyncFolderOperation(mFile);
- }
- }
-
-
-
}
item.setVisible(false);
item.setEnabled(false);
}
+
+ // additional restriction for this fragment
+ item = menu.findItem(R.id.action_move);
+ if (item != null) {
+ item.setVisible(false);
+ item.setEnabled(false);
+ }
}
item.setVisible(false);
item.setEnabled(false);
}
+
+ // additional restriction for this fragment
+ item = menu.findItem(R.id.action_move);
+ if (item != null) {
+ item.setVisible(false);
+ item.setEnabled(false);
+ }
}
import com.owncloud.android.operations.CreateFolderOperation;
import com.owncloud.android.operations.CreateShareOperation;
import com.owncloud.android.operations.DownloadFileOperation;
+import com.owncloud.android.operations.MoveFileOperation;
import com.owncloud.android.operations.RemoveFileOperation;
import com.owncloud.android.operations.RenameFileOperation;
import com.owncloud.android.operations.SynchronizeFileOperation;
// Show a Message, operation finished without success
message = res.getString(R.string.unshare_link_file_error);
}
+ } else if (operation instanceof MoveFileOperation) {
+
+ if (result.getCode() == ResultCode.FILE_NOT_FOUND) {
+ message = res.getString(R.string.move_file_not_found);
+
+ } else if (result.getCode() == ResultCode.INVALID_MOVE_INTO_DESCENDANT) {
+ message = res.getString(R.string.move_file_invalid_into_descendent);
+
+ } else if (result.getCode() == ResultCode.INVALID_OVERWRITE) {
+ message = res.getString(R.string.move_file_invalid_overwrite);
+
+ } else if (result.getCode() == ResultCode.FORBIDDEN) {
+ message = String.format(res.getString(R.string.forbidden_permissions),
+ res.getString(R.string.forbidden_permissions_move));
+
+ }else { // Generic error
+ // Show a Message, operation finished without success
+ message = res.getString(R.string.move_file_error);
+ }
}
return message;