summaryrefslogtreecommitdiffstats
path: root/mobile/android/base/java/org/mozilla/gecko/home/PanelRecyclerViewAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/android/base/java/org/mozilla/gecko/home/PanelRecyclerViewAdapter.java')
-rw-r--r--mobile/android/base/java/org/mozilla/gecko/home/PanelRecyclerViewAdapter.java137
1 files changed, 0 insertions, 137 deletions
diff --git a/mobile/android/base/java/org/mozilla/gecko/home/PanelRecyclerViewAdapter.java b/mobile/android/base/java/org/mozilla/gecko/home/PanelRecyclerViewAdapter.java
deleted file mode 100644
index fa632bccd..000000000
--- a/mobile/android/base/java/org/mozilla/gecko/home/PanelRecyclerViewAdapter.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-package org.mozilla.gecko.home;
-
-import org.mozilla.gecko.R;
-
-import android.content.Context;
-import android.database.Cursor;
-import android.support.v7.widget.RecyclerView;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.FrameLayout;
-
-public class PanelRecyclerViewAdapter extends RecyclerView.Adapter<PanelRecyclerViewAdapter.PanelViewHolder> {
- private static final int VIEW_TYPE_ITEM = 0;
- private static final int VIEW_TYPE_BACK = 1;
- private static final int VIEW_TYPE_HEADER = 2;
-
- public static class PanelViewHolder extends RecyclerView.ViewHolder {
- public static PanelViewHolder create(View itemView) {
-
- // Wrap in a FrameLayout that will handle the highlight on touch
- FrameLayout frameLayout = (FrameLayout) LayoutInflater.from(itemView.getContext())
- .inflate(R.layout.panel_item_container, null);
-
- frameLayout.addView(itemView, 0, new FrameLayout.LayoutParams(
- ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
-
- return new PanelViewHolder(frameLayout);
- }
-
- private PanelViewHolder(View itemView) {
- super(itemView);
- }
- }
-
- private final Context context;
- private final HomeConfig.ViewConfig viewConfig;
- private PanelLayout.FilterManager filterManager;
- private Cursor cursor;
-
- public PanelRecyclerViewAdapter(Context context, HomeConfig.ViewConfig viewConfig) {
- this.context = context;
- this.viewConfig = viewConfig;
- }
-
- public void setFilterManager(PanelLayout.FilterManager filterManager) {
- this.filterManager = filterManager;
- }
-
- private boolean isShowingBack() {
- return filterManager != null && filterManager.canGoBack();
- }
-
- public void swapCursor(Cursor cursor) {
- this.cursor = cursor;
-
- notifyDataSetChanged();
- }
-
- public Cursor getCursor() {
- return cursor;
- }
-
- @Override
- public int getItemViewType(int position) {
- if (viewConfig.hasHeaderConfig() && position == 0) {
- return VIEW_TYPE_HEADER;
- } else if (isShowingBack() && position == getBackPosition()) {
- return VIEW_TYPE_BACK;
- } else {
- return VIEW_TYPE_ITEM;
- }
- }
-
- @Override
- public PanelViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
- switch (viewType) {
- case VIEW_TYPE_HEADER:
- return PanelViewHolder.create(new PanelHeaderView(context, viewConfig.getHeaderConfig()));
- case VIEW_TYPE_BACK:
- return PanelViewHolder.create(new PanelBackItemView(context, viewConfig.getBackImageUrl()));
- case VIEW_TYPE_ITEM:
- return PanelViewHolder.create(PanelItemView.create(context, viewConfig.getItemType()));
- default:
- throw new IllegalArgumentException("Unknown view type: " + viewType);
- }
- }
-
- @Override
- public void onBindViewHolder(PanelViewHolder panelViewHolder, int position) {
- final View view = ((FrameLayout) panelViewHolder.itemView).getChildAt(0);
-
- if (viewConfig.hasHeaderConfig()) {
- if (position == 0) {
- // Nothing to do here, the header is static
- return;
- }
- }
-
- if (isShowingBack()) {
- if (position == getBackPosition()) {
- final PanelBackItemView item = (PanelBackItemView) view;
- item.updateFromFilter(filterManager.getPreviousFilter());
- return;
- }
- }
-
- int actualPosition = position
- - (isShowingBack() ? 1 : 0)
- - (viewConfig.hasHeaderConfig() ? 1 : 0);
-
- cursor.moveToPosition(actualPosition);
-
- final PanelItemView panelItemView = (PanelItemView) view;
- panelItemView.updateFromCursor(cursor);
- }
-
- private int getBackPosition() {
- return viewConfig.hasHeaderConfig() ? 1 : 0;
- }
-
- @Override
- public int getItemCount() {
- if (cursor == null) {
- return 0;
- }
-
- return cursor.getCount()
- + (isShowingBack() ? 1 : 0)
- + (viewConfig.hasHeaderConfig() ? 1 : 0);
- }
-}