AND-133
This commit is contained in:
parent
d0e33c8a12
commit
b3e53bc48d
|
@ -37,14 +37,14 @@ import me.grishka.appkit.fragments.OnBackPressedListener;
|
||||||
import me.grishka.appkit.utils.V;
|
import me.grishka.appkit.utils.V;
|
||||||
|
|
||||||
public class FilterWordsFragment extends BaseSettingsFragment<FilterKeyword> implements OnBackPressedListener{
|
public class FilterWordsFragment extends BaseSettingsFragment<FilterKeyword> implements OnBackPressedListener{
|
||||||
private ImageButton fab;
|
private Button fab;
|
||||||
private ActionMode actionMode;
|
private ActionMode actionMode;
|
||||||
private ArrayList<ListItem<FilterKeyword>> selectedItems=new ArrayList<>();
|
private ArrayList<ListItem<FilterKeyword>> selectedItems=new ArrayList<>();
|
||||||
private ArrayList<String> deletedItemIDs=new ArrayList<>();
|
private ArrayList<String> deletedItemIDs=new ArrayList<>();
|
||||||
private MenuItem deleteItem;
|
private MenuItem deleteItem;
|
||||||
|
|
||||||
public FilterWordsFragment(){
|
public FilterWordsFragment(){
|
||||||
setListLayoutId(R.layout.recycler_fragment_with_fab);
|
setListLayoutId(R.layout.recycler_fragment_with_text_fab);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -92,18 +92,14 @@ public class FilterWordsFragment extends BaseSettingsFragment<FilterKeyword> imp
|
||||||
public void onViewCreated(View view, Bundle savedInstanceState){
|
public void onViewCreated(View view, Bundle savedInstanceState){
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
fab=view.findViewById(R.id.fab);
|
fab=view.findViewById(R.id.fab);
|
||||||
fab.setImageResource(R.drawable.ic_add_24px);
|
fab.setCompoundDrawablesRelativeWithIntrinsicBounds(R.drawable.ic_add_24px, 0, 0, 0);
|
||||||
fab.setContentDescription(getString(R.string.add_muted_word));
|
fab.setText(R.string.add_muted_word_short);
|
||||||
fab.setOnClickListener(v->onFabClick());
|
fab.setOnClickListener(v->onFabClick());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onApplyWindowInsets(WindowInsets insets){
|
public void onApplyWindowInsets(WindowInsets insets){
|
||||||
int fabInset=0;
|
UiUtils.applyBottomInsetToFAB(fab, insets);
|
||||||
if(Build.VERSION.SDK_INT>=29 && insets.getTappableElementInsets().bottom==0){
|
|
||||||
fabInset=insets.getSystemWindowInsetBottom();
|
|
||||||
}
|
|
||||||
((ViewGroup.MarginLayoutParams) fab.getLayoutParams()).bottomMargin=V.dp(16)+fabInset;
|
|
||||||
super.onApplyWindowInsets(insets);
|
super.onApplyWindowInsets(insets);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
package org.joinmastodon.android.fragments.settings;
|
package org.joinmastodon.android.fragments.settings;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.WindowInsets;
|
||||||
|
import android.widget.Button;
|
||||||
|
|
||||||
import com.squareup.otto.Subscribe;
|
import com.squareup.otto.Subscribe;
|
||||||
|
|
||||||
|
@ -12,6 +15,7 @@ import org.joinmastodon.android.events.SettingsFilterDeletedEvent;
|
||||||
import org.joinmastodon.android.model.Filter;
|
import org.joinmastodon.android.model.Filter;
|
||||||
import org.joinmastodon.android.model.viewmodel.ListItem;
|
import org.joinmastodon.android.model.viewmodel.ListItem;
|
||||||
import org.joinmastodon.android.ui.adapters.GenericListItemsAdapter;
|
import org.joinmastodon.android.ui.adapters.GenericListItemsAdapter;
|
||||||
|
import org.joinmastodon.android.ui.utils.UiUtils;
|
||||||
import org.parceler.Parcels;
|
import org.parceler.Parcels;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -24,6 +28,12 @@ import me.grishka.appkit.api.SimpleCallback;
|
||||||
import me.grishka.appkit.utils.MergeRecyclerAdapter;
|
import me.grishka.appkit.utils.MergeRecyclerAdapter;
|
||||||
|
|
||||||
public class SettingsFiltersFragment extends BaseSettingsFragment<Filter>{
|
public class SettingsFiltersFragment extends BaseSettingsFragment<Filter>{
|
||||||
|
private Button fab;
|
||||||
|
|
||||||
|
public SettingsFiltersFragment(){
|
||||||
|
setListLayoutId(R.layout.recycler_fragment_with_text_fab);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState){
|
public void onCreate(Bundle savedInstanceState){
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -53,13 +63,12 @@ public class SettingsFiltersFragment extends BaseSettingsFragment<Filter>{
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected RecyclerView.Adapter<?> getAdapter(){
|
public void onViewCreated(View view, Bundle savedInstanceState){
|
||||||
MergeRecyclerAdapter adapter=new MergeRecyclerAdapter();
|
super.onViewCreated(view, savedInstanceState);
|
||||||
adapter.addAdapter(super.getAdapter());
|
fab=view.findViewById(R.id.fab);
|
||||||
adapter.addAdapter(new GenericListItemsAdapter<>(Collections.singletonList(
|
fab.setText(R.string.settings_add_filter);
|
||||||
new ListItem<Void>(R.string.settings_add_filter, 0, R.drawable.ic_add_24px, this::onAddFilterClick)
|
fab.setCompoundDrawablesRelativeWithIntrinsicBounds(R.drawable.ic_add_24px, 0, 0, 0);
|
||||||
)));
|
fab.setOnClickListener(v->onAddFilterClick());
|
||||||
return adapter;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onFilterClick(ListItem<Filter> filter){
|
private void onFilterClick(ListItem<Filter> filter){
|
||||||
|
@ -69,7 +78,7 @@ public class SettingsFiltersFragment extends BaseSettingsFragment<Filter>{
|
||||||
Nav.go(getActivity(), EditFilterFragment.class, args);
|
Nav.go(getActivity(), EditFilterFragment.class, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onAddFilterClick(ListItem<?> item){
|
private void onAddFilterClick(){
|
||||||
Bundle args=new Bundle();
|
Bundle args=new Bundle();
|
||||||
args.putString("account", accountID);
|
args.putString("account", accountID);
|
||||||
Nav.go(getActivity(), EditFilterFragment.class, args);
|
Nav.go(getActivity(), EditFilterFragment.class, args);
|
||||||
|
@ -109,4 +118,10 @@ public class SettingsFiltersFragment extends BaseSettingsFragment<Filter>{
|
||||||
data.add(makeListItem(ev.filter));
|
data.add(makeListItem(ev.filter));
|
||||||
itemsAdapter.notifyItemInserted(data.size()-1);
|
itemsAdapter.notifyItemInserted(data.size()-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onApplyWindowInsets(WindowInsets insets){
|
||||||
|
UiUtils.applyBottomInsetToFAB(fab, insets);
|
||||||
|
super.onApplyWindowInsets(insets);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<me.grishka.appkit.views.RecursiveSwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/refresh_layout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/content_wrap"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
<me.grishka.appkit.views.UsableRecyclerView
|
||||||
|
android:id="@+id/list"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:scrollbars="vertical"
|
||||||
|
android:clipToPadding="false"/>
|
||||||
|
|
||||||
|
<ViewStub android:layout="?emptyViewLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:id="@+id/empty"/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/fab"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="56dp"
|
||||||
|
android:layout_gravity="end|bottom"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:layout_marginBottom="16dp"
|
||||||
|
android:background="@drawable/bg_fab"
|
||||||
|
android:textColor="?colorM3Primary"
|
||||||
|
android:drawableTint="?colorM3Primary"
|
||||||
|
android:stateListAnimator="@animator/fab_shadow"
|
||||||
|
android:paddingStart="16dp"
|
||||||
|
android:paddingEnd="20dp"
|
||||||
|
android:drawablePadding="12dp"
|
||||||
|
android:textAppearance="@style/m3_label_large"
|
||||||
|
tools:text="Some text"
|
||||||
|
tools:drawableStart="@drawable/ic_edit_24px"/>
|
||||||
|
|
||||||
|
</FrameLayout>
|
||||||
|
</me.grishka.appkit.views.RecursiveSwipeRefreshLayout>
|
|
@ -712,4 +712,5 @@
|
||||||
<string name="copy_profile_link">Copy link to profile</string>
|
<string name="copy_profile_link">Copy link to profile</string>
|
||||||
<string name="in_app_browser">In-app browser</string>
|
<string name="in_app_browser">In-app browser</string>
|
||||||
<string name="system_browser">System browser</string>
|
<string name="system_browser">System browser</string>
|
||||||
|
<string name="add_muted_word_short">Add word</string>
|
||||||
</resources>
|
</resources>
|
Loading…
Reference in New Issue