Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master' into 2474-feature-mvp-activities

ardevd 7 жил өмнө
parent
commit
03e0e181a2
100 өөрчлөгдсөн 1368 нэмэгдсэн , 1332 устгасан
  1. 1 1
      .drone.yml
  2. 8 4
      build.gradle
  3. 20 21
      drawable_resources/ic_list_empty_upload.svg
  4. 58 0
      lint.xml
  5. 4 3
      scripts/buildDev
  6. 1 1
      scripts/lint/lint-results.txt
  7. 4 2
      src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java
  8. 4 2
      src/main/java/com/owncloud/android/datamodel/UploadsStorageManager.java
  9. 0 9
      src/main/java/com/owncloud/android/db/PreferenceManager.java
  10. 6 2
      src/main/java/com/owncloud/android/db/UploadResult.java
  11. 10 7
      src/main/java/com/owncloud/android/files/services/FileDownloader.java
  12. 9 4
      src/main/java/com/owncloud/android/files/services/FileUploader.java
  13. 1 1
      src/main/java/com/owncloud/android/jobs/NotificationJob.java
  14. 2 2
      src/main/java/com/owncloud/android/media/MediaControlView.java
  15. 1 1
      src/main/java/com/owncloud/android/media/MediaService.java
  16. 2 1
      src/main/java/com/owncloud/android/operations/DownloadFileOperation.java
  17. 2 2
      src/main/java/com/owncloud/android/operations/UploadFileOperation.java
  18. 1 1
      src/main/java/com/owncloud/android/syncadapter/FileSyncAdapter.java
  19. 1 1
      src/main/java/com/owncloud/android/ui/ThemeableSwitchPreference.java
  20. 452 0
      src/main/java/com/owncloud/android/ui/activity/ActivitiesListActivity.java
  21. 0 1
      src/main/java/com/owncloud/android/ui/activity/ContactsPreferenceActivity.java
  22. 8 8
      src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java
  23. 3 16
      src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java
  24. 8 8
      src/main/java/com/owncloud/android/ui/activity/FingerprintActivity.java
  25. 3 3
      src/main/java/com/owncloud/android/ui/activity/FolderPickerActivity.java
  26. 1 1
      src/main/java/com/owncloud/android/ui/activity/LogHistoryActivity.java
  27. 2 2
      src/main/java/com/owncloud/android/ui/activity/ManageAccountsActivity.java
  28. 2 2
      src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java
  29. 13 13
      src/main/java/com/owncloud/android/ui/activity/ParticipateActivity.java
  30. 20 19
      src/main/java/com/owncloud/android/ui/activity/PassCodeActivity.java
  31. 6 6
      src/main/java/com/owncloud/android/ui/activity/Preferences.java
  32. 7 7
      src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java
  33. 2 2
      src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.java
  34. 16 13
      src/main/java/com/owncloud/android/ui/activity/ToolbarActivity.java
  35. 13 4
      src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java
  36. 5 5
      src/main/java/com/owncloud/android/ui/activity/UserInfoActivity.java
  37. 2 2
      src/main/java/com/owncloud/android/ui/activity/WhatsNewActivity.java
  38. 6 6
      src/main/java/com/owncloud/android/ui/adapter/AccountListAdapter.java
  39. 1 1
      src/main/java/com/owncloud/android/ui/adapter/ActivityListAdapter.java
  40. 2 2
      src/main/java/com/owncloud/android/ui/adapter/LocalFileListAdapter.java
  41. 4 3
      src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java
  42. 2 2
      src/main/java/com/owncloud/android/ui/adapter/SyncedFolderAdapter.java
  43. 7 3
      src/main/java/com/owncloud/android/ui/adapter/UploadListAdapter.java
  44. 2 2
      src/main/java/com/owncloud/android/ui/adapter/UploaderAdapter.java
  45. 10 8
      src/main/java/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.java
  46. 4 2
      src/main/java/com/owncloud/android/ui/dialog/IndeterminateProgressDialog.java
  47. 6 4
      src/main/java/com/owncloud/android/ui/dialog/LoadingDialog.java
  48. 10 8
      src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.java
  49. 3 2
      src/main/java/com/owncloud/android/ui/dialog/SendShareDialog.java
  50. 9 6
      src/main/java/com/owncloud/android/ui/dialog/SetupEncryptionDialogFragment.java
  51. 9 7
      src/main/java/com/owncloud/android/ui/dialog/SharePasswordDialogFragment.java
  52. 2 2
      src/main/java/com/owncloud/android/ui/dialog/SortingOrderDialogFragment.java
  53. 11 11
      src/main/java/com/owncloud/android/ui/dialog/SyncedFolderPreferencesDialogFragment.java
  54. 3 2
      src/main/java/com/owncloud/android/ui/fragment/EditShareFragment.java
  55. 12 48
      src/main/java/com/owncloud/android/ui/fragment/ExtendedListFragment.java
  56. 14 7
      src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java
  57. 42 0
      src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetActions.java
  58. 112 0
      src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.java
  59. 34 144
      src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java
  60. 27 25
      src/main/java/com/owncloud/android/ui/fragment/ShareFileFragment.java
  61. 6 6
      src/main/java/com/owncloud/android/ui/fragment/contactsbackup/ContactListFragment.java
  62. 25 9
      src/main/java/com/owncloud/android/ui/fragment/contactsbackup/ContactsBackupFragment.java
  63. 3 6
      src/main/java/com/owncloud/android/ui/notifications/NotificationUtils.java
  64. 5 5
      src/main/java/com/owncloud/android/ui/preview/FileDownloadFragment.java
  65. 1 1
      src/main/java/com/owncloud/android/ui/whatsnew/ProgressIndicator.java
  66. 1 1
      src/main/java/com/owncloud/android/utils/DisplayUtils.java
  67. 13 12
      src/main/java/com/owncloud/android/utils/MimeTypeUtil.java
  68. 43 47
      src/main/java/com/owncloud/android/utils/ThemeUtils.java
  69. BIN
      src/main/res/drawable-hdpi/ic_list_empty_upload.png
  70. BIN
      src/main/res/drawable-mdpi/ic_list_empty_upload.png
  71. BIN
      src/main/res/drawable-xhdpi/ic_list_empty_upload.png
  72. BIN
      src/main/res/drawable-xxhdpi/ic_list_empty_upload.png
  73. BIN
      src/main/res/drawable-xxxhdpi/ic_list_empty_upload.png
  74. 0 11
      src/main/res/drawable/fab_label_background.xml
  75. 14 0
      src/main/res/drawable/ic_list_empty_upload.xml
  76. 24 0
      src/main/res/drawable/ic_plus.xml
  77. 4 3
      src/main/res/layout/account_action.xml
  78. 7 5
      src/main/res/layout/file_details_fragment.xml
  79. 6 4
      src/main/res/layout/file_details_share_user_item.xml
  80. 136 0
      src/main/res/layout/file_list_actions_bottom_sheet_fragment.xml
  81. 2 35
      src/main/res/layout/list_fragment.xml
  82. 3 1
      src/main/res/layout/preview_image_error_fragment.xml
  83. 3 1
      src/main/res/layout/send_button.xml
  84. 7 5
      src/main/res/layout/send_share_fragment.xml
  85. 1 23
      src/main/res/values-ar/strings.xml
  86. 0 383
      src/main/res/values-ast/strings.xml
  87. 4 45
      src/main/res/values-b+en+001/strings.xml
  88. 2 14
      src/main/res/values-b+es+419/strings.xml
  89. 3 39
      src/main/res/values-bg-rBG/strings.xml
  90. 3 18
      src/main/res/values-ca/strings.xml
  91. 2 17
      src/main/res/values-cs-rCZ/strings.xml
  92. 2 14
      src/main/res/values-da/strings.xml
  93. 4 45
      src/main/res/values-de/strings.xml
  94. 2 26
      src/main/res/values-el/strings.xml
  95. 2 14
      src/main/res/values-es-rAR/strings.xml
  96. 2 14
      src/main/res/values-es-rCL/strings.xml
  97. 2 14
      src/main/res/values-es-rCO/strings.xml
  98. 2 14
      src/main/res/values-es-rCR/strings.xml
  99. 2 14
      src/main/res/values-es-rDO/strings.xml
  100. 2 14
      src/main/res/values-es-rEC/strings.xml

+ 1 - 1
.drone.yml

@@ -1,6 +1,6 @@
 pipeline:
   test:
-    image: nextcloudci/android:android-32
+    image: nextcloudci/android:android-35
     commands:
       # uncomment gplay for Gplay, Modified only
       - sh -c "if [ '$FLAVOUR' != 'Generic' ]; then sed -i '/.*com.google.*/s/^.*\\/\\///g' build.gradle; fi"

+ 8 - 4
build.gradle

@@ -115,13 +115,12 @@ android {
             versionDev {
                 applicationId "com.nextcloud.android.beta"
                 dimension "default"
-                versionCode 20180419
-                versionName "20180419"
+                versionCode 20180423
+                versionName "20180423"
             }
         }
     }
 
-
     // adapt structure from Eclipse to Gradle/Android Studio expectations;
     // see http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Configuring-the-Structure
 
@@ -205,7 +204,6 @@ dependencies {
     implementation "com.android.support:appcompat-v7:${supportLibraryVersion}"
     implementation "com.android.support:cardview-v7:${supportLibraryVersion}"
     implementation "com.android.support:exifinterface:${supportLibraryVersion}"
-    implementation 'com.github.tobiasKaminsky:android-floating-action-button:1.10.2'
     implementation 'com.github.albfernandez:juniversalchardet:v2.0.0'
     implementation 'com.google.code.findbugs:annotations:2.0.1'
     implementation 'commons-io:commons-io:2.5'
@@ -265,5 +263,11 @@ tasks.withType(Test) {
     }
 }
 
+android.applicationVariants.all { variant ->
+    variant.outputs.all { output ->
+        outputFileName = "${output.baseName}-${variant.versionCode}.apk"
+    }
+}
+
 // uncomment for gplay (must be at the bottom)
 //apply plugin: 'com.google.gms.google-services'

+ 20 - 21
drawable_resources/ic_list_empty_upload.svg

@@ -1,22 +1,21 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.1"
-   width="25.6"
-   height="25.6"
-   viewBox="0 0 24 24"
-   id="svg2"
-   inkscape:version="0.92.1 r15371"
-   sodipodi:docname="ic_list_empty_upload.svg"
-   inkscape:export-filename="C:\DEV\src\Android\Nextcloud\colorFolderNew\src\main\res\drawable-mdpi\ic_list_empty_upload.png"
-   inkscape:export-xdpi="270"
-   inkscape:export-ydpi="270">
+    xmlns:dc="http://purl.org/dc/elements/1.1/"
+    xmlns:cc="http://creativecommons.org/ns#"
+    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+    xmlns="http://www.w3.org/2000/svg"
+    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+    version="1.1"
+    width="25.6"
+    height="25.6"
+    viewBox="0 0 24 24"
+    id="svg2"
+    inkscape:version="0.92.1 r15371"
+    sodipodi:docname="ic_list_empty_upload.svg"
+    inkscape:export-filename="C:\DEV\src\Android\Nextcloud\colorFolderNew\src\main\res\drawable-mdpi\ic_list_empty_upload.png"
+    inkscape:export-xdpi="270"
+    inkscape:export-ydpi="270">
   <metadata
      id="metadata10">
     <rdf:RDF>
@@ -51,8 +50,8 @@
      inkscape:window-maximized="1"
      inkscape:current-layer="svg2" />
   <path
-     d="M 9,16 V 10 H 5 l 7,-7 7,7 h -4 v 6 H 9 m -4,4 v -2 h 14 v 2 z"
-     id="path4"
-     style="fill:#0082c9;fill-opacity:1;opacity:0.5"
-     inkscape:connector-curvature="0" />
+      d="M 9,16 V 10 H 5 l 7,-7 7,7 h -4 v 6 H 9 m -4,4 v -2 h 14 v 2 z"
+      id="path4"
+      style="fill:#888888;fill-opacity:1;opacity:0.5"
+      inkscape:connector-curvature="0" />
 </svg>

+ 58 - 0
lint.xml

@@ -78,5 +78,63 @@
         <ignore path="**/values-cs-rCZ/strings.xml"/>
         <ignore path="**/values-en-rGB/strings.xml"/>
     </issue>
+    
+    <issue id="TypographyEllipsis">
+        <ignore path="**/values-b+en+001/strings.xml"/>
+        <ignore path="**/values-pt-rPT/strings.xml"/>
+        <ignore path="**/values-ro/strings.xml"/>
+        <ignore path="**/values-zh-rCN/strings.xml"/>
+        <ignore path="**/values-bg-rBG/strings.xml"/>
+        <ignore path="**/values-nb-rNO/strings.xml"/>
+        <ignore path="**/values-es/strings.xml"/>
+        <ignore path="**/values-fa/strings.xml"/>
+        <ignore path="**/values-ko/strings.xml"/>
+        <ignore path="**/values-ru/strings.xml"/>
+        <ignore path="**/values-ast/strings.xml"/>
+        <ignore path="**/values-es-rCO/strings.xml"/>
+        <ignore path="**/values-es-rCL/strings.xml"/>
+        <ignore path="**/values-es-rSV/strings.xml"/>
+        <ignore path="**/values-sv/strings.xml"/>
+        <ignore path="**/values-tr/strings.xml"/>
+        <ignore path="**/values-es-rUY/strings.xml"/>
+        <ignore path="**/values-es-rGT/strings.xml"/>
+        <ignore path="**/values-fr/strings.xml"/>
+        <ignore path="**/values-es-rMX/strings.xml"/>
+        <ignore path="**/values-fi-rFI/strings.xml"/>
+        <ignore path="**/values-ar/strings.xml"/>
+        <ignore path="**/values-es-rAR/strings.xml"/>
+        <ignore path="**/values-de-rDE/strings.xml"/>
+        <ignore path="**/values-ca/strings.xml"/>
+        <ignore path="**/values-is/strings.xml"/>
+        <ignore path="**/values-es-rNI/strings.xml"/>
+        <ignore path="**/values-es-rPR/strings.xml"/>
+        <ignore path="**/values-es-rDO/strings.xml"/>
+        <ignore path="**/values-sq/strings.xml"/>
+        <ignore path="**/values-pt-rBR/strings.xml"/>
+        <ignore path="**/values-ja-rJP/strings.xml"/>
+        <ignore path="**/values-sr/strings.xml"/>
+        <ignore path="**/values-it/strings.xml"/>
+        <ignore path="**/values-hu-rHU/strings.xml"/>
+        <ignore path="**/values-pl/strings.xml"/>
+        <ignore path="**/values-es-rHN/strings.xml"/>
+        <ignore path="**/values-lt-rLT/strings.xml"/>
+        <ignore path="**/values-es-rPA/strings.xml"/>
+        <ignore path="**/values-nl/strings.xml"/>
+        <ignore path="**/values-sk-rSK/strings.xml"/>
+        <ignore path="**/values-ka-rGE/strings.xml"/>
+        <ignore path="**/values-eu/strings.xml"/>
+        <ignore path="**/values-es-rCR/strings.xml"/>
+        <ignore path="**/values-da/strings.xml"/>
+        <ignore path="**/values-es-rEC/strings.xml"/>
+        <ignore path="**/values-de/strings.xml"/>
+        <ignore path="**/values-sl/strings.xml"/>
+        <ignore path="**/values-es-rPY/strings.xml"/>
+        <ignore path="**/values-es-rPE/strings.xml"/>
+        <ignore path="**/values-zh-rTW/strings.xml"/>
+        <ignore path="**/values-el/strings.xml"/>
+        <ignore path="**/values-id/strings.xml"/>
+        <ignore path="**/values-cs-rCZ/strings.xml"/>
+        <ignore path="**/values-en-rGB/strings.xml"/>
+    </issue>
 
 </lint>

+ 4 - 3
scripts/buildDev

@@ -14,15 +14,16 @@ if [ $? != 0 ] ; then
 fi
 
 # sign
+mkdir -p ~/apks
+
 source ~/.gradle/devVersionSecrets
 /home/nextcloud/bin/apksigner sign --ks-pass env:VERSION_DEV_STORE_PASSWORD \
                --key-pass env:VERSION_DEV_KEY_PASSWORD \
                --ks $VERSION_DEV_STORE_FILE \
-               --out /home/nextcloud/apks/nextcloud-dev-$date.apk \
-               ./build/outputs/apk/versionDev/release/android-versionDev-release-unsigned.apk
+               --out ~/apks/nextcloud-dev-$date.apk \
+               ./build/outputs/apk/versionDev/release/versionDev-release-$date.apk
 
 # use the current date
-mkdir -p ~/apks
 echo $date > ~/apks/latest
 
 ln -s nextcloud-dev-$date.apk latest.apk

+ 1 - 1
scripts/lint/lint-results.txt

@@ -1,2 +1,2 @@
 DO NOT TOUCH; GENERATED BY DRONE
-      <span class="mdl-layout-title">Lint Report: 129 warnings</span>
+      <span class="mdl-layout-title">Lint Report: 123 warnings</span>

+ 4 - 2
src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java

@@ -639,10 +639,12 @@ public class ThumbnailsCacheManager {
         private final WeakReference<ImageView> mImageViewReference;
         private File mFile;
         private String mImageKey = null;
+        private Context mContext;
 
-        public MediaThumbnailGenerationTask(ImageView imageView) {
+        public MediaThumbnailGenerationTask(ImageView imageView, Context context) {
             // Use a WeakReference to ensure the ImageView can be garbage collected
             mImageViewReference = new WeakReference<>(imageView);
+            mContext = context;
         }
 
         @Override
@@ -689,7 +691,7 @@ public class ThumbnailsCacheManager {
                 } else {
                     if (mFile != null) {
                         if (mFile.isDirectory()) {
-                            imageView.setImageDrawable(MimeTypeUtil.getDefaultFolderIcon());
+                            imageView.setImageDrawable(MimeTypeUtil.getDefaultFolderIcon(mContext));
                         } else {
                             if (MimeTypeUtil.isVideo(mFile)) {
                                 imageView.setImageBitmap(ThumbnailsCacheManager.mDefaultVideo);

+ 4 - 2
src/main/java/com/owncloud/android/datamodel/UploadsStorageManager.java

@@ -363,7 +363,7 @@ public class UploadsStorageManager extends Observable {
      * Get all failed uploads.
      */
     public OCUpload[] getFailedUploads() {
-        return getUploads(ProviderTableMeta.UPLOADS_STATUS + "== ?" +
+        return getUploads("(" + ProviderTableMeta.UPLOADS_STATUS + "== ?" +
                 " OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
                         "==" + UploadResult.DELAYED_FOR_WIFI.getValue() +
                         " OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
@@ -371,7 +371,9 @@ public class UploadsStorageManager extends Observable {
                         " OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
                         "==" + UploadResult.DELAYED_FOR_CHARGING.getValue() +
                         " OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
-                        "==" + UploadResult.DELAYED_IN_POWER_SAVE_MODE.getValue()
+                        "==" + UploadResult.DELAYED_IN_POWER_SAVE_MODE.getValue() +
+                        " ) AND " + ProviderTableMeta.UPLOADS_LAST_RESULT +
+                        "!= " + UploadResult.VIRUS_DETECTED.getValue()
                 , new String[]{String.valueOf(UploadStatus.UPLOAD_FAILED.value)});
     }
 

+ 0 - 9
src/main/java/com/owncloud/android/db/PreferenceManager.java

@@ -62,7 +62,6 @@ public abstract class PreferenceManager {
     private static final String PREF__AUTO_UPLOAD_INIT = "autoUploadInit";
     private static final String PREF__FOLDER_SORT_ORDER = "folder_sort_order";
     private static final String PREF__FOLDER_LAYOUT = "folder_layout";
-    private static final String KEY_FAB_EVER_CLICKED = "FAB_EVER_CLICKED";
 
     public static void setKeysReInit(Context context) {
         saveBooleanPreference(context, PREF__KEYS_REINIT, true);
@@ -117,14 +116,6 @@ public abstract class PreferenceManager {
         return PreferenceManager.getDefaultSharedPreferences(context).getBoolean("show_hidden_files_pref", false);
     }
 
-    public static long getFABClicked(Context context) {
-        return getDefaultSharedPreferences(context).getLong(KEY_FAB_EVER_CLICKED, 0);
-    }
-
-    public static void setFABClicked(Context context) {
-        getDefaultSharedPreferences(context).edit().putLong(KEY_FAB_EVER_CLICKED, 1).apply();
-    }
-
     /**
      * Gets the selected file extension position the user selected to do the last upload of a url file shared from other
      * app.

+ 6 - 2
src/main/java/com/owncloud/android/db/UploadResult.java

@@ -38,7 +38,8 @@ public enum UploadResult {
     MAINTENANCE_MODE(12),
     LOCK_FAILED(13),
     DELAYED_IN_POWER_SAVE_MODE(14),
-    SSL_RECOVERABLE_PEER_UNVERIFIED(15);
+    SSL_RECOVERABLE_PEER_UNVERIFIED(15),
+    VIRUS_DETECTED(16);
 
     private final int value;
 
@@ -86,6 +87,8 @@ public enum UploadResult {
                 return DELAYED_IN_POWER_SAVE_MODE;
             case 15:
                 return SSL_RECOVERABLE_PEER_UNVERIFIED;
+            case 16:
+                return VIRUS_DETECTED;
         }
         return null;
     }
@@ -134,9 +137,10 @@ public enum UploadResult {
                 return UNKNOWN;
             case LOCK_FAILED:
                 return LOCK_FAILED;
+            case VIRUS_DETECTED:
+                return VIRUS_DETECTED;
             default:
                 return UNKNOWN;
         }
-
     }
 }

+ 10 - 7
src/main/java/com/owncloud/android/files/services/FileDownloader.java

@@ -127,13 +127,18 @@ public class FileDownloader extends Service
         mServiceHandler = new ServiceHandler(mServiceLooper, this);
         mBinder = new FileDownloaderBinder();
 
-        mNotification = new NotificationCompat.Builder(this).setContentTitle(getApplicationContext().
-                getResources().getString(R.string.app_name))
+        NotificationCompat.Builder builder = new NotificationCompat.Builder(this).setContentTitle(
+                getApplicationContext().getResources().getString(R.string.app_name))
                 .setContentText(getApplicationContext().getResources().getString(R.string.foreground_service_download))
                 .setSmallIcon(R.drawable.notification_icon)
                 .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.notification_icon))
-                .setColor(ThemeUtils.primaryColor())
-                .build();
+                .setColor(ThemeUtils.primaryColor(getApplicationContext()));
+
+        if ((android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)) {
+            builder.setChannelId(NotificationUtils.NOTIFICATION_CHANNEL_DOWNLOAD);
+        }
+
+        mNotification = builder.build();
 
         // add AccountsUpdatedListener
         AccountManager am = AccountManager.get(getApplicationContext());
@@ -173,9 +178,7 @@ public class FileDownloader extends Service
 
         startForeground(FOREGROUND_SERVICE_ID, mNotification);
 
-        if (!intent.hasExtra(EXTRA_ACCOUNT) ||
-                !intent.hasExtra(EXTRA_FILE)
-                ) {
+        if (!intent.hasExtra(EXTRA_ACCOUNT) || !intent.hasExtra(EXTRA_FILE)) {
             Log_OC.e(TAG, "Not enough information provided in intent");
             return START_NOT_STICKY;
         } else {

+ 9 - 4
src/main/java/com/owncloud/android/files/services/FileUploader.java

@@ -463,13 +463,18 @@ public class FileUploader extends Service
 
         mUploadsStorageManager = new UploadsStorageManager(getContentResolver(), getApplicationContext());
 
-        mNotification = new NotificationCompat.Builder(this).setContentTitle(getApplicationContext().
-                getResources().getString(R.string.app_name))
+        NotificationCompat.Builder builder = new NotificationCompat.Builder(this).setContentTitle(
+                getApplicationContext().getResources().getString(R.string.app_name))
                 .setContentText(getApplicationContext().getResources().getString(R.string.foreground_service_upload))
                 .setSmallIcon(R.drawable.notification_icon)
                 .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.drawable.notification_icon))
-                .setColor(ThemeUtils.primaryColor())
-                .build();
+                .setColor(ThemeUtils.primaryColor(getApplicationContext()));
+
+        if ((android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)) {
+            builder.setChannelId(NotificationUtils.NOTIFICATION_CHANNEL_UPLOAD);
+        }
+
+        mNotification = builder.build();
 
         int failedCounter = mUploadsStorageManager.failInProgressUploads(
             UploadResult.SERVICE_INTERRUPTED    // Add UploadResult.KILLED?

+ 1 - 1
src/main/java/com/owncloud/android/jobs/NotificationJob.java

@@ -119,7 +119,7 @@ public class NotificationJob extends Job {
         NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context)
                 .setSmallIcon(R.drawable.notification_icon)
                 .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.notification_icon))
-                .setColor(ThemeUtils.primaryColor())
+                .setColor(ThemeUtils.primaryColor(context))
                 .setShowWhen(true)
                 .setSubText(account.name)
                 .setContentTitle(contentTitle)

+ 2 - 2
src/main/java/com/owncloud/android/media/MediaControlView.java

@@ -222,10 +222,10 @@ public class MediaControlView extends FrameLayout /* implements OnLayoutChangeLi
         if (mProgress != null) {
             if (mProgress instanceof SeekBar) {
                 SeekBar seeker = (SeekBar) mProgress;
-                ThemeUtils.colorHorizontalSeekBar(seeker);
+                ThemeUtils.colorHorizontalSeekBar(seeker, getContext());
                 seeker.setOnSeekBarChangeListener(this);
             } else {
-                ThemeUtils.colorHorizontalProgressBar(mProgress, ThemeUtils.primaryAccentColor());
+                ThemeUtils.colorHorizontalProgressBar(mProgress, ThemeUtils.primaryAccentColor(getContext()));
             }
             mProgress.setMax(1000);
         }

+ 1 - 1
src/main/java/com/owncloud/android/media/MediaService.java

@@ -226,7 +226,7 @@ public class MediaService extends Service implements OnCompletionListener, OnPre
 
         mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
         mNotificationBuilder = new NotificationCompat.Builder(this);
-        mNotificationBuilder.setColor(ThemeUtils.primaryColor());
+        mNotificationBuilder.setColor(ThemeUtils.primaryColor(this));
         mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
         mBinder = new MediaServiceBinder(this);
     }

+ 2 - 1
src/main/java/com/owncloud/android/operations/DownloadFileOperation.java

@@ -201,9 +201,10 @@ public class DownloadFileOperation extends RemoteOperation {
                 byte[] authenticationTag = EncryptionUtils.decodeStringToBase64Bytes(metadata.getFiles()
                         .get(mFile.getEncryptedFileName()).getAuthenticationTag());
 
-                try (FileOutputStream fileOutputStream = new FileOutputStream(tmpFile)){
+                try {
                     byte[] decryptedBytes = EncryptionUtils.decryptFile(tmpFile, key, iv, authenticationTag);
 
+                    FileOutputStream fileOutputStream = new FileOutputStream(tmpFile);
                     fileOutputStream.write(decryptedBytes);
                 } catch (Exception e) {
                     return new RemoteOperationResult(e);

+ 2 - 2
src/main/java/com/owncloud/android/operations/UploadFileOperation.java

@@ -373,7 +373,7 @@ public class UploadFileOperation extends SyncOperation {
         OCFile parent = getStorageManager().getFileByPath(remoteParentPath);
 
         // in case of a fresh upload with subfolder, where parent does not exist yet
-        if (parent == null && mFolderUnlockToken.isEmpty()) {
+        if (parent == null && (mFolderUnlockToken == null || mFolderUnlockToken.isEmpty())) {
             // try to create folder
             RemoteOperationResult result = grantFolderExistence(remoteParentPath, client);
 
@@ -396,7 +396,7 @@ public class UploadFileOperation extends SyncOperation {
 
         // try to unlock folder with stored token, e.g. when upload needs to be resumed or app crashed
         // the parent folder should exist as it is a resume of a broken upload
-        if (!mFolderUnlockToken.isEmpty()) {
+        if (mFolderUnlockToken != null && !mFolderUnlockToken.isEmpty()) {
             UnlockFileOperation unlockFileOperation = new UnlockFileOperation(parent.getLocalId(), mFolderUnlockToken);
             RemoteOperationResult unlockFileOperationResult = unlockFileOperation.execute(client, true);
 

+ 1 - 1
src/main/java/com/owncloud/android/syncadapter/FileSyncAdapter.java

@@ -518,7 +518,7 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
     private NotificationCompat.Builder createNotificationBuilder() {
         NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(getContext());
         notificationBuilder.setSmallIcon(R.drawable.notification_icon).setAutoCancel(true);
-        notificationBuilder.setColor(ThemeUtils.primaryColor());
+        notificationBuilder.setColor(ThemeUtils.primaryColor(getContext()));
         return notificationBuilder;
     }
     

+ 1 - 1
src/main/java/com/owncloud/android/ui/ThemeableSwitchPreference.java

@@ -70,7 +70,7 @@ public class ThemeableSwitchPreference extends SwitchPreference {
             if (child instanceof Switch) {
                 Switch switchView = (Switch) child;
 
-                int color = ThemeUtils.primaryAccentColor();
+                int color = ThemeUtils.primaryAccentColor(getContext());
                 int trackColor = Color.argb(77, Color.red(color), Color.green(color), Color.blue(color));
 
                 // setting the thumb color

+ 452 - 0
src/main/java/com/owncloud/android/ui/activity/ActivitiesListActivity.java

@@ -0,0 +1,452 @@
+/*
+ * Nextcloud Android client application
+ *
+ * @author Andy Scherzinger
+ * @author Mario Danic
+ * Copyright (C) 2017 Andy Scherzinger
+ * Copyright (C) 2017 Mario Danic
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * at your option) any later version.
+ *
+ * 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 Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.owncloud.android.ui.activity;
+
+import android.accounts.Account;
+import android.accounts.AuthenticatorException;
+import android.accounts.OperationCanceledException;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.PorterDuff;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.support.design.widget.BottomNavigationView;
+import android.support.v4.widget.SwipeRefreshLayout;
+import android.support.v7.app.ActionBar;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ProgressBar;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.owncloud.android.MainApp;
+import com.owncloud.android.R;
+import com.owncloud.android.authentication.AccountUtils;
+import com.owncloud.android.datamodel.FileDataStorageManager;
+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.operations.RemoteOperation;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.lib.resources.activities.GetRemoteActivitiesOperation;
+import com.owncloud.android.lib.resources.activities.models.RichObject;
+import com.owncloud.android.lib.resources.files.FileUtils;
+import com.owncloud.android.lib.resources.files.ReadRemoteFileOperation;
+import com.owncloud.android.lib.resources.files.RemoteFile;
+import com.owncloud.android.operations.RefreshFolderOperation;
+import com.owncloud.android.ui.adapter.ActivityListAdapter;
+import com.owncloud.android.ui.interfaces.ActivityListInterface;
+import com.owncloud.android.ui.preview.PreviewImageActivity;
+import com.owncloud.android.ui.preview.PreviewImageFragment;
+import com.owncloud.android.utils.AnalyticsUtils;
+import com.owncloud.android.utils.DisplayUtils;
+import com.owncloud.android.utils.FileStorageUtils;
+import com.owncloud.android.utils.ThemeUtils;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindString;
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.Unbinder;
+
+/**
+ * Activity displaying all server side stored activity items.
+ */
+public class ActivitiesListActivity extends FileActivity implements ActivityListInterface {
+
+    private static final String TAG = ActivitiesListActivity.class.getSimpleName();
+    private static final String SCREEN_NAME = "Activities";
+
+    @BindView(R.id.empty_list_view)
+    public LinearLayout emptyContentContainer;
+
+    @BindView(R.id.swipe_containing_list)
+    public SwipeRefreshLayout swipeListRefreshLayout;
+
+    @BindView(R.id.swipe_containing_empty)
+    public SwipeRefreshLayout swipeEmptyListRefreshLayout;
+
+    @BindView(R.id.empty_list_view_text)
+    public TextView emptyContentMessage;
+
+    @BindView(R.id.empty_list_view_headline)
+    public TextView emptyContentHeadline;
+
+    @BindView(R.id.empty_list_icon)
+    public ImageView emptyContentIcon;
+
+    @BindView(R.id.empty_list_progress)
+    public ProgressBar emptyContentProgressBar;
+
+    @BindView(android.R.id.list)
+    public RecyclerView recyclerView;
+
+    @BindView(R.id.bottom_navigation_view)
+    public BottomNavigationView bottomNavigationView;
+
+    @BindString(R.string.activities_no_results_headline)
+    public String noResultsHeadline;
+
+    @BindString(R.string.activities_no_results_message)
+    public String noResultsMessage;
+
+    private ActivityListAdapter adapter;
+    private Unbinder unbinder;
+    private OwnCloudClient ownCloudClient;
+    private AsyncTask<String, Object, OCFile> updateTask;
+
+    private String nextPageUrl;
+    private boolean isLoadingActivities;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        Log_OC.v(TAG, "onCreate() start");
+        super.onCreate(savedInstanceState);
+
+        setContentView(R.layout.activity_list_layout);
+        unbinder = ButterKnife.bind(this);
+
+        // setup toolbar
+        setupToolbar();
+
+        onCreateSwipeToRefresh(swipeEmptyListRefreshLayout);
+        onCreateSwipeToRefresh(swipeListRefreshLayout);
+
+        // setup drawer
+        setupDrawer(R.id.nav_activity);
+        ActionBar actionBar = getSupportActionBar();
+        if(actionBar != null) {
+            ThemeUtils.setColoredTitle(actionBar, getString(R.string.drawer_item_activities), this);
+        }
+
+        swipeListRefreshLayout.setOnRefreshListener(() -> {
+                    setLoadingMessage();
+                    if (swipeListRefreshLayout != null && swipeListRefreshLayout.isRefreshing()) {
+                        swipeListRefreshLayout.setRefreshing(false);
+                    }
+                    fetchAndSetData(null);
+                }
+        );
+
+        swipeEmptyListRefreshLayout.setOnRefreshListener(() -> {
+                    setLoadingMessage();
+                    if (swipeEmptyListRefreshLayout != null && swipeEmptyListRefreshLayout.isRefreshing()) {
+                        swipeEmptyListRefreshLayout.setRefreshing(false);
+                    }
+                    fetchAndSetData(null);
+                }
+        );
+    }
+
+    protected void onCreateSwipeToRefresh(SwipeRefreshLayout refreshLayout) {
+        int primaryColor = ThemeUtils.primaryColor(this);
+        int darkColor = ThemeUtils.primaryDarkColor(this);
+        int accentColor = ThemeUtils.primaryAccentColor(this);
+
+        // Colors in animations
+        refreshLayout.setColorSchemeColors(accentColor, primaryColor, darkColor);
+    }
+
+    public void onDestroy() {
+        super.onDestroy();
+        unbinder.unbind();
+    }
+
+    @Override
+    public void showFiles(boolean onDeviceOnly) {
+        super.showFiles(onDeviceOnly);
+        Intent i = new Intent(getApplicationContext(), FileDisplayActivity.class);
+        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+        startActivity(i);
+    }
+
+    /**
+     * sets up the UI elements and loads all activity items.
+     */
+    private void setupContent() {
+        emptyContentIcon.setImageResource(R.drawable.ic_activity_light_grey);
+        emptyContentProgressBar.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryAccentColor(this),
+                PorterDuff.Mode.SRC_IN);
+        setLoadingMessage();
+
+        FileDataStorageManager storageManager = new FileDataStorageManager(getAccount(), getContentResolver());
+        adapter = new ActivityListAdapter(this, this, storageManager);
+        recyclerView.setAdapter(adapter);
+
+        LinearLayoutManager layoutManager = new LinearLayoutManager(this);
+
+        recyclerView.setLayoutManager(layoutManager);
+        recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
+
+            @Override
+            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
+                super.onScrolled(recyclerView, dx, dy);
+
+                int visibleItemCount = recyclerView.getChildCount();
+                int totalItemCount = layoutManager.getItemCount();
+                int firstVisibleItemIndex = layoutManager.findFirstVisibleItemPosition();
+
+                // synchronize loading state when item count changes
+                if (!isLoadingActivities && (totalItemCount - visibleItemCount) <= (firstVisibleItemIndex + 5)
+                        && nextPageUrl != null && !nextPageUrl.isEmpty()) {
+                    // Almost reached the end, continue to load new activities
+                    fetchAndSetData(nextPageUrl);
+                }
+            }
+        });
+
+        if (getResources().getBoolean(R.bool.bottom_toolbar_enabled)) {
+            bottomNavigationView.setVisibility(View.VISIBLE);
+            DisplayUtils.setupBottomBar(bottomNavigationView, getResources(), this, -1);
+        }
+
+        fetchAndSetData(null);
+    }
+
+    /**
+     * @param pageUrl String
+     */
+    private void fetchAndSetData(String pageUrl) {
+        final Account currentAccount = AccountUtils.getCurrentOwnCloudAccount(MainApp.getAppContext());
+        final Context context = MainApp.getAppContext();
+
+        Thread t = new Thread(() -> {
+                OwnCloudAccount ocAccount;
+                try {
+                    ocAccount = new OwnCloudAccount(currentAccount, context);
+                    ownCloudClient = OwnCloudClientManagerFactory.getDefaultSingleton().
+                            getClientFor(ocAccount, MainApp.getAppContext());
+                    ownCloudClient.setOwnCloudVersion(AccountUtils.getServerVersion(currentAccount));
+                    isLoadingActivities = true;
+                    runOnUiThread(() -> setIndeterminate(isLoadingActivities));
+
+                    GetRemoteActivitiesOperation getRemoteNotificationOperation = new GetRemoteActivitiesOperation();
+                    if (pageUrl != null) {
+                        getRemoteNotificationOperation.setNextUrl(pageUrl);
+                    }
+
+                    Log_OC.d(TAG, "BEFORE getRemoteActivitiesOperation.execute");
+                    final RemoteOperationResult result = getRemoteNotificationOperation.execute(ownCloudClient);
+
+                    if (result.isSuccess() && result.getData() != null) {
+                        final ArrayList<Object> data = result.getData();
+                        final ArrayList<Object> activities = (ArrayList) data.get(0);
+                        nextPageUrl = (String) data.get(1);
+
+                        runOnUiThread(() -> {
+                            populateList(activities, ownCloudClient, pageUrl == null);
+                            if (activities.size() > 0) {
+                                swipeEmptyListRefreshLayout.setVisibility(View.GONE);
+                                swipeListRefreshLayout.setVisibility(View.VISIBLE);
+                            } else {
+                                setEmptyContent(noResultsHeadline, noResultsMessage);
+                                swipeListRefreshLayout.setVisibility(View.GONE);
+                                swipeEmptyListRefreshLayout.setVisibility(View.VISIBLE);
+                            }
+                            isLoadingActivities = false;
+                            setIndeterminate(isLoadingActivities);
+                        });
+                    } else {
+                        Log_OC.d(TAG, result.getLogMessage());
+                        // show error
+                        String logMessage = result.getLogMessage();
+                        if (result.getHttpCode() == 304) {
+                            logMessage = noResultsMessage;
+                        }
+                        final String finalLogMessage = logMessage;
+                        runOnUiThread(() -> {
+                            setEmptyContent(noResultsHeadline, finalLogMessage);
+                            isLoadingActivities = false;
+                            setIndeterminate(isLoadingActivities);
+                        });
+                    }
+
+                    hideRefreshLayoutLoader();
+                } catch (com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException e) {
+                    Log_OC.e(TAG, "Account not found", e);
+                } catch (IOException e) {
+                    Log_OC.e(TAG, "IO error", e);
+                } catch (OperationCanceledException e) {
+                    Log_OC.e(TAG, "Operation has been canceled", e);
+                } catch (AuthenticatorException e) {
+                    Log_OC.e(TAG, "Authentication Exception", e);
+                }
+            }
+        );
+
+        t.start();
+    }
+
+    private void hideRefreshLayoutLoader() {
+        runOnUiThread(() -> {
+            if (swipeListRefreshLayout != null) {
+                swipeListRefreshLayout.setRefreshing(false);
+            }
+            if (swipeEmptyListRefreshLayout != null) {
+                swipeEmptyListRefreshLayout.setRefreshing(false);
+            }
+            isLoadingActivities = false;
+            setIndeterminate(isLoadingActivities);
+        });
+    }
+
+    private void populateList(List<Object> activities, OwnCloudClient mClient, boolean clear) {
+        adapter.setActivityItems(activities, mClient, clear);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        boolean retval = true;
+
+        switch (item.getItemId()) {
+            case android.R.id.home:
+                if (isDrawerOpen()) {
+                    closeDrawer();
+                } else {
+                    openDrawer();
+                }
+                break;
+            default:
+                Log_OC.w(TAG, "Unknown menu item triggered");
+                retval = super.onOptionsItemSelected(item);
+                break;
+        }
+
+        return retval;
+    }
+
+    private void setLoadingMessage() {
+        emptyContentHeadline.setText(R.string.file_list_loading);
+        emptyContentMessage.setText("");
+
+        emptyContentIcon.setVisibility(View.GONE);
+        emptyContentProgressBar.setVisibility(View.VISIBLE);
+    }
+
+    private void setEmptyContent(String headline, String message) {
+        if (emptyContentContainer != null && emptyContentMessage != null) {
+            emptyContentHeadline.setText(headline);
+            emptyContentMessage.setText(message);
+
+            emptyContentProgressBar.setVisibility(View.GONE);
+            emptyContentIcon.setVisibility(View.VISIBLE);
+        }
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+
+        setupContent();
+
+        AnalyticsUtils.setCurrentScreenName(this, SCREEN_NAME, TAG);
+    }
+
+    @Override
+    protected void onStop() {
+        if (updateTask != null) {
+            updateTask.cancel(true);
+        }
+
+        super.onStop();
+    }
+
+    @Override
+    public void onActivityClicked(RichObject richObject) {
+        String path = FileUtils.PATH_SEPARATOR + richObject.getPath();
+
+        runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                swipeEmptyListRefreshLayout.setVisibility(View.VISIBLE);
+                swipeListRefreshLayout.setVisibility(View.GONE);
+                setLoadingMessage();
+            }
+        });
+
+        updateTask = new AsyncTask<String, Object, OCFile>() {
+            @Override
+            protected OCFile doInBackground(String... path) {
+                OCFile ocFile = null;
+
+                // always update file as it could be an old state saved in database
+                ReadRemoteFileOperation operation = new ReadRemoteFileOperation(path[0]);
+                RemoteOperationResult resultRemoteFileOp = operation.execute(ownCloudClient);
+                if (resultRemoteFileOp.isSuccess()) {
+                    OCFile temp = FileStorageUtils.fillOCFile((RemoteFile) resultRemoteFileOp.getData().get(0));
+
+                    ocFile = getStorageManager().saveFileWithParent(temp, getBaseContext());
+
+                    if (ocFile.isFolder()) {
+                        // perform folder synchronization
+                        RemoteOperation synchFolderOp = new RefreshFolderOperation(ocFile,
+                                System.currentTimeMillis(),
+                                false,
+                                getFileOperationsHelper().isSharedSupported(),
+                                true,
+                                getStorageManager(),
+                                getAccount(),
+                                getApplicationContext());
+                        synchFolderOp.execute(ownCloudClient);
+                    }
+                }
+
+                return ocFile;
+            }
+
+            @Override
+            protected void onPostExecute(OCFile ocFile) {
+                if (!isCancelled()) {
+                    if (ocFile == null) {
+                        Toast.makeText(getBaseContext(), R.string.file_not_found, Toast.LENGTH_LONG).show();
+
+                        swipeEmptyListRefreshLayout.setVisibility(View.GONE);
+                        swipeListRefreshLayout.setVisibility(View.VISIBLE);
+                        dismissLoadingDialog();
+
+                    } else {
+                        Intent showDetailsIntent;
+                        if (PreviewImageFragment.canBePreviewed(ocFile)) {
+                            showDetailsIntent = new Intent(getBaseContext(), PreviewImageActivity.class);
+                        } else {
+                            showDetailsIntent = new Intent(getBaseContext(), FileDisplayActivity.class);
+                        }
+                        showDetailsIntent.putExtra(EXTRA_FILE, ocFile);
+                        showDetailsIntent.putExtra(EXTRA_ACCOUNT, getAccount());
+                        startActivity(showDetailsIntent);
+                    }
+                }
+            }
+        };
+
+        updateTask.execute(path);
+    }
+}

+ 0 - 1
src/main/java/com/owncloud/android/ui/activity/ContactsPreferenceActivity.java

@@ -93,7 +93,6 @@ public class ContactsPreferenceActivity extends FileActivity implements FileFrag
                     intent.getParcelableExtra(ContactListFragment.ACCOUNT) == null) {
                 ContactsBackupFragment fragment = new ContactsBackupFragment();
                 Bundle bundle = new Bundle();
-                bundle.putParcelable(ContactListFragment.ACCOUNT, getAccount());
                 bundle.putBoolean(EXTRA_SHOW_SIDEBAR, showSidebar);
                 fragment.setArguments(bundle);
                 transaction.add(R.id.frame_container, fragment);

+ 8 - 8
src/main/java/com/owncloud/android/ui/activity/DrawerActivity.java

@@ -259,7 +259,7 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
         // Set the drawer toggle as the DrawerListener
         mDrawerLayout.addDrawerListener(mDrawerToggle);
         mDrawerToggle.setDrawerIndicatorEnabled(true);
-        mDrawerToggle.getDrawerArrowDrawable().setColor(ThemeUtils.fontColor());
+        mDrawerToggle.getDrawerArrowDrawable().setColor(ThemeUtils.fontColor(this));
     }
 
     /**
@@ -271,7 +271,7 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
         mAccountEndAccountAvatar = (ImageView) findNavigationViewChildById(R.id.drawer_account_end);
 
         mAccountChooserToggle = (ImageView) findNavigationViewChildById(R.id.drawer_account_chooser_toggle);
-        mAccountChooserToggle.setColorFilter(ThemeUtils.fontColor());
+        mAccountChooserToggle.setColorFilter(ThemeUtils.fontColor(this));
 
         if (getResources().getBoolean(R.bool.allow_profile_click)) {
             mAccountChooserToggle.setImageResource(R.drawable.ic_down);
@@ -296,7 +296,7 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
         mQuotaProgressBar = (ProgressBar) findQuotaViewById(R.id.drawer_quota_ProgressBar);
         mQuotaTextPercentage = (TextView) findQuotaViewById(R.id.drawer_quota_percentage);
         mQuotaTextLink = (TextView) findQuotaViewById(R.id.drawer_quota_link);
-        ThemeUtils.colorHorizontalProgressBar(mQuotaProgressBar, ThemeUtils.primaryAccentColor());
+        ThemeUtils.colorHorizontalProgressBar(mQuotaProgressBar, ThemeUtils.primaryAccentColor(this));
     }
 
     /**
@@ -331,7 +331,7 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
             navigationView.getMenu().setGroupVisible(R.id.drawer_menu_accounts, false);
         }
 
-        Account account = AccountUtils.getCurrentOwnCloudAccount(MainApp.getAppContext());
+        Account account = AccountUtils.getCurrentOwnCloudAccount(this);
         boolean searchSupported = AccountUtils.hasSearchSupport(account);
 
         if (getResources().getBoolean(R.bool.bottom_toolbar_enabled) && account != null) {
@@ -747,11 +747,11 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
             TextView username = (TextView) findNavigationViewChildById(R.id.drawer_username);
             TextView usernameFull = (TextView) findNavigationViewChildById(R.id.drawer_username_full);
             usernameFull.setText(account.name);
-            usernameFull.setTextColor(ThemeUtils.fontColor());
+            usernameFull.setTextColor(ThemeUtils.fontColor(this));
             try {
                 OwnCloudAccount oca = new OwnCloudAccount(account, this);
                 username.setText(oca.getDisplayName());
-                username.setTextColor(ThemeUtils.fontColor());
+                username.setTextColor(ThemeUtils.fontColor(this));
             } catch (com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException e) {
                 Log_OC.w(TAG, "Couldn't read display name of account fallback to account name");
                 username.setText(AccountUtils.getAccountUsername(account.name));
@@ -929,7 +929,7 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
                 }
             }
 
-            int elementColor = ThemeUtils.elementColor();
+            int elementColor = ThemeUtils.elementColor(this);
             ThemeUtils.tintDrawable(item.getIcon(), elementColor);
 
             String colorHex = ThemeUtils.colorToHexString(elementColor);
@@ -1069,7 +1069,7 @@ public abstract class DrawerActivity extends ToolbarActivity implements DisplayU
                 String background = capability.getServerBackground();
                 CapabilityBooleanType backgroundDefault = capability.getServerBackgroundDefault();
                 CapabilityBooleanType backgroundPlain = capability.getServerBackgroundPlain();
-                int primaryColor = ThemeUtils.primaryColor(getAccount());
+                int primaryColor = ThemeUtils.primaryColor(getAccount(), this);
 
                 if (backgroundDefault.isTrue() && backgroundPlain.isTrue()) {
                     // use only solid color

+ 3 - 16
src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -671,12 +671,12 @@ public class FileDisplayActivity extends HookActivity
         searchView = (SearchView) MenuItemCompat.getActionView(item);
 
         // hacky as no default way is provided
-        int fontColor = ThemeUtils.fontColor();
+        int fontColor = ThemeUtils.fontColor(this);
         EditText editText = searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
         editText.setHintTextColor(fontColor);
         editText.setTextColor(fontColor);
         ImageView searchClose = searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
-        searchClose.setColorFilter(ThemeUtils.fontColor());
+        searchClose.setColorFilter(ThemeUtils.fontColor(this));
 
         // populate list of menu items to show/hide when drawer is opened/closed
         mDrawerMenuItemstoShowHideList = new ArrayList<>(4);
@@ -1010,7 +1010,6 @@ public class FileDisplayActivity extends HookActivity
 
     @Override
     public void onBackPressed() {
-        boolean isFabOpen = isFabOpen();
         boolean isDrawerOpen = isDrawerOpen();
         boolean isSearchOpen = isSearchOpen();
 
@@ -1026,15 +1025,9 @@ public class FileDisplayActivity extends HookActivity
             searchView.setQuery("", true);
             searchView.onActionViewCollapsed();
             setDrawerIndicatorEnabled(isDrawerIndicatorAvailable());
-        } else if (isDrawerOpen && isFabOpen) {
+        } else if (isDrawerOpen) {
             // close drawer first
             super.onBackPressed();
-        } else if (isDrawerOpen && !isFabOpen) {
-            // close drawer
-            super.onBackPressed();
-        } else if (!isDrawerOpen && isFabOpen) {
-            // close fab
-            getListOfFilesFragment().getFabMain().collapse();
         } else {
             // all closed
 
@@ -1155,12 +1148,6 @@ public class FileDisplayActivity extends HookActivity
         Log_OC.v(TAG, "onPause() end");
     }
 
-    public boolean isFabOpen() {
-        return (getListOfFilesFragment() != null
-                && getListOfFilesFragment().getFabMain() != null
-                && getListOfFilesFragment().getFabMain().isExpanded());
-    }
-
     @Override
     public void onSortingOrderChosen(FileSortOrder selection) {
         getListOfFilesFragment().sortFiles(selection);

+ 8 - 8
src/main/java/com/owncloud/android/ui/activity/FingerprintActivity.java

@@ -96,16 +96,16 @@ public class FingerprintActivity extends AppCompatActivity {
         setContentView(R.layout.fingerprintlock);
 
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-            getWindow().setStatusBarColor(ThemeUtils.primaryDarkColor());
+            getWindow().setStatusBarColor(ThemeUtils.primaryDarkColor(this));
         }
 
-        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
-        toolbar.setTitleTextColor(ThemeUtils.fontColor());
-        toolbar.setBackground(new ColorDrawable(ThemeUtils.primaryColor()));
+        Toolbar toolbar = findViewById(R.id.toolbar);
+        toolbar.setTitleTextColor(ThemeUtils.fontColor(this));
+        toolbar.setBackground(new ColorDrawable(ThemeUtils.primaryColor(this)));
     }
 
     private void startFingerprint() {
-        TextView fingerprintTextView = (TextView) findViewById(R.id.scanfingerprinttext);
+        TextView fingerprintTextView = findViewById(R.id.scanfingerprinttext);
 
         FingerprintManager fingerprintManager =
                 (FingerprintManager) MainApp.getAppContext().getSystemService(Context.FINGERPRINT_SERVICE);
@@ -130,7 +130,7 @@ public class FingerprintActivity extends AppCompatActivity {
                     @Override
                     public void onFailed(String error) {
                         Toast.makeText(MainApp.getAppContext(), error, Toast.LENGTH_LONG).show();
-                        ImageView imageView = (ImageView) findViewById(R.id.fingerprinticon);
+                        ImageView imageView = findViewById(R.id.fingerprinticon);
                         int[][] states = new int[][]{
                                 new int[]{android.R.attr.state_activated},
                                 new int[]{-android.R.attr.state_activated}
@@ -159,8 +159,8 @@ public class FingerprintActivity extends AppCompatActivity {
         super.onResume();
         AnalyticsUtils.setCurrentScreenName(this, SCREEN_NAME, TAG);
         startFingerprint();
-        ImageView imageView = (ImageView)findViewById(R.id.fingerprinticon);
-        imageView.setImageDrawable(ThemeUtils.tintDrawable(R.drawable.ic_fingerprint, ThemeUtils.primaryColor()));
+        ImageView imageView = findViewById(R.id.fingerprinticon);
+        imageView.setImageDrawable(ThemeUtils.tintDrawable(R.drawable.ic_fingerprint, ThemeUtils.primaryColor(this)));
     }
 
     @Override

+ 3 - 3
src/main/java/com/owncloud/android/ui/activity/FolderPickerActivity.java

@@ -117,11 +117,11 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
                     mDoNotEnterEncryptedFolder = true;
                     break;
                 default:
-                    caption = ThemeUtils.getDefaultDisplayNameForRootFolder();
+                    caption = ThemeUtils.getDefaultDisplayNameForRootFolder(this);
                     break;
             }
         } else {
-            caption = ThemeUtils.getDefaultDisplayNameForRootFolder();
+            caption = ThemeUtils.getDefaultDisplayNameForRootFolder(this);
         }
 
         if (getIntent().getParcelableExtra(EXTRA_CURRENT_FOLDER) != null) {
@@ -398,7 +398,7 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
         mCancelBtn = findViewById(R.id.folder_picker_btn_cancel);
         mCancelBtn.setOnClickListener(this);
         mChooseBtn = findViewById(R.id.folder_picker_btn_choose);
-        mChooseBtn.getBackground().setColorFilter(ThemeUtils.primaryColor(), PorterDuff.Mode.SRC_ATOP);
+        mChooseBtn.getBackground().setColorFilter(ThemeUtils.primaryColor(this), PorterDuff.Mode.SRC_ATOP);
         mChooseBtn.setOnClickListener(this);
     }
     

+ 1 - 1
src/main/java/com/owncloud/android/ui/activity/LogHistoryActivity.java

@@ -82,7 +82,7 @@ public class LogHistoryActivity extends ToolbarActivity {
         }
         Button deleteHistoryButton = findViewById(R.id.deleteLogHistoryButton);
         Button sendHistoryButton = findViewById(R.id.sendLogHistoryButton);
-        sendHistoryButton.getBackground().setColorFilter(ThemeUtils.primaryAccentColor(), PorterDuff.Mode.SRC_ATOP);
+        sendHistoryButton.getBackground().setColorFilter(ThemeUtils.primaryAccentColor(this), PorterDuff.Mode.SRC_ATOP);
         TextView logTV = findViewById(R.id.logTV);
 
         deleteHistoryButton.setOnClickListener(new OnClickListener() {

+ 2 - 2
src/main/java/com/owncloud/android/ui/activity/ManageAccountsActivity.java

@@ -101,12 +101,12 @@ public class ManageAccountsActivity extends FileActivity
         super.onCreate(savedInstanceState);
 
         mTintedCheck = DrawableCompat.wrap(ContextCompat.getDrawable(this, R.drawable.ic_account_circle_white_18dp));
-        int tint = ThemeUtils.primaryColor();
+        int tint = ThemeUtils.primaryColor(this);
         DrawableCompat.setTint(mTintedCheck, tint);
 
         setContentView(R.layout.accounts_layout);
 
-        mListView = (ListView) findViewById(R.id.account_list);
+        mListView = findViewById(R.id.account_list);
 
         setupToolbar();
         updateActionBarTitleAndHomeButtonByString(getResources().getString(R.string.prefs_manage_accounts));

+ 2 - 2
src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java

@@ -136,7 +136,7 @@ public class NotificationsActivity extends FileActivity {
 
         // setup drawer
         setupDrawer(R.id.nav_notifications);
-        ThemeUtils.setColoredTitle(getSupportActionBar(), getString(R.string.drawer_item_notifications));
+        ThemeUtils.setColoredTitle(getSupportActionBar(), getString(R.string.drawer_item_notifications), this);
 
         swipeListRefreshLayout.setOnRefreshListener(() -> {
             setLoadingMessage();
@@ -227,7 +227,7 @@ public class NotificationsActivity extends FileActivity {
      */
     private void setupContent() {
         emptyContentIcon.setImageResource(R.drawable.ic_notification_light_grey);
-        emptyContentProgressBar.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryAccentColor(),
+        emptyContentProgressBar.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryAccentColor(this),
                 PorterDuff.Mode.SRC_IN);
         setLoadingMessage();
 

+ 13 - 13
src/main/java/com/owncloud/android/ui/activity/ParticipateActivity.java

@@ -58,7 +58,7 @@ public class ParticipateActivity extends FileActivity {
 
         if (getSupportActionBar() != null) {
             getSupportActionBar().setTitle(ThemeUtils.getColoredTitle(getString(R.string.drawer_participate),
-                    ThemeUtils.fontColor()));
+                    ThemeUtils.fontColor(this)));
         }
 
         setupContent();
@@ -71,43 +71,43 @@ public class ParticipateActivity extends FileActivity {
     }
 
     private void setupContent() {
-        TextView rcView = (TextView) findViewById(R.id.participate_release_candidate_text);
+        TextView rcView = findViewById(R.id.participate_release_candidate_text);
         rcView.setMovementMethod(LinkMovementMethod.getInstance());
 
-        TextView contributeIrcView = (TextView) findViewById(R.id.participate_contribute_irc_text);
+        TextView contributeIrcView = findViewById(R.id.participate_contribute_irc_text);
         contributeIrcView.setMovementMethod(LinkMovementMethod.getInstance());
         contributeIrcView.setText(Html.fromHtml(getString(R.string.participate_contribute_irc_text) + " " +
                 getString(R.string.participate_contribute_irc_text_link,
-                        ThemeUtils.colorToHexString(ThemeUtils.primaryColor()),
+                        ThemeUtils.colorToHexString(ThemeUtils.primaryColor(this)),
                         getString(R.string.irc_weblink))));
 
-        TextView contributeForumView = (TextView) findViewById(R.id.participate_contribute_forum_text);
+        TextView contributeForumView = findViewById(R.id.participate_contribute_forum_text);
         contributeForumView.setMovementMethod(LinkMovementMethod.getInstance());
         contributeForumView.setText(Html.fromHtml(getString(R.string.participate_contribute_forum_text) + " " +
                 getString(R.string.participate_contribute_forum_text_link,
-                        ThemeUtils.colorToHexString(ThemeUtils.primaryColor()),
+                        ThemeUtils.colorToHexString(ThemeUtils.primaryColor(this)),
                         getString(R.string.help_link), getString(R.string.participate_contribute_forum_forum))));
 
-        TextView contributeTranslationView = (TextView) findViewById(R.id.participate_contribute_translate_text);
+        TextView contributeTranslationView = findViewById(R.id.participate_contribute_translate_text);
         contributeTranslationView.setMovementMethod(LinkMovementMethod.getInstance());
         contributeTranslationView.setText(Html.fromHtml(
                 getString(R.string.participate_contribute_translate_link,
-                        ThemeUtils.colorToHexString(ThemeUtils.primaryColor()),
+                        ThemeUtils.colorToHexString(ThemeUtils.primaryColor(this)),
                         getString(R.string.translation_link),
                         getString(R.string.participate_contribute_translate_translate)) + " " +
                         getString(R.string.participate_contribute_translate_text)));
 
-        TextView contributeGithubView = (TextView) findViewById(R.id.participate_contribute_github_text);
+        TextView contributeGithubView = findViewById(R.id.participate_contribute_github_text);
         contributeGithubView.setMovementMethod(LinkMovementMethod.getInstance());
         contributeGithubView.setText(Html.fromHtml(
                 getString(R.string.participate_contribute_github_text,
                         getString(R.string.participate_contribute_github_text_link,
-                                ThemeUtils.colorToHexString(ThemeUtils.primaryColor()),
+                                ThemeUtils.colorToHexString(ThemeUtils.primaryColor(this)),
                                 getString(R.string.contributing_link)))));
 
-        AppCompatButton reportButton = (AppCompatButton) findViewById(R.id.participate_testing_report);
-        reportButton.getBackground().setColorFilter(ThemeUtils.primaryColor(), PorterDuff.Mode.SRC_ATOP);
-        reportButton.setTextColor(ThemeUtils.fontColor());
+        AppCompatButton reportButton = findViewById(R.id.participate_testing_report);
+        reportButton.getBackground().setColorFilter(ThemeUtils.primaryColor(this), PorterDuff.Mode.SRC_ATOP);
+        reportButton.setTextColor(ThemeUtils.fontColor(this));
         reportButton.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {

+ 20 - 19
src/main/java/com/owncloud/android/ui/activity/PassCodeActivity.java

@@ -92,31 +92,32 @@ public class PassCodeActivity extends AppCompatActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.passcodelock);
-        
-        mBCancel = (Button) findViewById(R.id.cancel);
-        mBCancel.getBackground().setColorFilter(ThemeUtils.primaryColor(), PorterDuff.Mode.SRC_ATOP);
 
-        mPassCodeHdr = (TextView) findViewById(R.id.header);
-        mPassCodeHdrExplanation = (TextView) findViewById(R.id.explanation);
+        int primaryColor = ThemeUtils.primaryColor(this);
+
+        mBCancel = findViewById(R.id.cancel);
+        mBCancel.getBackground().setColorFilter(primaryColor, PorterDuff.Mode.SRC_ATOP);
+
+        mPassCodeHdr = findViewById(R.id.header);
+        mPassCodeHdrExplanation = findViewById(R.id.explanation);
 
-        mPassCodeEditTexts[0] = (EditText) findViewById(R.id.txt0);
-        mPassCodeEditTexts[0].setTextColor(ThemeUtils.primaryColor());
-        mPassCodeEditTexts[0].getBackground().setColorFilter(ThemeUtils.primaryColor(), PorterDuff.Mode.SRC_ATOP);
+        mPassCodeEditTexts[0] = findViewById(R.id.txt0);
+        mPassCodeEditTexts[0].setTextColor(primaryColor);
+        mPassCodeEditTexts[0].getBackground().setColorFilter(primaryColor, PorterDuff.Mode.SRC_ATOP);
         mPassCodeEditTexts[0].requestFocus();
-        getWindow().setSoftInputMode(
-                android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
+        getWindow().setSoftInputMode(android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
 
-        mPassCodeEditTexts[1] = (EditText) findViewById(R.id.txt1);
-        mPassCodeEditTexts[1].setTextColor(ThemeUtils.primaryColor());
-        mPassCodeEditTexts[1].getBackground().setColorFilter(ThemeUtils.primaryColor(), PorterDuff.Mode.SRC_ATOP);
+        mPassCodeEditTexts[1] = findViewById(R.id.txt1);
+        mPassCodeEditTexts[1].setTextColor(primaryColor);
+        mPassCodeEditTexts[1].getBackground().setColorFilter(primaryColor, PorterDuff.Mode.SRC_ATOP);
 
-        mPassCodeEditTexts[2] = (EditText) findViewById(R.id.txt2);
-        mPassCodeEditTexts[2].setTextColor(ThemeUtils.primaryColor());
-        mPassCodeEditTexts[2].getBackground().setColorFilter(ThemeUtils.primaryColor(), PorterDuff.Mode.SRC_ATOP);
+        mPassCodeEditTexts[2] = findViewById(R.id.txt2);
+        mPassCodeEditTexts[2].setTextColor(primaryColor);
+        mPassCodeEditTexts[2].getBackground().setColorFilter(primaryColor, PorterDuff.Mode.SRC_ATOP);
 
-        mPassCodeEditTexts[3] = (EditText) findViewById(R.id.txt3);
-        mPassCodeEditTexts[3].setTextColor(ThemeUtils.primaryColor());
-        mPassCodeEditTexts[3].getBackground().setColorFilter(ThemeUtils.primaryColor(), PorterDuff.Mode.SRC_ATOP);
+        mPassCodeEditTexts[3] = findViewById(R.id.txt3);
+        mPassCodeEditTexts[3].setTextColor(primaryColor);
+        mPassCodeEditTexts[3].getBackground().setColorFilter(primaryColor, PorterDuff.Mode.SRC_ATOP);
 
         if (ACTION_CHECK.equals(getIntent().getAction())) {
             /// this is a pass code request; the user has to input the right value

+ 6 - 6
src/main/java/com/owncloud/android/ui/activity/Preferences.java

@@ -124,7 +124,7 @@ public class Preferences extends PreferenceActivity
     @Override
     public void onCreate(Bundle savedInstanceState) {
 
-        if (ThemeUtils.themingEnabled()) {
+        if (ThemeUtils.themingEnabled(this)) {
             setTheme(R.style.FallbackThemingTheme);
         }
 
@@ -141,7 +141,7 @@ public class Preferences extends PreferenceActivity
         // Register context menu for list of preferences.
         registerForContextMenu(getListView());
 
-        int accentColor = ThemeUtils.primaryAccentColor();
+        int accentColor = ThemeUtils.primaryAccentColor(this);
         String appVersion = getAppVersion();
         PreferenceScreen preferenceScreen = (PreferenceScreen) findPreference("preference_screen");
 
@@ -748,17 +748,17 @@ public class Preferences extends PreferenceActivity
     private void setupActionBar() {
         ActionBar actionBar = getDelegate().getSupportActionBar();
         actionBar.setDisplayHomeAsUpEnabled(true);
-        ThemeUtils.setColoredTitle(actionBar, getString(R.string.actionbar_settings));
-        actionBar.setBackgroundDrawable(new ColorDrawable(ThemeUtils.primaryColor()));
+        ThemeUtils.setColoredTitle(actionBar, getString(R.string.actionbar_settings), this);
+        actionBar.setBackgroundDrawable(new ColorDrawable(ThemeUtils.primaryColor(this)));
         getWindow().getDecorView().setBackgroundDrawable(new ColorDrawable(ResourcesCompat
                 .getColor(getResources(), R.color.background_color, null)));
 
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-            getWindow().setStatusBarColor(ThemeUtils.primaryDarkColor());
+            getWindow().setStatusBarColor(ThemeUtils.primaryDarkColor(this));
         }
 
         Drawable backArrow = getResources().getDrawable(R.drawable.ic_arrow_back);
-        actionBar.setHomeAsUpIndicator(ThemeUtils.tintDrawable(backArrow, ThemeUtils.fontColor()));
+        actionBar.setHomeAsUpIndicator(ThemeUtils.tintDrawable(backArrow, ThemeUtils.fontColor(this)));
 
         // For adding content description tag to a title field in the action bar
         int actionBarTitleId = getResources().getIdentifier("action_bar_title", "id", "android");

+ 7 - 7
src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java

@@ -291,7 +291,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
 
             mTintedCheck = DrawableCompat.wrap(ContextCompat.getDrawable(parent,
                     R.drawable.ic_account_circle_white_18dp));
-            int tint = ThemeUtils.primaryColor();
+            int tint = ThemeUtils.primaryColor(getContext());
             DrawableCompat.setTint(mTintedCheck, tint);
 
             mAccountListAdapter = new AccountListAdapter(parent, getAccountListItems(parent), mTintedCheck);
@@ -766,17 +766,17 @@ public class ReceiveExternalFilesActivity extends FileActivity
             }
             Button btnChooseFolder = findViewById(R.id.uploader_choose_folder);
                 btnChooseFolder.setOnClickListener(this);
-                btnChooseFolder.getBackground().setColorFilter(ThemeUtils.primaryColor(getAccount()),
+            btnChooseFolder.getBackground().setColorFilter(ThemeUtils.primaryColor(getAccount(), this),
                         PorterDuff.Mode.SRC_ATOP);
 
             if (getSupportActionBar() != null) {
                 getSupportActionBar().setBackgroundDrawable(new ColorDrawable(
-                        ThemeUtils.primaryColor(getAccount())));
+                        ThemeUtils.primaryColor(getAccount(), this)));
             }
 
-                ThemeUtils.colorStatusBar(this, ThemeUtils.primaryDarkColor(getAccount()));
+            ThemeUtils.colorStatusBar(this, ThemeUtils.primaryDarkColor(getAccount(), this));
 
-                ThemeUtils.colorToolbarProgressBar(this, ThemeUtils.primaryColor(getAccount()));
+            ThemeUtils.colorToolbarProgressBar(this, ThemeUtils.primaryColor(getAccount(), this));
 
             Button btnNewFolder = findViewById(R.id.uploader_cancel);
                 btnNewFolder.setOnClickListener(this);
@@ -791,7 +791,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
         mEmptyListHeadline = findViewById(R.id.empty_list_view_headline);
         mEmptyListIcon = findViewById(R.id.empty_list_icon);
         mEmptyListProgress = findViewById(R.id.empty_list_progress);
-        mEmptyListProgress.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryColor(),
+        mEmptyListProgress.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryColor(this),
                 PorterDuff.Mode.SRC_IN);
     }
 
@@ -802,7 +802,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
                 mEmptyListHeadline.setText(headline);
                 mEmptyListMessage.setText(message);
 
-                mEmptyListIcon.setImageDrawable(ThemeUtils.tintDrawable(icon, ThemeUtils.primaryColor()));
+                mEmptyListIcon.setImageDrawable(ThemeUtils.tintDrawable(icon, ThemeUtils.primaryColor(this)));
 
                 mEmptyListIcon.setVisibility(View.VISIBLE);
                 mEmptyListProgress.setVisibility(View.GONE);

+ 2 - 2
src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.java

@@ -151,11 +151,11 @@ public class SyncedFoldersActivity extends FileActivity implements SyncedFolderA
 
         ActionBar actionBar = getSupportActionBar();
         if (actionBar != null) {
-            ThemeUtils.setColoredTitle(getSupportActionBar(), getString(R.string.drawer_synced_folders));
+            ThemeUtils.setColoredTitle(getSupportActionBar(), getString(R.string.drawer_synced_folders), this);
             actionBar.setDisplayHomeAsUpEnabled(true);
         }
 
-        if (ThemeUtils.themingEnabled()) {
+        if (ThemeUtils.themingEnabled(this)) {
             setTheme(R.style.FallbackThemingTheme);
         }
     }

+ 16 - 13
src/main/java/com/owncloud/android/ui/activity/ToolbarActivity.java

@@ -51,29 +51,33 @@ public abstract class ToolbarActivity extends BaseActivity {
      * want to use the toolbar.
      */
     protected void setupToolbar(boolean useBackgroundImage) {
-        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
+        int primaryColor = ThemeUtils.primaryColor(this);
+        int primaryDarkColor = ThemeUtils.primaryDarkColor(this);
+        int fontColor = ThemeUtils.fontColor(this);
+
+        Toolbar toolbar = findViewById(R.id.toolbar);
         setSupportActionBar(toolbar);
 
-        mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
+        mProgressBar = findViewById(R.id.progressBar);
         if (mProgressBar != null) {
             mProgressBar.setIndeterminateDrawable(
                     ContextCompat.getDrawable(this, R.drawable.actionbar_progress_indeterminate_horizontal));
 
-            ThemeUtils.colorToolbarProgressBar(this, ThemeUtils.primaryColor());
+            ThemeUtils.colorToolbarProgressBar(this, ThemeUtils.primaryColor(this));
         }
 
-        ThemeUtils.colorStatusBar(this, ThemeUtils.primaryDarkColor());
+        ThemeUtils.colorStatusBar(this, primaryDarkColor);
 
         if (toolbar.getOverflowIcon() != null) {
-            ThemeUtils.tintDrawable(toolbar.getOverflowIcon(), ThemeUtils.fontColor());
+            ThemeUtils.tintDrawable(toolbar.getOverflowIcon(), fontColor);
         }
 
         if (toolbar.getNavigationIcon() != null) {
-            ThemeUtils.tintDrawable(toolbar.getNavigationIcon(), ThemeUtils.fontColor());
+            ThemeUtils.tintDrawable(toolbar.getNavigationIcon(), fontColor);
         }
 
         if (!useBackgroundImage) {
-            toolbar.setBackgroundColor(ThemeUtils.primaryColor());
+            toolbar.setBackgroundColor(primaryColor);
         }
     }
 
@@ -85,7 +89,7 @@ public abstract class ToolbarActivity extends BaseActivity {
      * Updates title bar and home buttons (state and icon).
      */
     protected void updateActionBarTitleAndHomeButton(OCFile chosenFile) {
-        String title = ThemeUtils.getDefaultDisplayNameForRootFolder();    // default
+        String title = ThemeUtils.getDefaultDisplayNameForRootFolder(this);    // default
         boolean inRoot;
 
         // choose the appropriate title
@@ -112,7 +116,7 @@ public abstract class ToolbarActivity extends BaseActivity {
 
         // set & color the chosen title
         ActionBar actionBar = getSupportActionBar();
-        ThemeUtils.setColoredTitle(actionBar, titleToSet);
+        ThemeUtils.setColoredTitle(actionBar, titleToSet, this);
 
         // set home button properties
         if (actionBar != null) {
@@ -120,9 +124,9 @@ public abstract class ToolbarActivity extends BaseActivity {
             actionBar.setDisplayShowTitleEnabled(true);
         }
 
-        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
+        Toolbar toolbar = findViewById(R.id.toolbar);
         if (toolbar != null && toolbar.getNavigationIcon() != null) {
-            ThemeUtils.tintDrawable(toolbar.getNavigationIcon(), ThemeUtils.fontColor());
+            ThemeUtils.tintDrawable(toolbar.getNavigationIcon(), ThemeUtils.fontColor(this));
         }
     }
 
@@ -133,8 +137,7 @@ public abstract class ToolbarActivity extends BaseActivity {
      * @return <code>true</code> if it is <code>null</code> or the root folder, else returns <code>false</code>
      */
     public boolean isRoot(OCFile file) {
-        return file == null ||
-                (file.isFolder() && file.getParentId() == FileDataStorageManager.ROOT_PARENT_ID);
+        return file == null || (file.isFolder() && file.getParentId() == FileDataStorageManager.ROOT_PARENT_ID);
     }
 
     /**

+ 13 - 4
src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java

@@ -60,6 +60,8 @@ import com.owncloud.android.utils.FileStorageUtils;
 import com.owncloud.android.utils.ThemeUtils;
 
 import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
 
 import static com.owncloud.android.db.PreferenceManager.getSortOrder;
 
@@ -153,15 +155,22 @@ public class UploadFilesActivity extends FileActivity implements
         findViewById(R.id.upload_files_btn_cancel).setOnClickListener(this);
 
         mUploadBtn = (AppCompatButton) findViewById(R.id.upload_files_btn_upload);
-        mUploadBtn.getBackground().setColorFilter(ThemeUtils.primaryAccentColor(), PorterDuff.Mode.SRC_ATOP);
+        mUploadBtn.getBackground().setColorFilter(ThemeUtils.primaryAccentColor(this), PorterDuff.Mode.SRC_ATOP);
         mUploadBtn.setOnClickListener(this);
 
         int localBehaviour = PreferenceManager.getUploaderBehaviour(this);
 
         // file upload spinner
         mBehaviourSpinner = findViewById(R.id.upload_files_spinner_behaviour);
-        ArrayAdapter<CharSequence> behaviourAdapter = ArrayAdapter.createFromResource(this,
-                R.array.upload_files_behaviour, android.R.layout.simple_spinner_item);
+
+        List<String> behaviours = new ArrayList<>();
+        behaviours.add(getString(R.string.uploader_upload_files_behaviour_move_to_nextcloud_folder,
+                ThemeUtils.getDefaultDisplayNameForRootFolder(this)));
+        behaviours.add(getString(R.string.uploader_upload_files_behaviour_only_upload));
+        behaviours.add(getString(R.string.uploader_upload_files_behaviour_upload_and_delete_from_source));
+
+        ArrayAdapter<String> behaviourAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item,
+                behaviours);
         behaviourAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
         mBehaviourSpinner.setAdapter(behaviourAdapter);
         mBehaviourSpinner.setSelection(localBehaviour);
@@ -357,7 +366,7 @@ public class UploadFilesActivity extends FileActivity implements
         if(checked) {
             selectAll.setIcon(R.drawable.ic_select_none);
         } else {
-            selectAll.setIcon(ThemeUtils.tintDrawable(R.drawable.ic_select_all, ThemeUtils.primaryColor()));
+            selectAll.setIcon(ThemeUtils.tintDrawable(R.drawable.ic_select_all, ThemeUtils.primaryColor(this)));
         }
     }
 

+ 5 - 5
src/main/java/com/owncloud/android/ui/activity/UserInfoActivity.java

@@ -147,7 +147,7 @@ public class UserInfoActivity extends FileActivity {
         setupToolbar(useBackgroundImage);
         updateActionBarTitleAndHomeButtonByString("");
 
-        mUserInfoList.setAdapter(new UserInfoAdapter(null, ThemeUtils.primaryColor(getAccount())));
+        mUserInfoList.setAdapter(new UserInfoAdapter(null, ThemeUtils.primaryColor(getAccount(), this)));
         mUserInfoList.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
 
         if (userInfo != null) {
@@ -197,7 +197,7 @@ public class UserInfoActivity extends FileActivity {
 
             emptyContentIcon.setVisibility(View.GONE);
             emptyContentMessage.setVisibility(View.GONE);
-            multiListProgressBar.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryColor(),
+            multiListProgressBar.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryColor(this),
                     PorterDuff.Mode.SRC_IN);
             multiListProgressBar.setVisibility(View.VISIBLE);
         }
@@ -223,7 +223,7 @@ public class UserInfoActivity extends FileActivity {
                 ImageView backgroundImageView = appBar.findViewById(R.id.drawer_header_background);
 
                 String background = getStorageManager().getCapability(account.name).getServerBackground();
-                int primaryColor = ThemeUtils.primaryColor(getAccount());
+                int primaryColor = ThemeUtils.primaryColor(getAccount(), this);
 
                 if (URLUtil.isValidUrl(background)) {
                     // background image
@@ -265,7 +265,7 @@ public class UserInfoActivity extends FileActivity {
         DisplayUtils.setAvatar(account, UserInfoActivity.this, mCurrentAccountAvatarRadiusDimension, getResources(),
                 getStorageManager(), avatar);
 
-        int tint = ThemeUtils.primaryColor(account);
+        int tint = ThemeUtils.primaryColor(account, this);
 
         if (!TextUtils.isEmpty(userInfo.getDisplayName())) {
             fullName.setText(userInfo.getDisplayName());
@@ -342,7 +342,7 @@ public class UserInfoActivity extends FileActivity {
         public void onStart() {
             super.onStart();
 
-            int color = ThemeUtils.primaryAccentColor();
+            int color = ThemeUtils.primaryAccentColor(getActivity());
 
             AlertDialog alertDialog = (AlertDialog) getDialog();
 

+ 2 - 2
src/main/java/com/owncloud/android/ui/activity/WhatsNewActivity.java

@@ -82,7 +82,7 @@ public class WhatsNewActivity extends FragmentActivity implements ViewPager.OnPa
         super.onCreate(savedInstanceState);
         setContentView(R.layout.whats_new_activity);
 
-        int fontColor = ThemeUtils.fontColor();
+        int fontColor = ThemeUtils.fontColor(this);
 
         mProgress = findViewById(R.id.progressIndicator);
         mPager = findViewById(R.id.contentPanel);
@@ -336,7 +336,7 @@ public class WhatsNewActivity extends FragmentActivity implements ViewPager.OnPa
                                  @Nullable ViewGroup container,
                                  @Nullable Bundle savedInstanceState) {
             View v = inflater.inflate(R.layout.whats_new_element, container, false);
-            int fontColor = ThemeUtils.fontColor();
+            int fontColor = ThemeUtils.fontColor(getContext());
 
             ImageView iv = v.findViewById(R.id.whatsNewImage);
             if (mItem.shouldShowImage()) {

+ 6 - 6
src/main/java/com/owncloud/android/ui/adapter/AccountListAdapter.java

@@ -72,11 +72,11 @@ public class AccountListAdapter extends ArrayAdapter<AccountListItem> implements
             view = inflater.inflate(R.layout.account_item, parent, false);
 
             viewHolder = new AccountViewHolderItem();
-            viewHolder.imageViewItem = (ImageView) view.findViewById(R.id.user_icon);
-            viewHolder.checkViewItem = (ImageView) view.findViewById(R.id.ticker);
+            viewHolder.imageViewItem = view.findViewById(R.id.user_icon);
+            viewHolder.checkViewItem = view.findViewById(R.id.ticker);
             viewHolder.checkViewItem.setImageDrawable(mTintedCheck);
-            viewHolder.usernameViewItem = (TextView) view.findViewById(R.id.user_name);
-            viewHolder.accountViewItem = (TextView) view.findViewById(R.id.account);
+            viewHolder.usernameViewItem = view.findViewById(R.id.user_name);
+            viewHolder.accountViewItem = view.findViewById(R.id.account);
 
             view.setTag(viewHolder);
         } else {
@@ -119,9 +119,9 @@ public class AccountListAdapter extends ArrayAdapter<AccountListItem> implements
         LayoutInflater inflater = mContext.getLayoutInflater();
         View actionView = inflater.inflate(R.layout.account_action, parent, false);
 
-        TextView userName = (TextView) actionView.findViewById(R.id.user_name);
+        TextView userName = actionView.findViewById(R.id.user_name);
         userName.setText(R.string.prefs_add_account);
-        userName.setTextColor(ThemeUtils.primaryColor());
+        userName.setTextColor(ThemeUtils.primaryColor(getContext()));
 
         ((ImageView) actionView.findViewById(R.id.user_icon)).setImageResource(R.drawable.ic_account_plus);
 

+ 1 - 1
src/main/java/com/owncloud/android/ui/adapter/ActivityListAdapter.java

@@ -260,7 +260,7 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
             // Folder
             fileIcon.setImageDrawable(
                     MimeTypeUtil.getFolderTypeIcon(file.isSharedWithMe() || file.isSharedWithSharee(),
-                            file.isSharedViaLink(), file.isEncrypted(), file.getMountType()));
+                            file.isSharedViaLink(), file.isEncrypted(), file.getMountType(), context));
         }
     }
 

+ 2 - 2
src/main/java/com/owncloud/android/ui/adapter/LocalFileListAdapter.java

@@ -177,7 +177,7 @@ public class LocalFileListAdapter extends RecyclerView.Adapter<RecyclerView.View
                     gridViewHolder.itemLayout.setBackgroundColor(mContext.getResources()
                             .getColor(R.color.selected_item_background));
                     gridViewHolder.checkbox.setImageDrawable(ThemeUtils.tintDrawable(R.drawable.ic_checkbox_marked,
-                            ThemeUtils.primaryColor()));
+                            ThemeUtils.primaryColor(mContext)));
                 } else {
                     gridViewHolder.itemLayout.setBackgroundColor(Color.WHITE);
                     gridViewHolder.checkbox.setImageResource(R.drawable.ic_checkbox_blank_outline);
@@ -225,7 +225,7 @@ public class LocalFileListAdapter extends RecyclerView.Adapter<RecyclerView.View
 
     private void setThumbnail(File file, ImageView thumbnailView) {
         if (file.isDirectory()) {
-            thumbnailView.setImageDrawable(MimeTypeUtil.getDefaultFolderIcon());
+            thumbnailView.setImageDrawable(MimeTypeUtil.getDefaultFolderIcon(mContext));
         } else {
             thumbnailView.setImageResource(R.drawable.file);
 

+ 4 - 3
src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java

@@ -262,7 +262,7 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
                 gridViewHolder.itemLayout.setBackgroundColor(mContext.getResources()
                         .getColor(R.color.selected_item_background));
                 gridViewHolder.checkbox.setImageDrawable(ThemeUtils.tintDrawable(R.drawable.ic_checkbox_marked,
-                        ThemeUtils.primaryColor()));
+                        ThemeUtils.primaryColor(mContext)));
             } else {
                 gridViewHolder.itemLayout.setBackgroundColor(Color.WHITE);
                 gridViewHolder.checkbox.setImageResource(R.drawable.ic_checkbox_blank_outline);
@@ -354,7 +354,8 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
     private void setThumbnail(OCFile file, ImageView thumbnailView) {
         if (file.isFolder()) {
             thumbnailView.setImageDrawable(MimeTypeUtil.getFolderTypeIcon(file.isSharedWithMe() ||
-                    file.isSharedWithSharee(), file.isSharedViaLink(), file.isEncrypted(), file.getMountType()));
+                            file.isSharedWithSharee(), file.isSharedViaLink(), file.isEncrypted(), file.getMountType(),
+                    mContext));
         } else {
             if ((MimeTypeUtil.isImage(file) || MimeTypeUtil.isVideo(file)) && file.getRemoteId() != null) {
                 // Thumbnail in cache?
@@ -402,7 +403,7 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
                 }
             } else {
                 thumbnailView.setImageDrawable(MimeTypeUtil.getFileTypeIcon(file.getMimetype(), file.getFileName(),
-                        mAccount));
+                        mAccount, mContext));
             }
         }
     }

+ 2 - 2
src/main/java/com/owncloud/android/ui/adapter/SyncedFolderAdapter.java

@@ -162,7 +162,7 @@ public class SyncedFolderAdapter extends SectionedRecyclerViewAdapter<SyncedFold
             File file = new File(mSyncFolderItems.get(section).getFilePaths().get(relativePosition));
 
             ThumbnailsCacheManager.MediaThumbnailGenerationTask task =
-                    new ThumbnailsCacheManager.MediaThumbnailGenerationTask(holder.image);
+                    new ThumbnailsCacheManager.MediaThumbnailGenerationTask(holder.image, mContext);
 
             ThumbnailsCacheManager.AsyncMediaThumbnailDrawable asyncDrawable =
                     new ThumbnailsCacheManager.AsyncMediaThumbnailDrawable(
@@ -249,7 +249,7 @@ public class SyncedFolderAdapter extends SectionedRecyclerViewAdapter<SyncedFold
     private void setSyncButtonActiveIcon(ImageButton syncStatusButton, boolean enabled) {
         if (enabled) {
             syncStatusButton.setImageDrawable(ThemeUtils.tintDrawable(R.drawable.ic_cloud_sync_on,
-                    ThemeUtils.primaryColor()));
+                    ThemeUtils.primaryColor(mContext)));
         } else {
             syncStatusButton.setImageResource(R.drawable.ic_cloud_sync_off);
         }

+ 7 - 3
src/main/java/com/owncloud/android/ui/adapter/UploadListAdapter.java

@@ -93,7 +93,7 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
 
         headerViewHolder.title.setText(String.format(mParentActivity.getString(R.string.uploads_view_group_header),
                 group.getGroupName(), group.getGroupItemCount()));
-        headerViewHolder.title.setTextColor(ThemeUtils.primaryAccentColor());
+        headerViewHolder.title.setTextColor(ThemeUtils.primaryAccentColor(mParentActivity));
     }
 
     @Override
@@ -190,7 +190,8 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
         String status = getStatusText(item);
         switch (item.getUploadStatus()) {
             case UPLOAD_IN_PROGRESS:
-                ThemeUtils.colorHorizontalProgressBar(itemViewHolder.progressBar, ThemeUtils.primaryAccentColor());
+                ThemeUtils.colorHorizontalProgressBar(itemViewHolder.progressBar,
+                        ThemeUtils.primaryAccentColor(mParentActivity));
                 itemViewHolder.progressBar.setProgress(0);
                 itemViewHolder.progressBar.setVisibility(View.VISIBLE);
 
@@ -382,7 +383,7 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
             }
         } else {
             itemViewHolder.thumbnail.setImageDrawable(MimeTypeUtil.getFileTypeIcon(item.getMimeType(), fileName,
-                    account));
+                    account, mParentActivity));
         }
     }
 
@@ -488,6 +489,9 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
                         status = mParentActivity.getString(
                                 R.string.uploads_view_upload_status_waiting_exit_power_save_mode);
                         break;
+                    case VIRUS_DETECTED:
+                        status = mParentActivity.getString(R.string.uploads_view_upload_status_virus_detected);
+                        break;
                     default:
                         status = "New fail result but no description for the user";
                         break;

+ 2 - 2
src/main/java/com/owncloud/android/ui/adapter/UploaderAdapter.java

@@ -94,7 +94,7 @@ public class UploaderAdapter extends SimpleAdapter {
         if (file.isFolder()) {
             fileIcon.setImageDrawable(MimeTypeUtil.getFolderTypeIcon(file.isSharedWithMe() ||
                             file.isSharedWithSharee(), file.isSharedViaLink(), file.isEncrypted(), mAccount,
-                    file.getMountType()));
+                    file.getMountType(), mContext));
         } else {
             // get Thumbnail if file is image
             if (MimeTypeUtil.isImage(file) && file.getRemoteId() != null) {
@@ -128,7 +128,7 @@ public class UploaderAdapter extends SimpleAdapter {
                 }
             } else {
                 fileIcon.setImageDrawable(
-                        MimeTypeUtil.getFileTypeIcon(file.getMimetype(), file.getFileName(), mAccount)
+                        MimeTypeUtil.getFileTypeIcon(file.getMimetype(), file.getFileName(), mAccount, mContext)
                 );
             }
         }

+ 10 - 8
src/main/java/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.java

@@ -24,6 +24,7 @@ import android.app.Dialog;
 import android.content.DialogInterface;
 import android.graphics.PorterDuff;
 import android.os.Bundle;
+import android.support.annotation.NonNull;
 import android.support.v4.app.DialogFragment;
 import android.support.v7.app.AlertDialog;
 import android.view.LayoutInflater;
@@ -72,25 +73,26 @@ public class CreateFolderDialogFragment
     public void onStart() {
         super.onStart();
 
-        int color = ThemeUtils.primaryAccentColor();
+        int color = ThemeUtils.primaryAccentColor(getContext());
 
         AlertDialog alertDialog = (AlertDialog) getDialog();
 
         alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(color);
         alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(color);
     }
-    
+
+    @NonNull
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
-        int accentColor = ThemeUtils.primaryAccentColor();
+        int accentColor = ThemeUtils.primaryAccentColor(getContext());
         mParentFolder = getArguments().getParcelable(ARG_PARENT_FOLDER);
-        
+
         // Inflate the layout for the dialog
         LayoutInflater inflater = getActivity().getLayoutInflater();
         View v = inflater.inflate(R.layout.edit_box_dialog, null);
-        
+
         // Setup layout 
-        EditText inputText = ((EditText)v.findViewById(R.id.user_input));
+        EditText inputText = v.findViewById(R.id.user_input);
         inputText.setText("");
         inputText.requestFocus();
         inputText.getBackground().setColorFilter(accentColor, PorterDuff.Mode.SRC_ATOP);
@@ -98,8 +100,8 @@ public class CreateFolderDialogFragment
         // Build the dialog  
         AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
         builder.setView(v)
-               .setPositiveButton(R.string.common_ok, this)
-               .setNegativeButton(R.string.common_cancel, this)
+                .setPositiveButton(R.string.common_ok, this)
+                .setNegativeButton(R.string.common_cancel, this)
                 .setTitle(ThemeUtils.getColoredTitle(getResources().getString(R.string.uploader_info_dirname),
                         accentColor));
         Dialog d = builder.create();

+ 4 - 2
src/main/java/com/owncloud/android/ui/dialog/IndeterminateProgressDialog.java

@@ -24,6 +24,7 @@ import android.app.ProgressDialog;
 import android.content.DialogInterface;
 import android.content.DialogInterface.OnKeyListener;
 import android.os.Bundle;
+import android.support.annotation.NonNull;
 import android.support.v4.app.DialogFragment;
 import android.view.KeyEvent;
 import android.widget.ProgressBar;
@@ -59,6 +60,7 @@ public class IndeterminateProgressDialog extends DialogFragment {
     /**
      * {@inheritDoc}
      */
+    @NonNull
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         /// create indeterminate progress dialog
@@ -67,8 +69,8 @@ public class IndeterminateProgressDialog extends DialogFragment {
         progressDialog.setOnShowListener(new DialogInterface.OnShowListener() {
             @Override
             public void onShow(DialogInterface dialog) {
-                ProgressBar v = (ProgressBar) progressDialog.findViewById(android.R.id.progress);
-                v.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryAccentColor(),
+                ProgressBar v = progressDialog.findViewById(android.R.id.progress);
+                v.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryAccentColor(getContext()),
                         android.graphics.PorterDuff.Mode.MULTIPLY);
 
             }

+ 6 - 4
src/main/java/com/owncloud/android/ui/dialog/LoadingDialog.java

@@ -21,6 +21,7 @@ package com.owncloud.android.ui.dialog;
 import android.app.Dialog;
 import android.graphics.PorterDuff;
 import android.os.Bundle;
+import android.support.annotation.NonNull;
 import android.support.v4.app.DialogFragment;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -59,17 +60,18 @@ public class LoadingDialog extends DialogFragment {
         View v = inflater.inflate(R.layout.loading_dialog, container,  false);
         
         // set value
-        TextView tv  = (TextView) v.findViewById(R.id.loadingText);
+        TextView tv = v.findViewById(R.id.loadingText);
         tv.setText(mMessage);
 
         // set progress wheel color
-        ProgressBar progressBar  = (ProgressBar) v.findViewById(R.id.loadingBar);
-        progressBar.getIndeterminateDrawable().setColorFilter(
-                ThemeUtils.primaryAccentColor(), PorterDuff.Mode.SRC_IN);
+        ProgressBar progressBar = v.findViewById(R.id.loadingBar);
+        progressBar.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryAccentColor(getContext()),
+                PorterDuff.Mode.SRC_IN);
         
         return v;
     }
 
+    @NonNull
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         Dialog dialog = super.onCreateDialog(savedInstanceState);

+ 10 - 8
src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.java

@@ -30,6 +30,7 @@ import android.app.Dialog;
 import android.content.DialogInterface;
 import android.graphics.PorterDuff;
 import android.os.Bundle;
+import android.support.annotation.NonNull;
 import android.support.v4.app.DialogFragment;
 import android.support.v7.app.AlertDialog;
 import android.view.LayoutInflater;
@@ -77,7 +78,7 @@ public class RenameFileDialogFragment
     public void onStart() {
         super.onStart();
 
-        int color = ThemeUtils.primaryAccentColor();
+        int color = ThemeUtils.primaryAccentColor(getContext());
 
         AlertDialog alertDialog = (AlertDialog) getDialog();
 
@@ -85,35 +86,36 @@ public class RenameFileDialogFragment
         alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(color);
     }
 
+    @NonNull
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
-        int accentColor = ThemeUtils.primaryAccentColor();
+        int accentColor = ThemeUtils.primaryAccentColor(getContext());
         mTargetFile = getArguments().getParcelable(ARG_TARGET_FILE);
 
         // Inflate the layout for the dialog
         LayoutInflater inflater = getActivity().getLayoutInflater();
         View v = inflater.inflate(R.layout.edit_box_dialog, null);
-        
+
         // Setup layout 
         String currentName = mTargetFile.getFileName();
-        EditText inputText = ((EditText)v.findViewById(R.id.user_input));
+        EditText inputText = v.findViewById(R.id.user_input);
         inputText.setText(currentName);
         int selectionStart = 0;
         int extensionStart = mTargetFile.isFolder() ? -1 : currentName.lastIndexOf('.');
         int selectionEnd = (extensionStart >= 0) ? extensionStart : currentName.length();
         if (selectionStart >= 0 && selectionEnd >= 0) {
             inputText.setSelection(
-                    Math.min(selectionStart, selectionEnd), 
+                    Math.min(selectionStart, selectionEnd),
                     Math.max(selectionStart, selectionEnd));
         }
         inputText.requestFocus();
         inputText.getBackground().setColorFilter(accentColor, PorterDuff.Mode.SRC_ATOP);
-        
+
         // Build the dialog  
         AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
         builder.setView(v)
-               .setPositiveButton(R.string.common_ok, this)
-               .setNegativeButton(R.string.common_cancel, this)
+                .setPositiveButton(R.string.common_ok, this)
+                .setNegativeButton(R.string.common_cancel, this)
                 .setTitle(ThemeUtils.getColoredTitle(getResources().getString(R.string.rename_dialog_title),
                         accentColor));
         Dialog d = builder.create();

+ 3 - 2
src/main/java/com/owncloud/android/ui/dialog/SendShareDialog.java

@@ -146,8 +146,9 @@ public class SendShareDialog extends BottomSheetDialogFragment {
     }
 
     private void themeShareButtonImage(ImageView shareImageView) {
-        shareImageView.getBackground().setColorFilter(ThemeUtils.elementColor(), PorterDuff.Mode.SRC_IN);
-        shareImageView.getDrawable().mutate().setColorFilter(ThemeUtils.fontColor(), PorterDuff.Mode.SRC_IN);
+        shareImageView.getBackground().setColorFilter(ThemeUtils.elementColor(getContext()), PorterDuff.Mode.SRC_IN);
+        shareImageView.getDrawable().mutate().setColorFilter(ThemeUtils.fontColor(getContext()),
+                PorterDuff.Mode.SRC_IN);
     }
 
     private void showResharingNotAllowedSnackbar() {

+ 9 - 6
src/main/java/com/owncloud/android/ui/dialog/SetupEncryptionDialogFragment.java

@@ -28,6 +28,7 @@ import android.graphics.PorterDuff;
 import android.graphics.drawable.Drawable;
 import android.os.AsyncTask;
 import android.os.Bundle;
+import android.support.annotation.NonNull;
 import android.support.v4.app.DialogFragment;
 import android.support.v4.graphics.drawable.DrawableCompat;
 import android.support.v7.app.AlertDialog;
@@ -106,7 +107,7 @@ public class SetupEncryptionDialogFragment extends DialogFragment {
     public void onStart() {
         super.onStart();
 
-        int color = ThemeUtils.primaryAccentColor();
+        int color = ThemeUtils.primaryAccentColor(getContext());
 
         AlertDialog alertDialog = (AlertDialog) getDialog();
 
@@ -120,9 +121,10 @@ public class SetupEncryptionDialogFragment extends DialogFragment {
         task.execute();
     }
 
+    @NonNull
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
-        int accentColor = ThemeUtils.primaryAccentColor();
+        int accentColor = ThemeUtils.primaryAccentColor(getContext());
         account = getArguments().getParcelable(ARG_ACCOUNT);
 
         arbitraryDataProvider = new ArbitraryDataProvider(getContext().getContentResolver());
@@ -207,12 +209,13 @@ public class SetupEncryptionDialogFragment extends DialogFragment {
                                 positiveButton.setVisibility(View.GONE);
                                 negativeButton.setVisibility(View.GONE);
                                 getDialog().setTitle(ThemeUtils.getColoredTitle(getString(
-                                        R.string.end_to_end_encryption_storing_keys), ThemeUtils.primaryColor()));
+                                        R.string.end_to_end_encryption_storing_keys),
+                                        ThemeUtils.primaryColor(getContext())));
 
                                 GenerateNewKeysAsyncTask newKeysTask = new GenerateNewKeysAsyncTask();
                                 newKeysTask.execute();
                                 break;
-                            
+
                             default:
                                 dialog.dismiss();
                                 break;
@@ -292,7 +295,7 @@ public class SetupEncryptionDialogFragment extends DialogFragment {
 
                     getDialog().setTitle(ThemeUtils.getColoredTitle(
                             getString(R.string.end_to_end_encryption_passphrase_title),
-                            ThemeUtils.primaryColor()));
+                            ThemeUtils.primaryColor(getContext())));
 
                     textView.setText(R.string.end_to_end_encryption_keywords_description);
 
@@ -418,7 +421,7 @@ public class SetupEncryptionDialogFragment extends DialogFragment {
                 keyResult = KEY_FAILED;
 
                 getDialog().setTitle(ThemeUtils.getColoredTitle(
-                        getString(R.string.common_error), ThemeUtils.primaryColor()));
+                        getString(R.string.common_error), ThemeUtils.primaryColor(getContext())));
                 textView.setText(R.string.end_to_end_encryption_unsuccessful);
                 positiveButton.setText(R.string.end_to_end_encryption_dialog_close);
                 positiveButton.setVisibility(View.VISIBLE);

+ 9 - 7
src/main/java/com/owncloud/android/ui/dialog/SharePasswordDialogFragment.java

@@ -22,6 +22,7 @@ import android.app.Dialog;
 import android.content.DialogInterface;
 import android.graphics.PorterDuff;
 import android.os.Bundle;
+import android.support.annotation.NonNull;
 import android.support.design.widget.Snackbar;
 import android.support.v4.app.DialogFragment;
 import android.support.v7.app.AlertDialog;
@@ -57,8 +58,8 @@ public class SharePasswordDialogFragment extends DialogFragment
         super.onStart();
 
         AlertDialog alertDialog = (AlertDialog) getDialog();
-        alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(ThemeUtils.primaryAccentColor());
-        alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(ThemeUtils.primaryAccentColor());
+        alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(ThemeUtils.primaryAccentColor(getContext()));
+        alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(ThemeUtils.primaryAccentColor(getContext()));
     }
 
     /**
@@ -79,6 +80,7 @@ public class SharePasswordDialogFragment extends DialogFragment
         return frag;
     }
 
+    @NonNull
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         mFile = getArguments().getParcelable(ARG_FILE);
@@ -89,8 +91,8 @@ public class SharePasswordDialogFragment extends DialogFragment
         View v = inflater.inflate(R.layout.password_dialog, null);
 
         // Setup layout
-        EditText inputText = ((EditText)v.findViewById(R.id.share_password));
-        inputText.getBackground().setColorFilter(ThemeUtils.primaryAccentColor(), PorterDuff.Mode.SRC_ATOP);
+        EditText inputText = v.findViewById(R.id.share_password);
+        inputText.getBackground().setColorFilter(ThemeUtils.primaryAccentColor(getContext()), PorterDuff.Mode.SRC_ATOP);
         inputText.setText("");
         inputText.requestFocus();
 
@@ -98,9 +100,9 @@ public class SharePasswordDialogFragment extends DialogFragment
         AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),
                 R.style.Theme_ownCloud_Dialog_NoButtonBarStyle);
         builder.setView(v)
-               .setPositiveButton(R.string.common_ok, this)
-               .setNegativeButton(R.string.common_cancel, this)
-               .setTitle(R.string.share_link_password_title);
+                .setPositiveButton(R.string.common_ok, this)
+                .setNegativeButton(R.string.common_cancel, this)
+                .setTitle(R.string.share_link_password_title);
         Dialog d = builder.create();
         d.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
         return d;

+ 2 - 2
src/main/java/com/owncloud/android/ui/dialog/SortingOrderDialogFragment.java

@@ -94,7 +94,7 @@ public class SortingOrderDialogFragment extends DialogFragment {
      */
     private void setupDialogElements(View view) {
         mCancel = view.findViewById(R.id.cancel);
-        mCancel.setTextColor(ThemeUtils.primaryAccentColor());
+        mCancel.setTextColor(ThemeUtils.primaryAccentColor(getContext()));
 
         mTaggedViews = new View[12];
         mTaggedViews[0] = view.findViewById(R.id.sortByNameAscending);
@@ -129,7 +129,7 @@ public class SortingOrderDialogFragment extends DialogFragment {
      * tints the icon reflecting the actual sorting choice in the apps primary color.
      */
     private void setupActiveOrderSelection() {
-        final int color = ThemeUtils.primaryAccentColor();
+        final int color = ThemeUtils.primaryAccentColor(getContext());
         for (View view: mTaggedViews) {
             if (!((FileSortOrder)view.getTag()).mName.equals(mCurrentSortOrderName)) {
                 continue;

+ 11 - 11
src/main/java/com/owncloud/android/ui/dialog/SyncedFolderPreferencesDialogFragment.java

@@ -136,7 +136,7 @@ public class SyncedFolderPreferencesDialogFragment extends DialogFragment {
      * @param view the parent view
      */
     private void setupDialogElements(View view) {
-        int accentColor = ThemeUtils.primaryAccentColor();
+        int accentColor = ThemeUtils.primaryAccentColor(getContext());
 
         if (mSyncedFolder.getType().getId() > MediaFolderType.CUSTOM.getId()) {
             // hide local folder chooser and delete for non-custom folders
@@ -164,12 +164,12 @@ public class SyncedFolderPreferencesDialogFragment extends DialogFragment {
         mEnabledSwitch = view.findViewById(R.id.sync_enabled);
         ThemeUtils.tintSwitch(mEnabledSwitch, accentColor);
 
-        mLocalFolderPath = (TextView) view.findViewById(R.id.synced_folders_settings_local_folder_path);
+        mLocalFolderPath = view.findViewById(R.id.synced_folders_settings_local_folder_path);
 
-        mLocalFolderSummary = (TextView) view.findViewById(R.id.local_folder_summary);
-        mRemoteFolderSummary = (TextView) view.findViewById(R.id.remote_folder_summary);
+        mLocalFolderSummary = view.findViewById(R.id.local_folder_summary);
+        mRemoteFolderSummary = view.findViewById(R.id.remote_folder_summary);
 
-        mUploadOnWifiCheckbox = (AppCompatCheckBox) view.findViewById(R.id.setting_instant_upload_on_wifi_checkbox);
+        mUploadOnWifiCheckbox = view.findViewById(R.id.setting_instant_upload_on_wifi_checkbox);
         ThemeUtils.tintCheckbox(mUploadOnWifiCheckbox, accentColor);
 
         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
@@ -177,21 +177,21 @@ public class SyncedFolderPreferencesDialogFragment extends DialogFragment {
         } else {
             view.findViewById(R.id.setting_instant_upload_on_charging_container).setVisibility(View.VISIBLE);
 
-            mUploadOnChargingCheckbox = (AppCompatCheckBox) view.findViewById(
+            mUploadOnChargingCheckbox = view.findViewById(
                     R.id.setting_instant_upload_on_charging_checkbox);
             ThemeUtils.tintCheckbox(mUploadOnChargingCheckbox, accentColor);
         }
 
-        mUploadUseSubfoldersCheckbox = (AppCompatCheckBox) view.findViewById(
+        mUploadUseSubfoldersCheckbox = view.findViewById(
                 R.id.setting_instant_upload_path_use_subfolders_checkbox);
         ThemeUtils.tintCheckbox(mUploadUseSubfoldersCheckbox, accentColor);
 
-        mUploadBehaviorSummary = (TextView) view.findViewById(R.id.setting_instant_behaviour_summary);
+        mUploadBehaviorSummary = view.findViewById(R.id.setting_instant_behaviour_summary);
 
-        mCancel = (AppCompatButton) view.findViewById(R.id.cancel);
+        mCancel = view.findViewById(R.id.cancel);
         mCancel.setTextColor(accentColor);
 
-        mSave = (AppCompatButton) view.findViewById(R.id.save);
+        mSave = view.findViewById(R.id.save);
         mSave.setTextColor(accentColor);
 
         // Set values
@@ -393,7 +393,7 @@ public class SyncedFolderPreferencesDialogFragment extends DialogFragment {
         AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
         builder.setTitle(ThemeUtils.getColoredTitle(
                 getResources().getString(R.string.prefs_instant_behaviour_dialogTitle),
-                ThemeUtils.primaryAccentColor()))
+                ThemeUtils.primaryAccentColor(getContext())))
                 .setSingleChoiceItems(getResources().getTextArray(R.array.pref_behaviour_entries),
                         mSyncedFolder.getUploadActionInteger(),
                         new

+ 3 - 2
src/main/java/com/owncloud/android/ui/fragment/EditShareFragment.java

@@ -144,7 +144,8 @@ public class EditShareFragment extends Fragment {
                 getResources().getString(R.string.share_with_edit_title, mShare.getSharedWithDisplayName()));
 
         View headerDivider = view.findViewById(R.id.share_header_divider);
-        headerDivider.getBackground().setColorFilter(ThemeUtils.primaryAccentColor(), PorterDuff.Mode.SRC_ATOP);
+        headerDivider.getBackground().setColorFilter(ThemeUtils.primaryAccentColor(getContext()),
+                PorterDuff.Mode.SRC_ATOP);
 
         // Setup layout
         refreshUiFromState(view);
@@ -181,7 +182,7 @@ public class EditShareFragment extends Fragment {
             OwnCloudVersion serverVersion = AccountUtils.getServerVersion(mAccount);
             boolean isNotReshareableFederatedSupported = serverVersion.isNotReshareableFederatedSupported();
 
-            int accentColor = ThemeUtils.primaryAccentColor();
+            int accentColor = ThemeUtils.primaryAccentColor(getContext());
 
             SwitchCompat shareSwitch = editShareView.findViewById(R.id.canShareSwitch);
             ThemeUtils.tintSwitch(shareSwitch, accentColor, true);

+ 12 - 48
src/main/java/com/owncloud/android/ui/fragment/ExtendedListFragment.java

@@ -31,6 +31,7 @@ import android.os.Looper;
 import android.support.annotation.DrawableRes;
 import android.support.annotation.StringRes;
 import android.support.design.widget.BottomNavigationView;
+import android.support.design.widget.FloatingActionButton;
 import android.support.v4.app.Fragment;
 import android.support.v4.view.MenuItemCompat;
 import android.support.v4.widget.SwipeRefreshLayout;
@@ -58,9 +59,6 @@ import android.widget.ProgressBar;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
-import com.getbase.floatingactionbutton.AddFloatingActionButton;
-import com.getbase.floatingactionbutton.FloatingActionButton;
-import com.getbase.floatingactionbutton.FloatingActionsMenu;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AccountUtils;
@@ -109,10 +107,7 @@ public class ExtendedListFragment extends Fragment
     protected ImageView mEmptyListIcon;
     protected ProgressBar mEmptyListProgress;
 
-    private FloatingActionsMenu mFabMain;
-    private FloatingActionButton mFabUpload;
-    private FloatingActionButton mFabMkdir;
-    private FloatingActionButton mFabUploadFromApp;
+    private FloatingActionButton mFabMain;
 
     // Save the state of the scroll in browsing
     private ArrayList<Integer> mIndexes;
@@ -156,19 +151,7 @@ public class ExtendedListFragment extends Fragment
         return mRecyclerView;
     }
 
-    public FloatingActionButton getFabUpload() {
-        return mFabUpload;
-    }
-
-    public FloatingActionButton getFabUploadFromApp() {
-        return mFabUploadFromApp;
-    }
-
-    public FloatingActionButton getFabMkdir() {
-        return mFabMkdir;
-    }
-
-    public FloatingActionsMenu getFabMain() {
+    public FloatingActionButton getFabMain() {
         return mFabMain;
     }
 
@@ -215,9 +198,6 @@ public class ExtendedListFragment extends Fragment
         searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
             @Override
             public void onFocusChange(View v, final boolean hasFocus) {
-                if (hasFocus) {
-                    mFabMain.collapse();
-                }
 
                 handler.postDelayed(new Runnable() {
                     @Override
@@ -270,7 +250,7 @@ public class ExtendedListFragment extends Fragment
             }
         });
 
-        int fontColor = ThemeUtils.fontColor();
+        int fontColor = ThemeUtils.fontColor(getContext());
 
         LinearLayout searchBar = searchView.findViewById(R.id.search_bar);
         TextView searchBadge = searchView.findViewById(R.id.search_badge);
@@ -390,11 +370,7 @@ public class ExtendedListFragment extends Fragment
         onCreateSwipeToRefresh(mRefreshListLayout);
 
         mFabMain = v.findViewById(R.id.fab_main);
-        mFabUpload = v.findViewById(R.id.fab_upload);
-        mFabMkdir = v.findViewById(R.id.fab_mkdir);
-        mFabUploadFromApp = v.findViewById(R.id.fab_upload_from_app);
-
-        applyFABTheming();
+        ThemeUtils.tintFloatingActionButton(mFabMain, R.drawable.ic_plus, getContext());
 
         boolean searchSupported = AccountUtils.hasSearchSupport(AccountUtils.
                 getCurrentOwnCloudAccount(MainApp.getAppContext()));
@@ -447,7 +423,8 @@ public class ExtendedListFragment extends Fragment
         mEmptyListHeadline = view.findViewById(R.id.empty_list_view_headline);
         mEmptyListIcon = view.findViewById(R.id.empty_list_icon);
         mEmptyListProgress = view.findViewById(R.id.empty_list_progress);
-        mEmptyListProgress.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryColor(), PorterDuff.Mode.SRC_IN);
+        mEmptyListProgress.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryColor(getContext()),
+                PorterDuff.Mode.SRC_IN);
     }
 
     /**
@@ -619,21 +596,7 @@ public class ExtendedListFragment extends Fragment
         }
     }
 
-
     /**
-     * Set tinting of FAB's from server data
-     */
-    private void applyFABTheming() {
-        AddFloatingActionButton addButton = getFabMain().getAddButton();
-        addButton.setColorNormal(ThemeUtils.primaryColor());
-        addButton.setColorPressed(ThemeUtils.primaryDarkColor());
-        addButton.setPlusColor(ThemeUtils.fontColor());
-
-        ThemeUtils.tintFloatingActionButton(getFabUpload(), R.drawable.ic_action_upload);
-        ThemeUtils.tintFloatingActionButton(getFabMkdir(), R.drawable.ic_action_create_dir);
-        ThemeUtils.tintFloatingActionButton(getFabUploadFromApp(), R.drawable.ic_import);
-    }
-
     /**
      * Set message for empty list view.
      */
@@ -674,7 +637,8 @@ public class ExtendedListFragment extends Fragment
                     mEmptyListMessage.setText(message);
 
                     if (tintIcon) {
-                        mEmptyListIcon.setImageDrawable(ThemeUtils.tintDrawable(icon, ThemeUtils.primaryColor()));
+                        mEmptyListIcon.setImageDrawable(ThemeUtils.tintDrawable(icon,
+                                ThemeUtils.primaryColor(getContext())));
                     } else {
                         mEmptyListIcon.setImageResource(icon);
                     }
@@ -771,9 +735,9 @@ public class ExtendedListFragment extends Fragment
     }
 
     protected void onCreateSwipeToRefresh(SwipeRefreshLayout refreshLayout) {
-        int primaryColor = ThemeUtils.primaryColor();
-        int darkColor = ThemeUtils.primaryDarkColor();
-        int accentColor = ThemeUtils.primaryAccentColor();
+        int primaryColor = ThemeUtils.primaryColor(getContext());
+        int darkColor = ThemeUtils.primaryDarkColor(getContext());
+        int accentColor = ThemeUtils.primaryAccentColor(getContext());
 
         // Colors in animations
         // TODO change this to use darker and lighter color, again.

+ 14 - 7
src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java

@@ -153,12 +153,12 @@ public class FileDetailFragment extends FileFragment implements OnClickListener,
         mView = inflater.inflate(mLayout, null);
         
         if (mLayout == R.layout.file_details_fragment) {
-            int accentColor = ThemeUtils.primaryAccentColor();
+            int accentColor = ThemeUtils.primaryAccentColor(getContext());
             SwitchCompat favoriteToggle = mView.findViewById(R.id.fdFavorite);
             favoriteToggle.setOnCheckedChangeListener(this);
             ThemeUtils.tintSwitch(favoriteToggle, accentColor, false);
             ProgressBar progressBar = mView.findViewById(R.id.fdProgressBar);
-            ThemeUtils.colorHorizontalProgressBar(progressBar, ThemeUtils.primaryAccentColor());
+            ThemeUtils.colorHorizontalProgressBar(progressBar, ThemeUtils.primaryAccentColor(getContext()));
             mProgressListener = new ProgressListener(progressBar);
             mView.findViewById(R.id.fdCancelBtn).setOnClickListener(this);
             ((TextView)mView.findViewById(R.id.fdShareTitle)).setTextColor(accentColor);
@@ -295,7 +295,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener,
 
         item = menu.findItem(R.id.action_send_share_file);
         if (item != null) {
-            ThemeUtils.tintDrawable(item.getIcon(), ThemeUtils.fontColor());
+            ThemeUtils.tintDrawable(item.getIcon(), ThemeUtils.fontColor(getContext()));
             item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
             if (getFile().isSharedWithMe() && !getFile().canReshare()) {
                 // additional restriction for this fragment
@@ -405,7 +405,12 @@ public class FileDetailFragment extends FileFragment implements OnClickListener,
     public void updateFileDetails(boolean transferring, boolean refresh) {
         if (readyToShow()) {
             FileDataStorageManager storageManager = mContainerActivity.getStorageManager();
-            if (refresh && storageManager != null) {
+            
+            if (storageManager == null) {
+                return;
+            }
+            
+            if (refresh) {
                 setFile(storageManager.getFileByPath(getFile().getRemotePath()));
             }
             OCFile file = getFile();
@@ -478,7 +483,8 @@ public class FileDetailFragment extends FileFragment implements OnClickListener,
         if (iv != null) {
             iv.setTag(file.getFileId());
             // Name of the file, to deduce the icon to use in case the MIME type is not precise enough
-            iv.setImageDrawable(MimeTypeUtil.getFileTypeIcon(file.getMimetype(), file.getFileName(), mAccount));
+            iv.setImageDrawable(MimeTypeUtil.getFileTypeIcon(file.getMimetype(), file.getFileName(), mAccount,
+                    getContext()));
 
             Bitmap thumbnail;
 
@@ -509,8 +515,9 @@ public class FileDetailFragment extends FileFragment implements OnClickListener,
                     }
                 }
             } else {
-                iv.setImageDrawable(MimeTypeUtil.getFileTypeIcon(file.getMimetype(), file.getFileName(), mAccount));
-			}
+                iv.setImageDrawable(MimeTypeUtil.getFileTypeIcon(file.getMimetype(), file.getFileName(), mAccount,
+                        getContext()));
+            }
         }
     }
 

+ 42 - 0
src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetActions.java

@@ -0,0 +1,42 @@
+/*
+ * Nextcloud Android client application
+ *
+ * @author Andy Scherzinger
+ * Copyright (C) 2018 Andy Scherzinger
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * 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 <https://www.gnu.org/licenses/>.
+ */
+
+package com.owncloud.android.ui.fragment;
+
+/**
+ * Actions interface to be implemented by any class that makes use of
+ * {@link com.owncloud.android.ui.fragment.OCFileListBottomSheetDialog}.
+ */
+public interface OCFileListBottomSheetActions {
+    /**
+     * creates a folder within the actual folder.
+     */
+    void createFolder();
+
+    /**
+     * offers a file upload with the Android OS file picker to the current folder.
+     */
+    void uploadFromApp();
+
+    /**
+     * offers a file upload with the app file picker to the current folder.
+     */
+    void uploadFiles();
+}

+ 112 - 0
src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.java

@@ -0,0 +1,112 @@
+/*
+ * Nextcloud Android client application
+ *
+ * @author Andy Scherzinger
+ * Copyright (C) 2018 Andy Scherzinger
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * 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 <https://www.gnu.org/licenses/>.
+ */
+
+package com.owncloud.android.ui.fragment;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.design.widget.BottomSheetBehavior;
+import android.support.design.widget.BottomSheetDialog;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.owncloud.android.R;
+import com.owncloud.android.utils.ThemeUtils;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+import butterknife.Unbinder;
+
+/**
+ * FAB menu {@link android.app.Dialog} styled as a bottom sheet for main actions.
+ */
+public class OCFileListBottomSheetDialog extends BottomSheetDialog {
+    @BindView(R.id.menu_icon_upload_files)
+    public ImageView iconUploadFiles;
+    @BindView(R.id.menu_icon_upload_from_app)
+    public ImageView iconUploadFromApp;
+    @BindView(R.id.menu_icon_mkdir)
+    public ImageView iconMakeDir;
+    @BindView(R.id.add_to_cloud)
+    public TextView headline;
+
+    private Unbinder unbinder;
+
+    private OCFileListBottomSheetActions actions;
+
+
+    public OCFileListBottomSheetDialog(@NonNull Context context, OCFileListBottomSheetActions actions) {
+        super(context);
+        this.actions = actions;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        final View view = getLayoutInflater().inflate(R.layout.file_list_actions_bottom_sheet_fragment, null);
+        setContentView(view);
+
+        if (getWindow() != null) {
+            getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+        }
+
+        unbinder = ButterKnife.bind(this, view);
+
+        int primaryColor = ThemeUtils.primaryColor(getContext());
+        ThemeUtils.tintDrawable(iconUploadFiles.getDrawable(), primaryColor);
+        ThemeUtils.tintDrawable(iconUploadFromApp.getDrawable(), primaryColor);
+        ThemeUtils.tintDrawable(iconMakeDir.getDrawable(), primaryColor);
+
+        headline.setText(getContext().getResources().getString(R.string.add_to_cloud,
+                ThemeUtils.getDefaultDisplayNameForRootFolder(getContext())));
+
+        setOnShowListener(d ->
+                BottomSheetBehavior.from((View) view.getParent()).setPeekHeight(view.getMeasuredHeight())
+        );
+    }
+
+    @OnClick(R.id.menu_mkdir)
+    public void createFolder() {
+        actions.createFolder();
+        dismiss();
+    }
+
+    @OnClick(R.id.menu_upload_from_app)
+    public void uploadFromApp() {
+        actions.uploadFromApp();
+        dismiss();
+    }
+
+    @OnClick(R.id.menu_upload_files)
+    public void uploadFiles() {
+        actions.uploadFiles();
+        dismiss();
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        unbinder.unbind();
+    }
+}

+ 34 - 144
src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@ -55,7 +55,6 @@ import android.view.ViewGroup;
 import android.widget.AbsListView;
 import android.widget.PopupMenu;
 import android.widget.RelativeLayout;
-import android.widget.TextView;
 
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
@@ -122,7 +121,8 @@ import java.util.Set;
  * A Fragment that lists all files and folders in a given path.
  * TODO refactor to get rid of direct dependency on FileDisplayActivity
  */
-public class OCFileListFragment extends ExtendedListFragment implements OCFileListFragmentInterface {
+public class OCFileListFragment extends ExtendedListFragment implements
+        OCFileListFragmentInterface, OCFileListBottomSheetActions {
 
     private static final String TAG = OCFileListFragment.class.getSimpleName();
 
@@ -163,7 +163,6 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
     private int mProgressBarColor;
 
     private boolean mHideFab = true;
-    private boolean miniFabClicked = false;
     private ActionMode mActiveActionMode;
     private OCFileListFragment.MultiChoiceModeListener mMultiChoiceModeListener;
 
@@ -188,9 +187,9 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
         super.onCreate(savedInstanceState);
         setHasOptionsMenu(true);
         mSystemBarActionModeColor = getResources().getColor(R.color.action_mode_status_bar_background);
-        mSystemBarColor = ThemeUtils.primaryDarkColor();
+        mSystemBarColor = ThemeUtils.primaryDarkColor(getContext());
         mProgressBarActionModeColor = getResources().getColor(R.color.action_mode_background);
-        mProgressBarColor = ThemeUtils.primaryColor();
+        mProgressBarColor = ThemeUtils.primaryColor(getContext());
         mMultiChoiceModeListener = new MultiChoiceModeListener();
 
         if (savedInstanceState != null) {
@@ -327,19 +326,7 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
             setFabEnabled(false);
         } else {
             setFabEnabled(true);
-            registerFabListeners();
-
-            // detect if a mini FAB has ever been clicked
-            if (PreferenceManager.getFABClicked(getActivity()) > 0) {
-                miniFabClicked = true;
-            }
-
-            // add labels to the min FABs when none of them has ever been clicked on
-            if (!miniFabClicked) {
-                setFabLabels();
-            } else {
-                removeFabLabels();
-            }
+            registerFabListener();
         }
 
         searchEvent = Parcels.unwrap(getArguments().getParcelable(OCFileListFragment.SEARCH_EVENT));
@@ -381,138 +368,41 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
     }
 
     /**
-     * adds labels to all mini FABs.
-     */
-    private void setFabLabels() {
-        getFabUpload().setTitle(getResources().getString(R.string.actionbar_upload));
-        getFabMkdir().setTitle(getResources().getString(R.string.actionbar_mkdir));
-        getFabUploadFromApp().setTitle(getResources().getString(R.string.actionbar_upload_from_apps));
-    }
-
-    /**
-     * registers all listeners on all mini FABs.
-     */
-    private void registerFabListeners() {
-        registerFabUploadListeners(getActivity());
-        registerFabMkDirListeners(getActivity());
-        registerFabUploadFromAppListeners(getActivity());
-    }
-
-    /**
-     * registers {@link android.view.View.OnClickListener} and {@link android.view.View.OnLongClickListener}
-     * on the Upload mini FAB for the linked action and {@link Snackbar} showing the underlying action.
-     *
-     * @param activity the activity on which's content the {@link Snackbar} will be shown.
+     * register listener on FAB.
      */
-    private void registerFabUploadListeners(final Activity activity) {
-        getFabUpload().setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                UploadFilesActivity.startUploadActivityForResult(getActivity(), ((FileActivity) getActivity())
-                        .getAccount(), FileDisplayActivity.REQUEST_CODE__SELECT_FILES_FROM_FILE_SYSTEM);
-                getFabMain().collapse();
-                recordMiniFabClick();
-            }
-        });
-
-        getFabUpload().setOnLongClickListener(new View.OnLongClickListener() {
-            @Override
-            public boolean onLongClick(View v) {
-                DisplayUtils.showSnackMessage(activity, R.string.actionbar_upload);
-                return true;
-            }
+    private void registerFabListener() {
+        getFabMain().setOnClickListener(v -> {
+            new OCFileListBottomSheetDialog(getContext(), this).show();
         });
     }
 
-    /**
-     * registers {@link android.view.View.OnClickListener} and {@link android.view.View.OnLongClickListener}
-     * on the 'Create Dir' mini FAB for the linked action and {@link Snackbar} showing the underlying action.
-     *
-     * @param activity the activity on which's content the {@link Snackbar} will be shown.
-     */
-    private void registerFabMkDirListeners(final Activity activity) {
-        getFabMkdir().setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                CreateFolderDialogFragment dialog =
-                        CreateFolderDialogFragment.newInstance(mFile);
-                dialog.show(getActivity().getSupportFragmentManager(), DIALOG_CREATE_FOLDER);
-                getFabMain().collapse();
-                recordMiniFabClick();
-            }
-        });
-
-        getFabMkdir().setOnLongClickListener(new View.OnLongClickListener() {
-            @Override
-            public boolean onLongClick(View v) {
-                DisplayUtils.showSnackMessage(activity, R.string.actionbar_mkdir);
-                return true;
-            }
-        });
-    }
-
-    /**
-     * registers {@link android.view.View.OnClickListener} and {@link android.view.View.OnLongClickListener}
-     * on the Upload from App mini FAB for the linked action and {@link Snackbar} showing the underlying action.
-     *
-     * @param activity the activity on which's content the {@link Snackbar} will be shown.
-     */
-    private void registerFabUploadFromAppListeners(final Activity activity) {
-        getFabUploadFromApp().setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                Intent action = new Intent(Intent.ACTION_GET_CONTENT);
-                action = action.setType("*/*").addCategory(Intent.CATEGORY_OPENABLE);
-                //Intent.EXTRA_ALLOW_MULTIPLE is only supported on api level 18+, Jelly Bean
-                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
-                    action.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
-                }
-                getActivity().startActivityForResult(
-                        Intent.createChooser(action, getString(R.string.upload_chooser_title)),
-                        FileDisplayActivity.REQUEST_CODE__SELECT_CONTENT_FROM_APPS
-                );
-                getFabMain().collapse();
-                recordMiniFabClick();
-            }
-        });
-
-        getFabUploadFromApp().setOnLongClickListener(new View.OnLongClickListener() {
-            @Override
-            public boolean onLongClick(View v) {
-                DisplayUtils.showSnackMessage(activity, R.string.actionbar_upload_from_apps);
-                return true;
-            }
-        });
+    @Override
+    public void createFolder() {
+        CreateFolderDialogFragment.newInstance(mFile)
+                .show(getActivity().getSupportFragmentManager(), DIALOG_CREATE_FOLDER);
     }
 
-    /**
-     * records a click on a mini FAB and thus:
-     * <ol>
-     * <li>persists the click fact</li>
-     * <li>removes the mini FAB labels</li>
-     * </ol>
-     */
-    private void recordMiniFabClick() {
-        // only record if it hasn't been done already at some other time
-        if (!miniFabClicked) {
-            PreferenceManager.setFABClicked(getActivity());
-            miniFabClicked = true;
+    @Override
+    public void uploadFromApp() {
+        Intent action = new Intent(Intent.ACTION_GET_CONTENT);
+        action = action.setType("*/*").addCategory(Intent.CATEGORY_OPENABLE);
+        //Intent.EXTRA_ALLOW_MULTIPLE is only supported on api level 18+, Jelly Bean
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
+            action.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
         }
+        getActivity().startActivityForResult(
+                Intent.createChooser(action, getString(R.string.upload_chooser_title)),
+                FileDisplayActivity.REQUEST_CODE__SELECT_CONTENT_FROM_APPS
+        );
     }
 
-    /**
-     * removes the labels on all known min FABs.
-     */
-    private void removeFabLabels() {
-        getFabUpload().setTitle(null);
-        getFabMkdir().setTitle(null);
-        getFabUploadFromApp().setTitle(null);
-        ((TextView) getFabUpload().getTag(
-                com.getbase.floatingactionbutton.R.id.fab_label)).setVisibility(View.GONE);
-        ((TextView) getFabMkdir().getTag(
-                com.getbase.floatingactionbutton.R.id.fab_label)).setVisibility(View.GONE);
-        ((TextView) getFabUploadFromApp().getTag(
-                com.getbase.floatingactionbutton.R.id.fab_label)).setVisibility(View.GONE);
+    @Override
+    public void uploadFiles() {
+        UploadFilesActivity.startUploadActivityForResult(
+                getActivity(),
+                ((FileActivity) getActivity()).getAccount(),
+                FileDisplayActivity.REQUEST_CODE__SELECT_FILES_FROM_FILE_SYSTEM
+        );
     }
 
     @Override
@@ -1346,7 +1236,7 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
                     setTitle(R.string.drawer_item_shared);
                     break;
                 default:
-                    setTitle(ThemeUtils.getDefaultDisplayNameForRootFolder());
+                    setTitle(ThemeUtils.getDefaultDisplayNameForRootFolder(getContext()));
                     break;
             }
         }
@@ -1408,7 +1298,7 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
         menuItemAddRemoveValue = MenuItemAddRemove.ADD_GRID_AND_SORT_WITH_SEARCH;
         if (getActivity() != null) {
             getActivity().invalidateOptionsMenu();
-            setTitle(ThemeUtils.getDefaultDisplayNameForRootFolder());
+            setTitle(ThemeUtils.getDefaultDisplayNameForRootFolder(getContext()));
         }
 
         getActivity().getIntent().removeExtra(OCFileListFragment.SEARCH_EVENT);
@@ -1631,7 +1521,7 @@ public class OCFileListFragment extends ExtendedListFragment implements OCFileLi
                     ActionBar actionBar = ((FileDisplayActivity) getActivity()).getSupportActionBar();
 
                     if (actionBar != null) {
-                            ThemeUtils.setColoredTitle(actionBar, title);
+                        ThemeUtils.setColoredTitle(actionBar, title, getContext());
                     }
                 }
             }

+ 27 - 25
src/main/java/com/owncloud/android/ui/fragment/ShareFileFragment.java

@@ -188,20 +188,20 @@ public class ShareFileFragment extends Fragment implements ShareUserListAdapter.
         Log_OC.d(TAG, "onCreateView");
 
         // use grey as fallback for elements where custom theming is not available
-        if (ThemeUtils.themingEnabled()) {
+        if (ThemeUtils.themingEnabled(getContext())) {
             getContext().getTheme().applyStyle(R.style.FallbackThemingTheme, true);
         }
 
-        int accentColor = ThemeUtils.primaryAccentColor();
+        int accentColor = ThemeUtils.primaryAccentColor(getContext());
 
         // Inflate the layout for this fragment
         View view = inflater.inflate(R.layout.share_file_layout, container, false);
 
         // Setup layout
         // Image
-        ImageView icon = (ImageView) view.findViewById(R.id.shareFileIcon);
+        ImageView icon = view.findViewById(R.id.shareFileIcon);
         icon.setImageDrawable(
-                MimeTypeUtil.getFileTypeIcon(mFile.getMimetype(), mFile.getFileName(), mAccount)
+                MimeTypeUtil.getFileTypeIcon(mFile.getMimetype(), mFile.getFileName(), mAccount, getContext())
         );
         if (MimeTypeUtil.isImage(mFile)) {
             String remoteId = String.valueOf(mFile.getRemoteId());
@@ -212,18 +212,19 @@ public class ShareFileFragment extends Fragment implements ShareUserListAdapter.
         }
 
         // Title
-        TextView title = (TextView) view.findViewById(R.id.shareWithUsersSectionTitle);
+        TextView title = view.findViewById(R.id.shareWithUsersSectionTitle);
         title.setTextColor(accentColor);
 
         // Name
-        TextView fileNameHeader = (TextView) view.findViewById(R.id.shareFileName);
+        TextView fileNameHeader = view.findViewById(R.id.shareFileName);
         fileNameHeader.setText(getResources().getString(R.string.share_file, mFile.getFileName()));
 
         View headerDivider = view.findViewById(R.id.share_header_divider);
-        headerDivider.getBackground().setColorFilter(ThemeUtils.primaryAccentColor(), PorterDuff.Mode.SRC_ATOP);
+        headerDivider.getBackground().setColorFilter(ThemeUtils.primaryAccentColor(getContext()),
+                PorterDuff.Mode.SRC_ATOP);
 
         // Size
-        TextView size = (TextView) view.findViewById(R.id.shareFileSize);
+        TextView size = view.findViewById(R.id.shareFileSize);
         if (mFile.isFolder()) {
             size.setVisibility(View.GONE);
         } else {
@@ -231,7 +232,7 @@ public class ShareFileFragment extends Fragment implements ShareUserListAdapter.
         }
 
         //  Add User Button
-        Button addUserGroupButton = (Button) view.findViewById(R.id.addUserButton);
+        Button addUserGroupButton = view.findViewById(R.id.addUserButton);
         addUserGroupButton.getBackground().setColorFilter(accentColor, PorterDuff.Mode.SRC_ATOP);
         addUserGroupButton.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -280,8 +281,8 @@ public class ShareFileFragment extends Fragment implements ShareUserListAdapter.
      */
     private void initShareViaLinkListener(View shareView) {
         mOnShareViaLinkSwitchCheckedChangeListener = new OnShareViaLinkListener();
-        SwitchCompat shareViaLinkSwitch = (SwitchCompat) shareView.findViewById(R.id.shareViaLinkSectionSwitch);
-        ThemeUtils.tintSwitch(shareViaLinkSwitch, ThemeUtils.primaryAccentColor(), true);
+        SwitchCompat shareViaLinkSwitch = shareView.findViewById(R.id.shareViaLinkSectionSwitch);
+        ThemeUtils.tintSwitch(shareViaLinkSwitch, ThemeUtils.primaryAccentColor(getContext()), true);
         shareViaLinkSwitch.setOnCheckedChangeListener(mOnShareViaLinkSwitchCheckedChangeListener);
     }
 
@@ -342,10 +343,10 @@ public class ShareFileFragment extends Fragment implements ShareUserListAdapter.
     private void initExpirationListener(View shareView) {
         mOnExpirationDateInteractionListener = new OnExpirationDateInteractionListener();
 
-        SwitchCompat expirationSwitch = (SwitchCompat) shareView.findViewById(R.id.shareViaLinkExpirationSwitch);
+        SwitchCompat expirationSwitch = shareView.findViewById(R.id.shareViaLinkExpirationSwitch);
         expirationSwitch.setOnCheckedChangeListener(mOnExpirationDateInteractionListener);
 
-        ThemeUtils.tintSwitch(expirationSwitch, ThemeUtils.primaryAccentColor());
+        ThemeUtils.tintSwitch(expirationSwitch, ThemeUtils.primaryAccentColor(getContext()));
 
         shareView.findViewById(R.id.shareViaLinkExpirationLabel).
                 setOnClickListener(mOnExpirationDateInteractionListener);
@@ -422,9 +423,9 @@ public class ShareFileFragment extends Fragment implements ShareUserListAdapter.
     private void initPasswordListener(View shareView) {
         mOnPasswordInteractionListener = new OnPasswordInteractionListener();
 
-        SwitchCompat passwordSwitch = (SwitchCompat) shareView.findViewById(R.id.shareViaLinkPasswordSwitch);
+        SwitchCompat passwordSwitch = shareView.findViewById(R.id.shareViaLinkPasswordSwitch);
         passwordSwitch.setOnCheckedChangeListener(mOnPasswordInteractionListener);
-        ThemeUtils.tintSwitch(passwordSwitch, ThemeUtils.primaryAccentColor());
+        ThemeUtils.tintSwitch(passwordSwitch, ThemeUtils.primaryAccentColor(getContext()));
 
         shareView.findViewById(R.id.shareViaLinkPasswordLabel).setOnClickListener(mOnPasswordInteractionListener);
 
@@ -487,9 +488,9 @@ public class ShareFileFragment extends Fragment implements ShareUserListAdapter.
     private void initEditPermissionListener(View shareView) {
         mOnEditPermissionInteractionListener = new OnEditPermissionInteractionListener();
 
-        SwitchCompat permissionSwitch = (SwitchCompat) shareView.findViewById(R.id.shareViaLinkEditPermissionSwitch);
+        SwitchCompat permissionSwitch = shareView.findViewById(R.id.shareViaLinkEditPermissionSwitch);
         permissionSwitch.setOnCheckedChangeListener(mOnEditPermissionInteractionListener);
-        ThemeUtils.tintSwitch(permissionSwitch, ThemeUtils.primaryAccentColor());
+        ThemeUtils.tintSwitch(permissionSwitch, ThemeUtils.primaryAccentColor(getContext()));
     }
 
     /**
@@ -501,9 +502,9 @@ public class ShareFileFragment extends Fragment implements ShareUserListAdapter.
     private void initHideFileListingListener(View shareView) {
         mOnHideFileListingPermissionInteractionListener = new OnHideFileListingPermissionInteractionListener();
 
-        SwitchCompat permissionSwitch = (SwitchCompat) shareView.findViewById(R.id.shareViaLinkFileListingPermissionSwitch);
+        SwitchCompat permissionSwitch = shareView.findViewById(R.id.shareViaLinkFileListingPermissionSwitch);
         permissionSwitch.setOnCheckedChangeListener(mOnHideFileListingPermissionInteractionListener);
-        ThemeUtils.tintSwitch(permissionSwitch, ThemeUtils.primaryAccentColor());
+        ThemeUtils.tintSwitch(permissionSwitch, ThemeUtils.primaryAccentColor(getContext()));
     }
 
     /**
@@ -654,8 +655,8 @@ public class ShareFileFragment extends Fragment implements ShareUserListAdapter.
         );
 
         // Show data
-        TextView noShares = (TextView) getView().findViewById(R.id.shareNoUsers);
-        ListView usersList = (ListView) getView().findViewById(R.id.shareUsersList);
+        TextView noShares = getView().findViewById(R.id.shareNoUsers);
+        ListView usersList = getView().findViewById(R.id.shareUsersList);
 
         if (mPrivateShares.size() > 0) {
             noShares.setVisibility(View.GONE);
@@ -668,7 +669,7 @@ public class ShareFileFragment extends Fragment implements ShareUserListAdapter.
         }
 
         // Set Scroll to initial position
-        ScrollView scrollView = (ScrollView) getView().findViewById(R.id.shareScroll);
+        ScrollView scrollView = getView().findViewById(R.id.shareScroll);
         scrollView.scrollTo(0, 0);
     }
 
@@ -747,7 +748,8 @@ public class ShareFileFragment extends Fragment implements ShareUserListAdapter.
 
             // GetLink button
             AppCompatButton getLinkButton = getGetLinkButton();
-            getLinkButton.getBackground().setColorFilter(ThemeUtils.primaryAccentColor(), PorterDuff.Mode.SRC_ATOP);
+            getLinkButton.getBackground().setColorFilter(ThemeUtils.primaryAccentColor(getContext()),
+                    PorterDuff.Mode.SRC_ATOP);
             getLinkButton.setVisibility(View.VISIBLE);
             getLinkButton.setOnClickListener(new View.OnClickListener() {
                 @Override
@@ -958,8 +960,8 @@ public class ShareFileFragment extends Fragment implements ShareUserListAdapter.
      * @param view share file view
      */
     private void hideNotEnabledShareSections(View view) {
-        LinearLayout shareWithUsersSection = (LinearLayout) view.findViewById(R.id.shareWithUsersSection);
-        LinearLayout shareViaLinkSection = (LinearLayout) view.findViewById(R.id.shareViaLinkSection);
+        LinearLayout shareWithUsersSection = view.findViewById(R.id.shareWithUsersSection);
+        LinearLayout shareViaLinkSection = view.findViewById(R.id.shareViaLinkSection);
 
         boolean shareViaLinkAllowed = getActivity().getResources().getBoolean(R.bool.share_via_link_feature);
         boolean shareWithUsersAllowed = getActivity().getResources().getBoolean(R.bool.share_with_users_feature);

+ 6 - 6
src/main/java/com/owncloud/android/ui/fragment/contactsbackup/ContactListFragment.java

@@ -178,7 +178,7 @@ public class ContactListFragment extends FileFragment {
         }
         contactsPreferenceActivity.setDrawerIndicatorEnabled(false);
 
-        recyclerView = (RecyclerView) view.findViewById(R.id.contactlist_recyclerview);
+        recyclerView = view.findViewById(R.id.contactlist_recyclerview);
 
         if (savedInstanceState == null) {
             contactListAdapter = new ContactListAdapter(getContext(), vCards);
@@ -225,7 +225,7 @@ public class ContactListFragment extends FileFragment {
             }
         });
 
-        restoreContacts.setTextColor(ThemeUtils.primaryAccentColor());
+        restoreContacts.setTextColor(ThemeUtils.primaryAccentColor(getContext()));
 
         return view;
     }
@@ -320,8 +320,8 @@ public class ContactListFragment extends FileFragment {
         ContactItemViewHolder(View itemView) {
             super(itemView);
 
-            badge = (ImageView) itemView.findViewById(R.id.contactlist_item_icon);
-            name = (CheckedTextView) itemView.findViewById(R.id.contactlist_item_name);
+            badge = itemView.findViewById(R.id.contactlist_item_icon);
+            name = itemView.findViewById(R.id.contactlist_item_name);
 
 
             itemView.setTag(this);
@@ -629,7 +629,7 @@ class ContactListAdapter extends RecyclerView.Adapter<ContactListFragment.Contac
 
                 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                     holder.getName().getCheckMarkDrawable()
-                            .setColorFilter(ThemeUtils.primaryAccentColor(), PorterDuff.Mode.SRC_ATOP);
+                            .setColorFilter(ThemeUtils.primaryAccentColor(context), PorterDuff.Mode.SRC_ATOP);
                 }
             } else {
                 holder.getName().setChecked(false);
@@ -693,7 +693,7 @@ class ContactListAdapter extends RecyclerView.Adapter<ContactListFragment.Contac
                     if (holder.getName().isChecked()) {
                         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                             holder.getName().getCheckMarkDrawable()
-                                    .setColorFilter(ThemeUtils.primaryAccentColor(), PorterDuff.Mode.SRC_ATOP);
+                                    .setColorFilter(ThemeUtils.primaryAccentColor(context), PorterDuff.Mode.SRC_ATOP);
                         }
 
                         if (!checkedVCards.contains(verifiedPosition)) {

+ 25 - 9
src/main/java/com/owncloud/android/ui/fragment/contactsbackup/ContactsBackupFragment.java

@@ -26,12 +26,14 @@ import android.app.DatePickerDialog;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.graphics.PorterDuff;
+import android.graphics.drawable.Drawable;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.design.widget.Snackbar;
 import android.support.v4.app.Fragment;
+import android.support.v7.app.ActionBar;
 import android.support.v7.widget.AppCompatButton;
 import android.support.v7.widget.SwitchCompat;
 import android.view.LayoutInflater;
@@ -84,6 +86,9 @@ public class ContactsBackupFragment extends FileFragment implements DatePickerDi
     @BindView(R.id.contacts_last_backup_timestamp)
     public TextView lastBackup;
 
+    @BindView(R.id.contacts_backup_now)
+    public AppCompatButton backupNow;
+
     private Date selectedDate = null;
     private boolean calendarPickerOpen;
 
@@ -104,7 +109,7 @@ public class ContactsBackupFragment extends FileFragment implements DatePickerDi
     public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
 
         // use grey as fallback for elements where custom theming is not available
-        if (ThemeUtils.themingEnabled()) {
+        if (ThemeUtils.themingEnabled(getContext())) {
             getContext().getTheme().applyStyle(R.style.FallbackThemingTheme, true);
         }
         View view = inflater.inflate(R.layout.contacts_backup_fragment, null);
@@ -118,14 +123,21 @@ public class ContactsBackupFragment extends FileFragment implements DatePickerDi
 
         final ContactsPreferenceActivity contactsPreferenceActivity = (ContactsPreferenceActivity) getActivity();
 
-        account = (Account) getArguments().get(ContactListFragment.ACCOUNT);
+        account = contactsPreferenceActivity.getAccount();
+
+        ActionBar actionBar = contactsPreferenceActivity != null ? contactsPreferenceActivity.getSupportActionBar() : null;
+
+        if (actionBar != null) {
+            ThemeUtils.setColoredTitle(actionBar, getString(R.string.actionbar_contacts), getContext());
+            actionBar.setDisplayHomeAsUpEnabled(true);
 
-        contactsPreferenceActivity.getSupportActionBar().setTitle(R.string.actionbar_contacts);
-        contactsPreferenceActivity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+            Drawable backArrow = getResources().getDrawable(R.drawable.ic_arrow_back);
+            actionBar.setHomeAsUpIndicator(ThemeUtils.tintDrawable(backArrow, ThemeUtils.fontColor(getContext())));
+        }
 
         arbitraryDataProvider = new ArbitraryDataProvider(getContext().getContentResolver());
 
-        ThemeUtils.tintSwitch(backupSwitch, ThemeUtils.primaryAccentColor());
+        ThemeUtils.tintSwitch(backupSwitch, ThemeUtils.primaryAccentColor(getContext()));
         backupSwitch.setChecked(arbitraryDataProvider.getBooleanValue(account, PREFERENCE_CONTACTS_AUTOMATIC_BACKUP));
 
         onCheckedChangeListener = new CompoundButton.OnCheckedChangeListener() {
@@ -162,14 +174,18 @@ public class ContactsBackupFragment extends FileFragment implements DatePickerDi
             calendarPickerOpen = true;
         }
 
-        int accentColor = ThemeUtils.primaryAccentColor();
+        int accentColor = ThemeUtils.primaryAccentColor(getContext());
+        int fontColor = ThemeUtils.fontColor(getContext());
+
+        backupNow.getBackground().setColorFilter(accentColor, PorterDuff.Mode.SRC_ATOP);
+        backupNow.setTextColor(fontColor);
+
         contactsDatePickerBtn.getBackground().setColorFilter(accentColor, PorterDuff.Mode.SRC_ATOP);
-        view.findViewById(R.id.contacts_backup_now).getBackground()
-                .setColorFilter(accentColor, PorterDuff.Mode.SRC_ATOP);
+        contactsDatePickerBtn.setTextColor(fontColor);
 
         AppCompatButton chooseDate = view.findViewById(R.id.contacts_datepicker);
         chooseDate.getBackground().setColorFilter(accentColor, PorterDuff.Mode.SRC_ATOP);
-        chooseDate.setTextColor(ThemeUtils.fontColor());
+        chooseDate.setTextColor(ThemeUtils.fontColor(getContext()));
 
         return view;
     }

+ 3 - 6
src/main/java/com/owncloud/android/ui/notifications/NotificationUtils.java

@@ -57,15 +57,12 @@ public class NotificationUtils {
      * @return              An instance of the regular {@link NotificationCompat.Builder}.
      */
     public static NotificationCompat.Builder newNotificationBuilder(Context context) {
-        return new NotificationCompat.Builder(context).
-                setColor(ThemeUtils.primaryColor());
+        return new NotificationCompat.Builder(context).setColor(ThemeUtils.primaryColor(context));
     }
 
     @SuppressFBWarnings("DMI")
-    public static void cancelWithDelay(
-            final NotificationManager notificationManager,
-            final int notificationId,
-            long delayInMillis) {
+    public static void cancelWithDelay(final NotificationManager notificationManager, final int notificationId,
+                                       long delayInMillis) {
     
         HandlerThread thread = new HandlerThread(
                 "NotificationDelayerThread_" + (new Random(System.currentTimeMillis())).nextInt(),

+ 5 - 5
src/main/java/com/owncloud/android/ui/preview/FileDownloadFragment.java

@@ -111,7 +111,7 @@ public class FileDownloadFragment extends FileFragment implements OnClickListene
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         Bundle args = getArguments();
-        setFile((OCFile)args.getParcelable(ARG_FILE));
+        setFile(args.getParcelable(ARG_FILE));
             // TODO better in super, but needs to check ALL the class extending FileFragment; not right now
 
         mIgnoreFirstSavedState = args.getBoolean(ARG_IGNORE_FIRST);
@@ -136,9 +136,9 @@ public class FileDownloadFragment extends FileFragment implements OnClickListene
         }
 
         mView = inflater.inflate(R.layout.file_download_fragment, container, false);
-        
-        ProgressBar progressBar = (ProgressBar)mView.findViewById(R.id.progressBar);
-        ThemeUtils.colorHorizontalProgressBar(progressBar, ThemeUtils.primaryAccentColor());
+
+        ProgressBar progressBar = mView.findViewById(R.id.progressBar);
+        ThemeUtils.colorHorizontalProgressBar(progressBar, ThemeUtils.primaryAccentColor(getContext()));
         mProgressListener = new ProgressListener(progressBar);
 
         (mView.findViewById(R.id.cancelBtn)).setOnClickListener(this);
@@ -231,7 +231,7 @@ public class FileDownloadFragment extends FileFragment implements OnClickListene
 
         // show the progress bar for the transfer
         getView().findViewById(R.id.progressBar).setVisibility(View.VISIBLE);
-        TextView progressText = (TextView) getView().findViewById(R.id.progressText);
+        TextView progressText = getView().findViewById(R.id.progressText);
         progressText.setText(R.string.downloader_download_in_progress_ticker);
         progressText.setVisibility(View.VISIBLE);
 

+ 1 - 1
src/main/java/com/owncloud/android/ui/whatsnew/ProgressIndicator.java

@@ -65,7 +65,7 @@ public class ProgressIndicator extends FrameLayout {
     }
 
     public void setNumberOfSteps(int steps) {
-        int fontColor = ThemeUtils.fontColor();
+        int fontColor = ThemeUtils.fontColor(getContext());
         mNumberOfSteps = steps;
         mDotsContainer.removeAllViews();
         for (int i = 0; i < steps; ++i) {

+ 1 - 1
src/main/java/com/owncloud/android/utils/DisplayUtils.java

@@ -328,7 +328,7 @@ public class DisplayUtils {
      */
     public static int getRelativeInfoColor(Context context, int relative) {
         if (relative < RELATIVE_THRESHOLD_WARNING) {
-            if (ThemeUtils.colorToHexString(ThemeUtils.primaryColor()).equalsIgnoreCase(
+            if (ThemeUtils.colorToHexString(ThemeUtils.primaryColor(context)).equalsIgnoreCase(
                     ThemeUtils.colorToHexString(context.getResources().getColor(R.color.primary)))) {
                 return context.getResources().getColor(R.color.infolevel_info);
             } else {

+ 13 - 12
src/main/java/com/owncloud/android/utils/MimeTypeUtil.java

@@ -19,11 +19,11 @@
 package com.owncloud.android.utils;
 
 import android.accounts.Account;
+import android.content.Context;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.webkit.MimeTypeMap;
 
-import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.common.network.WebdavEntry;
@@ -81,8 +81,8 @@ public class MimeTypeUtil {
      * @param filename Name, with extension.
      * @return Drawable of an image resource.
      */
-    public static Drawable getFileTypeIcon(String mimetype, String filename) {
-        return getFileTypeIcon(mimetype, filename, null);
+    public static Drawable getFileTypeIcon(String mimetype, String filename, Context context) {
+        return getFileTypeIcon(mimetype, filename, null, context);
     }
 
     /**
@@ -93,12 +93,12 @@ public class MimeTypeUtil {
      * @param account account which color should be used
      * @return Drawable of an image resource.
      */
-    public static Drawable getFileTypeIcon(String mimetype, String filename, Account account) {
+    public static Drawable getFileTypeIcon(String mimetype, String filename, Account account, Context context) {
         int iconId = MimeTypeUtil.getFileTypeIconId(mimetype, filename);
-        Drawable icon = MainApp.getAppContext().getResources().getDrawable(iconId);
+        Drawable icon = context.getResources().getDrawable(iconId);
 
         if(R.drawable.file_zip == iconId) {
-            ThemeUtils.tintDrawable(icon, ThemeUtils.primaryColor(account));
+            ThemeUtils.tintDrawable(icon, ThemeUtils.primaryColor(account, context));
         }
 
         return icon;
@@ -130,8 +130,8 @@ public class MimeTypeUtil {
      * @return Identifier of an image resource.
      */
     public static Drawable getFolderTypeIcon(boolean isSharedViaUsers, boolean isSharedViaLink, boolean isEncrypted,
-                                             WebdavEntry.MountType mountType) {
-        return getFolderTypeIcon(isSharedViaUsers, isSharedViaLink, isEncrypted, null, mountType);
+                                             WebdavEntry.MountType mountType, Context context) {
+        return getFolderTypeIcon(isSharedViaUsers, isSharedViaLink, isEncrypted, null, mountType, context);
     }
 
     /**
@@ -144,7 +144,8 @@ public class MimeTypeUtil {
      * @return Identifier of an image resource.
      */
     public static Drawable getFolderTypeIcon(boolean isSharedViaUsers, boolean isSharedViaLink,
-                                             boolean isEncrypted, Account account, WebdavEntry.MountType mountType) {
+                                             boolean isEncrypted, Account account, WebdavEntry.MountType mountType, 
+                                             Context context) {
         int drawableId;
 
         if (isSharedViaLink) {
@@ -159,11 +160,11 @@ public class MimeTypeUtil {
             drawableId = R.drawable.folder;
         }
 
-        return ThemeUtils.tintDrawable(drawableId, ThemeUtils.elementColor(account));
+        return ThemeUtils.tintDrawable(drawableId, ThemeUtils.elementColor(account, context));
     }
 
-    public static Drawable getDefaultFolderIcon() {
-        return getFolderTypeIcon(false, false, false, WebdavEntry.MountType.INTERNAL);
+    public static Drawable getDefaultFolderIcon(Context context) {
+        return getFolderTypeIcon(false, false, false, WebdavEntry.MountType.INTERNAL, context);
     }
 
 

+ 43 - 47
src/main/java/com/owncloud/android/utils/ThemeUtils.java

@@ -31,6 +31,7 @@ import android.graphics.drawable.Drawable;
 import android.os.Build;
 import android.support.annotation.ColorInt;
 import android.support.annotation.DrawableRes;
+import android.support.design.widget.FloatingActionButton;
 import android.support.design.widget.Snackbar;
 import android.support.v4.app.FragmentActivity;
 import android.support.v4.content.ContextCompat;
@@ -47,7 +48,6 @@ import android.widget.ImageButton;
 import android.widget.ProgressBar;
 import android.widget.SeekBar;
 
-import com.getbase.floatingactionbutton.FloatingActionButton;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AccountUtils;
@@ -60,57 +60,57 @@ import com.owncloud.android.ui.activity.ToolbarActivity;
  */
 public class ThemeUtils {
 
-    public static int primaryAccentColor() {
-        OCCapability capability = getCapability();
+    public static int primaryAccentColor(Context context) {
+        OCCapability capability = getCapability(context);
 
         try {
             float adjust;
-            if (darkTheme()) {
+            if (darkTheme(context)) {
                 adjust = +0.1f;
             } else {
                 adjust = -0.1f;
             }
             return adjustLightness(adjust, Color.parseColor(capability.getServerColor()), 0.35f);
         } catch (Exception e) {
-            return MainApp.getAppContext().getResources().getColor(R.color.color_accent);
+            return context.getResources().getColor(R.color.color_accent);
         }
     }
 
-    public static int primaryDarkColor() {
-        return primaryDarkColor(null);
+    public static int primaryDarkColor(Context context) {
+        return primaryDarkColor(null, context);
     }
 
-    public static int primaryDarkColor(Account account) {
-        OCCapability capability = getCapability(account);
+    public static int primaryDarkColor(Account account, Context context) {
+        OCCapability capability = getCapability(account, context);
 
         try {
             return adjustLightness(-0.2f, Color.parseColor(capability.getServerColor()), -1f);
         } catch (Exception e) {
-            return MainApp.getAppContext().getResources().getColor(R.color.primary_dark);
+            return context.getResources().getColor(R.color.primary_dark);
         }
     }
 
-    public static int primaryColor() {
-        return primaryColor(null);
+    public static int primaryColor(Context context) {
+        return primaryColor(null, context);
     }
 
-    public static int primaryColor(Account account) {
-        OCCapability capability = getCapability(account);
+    public static int primaryColor(Account account, Context context) {
+        OCCapability capability = getCapability(account, context);
 
         try {
             return Color.parseColor(capability.getServerColor());
         } catch (Exception e) {
-            return MainApp.getAppContext().getResources().getColor(R.color.primary);
+            return context.getResources().getColor(R.color.primary);
         }
     }
 
-    public static int elementColor() {
-        return elementColor(null);
+    public static int elementColor(Context context) {
+        return elementColor(null, context);
     }
 
     @NextcloudServer(max = 12)
-    public static int elementColor(Account account) {
-        OCCapability capability = getCapability(account);
+    public static int elementColor(Account account, Context context) {
+        OCCapability capability = getCapability(account, context);
 
         try {
             return Color.parseColor(capability.getServerElementColor());
@@ -120,32 +120,32 @@ public class ThemeUtils {
             try {
                 primaryColor = Color.parseColor(capability.getServerColor());
             } catch (Exception e1) {
-                primaryColor = MainApp.getAppContext().getResources().getColor(R.color.primary);
+                primaryColor = context.getResources().getColor(R.color.primary);
             }
 
             float[] hsl = colorToHSL(primaryColor);
 
             if (hsl[2] > 0.8) {
-                return MainApp.getAppContext().getResources().getColor(R.color.elementFallbackColor);
+                return context.getResources().getColor(R.color.elementFallbackColor);
             } else {
                 return primaryColor;
             }
         }
     }
 
-    public static boolean themingEnabled() {
-        return getCapability().getServerColor() != null && !getCapability().getServerColor().isEmpty();
+    public static boolean themingEnabled(Context context) {
+        return getCapability(context).getServerColor() != null && !getCapability(context).getServerColor().isEmpty();
     }
 
     /**
      * @return int font color to use
      * adapted from https://github.com/nextcloud/server/blob/master/apps/theming/lib/Util.php#L90-L102
      */
-    public static int fontColor() {
+    public static int fontColor(Context context) {
         try {
-            return Color.parseColor(getCapability().getServerTextColor());
+            return Color.parseColor(getCapability(context).getServerTextColor());
         } catch (Exception e) {
-            if (darkTheme()) {
+            if (darkTheme(context)) {
                 return Color.WHITE;
             } else {
                 return Color.BLACK;
@@ -157,8 +157,8 @@ public class ThemeUtils {
      * Tests if dark color is set
      * @return true if dark theme -> e.g.use light font color, darker accent color
      */
-    public static boolean darkTheme() {
-        int primaryColor = primaryColor();
+    public static boolean darkTheme(Context context) {
+        int primaryColor = primaryColor(context);
         float[] hsl = colorToHSL(primaryColor);
 
         return hsl[2] <= 0.55;
@@ -170,12 +170,12 @@ public class ThemeUtils {
      * @param actionBar actionBar to be used
      * @param title     title to be shown
      */
-    public static void setColoredTitle(ActionBar actionBar, String title) {
+    public static void setColoredTitle(ActionBar actionBar, String title, Context context) {
         if (actionBar != null) {
             if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) {
                 actionBar.setTitle(title);
             } else {
-                String colorHex = colorToHexString(fontColor());
+                String colorHex = colorToHexString(fontColor(context));
                 actionBar.setTitle(Html.fromHtml("<font color='" + colorHex + "'>" + title + "</font>"));
             }
         }
@@ -196,14 +196,14 @@ public class ThemeUtils {
         if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) {
             actionBar.setTitle(titleId);
         } else {
-            String colorHex = colorToHexString(fontColor());
+            String colorHex = colorToHexString(fontColor(context));
             String title = context.getString(titleId);
             actionBar.setTitle(Html.fromHtml("<font color='" + colorHex + "'>" + title + "</font>"));
         }
     }
 
-    public static String getDefaultDisplayNameForRootFolder() {
-        OCCapability capability = getCapability();
+    public static String getDefaultDisplayNameForRootFolder(Context context) {
+        OCCapability capability = getCapability(context);
 
         if (capability.getServerName() == null || capability.getServerName().isEmpty()) {
             return MainApp.getAppContext().getResources().getString(R.string.default_display_name_for_root_folder);
@@ -268,8 +268,8 @@ public class ThemeUtils {
      *
      * @param seekBar the seek bar to be colored
      */
-    public static void colorHorizontalSeekBar(SeekBar seekBar) {
-        int color = ThemeUtils.primaryAccentColor();
+    public static void colorHorizontalSeekBar(SeekBar seekBar, Context context) {
+        int color = ThemeUtils.primaryAccentColor(context);
         colorHorizontalProgressBar(seekBar, color);
 
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
@@ -368,23 +368,19 @@ public class ThemeUtils {
         return String.format("#%06X", 0xFFFFFF & color);
     }
 
-    public static void tintFloatingActionButton(FloatingActionButton button, int drawable) {
-        button.setColorNormal(ThemeUtils.primaryColor());
-        button.setColorPressed(ThemeUtils.primaryDarkColor());
-        button.setIconDrawable(ThemeUtils.tintDrawable(drawable, ThemeUtils.fontColor()));
+    public static void tintFloatingActionButton(FloatingActionButton button, @DrawableRes int
+            drawable, Context context) {
+        button.setBackgroundTintList(ColorStateList.valueOf(ThemeUtils.primaryColor(context)));
+        button.setRippleColor(ThemeUtils.primaryDarkColor(context));
+        button.setImageDrawable(ThemeUtils.tintDrawable(drawable, ThemeUtils.fontColor(context)));
     }
 
-    private static OCCapability getCapability() {
-        return getCapability(null);
+    private static OCCapability getCapability(Context context) {
+        return getCapability(null, context);
     }
 
-    private static OCCapability getCapability(Account acc) {
+    private static OCCapability getCapability(Account acc, Context context) {
         Account account;
-        Context context = MainApp.getAppContext();
-
-        if (context == null) {
-            return new OCCapability();
-        }
 
         if (acc != null) {
             account = acc;

BIN
src/main/res/drawable-hdpi/ic_list_empty_upload.png


BIN
src/main/res/drawable-mdpi/ic_list_empty_upload.png


BIN
src/main/res/drawable-xhdpi/ic_list_empty_upload.png


BIN
src/main/res/drawable-xxhdpi/ic_list_empty_upload.png


BIN
src/main/res/drawable-xxxhdpi/ic_list_empty_upload.png


+ 0 - 11
src/main/res/drawable/fab_label_background.xml

@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
-    <solid android:color="@color/black_semi_transparent"/>
-    <padding
-        android:left="@dimen/standard_padding"
-        android:top="4dp"
-        android:right="@dimen/standard_padding"
-        android:bottom="4dp"/>
-    <corners
-        android:radius="2dp"/>
-</shape>

+ 14 - 0
src/main/res/drawable/ic_list_empty_upload.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24"
+        android:viewportHeight="24">
+
+    <path
+        android:fillColor="#888888"
+        android:fillAlpha="0.5"
+        android:strokeAlpha="0.5"
+        android:strokeWidth="1"
+        android:pathData="M 9,16 V 10 H 5 l 7,-7 7,7 h -4 v 6 H 9 m -4,4 v -2 h 14 v 2 z"/>
+</vector>

+ 24 - 0
src/main/res/drawable/ic_plus.xml

@@ -0,0 +1,24 @@
+<!--
+    @author Google LLC
+    Copyright (C) 2018 Google LLC
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:height="24dp"
+    android:width="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+    <path android:fillColor="#000" android:pathData="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z" />
+</vector>

+ 4 - 3
src/main/res/layout/account_action.xml

@@ -19,12 +19,13 @@
   You should have received a copy of the GNU Affero General Public
   License along with this program. If not, see <http://www.gnu.org/licenses/>.
 -->
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="fill_parent"
     android:layout_height="@dimen/account_action_layout_height"
     android:orientation="horizontal"
-    android:weightSum="1">
+    android:weightSum="1"
+    tools:ignore="UseCompoundDrawables">
 
     <ImageView
         android:id="@+id/user_icon"

+ 7 - 5
src/main/res/layout/file_details_fragment.xml

@@ -18,10 +18,11 @@
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-            android:id="@+id/fdScrollView"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:fillViewport="true">
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/fdScrollView"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:fillViewport="true">
 
     <LinearLayout
         android:layout_width="match_parent"
@@ -202,7 +203,8 @@
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:orientation="horizontal">
+                android:orientation="horizontal"
+                tools:ignore="UseCompoundDrawables">
 
                 <ImageView
                     android:contentDescription="@string/shared_icon"

+ 6 - 4
src/main/res/layout/file_details_share_user_item.xml

@@ -16,10 +16,12 @@
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        android:weightSum="1">
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal"
+    android:weightSum="1"
+    tools:ignore="UseCompoundDrawables">
 
         <ImageView
             android:id="@+id/userIcon"

+ 136 - 0
src/main/res/layout/file_list_actions_bottom_sheet_fragment.xml

@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+  Nextcloud Android client application
+
+  Copyright (C) 2018 Andy Scherzinger
+
+  This program is free software; you can redistribute it and/or
+  modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+  License as published by the Free Software Foundation; either
+  version 3 of the License, or any later version.
+
+  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 AFFERO GENERAL PUBLIC LICENSE for more details.
+
+  You should have received a copy of the GNU Affero General Public
+  License along with this program.  If not, see <http://www.gnu.org/licenses/>.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+    <TextView
+        android:id="@+id/add_to_cloud"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:padding="@dimen/standard_padding"
+        android:text="@string/add_to_cloud"
+        android:textSize="@dimen/bottom_sheet_text_size" />
+
+    <LinearLayout
+        android:id="@+id/menu_upload_files"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingBottom="@dimen/standard_half_padding"
+        android:paddingLeft="@dimen/standard_padding"
+        android:paddingRight="@dimen/standard_padding"
+        android:paddingTop="@dimen/standard_half_padding"
+        tools:ignore="UseCompoundDrawables">
+
+        <ImageView
+            android:id="@+id/menu_icon_upload_files"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:contentDescription="@null"
+            android:src="@drawable/ic_action_upload"
+            android:tint="@color/primary" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:layout_marginLeft="@dimen/standard_margin"
+            android:layout_marginStart="@dimen/standard_margin"
+            android:text="@string/upload_files"
+            android:textColor="@color/black"
+            android:textSize="@dimen/bottom_sheet_text_size" />
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:id="@+id/menu_upload_from_app"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingBottom="@dimen/standard_half_padding"
+        android:paddingLeft="@dimen/standard_padding"
+        android:paddingRight="@dimen/standard_padding"
+        android:paddingTop="@dimen/standard_half_padding"
+        tools:ignore="UseCompoundDrawables">
+
+        <ImageView
+            android:id="@+id/menu_icon_upload_from_app"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:contentDescription="@null"
+            android:src="@drawable/ic_import"
+            android:tint="@color/primary" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:layout_marginLeft="@dimen/standard_margin"
+            android:layout_marginStart="@dimen/standard_margin"
+            android:text="@string/upload_content_from_other_apps"
+            android:textColor="@color/black"
+            android:textSize="@dimen/bottom_sheet_text_size" />
+
+    </LinearLayout>
+
+    <View
+        android:id="@+id/divider"
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:layout_marginBottom="@dimen/standard_half_margin"
+        android:layout_marginLeft="@dimen/standard_margin"
+        android:layout_marginRight="@dimen/standard_margin"
+        android:layout_marginTop="@dimen/standard_half_margin"
+        android:background="@color/list_divider_background" />
+
+    <LinearLayout
+        android:id="@+id/menu_mkdir"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingBottom="@dimen/standard_padding"
+        android:paddingLeft="@dimen/standard_padding"
+        android:paddingRight="@dimen/standard_padding"
+        android:paddingTop="@dimen/standard_half_padding"
+        tools:ignore="UseCompoundDrawables">
+
+        <ImageView
+            android:id="@+id/menu_icon_mkdir"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:contentDescription="@null"
+            android:src="@drawable/ic_action_create_dir"
+            android:tint="@color/primary" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_vertical"
+            android:layout_marginLeft="@dimen/standard_margin"
+            android:layout_marginStart="@dimen/standard_margin"
+            android:text="@string/create_new_folder"
+            android:textColor="@color/black"
+            android:textSize="@dimen/bottom_sheet_text_size" />
+
+    </LinearLayout>
+
+</LinearLayout>

+ 2 - 35
src/main/res/layout/list_fragment.xml

@@ -46,7 +46,7 @@
 
     </android.support.design.widget.CoordinatorLayout>
 
-    <com.getbase.floatingactionbutton.FloatingActionsMenu
+    <android.support.design.widget.FloatingActionButton
         android:id="@+id/fab_main"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
@@ -56,40 +56,7 @@
         android:layout_marginBottom="@dimen/standard_margin"
         android:layout_marginEnd="@dimen/standard_margin"
         android:layout_marginRight="@dimen/standard_margin"
-        android:visibility="gone"
-        app:fab_labelStyle="@style/menu_labels_style">
-
-        <com.getbase.floatingactionbutton.FloatingActionButton
-            android:id="@+id/fab_upload"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            app:fab_colorNormal="@color/primary_button_background_color"
-            app:fab_colorPressed="@color/primary"
-            app:fab_icon="@drawable/ic_action_upload"
-            app:fab_size="mini"
-            app:fab_title=""/>
-
-        <com.getbase.floatingactionbutton.FloatingActionButton
-            android:id="@+id/fab_upload_from_app"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            app:fab_colorNormal="@color/primary_button_background_color"
-            app:fab_colorPressed="@color/primary"
-            app:fab_icon="@drawable/ic_import"
-            app:fab_size="mini"
-            app:fab_title=""/>
-
-        <com.getbase.floatingactionbutton.FloatingActionButton
-            android:id="@+id/fab_mkdir"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            app:fab_colorNormal="@color/primary_button_background_color"
-            app:fab_colorPressed="@color/primary"
-            app:fab_icon="@drawable/ic_action_create_dir"
-            app:fab_size="mini"
-            app:fab_title=""/>
-
-    </com.getbase.floatingactionbutton.FloatingActionsMenu>
+        android:visibility="gone" />
 
     <android.support.design.widget.BottomNavigationView
         android:id="@+id/bottom_navigation_view"

+ 3 - 1
src/main/res/layout/preview_image_error_fragment.xml

@@ -19,6 +19,7 @@
 -->
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:id="@+id/top"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
@@ -27,7 +28,8 @@
     android:gravity="center_vertical|center_horizontal"
     android:orientation="vertical"
     android:paddingBottom="@dimen/standard_double_margin"
-    android:animateLayoutChanges="true">
+    android:animateLayoutChanges="true"
+    tools:ignore="UseCompoundDrawables">
 
     <ImageView
         android:id="@+id/preview_error_image"

+ 3 - 1
src/main/res/layout/send_button.xml

@@ -20,10 +20,12 @@
 -->
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:orientation="vertical"
-    android:paddingTop="@dimen/standard_padding">
+    android:paddingTop="@dimen/standard_padding"
+    tools:ignore="UseCompoundDrawables">
 
     <ImageView
         android:id="@+id/send_button_icon"

+ 7 - 5
src/main/res/layout/send_share_fragment.xml

@@ -19,10 +19,10 @@
  You should have received a copy of the GNU Affero General Public License
  along with this program. If not, see <http://www.gnu.org/licenses/>.
 -->
-
 <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                                                 android:layout_width="match_parent"
-                                                 android:layout_height="match_parent">
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
 
     <RelativeLayout
         android:layout_width="match_parent"
@@ -44,7 +44,8 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_weight="1"
-            android:orientation="vertical">
+            android:orientation="vertical"
+            tools:ignore="UseCompoundDrawables">
 
             <ImageView
                 android:id="@+id/share_people_icon"
@@ -76,7 +77,8 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_weight="1"
-            android:orientation="vertical">
+            android:orientation="vertical"
+            tools:ignore="UseCompoundDrawables">
 
             <ImageView
                 android:id="@+id/share_link_icon"

+ 1 - 23
src/main/res/values-ar/strings.xml

@@ -61,7 +61,6 @@
     <string name="recommend_urls">%1$s أو %2$s</string>
 
     <string name="auth_check_server">فحص الخادم</string>
-    <string name="auth_host_url">عنوان الخادوم https://&#8230;</string>
     <string name="auth_username">إسم المستخدم</string>
     <string name="auth_password">كلمة السر</string>
     <string name="auth_register">ليس لديك ناكست كلاود حتى الآن ؟\nإضغط هنا للحصول على واحد من أحد المزودين</string>
@@ -81,14 +80,12 @@
     <string name="uploader_error_message_read_permission_not_granted">%1$s غير مسموح له أن يقرأ ملفاً مستلماً</string>
     <string name="uploader_error_message_source_file_not_found">لم يتم إيجاد الملف المحدد للرفع. الرجاء التأكد من أن الملف موجود.</string>
     <string name="uploader_upload_files_behaviour">خيارات الرفع :</string>
-    <string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">نقل الملف إلى مجلد ناكست كلاود</string>
     <string name="uploader_upload_files_behaviour_only_upload">الإبقاء على الملف في المجلد الأصلي</string>
     <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">إحذف الملف من المجلد الأصلي</string>
     <string name="file_list_seconds_ago">منذ ثواني</string>
     <string name="file_list_empty_headline">لا يوجد ملفات هنا </string>
     <string name="folder_list_empty_headline">لا توجد مجلدات</string>
     <string name="file_list_empty">قم برفع بعض المحتوى أو زامن مع أجهزتك</string>
-    <string name="file_list_loading">Lعملية التحميل جارية &#8230;</string>
     <string name="local_file_list_empty">لا توجد ملفات في هذا المجلد</string>
     <string name="file_list_empty_headline_search">لم يتم العثور على أية بيانات في هذا المجلد</string>
     <string name="file_list_empty_headline_server_search">دون أية نتيجة</string>
@@ -117,7 +114,6 @@
     <string name="common_back">رجوع</string>
     <string name="common_save">حفظ</string>
     <string name="common_error">خطأ</string>
-    <string name="common_loading">تحميل &#8230;</string>
     <string name="common_unknown">غير معروف</string>
     <string name="common_error_unknown">خطأ غير معروف. </string>
     <string name="common_pending">مُعلَّق</string>
@@ -125,9 +121,7 @@
     <string name="about_title">حول</string>
     <string name="delete_account">حذف الحساب</string>
     <string name="avatar">الصورة الرمزية</string>
-    <string name="upload_chooser_title">الرفع من &#8230;</string>
     <string name="uploader_info_dirname">اسم المجلد</string>
-    <string name="uploader_upload_in_progress_ticker">يتم الرفع &#8230;</string>
     <string name="uploader_upload_in_progress_content">%1$d%% رفع %2$s</string>
     <string name="uploader_upload_succeeded_ticker">تم رفعه</string>
     <string name="uploader_upload_succeeded_content_single">تم رفع %1$s</string>
@@ -149,7 +143,6 @@
     <string name="uploads_view_upload_status_waiting_for_wifi">في انتظار الربط بالواي فاي</string>
     <string name="uploads_view_upload_status_waiting_exit_power_save_mode">في انتظار الخروج من وضع توفير الطاقة</string>
     <string name="uploads_view_later_waiting_to_upload">بانتظار الرفع</string>
-    <string name="downloader_download_in_progress_ticker">يتم التحميل &#8230;</string>
     <string name="downloader_download_in_progress_content">%1$d%% تحميل  %2$s</string>
     <string name="downloader_download_succeeded_ticker">تم التنزيل</string>
     <string name="downloader_download_succeeded_content">%1$s مُنزَّلَة</string>
@@ -190,8 +183,7 @@
     <string name="media_play_pause_description">زر التشغيل أو الإيقاف</string>
     <string name="media_forward_description">زر التقدم للأمام</string>
 
-	<string name="auth_trying_to_login">محاولة الدخول &#8230;</string>
-	<string name="auth_no_net_conn_title">لا يتوفر اتصال</string>
+    <string name="auth_no_net_conn_title">لا يتوفر اتصال</string>
 	<string name="auth_nossl_plain_ok_title">الاتصال الآمن غير متاح</string>
 	<string name="auth_connection_established">تم الاتصال</string>
 	<string name="auth_testing_connection">تجريب الإتصال</string>
@@ -228,9 +220,7 @@
     <string name="create_dir_fail_msg">تعذر إنشاء المُجلّد</string>
     <string name="filename_forbidden_characters">رموز ممنوعة: / \\ &lt; &gt; : \" | ? *</string>
     <string name="filename_empty">لا يجوز أن يُترك إسم الملف فارغًا</string>
-    <string name="wait_a_moment">إنتظر لحظة &#8230;</string>
     <string name="filedisplay_no_file_selected">لم تقم بتحديد أي ملف</string>
-    <string name="activity_chooser_title">ارسل الرابط الى &#8230;</string>
     <string name="ssl_validator_reason_cert_not_trusted">شهادة الخادم غير موثوقة</string>
     <string name="ssl_validator_reason_cert_expired">شهادة الخادم منتهية الصلاحية</string>
     <string name="ssl_validator_reason_cert_not_yet_valid">وقت صلاحية شهادة الخادم لم يحن بعد</string>
@@ -289,7 +279,6 @@
     <string name="forbidden_permissions_delete">لحذف هذا الملف</string>
     <string name="share_link_forbidden_permissions">لمشاركة هذا الملف</string>
     <string name="forbidden_permissions_create">إنشاء هذا الملف</string>
-    <string name="file_migration_cleaning">تنظيف &#8230;</string>
     <string name="file_migration_ok_finished">مكتملة</string>
     <string name="file_migration_use_data_folder">استعمل</string>
 
@@ -297,8 +286,6 @@
     <string name="drawer_manage_accounts">إدارة الحسابات</string>
     <string name="actionbar_logger">سجل</string>
 	<string name="log_send_history_button">ارسال التاريخ</string>
-	<string name="log_progress_dialog_text">تحميل البيانات &#8230;</string>
-
 	<string name="saml_authentication_required_text">كلمة السر مطلوبة</string>
 	<string name="saml_authentication_wrong_pass">كلمة مرور خاطئة</string>
 	<string name="actionbar_move">أنقل</string>
@@ -332,7 +319,6 @@
     <string name="share_via_link_password_title">مؤَمَّن</string>
     <string name="share_via_link_edit_permission_label">السماح بإدخال تعديلات</string>
     <string name="share_get_public_link_button">تحصل على رابط</string>
-    <string name="share_with_title">شارك مع &#8230;</string>
     <string name="share_with_edit_title">شارك مع %1$s</string>
 
     <string name="share_search">البحث</string>
@@ -367,7 +353,6 @@
     <string name="participate_contribute_forum_forum">المنتدى</string>
     <string name="participate_contribute_translate_translate">ترجمة</string>
     <string name="participate_contribute_translate_text">التطبيق</string>
-    <string name="move_to">أنقل إلى &#8230;</string>
     <string name="synced_folders_preferences">خيارات الرفع التلقائي</string>
     <string name="notifications_no_results_headline">لا توجد هناك إخطارات</string>
     <string name="upload_file_dialog_filename">اسم الملف</string>
@@ -422,9 +407,6 @@
 
     <string name="test_server_button">أفحص أتصال الخادم</string>
     <string name="fallback_weblogin_back">العودة</string>
-    <string name="foreground_service_upload">جارٍ رفع الملفات &#8230;</string>
-    <string name="foreground_service_download">جارٍ تنزيل الملفات &#8230;</string>
-
     <string name="prefs_sourcecode">الحصول على الشفرة المصدرية</string>
     <string name="prefs_license">الرخصة</string>
     <string name="date_unknown">مجهول</string>
@@ -474,13 +456,9 @@
     
     <string name="end_to_end_encryption_folder_not_empty">هذا المجلد غير فارغ.</string>
     <string name="end_to_end_encryption_wrong_password">خطأ أثناء فك التعمية. هل كلمة السر صحيحة ؟</string>
-    <string name="end_to_end_encryption_decrypting">فك التشفير &#8230;</string>
-    <string name="end_to_end_encryption_retrieving_keys">يتم استرجاع المفاتيح </string>
     <string name="end_to_end_encryption_enter_password">الرجاء أدخل كلمة المرور ليتم فك تشفير المفتاح الخاص</string>
-    <string name="end_to_end_encryption_generating_keys">توليد مفاتيح جديدة &#8230;</string>
     <string name="end_to_end_encryption_title">تنصيب التشفير</string>
     <string name="end_to_end_encryption_confirm_button">تنصيب التشفير</string>
-    <string name="end_to_end_encryption_password"> كلمة المرور &#8230;</string>
     <string name="end_to_end_encryption_dialog_close">إغلاق</string>
     <string name="end_to_end_encryption_storing_keys">تخزين المفاتيح </string>
     <string name="sendbutton_description">أيقونة زر الإرسال</string>

+ 0 - 383
src/main/res/values-ast/strings.xml

@@ -1,383 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-    <string name="about_android">Aplicación %1$s p\'Android</string>
-    <string name="about_version">versión %1$s</string>
-    <string name="actionbar_sync">Refrescar cuenta</string>
-    <string name="actionbar_upload">Xubir</string>
-    <string name="actionbar_upload_from_apps">Conteníu dende otres aplicaciones</string>
-    <string name="actionbar_upload_files">Ficheros</string>
-    <string name="actionbar_open_with">Abrir con</string>
-    <string name="actionbar_mkdir">Carpeta nueva</string>
-    <string name="actionbar_settings">Axustes</string>
-    <string name="actionbar_see_details">Detalles</string>
-    <string name="actionbar_send_file">Unviar</string>
-    <string name="actionbar_sort">Ordenar</string>
-    <string name="sort_by">Ordenar per</string>
-    <string name="menu_item_sort_by_name_a_z">A - Z</string>
-    <string name="menu_item_sort_by_name_z_a">Z - A</string>
-    <string name="menu_item_sort_by_date_newest_first">Lo más nuevo</string>
-    <string name="menu_item_sort_by_date_oldest_first">Lo más vieyo</string>
-    <string name="menu_item_sort_by_size_biggest_first">Lo más grande</string>
-    <string name="menu_item_sort_by_size_smallest_first">Lo más pequeño</string>
-
-    <string name="drawer_item_all_files">Tolos ficheros</string>
-    <string name="drawer_item_home">Aniciu</string>
-    <string name="drawer_item_favorites">Favoritos</string>
-    <string name="drawer_item_photos">Semeyes</string>
-    <string name="drawer_item_on_device">Nel preséu</string>
-    <string name="drawer_item_recently_added">Amestao apocayá</string>
-    <string name="drawer_item_recently_modified">Modificao apocayá</string>
-    <string name="drawer_item_shared">Compartío</string>
-    <string name="drawer_item_videos">Vídeos</string>
-    <string name="drawer_item_settings">Axustes</string>
-    <string name="drawer_item_uploads_list">Xubes </string>
-    <string name="drawer_item_activities">Actividaes</string>
-    <string name="drawer_item_notifications">Avisos</string>
-    <string name="drawer_quota">%1$s de %2$s usao</string>
-	<string name="drawer_close">Zarrar</string>
-    <string name="drawer_open">Abrir</string>
-    <string name="prefs_category_general">Xeneral</string>
-    <string name="prefs_category_more">Más</string>
-    <string name="prefs_manage_accounts">Xestionar cuentes</string>
-    <string name="prefs_passcode">Bloquéu con códigu de pasu</string>
-    <string name="prefs_fingerprint">Bloquéu con buelga</string>
-    <string name="prefs_fingerprint_notsetup">Nun se configuraron buelgues.</string>
-    <string name="prefs_expert_mode">Mou espertu</string>
-    <string name="prefs_show_hidden_files">Amosar ficheros anubríos</string>
-    <string name="prefs_log_delete_history_button">Desaniciar historial</string>
-    <string name="prefs_calendar_contacts">Sincronizar calendariu &amp; contautos</string>
-    <string name="prefs_calendar_contacts_summary">Configura DAVdroid (v1.3.0+) pa la cuenta actual</string>
-    <string name="prefs_help">Ayuda</string>
-    <string name="prefs_recommend">Aconseyar a un collaciu</string>
-    <string name="prefs_feedback">Feedback</string>
-    <string name="auth_check_server">Comprobar servidor</string>
-    <string name="auth_host_url">Direición del sirvidor https://&#8230;</string>
-    <string name="auth_username">Nome d\'usuariu</string>
-    <string name="auth_password">Contraseña</string>
-    <string name="sync_string_files">Ficheros</string>
-    <string name="setup_btn_connect">Coneutar</string>
-    <string name="uploader_btn_upload_text">Xubir</string>
-    <string name="uploader_btn_alternative_text">Escoyer</string>
-    <string name="uploader_top_message">Escueyi una carpeta de xuba</string>
-    <string name="uploader_wrn_no_account_title">Nun s\'alcontraron cuentes</string>
-    <string name="uploader_wrn_no_account_text">Nun hai nenguna cuenta %1$s nel to preséu. Por favor configura una cuenta enantes.</string>
-    <string name="uploader_wrn_no_account_setup_btn_text">Configuración</string>
-    <string name="uploader_wrn_no_account_quit_btn_text">Colar</string>
-    <string name="uploader_error_title_no_file_to_upload">Ensin ficheru pa xubir</string>
-    <string name="uploader_error_message_no_file_to_upload">Los datos recibíos nun inclúin un ficheru válidu.</string>
-    <string name="uploader_error_title_file_cannot_be_uploaded">Esti ficheru nun pue xubise</string>
-    <string name="uploader_error_message_read_permission_not_granted">%1$s nun tien permisu pa lleer un ficheru recibíu</string>
-    <string name="uploader_error_message_source_file_not_copied">Nun pudo copiase\'l ficheru a una carpeta temporal. Prueba a reunvialu.</string>
-    <string name="uploader_upload_files_behaviour">Opción de xuba:</string>
-    <string name="uploader_upload_files_behaviour_only_upload">Caltener ficheru na carpeta fonte</string>
-    <string name="file_list_seconds_ago">hai segundos</string>
-    <string name="file_list_empty_headline">Equí nun hai ficheros</string>
-    <string name="file_list_empty_favorites_filter">La to gueta nun devolvió ficheros favoritos.</string>
-    <string name="file_list_no_app_for_file_type">Nun s\'afitó una aplicación pa remanar esta triba de ficheru.</string>
-    <string name="local_file_list_empty">Nun hai ficheros nesta carpeta.</string>
-    <string name="local_folder_list_empty">Nun hai más carpetes.</string>
-    <string name="file_list_empty_headline_search">Ensin resultaos nesta carpeta</string>
-    <string name="file_list_empty_headline_server_search">Ensin resultaos</string>
-    <string name="file_list_empty_shared_headline">Entá nun se compartió nada</string>
-    <string name="file_list_empty_shared">Equí amosaránse los ficheros y carpetes que compartas</string>
-    <string name="file_list_empty_headline_server_search_videos">Ensín vídeos</string>
-    <string name="file_list_empty_headline_server_search_photos">Ensin semeyes</string>
-    <string name="file_list_empty_search">¿Quiciabes tea nuna carpeta diferente?</string>
-    <string name="upload_list_empty_headline">Nun hai xubes disponibles</string>
-    <string name="file_list_folder">Carpeta</string>
-    <string name="filedetails_select_file">Calca nun ficheru p\'amosar información adicional</string>
-    <string name="filedetails_download">Descargar</string>
-    <string name="common_yes">Sí</string>
-    <string name="common_no">Non</string>
-    <string name="common_ok">Aceutar</string>
-    <string name="common_cancel_sync">Encaboxar sincronización</string>
-    <string name="common_cancel">Encaboxar</string>
-    <string name="common_back">Atrás</string>
-    <string name="common_loading">Cargando&#8230;</string>
-    <string name="common_unknown">desconocí­u</string>
-    <string name="common_error_unknown">Fallu desconocíu</string>
-    <string name="about_title">Tocante</string>
-    <string name="delete_account">Desaniciar cuenta</string>
-    <string name="upload_chooser_title">Xubir dende&#8230;</string>
-    <string name="uploader_info_dirname">Nome de la carpeta</string>
-    <string name="uploader_upload_in_progress_ticker">Xubiendo&#8230;</string>
-    <string name="uploader_upload_in_progress_content">%1$d%% Xubiendo %2$s</string>
-    <string name="uploader_upload_succeeded_content_single">%1$s xubíu</string>
-    <string name="uploader_upload_failed_ticker">Xuba fallida</string>
-    <string name="uploader_upload_failed_content_single">Nun pudo xubise %1$s</string>
-    <string name="uploads_view_title">Xubes</string>
-    <string name="uploads_view_group_current_uploads">Actual</string>
-    <string name="uploads_view_group_finished_uploads">Xubíu</string>
-    <string name="uploads_view_upload_status_succeeded">Completáu</string>
-    <string name="uploads_view_upload_status_cancelled">Encaboxáu</string>
-    <string name="uploads_view_upload_status_failed_connection_error">Fallu de conexón</string>
-    <string name="uploads_view_upload_status_failed_credentials_error">Fallu de credenciales</string>
-    <string name="uploads_view_upload_status_failed_folder_error">Fallu de carpeta</string>
-    <string name="uploads_view_upload_status_failed_file_error">Fallu de ficheru</string>
-    <string name="uploads_view_upload_status_failed_localfile_error">Ficheru llocal nun s\'atopó</string>
-    <string name="uploads_view_upload_status_failed_permission_error">Fallu de permisu</string>
-    <string name="uploads_view_upload_status_conflict">Conflictu</string>
-    <string name="uploads_view_upload_status_service_interrupted">Aplicación finada</string>
-    <string name="uploads_view_upload_status_unknown_fail">Fallu desconocíu</string>
-    <string name="uploads_view_later_waiting_to_upload">Esperando pa xubir</string>
-    <string name="downloader_download_in_progress_ticker">Baxando&#8230;</string>
-    <string name="downloader_download_in_progress_content">%1$d%% Descargando %2$s</string>
-    <string name="downloader_download_succeeded_content">%1$s descargáu</string>
-    <string name="downloader_download_failed_ticker">Descarga fallida</string>
-    <string name="downloader_download_failed_content">Nun pudo baxase %1$s</string>
-    <string name="downloader_not_downloaded_yet">Entá non baxáu</string>
-    <string name="common_choose_account">Esbillar cuenta</string>
-    <string name="sync_fail_ticker">Sincronización fallida</string>
-    <string name="sync_fail_content_unauthorized">Contraseña incorreuta pa %1$s</string>
-    <string name="sync_conflicts_in_favourites_ticker">Conflictos alcontraos</string>
-    <string name="sync_fail_in_favourites_ticker">Fallu al caltener ficheros sincronizaos.</string>
-    <string name="sync_foreign_files_forgotten_ticker">Dexáronse dalgunos ficheros llocales.</string>
-    <string name="sync_current_folder_was_removed">La carpeta %1$s yá nun esiste</string>
-    <string name="pass_code_enter_pass_code">Introduz el to códigu de pasu, por favor</string>
-    
-    <string name="pass_code_configure_your_pass_code">Introduz el to códigu de pasu</string>
-    <string name="pass_code_configure_your_pass_code_explanation">La contraseña va ser solicitada cada vegada que s\'anicie l\'aplicación</string>
-    <string name="pass_code_reenter_your_pass_code">Por favor, vuelvi inxertar la contraseña</string>
-    <string name="pass_code_mismatch">Les contraseñes nun son les mesmes</string>
-    <string name="pass_code_wrong">Contraseña incorrecta</string>
-    <string name="pass_code_stored">Contraseña almacenada</string>
-    
-    <string name="media_state_loading">%1$s (cargando)</string>
-    <string name="media_err_nothing_to_play">Nun s\'atopó nengún ficheru multimedia</string>
-    <string name="media_err_no_account">Nun s\'especificó nenguna cuenta.</string>
-    <string name="media_err_not_in_owncloud">El ficheru nun ye una cuenta válida</string>
-    <string name="media_err_unsupported">Códec multimedia non soportáu</string>
-    <string name="media_err_io">Nun pudo lleese\'l ficheru de medios</string>
-    <string name="media_err_malformed">El ficheru de medios tien una codificación incorreuta</string>
-    <string name="media_err_timeout">Escoso\'l tiempu pa reproducir el ficheru</string>
-    <string name="media_err_invalid_progressive_playback">El ficheru de medios nun pue tresmitise</string>
-    <string name="media_err_security_ex">Alcontróse un fallu de seguranza tentando de reproducir %1$s</string>
-    <string name="media_err_io_ex">Fallu d\'entrada entrín se tentaba de reproducir %1$s</string>
-    <string name="media_err_unexpected">Fallu inesperáu entrín se tentaba de reproducir %1$s</string>
-    <string name="media_rewind_description">Botón de rebobináu</string>
-    <string name="media_play_pause_description">Botón de reproducción o posa</string>
-    <string name="media_forward_description">Botón d\'avance rápidu</string>
-
-	<string name="auth_getting_authorization">Consiguiendo autorización&#8230;</string>
-	<string name="auth_trying_to_login">Tentado d\'aniciar sesión&#8230;</string>
-	<string name="auth_no_net_conn_title">Ensin conexón de rede</string>
-	<string name="auth_nossl_plain_ok_title">Conexón segura non disponible</string>
-	<string name="auth_connection_established">Conexón afitada</string>
-	<string name="auth_testing_connection">Probando conexón</string>
-	<string name="auth_not_configured_title">Configuración del sirvidor mal fecha</string>
-	<string name="auth_account_not_new">Yá esiste nel preséu una cuenta pal mesmu usuariu y sirvidor</string>
-	<string name="auth_account_not_the_same">L\'usuariu inxertáu nun concasa col usuariu d\'esta cuenta</string>
-	<string name="auth_unknown_error_title">¡Asocedió un fallu desconocíu!</string>
-	<string name="auth_unknown_host_title">Nun pudo alcontrase l\'agospiu</string>
-	<string name="auth_incorrect_path_title">Nun s\'alcontró\'l sirvidor</string>
-	<string name="auth_timeout_title">El sirvidor tardó muncho en responder</string>
-	<string name="auth_ssl_general_error_title">Falló la inicialización SSL</string>
-	<string name="auth_ssl_unverified_server_title">Nun pudo verificase la identidá del sirvidor SSL</string>
-	<string name="auth_bad_oc_version_title">Versión del sirvidor non reconocida</string>
-	<string name="auth_wrong_connection_title">Nun pudo afitase la conexón</string>
-	<string name="auth_secure_connection">Afitada conexón segura</string>
-	<string name="auth_unauthorized">Nome d\'usuariu o contraseña erroneos</string>
-	<string name="auth_oauth_error">Autorización ensin ésitu</string>
-	<string name="auth_oauth_error_access_denied">Accesu refugáu pol sirvidor d\'autenticación</string>
-	<string name="auth_expired_oauth_token_toast">La to autorización finó. Por favor, autorízala otra vegada</string>
-	<string name="auth_expired_basic_auth_toast">Por favor, introduzca la contraseña actual</string>
-	<string name="auth_expired_saml_sso_token_toast">La so sesión finó. Por favor conéutate otra vegada</string>
-    <string name="auth_unsupported_multiaccount">%1$s nun permite cuentes múltiples</string>
-	<string name="auth_can_not_auth_against_server">Nun pues autentificate nesti sirvidor</string>
-    <string name="favorite">Afitar como disponible ensin conexón</string>
-    <string name="unfavorite">Desaniciar como disponible ensin conexón</string>
-    <string name="favorite_real">Afitar como favoritu</string>
-    <string name="common_rename">Renomar</string>
-    <string name="confirmation_remove_local">Namái llocal</string>
-    <string name="rename_dialog_title">Introduz un nome nuevu</string>
-    <string name="sync_file_nothing_to_do_msg">El conteníu del ficheru yá ta sincronizáu</string>
-    <string name="create_dir_fail_msg">Nun pudo crease la carpeta</string>
-    <string name="filename_forbidden_characters">Caráuteres prohibíos: / \\ &lt; &gt; : \" | ? *</string>
-    <string name="wait_checking_credentials">Comprobación de credenciales almacenaes</string>
-    <string name="filedisplay_no_file_selected">Nun s\'esbillaron ficheros</string>
-    <string name="activity_chooser_title">Unviar enllaz a&#8230;</string>
-    <string name="wait_for_tmp_copy_from_private_storage">Copiando ficheru dende l\'almacenamientu priváu</string>
-    
-    <string name="ssl_validator_reason_cert_not_trusted">- El certificáu del sirvidor nun ye de confianza</string>
-    <string name="ssl_validator_reason_cert_expired">- El certificáu del sirvidor caducó</string>
-    <string name="ssl_validator_reason_cert_not_yet_valid">- Les dates de validez del certificáu tán nel futuru</string>
-    <string name="ssl_validator_reason_hostname_not_verified">- La URL nun casa col nome del sirvidor nel certificáu</string>
-    <string name="ssl_validator_question">¿Quies enfotate nesti certificáu de toes formes?</string>
-    <string name="ssl_validator_not_saved">Nun pudo guardase\'l certificáu</string>
-    <string name="ssl_validator_btn_details_see">Detalles</string>
-    <string name="ssl_validator_btn_details_hide">Anubrir</string>
-    <string name="ssl_validator_label_subject">Emitíu pa:</string>
-    <string name="ssl_validator_label_issuer">Emitíu por:</string>
-    <string name="ssl_validator_label_CN">Nome común:</string>
-    <string name="ssl_validator_label_O">Organización:</string>
-    <string name="ssl_validator_label_OU">Unidá organizativa:</string>
-    <string name="ssl_validator_label_C">País:</string>
-    <string name="ssl_validator_label_ST">Estáu:</string>
-    <string name="ssl_validator_label_L">Llocalización:</string>
-    <string name="ssl_validator_label_validity">Validez:</string>
-    <string name="ssl_validator_label_validity_from">De:</string>
-    <string name="ssl_validator_label_validity_to">A:</string>
-    <string name="ssl_validator_label_signature">Robla:</string>
-    <string name="ssl_validator_label_signature_algorithm">Algoritmu:</string>
-    <string name="digest_algorithm_not_available">Esti algorítmu de dixestión nun ta disponible nel tu teléfonu.</string>
-    <string name="ssl_validator_label_certificate_fingerprint">Robla</string>
-    <string name="certificate_load_problem">Hai un problema cargando\'l certificáu</string>
-    <string name="ssl_validator_null_cert">Nun pudo amosase\'l certificáu.</string>
-    <string name="ssl_validator_no_info_about_error">- Nun atopamos información tocante a esti fallu</string>
-
-    <string name="placeholder_sentence">Esto ye un marcador de posición</string>
-    <string name="placeholder_filename">MarcadorDePosicion.txt</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_charging">Namái xubir al cargar</string>
-    <string name="instant_upload_path">/XubidaNelIntre</string>
-    <string name="conflict_title">Conflictu nel ficheru</string>
-    <string name="conflict_message">¿Qué ficheros quies caltener? Si esbilles dambes versiones, el ficheru llocal tendrá un númberu axuntáu al so nome.</string>
-    <string name="conflict_keep_both">Caltener dambos</string>
-    <string name="conflict_use_local_version">Versión llocal</string>
-    <string name="conflict_use_server_version">Versión de sirvidor</string>
-
-    <string name="preview_image_description">Previsualización d\'imaxe</string>
-    <string name="preview_image_error_unknown_format">Nun pue amosase la imaxe</string>
-    <string name="error__upload__local_file_not_copied">Nun se pudo copiar %1$s al ficheru llocal %2$s</string>
-    <string name="prefs_instant_upload_path_use_subfolders_title">Usar socarpetes</string>
-    <string name="share_link_file_no_exist">Nun pue compartise. Por favor, comprueba si\'l ficheru esiste</string>
-	<string name="share_link_file_error">Hebo un fallu mientres s\'intentaba compartir esti ficheru o carpeta</string>
-	<string name="unshare_link_file_no_exist">Incapaz de dexar de compartir. Por favor, comprueba si\'l ficheru esiste</string>
-	<string name="unshare_link_file_error">Hebo un fallu mientres s\'intentaba dexar de compartir esti ficheru o carpeta</string>
-    <string name="update_link_file_error">Hebo un fallu mientres s\'intentaba actualizar la cuota</string>
-    <string name="share_link_password_title">Introduz una contraseña</string>
-    <string name="share_link_empty_password">Tienes qu\'introducir una contraseña</string>
-
-    <string name="activity_chooser_send_file_title">Unviar</string>
-
-    <string name="copy_link">Copiar enllaz</string>
-    <string name="clipboard_text_copied">Copiáu al cartafueyu</string>
-    <string name="clipboard_uxexpected_error">Error inesperáu intentando copiar al cartafueyu</string>
-    <string name="clipboard_label">Testu copiáu dende %1$s</string>
-
-    <string name="error_cant_bind_to_operations_service">Fallu críticu: Nun puen facese les operaciones</string>
-
-    <string name="network_host_not_available">Nun pudo completase la operación. Sirvidor non disponible</string>
-
-    <string name="forbidden_permissions">Nun tienes permisu %s</string>
-    <string name="forbidden_permissions_rename">pa renomar esti ficheru</string>
-    <string name="forbidden_permissions_delete">pa desaniciar esti ficheru</string>
-    <string name="share_link_forbidden_permissions">pa compartir esti ficheru</string>
-    <string name="unshare_link_forbidden_permissions">pa dexar de compartir esti ficheru</string>
-    <string name="update_link_forbidden_permissions">p\'anovar esta compartición</string>
-    <string name="forbidden_permissions_create">pa crear esti ficheru</string>
-    <string name="uploader_upload_forbidden_permissions">pa xubir esta carpeta</string>
-    <string name="downloader_download_file_not_found">Esti ficheru yá nun ta nel sirvidor</string>
-
-    <string name="file_migration_ok_finished">Finó</string>
-    <string name="file_migration_override_data_folder">Trocar</string>
-    <string name="file_migration_use_data_folder">Usar</string>
-
-    <string name="file_migration_source_not_readable">¿Entá quies camudar el camín d\'almacenamientu a %1$s?\n\nNota: Tolos datos tendrán de baxase de nueves.</string>
-
-    <string name="prefs_add_account">Amestar cuenta</string>
-    <string name="drawer_manage_accounts">Xestionar cuentes</string>
-    <string name="auth_redirect_non_secure_connection_title">Conexón segura redirixida pente una ruta insegura.</string>
-
-	<string name="actionbar_logger">Rexistros</string>
-	<string name="log_send_history_button">Unviar historial</string>
-	<string name="log_send_mail_subject">Aplicación de rexistros d\'Android %1$s</string>
-	<string name="log_progress_dialog_text">Cargando datos&#8230;</string>
-
-	<string name="saml_authentication_wrong_pass">Contraseña incorreuta</string>
-	<string name="actionbar_move">Mover</string>
-    <string name="actionbar_copy">Copiar</string>
-	<string name="file_list_empty_moving">Equí nun hai nada. Pes amestar una carpeta</string>
-	<string name="folder_picker_choose_button_text">Esbillar</string>
-
-    <string name="move_file_not_found">Nun pue movese\'l ficheru. Comprueba si esiste, por favor</string>
-    <string name="move_file_invalid_into_descendent">Nun ye posible mover una carpeta a les sos soxacentes</string>
-    <string name="move_file_invalid_overwrite">El ficheru yá ta presente na carpeta de destín</string>
-    <string name="move_file_error">Asocedió un fallu entrín s\'intentaba mover esta carpeta</string>
-    <string name="forbidden_permissions_move">pa mover esti ficheru</string>
-
-
-    <string name="copy_file_not_found">Nun pue copiáse. Por favor, comprueba si\'l ficheru esiste</string>
-    <string name="copy_file_invalid_overwrite">El ficheru yá ta presente na carpeta destín</string>
-    <string name="copy_file_error">Asocedió un fallú entrín s\'intentaba copiar esta carpeta o ficheru</string>
-    <string name="forbidden_permissions_copy">pa copiar esti ficheru</string>
-
-    <string name="prefs_category_details">Detalles</string>
-
-    <string name="subject_user_shared_with_you">%1$s compartío \"%2$s\" contigo</string>
-    <string name="subject_shared_with_you">Compartiose \"%1$s\" contigo</string>
-
-    <string name="auth_refresh_button">Anovar conexón</string>
-    <string name="auth_host_address">Direición del sirvidor</string>
-    <string name="common_error_out_memory">Nun hai abonda memoria</string>
-
-    <string name="username">Nome d\'usuariu</string>
-
-    <string name="select_all">Esbillar too</string>
-    <string name="pref_behaviour_entries_keep_file">guardáu en carpeta orixinal</string>
-    <string name="pref_behaviour_entries_move">movíu a la carpeta d\'aplicaciones</string>
-    <string name="prefs_storage_path">Camín d\'almacenamientu</string>
-
-    <string name="share_dialog_title">Compartiendo</string>
-    <string name="share_file">Compartir %1$s</string>
-    <string name="share_with_user_section_title">Compartir con usuarios y grupos</string>
-    <string name="share_no_users">Entá nun se compartieron datos con usuarios</string>
-    <string name="share_add_user_or_group">Amestar usuariu o grupu</string>
-    <string name="share_via_link_section_title">Compartir enllaz</string>
-    <string name="share_via_link_expiration_date_label">Afitar la data de caducidá</string>
-    <string name="share_via_link_password_title">Aseguráu</string>
-    <string name="share_get_public_link_button">Consiguir enllaz</string>
-    <string name="share_with_title">Compartir con&#8230;</string>
-    <string name="share_with_edit_title">Compartir con %1$s</string>
-
-    <string name="share_search">Guetar</string>
-
-    <string name="search_users_and_groups_hint">Guetar usuarios y grupos</string>
-    <string name="share_group_clarification">%1$s (gropu)</string>
-    <string name="share_remote_clarification">%1$s (remotu)</string>
-    <string name="share_email_clarification">%1$s (corréu)</string>
-    <string name="share_known_remote_clarification">%1$s ( en %2$s )</string>
-
-    <string name="share_privilege_can_share">pue compartir</string>
-    <string name="share_privilege_can_edit">pue editar</string>
-    <string name="share_privilege_can_edit_create">crear</string>
-    <string name="share_privilege_can_edit_change">camudar</string>
-    <string name="share_privilege_can_edit_delete">desaniciar</string>
-
-    <string name="action_switch_grid_view">Vista de rexella</string>
-    <string name="action_switch_list_view">Vista de llista</string>
-
-    <string name="manage_space_title">Alministrar espaciu</string>
-    <string name="manage_space_clear_data">Llimpiar datos</string>
-
-    <string name="actionbar_search">Guetar</string>
-    <string name="learn_more">Deprendi más</string>
-    <string name="participate_release_candidate_headline">Llanzamientu candidatu</string>
-    <string name="notifications_no_results_headline">Ensin avisos</string>
-    <string name="upload_file_dialog_filename">Nome de ficheru</string>
-    <string name="upload_file_dialog_filetype">Triba de ficheru</string>
-    <!-- Welcome to Nc intro features -->
-    <string name="welcome_feature_1_title">Un llar seguru pa tolos tos datos</string>
-    <string name="welcome_feature_1_text">Accedu, comparti y protexi los tos ficheros en casa y nel trabayu</string>
-
-    <string name="whats_new_skip">Saltar</string>
-
-    <string name="fingerprint_scan_finger">Escania\'l to deu, por favor</string>
-    <string name="fingerprint_unknown">Nun se reconoz el deu</string>
-
-    <!-- User information -->
-    <string name="user_info_email">Corréu</string>
-    <string name="user_info_phone">Númberu telefónicu</string>
-    <string name="user_info_address">Direición</string>
-    <string name="user_info_website">Sitiu web</string>
-    <string name="user_info_twitter">Twitter</string>
-
-    <!-- Activities -->
-    <string name="activities_no_results_headline"> Entá nun hai actividá</string>
-    <string name="prefs_category_about">Tocante a</string>
-
-    <string name="actionbar_contacts_restore">Restaurar contautos</string>
-    <string name="contacts_preference_backup_never">enxamás</string>
-    </resources>

+ 4 - 45
src/main/res/values-b+en+001/strings.xml

@@ -61,7 +61,6 @@
     <string name="recommend_urls">%1$s or %2$s</string>
 
     <string name="auth_check_server">Check server</string>
-    <string name="auth_host_url">Server address https://&#8230;</string>
     <string name="auth_username">Username</string>
     <string name="auth_password">Password</string>
     <string name="auth_register">No Nextcloud yet?\nClick here to get one from a provider</string>
@@ -81,7 +80,6 @@
     <string name="uploader_error_message_source_file_not_found">File selected for upload not found. Please check whether the file exists.</string>
     <string name="uploader_error_message_source_file_not_copied">Could not copy file to a temporary folder. Try to resend it.</string>
     <string name="uploader_upload_files_behaviour">Upload option:</string>
-    <string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">Move file to Nextcloud folder</string>
     <string name="uploader_upload_files_behaviour_only_upload">Keep file in source folder</string>
     <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Delete file from source folder</string>
     <string name="file_list_seconds_ago">seconds ago</string>
@@ -90,7 +88,6 @@
     <string name="file_list_empty">Upload some content or sync with your devices.</string>
     <string name="file_list_empty_favorites_filter_list">Files and folders you mark as favorites will show up here</string>
     <string name="file_list_empty_favorites_filter">Your search returned no favorited files.</string>
-    <string name="file_list_loading">Loading &#8230;</string>
     <string name="file_list_no_app_for_file_type">No app set up to handle this file type.</string>
     <string name="local_file_list_empty">There are no files in this folder.</string>
     <string name="local_folder_list_empty">There are no further folders.</string>
@@ -127,7 +124,6 @@
     <string name="common_back">Back</string>
     <string name="common_save">Save</string>
     <string name="common_error">Error</string>
-    <string name="common_loading">Loading &#8230;</string>
     <string name="common_unknown">unknown</string>
     <string name="common_error_unknown">Unknown error</string>
     <string name="common_pending">Pending</string>
@@ -137,9 +133,7 @@
     <string name="delete_account_warning">Remove account %s and delete all local files?\n\nDeletion cannot be undone.</string>
     <string name="avatar">Avatar</string>
     <string name="active_user">Active user</string>
-    <string name="upload_chooser_title">Upload from &#8230;</string>
     <string name="uploader_info_dirname">Folder name</string>
-    <string name="uploader_upload_in_progress_ticker">Uploading &#8230;</string>
     <string name="uploader_upload_in_progress_content">%1$d%% Uploading %2$s</string>
     <string name="uploader_upload_succeeded_ticker">Uploaded</string>
     <string name="uploader_upload_succeeded_content_single">%1$s uploaded</string>
@@ -165,7 +159,6 @@
     <string name="uploads_view_upload_status_waiting_for_wifi">Waiting for Wi-Fi</string>
     <string name="uploads_view_upload_status_waiting_exit_power_save_mode">Waiting to exit power save mode</string>
     <string name="uploads_view_later_waiting_to_upload">Waiting to upload</string>
-    <string name="downloader_download_in_progress_ticker">Downloading &#8230;</string>
     <string name="downloader_download_in_progress_content">%1$d%% Downloading %2$s</string>
     <string name="downloader_download_succeeded_ticker">Downloaded</string>
     <string name="downloader_download_succeeded_content">%1$s downloaded</string>
@@ -229,9 +222,7 @@
     <string name="media_play_pause_description">Play or pause button</string>
     <string name="media_forward_description">Fast-forward button</string>
 
-	<string name="auth_getting_authorization">Getting authorisation &#8230;</string>
-	<string name="auth_trying_to_login">Trying to log in &#8230;</string>
-	<string name="auth_no_net_conn_title">No network connection</string>
+    <string name="auth_no_net_conn_title">No network connection</string>
 	<string name="auth_nossl_plain_ok_title">Secure connection unavailable.</string>
 	<string name="auth_connection_established">Connection established</string>
 	<string name="auth_testing_connection">Testing connection</string>
@@ -255,8 +246,7 @@
 	<string name="auth_expired_oauth_token_toast">Your authorisation expired. Please, authorise again</string>
 	<string name="auth_expired_basic_auth_toast">Please enter the current password</string>
 	<string name="auth_expired_saml_sso_token_toast">Your session expired. Please connect again</string>
-    <string name="auth_connecting_auth_server">Connecting to authentication server &#8230;</string>
-	<string name="auth_unsupported_multiaccount">%1$s does not support multiple accounts</string>
+    <string name="auth_unsupported_multiaccount">%1$s does not support multiple accounts</string>
 	<string name="auth_fail_get_user_name">Your server is not returning a correct user ID, please contact an admin</string>
 	<string name="auth_can_not_auth_against_server">Cannot authenticate to this server</string>
     <string name="auth_account_does_not_exist">The account is not added on this device yet</string>
@@ -284,15 +274,11 @@
     <string name="filename_forbidden_characters">Forbidden characters: / \\ &lt; &gt; : \" | ? *</string>
     <string name="filename_forbidden_charaters_from_server">Filename contains at least one invalid character</string>
     <string name="filename_empty">Filename cannot be empty</string>
-    <string name="wait_a_moment">Wait a moment &#8230;</string>
     <string name="wait_checking_credentials">Checking stored credentials</string>
     <string name="filedisplay_no_file_selected">No file selected</string>
-    <string name="activity_chooser_title">Send link to &#8230;</string>
     <string name="wait_for_tmp_copy_from_private_storage">Copying file from private storage</string>
     
     <string name="oauth_check_onoff">Log in with OAuth 2.0</string>
-    <string name="oauth_login_connection">Connecting to OAuth 2.0 server &#8230;</string>
-        
     <string name="ssl_validator_header">The identity of the server could not be verified</string>
     <string name="ssl_validator_reason_cert_not_trusted">- The server certificate is not trusted</string>
     <string name="ssl_validator_reason_cert_expired">- The server certificate expired</string>
@@ -384,14 +370,6 @@
     <string name="downloader_download_file_not_found">The file is no longer available on the server</string>
 
     <string name="file_migration_dialog_title">Updating storage path</string>
-    <string name="file_migration_preparing">Preparing migration &#8230;</string>
-    <string name="file_migration_checking_destination">Checking destination &#8230;</string>
-    <string name="file_migration_saving_accounts_configuration">Saving account config &#8230;</string>
-    <string name="file_migration_waiting_for_unfinished_sync">Awaiting full sync &#8230;</string>
-    <string name="file_migration_migrating">Moving data &#8230;</string>
-    <string name="file_migration_updating_index">Updating index &#8230;</string>
-    <string name="file_migration_cleaning">Cleaning &#8230;</string>
-    <string name="file_migration_restoring_accounts_configuration">Restoring account config &#8230;</string>
     <string name="file_migration_ok_finished">Finished</string>
     <string name="file_migration_failed_not_enough_space">More space needed</string>
     <string name="file_migration_failed_not_writable">Could not write to destination file</string>
@@ -415,9 +393,7 @@
 	<string name="log_send_history_button">Send history</string>
 	<string name="log_send_no_mail_app">No app for sending logs found. Please install an e-mail client.</string>
 	<string name="log_send_mail_subject">%1$s Android app logs</string>
-	<string name="log_progress_dialog_text">Loading data &#8230;</string>
-
-	<string name="saml_authentication_required_text">Password required</string>
+    <string name="saml_authentication_required_text">Password required</string>
 	<string name="saml_authentication_wrong_pass">Incorrect password</string>
 	<string name="actionbar_move">Move</string>
     <string name="actionbar_copy">Copy</string>
@@ -461,8 +437,6 @@
     <string name="set_picture_as">Use picture as</string>
     <string name="set_as">Set As</string>
 
-    <string name="prefs_instant_behaviour_dialogTitle">Original file will be &#8230;</string>
-    <string name="prefs_instant_behaviour_title">Original file will be &#8230;</string>
     <string name="select_all">Select all</string>
     <string name="deselect_all">Deselect all</string>
 
@@ -483,7 +457,6 @@
     <string name="share_via_link_edit_permission_label">Allow edits</string>
     <string name="share_via_link_hide_file_listing_permission_label">Hide file listing</string>
     <string name="share_get_public_link_button">Get link</string>
-    <string name="share_with_title">Share with &#8230;</string>
     <string name="share_with_edit_title">Share with %1$s</string>
 
     <string name="share_search">Search</string>
@@ -547,11 +520,6 @@
     <string name="participate_rc_fdroid">Get release candidate from F-Droid app</string>
     <string name="participate_dev_fdroid">Get development release from F-Droid app</string>
     <string name="participate_dev_direct_download">Download development release directly</string>
-    <string name="move_to">Move to &#8230;</string>
-    <string name="copy_to">Copy to &#8230;</string>
-    <string name="choose_remote_folder">Choose remote folder &#8230;</string>
-    <string name="choose_local_folder">Choose local folder &#8230;</string>
-    <string name="synced_folders_loading_folders">Loading folders &#8230;</string>
     <string name="synced_folders_no_results">No media folders found.</string>
     <string name="synced_folders_preferences">Preferences for auto uploading</string>
     <string name="synced_folders_new_info">Instant uploading has been revamped completely. Re-configure your auto upload from within the main menu.\n\nEnjoy the new and extended auto uploading.</string>
@@ -561,7 +529,6 @@
         <item quantity="other">%d selected</item>
     </plurals>
 
-    <string name="notifications_loading_activity">Loading notifications &#8230;</string>
     <string name="notifications_no_results_headline">No notifications</string>
     <string name="notifications_no_results_message">Please check back later.</string>
 
@@ -647,9 +614,6 @@
     <string name="fallback_weblogin_back">Back</string>
     <string name="fallback_weblogin_text">Revert to old login method</string>
 
-    <string name="foreground_service_upload">Uploading files &#8230;</string>
-    <string name="foreground_service_download">Downloading files &#8230;</string>
-
     <string name="prefs_sourcecode">Get source code</string>
     <string name="prefs_license">License</string>
     <string name="prefs_gpl_v2">GNU General Public License, version 2</string>
@@ -739,23 +703,18 @@
     
     <string name="end_to_end_encryption_folder_not_empty">This folder is not empty.</string>
     <string name="end_to_end_encryption_wrong_password">Error while decrypting. Wrong password?</string>
-    <string name="end_to_end_encryption_decrypting">Decrypting&#8230;</string>
-    <string name="end_to_end_encryption_retrieving_keys">Retrieving keys&#8230;</string>
     <string name="end_to_end_encryption_enter_password">Please enter password to decrypt private key.</string>
-    <string name="end_to_end_encryption_generating_keys">Generating new keys&#8230;</string>
     <string name="end_to_end_encryption_keywords_description">All 12 words together make a very strong password, letting only you view and make use of your encrypted files. Please write it down and keep it somewhere safe.</string>
     <string name="end_to_end_encryption_title">Set up encryption</string>
     <string name="end_to_end_encryption_passphrase_title">Make note of your 12 word encryption password</string>
     <string name="end_to_end_encryption_not_supported">Encryption only works on KitKat(4.4) and beyond.</string>
     <string name="end_to_end_encryption_not_enabled">End-to-end encryption disabled on server.</string>
     <string name="end_to_end_encryption_confirm_button">Set up encryption</string>
-    <string name="end_to_end_encryption_password">Password&#8230;</string>
     <string name="end_to_end_encryption_unsuccessful">Could not save keys, please try again.</string>
     <string name="end_to_end_encryption_dialog_close">Close</string>
     <string name="end_to_end_encryption_storing_keys">Storing keys</string>
     <string name="copy_move_to_encrypted_folder_not_supported">Copy/move into encrypted folder currently not supported.</string>
     <string name="untrusted_domain">Access through untrusted domain. Please see documentation for further info.</string>
-    <string name="upload_list_loading">Loading uploads&#8230;</string>
     <string name="notification_channel_push_name">Push notifications</string>
     <string name="notification_channel_push_description">Show push notifications sent by the server: Mentions in comments, reception of new remote shares, announcements posted by an admin etc.</string>
     <string name="sendbutton_description">Send button icon</string>
@@ -763,4 +722,4 @@
     <string name="oauth_2_0_access_end_point_address_hint">Access end point address</string>
     <string name="hint_name">Name</string>
     <string name="hint_password">Password</string>
-</resources>
+    </resources>

+ 2 - 14
src/main/res/values-b+es+419/strings.xml

@@ -60,7 +60,6 @@
     <string name="recommend_urls">%1$s ó %2$s</string>
 
     <string name="auth_check_server">Verficar el servidor</string>
-    <string name="auth_host_url">Dirección del servidor https://&#8230;</string>
     <string name="auth_username">Usuario</string>
     <string name="auth_password">Contraseña</string>
     <string name="sync_string_files">Archivos</string>
@@ -79,7 +78,6 @@
     <string name="uploader_error_message_source_file_not_found">El archivo seleccionado para cargar no fue encontrado. Por favor verifica si el archivo existe.</string>
     <string name="uploader_error_message_source_file_not_copied">No fue posible copiar el archivo a una carpeta temporal. Por favor intenta enviarlo de nuevo.</string>
     <string name="uploader_upload_files_behaviour">Opción de carga:</string>
-    <string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">Mover el archivo a la carpeta de Nextcloud</string>
     <string name="uploader_upload_files_behaviour_only_upload">Mantener el archivo en la carpeta de origen</string>
     <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Borrar el archivo de la carpeta de origen</string>
     <string name="file_list_seconds_ago">hace algunos segundos</string>
@@ -115,7 +113,6 @@
     <string name="common_cancel">Cancelar</string>
     <string name="common_back">Atrás</string>
     <string name="common_save">Guardar</string>
-    <string name="common_loading">Cargando  &#8230;</string>
     <string name="common_unknown">desconocido</string>
     <string name="common_error_unknown">Error desconocido</string>
     <string name="common_pending">Pendiente</string>
@@ -125,9 +122,7 @@
     <string name="delete_account_warning">¿Borrar la cuenta %s y borrar todos los archivos localeS?\n\nEl borrado no se puede deshacer</string>
     <string name="avatar">Avatar</string>
     <string name="active_user">Usuario activo</string>
-    <string name="upload_chooser_title">Cargar desde &#8230;</string>
     <string name="uploader_info_dirname">Nombre de la carpeta</string>
-    <string name="uploader_upload_in_progress_ticker">Cargando &#8230;</string>
     <string name="uploader_upload_in_progress_content">%1$d%% Cargando %2$s</string>
     <string name="uploader_upload_succeeded_ticker">Cargado</string>
     <string name="uploader_upload_succeeded_content_single">%1$s cargado</string>
@@ -149,7 +144,6 @@
     <string name="uploads_view_upload_status_unknown_fail">Error desconocido</string>
     <string name="uploads_view_upload_status_waiting_exit_power_save_mode">Esperando a salir de modo de conservación de energía</string>
     <string name="uploads_view_later_waiting_to_upload">Esperando para cargar</string>
-    <string name="downloader_download_in_progress_ticker">Descargando &#8230;</string>
     <string name="downloader_download_in_progress_content">%1$d%% Descargando %2$s</string>
     <string name="downloader_download_succeeded_ticker">Descargado</string>
     <string name="downloader_download_succeeded_content">%1$s descargado</string>
@@ -201,9 +195,7 @@
     <string name="media_play_pause_description">Botón de reproducir o pausar</string>
     <string name="media_forward_description">Botón de avanzar rápido</string>
 
-	<string name="auth_getting_authorization">Obteniendo autorización &#8230;</string>
-	<string name="auth_trying_to_login">Intentando iniciar en sesión &#8230;</string>
-	<string name="auth_no_net_conn_title">No hay conexión de red</string>
+    <string name="auth_no_net_conn_title">No hay conexión de red</string>
 	<string name="auth_nossl_plain_ok_title">Conexión segura no disponible.</string>
 	<string name="auth_connection_established">Conexión establecida</string>
 	<string name="auth_testing_connection">Probando conexión</string>
@@ -249,7 +241,6 @@
     <string name="filename_forbidden_characters">Caracteres inválidos: / \\ &lt; &gt; : \" | ? *</string>
     <string name="wait_checking_credentials">Verificando credenciales almacenadas</string>
     <string name="filedisplay_no_file_selected">No se ha seleccionado algún archivo</string>
-    <string name="activity_chooser_title">Enviar la liga a &#8230;</string>
     <string name="wait_for_tmp_copy_from_private_storage">Copiando el archivo desde almacenamiento privado</string>
     
     <string name="oauth_check_onoff">Iniciar sesión con OAuth 2.0</string>
@@ -353,9 +344,7 @@
 	<string name="log_send_history_button">Enviar histórico</string>
 	<string name="log_send_no_mail_app">No se encontró alguna aplicación para el envío de bitácoras. Por favor instala un cliente de correo electrónico. </string>
 	<string name="log_send_mail_subject"> %1$s bitácora de aplicación Android</string>
-	<string name="log_progress_dialog_text">Cargando información &#8230;</string>
-
-	<string name="saml_authentication_wrong_pass">Contraseña incorrecta</string>
+    <string name="saml_authentication_wrong_pass">Contraseña incorrecta</string>
 	<string name="actionbar_move">Mover</string>
     <string name="actionbar_copy">Copiar</string>
 	<string name="file_list_empty_moving">No hay nada aquí. Puedes agregar una carpeta.</string>
@@ -416,7 +405,6 @@
     <string name="share_via_link_edit_permission_label">Permitir edición</string>
     <string name="share_via_link_hide_file_listing_permission_label">Ocultar listado de archivos</string>
     <string name="share_get_public_link_button">Obtener liga</string>
-    <string name="share_with_title">Compartir con &#8230;</string>
     <string name="share_with_edit_title">Compartir con %1$s</string>
 
     <string name="share_search">Buscar</string>

+ 3 - 39
src/main/res/values-bg-rBG/strings.xml

@@ -61,7 +61,6 @@
     <string name="recommend_urls">%1$s или %2$s</string>
 
     <string name="auth_check_server">Проверяване на сървъра</string>
-    <string name="auth_host_url">Уеб адрес https://&#8230;</string>
     <string name="auth_username">Потребител</string>
     <string name="auth_password">Парола</string>
     <string name="auth_register">Нямате Nextcloud все още? Натиснете тук за да получите един от доставчик</string>
@@ -81,7 +80,6 @@
     <string name="uploader_error_message_source_file_not_found">Селектирания за качване файл не е намерен. Моля проверете дали файлът съществува.</string>
     <string name="uploader_error_message_source_file_not_copied">Неуспешно копиране на файл във временна папка. Моля опитайте да го изпратите отново</string>
     <string name="uploader_upload_files_behaviour">Опции за качване:</string>
-    <string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">Преместване на файла в папката на Nextcloud</string>
     <string name="uploader_upload_files_behaviour_only_upload">Запазване на файла в оригиналната папка</string>
     <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Изтриване на файла от оригиналната папка</string>
     <string name="file_list_seconds_ago">преди секунди</string>
@@ -90,7 +88,6 @@
     <string name="file_list_empty">Качи съдържание или синхронизирай с твоите устройства.</string>
     <string name="file_list_empty_favorites_filter_list">Файловете и папките които отбелязваш като любими ще се показват тук</string>
     <string name="file_list_empty_favorites_filter">Търсенето ви не откри любими файлове</string>
-    <string name="file_list_loading">Зареждане &#8230;</string>
     <string name="file_list_no_app_for_file_type">Няма апликация, която да се справи с подобен тип файл.</string>
     <string name="local_file_list_empty">В папката няма файлове.</string>
     <string name="local_folder_list_empty">Няма повече папки.</string>
@@ -127,7 +124,6 @@
     <string name="common_back">Назад</string>
     <string name="common_save">Запазване</string>
     <string name="common_error">Грешка</string>
-    <string name="common_loading">Зареждане &#8230;</string>
     <string name="common_unknown">неясна</string>
     <string name="common_error_unknown">Неизвестна грешка</string>
     <string name="common_pending">В очакване</string>
@@ -137,9 +133,7 @@
     <string name="delete_account_warning">Изтриване на профила %s?\n\nИзтриването е необратима операция.</string>
     <string name="avatar">Аватар</string>
     <string name="active_user">Активен потребител</string>
-    <string name="upload_chooser_title">Качване от &#8230;</string>
     <string name="uploader_info_dirname">Име на папката</string>
-    <string name="uploader_upload_in_progress_ticker">Качване &#8230;</string>
     <string name="uploader_upload_in_progress_content">%1$d%% Качване %2$s</string>
     <string name="uploader_upload_succeeded_ticker">Качени</string>
     <string name="uploader_upload_succeeded_content_single">%1$s качено</string>
@@ -165,7 +159,6 @@
     <string name="uploads_view_upload_status_waiting_for_wifi">Изчакване на WiFi връзка</string>
     <string name="uploads_view_upload_status_waiting_exit_power_save_mode">Изчакване да излезете от режима за икономия на енергия</string>
     <string name="uploads_view_later_waiting_to_upload">Изчакване за качване</string>
-    <string name="downloader_download_in_progress_ticker">Изтегляне &#8230;</string>
     <string name="downloader_download_in_progress_content">%1$d%% Изтегляне %2$s</string>
     <string name="downloader_download_succeeded_ticker">Изтеглено</string>
     <string name="downloader_download_succeeded_content">%1$s свалено</string>
@@ -229,9 +222,7 @@
     <string name="media_play_pause_description">Бутон възпроизведи / пауза </string>
     <string name="media_forward_description">Бутон за превъртане напред</string>
 
-	<string name="auth_getting_authorization">Получаване оторизация &#8230;</string>
-	<string name="auth_trying_to_login">Опит за вписване &#8230;</string>
-	<string name="auth_no_net_conn_title">Няма връзка с интернет</string>
+    <string name="auth_no_net_conn_title">Няма връзка с интернет</string>
 	<string name="auth_nossl_plain_ok_title">Няма сигурна връзка.</string>
 	<string name="auth_connection_established">Осъществена е връзка</string>
 	<string name="auth_testing_connection">Проверка на връзката</string>
@@ -255,8 +246,7 @@
 	<string name="auth_expired_oauth_token_toast">Оторизацията изтече. Моля, оторизирайте се отново.</string>
 	<string name="auth_expired_basic_auth_toast">Моля въведете текущата парола</string>
 	<string name="auth_expired_saml_sso_token_toast">Сесията изтече. Моля, свържете се отново</string>
-    <string name="auth_connecting_auth_server">Свързване към сървър за идентификация &#8230;</string>
-	<string name="auth_unsupported_multiaccount">%1$s не поддържа множество профили</string>
+    <string name="auth_unsupported_multiaccount">%1$s не поддържа множество профили</string>
 	<string name="auth_fail_get_user_name">Вашият сървър не връща правилен потребителски индентификатор. Моля, свържете се с администратора</string>
 	<string name="auth_can_not_auth_against_server">Неуспешно идентифициране към сървъра</string>
     <string name="auth_account_does_not_exist">Профилът все още не съществува на устройството</string>
@@ -284,15 +274,11 @@
     <string name="filename_forbidden_characters">Забранени символи: / \\ &lt; &gt; : \" | ? *</string>
     <string name="filename_forbidden_charaters_from_server">Името на файла съдържа поне един невалиден символ</string>
     <string name="filename_empty">Името на файла не може да бъде празно</string>
-    <string name="wait_a_moment">Зареждане на данни &#8230;</string>
     <string name="wait_checking_credentials">Проверка на съхранените пълномощия</string>
     <string name="filedisplay_no_file_selected">Не сте избрали файл</string>
-    <string name="activity_chooser_title">Изпращане на връзката чрез &#8230;</string>
     <string name="wait_for_tmp_copy_from_private_storage">Копиране на файла от личното хранилище</string>
     
     <string name="oauth_check_onoff">Влизане с OAuto 2.0</string>
-    <string name="oauth_login_connection">Свързване към OAuth 2.0 server &#8230;</string>
-        
     <string name="ssl_validator_header">Самоличността на сървъра не може да бъде потвърдена</string>
     <string name="ssl_validator_reason_cert_not_trusted">- Сертификатът на сървъра не е надежден</string>
     <string name="ssl_validator_reason_cert_expired">- Сертификатът на сървъра е изтекъл</string>
@@ -385,14 +371,6 @@
     <string name="downloader_download_file_not_found">Файлът вече не се намира на сървъра</string>
 
     <string name="file_migration_dialog_title">Обновяване на пътя до хранилището</string>
-    <string name="file_migration_preparing">Подготовка за миграция&#8230;</string>
-    <string name="file_migration_checking_destination">Проверка на дестинация&#8230;</string>
-    <string name="file_migration_saving_accounts_configuration">Запазване на настройките на акаунтите&#8230;</string>
-    <string name="file_migration_waiting_for_unfinished_sync">Изчакване на пълна синхронизация &#8230;</string>
-    <string name="file_migration_migrating">Преместване на данни&#8230;</string>
-    <string name="file_migration_updating_index">Обновяване на индекс&#8230;</string>
-    <string name="file_migration_cleaning">Почистване&#8230;</string>
-    <string name="file_migration_restoring_accounts_configuration">Възстановяване на настройките на акаунтите&#8230;</string>
     <string name="file_migration_ok_finished">Завършен</string>
     <string name="file_migration_failed_not_enough_space">Нужно е повече пространство</string>
     <string name="file_migration_failed_not_writable">Писане към медия файла беше неуспешно</string>
@@ -416,9 +394,7 @@
 	<string name="log_send_history_button">Изпрати историята</string>
 	<string name="log_send_no_mail_app">Не е намерено приложение за изпращане на журнал. Моля инсталирайте имейл приложение.</string>
 	<string name="log_send_mail_subject">%1$s журнали от Android приложението</string>
-	<string name="log_progress_dialog_text">Зареждане на данни &#8230;</string>
-
-	<string name="saml_authentication_required_text">Паролата е задължителна</string>
+    <string name="saml_authentication_required_text">Паролата е задължителна</string>
 	<string name="saml_authentication_wrong_pass">Грешна парола</string>
 	<string name="actionbar_move">Преместване</string>
     <string name="actionbar_copy">Копиране</string>
@@ -462,8 +438,6 @@
     <string name="set_picture_as">Използвай снимка като</string>
     <string name="set_as">Задай като</string>
 
-    <string name="prefs_instant_behaviour_dialogTitle">Оригиналният файл ще бъде &#8230;</string>
-    <string name="prefs_instant_behaviour_title">Оригиналният файл ще бъде &#8230;</string>
     <string name="select_all">Избере всички</string>
     <string name="deselect_all">Отмяна на всички избори</string>
 
@@ -484,7 +458,6 @@
     <string name="share_via_link_edit_permission_label">Позволяване на редактиране</string>
     <string name="share_via_link_hide_file_listing_permission_label">Скрий показването на файлове</string>
     <string name="share_get_public_link_button">Вземи връзка</string>
-    <string name="share_with_title">Споделете чрез &#8230;</string>
     <string name="share_with_edit_title">Споделете с %1$s</string>
 
     <string name="share_search">Търсене</string>
@@ -547,11 +520,6 @@
     <string name="participate_rc_fdroid">Намери кандидат за пускане от апликацията F-Droid</string>
     <string name="participate_dev_fdroid">Намери кандидат за пускане от апликацията F-Droid</string>
     <string name="participate_dev_direct_download">Изтегляне на разработващата версия</string>
-    <string name="move_to">Преместване в&#8230;</string>
-    <string name="copy_to">Копиране в&#8230;</string>
-    <string name="choose_remote_folder">Избери папка&#8230;</string>
-    <string name="choose_local_folder">Изберете локална папка &#8230;</string>
-    <string name="synced_folders_loading_folders">Зареждане на папки&#8230;</string>
     <string name="synced_folders_no_results">Не са открити медийни папки.</string>
     <string name="synced_folders_preferences">Предпочитания за автоматично качване</string>
     <string name="synced_folders_new_info">Моментално качване е преправено изцяло. Конфигурирайте автоматичното качване от главното меню.\n\n Насладете се на новото и продължено автоматично качване.</string>
@@ -561,7 +529,6 @@
         <item quantity="other">%d избрани</item>
     </plurals>
 
-    <string name="notifications_loading_activity">Зареждане на нотификации &#8230;</string>
     <string name="notifications_no_results_headline">Няма известия</string>
     <string name="notifications_no_results_message">Моля, опитайте отново по-късно</string>
 
@@ -647,9 +614,6 @@
     <string name="fallback_weblogin_back">Назад</string>
     <string name="fallback_weblogin_text">Връщане към стария метод за влизане</string>
 
-    <string name="foreground_service_upload">Качване на файлове &#8230;</string>
-    <string name="foreground_service_download">Теглене на файлове &#8230;</string>
-
     <string name="prefs_sourcecode">Получаване на изходния код</string>
     <string name="prefs_license">Лиценз</string>
     <string name="prefs_gpl_v2">GNU Генерален Публичен Лиценз, версия 2</string>

+ 3 - 18
src/main/res/values-ca/strings.xml

@@ -60,7 +60,6 @@
     <string name="recommend_urls">%1$s o %2$s</string>
 
     <string name="auth_check_server">Comprova el servidor</string>
-    <string name="auth_host_url">Adreça del servidor https: //&#8230;</string>
     <string name="auth_username">Nom d\'usuari</string>
     <string name="auth_password">Contrasenya</string>
     <string name="sync_string_files">Fitxers</string>
@@ -79,7 +78,6 @@
     <string name="uploader_error_message_source_file_not_found">No s\'ha trobat el fitxer seleccionat per a la càrrega. Comproveu si el fitxer existeix.</string>
     <string name="uploader_error_message_source_file_not_copied">No s\'ha pogut copiar el fitxer a una carpeta temporal. Intenta tornar-lo a enviar.</string>
     <string name="uploader_upload_files_behaviour">Opció de pujada:</string>
-    <string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">Mou el fitxer a la carpeta Nextcloud</string>
     <string name="uploader_upload_files_behaviour_only_upload">Mantén el fitxer a la carpeta d\'origen</string>
     <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Elimina el fitxer de la carpeta d\'origen</string>
     <string name="file_list_seconds_ago">segons enrere</string>
@@ -88,7 +86,6 @@
     <string name="file_list_empty">Puja continguts o sincronitza els teus dispositius.</string>
     <string name="file_list_empty_favorites_filter_list">Aquí apareixeran els fitxers i carpetes que marquis com favorits</string>
     <string name="file_list_empty_favorites_filter">La cerca no ha retornat cap fitxer </string>
-    <string name="file_list_loading">Carregant&#8230;</string>
     <string name="file_list_no_app_for_file_type">No hi ha cap aplicació configurada per gestionar aquest tipus de fitxer.</string>
     <string name="local_file_list_empty">No hi ha fitxers en aquesta carpeta</string>
     <string name="local_folder_list_empty">No hi ha més carpetes.</string>
@@ -121,7 +118,6 @@
     <string name="common_back">Enrere</string>
     <string name="common_save">Guarda</string>
     <string name="common_error">Error</string>
-    <string name="common_loading">Carregant&#8230;</string>
     <string name="common_unknown">desconegut</string>
     <string name="common_error_unknown">Error desconegut</string>
     <string name="common_pending">Pendent</string>
@@ -131,9 +127,7 @@
     <string name="delete_account_warning">Esborrar el compte %s i tots els fitxers locals?\n\nAquesta acció no es pot desfer.</string>
     <string name="avatar">Avatar</string>
     <string name="active_user">Usuari actiu</string>
-    <string name="upload_chooser_title">Puja fitxer des de&#8230;</string>
     <string name="uploader_info_dirname">Nom de la carpeta</string>
-    <string name="uploader_upload_in_progress_ticker">S\'està pujant&#8230;</string>
     <string name="uploader_upload_in_progress_content">%1$d%% Pujant %2$s</string>
     <string name="uploader_upload_succeeded_ticker">Penjat</string>
     <string name="uploader_upload_succeeded_content_single">%1$s s\'ha carregat correctament</string>
@@ -156,7 +150,6 @@
     <string name="uploads_view_upload_status_waiting_for_wifi">S\'està esperant Wi-Fi</string>
     <string name="uploads_view_upload_status_waiting_exit_power_save_mode">S\'està esperant al mode d\'apagada segur</string>
     <string name="uploads_view_later_waiting_to_upload">S\'està esperant per pujar-ho</string>
-    <string name="downloader_download_in_progress_ticker">Descarregant &#8230;</string>
     <string name="downloader_download_in_progress_content">%1$d%% Descarregant %2$s</string>
     <string name="downloader_download_succeeded_ticker">Descarregat</string>
     <string name="downloader_download_succeeded_content">%1$s descarregat</string>
@@ -208,9 +201,7 @@
     <string name="media_play_pause_description">Botó de reproducció o pausa</string>
     <string name="media_forward_description">Botó de reproducció ràpida</string>
 
-	<string name="auth_getting_authorization">Recuperant autorització&#8230;</string>
-	<string name="auth_trying_to_login">Intentat accedir&#8230;</string>
-	<string name="auth_no_net_conn_title">Sense connexió de xarxa</string>
+    <string name="auth_no_net_conn_title">Sense connexió de xarxa</string>
 	<string name="auth_nossl_plain_ok_title">La connexió segura no està disponible.</string>
 	<string name="auth_connection_established">S\'ha establert la connexió</string>
 	<string name="auth_testing_connection">S\'està comprovant la connexió</string>
@@ -234,8 +225,7 @@
 	<string name="auth_expired_oauth_token_toast">La vostra autorització ha vençut. Acrediteu-vos de nou</string>
 	<string name="auth_expired_basic_auth_toast">Escriviu la contrasenya actual</string>
 	<string name="auth_expired_saml_sso_token_toast">La sessió ha vençut. Connecteu-vos de nou</string>
-    <string name="auth_connecting_auth_server">Connectant amb el servidor d\'autenticació &#8230;</string>
-	<string name="auth_unsupported_multiaccount">%1$s no permet comptes múltiples</string>
+    <string name="auth_unsupported_multiaccount">%1$s no permet comptes múltiples</string>
 	<string name="auth_can_not_auth_against_server">No es pot autenticar en aquest servidor</string>
     <string name="auth_access_failed">No s\'ha pogut accedir</string>
 
@@ -258,10 +248,8 @@
     <string name="create_dir_fail_msg">No s\'ha pogut crear la carpeta</string>
     <string name="filename_forbidden_characters">Caràcters no permesos: / \\ &lt; &gt; : \" | ? *</string>
     <string name="filename_empty">El nom del fitxer no pot estar buit</string>
-    <string name="wait_a_moment">Espera un moment &#8230;</string>
     <string name="wait_checking_credentials">Comprovant les credencials emmagatzemades</string>
     <string name="filedisplay_no_file_selected">Cap fitxer escollit</string>
-    <string name="activity_chooser_title">Envia l\'enllaç a&#8230;</string>
     <string name="wait_for_tmp_copy_from_private_storage">Copiant fitxer des d\'emmagatzematge privat</string>
     
     <string name="oauth_check_onoff">Inicieu sessió amb OAuth 2.0</string>
@@ -364,9 +352,7 @@
 	<string name="actionbar_logger">Registres</string>
 	<string name="log_send_history_button">Enviar història</string>
 	<string name="log_send_mail_subject">%1$s registres de la aplicació d\'Android.</string>
-	<string name="log_progress_dialog_text">Carregant dades&#8230;</string>
-
-	<string name="saml_authentication_wrong_pass">Contrasenya incorrecta</string>
+    <string name="saml_authentication_wrong_pass">Contrasenya incorrecta</string>
 	<string name="actionbar_move">Moure</string>
     <string name="actionbar_copy">Copia</string>
 	<string name="folder_picker_choose_button_text">Escull</string>
@@ -406,7 +392,6 @@
     <string name="share_via_link_password_title">Assegurat</string>
     <string name="share_via_link_hide_file_listing_permission_label">Amaga la llista de fitxers</string>
     <string name="share_get_public_link_button">Obtén l\'enllaç</string>
-    <string name="share_with_title">Comparteix amb&#8230;</string>
     <string name="share_with_edit_title">Comparteix amb %1$s</string>
 
     <string name="share_search">Cerca</string>

+ 2 - 17
src/main/res/values-cs-rCZ/strings.xml

@@ -60,7 +60,6 @@
     <string name="recommend_urls">%1$s nebo %2$s</string>
 
     <string name="auth_check_server">Ověřit server</string>
-    <string name="auth_host_url">Adresa serveru https://&#8230;</string>
     <string name="auth_username">Uživatelské jméno</string>
     <string name="auth_password">Heslo</string>
     <string name="sync_string_files">Soubory</string>
@@ -79,7 +78,6 @@
     <string name="uploader_error_message_source_file_not_found">Soubor k nahrání nebyl v tomto umístění nalezen. Zkontrolujte prosím zda soubor existuje.</string>
     <string name="uploader_error_message_source_file_not_copied">Došlo k chybě při kopírování souboru do dočasného adresáře. Zkuste prosím zopakovat odeslání.</string>
     <string name="uploader_upload_files_behaviour">Nahrát možnost:</string>
-    <string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">Přesunout soubor do Nextcloud adresáře</string>
     <string name="uploader_upload_files_behaviour_only_upload">Jen uploadovat</string>
     <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Uploadovat a vymazat ze zdroje</string>
     <string name="file_list_seconds_ago">před pár sekundami</string>
@@ -88,7 +86,6 @@
     <string name="file_list_empty">Nahrajte nějaký obsah, nebo synchronizujte s vašimi zařízeními!</string>
     <string name="file_list_empty_favorites_filter_list">Zde budou zobrazeny soubory a adresáře označené jako oblíbené</string>
     <string name="file_list_empty_favorites_filter">Vaše vyhledávání nenalezlo žádné oblíbené soubory</string>
-    <string name="file_list_loading">Načítá se &#8230;</string>
     <string name="file_list_no_app_for_file_type">Pro tento typ souboru nebyla nalezena aplikace!</string>
     <string name="local_file_list_empty">V tomto adresáři nejsou žádné soubory.</string>
     <string name="local_folder_list_empty">Nejsou zde další složky.</string>
@@ -119,7 +116,6 @@
     <string name="common_back">Zpět</string>
     <string name="common_save">Uložit</string>
     <string name="common_error">Error</string>
-    <string name="common_loading">Načítání &#8230;</string>
     <string name="common_unknown">neznámý</string>
     <string name="common_error_unknown">Neznámá chyba</string>
     <string name="common_pending">Čekající</string>
@@ -129,9 +125,7 @@
     <string name="delete_account_warning">Odebrat účet %s a smazat všechny místní soubory?\n\nTuto akci nelze vzít zpět.</string>
     <string name="avatar">Avatar</string>
     <string name="active_user">Aktivní uživatel</string>
-    <string name="upload_chooser_title">Nahrát z &#8230;</string>
     <string name="uploader_info_dirname">Název adresáře</string>
-    <string name="uploader_upload_in_progress_ticker">Odesílám &#8230;</string>
     <string name="uploader_upload_in_progress_content">%1$d%% Odesílám %2$s</string>
     <string name="uploader_upload_succeeded_ticker">Nahráno</string>
     <string name="uploader_upload_succeeded_content_single">%1$s nahráno</string>
@@ -153,7 +147,6 @@
     <string name="uploads_view_upload_status_unknown_fail">Neznámá chyba</string>
     <string name="uploads_view_upload_status_waiting_exit_power_save_mode">Čekám na ukončení úsporného režimu</string>
     <string name="uploads_view_later_waiting_to_upload">Čekání na nahrávání</string>
-    <string name="downloader_download_in_progress_ticker">Stahuji &#8230;</string>
     <string name="downloader_download_in_progress_content">%1$d%% Stahuji %2$s</string>
     <string name="downloader_download_succeeded_ticker">Staženo</string>
     <string name="downloader_download_succeeded_content">%1$s staženo</string>
@@ -204,9 +197,7 @@
     <string name="media_play_pause_description">Tlačítko Přehrát/Pozastavit</string>
     <string name="media_forward_description">Tlačítko Rychle vpřed</string>
 
-	<string name="auth_getting_authorization">Příjem autorizace &#8230;</string>
-	<string name="auth_trying_to_login">Pokus o přihlášení &#8230;</string>
-	<string name="auth_no_net_conn_title">Žádné síťové spojení</string>
+    <string name="auth_no_net_conn_title">Žádné síťové spojení</string>
 	<string name="auth_nossl_plain_ok_title">Zabezpečené spojení není k dispozici</string>
 	<string name="auth_connection_established">Spojení navázáno</string>
 	<string name="auth_testing_connection">Testuje se připojení</string>
@@ -252,7 +243,6 @@
     <string name="filename_forbidden_characters">Zakázané znaky: / \\ &lt; &gt; : \" | ? *</string>
     <string name="wait_checking_credentials">Ověřování uložených přihlašovacích údajů</string>
     <string name="filedisplay_no_file_selected">Žádný soubor nebyl vybrán</string>
-    <string name="activity_chooser_title">Odeslat odkaz &#8230;</string>
     <string name="wait_for_tmp_copy_from_private_storage">Kopírování souboru z privátního úložiště</string>
     
     <string name="oauth_check_onoff">Přihlásit se s OAuth 2.0</string>
@@ -356,9 +346,7 @@
 	<string name="log_send_history_button">Historie odesílání</string>
 	<string name="log_send_no_mail_app">Nebyla nalezena aplikace k odesílání protokolů. Prosím, nainstalujte e-mailového klienta.</string>
 	<string name="log_send_mail_subject">%1$s logy aplikace pro Android</string>
-	<string name="log_progress_dialog_text">Nahrávání dat &#8230;</string>
-
-	<string name="saml_authentication_wrong_pass">Nesprávné heslo</string>
+    <string name="saml_authentication_wrong_pass">Nesprávné heslo</string>
 	<string name="actionbar_move">Přesunout</string>
     <string name="actionbar_copy">Kopírovat</string>
 	<string name="file_list_empty_moving">Zde nic není. Můžete přidat adresář!</string>
@@ -401,7 +389,6 @@
     <string name="set_picture_as">Použít obrázek jako</string>
     <string name="set_as">Nastavit jako</string>
 
-    <string name="prefs_instant_behaviour_title">Původní soubor bude &#8230;</string>
     <string name="select_all">Vybrat vše</string>
     <string name="deselect_all">Odznačit vše</string>
 
@@ -422,7 +409,6 @@
     <string name="share_via_link_edit_permission_label">Umožnit úpravy</string>
     <string name="share_via_link_hide_file_listing_permission_label">Skrýt seznam souborů</string>
     <string name="share_get_public_link_button">Vytvořit odkaz</string>
-    <string name="share_with_title">Sdílet s &#8230;</string>
     <string name="share_with_edit_title">Sdílet s %1$s</string>
 
     <string name="share_search">Hledat</string>
@@ -482,7 +468,6 @@
     <string name="participate_rc_fdroid">Získat kandidáta na vydání z aplikace F-Droid</string>
     <string name="participate_dev_fdroid">Získat vývojové vydání z aplikace F-Droid</string>
     <string name="participate_dev_direct_download">Stáhnout vývojové vydání přímo</string>
-    <string name="move_to">Přesunout do &#8230;</string>
     <string name="synced_folders_no_results">Nebyly nalezeny žádné adresáře médií.</string>
     <string name="synced_folders_preferences">Nastavení automatického nahrávání</string>
     <string name="synced_folders_new_info">Okamžité nahrání bylo kompletně upraveno. Znovu nakonfigurujte automatické nahrávání z hlavní nabídky.\n\nUžijte si nové a rozšířené automatické nahrávání.</string>

+ 2 - 14
src/main/res/values-da/strings.xml

@@ -56,7 +56,6 @@
 
 	<string name="recommend_subject">Prøv %1$s på din enhed!</string>
 	<string name="auth_check_server">Tjek server</string>
-    <string name="auth_host_url">Serveraddresse https://&#8230;</string>
     <string name="auth_username">Brugernavn</string>
     <string name="auth_password">Kodeord</string>
     <string name="sync_string_files">Filer</string>
@@ -73,7 +72,6 @@
     <string name="uploader_error_title_file_cannot_be_uploaded">Filen kan ikke uploades</string>
     <string name="uploader_error_message_read_permission_not_granted">%1$s har ikke tilladelse til at læse en modtaget fil</string>
     <string name="uploader_upload_files_behaviour">Upload muligheder</string>
-    <string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">Flyt fil til Nextcloud mappe</string>
     <string name="uploader_upload_files_behaviour_only_upload">Behold filen i source-mappen</string>
     <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Slet filen fra source-mappen</string>
     <string name="file_list_seconds_ago">sekunder siden</string>
@@ -101,7 +99,6 @@
     <string name="common_cancel">Annuller</string>
     <string name="common_back">Tilbage</string>
     <string name="common_save">Gem</string>
-    <string name="common_loading">Indlæser &#8230;</string>
     <string name="common_unknown">ukendt</string>
     <string name="common_error_unknown">Ukendt fejl</string>
     <string name="common_pending">afventende</string>
@@ -110,9 +107,7 @@
     <string name="delete_account">Fjern konto</string>
     <string name="avatar">Avatar</string>
     <string name="active_user">Aktiv bruger</string>
-    <string name="upload_chooser_title">Upload fra &#8230;</string>
     <string name="uploader_info_dirname">Mappenavn</string>
-    <string name="uploader_upload_in_progress_ticker">Uploader &#8230;</string>
     <string name="uploader_upload_in_progress_content">%1$d%% Uploader %2$s</string>
     <string name="uploader_upload_succeeded_ticker">Uploadet </string>
     <string name="uploader_upload_succeeded_content_single">%1$s uploaded</string>
@@ -132,7 +127,6 @@
     <string name="uploads_view_upload_status_conflict">Konflikt</string>
     <string name="uploads_view_upload_status_unknown_fail">Ukendt fejl</string>
     <string name="uploads_view_later_waiting_to_upload">Venter med upload</string>
-    <string name="downloader_download_in_progress_ticker">Downloader &#8230;</string>
     <string name="downloader_download_in_progress_content">%1$d%% Downloader %2$s</string>
     <string name="downloader_download_succeeded_ticker">Downloadet</string>
     <string name="downloader_download_succeeded_content">%1$s downloaded</string>
@@ -172,9 +166,7 @@
     <string name="media_play_pause_description">Afspil eller pause knap</string>
     <string name="media_forward_description">Hurtigt fremad-knap</string>
 
-	<string name="auth_getting_authorization">Skaffer autorisering &#8230;</string>
-	<string name="auth_trying_to_login">Prøver at logge ind &#8230;</string>
-	<string name="auth_no_net_conn_title">Ingen netværksforbindelse</string>
+    <string name="auth_no_net_conn_title">Ingen netværksforbindelse</string>
 	<string name="auth_nossl_plain_ok_title">Sikker forbindelse ikke tilgængelig.</string>
 	<string name="auth_connection_established">Forbindelse oprettet</string>
 	<string name="auth_testing_connection">Tester forbindelsen</string>
@@ -214,7 +206,6 @@
     <string name="filename_forbidden_characters">Ugyldige tegn: / \\ &lt; &gt; : \" | ? *</string>
     <string name="wait_checking_credentials">Undersøger lagrede certificeringer</string>
     <string name="filedisplay_no_file_selected">Ingen fil valgt</string>
-    <string name="activity_chooser_title">Send link til &#8230;</string>
     <string name="wait_for_tmp_copy_from_private_storage">Kopierer fil fra privat lager.</string>
     
     <string name="oauth_check_onoff">Log ind med OAuth 2.0</string>
@@ -299,9 +290,7 @@
     <string name="actionbar_logger">Logge</string>
 	<string name="log_send_history_button">Send historik</string>
 	<string name="log_send_mail_subject">%1$s Android-app - logge</string>
-	<string name="log_progress_dialog_text">Indlæser data &#8230;</string>
-
-	<string name="saml_authentication_wrong_pass">Forkert kodeord</string>
+    <string name="saml_authentication_wrong_pass">Forkert kodeord</string>
 	<string name="actionbar_move">Flyt</string>
     <string name="actionbar_copy">Kopiér</string>
 	<string name="folder_picker_choose_button_text">Vælg</string>
@@ -337,7 +326,6 @@
     <string name="share_via_link_password_label">Beskyt med password</string>
     <string name="share_via_link_password_title">Sikret</string>
     <string name="share_get_public_link_button">Få link</string>
-    <string name="share_with_title">Del med &#8230;</string>
     <string name="share_with_edit_title">Del med %1$s</string>
 
     <string name="share_search">Søg</string>

+ 4 - 45
src/main/res/values-de/strings.xml

@@ -61,7 +61,6 @@
     <string name="recommend_urls">%1$s oder %2$s</string>
 
     <string name="auth_check_server">Server überprüfen</string>
-    <string name="auth_host_url">Server-Adresse https://&#8230;</string>
     <string name="auth_username">Benutzername</string>
     <string name="auth_password">Passwort</string>
     <string name="auth_register">Sie haben noch keinen Server?\nKlicken Sie hier um Server-Anbieter zu finden</string>
@@ -81,7 +80,6 @@
     <string name="uploader_error_message_source_file_not_found">Die zum Hochladen ausgewählte Datei kann nicht gefunden werden. Bitte prüfen Sie ob die Datei existiert.</string>
     <string name="uploader_error_message_source_file_not_copied">Es ist ein Fehler beim Kopieren dieser Datei in einen temporären Ordner aufgetreten. Bitte versuchen Sie erneut die Datei zu senden.</string>
     <string name="uploader_upload_files_behaviour">Upload Option:</string>
-    <string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">Datei in Nextcloud Ordner verschieben</string>
     <string name="uploader_upload_files_behaviour_only_upload">Hochladen und im Quellordner behalten</string>
     <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Hochladen und Datei im Quellordner löschen</string>
     <string name="file_list_seconds_ago">Gerade eben</string>
@@ -90,7 +88,6 @@
     <string name="file_list_empty">Laden Sie Inhalt hoch oder synchronisieren Sie mit Ihren Geräten.</string>
     <string name="file_list_empty_favorites_filter_list">Dateien und Ordner, die als Favoriten markiert werden, erscheinen hier</string>
     <string name="file_list_empty_favorites_filter">Keine favorisierten Dateien in Ihrem Verlauf gefunden.</string>
-    <string name="file_list_loading">Lade &#8230;</string>
     <string name="file_list_no_app_for_file_type">Es wurde keine App für diesen Dateityp gefunden!</string>
     <string name="local_file_list_empty">Es befinden sich keine Dateien in diesem Ordner.</string>
     <string name="local_folder_list_empty">Hier gibt es keine weiteren Ordner.</string>
@@ -127,7 +124,6 @@
     <string name="common_back">Zurück</string>
     <string name="common_save">Speichern</string>
     <string name="common_error">Fehler</string>
-    <string name="common_loading">Lade &#8230;</string>
     <string name="common_unknown">unbekannt</string>
     <string name="common_error_unknown">Unbekannter Fehler</string>
     <string name="common_pending">Ausstehend</string>
@@ -137,9 +133,7 @@
     <string name="delete_account_warning">Konto %s und alle lokalen Dateien löschen?\n\nLöschung kann nicht rückgängig gemacht werden.</string>
     <string name="avatar">Avatar</string>
     <string name="active_user">Aktiver Nutzer</string>
-    <string name="upload_chooser_title">Dateien hochladen von &#8230;</string>
     <string name="uploader_info_dirname">Ordnername</string>
-    <string name="uploader_upload_in_progress_ticker">Hochladen &#8230;</string>
     <string name="uploader_upload_in_progress_content">%1$d%% Hochladen %2$s</string>
     <string name="uploader_upload_succeeded_ticker">Hochgeladen</string>
     <string name="uploader_upload_succeeded_content_single">%1$s hochgeladen</string>
@@ -165,7 +159,6 @@
     <string name="uploads_view_upload_status_waiting_for_wifi">Warte auf WLAN-Verbindung</string>
     <string name="uploads_view_upload_status_waiting_exit_power_save_mode">Warte auf Verlassen des Energiesparmodus</string>
     <string name="uploads_view_later_waiting_to_upload">Warte auf Hochladen</string>
-    <string name="downloader_download_in_progress_ticker">Herunterladen &#8230;</string>
     <string name="downloader_download_in_progress_content">%1$d%% Herunterladen %2$s</string>
     <string name="downloader_download_succeeded_ticker">Heruntergeladen</string>
     <string name="downloader_download_succeeded_content">%1$s heruntergeladen</string>
@@ -229,9 +222,7 @@
     <string name="media_play_pause_description">Wiedergabe-/Pause Knopf</string>
     <string name="media_forward_description">Vorspulknopf</string>
 
-	<string name="auth_getting_authorization">Genehmigung erhalten &#8230;</string>
-	<string name="auth_trying_to_login">Der Versuch, sich anzumelden &#8230;</string>
-	<string name="auth_no_net_conn_title">Keine Netzwerkverbindung</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>
@@ -255,8 +246,7 @@
 	<string name="auth_expired_oauth_token_toast">Die Autorisierung ist abgelaufen. Bitte Autorisierung nochmals durchführen</string>
 	<string name="auth_expired_basic_auth_toast">Bitte geben Sie das aktuelle Passwort ein</string>
 	<string name="auth_expired_saml_sso_token_toast">Ihre Sitzung ist abgelaufen. Bitte erneut verbinden</string>
-    <string name="auth_connecting_auth_server">Verbinde zum Authentifizierungs-Server &#8230;</string>
-	<string name="auth_unsupported_multiaccount">%1$s unterstützt nicht mehrere Benutzerkonten</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>
 	<string name="auth_can_not_auth_against_server">Kann sich nicht auf diesem Server authentifizieren</string>
     <string name="auth_account_does_not_exist">Das Benutzerkonto ist bislang auf dem Gerät nicht vorhanden</string>
@@ -284,15 +274,11 @@
     <string name="filename_forbidden_characters">Verbotene Zeichen: / \\ &lt; &gt; : \" | ? *</string>
     <string name="filename_forbidden_charaters_from_server">Der Dateiname enthält mindestens ein ungültiges Zeichen</string>
     <string name="filename_empty">Dateiname darf nicht leer sein</string>
-    <string name="wait_a_moment">Bitte warten Sie &#8230;</string>
     <string name="wait_checking_credentials">Überprüfe gespeicherte Anmeldeinformationen</string>
     <string name="filedisplay_no_file_selected">Keine Datei gewählt</string>
-    <string name="activity_chooser_title">Link senden an &#8230;</string>
     <string name="wait_for_tmp_copy_from_private_storage">Kopiere Datei vom privatem Speicher</string>
     
     <string name="oauth_check_onoff">Anmelden mit OAuth 2.0</string>
-    <string name="oauth_login_connection">Verbinde mit dem OAuth 2.0-Server &#8230;</string>
-        
     <string name="ssl_validator_header">Die Identität des Servers konnte nicht verifiziert 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>
@@ -384,14 +370,6 @@
     <string name="downloader_download_file_not_found">Diese Datei steht auf dem Server nicht mehr zur Verfügung</string>
 
     <string name="file_migration_dialog_title">Aktualisiere Speicherort</string>
-    <string name="file_migration_preparing">Bereite Migration vor &#8230;</string>
-    <string name="file_migration_checking_destination">Prüfe Zielort &#8230;</string>
-    <string name="file_migration_saving_accounts_configuration">Sichere Konfiguration der Konten &#8230;</string>
-    <string name="file_migration_waiting_for_unfinished_sync">Warte auf die Fertigstellung aller Synchronisationen &#8230;</string>
-    <string name="file_migration_migrating">Verschiebe Daten &#8230;</string>
-    <string name="file_migration_updating_index">Aktualisiere Index &#8230;</string>
-    <string name="file_migration_cleaning">Aufräumen &#8230;</string>
-    <string name="file_migration_restoring_accounts_configuration">Konfiguration der Konten wiederherstellen &#8230;</string>
     <string name="file_migration_ok_finished">Abgeschlossen</string>
     <string name="file_migration_failed_not_enough_space">Mehr Speicherplatz benötigt</string>
     <string name="file_migration_failed_not_writable">Für das Ziel existieren keine Schreibrechte</string>
@@ -415,9 +393,7 @@
 	<string name="log_send_history_button">versende die Chronik</string>
 	<string name="log_send_no_mail_app">Es wurde keine App gefunden die Logs verschicken kann. Bitte installiere eine App die E-Mails verschicken kann.</string>
 	<string name="log_send_mail_subject">%1$s Android-App Meldungen</string>
-	<string name="log_progress_dialog_text">Daten werden geladen &#8230;</string>
-
-	<string name="saml_authentication_required_text">Passwort erforderlich</string>
+    <string name="saml_authentication_required_text">Passwort erforderlich</string>
 	<string name="saml_authentication_wrong_pass">Falsches Passwort</string>
 	<string name="actionbar_move">Verschieben</string>
     <string name="actionbar_copy">Kopieren</string>
@@ -461,8 +437,6 @@
     <string name="set_picture_as">Nutze Bild als</string>
     <string name="set_as">Setze als</string>
 
-    <string name="prefs_instant_behaviour_dialogTitle">Originaldatei wird &#8230;</string>
-    <string name="prefs_instant_behaviour_title">Originaldatei wird &#8230;</string>
     <string name="select_all">Alle auswählen</string>
     <string name="deselect_all">Auswahl aufheben</string>
 
@@ -483,7 +457,6 @@
     <string name="share_via_link_edit_permission_label"> Bearbeitung erlauben </string>
     <string name="share_via_link_hide_file_listing_permission_label">Dateiliste verbergen</string>
     <string name="share_get_public_link_button">Link erhalten</string>
-    <string name="share_with_title">Teile mit &#8230;</string>
     <string name="share_with_edit_title">Teile mit %1$s</string>
 
     <string name="share_search">Suche</string>
@@ -547,11 +520,6 @@
     <string name="participate_rc_fdroid">Release-Kandidat über die F-Droid-App beziehen</string>
     <string name="participate_dev_fdroid">Entwicklungs-Version über die F-Droid-App beziehen</string>
     <string name="participate_dev_direct_download">Entwicklungs-Version direkt herunterladen</string>
-    <string name="move_to">Verschieben nach &#8230;</string>
-    <string name="copy_to">Kopieren nach &#8230;</string>
-    <string name="choose_remote_folder">Wählen Sie einen Remote-Ordner &#8230;</string>
-    <string name="choose_local_folder">Wählen Sie einen lokalen Ordner&#8230;</string>
-    <string name="synced_folders_loading_folders">Lade Ordner &#8230;</string>
     <string name="synced_folders_no_results">Keine Medien-Ordner gefunden.</string>
     <string name="synced_folders_preferences">Einstellungen für automatisches Hochladen</string>
     <string name="synced_folders_new_info">Die Sofort-Uploads wurden vollständig überarbeitet. Konfiguriere Sie Ihren automatischen Uploader im Hauptmenü.\n\nGenießen Sie den verbesserten Auto-Upload.</string>
@@ -561,7 +529,6 @@
         <item quantity="other">%d ausgewählt</item>
     </plurals>
 
-    <string name="notifications_loading_activity">Lade Benachrichtigungen &#8230;</string>
     <string name="notifications_no_results_headline">Keine Benachrichtigungen</string>
     <string name="notifications_no_results_message">Bitte später noch einmal nachsehen.</string>
 
@@ -647,9 +614,6 @@
     <string name="fallback_weblogin_back">Zurück</string>
     <string name="fallback_weblogin_text">Zur alten Anmeldungsmethode zurückkehren</string>
 
-    <string name="foreground_service_upload">Dateien hochladen &#8230;</string>
-    <string name="foreground_service_download">Dateien herunterladen &#8230;</string>
-
     <string name="prefs_sourcecode">Zum Programmcode</string>
     <string name="prefs_license">Lizenz</string>
     <string name="prefs_gpl_v2">GNU General Public Lizenz, version 2</string>
@@ -739,23 +703,18 @@
     
     <string name="end_to_end_encryption_folder_not_empty">Dieser Ordner ist nicht leer.</string>
     <string name="end_to_end_encryption_wrong_password">Fehler beim Entschlüsseln. Falsches Passwort?</string>
-    <string name="end_to_end_encryption_decrypting">Entschlüsseln&#8230;</string>
-    <string name="end_to_end_encryption_retrieving_keys">Schlüssel abrufen&#8230;</string>
     <string name="end_to_end_encryption_enter_password">Geben Sie bitte das Passwort ein, um den privaten Schlüssel zu entschlüsseln.</string>
-    <string name="end_to_end_encryption_generating_keys">Neue Schlüssel generieren&#8230;</string>
     <string name="end_to_end_encryption_keywords_description">Diese 12 Wörter-Phrase ist wie ein sehr starkes Passwort: Sie bietet vollen Zugriff um Ihre verschlüsselten Dateien anzusehen und zu verwenden. Bitte schreiben Sie sie auf und verwahren sie an einem sicheren Ort.</string>
     <string name="end_to_end_encryption_title">Verschlüsselung einrichten</string>
     <string name="end_to_end_encryption_passphrase_title">Notieren Sie Ihre Verschlüsselungs-Passphrase</string>
     <string name="end_to_end_encryption_not_supported">Verschlüsselung wird vor KitKat (4.4) nicht unterstützt</string>
     <string name="end_to_end_encryption_not_enabled">Ende-zu-Ende Verschlüsselung ist auf diesem Server deaktiviert.</string>
     <string name="end_to_end_encryption_confirm_button">Verschlüsselung einrichten</string>
-    <string name="end_to_end_encryption_password">Passwort&#8230;</string>
     <string name="end_to_end_encryption_unsuccessful">Die Schlüssel konnten nicht gespeichert werden. Bitte erneut versuchen.</string>
     <string name="end_to_end_encryption_dialog_close">Schließen</string>
     <string name="end_to_end_encryption_storing_keys">Schlüssel speichern</string>
     <string name="copy_move_to_encrypted_folder_not_supported">In verschlüsselten Ordner kopieren/verschieben wird aktuell nicht unterstützt.</string>
     <string name="untrusted_domain">Zugriff über nicht vertrauenswürdige Domain. Weitere Informationen finden sich in der Dokumentation.</string>
-    <string name="upload_list_loading">Hochgeladenes wird geladen&#8230;</string>
     <string name="notification_channel_push_name">Push-Benachrichtigungen</string>
     <string name="notification_channel_push_description">Vom Server gesendete Push-Benachrichtigungen anzeigen: Erwähnungen in Kommentaren, Zugriff auf weitere Freigaben erhalten, Ankündigungen von Administratoren erhalten, etc.</string>
     <string name="sendbutton_description">Icon für den Senden-Button</string>
@@ -763,4 +722,4 @@
     <string name="oauth_2_0_access_end_point_address_hint">Adresse  Zugriffsendpunkt</string>
     <string name="hint_name">Name</string>
     <string name="hint_password">Passwort</string>
-</resources>
+    </resources>

+ 2 - 26
src/main/res/values-el/strings.xml

@@ -61,7 +61,6 @@
     <string name="recommend_urls">%1$sή%2$s</string>
 
     <string name="auth_check_server">Έλεγχος διακομιστή</string>
-    <string name="auth_host_url">Διεύθυνση διακομιστή https://&#8230;</string>
     <string name="auth_username">Όνομα χρήστη</string>
     <string name="auth_password">Συνθηματικό</string>
     <string name="auth_register">Όχι  Nextcloud ακόμα; \ nΚάντε κλικ εδώ για να πάρετε ένα από έναν πάροχο</string>
@@ -81,7 +80,6 @@
     <string name="uploader_error_message_source_file_not_found">Το αρχείο προς αποστολή δεν βρέθηκε στην τοποθεσία. Παρακαλώ ελέγξτε εάν υπάρχει το αρχείο.</string>
     <string name="uploader_error_message_source_file_not_copied">Παρουσιάστηκε σφάλμα κατά την αντιγραφή του αρχείου στον προσωρινό φάκελο. Παρακαλούμε δοκιμάστε να στείλετε ξανά.</string>
     <string name="uploader_upload_files_behaviour">Επιλογή μεταφόρτωσης:</string>
-    <string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">Μετακίνηση αρχείου στον φάκελο Nextcloud</string>
     <string name="uploader_upload_files_behaviour_only_upload">Διατήρηση του αρχείου στον πηγαίο φάκελο</string>
     <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Διαγραφή αρχείου από τον πηγαίο φάκελο</string>
     <string name="file_list_seconds_ago">δευτερόλεπτα πριν</string>
@@ -90,7 +88,6 @@
     <string name="file_list_empty">Μεταφόρτωση περιεχομένου ή συγχρονισμός με τις συσκευές σας.</string>
     <string name="file_list_empty_favorites_filter_list">Τα αρχεία ή οι φάκελοι που σημειώσατε ως αγαπημένα θα εμφανιστούν εδώ</string>
     <string name="file_list_empty_favorites_filter">Δεν βρέθηκαν αρχεία σημειωμένα ως αγαπημένα για το ερώτημά σας.</string>
-    <string name="file_list_loading">Φόρτωση&#8230;</string>
     <string name="file_list_no_app_for_file_type">Δεν βρέθηκε εφαρμογή για τον τύπο αρχείου.</string>
     <string name="local_file_list_empty">Δεν υπάρχουν αρχεία σε αυτό τον φάκελο.</string>
     <string name="local_folder_list_empty">Δεν υπάρχουν άλλοι φάκελοι.</string>
@@ -127,7 +124,6 @@
     <string name="common_back">Επιστροφή</string>
     <string name="common_save">Αποθήκευση</string>
     <string name="common_error">Σφάλμα</string>
-    <string name="common_loading">Φόρτωση &#8230;</string>
     <string name="common_unknown">άγνωστο</string>
     <string name="common_error_unknown">Άγνωστο σφάλμα</string>
     <string name="common_pending">Εκκρεμεί</string>
@@ -137,9 +133,7 @@
     <string name="delete_account_warning">Κατάργηση λογαριασμού %s και διαγραφή όλων των τοπικών αρχείων; \ n \ nΗ διαγραφή δεν μπορεί να ανακληθεί.</string>
     <string name="avatar">Εικόνα προφίλ</string>
     <string name="active_user">Ενεργός χρήστης</string>
-    <string name="upload_chooser_title">Μεταφόρτωση από &#8230;</string>
     <string name="uploader_info_dirname">Όνομα φακέλου</string>
-    <string name="uploader_upload_in_progress_ticker">Μεταφόρτωση &#8230;</string>
     <string name="uploader_upload_in_progress_content">%1$d%% Μεταφορτώνονται %2$s</string>
     <string name="uploader_upload_succeeded_ticker">Μεταφορτώθηκε</string>
     <string name="uploader_upload_succeeded_content_single">Το %1$s μεταφορτώθηκε</string>
@@ -165,7 +159,6 @@
     <string name="uploads_view_upload_status_waiting_for_wifi">Αναμονή για Wi-Fi</string>
     <string name="uploads_view_upload_status_waiting_exit_power_save_mode">Αναμονή για έξοδο από τη λειτουργία εξοικονόμησης ενέργειας</string>
     <string name="uploads_view_later_waiting_to_upload">Αναμονή για μεταφόρτωση</string>
-    <string name="downloader_download_in_progress_ticker">Λαμβάνονται &#8230;</string>
     <string name="downloader_download_in_progress_content">%1$d%% Λαμβάνονται %2$s</string>
     <string name="downloader_download_succeeded_ticker">Ληφθέντα</string>
     <string name="downloader_download_succeeded_content">%1$s ελήφθησαν</string>
@@ -208,9 +201,7 @@
     <string name="media_play_pause_description">Κουμπί αναπαραγωγής ή παύσης</string>
     <string name="media_forward_description">Κουμπί γρήγορης προώθησης</string>
 
-	<string name="auth_getting_authorization">Λήψη πιστοποίησης &#8230;</string>
-	<string name="auth_trying_to_login">Προσπάθεια σύνδεσης &#8230;</string>
-	<string name="auth_no_net_conn_title">Δεν υπάρχει σύνδεση στο δίκτυο</string>
+    <string name="auth_no_net_conn_title">Δεν υπάρχει σύνδεση στο δίκτυο</string>
 	<string name="auth_nossl_plain_ok_title">Μη διαθέσιμη ασφαλής σύνδεση.</string>
 	<string name="auth_connection_established">Εδραίωση σύνδεσης</string>
 	<string name="auth_testing_connection">Έλεγχος σύνδεσης</string>
@@ -254,12 +245,9 @@
     <string name="filename_forbidden_characters">Απαγορευμένοι χαρακτήρες: / \\ &lt; &gt; : \" | ? *</string>
     <string name="wait_checking_credentials">Γίνεται έλεγχος αποθηκευμένων διαπιστευτηρίων</string>
     <string name="filedisplay_no_file_selected">Δεν επιλέχθηκε αρχείο</string>
-    <string name="activity_chooser_title">Αποστολή συνδέσμου σε &#8230;</string>
     <string name="wait_for_tmp_copy_from_private_storage">Γίνεται αντιγραφή αρχείου από ιδιωτικό αποθηκευτικό χώρο</string>
     
     <string name="oauth_check_onoff">Σύνδεση με OAuth 2.0</string>
-    <string name="oauth_login_connection">Σύνδεση στον διακομιστή OAuth 2.0 &#8230;</string>
-        
     <string name="ssl_validator_reason_cert_not_trusted">- Το πιστοποιητικό του διακομιστή δεν είναι έμπιστο</string>
     <string name="ssl_validator_reason_cert_expired">- Το πιστοποιητικό του διακομιστή έχει λήξει</string>
     <string name="ssl_validator_reason_cert_not_yet_valid">- Οι έγκυρες ημερομηνίες του πιστοποιητικού του διακομιστή είναι στο μέλλον</string>
@@ -345,9 +333,6 @@
     <string name="downloader_download_file_not_found">Αυτό το αρχείο δεν είναι πια διαθέσιμο στον διακομιστή</string>
 
     <string name="file_migration_dialog_title">Ενημέρωση διαδρομής αποθηκευτικού χώρου</string>
-    <string name="file_migration_preparing">Προετοιμασία για μεταφορά &#8230;</string>
-    <string name="file_migration_migrating">Γίνεται μετακίνηση δεδομένων &#8230;</string>
-    <string name="file_migration_updating_index">Γίνεται ενημέρωση ευρετηρίου &#8230;</string>
     <string name="file_migration_ok_finished">Ολοκληρώθηκε</string>
     <string name="file_migration_failed_not_enough_space">Απαιτείται περισσότερος χώρος</string>
     <string name="file_migration_failed_not_writable">Αδυναμία εγγραφής στο αρχείο προορισμού</string>
@@ -369,9 +354,7 @@
 	<string name="log_send_history_button">Αποστολή ιστορικού</string>
 	<string name="log_send_no_mail_app">Δεν εντοπίστηκε εφαρμογή αποστολής ιστορικού συστήματος. Παρακαλούμε εγκαταστήστε μια εφαρμογή ηλεκτρονικού ταχυδρομείου.</string>
 	<string name="log_send_mail_subject">%1$s ιστορικό της εφαρμογής Android</string>
-	<string name="log_progress_dialog_text">Φόρτωση δεδομένων &#8230;</string>
-
-	<string name="saml_authentication_required_text">Απαιτείται συνθηματικό</string>
+    <string name="saml_authentication_required_text">Απαιτείται συνθηματικό</string>
 	<string name="saml_authentication_wrong_pass">Εσφαλμένο συνθηματικό</string>
 	<string name="actionbar_move">Μετακίνηση</string>
     <string name="actionbar_copy">Αντιγραφή</string>
@@ -433,7 +416,6 @@
     <string name="share_via_link_edit_permission_label">Επιτρέπεται η επεξεργασία</string>
     <string name="share_via_link_hide_file_listing_permission_label">Απόκρυψη λίστας αρχείου</string>
     <string name="share_get_public_link_button">Λήψη συνδέσμου</string>
-    <string name="share_with_title">Διαμοιρασμός με &#8230;</string>
     <string name="share_with_edit_title">Διαμοιρασμός με %1$s</string>
 
     <string name="share_search">Αναζήτηση</string>
@@ -491,8 +473,6 @@
     <string name="participate_contribute_translate_translate">Μετάφραση</string>
     <string name="participate_contribute_translate_text">η εφαρμογή</string>
     <string name="participate_contribute_github_text">Επιθεωρήστε, τροποποιήστε και γράψτε κώδικα, δείτε %1$s για λεπτομέρειες</string>
-    <string name="move_to">Μετακίνηση σε &#8230;</string>
-    <string name="copy_to">Αντιγραφή σε &#8230;</string>
     <string name="synced_folders_no_results">Δεν βρέθηκαν φάκελοι media .</string>
     <string name="synced_folders_preferences">Προτιμήσεις για αυτόματη μεταφόρτωση</string>
     <string name="synced_folders_new_info">Η άμεση μεταφόρτωση έχει ανανεωθεί πλήρως. Ξανά ρυθμίστε την αυτόματη μεταφόρτωσή σας από το κύριο μενού. \ N \ nΑπολαύστε τη νέα και εκτεταμένη αυτόματη μεταφόρτωση.</string>
@@ -606,14 +586,10 @@
     <string name="account_not_found">Δεν βρέθηκε λογαριασμός!</string>
 
     <string name="screenshot_01_gridView">Μια ασφαλής τοποθεσία για όλα σας τα δεδομένα</string>
-    <string name="end_to_end_encryption_decrypting">Γίνεται αποκρυπτογράφηση &#8230;</string>
-    <string name="end_to_end_encryption_retrieving_keys">Γίνεται λήψη κλειδιών &#8230;</string>
     <string name="end_to_end_encryption_enter_password">Παρακαλούμε εισάγετε το συνθηματικό για αποκρυπτογράφηση του ιδιωτικού κλειδιού.</string>
-    <string name="end_to_end_encryption_generating_keys">Γίνεται δημιουργία νέων κλειδιών &#8230;</string>
     <string name="end_to_end_encryption_title">Ρύθμιση κρυπτογράφησης</string>
     <string name="end_to_end_encryption_passphrase_title">Σημειώστε το συνθηματικό κρυπτογράφησης 12 λέξεων</string>
     <string name="end_to_end_encryption_confirm_button">Ρύθμιση κρυπτογράφησης</string>
-    <string name="end_to_end_encryption_password">Συνθηματικό &#8230;</string>
     <string name="end_to_end_encryption_unsuccessful">Αδυναμία αποθήκευσης κλειδιών, παρακαλούμε δοκιμάστε ξανά.</string>
     <string name="end_to_end_encryption_dialog_close">Κλείσιμο</string>
     <string name="end_to_end_encryption_storing_keys">Αποθήκευση κλειδιών</string>

+ 2 - 14
src/main/res/values-es-rAR/strings.xml

@@ -55,7 +55,6 @@
     <string name="prefs_imprint">Exención de responsabilidad </string>
 
 	<string name="auth_check_server">Verficar el servidor</string>
-    <string name="auth_host_url">Dirección del servidor https://&#8230;</string>
     <string name="auth_username">Nombre de usuario</string>
     <string name="auth_password">Contraseña</string>
     <string name="sync_string_files">Archivos</string>
@@ -74,7 +73,6 @@
     <string name="uploader_error_message_source_file_not_found">El archivo seleccionado para cargar no fue encontrado. Favor de verificar si el archivo existe.</string>
     <string name="uploader_error_message_source_file_not_copied">No fue posible copiar el archivo a una carpeta temporal. Favor de intentar enviarlo de nuevo.</string>
     <string name="uploader_upload_files_behaviour">Opción de carga:</string>
-    <string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">Mover el archivo a la carpeta de Nextcloud</string>
     <string name="uploader_upload_files_behaviour_only_upload">Mantener el archivo en la carpeta de origen</string>
     <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Borrar el archivo de la carpeta de origen</string>
     <string name="file_list_seconds_ago">hace algunos segundos</string>
@@ -110,7 +108,6 @@
     <string name="common_cancel">Cancelar</string>
     <string name="common_back">Atrás</string>
     <string name="common_save">Guardar</string>
-    <string name="common_loading">Cargando  &#8230;</string>
     <string name="common_unknown">desconocido</string>
     <string name="common_error_unknown">Error desconocido</string>
     <string name="common_pending">Pendiente</string>
@@ -119,9 +116,7 @@
     <string name="delete_account">Eliminar cuenta</string>
     <string name="avatar">Avatar</string>
     <string name="active_user">Usuario activo</string>
-    <string name="upload_chooser_title">Cargar desde &#8230;</string>
     <string name="uploader_info_dirname">Nombre de la carpeta</string>
-    <string name="uploader_upload_in_progress_ticker">Cargando &#8230;</string>
     <string name="uploader_upload_in_progress_content">%1$d%% Cargando %2$s</string>
     <string name="uploader_upload_succeeded_ticker">Cargado</string>
     <string name="uploader_upload_succeeded_content_single">%1$s cargado</string>
@@ -142,7 +137,6 @@
     <string name="uploads_view_upload_status_service_interrupted">La aplicación ha sido terminada</string>
     <string name="uploads_view_upload_status_unknown_fail">Error desconocido</string>
     <string name="uploads_view_later_waiting_to_upload">Esperando para cargar</string>
-    <string name="downloader_download_in_progress_ticker">Descargando &#8230;</string>
     <string name="downloader_download_in_progress_content">%1$d%% Descargando %2$s</string>
     <string name="downloader_download_succeeded_ticker">Descargado</string>
     <string name="downloader_download_succeeded_content">%1$s descargado</string>
@@ -181,9 +175,7 @@
     <string name="media_play_pause_description">Botón de reproducir o pausar</string>
     <string name="media_forward_description">Botón de avanzar rápido</string>
 
-	<string name="auth_getting_authorization">Obteniendo autorización &#8230;</string>
-	<string name="auth_trying_to_login">Intentando iniciar en sesión &#8230;</string>
-	<string name="auth_no_net_conn_title">No hay conexión de red</string>
+    <string name="auth_no_net_conn_title">No hay conexión de red</string>
 	<string name="auth_nossl_plain_ok_title">Conexión segura no disponible.</string>
 	<string name="auth_connection_established">Conexión establecida</string>
 	<string name="auth_testing_connection">Probando conexión</string>
@@ -221,7 +213,6 @@
     <string name="filename_forbidden_characters">Caracteres inválidos: / \\ &lt; &gt; : \" | ? *</string>
     <string name="wait_checking_credentials">Verificando credenciales almacenadas</string>
     <string name="filedisplay_no_file_selected">No se ha seleccionado algún archivo</string>
-    <string name="activity_chooser_title">Enviar el link a &#8230;</string>
     <string name="wait_for_tmp_copy_from_private_storage">Copiando el archivo desde almacenamiento privado</string>
     
     <string name="oauth_check_onoff">Iniciando sesión con OAuth 2.0</string>
@@ -321,9 +312,7 @@
 	<string name="log_send_history_button">Enviar histórico</string>
 	<string name="log_send_no_mail_app">No se encontró alguna aplicación para el envío de bitácoras. Favor de instalar un cliente de correo electrónico. </string>
 	<string name="log_send_mail_subject"> %1$s bitácora de aplicación Android</string>
-	<string name="log_progress_dialog_text">Cargando información &#8230;</string>
-
-	<string name="saml_authentication_wrong_pass">Contraseña incorrecta</string>
+    <string name="saml_authentication_wrong_pass">Contraseña incorrecta</string>
 	<string name="actionbar_move">Mover</string>
     <string name="actionbar_copy">Copiar</string>
 	<string name="file_list_empty_moving">No hay nada aquí. Puede agregar una carpeta.</string>
@@ -375,7 +364,6 @@
     <string name="share_via_link_password_title">Asegurado</string>
     <string name="share_via_link_hide_file_listing_permission_label">Ocultar listado de archivos</string>
     <string name="share_get_public_link_button">Obtener link</string>
-    <string name="share_with_title">Compartir con &#8230;</string>
     <string name="share_with_edit_title">Compartir con %1$s</string>
 
     <string name="share_search">Buscar</string>

+ 2 - 14
src/main/res/values-es-rCL/strings.xml

@@ -60,7 +60,6 @@
     <string name="recommend_urls">%1$s ó %2$s</string>
 
     <string name="auth_check_server">Verficar el servidor</string>
-    <string name="auth_host_url">Dirección del servidor https://&#8230;</string>
     <string name="auth_username">Usuario</string>
     <string name="auth_password">Contraseña</string>
     <string name="sync_string_files">Archivos</string>
@@ -79,7 +78,6 @@
     <string name="uploader_error_message_source_file_not_found">El archivo seleccionado para cargar no fue encontrado. Por favor verifica si el archivo existe.</string>
     <string name="uploader_error_message_source_file_not_copied">No fue posible copiar el archivo a una carpeta temporal. Por favor intenta enviarlo de nuevo.</string>
     <string name="uploader_upload_files_behaviour">Opción de carga:</string>
-    <string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">Mover el archivo a la carpeta de Nextcloud</string>
     <string name="uploader_upload_files_behaviour_only_upload">Mantener el archivo en la carpeta de origen</string>
     <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Borrar el archivo de la carpeta de origen</string>
     <string name="file_list_seconds_ago">hace algunos segundos</string>
@@ -115,7 +113,6 @@
     <string name="common_cancel">Cancelar</string>
     <string name="common_back">Atrás</string>
     <string name="common_save">Guardar</string>
-    <string name="common_loading">Cargando  &#8230;</string>
     <string name="common_unknown">desconocido</string>
     <string name="common_error_unknown">Error desconocido</string>
     <string name="common_pending">Pendiente</string>
@@ -125,9 +122,7 @@
     <string name="delete_account_warning">¿Borrar la cuenta %s y borrar todos los archivos localeS?\n\nEl borrado no se puede deshacer</string>
     <string name="avatar">Avatar</string>
     <string name="active_user">Usuario activo</string>
-    <string name="upload_chooser_title">Cargar desde &#8230;</string>
     <string name="uploader_info_dirname">Nombre de la carpeta</string>
-    <string name="uploader_upload_in_progress_ticker">Cargando &#8230;</string>
     <string name="uploader_upload_in_progress_content">%1$d%% Cargando %2$s</string>
     <string name="uploader_upload_succeeded_ticker">Cargado</string>
     <string name="uploader_upload_succeeded_content_single">%1$s cargado</string>
@@ -149,7 +144,6 @@
     <string name="uploads_view_upload_status_unknown_fail">Error desconocido</string>
     <string name="uploads_view_upload_status_waiting_exit_power_save_mode">Esperando a salir de modo de conservación de energía</string>
     <string name="uploads_view_later_waiting_to_upload">Esperando para cargar</string>
-    <string name="downloader_download_in_progress_ticker">Descargando &#8230;</string>
     <string name="downloader_download_in_progress_content">%1$d%% Descargando %2$s</string>
     <string name="downloader_download_succeeded_ticker">Descargado</string>
     <string name="downloader_download_succeeded_content">%1$s descargado</string>
@@ -201,9 +195,7 @@
     <string name="media_play_pause_description">Botón de reproducir o pausar</string>
     <string name="media_forward_description">Botón de avanzar rápido</string>
 
-	<string name="auth_getting_authorization">Obteniendo autorización &#8230;</string>
-	<string name="auth_trying_to_login">Intentando iniciar en sesión &#8230;</string>
-	<string name="auth_no_net_conn_title">No hay conexión de red</string>
+    <string name="auth_no_net_conn_title">No hay conexión de red</string>
 	<string name="auth_nossl_plain_ok_title">Conexión segura no disponible.</string>
 	<string name="auth_connection_established">Conexión establecida</string>
 	<string name="auth_testing_connection">Probando conexión</string>
@@ -249,7 +241,6 @@
     <string name="filename_forbidden_characters">Caracteres inválidos: / \\ &lt; &gt; : \" | ? *</string>
     <string name="wait_checking_credentials">Verificando credenciales almacenadas</string>
     <string name="filedisplay_no_file_selected">No se ha seleccionado algún archivo</string>
-    <string name="activity_chooser_title">Enviar la liga a &#8230;</string>
     <string name="wait_for_tmp_copy_from_private_storage">Copiando el archivo desde almacenamiento privado</string>
     
     <string name="oauth_check_onoff">Iniciar sesión con OAuth 2.0</string>
@@ -353,9 +344,7 @@
 	<string name="log_send_history_button">Enviar histórico</string>
 	<string name="log_send_no_mail_app">No se encontró alguna aplicación para el envío de bitácoras. Por favor instala un cliente de correo electrónico. </string>
 	<string name="log_send_mail_subject"> %1$s bitácora de aplicación Android</string>
-	<string name="log_progress_dialog_text">Cargando información &#8230;</string>
-
-	<string name="saml_authentication_wrong_pass">Contraseña incorrecta</string>
+    <string name="saml_authentication_wrong_pass">Contraseña incorrecta</string>
 	<string name="actionbar_move">Mover</string>
     <string name="actionbar_copy">Copiar</string>
 	<string name="file_list_empty_moving">No hay nada aquí. Puedes agregar una carpeta.</string>
@@ -416,7 +405,6 @@
     <string name="share_via_link_edit_permission_label">Permitir edición</string>
     <string name="share_via_link_hide_file_listing_permission_label">Ocultar listado de archivos</string>
     <string name="share_get_public_link_button">Obtener liga</string>
-    <string name="share_with_title">Compartir con &#8230;</string>
     <string name="share_with_edit_title">Compartir con %1$s</string>
 
     <string name="share_search">Buscar</string>

+ 2 - 14
src/main/res/values-es-rCO/strings.xml

@@ -60,7 +60,6 @@
     <string name="recommend_urls">%1$s ó %2$s</string>
 
     <string name="auth_check_server">Verficar el servidor</string>
-    <string name="auth_host_url">Dirección del servidor https://&#8230;</string>
     <string name="auth_username">Usuario</string>
     <string name="auth_password">Contraseña</string>
     <string name="sync_string_files">Archivos</string>
@@ -79,7 +78,6 @@
     <string name="uploader_error_message_source_file_not_found">El archivo seleccionado para cargar no fue encontrado. Por favor verifica si el archivo existe.</string>
     <string name="uploader_error_message_source_file_not_copied">No fue posible copiar el archivo a una carpeta temporal. Por favor intenta enviarlo de nuevo.</string>
     <string name="uploader_upload_files_behaviour">Opción de carga:</string>
-    <string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">Mover el archivo a la carpeta de Nextcloud</string>
     <string name="uploader_upload_files_behaviour_only_upload">Mantener el archivo en la carpeta de origen</string>
     <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Borrar el archivo de la carpeta de origen</string>
     <string name="file_list_seconds_ago">hace algunos segundos</string>
@@ -115,7 +113,6 @@
     <string name="common_cancel">Cancelar</string>
     <string name="common_back">Atrás</string>
     <string name="common_save">Guardar</string>
-    <string name="common_loading">Cargando  &#8230;</string>
     <string name="common_unknown">desconocido</string>
     <string name="common_error_unknown">Error desconocido</string>
     <string name="common_pending">Pendiente</string>
@@ -125,9 +122,7 @@
     <string name="delete_account_warning">¿Borrar la cuenta %s y borrar todos los archivos localeS?\n\nEl borrado no se puede deshacer</string>
     <string name="avatar">Avatar</string>
     <string name="active_user">Usuario activo</string>
-    <string name="upload_chooser_title">Cargar desde &#8230;</string>
     <string name="uploader_info_dirname">Nombre de la carpeta</string>
-    <string name="uploader_upload_in_progress_ticker">Cargando &#8230;</string>
     <string name="uploader_upload_in_progress_content">%1$d%% Cargando %2$s</string>
     <string name="uploader_upload_succeeded_ticker">Cargado</string>
     <string name="uploader_upload_succeeded_content_single">%1$s cargado</string>
@@ -149,7 +144,6 @@
     <string name="uploads_view_upload_status_unknown_fail">Error desconocido</string>
     <string name="uploads_view_upload_status_waiting_exit_power_save_mode">Esperando a salir de modo de conservación de energía</string>
     <string name="uploads_view_later_waiting_to_upload">Esperando para cargar</string>
-    <string name="downloader_download_in_progress_ticker">Descargando &#8230;</string>
     <string name="downloader_download_in_progress_content">%1$d%% Descargando %2$s</string>
     <string name="downloader_download_succeeded_ticker">Descargado</string>
     <string name="downloader_download_succeeded_content">%1$s descargado</string>
@@ -201,9 +195,7 @@
     <string name="media_play_pause_description">Botón de reproducir o pausar</string>
     <string name="media_forward_description">Botón de avanzar rápido</string>
 
-	<string name="auth_getting_authorization">Obteniendo autorización &#8230;</string>
-	<string name="auth_trying_to_login">Intentando iniciar en sesión &#8230;</string>
-	<string name="auth_no_net_conn_title">No hay conexión de red</string>
+    <string name="auth_no_net_conn_title">No hay conexión de red</string>
 	<string name="auth_nossl_plain_ok_title">Conexión segura no disponible.</string>
 	<string name="auth_connection_established">Conexión establecida</string>
 	<string name="auth_testing_connection">Probando conexión</string>
@@ -249,7 +241,6 @@
     <string name="filename_forbidden_characters">Caracteres inválidos: / \\ &lt; &gt; : \" | ? *</string>
     <string name="wait_checking_credentials">Verificando credenciales almacenadas</string>
     <string name="filedisplay_no_file_selected">No se ha seleccionado algún archivo</string>
-    <string name="activity_chooser_title">Enviar la liga a &#8230;</string>
     <string name="wait_for_tmp_copy_from_private_storage">Copiando el archivo desde almacenamiento privado</string>
     
     <string name="oauth_check_onoff">Iniciar sesión con OAuth 2.0</string>
@@ -353,9 +344,7 @@
 	<string name="log_send_history_button">Enviar histórico</string>
 	<string name="log_send_no_mail_app">No se encontró alguna aplicación para el envío de bitácoras. Por favor instala un cliente de correo electrónico. </string>
 	<string name="log_send_mail_subject"> %1$s bitácora de aplicación Android</string>
-	<string name="log_progress_dialog_text">Cargando información &#8230;</string>
-
-	<string name="saml_authentication_wrong_pass">Contraseña incorrecta</string>
+    <string name="saml_authentication_wrong_pass">Contraseña incorrecta</string>
 	<string name="actionbar_move">Mover</string>
     <string name="actionbar_copy">Copiar</string>
 	<string name="file_list_empty_moving">No hay nada aquí. Puedes agregar una carpeta.</string>
@@ -416,7 +405,6 @@
     <string name="share_via_link_edit_permission_label">Permitir edición</string>
     <string name="share_via_link_hide_file_listing_permission_label">Ocultar listado de archivos</string>
     <string name="share_get_public_link_button">Obtener liga</string>
-    <string name="share_with_title">Compartir con &#8230;</string>
     <string name="share_with_edit_title">Compartir con %1$s</string>
 
     <string name="share_search">Buscar</string>

+ 2 - 14
src/main/res/values-es-rCR/strings.xml

@@ -60,7 +60,6 @@
     <string name="recommend_urls">%1$s ó %2$s</string>
 
     <string name="auth_check_server">Verficar el servidor</string>
-    <string name="auth_host_url">Dirección del servidor https://&#8230;</string>
     <string name="auth_username">Usuario</string>
     <string name="auth_password">Contraseña</string>
     <string name="sync_string_files">Archivos</string>
@@ -79,7 +78,6 @@
     <string name="uploader_error_message_source_file_not_found">El archivo seleccionado para cargar no fue encontrado. Por favor verifica si el archivo existe.</string>
     <string name="uploader_error_message_source_file_not_copied">No fue posible copiar el archivo a una carpeta temporal. Por favor intenta enviarlo de nuevo.</string>
     <string name="uploader_upload_files_behaviour">Opción de carga:</string>
-    <string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">Mover el archivo a la carpeta de Nextcloud</string>
     <string name="uploader_upload_files_behaviour_only_upload">Mantener el archivo en la carpeta de origen</string>
     <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Borrar el archivo de la carpeta de origen</string>
     <string name="file_list_seconds_ago">hace algunos segundos</string>
@@ -115,7 +113,6 @@
     <string name="common_cancel">Cancelar</string>
     <string name="common_back">Atrás</string>
     <string name="common_save">Guardar</string>
-    <string name="common_loading">Cargando  &#8230;</string>
     <string name="common_unknown">desconocido</string>
     <string name="common_error_unknown">Error desconocido</string>
     <string name="common_pending">Pendiente</string>
@@ -125,9 +122,7 @@
     <string name="delete_account_warning">¿Borrar la cuenta %s y borrar todos los archivos localeS?\n\nEl borrado no se puede deshacer</string>
     <string name="avatar">Avatar</string>
     <string name="active_user">Usuario activo</string>
-    <string name="upload_chooser_title">Cargar desde &#8230;</string>
     <string name="uploader_info_dirname">Nombre de la carpeta</string>
-    <string name="uploader_upload_in_progress_ticker">Cargando &#8230;</string>
     <string name="uploader_upload_in_progress_content">%1$d%% Cargando %2$s</string>
     <string name="uploader_upload_succeeded_ticker">Cargado</string>
     <string name="uploader_upload_succeeded_content_single">%1$s cargado</string>
@@ -149,7 +144,6 @@
     <string name="uploads_view_upload_status_unknown_fail">Error desconocido</string>
     <string name="uploads_view_upload_status_waiting_exit_power_save_mode">Esperando a salir de modo de conservación de energía</string>
     <string name="uploads_view_later_waiting_to_upload">Esperando para cargar</string>
-    <string name="downloader_download_in_progress_ticker">Descargando &#8230;</string>
     <string name="downloader_download_in_progress_content">%1$d%% Descargando %2$s</string>
     <string name="downloader_download_succeeded_ticker">Descargado</string>
     <string name="downloader_download_succeeded_content">%1$s descargado</string>
@@ -201,9 +195,7 @@
     <string name="media_play_pause_description">Botón de reproducir o pausar</string>
     <string name="media_forward_description">Botón de avanzar rápido</string>
 
-	<string name="auth_getting_authorization">Obteniendo autorización &#8230;</string>
-	<string name="auth_trying_to_login">Intentando iniciar en sesión &#8230;</string>
-	<string name="auth_no_net_conn_title">No hay conexión de red</string>
+    <string name="auth_no_net_conn_title">No hay conexión de red</string>
 	<string name="auth_nossl_plain_ok_title">Conexión segura no disponible.</string>
 	<string name="auth_connection_established">Conexión establecida</string>
 	<string name="auth_testing_connection">Probando conexión</string>
@@ -249,7 +241,6 @@
     <string name="filename_forbidden_characters">Caracteres inválidos: / \\ &lt; &gt; : \" | ? *</string>
     <string name="wait_checking_credentials">Verificando credenciales almacenadas</string>
     <string name="filedisplay_no_file_selected">No se ha seleccionado algún archivo</string>
-    <string name="activity_chooser_title">Enviar la liga a &#8230;</string>
     <string name="wait_for_tmp_copy_from_private_storage">Copiando el archivo desde almacenamiento privado</string>
     
     <string name="oauth_check_onoff">Iniciar sesión con OAuth 2.0</string>
@@ -353,9 +344,7 @@
 	<string name="log_send_history_button">Enviar histórico</string>
 	<string name="log_send_no_mail_app">No se encontró alguna aplicación para el envío de bitácoras. Por favor instala un cliente de correo electrónico. </string>
 	<string name="log_send_mail_subject"> %1$s bitácora de aplicación Android</string>
-	<string name="log_progress_dialog_text">Cargando información &#8230;</string>
-
-	<string name="saml_authentication_wrong_pass">Contraseña incorrecta</string>
+    <string name="saml_authentication_wrong_pass">Contraseña incorrecta</string>
 	<string name="actionbar_move">Mover</string>
     <string name="actionbar_copy">Copiar</string>
 	<string name="file_list_empty_moving">No hay nada aquí. Puedes agregar una carpeta.</string>
@@ -416,7 +405,6 @@
     <string name="share_via_link_edit_permission_label">Permitir edición</string>
     <string name="share_via_link_hide_file_listing_permission_label">Ocultar listado de archivos</string>
     <string name="share_get_public_link_button">Obtener liga</string>
-    <string name="share_with_title">Compartir con &#8230;</string>
     <string name="share_with_edit_title">Compartir con %1$s</string>
 
     <string name="share_search">Buscar</string>

+ 2 - 14
src/main/res/values-es-rDO/strings.xml

@@ -60,7 +60,6 @@
     <string name="recommend_urls">%1$s ó %2$s</string>
 
     <string name="auth_check_server">Verficar el servidor</string>
-    <string name="auth_host_url">Dirección del servidor https://&#8230;</string>
     <string name="auth_username">Usuario</string>
     <string name="auth_password">Contraseña</string>
     <string name="sync_string_files">Archivos</string>
@@ -79,7 +78,6 @@
     <string name="uploader_error_message_source_file_not_found">El archivo seleccionado para cargar no fue encontrado. Por favor verifica si el archivo existe.</string>
     <string name="uploader_error_message_source_file_not_copied">No fue posible copiar el archivo a una carpeta temporal. Por favor intenta enviarlo de nuevo.</string>
     <string name="uploader_upload_files_behaviour">Opción de carga:</string>
-    <string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">Mover el archivo a la carpeta de Nextcloud</string>
     <string name="uploader_upload_files_behaviour_only_upload">Mantener el archivo en la carpeta de origen</string>
     <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Borrar el archivo de la carpeta de origen</string>
     <string name="file_list_seconds_ago">hace algunos segundos</string>
@@ -115,7 +113,6 @@
     <string name="common_cancel">Cancelar</string>
     <string name="common_back">Atrás</string>
     <string name="common_save">Guardar</string>
-    <string name="common_loading">Cargando  &#8230;</string>
     <string name="common_unknown">desconocido</string>
     <string name="common_error_unknown">Error desconocido</string>
     <string name="common_pending">Pendiente</string>
@@ -125,9 +122,7 @@
     <string name="delete_account_warning">¿Borrar la cuenta %s y borrar todos los archivos localeS?\n\nEl borrado no se puede deshacer</string>
     <string name="avatar">Avatar</string>
     <string name="active_user">Usuario activo</string>
-    <string name="upload_chooser_title">Cargar desde &#8230;</string>
     <string name="uploader_info_dirname">Nombre de la carpeta</string>
-    <string name="uploader_upload_in_progress_ticker">Cargando &#8230;</string>
     <string name="uploader_upload_in_progress_content">%1$d%% Cargando %2$s</string>
     <string name="uploader_upload_succeeded_ticker">Cargado</string>
     <string name="uploader_upload_succeeded_content_single">%1$s cargado</string>
@@ -149,7 +144,6 @@
     <string name="uploads_view_upload_status_unknown_fail">Error desconocido</string>
     <string name="uploads_view_upload_status_waiting_exit_power_save_mode">Esperando a salir de modo de conservación de energía</string>
     <string name="uploads_view_later_waiting_to_upload">Esperando para cargar</string>
-    <string name="downloader_download_in_progress_ticker">Descargando &#8230;</string>
     <string name="downloader_download_in_progress_content">%1$d%% Descargando %2$s</string>
     <string name="downloader_download_succeeded_ticker">Descargado</string>
     <string name="downloader_download_succeeded_content">%1$s descargado</string>
@@ -201,9 +195,7 @@
     <string name="media_play_pause_description">Botón de reproducir o pausar</string>
     <string name="media_forward_description">Botón de avanzar rápido</string>
 
-	<string name="auth_getting_authorization">Obteniendo autorización &#8230;</string>
-	<string name="auth_trying_to_login">Intentando iniciar en sesión &#8230;</string>
-	<string name="auth_no_net_conn_title">No hay conexión de red</string>
+    <string name="auth_no_net_conn_title">No hay conexión de red</string>
 	<string name="auth_nossl_plain_ok_title">Conexión segura no disponible.</string>
 	<string name="auth_connection_established">Conexión establecida</string>
 	<string name="auth_testing_connection">Probando conexión</string>
@@ -249,7 +241,6 @@
     <string name="filename_forbidden_characters">Caracteres inválidos: / \\ &lt; &gt; : \" | ? *</string>
     <string name="wait_checking_credentials">Verificando credenciales almacenadas</string>
     <string name="filedisplay_no_file_selected">No se ha seleccionado algún archivo</string>
-    <string name="activity_chooser_title">Enviar la liga a &#8230;</string>
     <string name="wait_for_tmp_copy_from_private_storage">Copiando el archivo desde almacenamiento privado</string>
     
     <string name="oauth_check_onoff">Iniciar sesión con OAuth 2.0</string>
@@ -353,9 +344,7 @@
 	<string name="log_send_history_button">Enviar histórico</string>
 	<string name="log_send_no_mail_app">No se encontró alguna aplicación para el envío de bitácoras. Por favor instala un cliente de correo electrónico. </string>
 	<string name="log_send_mail_subject"> %1$s bitácora de aplicación Android</string>
-	<string name="log_progress_dialog_text">Cargando información &#8230;</string>
-
-	<string name="saml_authentication_wrong_pass">Contraseña incorrecta</string>
+    <string name="saml_authentication_wrong_pass">Contraseña incorrecta</string>
 	<string name="actionbar_move">Mover</string>
     <string name="actionbar_copy">Copiar</string>
 	<string name="file_list_empty_moving">No hay nada aquí. Puedes agregar una carpeta.</string>
@@ -416,7 +405,6 @@
     <string name="share_via_link_edit_permission_label">Permitir edición</string>
     <string name="share_via_link_hide_file_listing_permission_label">Ocultar listado de archivos</string>
     <string name="share_get_public_link_button">Obtener liga</string>
-    <string name="share_with_title">Compartir con &#8230;</string>
     <string name="share_with_edit_title">Compartir con %1$s</string>
 
     <string name="share_search">Buscar</string>

+ 2 - 14
src/main/res/values-es-rEC/strings.xml

@@ -60,7 +60,6 @@
     <string name="recommend_urls">%1$s ó %2$s</string>
 
     <string name="auth_check_server">Verficar el servidor</string>
-    <string name="auth_host_url">Dirección del servidor https://&#8230;</string>
     <string name="auth_username">Usuario</string>
     <string name="auth_password">Contraseña</string>
     <string name="sync_string_files">Archivos</string>
@@ -79,7 +78,6 @@
     <string name="uploader_error_message_source_file_not_found">El archivo seleccionado para cargar no fue encontrado. Por favor verifica si el archivo existe.</string>
     <string name="uploader_error_message_source_file_not_copied">No fue posible copiar el archivo a una carpeta temporal. Por favor intenta enviarlo de nuevo.</string>
     <string name="uploader_upload_files_behaviour">Opción de carga:</string>
-    <string name="uploader_upload_files_behaviour_move_to_nextcloud_folder">Mover el archivo a la carpeta de Nextcloud</string>
     <string name="uploader_upload_files_behaviour_only_upload">Mantener el archivo en la carpeta de origen</string>
     <string name="uploader_upload_files_behaviour_upload_and_delete_from_source">Borrar el archivo de la carpeta de origen</string>
     <string name="file_list_seconds_ago">hace algunos segundos</string>
@@ -115,7 +113,6 @@
     <string name="common_cancel">Cancelar</string>
     <string name="common_back">Atrás</string>
     <string name="common_save">Guardar</string>
-    <string name="common_loading">Cargando  &#8230;</string>
     <string name="common_unknown">desconocido</string>
     <string name="common_error_unknown">Error desconocido</string>
     <string name="common_pending">Pendiente</string>
@@ -125,9 +122,7 @@
     <string name="delete_account_warning">¿Borrar la cuenta %s y borrar todos los archivos localeS?\n\nEl borrado no se puede deshacer</string>
     <string name="avatar">Avatar</string>
     <string name="active_user">Usuario activo</string>
-    <string name="upload_chooser_title">Cargar desde &#8230;</string>
     <string name="uploader_info_dirname">Nombre de la carpeta</string>
-    <string name="uploader_upload_in_progress_ticker">Cargando &#8230;</string>
     <string name="uploader_upload_in_progress_content">%1$d%% Cargando %2$s</string>
     <string name="uploader_upload_succeeded_ticker">Cargado</string>
     <string name="uploader_upload_succeeded_content_single">%1$s cargado</string>
@@ -149,7 +144,6 @@
     <string name="uploads_view_upload_status_unknown_fail">Error desconocido</string>
     <string name="uploads_view_upload_status_waiting_exit_power_save_mode">Esperando a salir de modo de conservación de energía</string>
     <string name="uploads_view_later_waiting_to_upload">Esperando para cargar</string>
-    <string name="downloader_download_in_progress_ticker">Descargando &#8230;</string>
     <string name="downloader_download_in_progress_content">%1$d%% Descargando %2$s</string>
     <string name="downloader_download_succeeded_ticker">Descargado</string>
     <string name="downloader_download_succeeded_content">%1$s descargado</string>
@@ -201,9 +195,7 @@
     <string name="media_play_pause_description">Botón de reproducir o pausar</string>
     <string name="media_forward_description">Botón de avanzar rápido</string>
 
-	<string name="auth_getting_authorization">Obteniendo autorización &#8230;</string>
-	<string name="auth_trying_to_login">Intentando iniciar en sesión &#8230;</string>
-	<string name="auth_no_net_conn_title">No hay conexión de red</string>
+    <string name="auth_no_net_conn_title">No hay conexión de red</string>
 	<string name="auth_nossl_plain_ok_title">Conexión segura no disponible.</string>
 	<string name="auth_connection_established">Conexión establecida</string>
 	<string name="auth_testing_connection">Probando conexión</string>
@@ -249,7 +241,6 @@
     <string name="filename_forbidden_characters">Caracteres inválidos: / \\ &lt; &gt; : \" | ? *</string>
     <string name="wait_checking_credentials">Verificando credenciales almacenadas</string>
     <string name="filedisplay_no_file_selected">No se ha seleccionado algún archivo</string>
-    <string name="activity_chooser_title">Enviar la liga a &#8230;</string>
     <string name="wait_for_tmp_copy_from_private_storage">Copiando el archivo desde almacenamiento privado</string>
     
     <string name="oauth_check_onoff">Iniciar sesión con OAuth 2.0</string>
@@ -353,9 +344,7 @@
 	<string name="log_send_history_button">Enviar histórico</string>
 	<string name="log_send_no_mail_app">No se encontró alguna aplicación para el envío de bitácoras. Por favor instala un cliente de correo electrónico. </string>
 	<string name="log_send_mail_subject"> %1$s bitácora de aplicación Android</string>
-	<string name="log_progress_dialog_text">Cargando información &#8230;</string>
-
-	<string name="saml_authentication_wrong_pass">Contraseña incorrecta</string>
+    <string name="saml_authentication_wrong_pass">Contraseña incorrecta</string>
 	<string name="actionbar_move">Mover</string>
     <string name="actionbar_copy">Copiar</string>
 	<string name="file_list_empty_moving">No hay nada aquí. Puedes agregar una carpeta.</string>
@@ -416,7 +405,6 @@
     <string name="share_via_link_edit_permission_label">Permitir edición</string>
     <string name="share_via_link_hide_file_listing_permission_label">Ocultar listado de archivos</string>
     <string name="share_get_public_link_button">Obtener liga</string>
-    <string name="share_with_title">Compartir con &#8230;</string>
     <string name="share_with_edit_title">Compartir con %1$s</string>
 
     <string name="share_search">Buscar</string>

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно