mirror of
https://codeberg.org/gitnex/GitNex.git
synced 2023-12-13 20:50:18 +01:00
c3563dc861
Signed-off-by: M M Arif <mmarif@swatian.com>
77 lines
1.9 KiB
Java
77 lines
1.9 KiB
Java
package org.mian.gitnex.helpers;
|
|
|
|
import android.content.Context;
|
|
import android.util.AttributeSet;
|
|
import android.view.View;
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
|
|
/**
|
|
* Author com.github.abumoallim, modified by M M Arif
|
|
*/
|
|
|
|
public class RecyclerViewEmptySupport extends RecyclerView {
|
|
|
|
private View emptyView;
|
|
|
|
final private AdapterDataObserver observer = new AdapterDataObserver() {
|
|
|
|
@Override
|
|
public void onChanged() {
|
|
checkIfEmpty();
|
|
}
|
|
|
|
@Override
|
|
public void onItemRangeInserted(int positionStart, int itemCount) {
|
|
checkIfEmpty();
|
|
}
|
|
|
|
@Override
|
|
public void onItemRangeRemoved(int positionStart, int itemCount) {
|
|
checkIfEmpty();
|
|
}
|
|
|
|
};
|
|
|
|
public RecyclerViewEmptySupport(Context context) {
|
|
super(context);
|
|
}
|
|
|
|
public RecyclerViewEmptySupport(Context context, AttributeSet attrs) {
|
|
super(context, attrs);
|
|
}
|
|
|
|
public RecyclerViewEmptySupport(Context context, AttributeSet attrs, int defStyle) {
|
|
super(context, attrs, defStyle);
|
|
}
|
|
|
|
void checkIfEmpty() {
|
|
|
|
if (emptyView != null && getAdapter() != null) {
|
|
final boolean emptyViewVisible = getAdapter().getItemCount() == 0;
|
|
emptyView.setVisibility(emptyViewVisible ? VISIBLE : GONE);
|
|
setVisibility(emptyViewVisible ? GONE : VISIBLE);
|
|
}
|
|
|
|
}
|
|
|
|
@Override
|
|
public void setAdapter(Adapter adapter) {
|
|
|
|
final Adapter oldAdapter = getAdapter();
|
|
if (oldAdapter != null) {
|
|
oldAdapter.unregisterAdapterDataObserver(observer);
|
|
}
|
|
super.setAdapter(adapter);
|
|
if (adapter != null) {
|
|
adapter.registerAdapterDataObserver(observer);
|
|
}
|
|
|
|
checkIfEmpty();
|
|
|
|
}
|
|
|
|
public void setEmptyView(View emptyView) {
|
|
this.emptyView = emptyView;
|
|
checkIfEmpty();
|
|
}
|
|
} |