Ejemplo n.º 1
0
  public SimpleSectionedListAdapter(
      Context context,
      BaseAdapter baseAdapter,
      int sectionResourceId,
      int headerTextViewResId,
      int headerImageViewResId) {
    mLayoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    mSectionResourceId = sectionResourceId;
    mHeaderTextViewResId = headerTextViewResId;
    mHeaderImageViewResId = headerImageViewResId;
    mBaseAdapter = baseAdapter;
    this.context = context;
    mBaseAdapter.registerDataSetObserver(
        new DataSetObserver() {
          @Override
          public void onChanged() {
            mValid = !mBaseAdapter.isEmpty();
            notifyDataSetChanged();
          }

          @Override
          public void onInvalidated() {
            mValid = false;
            notifyDataSetInvalidated();
          }
        });
  }
Ejemplo n.º 2
0
  /**
   * @param adapter a regular ListAdapter, not all methods if the list adapter are used by the
   *     flipview
   */
  public void setAdapter(ListAdapter adapter) {
    if (mAdapter != null) {
      mAdapter.unregisterDataSetObserver(dataSetObserver);
    }

    // remove all the current views
    removeAllViews();
    mActivePageQueue.clear();

    mAdapter = adapter;
    mPageCount = adapter == null ? 0 : mAdapter.getCount();

    // put the current page within the new adapter range
    mCurrentPage =
        Math.min(mPageCount - 1, mCurrentPage == INVALID_PAGE_POSITION ? 0 : mCurrentPage);

    if (adapter != null) {
      mAdapter.registerDataSetObserver(dataSetObserver);
    }

    if (mCurrentPage != INVALID_PAGE_POSITION) {
      mRecycler.setViewTypeCount(mAdapter.getViewTypeCount());
      mCurrentPageId = mAdapter.getItemId(mCurrentPage);
      addView(viewForPage(mCurrentPage));
    } else {
      mPageCount = 0;
      mFlipDistance = 0;
    }

    updateEmptyStatus();
  }
Ejemplo n.º 3
0
  /**
   * @param adapter a regular ListAdapter, not all methods if the list adapter are used by the
   *     flipview
   */
  public void setAdapter(ListAdapter adapter) {
    if (mAdapter != null) {
      mAdapter.unregisterDataSetObserver(dataSetObserver);
    }

    // remove all the current views
    removeAllViews();

    mAdapter = adapter;
    mPageCount = adapter == null ? 0 : mAdapter.getCount();

    if (adapter != null) {
      mAdapter.registerDataSetObserver(dataSetObserver);

      mRecycler.setViewTypeCount(mAdapter.getViewTypeCount());
      mRecycler.invalidateScraps();
    }

    // TODO pretty confusing
    // this will be correctly set in setFlipDistance method
    mCurrentPageIndex = INVALID_PAGE_POSITION;
    mFlipDistance = INVALID_FLIP_DISTANCE;
    setFlipDistance(0);

    updateEmptyStatus();
  }
 @Override
 public void registerDataSetObserver(DataSetObserver observer) {
   mDataSetObservable.registerObserver(observer);
   if (mAdapter != null) {
     mAdapter.registerDataSetObserver(observer);
   }
 }
 @Override
 public void setAdapter(ListAdapter adapter) {
   mAdapter = null;
   if (adapter != null && adapter instanceof SlideBaseAdapter) {
     mAdapter = (SlideBaseAdapter) adapter;
     mAdapter.setSlideMode(mSlideMode);
     mAdapter.setSlideLeftAction(mSlideLeftAction);
     mAdapter.setSlideRightAction(mSlideRightAction);
   }
   super.setAdapter(adapter);
   mTouchListener.reset();
   if (adapter != null) {
     adapter.registerDataSetObserver(
         new DataSetObserver() {
           @Override
           public void onChanged() {
             super.onChanged();
             if (DEUBG) {
               Log.e(TAG, "Adapter data has changed");
             }
             if (mTouchListener.isOpend()) {
               mTouchListener.closeOpenedItem();
             }
             mTouchListener.reset();
           }
         });
   }
 }
 @Override
 public void setAdapter(ListAdapter adapter) {
   if (mAdapter != null) {
     mAdapter.unregisterDataSetObserver(mDataObserver);
   }
   mAdapter = adapter;
   mAdapter.registerDataSetObserver(mDataObserver);
   reset();
 }
Ejemplo n.º 7
0
 /** @see android.widget.ListView#setAdapter(android.widget.ListAdapter) */
 @Override
 public void setAdapter(ListAdapter adapter) {
   super.setAdapter(adapter);
   touchListener.resetItems();
   adapter.registerDataSetObserver(
       new DataSetObserver() {
         @Override
         public void onChanged() {
           super.onChanged();
           onListChanged();
           touchListener.resetItems();
         }
       });
 }
Ejemplo n.º 8
0
  public void setAdapter(ListAdapter adapter) {
    if (mObserver == null) {
      mObserver = new PopupDataSetObserver();
    } else if (mAdapter != null) {
      mAdapter.unregisterDataSetObserver(mObserver);
    }
    mAdapter = adapter;
    if (mAdapter != null) {
      adapter.registerDataSetObserver(mObserver);
    }

    if (mDropDownList != null) {
      mDropDownList.setAdapter(mAdapter);
    }
  }
  public void setAdapter(ListAdapter adapter) {
    if (mAdapter != null && mDataSetObserver != null) {
      mAdapter.unregisterDataSetObserver(mDataSetObserver);
    }

    resetList();
    mAdapter = adapter;
    if (mAdapter != null) {
      mDataSetObserver = new AdapterDataSetObserver();
      mAdapter.registerDataSetObserver(mDataSetObserver);
      setupChildren();
    }

    requestLayout();
  }
Ejemplo n.º 10
0
  @Override
  public void setAdapter(ListAdapter adapter) {
    if (mAdapter != null) {
      mAdapter.unregisterDataSetObserver(mAdapterDataObserver);
    }

    if (adapter != null) {
      // Clear so we can notify again as we run out of data
      mHasNotifiedRunningLowOnData = false;

      mAdapter = adapter;
      mAdapter.registerDataSetObserver(mAdapterDataObserver);
    }

    initializeRecycledViewCache(mAdapter.getViewTypeCount());
    reset();
  }
Ejemplo n.º 11
0
  @Override
  public void setAdapter(ListAdapter adapter) {
    if (mListAdapter != null) mListAdapter.unregisterDataSetObserver(mDataSetObserver);

    clearStack();
    mTopCard = null;
    mListAdapter = adapter;
    mNextAdapterPosition = 0;
    adapter.registerDataSetObserver(mDataSetObserver);

    ensureFull();

    if (getChildCount() != 0) {
      mTopCard = getChildAt(getChildCount() - 1);
      mTopCard.setLayerType(LAYER_TYPE_HARDWARE, null);
    }
    mNumberOfCards = getAdapter().getCount();
    requestLayout();
  }
Ejemplo n.º 12
0
  @Override
  public void setAdapter(ListAdapter adapter) {
    mAdapter = new WrapAdapter(adapter);
    adapter.registerDataSetObserver(
        new DataSetObserver() {
          @Override
          public void onChanged() {
            super.onChanged();
            requestLayout();
            mAdapter.notifyDataSetChanged();
          }

          @Override
          public void onInvalidated() {
            super.onInvalidated();
            requestLayout();
            mAdapter.notifyDataSetInvalidated();
          }
        });
    super.setAdapter(mAdapter);
  }
Ejemplo n.º 13
0
  public SectionedGridAdapter(final Context context, final BaseAdapter baseAdapter) {
    mHeaderHeight = getHeaderHeight();
    mNormalCellHeight = getNormalCellHeight();
    // mNormalCellWidth = getNormalCellWidth();
    mBaseAdapter = baseAdapter;
    mContext = context;
    mBaseAdapter.registerDataSetObserver(
        new DataSetObserver() {
          @Override
          public void onChanged() {
            mValid = !mBaseAdapter.isEmpty();
            notifyDataSetChanged();
          }

          @Override
          public void onInvalidated() {
            mValid = false;
            notifyDataSetInvalidated();
          }
        });
  }
  @Override
  public void setAdapter(ListAdapter adapter) {

    // assert adapter in debug mode
    /*		if (BuildConfig.DEBUG && adapter != null) {
    	if (!(adapter instanceof PinnedSectionListAdapter))
    		throw new IllegalArgumentException("Does your adapter implement PinnedSectionListAdapter?");
    	if (adapter.getViewTypeCount() < 2)
    		throw new IllegalArgumentException("Does your adapter handle at least two types" +
    				" of views in getViewTypeCount() method: items and sections?");
    }*/

    // unregister observer at old adapter and register on new one
    ListAdapter oldAdapter = getAdapter();
    if (oldAdapter != null) oldAdapter.unregisterDataSetObserver(mDataSetObserver);
    if (adapter != null) adapter.registerDataSetObserver(mDataSetObserver);

    // destroy pinned shadow, if new adapter is not same as old one
    if (oldAdapter != adapter) destroyPinnedShadow();

    super.setAdapter(adapter);
  }
Ejemplo n.º 15
0
 @Override
 public void registerDataSetObserver(DataSetObserver observer) {
   mAdapter.registerDataSetObserver(observer);
 }
    public AdapterWrapper(final ListAdapter adapter) {
      this.adapter = adapter;

      adapter.registerDataSetObserver(observer);
    }
Ejemplo n.º 17
0
 @Override
 public void registerDataSetObserver(final DataSetObserver observer) {
   wrapped.registerDataSetObserver(observer);
 }
 public void registerDataSetObserver(DataSetObserver observer) {
   if (mAdapter != null) {
     mAdapter.registerDataSetObserver(observer);
   }
 }
Ejemplo n.º 19
0
 /**
  * Adds a new adapter to the roster of things to appear in the aggregate list.
  *
  * @param adapter Source for row views for this section
  */
 public void addAdapter(ListAdapter adapter) {
   pieces.add(adapter);
   adapter.registerDataSetObserver(new CascadeDataSetObserver());
 }