فهرست منبع

Previously TestActivity overwrote Capabilities on start
if there is no account passed to ThemeUtils when fetching primary Color, FileDataStorageManager is created, there we need application context, normal context is not enough for testing

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>

tobiasKaminsky 4 سال پیش
والد
کامیت
6a3f3051c4

+ 6 - 3
src/debug/java/com/nextcloud/client/TestActivity.kt

@@ -104,9 +104,12 @@ class TestActivity :
         if (!this::storage.isInitialized) {
             storage = FileDataStorageManager(account, contentResolver)
 
-            val ocCapability = OCCapability()
-            ocCapability.versionMayor = OwnCloudVersion.nextcloud_20.majorVersionNumber
-            storage.saveCapabilities(ocCapability)
+
+            if (!storage.capabilityExistsForAccount(account.name)) {
+                val ocCapability = OCCapability()
+                ocCapability.versionMayor = OwnCloudVersion.nextcloud_20.majorVersionNumber
+                storage.saveCapabilities(ocCapability)
+            }
         }
 
         return storage

+ 9 - 0
src/main/java/com/owncloud/android/datamodel/FileDataStorageManager.java

@@ -2126,6 +2126,15 @@ public class FileDataStorageManager {
         return capability;
     }
 
+    public boolean capabilityExistsForAccount(String accountName) {
+        Cursor cursor = getCapabilityCursorForAccount(accountName);
+
+        boolean exists = cursor.moveToFirst();
+        cursor.close();
+
+        return exists;
+    }
+
     private OCCapability createCapabilityInstance(Cursor cursor) {
         OCCapability capability = null;
         if (cursor != null) {

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

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

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

@@ -232,7 +232,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener,
         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));
 
-        ThemeLayoutUtils.colorTabLayout(getContext(), binding.tabLayout);
+        ThemeLayoutUtils.colorTabLayout(getContext().getApplicationContext(), binding.tabLayout);
 
         final FileDetailTabAdapter adapter = new FileDetailTabAdapter(getFragmentManager(), getFile(), user);
         binding.pager.setAdapter(adapter);