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