瀏覽代碼

Merge pull request #6528 from nextcloud/federatedIcon

add ROOM handling for sharees
Andy Scherzinger 4 年之前
父節點
當前提交
3a324f11e6
共有 1 個文件被更改,包括 49 次插入24 次删除
  1. 49 24
      src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java

+ 49 - 24
src/main/java/com/owncloud/android/ui/adapter/OCFileListAdapter.java

@@ -433,30 +433,53 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
                             avatar.setImageResource(R.drawable.ic_people);
                             ThemeUtils.setIconColor(avatar.getDrawable());
                         } else {
-                            if (sharee.getShareType().equals(ShareType.GROUP)) {
-                                try {
-                                    avatar.setImageDrawable(
-                                        TextDrawable.createAvatarByUserId(sharee.getUserId(), avatarRadius));
-                                } catch (Exception e) {
-                                    Log_OC.e(TAG, "Error calculating RGB value for active account icon.", e);
-                                    avatar.setImageResource(R.drawable.ic_people);
+                            switch (sharee.getShareType()) {
+                                case GROUP:
+                                    try {
+                                        avatar.setImageDrawable(TextDrawable.createAvatarByUserId(sharee.getUserId(),
+                                                                                                  avatarRadius));
+                                    } catch (Exception e) {
+                                        Log_OC.e(TAG, "Error calculating RGB value for active account icon.", e);
+                                        avatar.setImageResource(R.drawable.ic_people);
+                                        ThemeUtils.setIconColor(avatar.getDrawable());
+                                    }
+                                    break;
+
+                                case ROOM:
+                                    try {
+                                        if (!TextUtils.isEmpty(sharee.getDisplayName())) {
+                                            avatar.setImageDrawable(
+                                                TextDrawable.createNamedAvatar(sharee.getDisplayName(), avatarRadius));
+                                        } else {
+                                            avatar.setImageDrawable(
+                                                TextDrawable.createAvatarByUserId(sharee.getUserId(), avatarRadius));
+                                        }
+                                    } catch (Exception e) {
+                                        Log_OC.e(TAG, "Error calculating RGB value for active account icon.", e);
+                                        avatar.setImageResource(R.drawable.ic_people);
+                                        ThemeUtils.setIconColor(avatar.getDrawable());
+                                    }
+                                    break;
+
+                                case CIRCLE:
+                                    avatar.setImageResource(R.drawable.ic_circles);
                                     ThemeUtils.setIconColor(avatar.getDrawable());
-                                }
-                            } else if (sharee.getShareType().equals(ShareType.CIRCLE)) {
-                                avatar.setImageResource(R.drawable.ic_circles);
-                                ThemeUtils.setIconColor(avatar.getDrawable());
-                            } else if (sharee.getUserId().contains("@")) {
-                                showFederatedShareAvatar(sharee.getUserId(), avatarRadius, resources, avatar);
-                            } else {
-                                avatar.setTag(sharee);
-                                DisplayUtils.setAvatar(user,
-                                                       sharee.getUserId(),
-                                                       sharee.getDisplayName(),
-                                                       this,
-                                                       avatarRadius,
-                                                       resources,
-                                                       avatar,
-                                                       activity);
+                                    break;
+
+                                default:
+                                    if (sharee.getUserId().contains("@")) {
+                                        showFederatedShareAvatar(sharee.getUserId(), avatarRadius, resources, avatar);
+                                    } else {
+                                        avatar.setTag(sharee);
+                                        DisplayUtils.setAvatar(user,
+                                                               sharee.getUserId(),
+                                                               sharee.getDisplayName(),
+                                                               this,
+                                                               avatarRadius,
+                                                               resources,
+                                                               avatar,
+                                                               activity);
+                                    }
                             }
                         }
 
@@ -581,7 +604,9 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
             placeholder = TextDrawable.createAvatarByUserId(userId, avatarRadius);
         } catch (Exception e) {
             Log_OC.e(TAG, "Error calculating RGB value for active account icon.", e);
-            placeholder = ResourcesCompat.getDrawable(resources, R.drawable.account_circle_white, null);
+            placeholder = ThemeUtils.tintDrawable(ResourcesCompat.getDrawable(resources,
+                                                                              R.drawable.account_circle_white, null),
+                                                  R.color.black);
         }
 
         avatar.setTag(null);