refactor(settings): refactor settings toolbar animations
Also fixes wrong elevation on toolbar hidden mode
This commit is contained in:
parent
02f0c794c7
commit
15976a991b
|
@ -42,6 +42,7 @@ import org.joinmastodon.android.api.PushSubscriptionManager;
|
||||||
import org.joinmastodon.android.api.session.AccountSession;
|
import org.joinmastodon.android.api.session.AccountSession;
|
||||||
import org.joinmastodon.android.api.session.AccountSessionManager;
|
import org.joinmastodon.android.api.session.AccountSessionManager;
|
||||||
import org.joinmastodon.android.fragments.DomainDisplay;
|
import org.joinmastodon.android.fragments.DomainDisplay;
|
||||||
|
import org.joinmastodon.android.fragments.InstanceInfoFragment;
|
||||||
import org.joinmastodon.android.fragments.MastodonToolbarFragment;
|
import org.joinmastodon.android.fragments.MastodonToolbarFragment;
|
||||||
import org.joinmastodon.android.model.Instance;
|
import org.joinmastodon.android.model.Instance;
|
||||||
import org.joinmastodon.android.model.PushNotification;
|
import org.joinmastodon.android.model.PushNotification;
|
||||||
|
@ -67,8 +68,6 @@ public abstract class SettingsBaseFragment extends MastodonToolbarFragment imple
|
||||||
protected ThemeItem themeItem;
|
protected ThemeItem themeItem;
|
||||||
|
|
||||||
protected boolean needAppRestart;
|
protected boolean needAppRestart;
|
||||||
protected AlphaAnimation fadeIn = new AlphaAnimation(0.0f , 1.0f ) ;
|
|
||||||
protected AlphaAnimation fadeOut = new AlphaAnimation( 1.0f , 0.0f ) ;
|
|
||||||
|
|
||||||
private Instance instance;
|
private Instance instance;
|
||||||
private String instanceName;
|
private String instanceName;
|
||||||
|
@ -101,8 +100,7 @@ public abstract class SettingsBaseFragment extends MastodonToolbarFragment imple
|
||||||
if (GithubSelfUpdater.needSelfUpdating())
|
if (GithubSelfUpdater.needSelfUpdating())
|
||||||
E.register(this);
|
E.register(this);
|
||||||
|
|
||||||
fadeIn.setDuration(150);
|
|
||||||
fadeOut.setDuration(150);
|
|
||||||
|
|
||||||
addItems(items);
|
addItems(items);
|
||||||
title = getArguments().getString("title", getTitle().toString());
|
title = getArguments().getString("title", getTitle().toString());
|
||||||
|
@ -134,21 +132,9 @@ public abstract class SettingsBaseFragment extends MastodonToolbarFragment imple
|
||||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
||||||
LinearLayoutManager linearLayoutManager = (LinearLayoutManager) list.getLayoutManager();
|
LinearLayoutManager linearLayoutManager = (LinearLayoutManager) list.getLayoutManager();
|
||||||
if (linearLayoutManager != null && linearLayoutManager.findFirstVisibleItemPosition() > 0) {
|
if (linearLayoutManager != null && linearLayoutManager.findFirstVisibleItemPosition() > 0) {
|
||||||
if(!title.isEmpty()){
|
showToolbarAnimated();
|
||||||
if(toolbarTitleView.getVisibility() != View.VISIBLE){
|
|
||||||
toolbarTitleView.startAnimation(fadeIn);
|
|
||||||
toolbarTitleView.setVisibility(View.VISIBLE);
|
|
||||||
}
|
|
||||||
getToolbar().setBackgroundColor(UiUtils.getThemeColor(getContext(), R.attr.colorBackgroundLight));
|
|
||||||
setStatusBarColor(UiUtils.getThemeColor(getContext(), R.attr.colorBackgroundLight));
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if(toolbarTitleView.getVisibility() != View.INVISIBLE){
|
hideToolbarAnimated();
|
||||||
toolbarTitleView.startAnimation(fadeOut);
|
|
||||||
toolbarTitleView.setVisibility(View.INVISIBLE);
|
|
||||||
}
|
|
||||||
getToolbar().setBackgroundColor(UiUtils.getThemeColor(getContext(), R.attr.colorWindowBackground));
|
|
||||||
setStatusBarColor(UiUtils.getThemeColor(getContext(), R.attr.colorWindowBackground));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -169,19 +155,45 @@ public abstract class SettingsBaseFragment extends MastodonToolbarFragment imple
|
||||||
public void onViewCreated(View view, Bundle savedInstanceState){
|
public void onViewCreated(View view, Bundle savedInstanceState){
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
this.view = view;
|
this.view = view;
|
||||||
|
hideToolbar();
|
||||||
toolbarTitleView.setVisibility(View.INVISIBLE);
|
toolbarTitleView.setVisibility(View.INVISIBLE);
|
||||||
setStatusBarColor(UiUtils.getThemeColor(getContext(), R.attr.colorWindowBackground));
|
setStatusBarColor(UiUtils.getThemeColor(getContext(), R.attr.colorWindowBackground));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void hideToolbar() {
|
protected void hideToolbar() {
|
||||||
getToolbar().setElevation(0f);
|
getToolbar().setElevation(0f);
|
||||||
getToolbar().setTitle("");
|
toolbarTitleView.setVisibility(View.INVISIBLE);
|
||||||
TypedValue typedValue = new TypedValue();
|
TypedValue typedValue = new TypedValue();
|
||||||
if (getActivity().getTheme().resolveAttribute(android.R.attr.windowBackground, typedValue, true)) {
|
if (getActivity().getTheme().resolveAttribute(android.R.attr.windowBackground, typedValue, true)) {
|
||||||
getToolbar().setBackgroundColor(typedValue.data);
|
getToolbar().setBackgroundColor(typedValue.data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void showToolbarAnimated(){
|
||||||
|
AlphaAnimation fadeIn = new AlphaAnimation(0.0f , 1.0f ) ;
|
||||||
|
fadeIn.setDuration(100);
|
||||||
|
if(toolbarTitleView.getVisibility() != View.VISIBLE){
|
||||||
|
getToolbar().setElevation(8.625f);
|
||||||
|
toolbarTitleView.startAnimation(fadeIn);
|
||||||
|
toolbarTitleView.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
getToolbar().setBackgroundColor(UiUtils.getThemeColor(getContext(), R.attr.colorBackgroundLight));
|
||||||
|
setStatusBarColor(UiUtils.getThemeColor(getContext(), R.attr.colorBackgroundLight));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void hideToolbarAnimated(){
|
||||||
|
AlphaAnimation fadeOut = new AlphaAnimation( 1.0f , 0.0f ) ;
|
||||||
|
fadeOut.setDuration(100);
|
||||||
|
if(toolbarTitleView.getVisibility() != View.INVISIBLE){
|
||||||
|
getToolbar().setElevation(0f);
|
||||||
|
toolbarTitleView.startAnimation(fadeOut);
|
||||||
|
toolbarTitleView.setVisibility(View.INVISIBLE);
|
||||||
|
}
|
||||||
|
getToolbar().setBackgroundColor(UiUtils.getThemeColor(getContext(), R.attr.colorWindowBackground));
|
||||||
|
setStatusBarColor(UiUtils.getThemeColor(getContext(), R.attr.colorWindowBackground));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
protected Instance getInstance() {
|
protected Instance getInstance() {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue