Add interface for homepapge swipe to dismiss.

- Create an ItemTouchHelper.
- Attach the helper to the recycler view.
- Pass change to the adapter to handle the swipe.

Bug: 126214056
Test: rebuild
Change-Id: I312ee1357158db84f9ee328be4722fe067984604
This commit is contained in:
Yi-Ling Chuang
2019-03-26 17:16:27 +08:00
parent dedeb2bd18
commit 5bf939e934
3 changed files with 82 additions and 3 deletions

View File

@@ -27,9 +27,11 @@ import android.view.ViewGroup;
import androidx.loader.app.LoaderManager;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.ItemTouchHelper;
import com.android.settings.R;
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.homepage.contextualcards.slices.SwipeDismissalDelegate;
import com.android.settings.overlay.FeatureFactory;
public class ContextualCardsFragment extends InstrumentedFragment implements
@@ -41,6 +43,7 @@ public class ContextualCardsFragment extends InstrumentedFragment implements
private GridLayoutManager mLayoutManager;
private ContextualCardsAdapter mContextualCardsAdapter;
private ContextualCardManager mContextualCardManager;
private ItemTouchHelper mItemTouchHelper;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -63,16 +66,20 @@ public class ContextualCardsFragment extends InstrumentedFragment implements
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final Context context = getContext();
final View rootView = inflater.inflate(R.layout.settings_homepage, container, false);
mCardsContainer = rootView.findViewById(R.id.card_container);
mLayoutManager = new GridLayoutManager(getActivity(), SPAN_COUNT,
GridLayoutManager.VERTICAL, false /* reverseLayout */);
mCardsContainer.setLayoutManager(mLayoutManager);
mContextualCardsAdapter = new ContextualCardsAdapter(getContext(),
this /* lifecycleOwner */, mContextualCardManager);
mContextualCardsAdapter = new ContextualCardsAdapter(context, this /* lifecycleOwner */,
mContextualCardManager);
mCardsContainer.setAdapter(mContextualCardsAdapter);
mContextualCardManager.setListener(mContextualCardsAdapter);
mCardsContainer.setListener(this);
mItemTouchHelper = new ItemTouchHelper(
new SwipeDismissalDelegate(context, mContextualCardsAdapter));
mItemTouchHelper.attachToRecyclerView(mCardsContainer);
return rootView;
}