2017-01-23 16:19:30 +11:00
|
|
|
/* Copyright 2017 Andrew Dawson
|
|
|
|
*
|
|
|
|
* This file is part of Tusky.
|
|
|
|
*
|
|
|
|
* Tusky is free software: you can redistribute it and/or modify it under the terms of the GNU
|
|
|
|
* General Public License as published by the Free Software Foundation, either version 3 of the
|
|
|
|
* License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* Tusky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
|
|
|
|
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
|
|
* Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License along with Tusky. If not, see
|
|
|
|
* <http://www.gnu.org/licenses/>. */
|
|
|
|
|
|
|
|
package com.keylesspalace.tusky;
|
|
|
|
|
|
|
|
import android.support.v7.widget.RecyclerView;
|
|
|
|
import android.view.View;
|
|
|
|
import android.widget.Button;
|
|
|
|
import android.widget.LinearLayout;
|
|
|
|
import android.widget.ProgressBar;
|
2017-01-31 15:51:02 +11:00
|
|
|
import android.widget.TextView;
|
2017-01-23 16:19:30 +11:00
|
|
|
|
|
|
|
public class FooterViewHolder extends RecyclerView.ViewHolder {
|
|
|
|
private LinearLayout retryBar;
|
2017-01-31 15:51:02 +11:00
|
|
|
private TextView retryMessage;
|
2017-01-23 16:19:30 +11:00
|
|
|
private Button retry;
|
|
|
|
private ProgressBar progressBar;
|
2017-02-08 08:47:05 +11:00
|
|
|
private TextView endOfTimelineMessage;
|
|
|
|
|
|
|
|
enum State {
|
|
|
|
LOADING,
|
|
|
|
RETRY,
|
|
|
|
END_OF_TIMELINE,
|
|
|
|
}
|
2017-01-23 16:19:30 +11:00
|
|
|
|
|
|
|
public FooterViewHolder(View itemView) {
|
|
|
|
super(itemView);
|
|
|
|
retryBar = (LinearLayout) itemView.findViewById(R.id.footer_retry_bar);
|
2017-01-31 15:51:02 +11:00
|
|
|
retryMessage = (TextView) itemView.findViewById(R.id.footer_retry_message);
|
2017-01-23 16:19:30 +11:00
|
|
|
retry = (Button) itemView.findViewById(R.id.footer_retry_button);
|
|
|
|
progressBar = (ProgressBar) itemView.findViewById(R.id.footer_progress_bar);
|
|
|
|
progressBar.setIndeterminate(true);
|
2017-02-08 08:47:05 +11:00
|
|
|
endOfTimelineMessage = (TextView) itemView.findViewById(R.id.footer_end_of_timeline_text);
|
2017-01-23 16:19:30 +11:00
|
|
|
}
|
|
|
|
|
|
|
|
public void setupButton(final FooterActionListener listener) {
|
|
|
|
retry.setOnClickListener(new View.OnClickListener() {
|
|
|
|
@Override
|
|
|
|
public void onClick(View v) {
|
|
|
|
listener.onLoadMore();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2017-01-31 15:51:02 +11:00
|
|
|
public void setRetryMessage(int messageId) {
|
|
|
|
retryMessage.setText(messageId);
|
|
|
|
}
|
|
|
|
|
2017-02-08 08:47:05 +11:00
|
|
|
public void setEndOfTimelineMessage(int messageId) {
|
|
|
|
endOfTimelineMessage.setText(messageId);
|
|
|
|
}
|
|
|
|
|
|
|
|
public 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;
|
|
|
|
}
|
2017-01-23 16:19:30 +11:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|