Răsfoiți Sursa

Merge pull request #8001 from nextcloud/containerizedTextfields

Containerized textfield theme
Andy Scherzinger 4 ani în urmă
părinte
comite
a07a5fa8e7
93 a modificat fișierele cu 325 adăugiri și 285 ștergeri
  1. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_check.png
  2. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_check_dark_blue.png
  3. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_check_dark_white.png
  4. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_check_light_white.png
  5. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_delete.png
  6. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_delete_dark_blue.png
  7. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_delete_dark_white.png
  8. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_delete_light_white.png
  9. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_request.png
  10. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_request_dark_blue.png
  11. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_request_dark_white.png
  12. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_request_light_white.png
  13. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testNewFolderDialog.png
  14. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testNewFolderDialog_dark_blue.png
  15. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testNewFolderDialog_dark_white.png
  16. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testNewFolderDialog_light_white.png
  17. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testRenameFileDialog.png
  18. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testRenameFileDialog_dark_blue.png
  19. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testRenameFileDialog_dark_white.png
  20. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testRenameFileDialog_light_white.png
  21. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivities.png
  22. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesError.png
  23. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesError_dark_blue.png
  24. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesError_dark_white.png
  25. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesError_light_white.png
  26. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesNone.png
  27. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesNone_dark_blue.png
  28. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesNone_dark_white.png
  29. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesNone_light_white.png
  30. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivities_dark_blue.png
  31. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivities_dark_white.png
  32. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivities_light_white.png
  33. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsSharing.png
  34. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsSharing_dark_blue.png
  35. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsSharing_dark_white.png
  36. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsSharing_light_white.png
  37. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailActivitiesFragment.png
  38. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailActivitiesFragment_dark_blue.png
  39. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailActivitiesFragment_dark_white.png
  40. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailActivitiesFragment_light_white.png
  41. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailSharingFragment.png
  42. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailSharingFragment_dark_blue.png
  43. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailSharingFragment_dark_white.png
  44. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailSharingFragment_light_white.png
  45. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileAllShareTypes.png
  46. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileAllShareTypes_dark_blue.png
  47. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileAllShareTypes_dark_white.png
  48. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileAllShareTypes_light_white.png
  49. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileNone.png
  50. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileNone_dark_blue.png
  51. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileNone_dark_white.png
  52. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileNone_light_white.png
  53. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileResharingNotAllowed.png
  54. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileResharingNotAllowed_dark_blue.png
  55. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileResharingNotAllowed_dark_white.png
  56. BIN
      screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileResharingNotAllowed_light_white.png
  57. 10 10
      src/main/java/com/nextcloud/ui/SetStatusDialogFragment.kt
  58. 0 6
      src/main/java/com/owncloud/android/datastorage/DataStorageProvider.java
  59. 0 2
      src/main/java/com/owncloud/android/operations/CheckCurrentCredentialsOperation.java
  60. 0 1
      src/main/java/com/owncloud/android/ui/TextDrawable.java
  61. 1 1
      src/main/java/com/owncloud/android/ui/activity/PassCodeActivity.java
  62. 5 2
      src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java
  63. 0 1
      src/main/java/com/owncloud/android/ui/activity/RichDocumentsEditorWebView.java
  64. 0 2
      src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.java
  65. 9 12
      src/main/java/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.java
  66. 2 3
      src/main/java/com/owncloud/android/ui/dialog/NoteDialogFragment.java
  67. 6 8
      src/main/java/com/owncloud/android/ui/dialog/RenameFileDialogFragment.java
  68. 2 1
      src/main/java/com/owncloud/android/ui/dialog/SendShareDialog.java
  69. 4 0
      src/main/java/com/owncloud/android/ui/dialog/SetupEncryptionDialogFragment.java
  70. 10 12
      src/main/java/com/owncloud/android/ui/dialog/SharePasswordDialogFragment.java
  71. 23 7
      src/main/java/com/owncloud/android/ui/fragment/FileDetailActivitiesFragment.java
  72. 3 4
      src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java
  73. 0 1
      src/main/java/com/owncloud/android/ui/preview/PreviewTextStringFragment.java
  74. 38 115
      src/main/java/com/owncloud/android/utils/ThemeUtils.java
  75. 3 0
      src/main/res/layout/activity_list_item.xml
  76. 24 10
      src/main/res/layout/dialog_set_status.xml
  77. 26 16
      src/main/res/layout/edit_box_dialog.xml
  78. 27 6
      src/main/res/layout/file_details_activities_fragment.xml
  79. 10 4
      src/main/res/layout/file_details_fragment.xml
  80. 6 4
      src/main/res/layout/file_details_share_group.xml
  81. 6 4
      src/main/res/layout/file_details_share_internal_share_link.xml
  82. 1 1
      src/main/res/layout/file_details_share_link_share_item.xml
  83. 2 1
      src/main/res/layout/file_details_share_public_link_add_new_item.xml
  84. 1 1
      src/main/res/layout/file_details_share_share_item.xml
  85. 34 14
      src/main/res/layout/file_details_sharing_fragment.xml
  86. 0 1
      src/main/res/layout/note_dialog.xml
  87. 6 5
      src/main/res/layout/passcodelock.xml
  88. 25 17
      src/main/res/layout/password_dialog.xml
  89. 1 1
      src/main/res/layout/storage_path_item.xml
  90. 18 6
      src/main/res/layout/upload_file_dialog.xml
  91. 1 1
      src/main/res/layout/user_info_layout.xml
  92. 1 1
      src/main/res/values/dims.xml
  93. 20 4
      src/main/res/values/styles.xml

BIN
screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_check.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_check_dark_blue.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_check_dark_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_check_light_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_delete.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_delete_dark_blue.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_delete_dark_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_delete_light_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_request.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_request_dark_blue.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_request_dark_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.activity.PassCodeActivityIT_request_light_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testNewFolderDialog.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testNewFolderDialog_dark_blue.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testNewFolderDialog_dark_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testNewFolderDialog_light_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testRenameFileDialog.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testRenameFileDialog_dark_blue.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testRenameFileDialog_dark_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testRenameFileDialog_light_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivities.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesError.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesError_dark_blue.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesError_dark_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesError_light_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesNone.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesNone_dark_blue.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesNone_dark_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivitiesNone_light_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivities_dark_blue.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivities_dark_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsActivities_light_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsSharing.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsSharing_dark_blue.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsSharing_dark_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showDetailsSharing_light_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailActivitiesFragment.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailActivitiesFragment_dark_blue.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailActivitiesFragment_dark_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailActivitiesFragment_light_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailSharingFragment.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailSharingFragment_dark_blue.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailSharingFragment_dark_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailFragmentStaticServerIT_showFileDetailSharingFragment_light_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileAllShareTypes.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileAllShareTypes_dark_blue.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileAllShareTypes_dark_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileAllShareTypes_light_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileNone.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileNone_dark_blue.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileNone_dark_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileNone_light_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileResharingNotAllowed.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileResharingNotAllowed_dark_blue.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileResharingNotAllowed_dark_white.png


BIN
screenshots/gplay/debug/com.owncloud.android.ui.fragment.FileDetailSharingFragmentIT_listSharesFileResharingNotAllowed_light_white.png


+ 10 - 10
src/main/java/com/nextcloud/ui/SetStatusDialogFragment.kt

@@ -23,8 +23,6 @@ package com.nextcloud.ui
 import android.annotation.SuppressLint
 import android.app.Dialog
 import android.content.Context
-import android.graphics.PorterDuff
-import android.graphics.PorterDuffColorFilter
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
@@ -141,8 +139,8 @@ class SetStatusDialogFragment :
 
         currentStatus?.let {
             emoji.setText(it.icon)
-            customStatusInput.text.clear()
-            customStatusInput.setText(it.message)
+            binding.customStatusInput.text?.clear()
+            binding.customStatusInput.setText(it.message)
             visualizeStatus(it.status)
 
             if (it.clearAt > 0) {
@@ -215,9 +213,11 @@ class SetStatusDialogFragment :
 
         clearStatus.setTextColor(ThemeUtils.primaryColor(context, true))
         ThemeUtils.colorPrimaryButton(setStatus, context)
-        customStatusInput.background.colorFilter =
-            PorterDuffColorFilter(ThemeUtils.primaryAccentColor(context), PorterDuff.Mode.SRC_ATOP)
-        customStatusInput.highlightColor = ThemeUtils.primaryColor(activity)
+        ThemeUtils.colorTextInput(
+            binding.customStatusInputContainer,
+            binding.customStatusInput,
+            ThemeUtils.primaryColor(activity)
+        )
     }
 
     private fun setClearStatusAfterValue(item: Int) {
@@ -400,7 +400,7 @@ class SetStatusDialogFragment :
         }
     }
 
-    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
         return binding.root
     }
 
@@ -408,8 +408,8 @@ class SetStatusDialogFragment :
         selectedPredefinedMessageId = predefinedStatus.id
         clearAt = clearAtToUnixTime(predefinedStatus.clearAt)
         emoji.setText(predefinedStatus.icon)
-        customStatusInput.text.clear()
-        customStatusInput.text.append(predefinedStatus.message)
+        binding.customStatusInput.text?.clear()
+        binding.customStatusInput.text?.append(predefinedStatus.message)
 
         remainingClearTime.visibility = View.GONE
         clearStatusAfterSpinner.visibility = View.VISIBLE

+ 0 - 6
src/main/java/com/owncloud/android/datastorage/DataStorageProvider.java

@@ -24,12 +24,6 @@ package com.owncloud.android.datastorage;
 import android.os.Environment;
 
 import com.owncloud.android.MainApp;
-import com.owncloud.android.datastorage.providers.EnvironmentStoragePointProvider;
-import com.owncloud.android.datastorage.providers.HardcodedStoragePointProvider;
-import com.owncloud.android.datastorage.providers.IStoragePointProvider;
-import com.owncloud.android.datastorage.providers.MountCommandStoragePointProvider;
-import com.owncloud.android.datastorage.providers.SystemDefaultStoragePointProvider;
-import com.owncloud.android.datastorage.providers.VDCStoragePointProvider;
 
 import java.io.File;
 import java.util.ArrayList;

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

@@ -20,8 +20,6 @@
 
 package com.owncloud.android.operations;
 
-import android.accounts.Account;
-
 import com.nextcloud.client.account.User;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.common.OwnCloudClient;

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

@@ -33,7 +33,6 @@ import android.graphics.drawable.Drawable;
 
 import com.nextcloud.client.account.UserAccountManager;
 import com.owncloud.android.utils.BitmapUtils;
-import com.owncloud.android.utils.NextcloudServer;
 
 import java.util.Locale;
 

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

@@ -91,7 +91,7 @@ public class PassCodeActivity extends AppCompatActivity implements Injectable {
         binding = PasscodelockBinding.inflate(getLayoutInflater());
         setContentView(binding.getRoot());
 
-        int elementColor = ThemeUtils.primaryColor(this);
+        int elementColor = ThemeUtils.primaryColor(this, true);
 
         ThemeUtils.themeDialogActionButton(binding.cancel);
 

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

@@ -61,6 +61,8 @@ import android.widget.TextView;
 import android.widget.Toast;
 
 import com.google.android.material.button.MaterialButton;
+import com.google.android.material.textfield.TextInputEditText;
+import com.google.android.material.textfield.TextInputLayout;
 import com.nextcloud.client.di.Injectable;
 import com.nextcloud.client.preferences.AppPreferences;
 import com.owncloud.android.MainApp;
@@ -408,10 +410,11 @@ public class ReceiveExternalFilesActivity extends FileActivity
                 mFileCategory = CATEGORY_MAPS_URL;
             }
 
-            final EditText userInput = view.findViewById(R.id.user_input);
+            final TextInputEditText userInput = view.findViewById(R.id.user_input);
+            final TextInputLayout userInputContainer = view.findViewById(R.id.user_input_container);
             setFilename(userInput, selectPos);
-            userInput.setHighlightColor(ThemeUtils.primaryColor(getContext()));
             userInput.requestFocus();
+            ThemeUtils.colorTextInput(userInputContainer, userInput, ThemeUtils.primaryColor(getContext()));
 
             final Spinner spinner = view.findViewById(R.id.file_type);
             setupSpinner(adapter, selectPos, userInput, spinner);

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

@@ -24,7 +24,6 @@
 
 package com.owncloud.android.ui.activity;
 
-import android.annotation.SuppressLint;
 import android.content.ActivityNotFoundException;
 import android.content.Intent;
 import android.net.Uri;

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

@@ -28,7 +28,6 @@ import android.app.NotificationManager;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
-import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
@@ -83,7 +82,6 @@ import javax.inject.Inject;
 
 import androidx.annotation.NonNull;
 import androidx.appcompat.app.AlertDialog;
-import androidx.core.content.res.ResourcesCompat;
 import androidx.drawerlayout.widget.DrawerLayout;
 import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentTransaction;

+ 9 - 12
src/main/java/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.java

@@ -22,17 +22,16 @@ package com.owncloud.android.ui.dialog;
 
 import android.app.Dialog;
 import android.content.DialogInterface;
-import android.graphics.PorterDuff;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.Window;
 import android.view.WindowManager.LayoutParams;
-import android.widget.EditText;
 import android.widget.TextView;
 
 import com.owncloud.android.R;
+import com.owncloud.android.databinding.EditBoxDialogBinding;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.resources.files.FileUtils;
 import com.owncloud.android.ui.activity.ComponentsGetter;
@@ -87,23 +86,22 @@ public class CreateFolderDialogFragment
     @NonNull
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
-        int accentColor = ThemeUtils.primaryAccentColor(getContext());
+        int primaryColor = ThemeUtils.primaryColor(getActivity());
         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);
+        LayoutInflater inflater = requireActivity().getLayoutInflater();
+        EditBoxDialogBinding binding = EditBoxDialogBinding.inflate(inflater, null, false);
+        View view = binding.getRoot();
 
         // Setup layout
-        EditText inputText = v.findViewById(R.id.user_input);
-        inputText.setText("");
-        inputText.requestFocus();
-        inputText.getBackground().setColorFilter(accentColor, PorterDuff.Mode.SRC_ATOP);
-        inputText.setHighlightColor(ThemeUtils.primaryColor(getActivity()));
+        binding.userInput.setText("");
+        binding.userInput.requestFocus();
+        ThemeUtils.colorTextInput(binding.userInputContainer, binding.userInput, primaryColor);
 
         // Build the dialog
         AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
-        builder.setView(v)
+        builder.setView(view)
                 .setPositiveButton(R.string.folder_confirm_create, this)
                 .setNegativeButton(R.string.common_cancel, this)
                 .setTitle(R.string.uploader_info_dirname);
@@ -117,7 +115,6 @@ public class CreateFolderDialogFragment
         return d;
     }
 
-
     @Override
     public void onClick(DialogInterface dialog, int which) {
         if (which == AlertDialog.BUTTON_POSITIVE) {

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

@@ -88,7 +88,7 @@ public class NoteDialogFragment extends DialogFragment implements DialogInterfac
     @NonNull
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
-        int accentColor = ThemeUtils.primaryAccentColor(getContext());
+        int primaryColor = ThemeUtils.primaryColor(getContext());
 
         // Inflate the layout for the dialog
         LayoutInflater inflater = requireActivity().getLayoutInflater();
@@ -97,9 +97,8 @@ public class NoteDialogFragment extends DialogFragment implements DialogInterfac
 
         // Setup layout
         binding.noteText.setText(share.getNote());
-        binding.noteText.setHighlightColor(ThemeUtils.primaryColor(getActivity()));
         binding.noteText.requestFocus();
-        ThemeUtils.colorTextInputLayout(binding.noteContainer, accentColor);
+        ThemeUtils.colorTextInput(binding.noteContainer, binding.noteText, primaryColor);
 
         // Build the dialog
         AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity());

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

@@ -95,7 +95,6 @@ public class RenameFileDialogFragment
     @NonNull
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
-        int accentColor = ThemeUtils.primaryAccentColor(getContext());
         mTargetFile = requireArguments().getParcelable(ARG_TARGET_FILE);
 
         // Inflate the layout for the dialog
@@ -105,16 +104,15 @@ public class RenameFileDialogFragment
 
         // Setup layout
         String currentName = mTargetFile.getFileName();
-        EditText inputText = binding.userInput;
-        inputText.setHighlightColor(ThemeUtils.primaryColor(getActivity()));
-        inputText.setText(currentName);
-        ThemeUtils.themeEditText(getContext(), inputText, false);
+        binding.userInput.setText(currentName);
+        ThemeUtils.colorTextInput(binding.userInputContainer,
+                                  binding.userInput,
+                                  ThemeUtils.primaryColor(getActivity()));
         int selectionStart = 0;
         int extensionStart = mTargetFile.isFolder() ? -1 : currentName.lastIndexOf('.');
         int selectionEnd = extensionStart >= 0 ? extensionStart : currentName.length();
-        inputText.setSelection(Math.min(selectionStart, selectionEnd), Math.max(selectionStart, selectionEnd));
-        inputText.requestFocus();
-        inputText.getBackground().setColorFilter(accentColor, PorterDuff.Mode.SRC_ATOP);
+        binding.userInput.setSelection(Math.min(selectionStart, selectionEnd), Math.max(selectionStart, selectionEnd));
+        binding.userInput.requestFocus();
 
         // Build the dialog
         AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity());

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

@@ -194,7 +194,8 @@ public class SendShareDialog extends BottomSheetDialogFragment {
     }
 
     private void themeShareButtonImage(ImageView shareImageView) {
-        shareImageView.getBackground().setColorFilter(ThemeUtils.primaryColor(getContext()), PorterDuff.Mode.SRC_IN);
+        shareImageView.getBackground().setColorFilter(ThemeUtils.primaryColor(getContext(), true),
+                                                      PorterDuff.Mode.SRC_IN);
         shareImageView.getDrawable().mutate().setColorFilter(ThemeUtils.fontColor(getContext()),
                 PorterDuff.Mode.SRC_IN);
     }

+ 4 - 0
src/main/java/com/owncloud/android/ui/dialog/SetupEncryptionDialogFragment.java

@@ -402,6 +402,7 @@ public class SetupEncryptionDialogFragment extends DialogFragment {
 
     @VisibleForTesting
     public void showMnemonicInfo() {
+        int color = ThemeUtils.primaryAccentColor(getContext());
         requireDialog().setTitle(R.string.end_to_end_encryption_passphrase_title);
 
         textView.setText(R.string.end_to_end_encryption_keywords_description);
@@ -413,6 +414,8 @@ public class SetupEncryptionDialogFragment extends DialogFragment {
         positiveButton.setVisibility(View.VISIBLE);
 
         negativeButton.setVisibility(View.VISIBLE);
+        positiveButton.setTextColor(color);
+        negativeButton.setTextColor(color);
 
         keyResult = KEY_GENERATE;
     }
@@ -425,6 +428,7 @@ public class SetupEncryptionDialogFragment extends DialogFragment {
         textView.setText(R.string.end_to_end_encryption_unsuccessful);
         positiveButton.setText(R.string.end_to_end_encryption_dialog_close);
         positiveButton.setVisibility(View.VISIBLE);
+        positiveButton.setTextColor(ThemeUtils.primaryAccentColor(getContext()));
     }
 
     @VisibleForTesting

+ 10 - 12
src/main/java/com/owncloud/android/ui/dialog/SharePasswordDialogFragment.java

@@ -22,14 +22,12 @@ package com.owncloud.android.ui.dialog;
 
 import android.app.Dialog;
 import android.content.DialogInterface;
-import android.graphics.PorterDuff;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.Window;
 import android.view.WindowManager;
-import android.widget.EditText;
 
 import com.owncloud.android.R;
 import com.owncloud.android.databinding.PasswordDialogBinding;
@@ -67,10 +65,12 @@ public class SharePasswordDialogFragment extends DialogFragment implements Dialo
         super.onStart();
 
         AlertDialog alertDialog = (AlertDialog) getDialog();
-        alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(ThemeUtils.primaryAccentColor(getContext()));
-        alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(ThemeUtils.primaryAccentColor(getContext()));
-        alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL)
+        if (alertDialog != null) {
+            alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(ThemeUtils.primaryAccentColor(getContext()));
+            alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(ThemeUtils.primaryAccentColor(getContext()));
+            alertDialog.getButton(AlertDialog.BUTTON_NEUTRAL)
                 .setTextColor(getResources().getColor(R.color.highlight_textColor_Warning));
+        }
     }
 
     /**
@@ -135,13 +135,11 @@ public class SharePasswordDialogFragment extends DialogFragment implements Dialo
         View view = binding.getRoot();
 
         // Setup layout
-        EditText inputText = binding.sharePassword;
-        inputText.setHighlightColor(ThemeUtils.primaryColor(getActivity()));
-        inputText.setText("");
-        ThemeUtils.themeEditText(getContext(), inputText, false);
-        inputText.requestFocus();
-        inputText.getBackground().setColorFilter(ThemeUtils.primaryAccentColor(getContext()),
-                                                 PorterDuff.Mode.SRC_ATOP);
+        binding.sharePassword.setText("");
+        ThemeUtils.colorTextInput(binding.sharePasswordContainer,
+                                  binding.sharePassword,
+                                  ThemeUtils.primaryColor(getActivity()));
+        binding.sharePassword.requestFocus();
 
         int title;
         if (askForPassword) {

+ 23 - 7
src/main/java/com/owncloud/android/ui/fragment/FileDetailActivitiesFragment.java

@@ -24,7 +24,7 @@
 package com.owncloud.android.ui.fragment;
 
 import android.content.ContentResolver;
-import android.graphics.PorterDuff;
+import android.graphics.drawable.Drawable;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.text.Editable;
@@ -58,6 +58,7 @@ import com.owncloud.android.ui.events.CommentsEvent;
 import com.owncloud.android.ui.helpers.FileOperationsHelper;
 import com.owncloud.android.ui.interfaces.ActivityListInterface;
 import com.owncloud.android.ui.interfaces.VersionListInterface;
+import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.ThemeUtils;
 
 import org.apache.commons.httpclient.HttpStatus;
@@ -80,6 +81,7 @@ import androidx.recyclerview.widget.RecyclerView;
 
 public class FileDetailActivitiesFragment extends Fragment implements
     ActivityListInterface,
+    DisplayUtils.AvatarGenerationListener,
     VersionListInterface.View,
     Injectable {
 
@@ -170,14 +172,18 @@ public class FileDetailActivitiesFragment extends Fragment implements
             }
         };
 
-        binding.commentInputField.getBackground().setColorFilter(
-                ThemeUtils.primaryAccentColor(getContext()),
-                PorterDuff.Mode.SRC_ATOP
-        );
-
         binding.submitComment.setOnClickListener(v -> submitComment());
 
-        ThemeUtils.themeEditText(getContext(), binding.commentInputField, false);
+        ThemeUtils.colorTextInput(binding.commentInputFieldContainer,
+                                  binding.commentInputField,
+                                  ThemeUtils.primaryColor(getContext()));
+
+        DisplayUtils.setAvatar(user,
+                               this,
+                               getResources().getDimension(R.dimen.activity_icon_radius),
+                               getResources(),
+                               binding.avatar,
+                               getContext());
 
         return view;
     }
@@ -439,6 +445,16 @@ public class FileDetailActivitiesFragment extends Fragment implements
         operationsHelper.restoreFileVersion(fileVersion);
     }
 
+    @Override
+    public void avatarGenerated(Drawable avatarDrawable, Object callContext) {
+        binding.avatar.setImageDrawable(avatarDrawable);
+    }
+
+    @Override
+    public boolean shouldCallGeneratedCallback(String tag, Object callContext) {
+        return false;
+    }
+
     private static class SubmitCommentTask extends AsyncTask<Void, Void, Boolean> {
 
         private String message;

+ 3 - 4
src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java

@@ -227,11 +227,10 @@ public class FileDetailFragment extends FileFragment implements OnClickListener,
     private void setupViewPager() {
         binding.tabLayout.removeAllTabs();
 
-        binding.tabLayout.addTab(binding.tabLayout.newTab().setText(R.string.drawer_item_activities));
-        binding.tabLayout.addTab(binding.tabLayout.newTab().setText(R.string.share_dialog_title));
+        binding.tabLayout.addTab(binding.tabLayout.newTab().setText(R.string.drawer_item_activities).setIcon(R.drawable.ic_activity));
+        binding.tabLayout.addTab(binding.tabLayout.newTab().setText(R.string.share_dialog_title).setIcon(R.drawable.shared_via_users));
 
-        binding.tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
-        binding.tabLayout.setSelectedTabIndicatorColor(ThemeUtils.primaryAccentColor(getContext()));
+        ThemeUtils.colorTabLayout(getContext(), binding.tabLayout);
 
         final FileDetailTabAdapter adapter = new FileDetailTabAdapter(getFragmentManager(), getFile(), user);
         binding.pager.setAdapter(adapter);

+ 0 - 1
src/main/java/com/owncloud/android/ui/preview/PreviewTextStringFragment.java

@@ -23,7 +23,6 @@
 package com.owncloud.android.ui.preview;
 
 import android.accounts.Account;
-import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
 import android.view.LayoutInflater;

+ 38 - 115
src/main/java/com/owncloud/android/utils/ThemeUtils.java

@@ -44,23 +44,21 @@ import android.widget.ImageButton;
 import android.widget.ImageView;
 import android.widget.ProgressBar;
 import android.widget.SeekBar;
-import android.widget.TextView;
 
 import com.google.android.material.button.MaterialButton;
 import com.google.android.material.floatingactionbutton.FloatingActionButton;
 import com.google.android.material.snackbar.Snackbar;
+import com.google.android.material.tabs.TabLayout;
+import com.google.android.material.textfield.TextInputEditText;
 import com.google.android.material.textfield.TextInputLayout;
 import com.nextcloud.client.account.User;
 import com.nextcloud.client.account.UserAccountManagerImpl;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.FileDataStorageManager;
-import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.lib.resources.shares.ShareType;
 import com.owncloud.android.lib.resources.status.OCCapability;
 
-import java.lang.reflect.Field;
-
 import androidx.annotation.ColorInt;
 import androidx.annotation.DrawableRes;
 import androidx.annotation.Nullable;
@@ -82,8 +80,6 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
  */
 public final class ThemeUtils {
 
-    private static final String TAG = ThemeUtils.class.getSimpleName();
-
     private static final int INDEX_LUMINATION = 2;
     private static final double MAX_LIGHTNESS = 0.92;
     public static final double LUMINATION_THRESHOLD = 0.8;
@@ -323,7 +319,7 @@ public final class ThemeUtils {
      * For activities that do not use drawer, e.g. Settings, this can be used to correctly tint back button based on
      * theme
      *
-     * @param supportActionBar
+     * @param supportActionBar the back button's action bar
      */
     public static void tintBackButton(@Nullable ActionBar supportActionBar, Context context) {
         tintBackButton(supportActionBar, context, ThemeUtils.appBarPrimaryFontColor(context));
@@ -520,13 +516,46 @@ public final class ThemeUtils {
         colorStatusBar(fragmentActivity, primaryAppbarColor(fragmentActivity));
     }
 
+    public static void colorTabLayout(Context context, TabLayout tabLayout) {
+        int primaryColor = primaryColor(context);
+        int textColor = context.getResources().getColor(R.color.text_color);
+        tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
+        tabLayout.setSelectedTabIndicatorColor(primaryColor);
+        tabLayout.setTabTextColors(textColor, primaryColor);
+        tabLayout.setTabIconTint(new ColorStateList(
+            new int[][]{
+                new int[]{android.R.attr.state_selected},
+                new int[]{android.R.attr.state_enabled},
+                new int[]{-android.R.attr.state_enabled}
+            },
+            new int[]{
+                primaryColor,
+                textColor,
+                Color.GRAY
+            }
+        ));
+    }
+
+    /**
+     * Sets the color of the (containerized) text input TextInputLayout to {@code color} for hint text, box stroke and
+     * highlight color.
+     *
+     * @param textInputLayout   the TextInputLayout instance
+     * @param textInputEditText the TextInputEditText child element
+     * @param color             the color to be used for the hint text and box stroke
+     */
+    public static void colorTextInput(TextInputLayout textInputLayout, TextInputEditText textInputEditText, int color) {
+        textInputEditText.setHighlightColor(color);
+        colorTextInputLayout(textInputLayout, color);
+    }
+
     /**
      * Sets the color of the  TextInputLayout to {@code color} for hint text and box stroke.
      *
      * @param textInputLayout the TextInputLayout instance
      * @param color           the color to be used for the hint text and box stroke
      */
-    public static void colorTextInputLayout(TextInputLayout textInputLayout, int color) {
+    private static void colorTextInputLayout(TextInputLayout textInputLayout, int color) {
         textInputLayout.setBoxStrokeColor(color);
         textInputLayout.setDefaultHintTextColor(new ColorStateList(
             new int[][]{
@@ -581,8 +610,6 @@ public final class ThemeUtils {
     private static void setEditTextColor(Context context, EditText editText, int color) {
         editText.setTextColor(color);
         editText.setHighlightColor(context.getResources().getColor(R.color.fg_contrast));
-        setEditTextCursorColor(editText, color);
-        setTextViewHandlesColor(context, editText, color);
     }
 
     /**
@@ -595,6 +622,7 @@ public final class ThemeUtils {
         // hacky as no default way is provided
         int fontColor = appBarPrimaryFontColor(context);
         SearchView.SearchAutoComplete editText = searchView.findViewById(R.id.search_src_text);
+        editText.setTextSize(16);
         setEditTextColor(context, editText, fontColor);
         editText.setHintTextColor(appBarSecondaryFontColor(context));
 
@@ -755,111 +783,6 @@ public final class ThemeUtils {
         return tintDrawable(drawable, color);
     }
 
-    /**
-     * Lifted from SO. FindBugs surpressed because of lack of public API to alter the cursor color.
-     *
-     * @param editText TextView to be styled
-     * @param color    The desired cursor colour
-     * @see <a href="https://stackoverflow.com/a/52564925">StackOverflow url</a>
-     */
-    @SuppressFBWarnings
-    public static void setEditTextCursorColor(EditText editText, int color) {
-        try {
-            // Get the cursor resource id
-            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {//set differently in Android P (API 28)
-                Field field = TextView.class.getDeclaredField("mCursorDrawableRes");
-                field.setAccessible(true);
-                int drawableResId = field.getInt(editText);
-
-                // Get the editor
-                field = TextView.class.getDeclaredField("mEditor");
-                field.setAccessible(true);
-                Object editor = field.get(editText);
-
-                // Get the drawable and set a color filter
-                Drawable drawable = ContextCompat.getDrawable(editText.getContext(), drawableResId);
-                drawable.setColorFilter(color, PorterDuff.Mode.SRC_IN);
-
-                // Set the drawables
-                field = editor.getClass().getDeclaredField("mDrawableForCursor");
-                field.setAccessible(true);
-                field.set(editor, drawable);
-            } else {
-                Field field = TextView.class.getDeclaredField("mCursorDrawableRes");
-                field.setAccessible(true);
-                int drawableResId = field.getInt(editText);
-
-                // Get the editor
-                field = TextView.class.getDeclaredField("mEditor");
-                field.setAccessible(true);
-                Object editor = field.get(editText);
-
-                // Get the drawable and set a color filter
-                Drawable drawable = ContextCompat.getDrawable(editText.getContext(), drawableResId);
-                drawable.setColorFilter(color, PorterDuff.Mode.SRC_IN);
-                Drawable[] drawables = {drawable, drawable};
-
-                // Set the drawables
-                field = editor.getClass().getDeclaredField("mCursorDrawable");
-                field.setAccessible(true);
-                field.set(editor, drawables);
-            }
-        } catch (Exception exception) {
-            // we do not log this
-        }
-    }
-
-
-    /**
-     * Set the color of the handles when you select text in a {@link android.widget.EditText} or other view that extends
-     * {@link TextView}. FindBugs surpressed because of lack of public API to alter the {@link TextView} handles color.
-     *
-     * @param view  The {@link TextView} or a {@link View} that extends {@link TextView}.
-     * @param color The color to set for the text handles
-     * @see <a href="https://gist.github.com/jaredrummler/2317620559d10ac39b8218a1152ec9d4">External reference</a>
-     */
-    @SuppressFBWarnings
-    private static void setTextViewHandlesColor(Context context, TextView view, int color) {
-        try {
-            Field editorField = TextView.class.getDeclaredField("mEditor");
-            if (!editorField.isAccessible()) {
-                editorField.setAccessible(true);
-            }
-
-            Object editor = editorField.get(view);
-            Class<?> editorClass = editor.getClass();
-
-            String[] handleNames = {"mSelectHandleLeft", "mSelectHandleRight", "mSelectHandleCenter"};
-            String[] resNames = {"mTextSelectHandleLeftRes", "mTextSelectHandleRightRes", "mTextSelectHandleRes"};
-
-            for (int i = 0; i < handleNames.length; i++) {
-                Field handleField = editorClass.getDeclaredField(handleNames[i]);
-                if (!handleField.isAccessible()) {
-                    handleField.setAccessible(true);
-                }
-
-                Drawable handleDrawable = (Drawable) handleField.get(editor);
-
-                if (handleDrawable == null) {
-                    Field resField = TextView.class.getDeclaredField(resNames[i]);
-                    if (!resField.isAccessible()) {
-                        resField.setAccessible(true);
-                    }
-                    int resId = resField.getInt(view);
-                    handleDrawable = ContextCompat.getDrawable(context, resId);
-                }
-
-                if (handleDrawable != null) {
-                    Drawable drawable = handleDrawable.mutate();
-                    drawable.setColorFilter(color, PorterDuff.Mode.SRC_IN);
-                    handleField.set(editor, drawable);
-                }
-            }
-        } catch (Exception e) {
-            Log_OC.e(TAG, "Error setting TextView handles color", e);
-        }
-    }
-
     public static boolean isDarkModeActive(Context context) {
         int nightModeFlag = context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
 

+ 3 - 0
src/main/res/layout/activity_list_item.xml

@@ -53,6 +53,7 @@
             android:paddingTop="@dimen/standard_padding"
             android:paddingEnd="@dimen/zero"
             android:textAppearance="?android:attr/textAppearanceListItem"
+            android:textSize="@dimen/two_line_primary_text_size"
             tools:text="@string/placeholder_filename" />
 
         <TextView
@@ -63,6 +64,7 @@
             android:paddingStart="@dimen/activity_icon_layout_right_end_margin"
             android:paddingEnd="@dimen/zero"
             android:textAppearance="?android:attr/textAppearanceListItem"
+            android:textSize="@dimen/two_line_primary_text_size"
             tools:text="@string/placeholder_sentence" />
 
         <GridLayout
@@ -84,6 +86,7 @@
             android:paddingStart="@dimen/activity_icon_layout_right_end_margin"
             android:paddingEnd="@dimen/zero"
             android:textColor="?android:attr/textColorSecondary"
+            android:textSize="@dimen/two_line_primary_text_size"
             tools:text="@string/placeholder_sentence" />
 
     </LinearLayout>

+ 24 - 10
src/main/res/layout/dialog_set_status.xml

@@ -338,17 +338,19 @@
 
         <LinearLayout
             android:layout_width="match_parent"
-            android:layout_height="@dimen/activity_row_layout_height"
+            android:layout_height="wrap_content"
             android:orientation="horizontal">
 
             <com.google.android.material.card.MaterialCardView
                 android:id="@+id/emojiCard"
                 android:layout_width="@dimen/activity_row_layout_height"
                 android:layout_height="@dimen/activity_row_layout_height"
-                android:layout_gravity="center_vertical"
-                android:layout_marginEnd="@dimen/standard_half_margin"
+                android:layout_gravity="center"
+                android:layout_marginTop="@dimen/standard_eighth_margin"
+                android:layout_marginEnd="@dimen/standard_margin"
                 android:orientation="horizontal"
                 app:cardBackgroundColor="@color/grey_200"
+                app:cardCornerRadius="24dp"
                 app:cardElevation="0dp">
 
                 <com.vanniktech.emoji.EmojiEditText
@@ -359,18 +361,30 @@
                     android:cursorVisible="false"
                     android:gravity="center"
                     android:text="@string/default_emoji"
-                    android:textSize="25sp" />
+                    android:textSize="24sp" />
 
             </com.google.android.material.card.MaterialCardView>
 
-            <EditText
-                android:id="@+id/customStatusInput"
+            <com.google.android.material.textfield.TextInputLayout
+                android:id="@+id/customStatusInput_container"
                 android:layout_width="0dp"
-                android:layout_height="match_parent"
+                android:layout_height="wrap_content"
                 android:layout_weight="1"
-                android:hint="@string/whats_your_status"
-                android:importantForAutofill="no"
-                android:inputType="textAutoCorrect" />
+                android:hint="@string/whats_your_status">
+
+                <com.google.android.material.textfield.TextInputEditText
+                    android:id="@+id/customStatusInput"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:ems="10"
+                    android:importantForAutofill="no"
+                    android:inputType="textAutoCorrect"
+                    android:scrollbars="vertical">
+
+                </com.google.android.material.textfield.TextInputEditText>
+
+            </com.google.android.material.textfield.TextInputLayout>
+
         </LinearLayout>
 
         <androidx.recyclerview.widget.RecyclerView

+ 26 - 16
src/main/res/layout/edit_box_dialog.xml

@@ -1,36 +1,46 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-    ownCloud Android client application
+    Nextcloud Android client application
 
-    Copyright (C) 2012  Bartek Przybylski
-    Copyright (C) 2015 ownCloud Inc.
+    @author Andy Scherzinger
+    Copyright (C) 2021 Andy Scherzinger
 
     This program is free software: you can redistribute it and/or modify
-    it under the terms of the GNU General Public License version 2,
-    as published by the Free Software Foundation.
+    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 General Public License for more details.
+    GNU Affero General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+    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"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:gravity="clip_horizontal"
-    android:orientation="vertical"
     android:padding="@dimen/standard_padding">
 
-    <com.google.android.material.textfield.TextInputEditText
-        android:id="@+id/user_input"
+    <com.google.android.material.textfield.TextInputLayout
+        android:id="@+id/user_input_container"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:ems="10"
-        android:hint="@string/hint_name"
-        android:importantForAutofill="no"
-        android:inputType="textNoSuggestions|textCapSentences"/>
+        android:hint="@string/hint_name">
+
+        <com.google.android.material.textfield.TextInputEditText
+            android:id="@+id/user_input"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:ems="10"
+            android:gravity="top"
+            android:importantForAutofill="no"
+            android:inputType="textNoSuggestions|textCapSentences"
+            android:scrollbars="vertical">
+
+        </com.google.android.material.textfield.TextInputEditText>
+
+    </com.google.android.material.textfield.TextInputLayout>
 
 </LinearLayout>

+ 27 - 6
src/main/res/layout/file_details_activities_fragment.xml

@@ -31,14 +31,35 @@
         android:layout_marginEnd="@dimen/zero"
         android:orientation="horizontal">
 
-        <com.google.android.material.textfield.TextInputEditText
-            android:id="@+id/commentInputField"
+        <ImageView
+            android:id="@+id/avatar"
+            android:layout_width="@dimen/activity_icon_width"
+            android:layout_height="@dimen/activity_icon_height"
+            android:layout_gravity="center_vertical"
+            android:layout_marginStart="@dimen/zero"
+            android:layout_marginTop="10dp"
+            android:layout_marginEnd="@dimen/standard_half_margin"
+            android:contentDescription="@null"
+            tools:src="@drawable/ic_user" />
+
+        <com.google.android.material.textfield.TextInputLayout
+            android:id="@+id/commentInputField_container"
             android:layout_width="0dp"
-            android:layout_height="@dimen/minimum_size_for_touchable_area"
+            android:layout_height="wrap_content"
             android:layout_weight="1"
-            android:hint="@string/new_comment"
-            android:layout_marginTop="@dimen/standard_half_margin"
-            android:textColorHint="@color/secondary_text_color" />
+            android:paddingTop="@dimen/standard_padding"
+            android:hint="@string/new_comment">
+
+            <com.google.android.material.textfield.TextInputEditText
+                android:id="@+id/commentInputField"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:inputType="textNoSuggestions|textCapSentences"
+                android:scrollbars="vertical">
+
+            </com.google.android.material.textfield.TextInputEditText>
+
+        </com.google.android.material.textfield.TextInputLayout>
 
         <com.google.android.material.button.MaterialButton
             android:id="@+id/submitComment"

+ 10 - 4
src/main/res/layout/file_details_fragment.xml

@@ -68,7 +68,8 @@
                     android:id="@+id/size"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:textSize="16sp"
+                    android:textSize="@dimen/two_line_primary_text_size"
+                    android:textColor="@color/list_item_lastmod_and_filesize_text"
                     tools:text="@string/placeholder_fileSize" />
 
                 <TextView
@@ -80,14 +81,15 @@
                     android:paddingEnd="@dimen/standard_quarter_padding"
                     android:text="@string/info_separator"
                     android:textColor="@color/list_item_lastmod_and_filesize_text"
-                    android:textSize="@dimen/two_line_secondary_text_size" />
+                    android:textSize="@dimen/two_line_primary_text_size" />
 
                 <TextView
                     android:id="@+id/last_modification_timestamp"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:gravity="end"
-                    android:textSize="16sp"
+                    android:textSize="@dimen/two_line_primary_text_size"
+                    android:textColor="@color/list_item_lastmod_and_filesize_text"
                     tools:text="@string/placeholder_media_time" />
 
                 <ImageView
@@ -112,6 +114,7 @@
         <com.google.android.material.button.MaterialButton
             android:id="@+id/overflow_menu"
             style="@style/Widget.AppTheme.Button.IconButton"
+            android:layout_marginTop="@dimen/standard_quarter_margin"
             android:layout_width="@dimen/minimum_size_for_touchable_area"
             android:layout_height="@dimen/minimum_size_for_touchable_area"
             android:contentDescription="@string/overflow_menu"
@@ -140,6 +143,8 @@
                 android:id="@+id/progressText"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
+                android:textSize="@dimen/two_line_primary_text_size"
+                android:textColor="@color/list_item_lastmod_and_filesize_text"
                 android:text="@string/downloader_download_in_progress_ticker" />
 
             <ProgressBar
@@ -178,7 +183,8 @@
         app:tabGravity="center"
         app:tabMode="fixed"
         app:tabTextAppearance="@style/AppTabTextAppearance"
-        app:tabTextColor="@color/text_color" />
+        app:tabTextColor="@color/text_color"
+        app:tabInlineLabel="true" />
 
     <androidx.viewpager.widget.ViewPager
         android:id="@+id/pager"

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

@@ -44,22 +44,24 @@
         android:src="@drawable/ic_external" />
 
     <LinearLayout
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginTop="@dimen/standard_half_margin"
-        android:layout_width="match_parent"
         android:orientation="vertical">
 
         <TextView
             android:id="@+id/shareInternalLink"
-            android:layout_height="wrap_content"
             android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
             android:text="@string/share_internal_link"
-            android:textColor="@color/text_color" />
+            android:textColor="@color/text_color"
+            android:textSize="@dimen/two_line_primary_text_size" />
 
         <TextView
             android:id="@+id/shareInternalLinkText"
-            android:layout_height="wrap_content"
             android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="@dimen/two_line_primary_text_size"
             tools:text="@string/share_internal_link_to_folder_text" />
     </LinearLayout>
 

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

@@ -45,22 +45,24 @@
         android:src="@drawable/ic_external" />
 
     <LinearLayout
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginTop="@dimen/standard_half_margin"
-        android:layout_width="match_parent"
         android:orientation="vertical">
 
         <TextView
             android:id="@+id/shareInternalLink"
-            android:layout_height="wrap_content"
             android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
             android:text="@string/share_internal_link"
-            android:textColor="@color/text_color" />
+            android:textColor="@color/text_color"
+            android:textSize="@dimen/two_line_primary_text_size" />
 
         <TextView
             android:id="@+id/shareInternalLinkText"
-            android:layout_height="wrap_content"
             android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="@dimen/two_line_primary_text_size"
             tools:text="@string/share_internal_link_to_folder_text" />
     </LinearLayout>
 

+ 1 - 1
src/main/res/layout/file_details_share_link_share_item.xml

@@ -50,7 +50,7 @@
         android:singleLine="true"
         android:layout_weight="1"
         android:gravity="center_vertical"
-        android:textSize="@dimen/file_details_username_text_size"
+        android:textSize="@dimen/two_line_primary_text_size"
         android:text="@string/share_via_link_section_title" />
 
     <ImageView

+ 2 - 1
src/main/res/layout/file_details_share_public_link_add_new_item.xml

@@ -44,7 +44,8 @@
         android:layout_height="wrap_content"
         android:layout_gravity="center_vertical"
         android:layout_weight="1"
-        android:text="@string/share_via_link_section_title" />
+        android:text="@string/share_via_link_section_title"
+        android:textSize="@dimen/two_line_primary_text_size" />
 
     <ImageView
         android:id="@+id/add_new_public_share_link"

+ 1 - 1
src/main/res/layout/file_details_share_share_item.xml

@@ -49,7 +49,7 @@
         android:singleLine="true"
         android:layout_weight="1"
         android:gravity="center_vertical"
-        android:textSize="@dimen/file_details_username_text_size"
+        android:textSize="@dimen/two_line_primary_text_size"
         android:text="@string/username" />
 
     <ImageView

+ 34 - 14
src/main/res/layout/file_details_sharing_fragment.xml

@@ -16,22 +16,42 @@
   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 android:id="@+id/shareContainer"
-    android:layout_height="match_parent"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/shareContainer"
     android:layout_width="match_parent"
+    android:layout_height="match_parent"
     android:orientation="vertical"
-    android:paddingTop="@dimen/standard_eight_padding"
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
-
-    <androidx.appcompat.widget.SearchView
-        style="@style/ownCloud.SearchView"
-        android:hint="@string/share_search"
-        android:id="@+id/searchView"
+    android:paddingTop="@dimen/standard_eight_padding">
+
+    <LinearLayout
+        android:id="@+id/search_container"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginEnd="@dimen/standard_margin"
-        android:layout_marginStart="@dimen/standard_quarter_margin"
-        android:layout_width="match_parent" />
+        android:paddingStart="@dimen/standard_padding"
+        android:paddingEnd="@dimen/zero">
+
+        <ImageView
+            android:id="@+id/searchViewIcon"
+            android:layout_height="@dimen/user_icon_size"
+            android:layout_width="@dimen/user_icon_size"
+            android:padding="@dimen/standard_half_padding"
+            android:contentDescription="@string/avatar"
+            android:layout_gravity="center_vertical"
+            android:src="@drawable/ic_search_grey" />
+
+        <androidx.appcompat.widget.SearchView
+            android:id="@+id/searchView"
+            style="@style/ownCloud.SearchView"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/zero"
+            android:layout_marginEnd="@dimen/standard_quarter_margin"
+            android:hint="@string/share_search"
+            app:searchIcon="@null" />
+
+    </LinearLayout>
 
     <LinearLayout
         android:id="@+id/shared_with_you_container"
@@ -63,7 +83,7 @@
                 android:layout_height="wrap_content"
                 android:layout_width="match_parent"
                 android:text="@string/shared_with_you_by"
-                android:textSize="16sp" />
+                android:textSize="@dimen/two_line_primary_text_size" />
 
             <LinearLayout
                 android:id="@+id/shared_with_you_note_container"

+ 0 - 1
src/main/res/layout/note_dialog.xml

@@ -30,7 +30,6 @@
         android:id="@+id/note_container"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        style="@style/TextInputLayout"
         android:hint="@string/hint_note">
 
         <com.google.android.material.textfield.TextInputEditText

+ 6 - 5
src/main/res/layout/passcodelock.xml

@@ -18,6 +18,7 @@
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:gravity="center_horizontal">
@@ -71,12 +72,12 @@
                     <com.google.android.material.textfield.TextInputEditText
                         android:id="@+id/txt0"
                         style="@style/PassCodeStyle"
-                        android:cursorVisible="true"
+                        android:cursorVisible="false"
                         android:focusable="true"
                         android:hint="@string/hidden_character"
                         android:imeOptions="flagNoExtractUi"
                         android:importantForAutofill="no"
-                        android:textCursorDrawable="@color/primary">
+                        tools:text="123">
 
                         <requestFocus />
                     </com.google.android.material.textfield.TextInputEditText>
@@ -84,7 +85,7 @@
                     <com.google.android.material.textfield.TextInputEditText
                         android:id="@+id/txt1"
                         style="@style/PassCodeStyle"
-                        android:cursorVisible="true"
+                        android:cursorVisible="false"
                         android:hint="@string/hidden_character"
                         android:imeOptions="flagNoExtractUi"
                         android:importantForAutofill="no" />
@@ -92,7 +93,7 @@
                     <com.google.android.material.textfield.TextInputEditText
                         android:id="@+id/txt2"
                         style="@style/PassCodeStyle"
-                        android:cursorVisible="true"
+                        android:cursorVisible="false"
                         android:hint="@string/hidden_character"
                         android:imeOptions="flagNoExtractUi"
                         android:importantForAutofill="no" />
@@ -100,7 +101,7 @@
                     <com.google.android.material.textfield.TextInputEditText
                         android:id="@+id/txt3"
                         style="@style/PassCodeStyle"
-                        android:cursorVisible="true"
+                        android:cursorVisible="false"
                         android:hint="@string/hidden_character"
                         android:imeOptions="flagNoExtractUi"
                         android:importantForAutofill="no" />

+ 25 - 17
src/main/res/layout/password_dialog.xml

@@ -1,37 +1,45 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-    ownCloud Android client application
+    Nextcloud Android client application
 
-    Copyright (C) 2015 ownCloud Inc.
+    @author Andy Scherzinger
+    Copyright (C) 2021 Andy Scherzinger
 
     This program is free software: you can redistribute it and/or modify
-    it under the terms of the GNU General Public License version 2,
-    as published by the Free Software Foundation.
+    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 General Public License for more details.
+    GNU Affero General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+    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"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:gravity="clip_horizontal"
-    android:orientation="vertical"
     android:padding="@dimen/standard_padding">
 
-    <com.google.android.material.textfield.TextInputEditText
-        android:id="@+id/share_password"
+    <com.google.android.material.textfield.TextInputLayout
+        android:id="@+id/share_password_container"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:ems="10"
-        android:hint="@string/hint_password"
-        android:inputType="textPassword"
-        android:autofillHints="password"
-        android:textColorHint="@color/bg_fallback_highlight"></com.google.android.material.textfield.TextInputEditText>
+        android:hint="@string/hint_password">
+
+        <com.google.android.material.textfield.TextInputEditText
+            android:id="@+id/share_password"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:autofillHints="password"
+            android:ems="10"
+            android:gravity="top"
+            android:inputType="textPassword">
+
+        </com.google.android.material.textfield.TextInputEditText>
+
+    </com.google.android.material.textfield.TextInputLayout>
 
 </LinearLayout>

+ 1 - 1
src/main/res/layout/storage_path_item.xml

@@ -50,6 +50,6 @@
         android:gravity="center_vertical"
         android:singleLine="true"
         android:textColor="@color/text_color"
-        android:textSize="@dimen/file_details_username_text_size"
+        android:textSize="@dimen/two_line_primary_text_size"
         tools:text="DCIM" />
 </LinearLayout>

+ 18 - 6
src/main/res/layout/upload_file_dialog.xml

@@ -33,19 +33,31 @@
         android:text="@string/upload_file_dialog_filename"
         tools:text="@string/upload_file_dialog_filename"/>
 
-    <com.google.android.material.textfield.TextInputEditText
-        android:id="@+id/user_input"
+    <com.google.android.material.textfield.TextInputLayout
+        android:id="@+id/user_input_container"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:ems="10"
-        android:hint="@string/hint_name"
-        android:importantForAutofill="no"
-        android:inputType="textNoSuggestions|textCapSentences"/>
+        android:hint="@string/hint_name">
+
+        <com.google.android.material.textfield.TextInputEditText
+            android:id="@+id/user_input"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:ems="10"
+            android:gravity="top"
+            android:importantForAutofill="no"
+            android:inputType="textNoSuggestions|textCapSentences"
+            android:scrollbars="vertical">
+
+        </com.google.android.material.textfield.TextInputEditText>
+
+    </com.google.android.material.textfield.TextInputLayout>
 
     <TextView
         android:id="@+id/label_file_type"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/standard_margin"
         android:text="@string/upload_file_dialog_filetype"
         tools:text="@string/upload_file_dialog_filetype"/>
 

+ 1 - 1
src/main/res/layout/user_info_layout.xml

@@ -68,7 +68,7 @@
             android:shadowDy="0"
             android:shadowRadius="2"
             android:textColor="@color/white"
-            android:textSize="@dimen/file_details_username_text_size"
+            android:textSize="@dimen/two_line_primary_text_size"
             android:textStyle="bold"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toEndOf="@id/userinfo_icon"

+ 1 - 1
src/main/res/values/dims.xml

@@ -87,6 +87,7 @@
     <dimen name="restore_icon_layout_right_end_margin">24dp</dimen>
     <dimen name="activity_icon_width">32dp</dimen>
     <dimen name="activity_icon_height">32dp</dimen>
+    <dimen name="activity_icon_radius">16dp</dimen>
     <dimen name="activity_icon_layout_right_end_margin">24dp</dimen>
     <dimen name="activity_list_item_grid_layout_left_start_margin">-3dp</dimen>
     <dimen name="activity_list_item_title_header_text_size">16sp</dimen>
@@ -101,7 +102,6 @@
     <dimen name="contactlist_item_icon_layout_height">40dp</dimen>
     <dimen name="empty_list_icon_layout_width">72dp</dimen>
     <dimen name="empty_list_icon_layout_height">72dp</dimen>
-    <dimen name="file_details_username_text_size">16sp</dimen>
     <dimen name="grid_image_shared_icon_layout_top_margin">24dp</dimen>
     <dimen name="grid_image_local_file_indicator_layout_width">16dp</dimen>
     <dimen name="grid_image_local_file_indicator_layout_height">16dp</dimen>

+ 20 - 4
src/main/res/values/styles.xml

@@ -38,6 +38,7 @@
         <item name="android:actionModeBackground">@color/action_mode_background</item>
         <item name="android:datePickerDialogTheme">@style/FallbackDatePickerDialogTheme</item>
         <item name="android:navigationBarColor">@color/bg_default</item>
+        <item name="textInputStyle">@style/Widget.App.TextInputLayout</item>
     </style>
 
     <style name="Theme.ownCloud" parent="BaseTheme.ownCloud" />
@@ -54,10 +55,23 @@
         <item name="android:actionModeBackground">@color/action_mode_background</item>
         <item name="android:datePickerDialogTheme">@style/FallbackDatePickerDialogTheme</item>
         <item name="android:navigationBarColor">@color/bg_default</item>
+        <item name="textInputStyle">@style/Widget.App.TextInputLayout</item>
     </style>
 
     <style name="FallbackThemingTheme" parent="FallbackThemingThemeBase" />
 
+    <style name="Widget.App.TextInputLayout" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
+        <item name="materialThemeOverlay">@style/ThemeOverlay.App.TextInputLayout</item>
+        <item name="hintTextColor">?attr/colorOnSurface</item>
+    </style>
+
+    <style name="ThemeOverlay.App.TextInputLayout" parent="ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox">
+        <item name="colorPrimary">@color/text_color</item>
+        <item name="colorOnSurface">@color/text_color</item>
+        <item name="colorError">@color/hwSecurityRed</item>
+        <item name="editTextStyle">@style/Widget.MaterialComponents.TextInputEditText.OutlinedBox</item>
+    </style>
+
 	<style name="FallbackDatePickerDialogTheme" parent="Theme.MaterialComponents.DayNight.Dialog.Alert">
         <item name="colorPrimary">@color/bg_default</item>
         <item name="android:textAllCaps">false</item>
@@ -80,7 +94,7 @@
         <item name="windowNoTitle">false</item>
         <item name="android:windowBackground">@color/bg_default</item>
         <item name="android:textAllCaps">false</item>
-
+        <item name="textInputStyle">@style/Widget.App.TextInputLayout</item>
         <item name="android:buttonBarButtonStyle">@style/FallbackTheming.Dialog.ButtonStyle</item>
 	</style>
 
@@ -103,6 +117,7 @@
         <item name="windowActionBar">false</item>
         <item name="windowActionModeOverlay">true</item>
         <item name="windowNoTitle">true</item>
+        <item name="textInputStyle">@style/Widget.App.TextInputLayout</item>
     </style>
 
     <style name="Theme.ownCloud.ToolbarBase" parent="BaseTheme.ownCloud.Toolbar">
@@ -138,11 +153,13 @@
 		<item name="searchViewStyle">@style/ownCloud.SearchView</item>
         <item name="android:textAllCaps">false</item>
         <item name="android:windowBackground">@color/bg_default</item>
+        <item name="textInputStyle">@style/Widget.App.TextInputLayout</item>
     </style>
 
 	<style name="ownCloud.Dialog" parent="Theme.MaterialComponents.DayNight.Dialog">
 		<item name="searchViewStyle">@style/ownCloud.SearchView</item>
         <item name="android:textAllCaps">false</item>
+        <item name="textInputStyle">@style/Widget.App.TextInputLayout</item>
 	</style>
 
 	<style name="ProgressDialogTheme" parent="ownCloud.Dialog">
@@ -273,6 +290,7 @@
 		<item name="colorAccent">@color/color_accent</item>
         <item name="android:windowBackground">@color/bg_default</item>
         <item name="android:textAllCaps">false</item>
+        <item name="textInputStyle">@style/Widget.App.TextInputLayout</item>
     </style>
 
 	<style name="Theme.ownCloud.Dialog.NoTitle" parent="@style/Theme.ownCloud.Dialog">
@@ -298,6 +316,7 @@
 		<item name="android:maxLength">1</item>
 		<item name="android:password">true</item>
 		<item name="android:maxLines">1</item>
+        <item name="colorPrimary">@color/text_color</item>
     </style>
 
     <style name="Theme.ownCloud.NoActionBar">
@@ -328,9 +347,6 @@
         <item name="editTextStyle">@style/Widget.MaterialComponents.TextInputEditText.OutlinedBox</item>
     </style>
 
-	<style name="TextInputLayout" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
-    </style>
-
     <style name="TextInputLayoutLogin" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
         <item name="boxStrokeColor">@color/white</item>
         <item name="boxStrokeErrorColor">@color/white</item>