Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/widget/ListAdapterWrapper.java')
-rw-r--r--android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/widget/ListAdapterWrapper.java135
1 files changed, 135 insertions, 0 deletions
diff --git a/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/widget/ListAdapterWrapper.java b/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/widget/ListAdapterWrapper.java
new file mode 100644
index 0000000000..aa6dd0a870
--- /dev/null
+++ b/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/widget/ListAdapterWrapper.java
@@ -0,0 +1,135 @@
+
+package org.holoeverywhere.widget;
+
+import android.database.DataSetObserver;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ListAdapter;
+import android.widget.WrapperListAdapter;
+
+public class ListAdapterWrapper implements WrapperListAdapter {
+ public static interface ListAdapterCallback {
+ public void onChanged();
+
+ public void onInvalidated();
+
+ public View onPrepareView(View view, int position);
+ }
+
+ private final class WrapperDataSetObserver extends DataSetObserver {
+ private DataSetObserver mDataSetObserver;
+
+ public WrapperDataSetObserver(DataSetObserver dataSetObserver) {
+ mDataSetObserver = dataSetObserver;
+ }
+
+ @Override
+ public void onChanged() {
+ mDataSetObserver.onChanged();
+ if (mCallback != null) {
+ mCallback.onChanged();
+ }
+ }
+
+ @Override
+ public void onInvalidated() {
+ mDataSetObserver.onInvalidated();
+ if (mCallback != null) {
+ mCallback.onInvalidated();
+ }
+ }
+ }
+
+ private final ListAdapterCallback mCallback;
+ private DataSetObserver mLastDataSetObserver;
+ private final ListAdapter mWrapped;
+
+ public ListAdapterWrapper(ListAdapter wrapped) {
+ this(wrapped, null);
+ }
+
+ public ListAdapterWrapper(ListAdapter wrapped, ListAdapterCallback callback) {
+ mWrapped = wrapped;
+ mCallback = callback;
+ }
+
+ @Override
+ public boolean areAllItemsEnabled() {
+ return mWrapped.areAllItemsEnabled();
+ }
+
+ @Override
+ public int getCount() {
+ return mWrapped.getCount();
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return mWrapped.getItem(position);
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return mWrapped.getItemId(position);
+ }
+
+ @Override
+ public int getItemViewType(int position) {
+ return mWrapped.getItemViewType(position);
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ return onPrepareView(mWrapped.getView(position, convertView, parent), position);
+ }
+
+ @Override
+ public int getViewTypeCount() {
+ return mWrapped.getViewTypeCount();
+ }
+
+ @Override
+ public ListAdapter getWrappedAdapter() {
+ return mWrapped;
+ }
+
+ @Override
+ public boolean hasStableIds() {
+ return mWrapped.hasStableIds();
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return mWrapped.isEmpty();
+ }
+
+ @Override
+ public boolean isEnabled(int position) {
+ return mWrapped.isEnabled(position);
+ }
+
+ public void notifyDataSetChanged() {
+ if (mLastDataSetObserver != null) {
+ mLastDataSetObserver.onChanged();
+ }
+ }
+
+ public View onPrepareView(View view, int position) {
+ if (mCallback != null) {
+ return mCallback.onPrepareView(view, position);
+ }
+ return view;
+ }
+
+ @Override
+ public void registerDataSetObserver(DataSetObserver dataSetObserver) {
+ mWrapped.registerDataSetObserver(mLastDataSetObserver = new WrapperDataSetObserver(
+ dataSetObserver));
+ }
+
+ @Override
+ public void unregisterDataSetObserver(DataSetObserver dataSetObserver) {
+ mWrapped.unregisterDataSetObserver(mLastDataSetObserver);
+ mLastDataSetObserver = null;
+ }
+}