Visually center initial loading indicator. Abandon

"end of content" messages (not necessary from UX perspective
imo) and retry button (perhaps it should be a Snackbar
with a retry action instead)
main
Eugen Rochko 8 years ago
parent d067c8bf27
commit 2cf387bc21
  1. 3
      app/src/main/java/com/keylesspalace/tusky/BlocksAdapter.java
  2. 3
      app/src/main/java/com/keylesspalace/tusky/FollowAdapter.java
  3. 31
      app/src/main/java/com/keylesspalace/tusky/FooterViewHolder.java
  4. 3
      app/src/main/java/com/keylesspalace/tusky/NotificationsAdapter.java
  5. 3
      app/src/main/java/com/keylesspalace/tusky/TimelineAdapter.java
  6. 32
      app/src/main/res/layout/item_footer.xml

@ -66,9 +66,6 @@ class BlocksAdapter extends AccountAdapter {
} else {
FooterViewHolder holder = (FooterViewHolder) viewHolder;
holder.setState(footerState);
holder.setupButton(footerActionListener);
holder.setRetryMessage(R.string.footer_retry_accounts);
holder.setEndOfTimelineMessage(R.string.footer_end_of_accounts);
}
}

@ -61,9 +61,6 @@ class FollowAdapter extends AccountAdapter {
} else {
FooterViewHolder holder = (FooterViewHolder) viewHolder;
holder.setState(footerState);
holder.setupButton(footerActionListener);
holder.setRetryMessage(R.string.footer_retry_accounts);
holder.setEndOfTimelineMessage(R.string.footer_end_of_accounts);
}
}

@ -22,11 +22,7 @@ import android.widget.ProgressBar;
import android.widget.TextView;
class FooterViewHolder extends RecyclerView.ViewHolder {
private View retryBar;
private TextView retryMessage;
private Button retry;
private ProgressBar progressBar;
private TextView endOfTimelineMessage;
enum State {
LOADING,
@ -36,49 +32,22 @@ class FooterViewHolder extends RecyclerView.ViewHolder {
FooterViewHolder(View itemView) {
super(itemView);
retryBar = itemView.findViewById(R.id.footer_retry_bar);
retryMessage = (TextView) itemView.findViewById(R.id.footer_retry_message);
retry = (Button) itemView.findViewById(R.id.footer_retry_button);
progressBar = (ProgressBar) itemView.findViewById(R.id.footer_progress_bar);
progressBar.setIndeterminate(true);
endOfTimelineMessage = (TextView) itemView.findViewById(R.id.footer_end_of_timeline_text);
}
void setupButton(final FooterActionListener listener) {
retry.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listener.onLoadMore();
}
});
}
void setRetryMessage(int messageId) {
retryMessage.setText(messageId);
}
void setEndOfTimelineMessage(int messageId) {
endOfTimelineMessage.setText(messageId);
}
void setState(State state) {
switch (state) {
case LOADING: {
retryBar.setVisibility(View.GONE);
progressBar.setVisibility(View.VISIBLE);
endOfTimelineMessage.setVisibility(View.GONE);
break;
}
case RETRY: {
retryBar.setVisibility(View.VISIBLE);
progressBar.setVisibility(View.GONE);
endOfTimelineMessage.setVisibility(View.GONE);
break;
}
case END_OF_TIMELINE: {
retryBar.setVisibility(View.GONE);
progressBar.setVisibility(View.GONE);
endOfTimelineMessage.setVisibility(View.VISIBLE);
break;
}
}

@ -110,9 +110,6 @@ class NotificationsAdapter extends RecyclerView.Adapter implements AdapterItemRe
} else {
FooterViewHolder holder = (FooterViewHolder) viewHolder;
holder.setState(footerState);
holder.setupButton(footerListener);
holder.setRetryMessage(R.string.footer_retry_notifications);
holder.setEndOfTimelineMessage(R.string.footer_end_of_notifications);
}
}

@ -68,9 +68,6 @@ class TimelineAdapter extends RecyclerView.Adapter implements AdapterItemRemover
} else {
FooterViewHolder holder = (FooterViewHolder) viewHolder;
holder.setState(footerState);
holder.setupButton(footerListener);
holder.setRetryMessage(R.string.footer_retry_statuses);
holder.setEndOfTimelineMessage(R.string.footer_end_of_statuses);
}
}

@ -2,7 +2,8 @@
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
@ -10,39 +11,10 @@
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center">
<com.keylesspalace.tusky.FlowLayout
android:id="@+id/footer_retry_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/footer_retry_message"
android:padding="@dimen/footer_text_padding" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/footer_retry_button"
android:text="@string/action_retry" />
</com.keylesspalace.tusky.FlowLayout>
<ProgressBar
android:id="@+id/footer_progress_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/footer_end_of_timeline_text"
android:padding="@dimen/footer_text_padding"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
Loading…
Cancel
Save