Add info banner to the new local timeline
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user