Add info banner to the new local timeline

This commit is contained in:
Grishka
2023-10-28 18:56:15 +03:00
parent fe0e854e72
commit edb64fff2e
2 changed files with 42 additions and 1 deletions

View File

@@ -22,6 +22,8 @@ public class DiscoverInfoBannerHelper{
private final BannerType type;
private final String accountID;
private static EnumSet<BannerType> bannerTypesToShow=EnumSet.noneOf(BannerType.class);
private SingleViewRecyclerAdapter bannerAdapter;
private boolean added;
static{
for(BannerType t:BannerType.values()){
@@ -40,6 +42,8 @@ public class DiscoverInfoBannerHelper{
}
public void maybeAddBanner(RecyclerView list, MergeRecyclerAdapter adapter){
if(added)
return;
if(bannerTypesToShow.contains(type)){
banner=((Activity)list.getContext()).getLayoutInflater().inflate(R.layout.discover_info_banner, list, false);
TextView text=banner.findViewById(R.id.banner_text);
@@ -56,7 +60,8 @@ public class DiscoverInfoBannerHelper{
case LOCAL_TIMELINE -> R.drawable.ic_stream_24px;
case ACCOUNTS -> R.drawable.ic_group_add_24px;
});
adapter.addAdapter(new SingleViewRecyclerAdapter(banner));
adapter.addAdapter(0, bannerAdapter=new SingleViewRecyclerAdapter(banner));
added=true;
}
}
@@ -65,6 +70,13 @@ public class DiscoverInfoBannerHelper{
// bannerTypesToShow is not updated here on purpose so the banner keeps showing until the app is relaunched
}
public void removeBanner(MergeRecyclerAdapter adapter){
if(bannerAdapter!=null){
adapter.removeAdapter(bannerAdapter);
added=false;
}
}
public static void reset(){
SharedPreferences prefs=getPrefs();
SharedPreferences.Editor e=prefs.edit();