feat: shows toolbar when scrolled past title

This still needs to be redone with the same style as the profile fragment
This commit is contained in:
LucasGGamerM 2023-05-30 13:19:04 -03:00
parent ba31afda27
commit 3ac9c09338
1 changed files with 29 additions and 8 deletions

View File

@ -67,6 +67,7 @@ public abstract class SettingsBaseFragment extends MastodonToolbarFragment imple
protected boolean needAppRestart; protected boolean needAppRestart;
private Instance instance; private Instance instance;
private String instanceName; private String instanceName;
protected String title;
protected NotificationPolicyItem notificationPolicyItem; protected NotificationPolicyItem notificationPolicyItem;
@ -93,7 +94,7 @@ public abstract class SettingsBaseFragment extends MastodonToolbarFragment imple
DomainManager.getInstance().setCurrentDomain(session.domain + "/settings"); DomainManager.getInstance().setCurrentDomain(session.domain + "/settings");
addItems(items); addItems(items);
String title = getArguments().getString("title", getTitle().toString()); title = getArguments().getString("title", getTitle().toString());
items.add(0, new GiantHeaderItem(title)); items.add(0, new GiantHeaderItem(title));
} }
@ -114,6 +115,26 @@ public abstract class SettingsBaseFragment extends MastodonToolbarFragment imple
outRect.top = V.dp(32); outRect.top = V.dp(32);
} }
}); });
//TODO do this the same way as the profile toolbar
list.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
LinearLayoutManager linearLayoutManager = (LinearLayoutManager) list.getLayoutManager();
if (linearLayoutManager != null && linearLayoutManager.findFirstVisibleItemPosition() > 0) {
setTitle(title);
if(!title.isEmpty()){
getToolbar().setBackgroundColor(UiUtils.getThemeColor(getContext(), R.attr.colorBackgroundLight));
setStatusBarColor(UiUtils.getThemeColor(getContext(), R.attr.colorBackgroundLight));
}
} else {
setTitle("");
getToolbar().setBackgroundColor(UiUtils.getThemeColor(getContext(), R.attr.colorWindowBackground));
setStatusBarColor(UiUtils.getThemeColor(getContext(), R.attr.colorWindowBackground));
}
}
});
return list; return list;
} }