diff --git a/android/src/com/example/travelguide/thumb/ObbThumbnailProvider.java b/android/src/com/example/travelguide/thumb/ObbThumbnailProvider.java index 8d4dc13..cce43bf 100644 --- a/android/src/com/example/travelguide/thumb/ObbThumbnailProvider.java +++ b/android/src/com/example/travelguide/thumb/ObbThumbnailProvider.java @@ -1,5 +1,6 @@ package com.example.travelguide.thumb; +import static com.example.travelguide.util.Utils.notNull; import android.content.Context; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; @@ -12,6 +13,19 @@ import com.example.travelguide.util.Expansion; public class ObbThumbnailProvider extends OnObbStateChangeListener implements ThumbnailsProvider { + // Mount events + public interface MountStateChangedListener + { + public void onMountStateChanged(int newState); + } + + private MountStateChangedListener mStateChangedListener; + public void setOnMountChangedListener(MountStateChangedListener listener) + { + mStateChangedListener = listener; + } + // !Mount event + private final static String TAG = "TravelObb"; private final Context mContext; @@ -24,11 +38,20 @@ public class ObbThumbnailProvider extends OnObbStateChangeListener implements Th mSm.mountObb(Expansion.getPath(), null, this); } + public ObbThumbnailProvider(Context context, MountStateChangedListener listener) + { + this(context); + mStateChangedListener = listener; + } + @Override public void onObbStateChange(String path, int state) { super.onObbStateChange(path, state); Log.d(TAG, "path: " + path + " state: " + state); + + if (notNull(mStateChangedListener)) + mStateChangedListener.onMountStateChanged(state); } @Override diff --git a/android/src/com/example/travelguide/util/Utils.java b/android/src/com/example/travelguide/util/Utils.java index 0f7ccfe..d54ef8b 100644 --- a/android/src/com/example/travelguide/util/Utils.java +++ b/android/src/com/example/travelguide/util/Utils.java @@ -147,4 +147,9 @@ public class Utils return Math.log(value)/Math.log(1024); } + public static boolean notNull(Object o) + { + return o != null; + } + } diff --git a/android/src/com/example/travelguide/widget/StorageArticleInfoAdapter.java b/android/src/com/example/travelguide/widget/StorageArticleInfoAdapter.java index 33aecdd..277445f 100644 --- a/android/src/com/example/travelguide/widget/StorageArticleInfoAdapter.java +++ b/android/src/com/example/travelguide/widget/StorageArticleInfoAdapter.java @@ -8,13 +8,14 @@ import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; -import com.susanin.travelguide.R; import com.example.travelguide.article.ArticleInfo; import com.example.travelguide.cpp.Storage; import com.example.travelguide.thumb.ObbThumbnailProvider; import com.example.travelguide.thumb.ThumbnailsProvider; +import com.susanin.travelguide.R; public class StorageArticleInfoAdapter extends BaseAdapter + implements ObbThumbnailProvider.MountStateChangedListener { private final Storage mStorage; private final Context mContext; @@ -24,7 +25,7 @@ public class StorageArticleInfoAdapter extends BaseAdapter { mStorage = storage; mContext = context; - mThumbnailsProvider = new ObbThumbnailProvider(context); + mThumbnailsProvider = new ObbThumbnailProvider(context, this); } @Override @@ -88,4 +89,10 @@ public class StorageArticleInfoAdapter extends BaseAdapter } } + @Override + public void onMountStateChanged(int newState) + { + notifyDataSetChanged(); + } + }