Settings M3 redesign wip

This commit is contained in:
Grishka
2023-06-04 02:04:55 +03:00
parent 7c6ec2e3d7
commit 31c8665653
139 changed files with 4520 additions and 1145 deletions

View File

@@ -5,6 +5,7 @@ import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.view.View;
@@ -27,6 +28,7 @@ public class ElevationOnScrollListener extends RecyclerView.OnScrollListener imp
private Animator currentPanelsAnim;
private List<View> views;
private FragmentRootLinearLayout fragmentRootLayout;
private Rect tmpRect=new Rect();
public ElevationOnScrollListener(FragmentRootLinearLayout fragmentRootLayout, View... views){
this(fragmentRootLayout, Arrays.asList(views));
@@ -70,9 +72,14 @@ public class ElevationOnScrollListener extends RecyclerView.OnScrollListener imp
}
}
private int getRecyclerChildDecoratedTop(RecyclerView rv, View child){
rv.getDecoratedBoundsWithMargins(child, tmpRect);
return tmpRect.top;
}
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy){
boolean newAtTop=recyclerView.getChildCount()==0 || (recyclerView.getChildAdapterPosition(recyclerView.getChildAt(0))==0 && recyclerView.getChildAt(0).getTop()==recyclerView.getPaddingTop());
boolean newAtTop=recyclerView.getChildCount()==0 || (recyclerView.getChildAdapterPosition(recyclerView.getChildAt(0))==0 && getRecyclerChildDecoratedTop(recyclerView, recyclerView.getChildAt(0))==recyclerView.getPaddingTop());
handleScroll(recyclerView.getContext(), newAtTop);
}
@@ -120,4 +127,8 @@ public class ElevationOnScrollListener extends RecyclerView.OnScrollListener imp
currentPanelsAnim=set;
}
}
public int getCurrentStatusBarColor(){
return fragmentRootLayout.getStatusBarColor();
}
}

View File

@@ -1,7 +1,8 @@
package org.joinmastodon.android.utils;
import org.joinmastodon.android.api.session.AccountSessionManager;
import org.joinmastodon.android.model.Filter;
import org.joinmastodon.android.model.FilterContext;
import org.joinmastodon.android.model.LegacyFilter;
import org.joinmastodon.android.model.Status;
import java.util.List;
@@ -9,19 +10,19 @@ import java.util.function.Predicate;
import java.util.stream.Collectors;
public class StatusFilterPredicate implements Predicate<Status>{
private final List<Filter> filters;
private final List<LegacyFilter> filters;
public StatusFilterPredicate(List<Filter> filters){
public StatusFilterPredicate(List<LegacyFilter> filters){
this.filters=filters;
}
public StatusFilterPredicate(String accountID, Filter.FilterContext context){
public StatusFilterPredicate(String accountID, FilterContext context){
filters=AccountSessionManager.getInstance().getAccount(accountID).wordFilters.stream().filter(f->f.context.contains(context)).collect(Collectors.toList());
}
@Override
public boolean test(Status status){
for(Filter filter:filters){
for(LegacyFilter filter:filters){
if(filter.matches(status))
return false;
}

View File

@@ -0,0 +1,31 @@
package org.joinmastodon.android.utils;
import android.graphics.drawable.Drawable;
import android.view.View;
import androidx.recyclerview.widget.RecyclerView;
import me.grishka.appkit.imageloader.ImageLoaderViewHolder;
import me.grishka.appkit.imageloader.ViewImageLoader;
public class ViewImageLoaderHolderTarget implements ViewImageLoader.Target{
private final ImageLoaderViewHolder holder;
private final int imageIndex;
public ViewImageLoaderHolderTarget(ImageLoaderViewHolder holder, int imageIndex){
this.holder=holder;
this.imageIndex=imageIndex;
}
@Override
public void setImageDrawable(Drawable d){
if(d==null)
holder.clearImage(imageIndex);
else
holder.setImage(imageIndex, d);
}
@Override
public View getView(){
return ((RecyclerView.ViewHolder)holder).itemView;
}
}