Add some null checks and formatting.
This commit is contained in:
parent
f501f68f98
commit
644f2ddff8
@ -140,7 +140,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||||||
final ActionBar actionBar = fragmentActivity.getSupportActionBar();
|
final ActionBar actionBar = fragmentActivity.getSupportActionBar();
|
||||||
if (actionBar != null && !TextUtils.isEmpty(username)) {
|
if (actionBar != null && !TextUtils.isEmpty(username)) {
|
||||||
final String finalUsername = username.startsWith("@") ? username.substring(1)
|
final String finalUsername = username.startsWith("@") ? username.substring(1)
|
||||||
: username;
|
: username;
|
||||||
actionBar.setTitle(finalUsername);
|
actionBar.setTitle(finalUsername);
|
||||||
actionBar.setSubtitle(null);
|
actionBar.setSubtitle(null);
|
||||||
}
|
}
|
||||||
@ -765,12 +765,12 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||||||
final long followingCount = profileModel.getFollowingCount();
|
final long followingCount = profileModel.getFollowingCount();
|
||||||
|
|
||||||
final String postCount = String.valueOf(profileModel.getMediaCount());
|
final String postCount = String.valueOf(profileModel.getMediaCount());
|
||||||
|
|
||||||
SpannableStringBuilder span = new SpannableStringBuilder(getResources().getQuantityString(R.plurals.main_posts_count,
|
SpannableStringBuilder span = new SpannableStringBuilder(getResources().getQuantityString(
|
||||||
profileModel.getMediaCount() > 2000000000L
|
R.plurals.main_posts_count,
|
||||||
? 2000000000
|
profileModel.getMediaCount() > 2000000000L ? 2000000000 : (int) profileModel.getMediaCount(),
|
||||||
: (int) profileModel.getMediaCount(),
|
postCount)
|
||||||
postCount));
|
);
|
||||||
span.setSpan(new RelativeSizeSpan(1.2f), 0, postCount.length(), 0);
|
span.setSpan(new RelativeSizeSpan(1.2f), 0, postCount.length(), 0);
|
||||||
span.setSpan(new StyleSpan(Typeface.BOLD), 0, postCount.length(), 0);
|
span.setSpan(new StyleSpan(Typeface.BOLD), 0, postCount.length(), 0);
|
||||||
profileDetailsBinding.mainPostCount.setText(span);
|
profileDetailsBinding.mainPostCount.setText(span);
|
||||||
@ -778,9 +778,11 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||||||
|
|
||||||
final String followersCountStr = String.valueOf(followersCount);
|
final String followersCountStr = String.valueOf(followersCount);
|
||||||
final int followersCountStrLen = followersCountStr.length();
|
final int followersCountStrLen = followersCountStr.length();
|
||||||
span = new SpannableStringBuilder(getResources().getQuantityString(R.plurals.main_posts_followers,
|
span = new SpannableStringBuilder(getResources().getQuantityString(
|
||||||
|
R.plurals.main_posts_followers,
|
||||||
followersCount > 2000000000L ? 2000000000 : (int) followersCount,
|
followersCount > 2000000000L ? 2000000000 : (int) followersCount,
|
||||||
followersCountStr));
|
followersCountStr)
|
||||||
|
);
|
||||||
span.setSpan(new RelativeSizeSpan(1.2f), 0, followersCountStrLen, 0);
|
span.setSpan(new RelativeSizeSpan(1.2f), 0, followersCountStrLen, 0);
|
||||||
span.setSpan(new StyleSpan(Typeface.BOLD), 0, followersCountStrLen, 0);
|
span.setSpan(new StyleSpan(Typeface.BOLD), 0, followersCountStrLen, 0);
|
||||||
profileDetailsBinding.mainFollowers.setText(span);
|
profileDetailsBinding.mainFollowers.setText(span);
|
||||||
@ -788,15 +790,14 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||||||
|
|
||||||
final String followingCountStr = String.valueOf(followingCount);
|
final String followingCountStr = String.valueOf(followingCount);
|
||||||
final int followingCountStrLen = followingCountStr.length();
|
final int followingCountStrLen = followingCountStr.length();
|
||||||
span = new SpannableStringBuilder(getString(R.string.main_posts_following,
|
span = new SpannableStringBuilder(getString(R.string.main_posts_following, followingCountStr));
|
||||||
followingCountStr));
|
|
||||||
span.setSpan(new RelativeSizeSpan(1.2f), 0, followingCountStrLen, 0);
|
span.setSpan(new RelativeSizeSpan(1.2f), 0, followingCountStrLen, 0);
|
||||||
span.setSpan(new StyleSpan(Typeface.BOLD), 0, followingCountStrLen, 0);
|
span.setSpan(new StyleSpan(Typeface.BOLD), 0, followingCountStrLen, 0);
|
||||||
profileDetailsBinding.mainFollowing.setText(span);
|
profileDetailsBinding.mainFollowing.setText(span);
|
||||||
profileDetailsBinding.mainFollowing.setVisibility(View.VISIBLE);
|
profileDetailsBinding.mainFollowing.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
profileDetailsBinding.mainFullName.setText(TextUtils.isEmpty(profileModel.getFullName()) ? profileModel.getUsername()
|
profileDetailsBinding.mainFullName.setText(TextUtils.isEmpty(profileModel.getFullName()) ? profileModel.getUsername()
|
||||||
: profileModel.getFullName());
|
: profileModel.getFullName());
|
||||||
|
|
||||||
final String biography = profileModel.getBiography();
|
final String biography = profileModel.getBiography();
|
||||||
if (TextUtils.isEmpty(biography)) {
|
if (TextUtils.isEmpty(biography)) {
|
||||||
@ -815,9 +816,8 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||||||
final String originalText = autoLinkItem.getOriginalText().trim();
|
final String originalText = autoLinkItem.getOriginalText().trim();
|
||||||
navigateToProfile(originalText);
|
navigateToProfile(originalText);
|
||||||
});
|
});
|
||||||
profileDetailsBinding.mainBiography.addOnEmailClickListener(autoLinkItem -> Utils.openEmailAddress(getContext(),
|
profileDetailsBinding.mainBiography.addOnEmailClickListener(autoLinkItem -> Utils.openEmailAddress(
|
||||||
autoLinkItem.getOriginalText()
|
getContext(), autoLinkItem.getOriginalText().trim()));
|
||||||
.trim()));
|
|
||||||
profileDetailsBinding.mainBiography
|
profileDetailsBinding.mainBiography
|
||||||
.addOnURLClickListener(autoLinkItem -> Utils.openURL(getContext(), autoLinkItem.getOriginalText().trim()));
|
.addOnURLClickListener(autoLinkItem -> Utils.openURL(getContext(), autoLinkItem.getOriginalText().trim()));
|
||||||
profileDetailsBinding.mainBiography.setOnLongClickListener(v -> {
|
profileDetailsBinding.mainBiography.setOnLongClickListener(v -> {
|
||||||
@ -899,6 +899,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
final MotionScene.Transition transition = root.getTransition(R.id.transition);
|
||||||
if (!isReallyPrivate()) {
|
if (!isReallyPrivate()) {
|
||||||
if (isLoggedIn) {
|
if (isLoggedIn) {
|
||||||
profileDetailsBinding.mainFollowing.setClickable(true);
|
profileDetailsBinding.mainFollowing.setClickable(true);
|
||||||
@ -924,13 +925,13 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||||||
binding.privatePage2.setVisibility(View.VISIBLE);
|
binding.privatePage2.setVisibility(View.VISIBLE);
|
||||||
binding.postsRecyclerView.setVisibility(View.GONE);
|
binding.postsRecyclerView.setVisibility(View.GONE);
|
||||||
binding.swipeRefreshLayout.setRefreshing(false);
|
binding.swipeRefreshLayout.setRefreshing(false);
|
||||||
root.getTransition(R.id.transition).setEnable(false);
|
if (transition != null) {
|
||||||
|
transition.setEnable(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if (profileModel.getMediaCount() == 0 && transition != null) {
|
||||||
if (profileModel.getMediaCount() == 0) {
|
transition.setEnable(false);
|
||||||
root.getTransition(R.id.transition).setEnable(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupButtons(final long profileId) {
|
private void setupButtons(final long profileId) {
|
||||||
@ -1037,21 +1038,21 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
storiesService.fetchHighlights(profileId,
|
storiesService.fetchHighlights(profileId,
|
||||||
new ServiceCallback<List<HighlightModel>>() {
|
new ServiceCallback<List<HighlightModel>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(final List<HighlightModel> result) {
|
public void onSuccess(final List<HighlightModel> result) {
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
profileDetailsBinding.highlightsList.setVisibility(View.VISIBLE);
|
profileDetailsBinding.highlightsList.setVisibility(View.VISIBLE);
|
||||||
highlightsViewModel.getList().postValue(result);
|
highlightsViewModel.getList().postValue(result);
|
||||||
} else profileDetailsBinding.highlightsList.setVisibility(View.GONE);
|
} else profileDetailsBinding.highlightsList.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(final Throwable t) {
|
public void onFailure(final Throwable t) {
|
||||||
profileDetailsBinding.highlightsList.setVisibility(View.GONE);
|
profileDetailsBinding.highlightsList.setVisibility(View.GONE);
|
||||||
Log.e(TAG, "Error", t);
|
Log.e(TAG, "Error", t);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupCommonListeners() {
|
private void setupCommonListeners() {
|
||||||
@ -1116,14 +1117,14 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||||||
});
|
});
|
||||||
profileDetailsBinding.btnLiked.setOnClickListener(v -> {
|
profileDetailsBinding.btnLiked.setOnClickListener(v -> {
|
||||||
final NavDirections action = ProfileFragmentDirections.actionProfileFragmentToSavedViewerFragment(profileModel.getUsername(),
|
final NavDirections action = ProfileFragmentDirections.actionProfileFragmentToSavedViewerFragment(profileModel.getUsername(),
|
||||||
profileModel.getPk(),
|
profileModel.getPk(),
|
||||||
PostItemType.LIKED);
|
PostItemType.LIKED);
|
||||||
NavHostFragment.findNavController(this).navigate(action);
|
NavHostFragment.findNavController(this).navigate(action);
|
||||||
});
|
});
|
||||||
profileDetailsBinding.btnTagged.setOnClickListener(v -> {
|
profileDetailsBinding.btnTagged.setOnClickListener(v -> {
|
||||||
final NavDirections action = ProfileFragmentDirections.actionProfileFragmentToSavedViewerFragment(profileModel.getUsername(),
|
final NavDirections action = ProfileFragmentDirections.actionProfileFragmentToSavedViewerFragment(profileModel.getUsername(),
|
||||||
profileModel.getPk(),
|
profileModel.getPk(),
|
||||||
PostItemType.TAGGED);
|
PostItemType.TAGGED);
|
||||||
NavHostFragment.findNavController(this).navigate(action);
|
NavHostFragment.findNavController(this).navigate(action);
|
||||||
});
|
});
|
||||||
if (!disableDm) {
|
if (!disableDm) {
|
||||||
@ -1162,7 +1163,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||||||
// show stories
|
// show stories
|
||||||
final NavDirections action = ProfileFragmentDirections
|
final NavDirections action = ProfileFragmentDirections
|
||||||
.actionProfileFragmentToStoryViewerFragment(StoryViewerOptions.forUser(profileModel.getPk(),
|
.actionProfileFragmentToStoryViewerFragment(StoryViewerOptions.forUser(profileModel.getPk(),
|
||||||
profileModel.getFullName()));
|
profileModel.getFullName()));
|
||||||
NavHostFragment.findNavController(this).navigate(action);
|
NavHostFragment.findNavController(this).navigate(action);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1188,12 +1189,12 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||||||
if (profileModel != null) {
|
if (profileModel != null) {
|
||||||
final FragmentManager fragmentManager = getParentFragmentManager();
|
final FragmentManager fragmentManager = getParentFragmentManager();
|
||||||
final ProfilePicDialogFragment fragment = ProfilePicDialogFragment.getInstance(profileModel.getPk(),
|
final ProfilePicDialogFragment fragment = ProfilePicDialogFragment.getInstance(profileModel.getPk(),
|
||||||
username,
|
username,
|
||||||
profileModel.getProfilePicUrl());
|
profileModel.getProfilePicUrl());
|
||||||
final FragmentTransaction ft = fragmentManager.beginTransaction();
|
final FragmentTransaction ft = fragmentManager.beginTransaction();
|
||||||
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
|
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
|
||||||
.add(fragment, "profilePicDialog")
|
.add(fragment, "profilePicDialog")
|
||||||
.commit();
|
.commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1206,13 +1207,13 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||||||
|
|
||||||
private void setupPosts() {
|
private void setupPosts() {
|
||||||
binding.postsRecyclerView.setViewModelStoreOwner(this)
|
binding.postsRecyclerView.setViewModelStoreOwner(this)
|
||||||
.setLifeCycleOwner(this)
|
.setLifeCycleOwner(this)
|
||||||
.setPostFetchService(new ProfilePostFetchService(profileModel, isLoggedIn))
|
.setPostFetchService(new ProfilePostFetchService(profileModel, isLoggedIn))
|
||||||
.setLayoutPreferences(layoutPreferences)
|
.setLayoutPreferences(layoutPreferences)
|
||||||
.addFetchStatusChangeListener(fetching -> updateSwipeRefreshState())
|
.addFetchStatusChangeListener(fetching -> updateSwipeRefreshState())
|
||||||
.setFeedItemCallback(feedItemCallback)
|
.setFeedItemCallback(feedItemCallback)
|
||||||
.setSelectionModeCallback(selectionModeCallback)
|
.setSelectionModeCallback(selectionModeCallback)
|
||||||
.init();
|
.init();
|
||||||
binding.postsRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
binding.postsRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onScrolled(@NonNull final RecyclerView recyclerView, final int dx, final int dy) {
|
public void onScrolled(@NonNull final RecyclerView recyclerView, final int dx, final int dy) {
|
||||||
|
Loading…
Reference in New Issue
Block a user