diff --git a/app/src/main/java/com/owncloud/android/ui/activity/UserInfoActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/UserInfoActivity.java
index 9743507c85f2..557bb017dfe2 100644
--- a/app/src/main/java/com/owncloud/android/ui/activity/UserInfoActivity.java
+++ b/app/src/main/java/com/owncloud/android/ui/activity/UserInfoActivity.java
@@ -28,6 +28,7 @@
import com.bumptech.glide.request.target.Target;
import com.bumptech.glide.request.transition.Transition;
import com.nextcloud.client.account.User;
+import com.nextcloud.client.account.UserAccountManager;
import com.nextcloud.client.di.Injectable;
import com.nextcloud.client.preferences.AppPreferences;
import com.nextcloud.common.NextcloudClient;
@@ -35,6 +36,7 @@
import com.nextcloud.utils.extensions.BundleExtensionsKt;
import com.owncloud.android.R;
import com.owncloud.android.databinding.UserInfoLayoutBinding;
+import com.owncloud.android.lib.common.OwnCloudAccount;
import com.owncloud.android.lib.common.OwnCloudClientFactory;
import com.owncloud.android.lib.common.UserInfo;
import com.owncloud.android.lib.common.accounts.AccountUtils;
@@ -125,9 +127,8 @@ public void onCreate(Bundle savedInstanceState) {
viewThemeUtils.files.themeActionBar(this, actionBar);
}
- if (userInfo != null) {
- populateUserInfoUi(userInfo);
- } else {
+ populateUserInfoUi(userInfo);
+ if (userInfo == null) {
setMultiListLoadingMessage();
fetchAndSetData();
}
@@ -179,6 +180,7 @@ private void setErrorMessageForMultiList(String headline, String message, @Drawa
binding.emptyList.emptyListViewText.setText(message);
binding.emptyList.emptyListIcon.setImageResource(errorResource);
+ binding.emptyList.emptyListView.setVisibility(View.VISIBLE);
binding.emptyList.emptyListIcon.setVisibility(View.VISIBLE);
binding.emptyList.emptyListViewText.setVisibility(View.VISIBLE);
binding.userinfoList.setVisibility(View.GONE);
@@ -256,16 +258,26 @@ private void populateUserInfoUi(UserInfo userInfo) {
binding.userinfoIcon,
this);
- if (!TextUtils.isEmpty(userInfo.getDisplayName())) {
+ if (userInfo != null && !TextUtils.isEmpty(userInfo.getDisplayName())) {
binding.userinfoFullName.setText(userInfo.getDisplayName());
+ } else {
+ try {
+ OwnCloudAccount oca = user.toOwnCloudAccount();
+ binding.userinfoFullName.setText(oca.getDisplayName());
+ } catch (Exception e) {
+ Log_OC.w(TAG, "Account not found right after being read; using account name instead");
+ binding.userinfoFullName.setText(UserAccountManager.getUsername(user));
+ }
}
+ if (userInfo == null)
+ return;
+
if (TextUtils.isEmpty(userInfo.getPhone()) && TextUtils.isEmpty(userInfo.getEmail())
&& TextUtils.isEmpty(userInfo.getAddress()) && TextUtils.isEmpty(userInfo.getTwitter())
&& TextUtils.isEmpty(userInfo.getWebsite())) {
binding.userinfoList.setVisibility(View.GONE);
binding.loadingContent.setVisibility(View.GONE);
- binding.emptyList.emptyListView.setVisibility(View.VISIBLE);
setErrorMessageForMultiList(getString(R.string.userinfo_no_info_headline),
getString(R.string.userinfo_no_info_text), R.drawable.ic_user_outline);
@@ -347,10 +359,10 @@ private void fetchAndSetData() {
// show error
runOnUiThread(() -> setErrorMessageForMultiList(
getString(R.string.user_information_retrieval_error),
- result.getLogMessage(this),
+ getString(R.string.user_information_retrieval_error_message),
R.drawable.ic_list_empty_error)
);
- Log_OC.d(TAG, result.getLogMessage());
+ Log_OC.d(TAG, result.getLogMessage(this));
}
}
});
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a0f756664301..c42e00c8dcfc 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -847,6 +847,7 @@
Groups
Error retrieving user information
+ Please double check your internet connection or check server status
No activity yet