fix: instance info refresh not working

This commit is contained in:
FineFindus 2023-05-23 21:34:31 +02:00
parent cb3b893f72
commit 818024d8dd
No known key found for this signature in database
GPG Key ID: 64873EE210FF8E6B
1 changed files with 14 additions and 12 deletions

View File

@ -23,6 +23,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import org.joinmastodon.android.R; import org.joinmastodon.android.R;
import org.joinmastodon.android.api.requests.instance.GetExtendedDescription; import org.joinmastodon.android.api.requests.instance.GetExtendedDescription;
@ -65,6 +66,7 @@ public class InstanceInfoFragment extends LoaderFragment {
private String extendedDescription; private String extendedDescription;
private CoverImageView cover; private CoverImageView cover;
private TextView uri, description, readMore; private TextView uri, description, readMore;
private SwipeRefreshLayout refreshLayout;
private final CoverOverlayGradientDrawable coverGradient=new CoverOverlayGradientDrawable(); private final CoverOverlayGradientDrawable coverGradient=new CoverOverlayGradientDrawable();
private LinearLayout textWrap; private LinearLayout textWrap;
@ -114,6 +116,7 @@ public class InstanceInfoFragment extends LoaderFragment {
public View onCreateContentView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ public View onCreateContentView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View content=inflater.inflate(R.layout.fragment_instance_info, container, false); View content=inflater.inflate(R.layout.fragment_instance_info, container, false);
refreshLayout=content.findViewById(R.id.refresh_layout);
scrollView=content.findViewById(R.id.scroll_view); scrollView=content.findViewById(R.id.scroll_view);
cover=content.findViewById(R.id.cover); cover=content.findViewById(R.id.cover);
uri =content.findViewById(R.id.uri); uri =content.findViewById(R.id.uri);
@ -128,22 +131,16 @@ public class InstanceInfoFragment extends LoaderFragment {
wrapParams=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); wrapParams=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
cover.setForeground(coverGradient); cover.setForeground(coverGradient);
cover.setOutlineProvider(new ViewOutlineProvider(){
@Override
public void getOutline(View view, Outline outline){
outline.setEmpty();
}
});
cover.setOnClickListener(this::onCoverClick); cover.setOnClickListener(this::onCoverClick);
readMore.setOnClickListener(this::onReadMoreClick); readMore.setOnClickListener(this::onReadMoreClick);
refreshLayout.setOnRefreshListener(this);
if(loaded){ if(loaded){
bindHeaderView(); bindViews();
dataLoaded(); dataLoaded();
} }
// from ProfileAboutFragment
list.setItemAnimator(new BetterItemAnimator()); list.setItemAnimator(new BetterItemAnimator());
list.setDrawSelectorOnTop(true); list.setDrawSelectorOnTop(true);
list.setLayoutManager(new LinearLayoutManager(getActivity())); list.setLayoutManager(new LinearLayoutManager(getActivity()));
@ -162,8 +159,12 @@ public class InstanceInfoFragment extends LoaderFragment {
public void onSuccess(Instance result){ public void onSuccess(Instance result){
if (getActivity() == null) return; if (getActivity() == null) return;
instance = result; instance = result;
bindHeaderView(); bindViews();
dataLoaded(); dataLoaded();
if(refreshing) {
refreshing = false;
refreshLayout.setRefreshing(false);
}
} }
}) })
.execNoAuth(targetDomain); .execNoAuth(targetDomain);
@ -204,6 +205,7 @@ public class InstanceInfoFragment extends LoaderFragment {
return; return;
refreshing=true; refreshing=true;
doLoadData(); doLoadData();
loadExtendedDescription();
} }
@Override @Override
@ -242,7 +244,7 @@ public class InstanceInfoFragment extends LoaderFragment {
private void bindHeaderView(){ private void bindViews(){
ViewImageLoader.load(cover, null, new UrlImageLoaderRequest(instance.thumbnail, 1000, 1000)); ViewImageLoader.load(cover, null, new UrlImageLoaderRequest(instance.thumbnail, 1000, 1000));
uri.setText(instance.title); uri.setText(instance.title);
setTitle(instance.title); setTitle(instance.title);
@ -357,7 +359,7 @@ public class InstanceInfoFragment extends LoaderFragment {
} }
private void onReadMoreClick(View view) { private void onReadMoreClick(View view) {
isExpanded = !isExpanded; isExpanded = !isExpanded;
bindHeaderView(); bindViews();
} }