Merge pull request #1219 from raniapl/raniapl/development

Disable scrolling on empty profiles - Fix issues #1093, #1135, #1061
This commit is contained in:
Austin Huang 2021-05-19 12:57:46 -04:00 committed by GitHub
commit 55624dbdce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 47 additions and 26 deletions

View File

@ -616,9 +616,12 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
Log.e(TAG, "Error fetching profile relationship", t);
final Context context = getContext();
try {
if (t == null) Toast.makeText(context, R.string.error_loading_profile_loggedin, Toast.LENGTH_LONG).show();
else Toast.makeText(context, t.getMessage(), Toast.LENGTH_SHORT).show();
} catch (final Throwable ignored) {}
if (t == null)
Toast.makeText(context, R.string.error_loading_profile_loggedin, Toast.LENGTH_LONG).show();
else
Toast.makeText(context, t.getMessage(), Toast.LENGTH_SHORT).show();
} catch (final Throwable ignored) {
}
}
});
}
@ -628,9 +631,11 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
Log.e(TAG, "Error fetching profile", t);
final Context context = getContext();
try {
if (t == null) Toast.makeText(context, R.string.error_loading_profile_loggedin, Toast.LENGTH_LONG).show();
if (t == null)
Toast.makeText(context, R.string.error_loading_profile_loggedin, Toast.LENGTH_LONG).show();
else Toast.makeText(context, t.getMessage(), Toast.LENGTH_SHORT).show();
} catch (final Throwable ignored) {}
} catch (final Throwable ignored) {
}
}
});
return;
@ -647,9 +652,11 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
Log.e(TAG, "Error fetching profile", t);
final Context context = getContext();
try {
if (t == null) Toast.makeText(context, R.string.error_loading_profile, Toast.LENGTH_LONG).show();
if (t == null)
Toast.makeText(context, R.string.error_loading_profile, Toast.LENGTH_LONG).show();
else Toast.makeText(context, t.getMessage(), Toast.LENGTH_SHORT).show();
} catch (final Throwable ignored) {}
} catch (final Throwable ignored) {
}
}
});
}
@ -666,14 +673,14 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
if (!isReallyPrivate()) {
if (!postsSetupDone) {
setupPosts();
}
else {
} else {
binding.postsRecyclerView.refresh();
}
if (isLoggedIn) {
fetchStoryAndHighlights(profileId);
}
}
profileDetailsBinding.isVerified.setVisibility(profileModel.isVerified() ? View.VISIBLE : View.GONE);
profileDetailsBinding.isPrivate.setVisibility(profileModel.isPrivate() ? View.VISIBLE : View.GONE);
@ -693,10 +700,12 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
result.getDateAdded()
), new RepositoryCallback<Void>() {
@Override
public void onSuccess(final Void result) {}
public void onSuccess(final Void result) {
}
@Override
public void onDataNotAvailable() {}
public void onDataNotAvailable() {
}
});
}
@ -719,7 +728,8 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
}
@Override
public void onDataNotAvailable() {}
public void onDataNotAvailable() {
}
});
}
@ -741,7 +751,8 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
}
@Override
public void onDataNotAvailable() {}
public void onDataNotAvailable() {
}
});
}
}));
@ -755,11 +766,11 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
final String postCount = String.valueOf(profileModel.getMediaCount());
SpannableStringBuilder span = new SpannableStringBuilder(getResources().getQuantityString(R.plurals.main_posts_count,
profileModel.getMediaCount() > 2000000000L
? 2000000000
: (int) profileModel.getMediaCount(),
postCount));
SpannableStringBuilder span = new SpannableStringBuilder(getResources().getQuantityString(
R.plurals.main_posts_count,
profileModel.getMediaCount() > 2000000000L ? 2000000000 : (int) profileModel.getMediaCount(),
postCount)
);
span.setSpan(new RelativeSizeSpan(1.2f), 0, postCount.length(), 0);
span.setSpan(new StyleSpan(Typeface.BOLD), 0, postCount.length(), 0);
profileDetailsBinding.mainPostCount.setText(span);
@ -767,9 +778,11 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
final String followersCountStr = String.valueOf(followersCount);
final int followersCountStrLen = followersCountStr.length();
span = new SpannableStringBuilder(getResources().getQuantityString(R.plurals.main_posts_followers,
followersCount > 2000000000L ? 2000000000 : (int) followersCount,
followersCountStr));
span = new SpannableStringBuilder(getResources().getQuantityString(
R.plurals.main_posts_followers,
followersCount > 2000000000L ? 2000000000 : (int) followersCount,
followersCountStr)
);
span.setSpan(new RelativeSizeSpan(1.2f), 0, followersCountStrLen, 0);
span.setSpan(new StyleSpan(Typeface.BOLD), 0, followersCountStrLen, 0);
profileDetailsBinding.mainFollowers.setText(span);
@ -777,8 +790,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
final String followingCountStr = String.valueOf(followingCount);
final int followingCountStrLen = followingCountStr.length();
span = new SpannableStringBuilder(getString(R.string.main_posts_following,
followingCountStr));
span = new SpannableStringBuilder(getString(R.string.main_posts_following, followingCountStr));
span.setSpan(new RelativeSizeSpan(1.2f), 0, followingCountStrLen, 0);
span.setSpan(new StyleSpan(Typeface.BOLD), 0, followingCountStrLen, 0);
profileDetailsBinding.mainFollowing.setText(span);
@ -804,9 +816,8 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
final String originalText = autoLinkItem.getOriginalText().trim();
navigateToProfile(originalText);
});
profileDetailsBinding.mainBiography.addOnEmailClickListener(autoLinkItem -> Utils.openEmailAddress(getContext(),
autoLinkItem.getOriginalText()
.trim()));
profileDetailsBinding.mainBiography.addOnEmailClickListener(autoLinkItem -> Utils.openEmailAddress(
getContext(), autoLinkItem.getOriginalText().trim()));
profileDetailsBinding.mainBiography
.addOnURLClickListener(autoLinkItem -> Utils.openURL(getContext(), autoLinkItem.getOriginalText().trim()));
profileDetailsBinding.mainBiography.setOnLongClickListener(v -> {
@ -888,6 +899,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
return true;
});
}
final MotionScene.Transition transition = root.getTransition(R.id.transition);
if (!isReallyPrivate()) {
if (isLoggedIn) {
profileDetailsBinding.mainFollowing.setClickable(true);
@ -913,6 +925,12 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
binding.privatePage2.setVisibility(View.VISIBLE);
binding.postsRecyclerView.setVisibility(View.GONE);
binding.swipeRefreshLayout.setRefreshing(false);
if (transition != null) {
transition.setEnable(false);
}
}
if (profileModel.getMediaCount() == 0 && transition != null) {
transition.setEnable(false);
}
}

View File

@ -35,6 +35,8 @@
style="@style/Widget.MaterialComponents.Button.TextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:layout_marginBottom="4dp"
android:layout_gravity="bottom|end"
android:backgroundTint="@color/black_a50"
android:text="@string/action_download"

View File

@ -11,6 +11,7 @@
android:id="@+id/chats"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="8dp"
android:layout_weight="1"
android:scrollbars="none"
tools:listitem="@layout/layout_dm_base" />