diff options
Diffstat (limited to 'src/com/android/gallery3d/app/AlbumSetPage.java')
-rw-r--r-- | src/com/android/gallery3d/app/AlbumSetPage.java | 764 |
1 files changed, 0 insertions, 764 deletions
diff --git a/src/com/android/gallery3d/app/AlbumSetPage.java b/src/com/android/gallery3d/app/AlbumSetPage.java deleted file mode 100644 index dd9d8ec41..000000000 --- a/src/com/android/gallery3d/app/AlbumSetPage.java +++ /dev/null @@ -1,764 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.gallery3d.app; - -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -import android.graphics.Rect; -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.view.HapticFeedbackConstants; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.view.View.OnClickListener; -import android.widget.Button; -import android.widget.RelativeLayout; -import android.widget.Toast; - -import com.android.gallery3d.R; -import com.android.gallery3d.common.Utils; -import com.android.gallery3d.data.DataManager; -import com.android.gallery3d.data.MediaDetails; -import com.android.gallery3d.data.MediaItem; -import com.android.gallery3d.data.MediaObject; -import com.android.gallery3d.data.MediaSet; -import com.android.gallery3d.data.Path; -import com.android.gallery3d.glrenderer.FadeTexture; -import com.android.gallery3d.glrenderer.GLCanvas; -import com.android.gallery3d.picasasource.PicasaSource; -import com.android.gallery3d.settings.GallerySettings; -import com.android.gallery3d.ui.ActionModeHandler; -import com.android.gallery3d.ui.ActionModeHandler.ActionModeListener; -import com.android.gallery3d.ui.AlbumSetSlotRenderer; -import com.android.gallery3d.ui.DetailsHelper; -import com.android.gallery3d.ui.DetailsHelper.CloseListener; -import com.android.gallery3d.ui.GLRoot; -import com.android.gallery3d.ui.GLView; -import com.android.gallery3d.ui.SelectionManager; -import com.android.gallery3d.ui.SlotView; -import com.android.gallery3d.ui.SynchronizedHandler; -import com.android.gallery3d.util.Future; -import com.android.gallery3d.util.GalleryUtils; -import com.android.gallery3d.util.HelpUtils; - -import java.lang.ref.WeakReference; -import java.util.ArrayList; - -public class AlbumSetPage extends ActivityState implements - SelectionManager.SelectionListener, GalleryActionBar.ClusterRunner, - EyePosition.EyePositionListener, MediaSet.SyncListener { - @SuppressWarnings("unused") - private static final String TAG = "AlbumSetPage"; - - private static final int MSG_PICK_ALBUM = 1; - - public static final String KEY_MEDIA_PATH = "media-path"; - public static final String KEY_SET_TITLE = "set-title"; - public static final String KEY_SET_SUBTITLE = "set-subtitle"; - public static final String KEY_SELECTED_CLUSTER_TYPE = "selected-cluster"; - - private static final int DATA_CACHE_SIZE = 256; - private static final int REQUEST_DO_ANIMATION = 1; - - private static final int BIT_LOADING_RELOAD = 1; - private static final int BIT_LOADING_SYNC = 2; - - private boolean mIsActive = false; - private SlotView mSlotView; - private AlbumSetSlotRenderer mAlbumSetView; - private Config.AlbumSetPage mConfig; - - private MediaSet mMediaSet; - private String mTitle; - private String mSubtitle; - private boolean mShowClusterMenu; - private GalleryActionBar mActionBar; - private int mSelectedAction; - - protected SelectionManager mSelectionManager; - private AlbumSetDataLoader mAlbumSetDataAdapter; - - private boolean mGetContent; - private boolean mGetAlbum; - private ActionModeHandler mActionModeHandler; - private DetailsHelper mDetailsHelper; - private MyDetailsSource mDetailsSource; - private boolean mShowDetails; - private EyePosition mEyePosition; - private Handler mHandler; - - // The eyes' position of the user, the origin is at the center of the - // device and the unit is in pixels. - private float mX; - private float mY; - private float mZ; - - private Future<Integer> mSyncTask = null; - - private int mLoadingBits = 0; - private boolean mInitialSynced = false; - - private Button mCameraButton; - private boolean mShowedEmptyToastForSelf = false; - - @Override - protected int getBackgroundColorId() { - return R.color.albumset_background; - } - - private final GLView mRootPane = new GLView() { - private final float mMatrix[] = new float[16]; - - @Override - protected void onLayout( - boolean changed, int left, int top, int right, int bottom) { - mEyePosition.resetPosition(); - - int slotViewTop = mActionBar.getHeight() + mConfig.paddingTop; - int slotViewBottom = bottom - top - mConfig.paddingBottom; - int slotViewRight = right - left; - - if (mShowDetails) { - mDetailsHelper.layout(left, slotViewTop, right, bottom); - } else { - mAlbumSetView.setHighlightItemPath(null); - } - - mSlotView.layout(0, slotViewTop, slotViewRight, slotViewBottom); - } - - @Override - protected void render(GLCanvas canvas) { - canvas.save(GLCanvas.SAVE_FLAG_MATRIX); - GalleryUtils.setViewPointMatrix(mMatrix, - getWidth() / 2 + mX, getHeight() / 2 + mY, mZ); - canvas.multiplyMatrix(mMatrix, 0); - super.render(canvas); - canvas.restore(); - } - }; - - @Override - public void onEyePositionChanged(float x, float y, float z) { - mRootPane.lockRendering(); - mX = x; - mY = y; - mZ = z; - mRootPane.unlockRendering(); - mRootPane.invalidate(); - } - - @Override - public void onBackPressed() { - if (mShowDetails) { - hideDetails(); - } else if (mSelectionManager.inSelectionMode()) { - mSelectionManager.leaveSelectionMode(); - } else { - super.onBackPressed(); - } - } - - private void getSlotCenter(int slotIndex, int center[]) { - Rect offset = new Rect(); - mRootPane.getBoundsOf(mSlotView, offset); - Rect r = mSlotView.getSlotRect(slotIndex); - int scrollX = mSlotView.getScrollX(); - int scrollY = mSlotView.getScrollY(); - center[0] = offset.left + (r.left + r.right) / 2 - scrollX; - center[1] = offset.top + (r.top + r.bottom) / 2 - scrollY; - } - - public void onSingleTapUp(int slotIndex) { - if (!mIsActive) return; - - if (mSelectionManager.inSelectionMode()) { - MediaSet targetSet = mAlbumSetDataAdapter.getMediaSet(slotIndex); - if (targetSet == null) return; // Content is dirty, we shall reload soon - mSelectionManager.toggle(targetSet.getPath()); - mSlotView.invalidate(); - } else { - // Show pressed-up animation for the single-tap. - mAlbumSetView.setPressedIndex(slotIndex); - mAlbumSetView.setPressedUp(); - mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_PICK_ALBUM, slotIndex, 0), - FadeTexture.DURATION); - } - } - - private static boolean albumShouldOpenInFilmstrip(MediaSet album) { - int itemCount = album.getMediaItemCount(); - ArrayList<MediaItem> list = (itemCount == 1) ? album.getMediaItem(0, 1) : null; - // open in film strip only if there's one item in the album and the item exists - return (list != null && !list.isEmpty()); - } - - WeakReference<Toast> mEmptyAlbumToast = null; - - private void showEmptyAlbumToast(int toastLength) { - Toast toast; - if (mEmptyAlbumToast != null) { - toast = mEmptyAlbumToast.get(); - if (toast != null) { - toast.show(); - return; - } - } - toast = Toast.makeText(mActivity, R.string.empty_album, toastLength); - mEmptyAlbumToast = new WeakReference<Toast>(toast); - toast.show(); - } - - private void hideEmptyAlbumToast() { - if (mEmptyAlbumToast != null) { - Toast toast = mEmptyAlbumToast.get(); - if (toast != null) toast.cancel(); - } - } - - private void pickAlbum(int slotIndex) { - if (!mIsActive) return; - - MediaSet targetSet = mAlbumSetDataAdapter.getMediaSet(slotIndex); - if (targetSet == null) return; // Content is dirty, we shall reload soon - if (targetSet.getTotalMediaItemCount() == 0) { - showEmptyAlbumToast(Toast.LENGTH_SHORT); - return; - } - hideEmptyAlbumToast(); - - String mediaPath = targetSet.getPath().toString(); - - Bundle data = new Bundle(getData()); - int[] center = new int[2]; - getSlotCenter(slotIndex, center); - data.putIntArray(AlbumPage.KEY_SET_CENTER, center); - if (mGetAlbum && targetSet.isLeafAlbum()) { - Activity activity = mActivity; - Intent result = new Intent() - .putExtra(AlbumPicker.KEY_ALBUM_PATH, targetSet.getPath().toString()); - activity.setResult(Activity.RESULT_OK, result); - activity.finish(); - } else if (targetSet.getSubMediaSetCount() > 0) { - data.putString(AlbumSetPage.KEY_MEDIA_PATH, mediaPath); - mActivity.getStateManager().startStateForResult( - AlbumSetPage.class, REQUEST_DO_ANIMATION, data); - } else { - if (!mGetContent && albumShouldOpenInFilmstrip(targetSet)) { - data.putParcelable(PhotoPage.KEY_OPEN_ANIMATION_RECT, - mSlotView.getSlotRect(slotIndex, mRootPane)); - data.putInt(PhotoPage.KEY_INDEX_HINT, 0); - data.putString(PhotoPage.KEY_MEDIA_SET_PATH, - mediaPath); - data.putBoolean(PhotoPage.KEY_START_IN_FILMSTRIP, true); - data.putBoolean(PhotoPage.KEY_IN_CAMERA_ROLL, targetSet.isCameraRoll()); - mActivity.getStateManager().startStateForResult( - FilmstripPage.class, AlbumPage.REQUEST_PHOTO, data); - return; - } - data.putString(AlbumPage.KEY_MEDIA_PATH, mediaPath); - - // We only show cluster menu in the first AlbumPage in stack - boolean inAlbum = mActivity.getStateManager().hasStateClass(AlbumPage.class); - data.putBoolean(AlbumPage.KEY_SHOW_CLUSTER_MENU, !inAlbum); - mActivity.getStateManager().startStateForResult( - AlbumPage.class, REQUEST_DO_ANIMATION, data); - } - } - - private void onDown(int index) { - mAlbumSetView.setPressedIndex(index); - } - - private void onUp(boolean followedByLongPress) { - if (followedByLongPress) { - // Avoid showing press-up animations for long-press. - mAlbumSetView.setPressedIndex(-1); - } else { - mAlbumSetView.setPressedUp(); - } - } - - public void onLongTap(int slotIndex) { - if (mGetContent || mGetAlbum) return; - MediaSet set = mAlbumSetDataAdapter.getMediaSet(slotIndex); - if (set == null) return; - mSelectionManager.setAutoLeaveSelectionMode(true); - mSelectionManager.toggle(set.getPath()); - mSlotView.invalidate(); - } - - @Override - public void doCluster(int clusterType) { - String basePath = mMediaSet.getPath().toString(); - String newPath = FilterUtils.switchClusterPath(basePath, clusterType); - Bundle data = new Bundle(getData()); - data.putString(AlbumSetPage.KEY_MEDIA_PATH, newPath); - data.putInt(KEY_SELECTED_CLUSTER_TYPE, clusterType); - mActivity.getStateManager().switchState(this, AlbumSetPage.class, data); - } - - @Override - public void onCreate(Bundle data, Bundle restoreState) { - super.onCreate(data, restoreState); - initializeViews(); - initializeData(data); - Context context = mActivity.getAndroidContext(); - mGetContent = data.getBoolean(Gallery.KEY_GET_CONTENT, false); - mGetAlbum = data.getBoolean(Gallery.KEY_GET_ALBUM, false); - mTitle = data.getString(AlbumSetPage.KEY_SET_TITLE); - mSubtitle = data.getString(AlbumSetPage.KEY_SET_SUBTITLE); - mEyePosition = new EyePosition(context, this); - mDetailsSource = new MyDetailsSource(); - mActionBar = mActivity.getGalleryActionBar(); - mSelectedAction = data.getInt(AlbumSetPage.KEY_SELECTED_CLUSTER_TYPE, - FilterUtils.CLUSTER_BY_ALBUM); - - mHandler = new SynchronizedHandler(mActivity.getGLRoot()) { - @Override - public void handleMessage(Message message) { - switch (message.what) { - case MSG_PICK_ALBUM: { - pickAlbum(message.arg1); - break; - } - default: throw new AssertionError(message.what); - } - } - }; - } - - @Override - public void onDestroy() { - super.onDestroy(); - cleanupCameraButton(); - mActionModeHandler.destroy(); - } - - private boolean setupCameraButton() { - if (!GalleryUtils.isCameraAvailable(mActivity)) return false; - RelativeLayout galleryRoot = (RelativeLayout) ((Activity) mActivity) - .findViewById(R.id.gallery_root); - if (galleryRoot == null) return false; - - mCameraButton = new Button(mActivity); - mCameraButton.setText(R.string.camera_label); - mCameraButton.setCompoundDrawablesWithIntrinsicBounds(0, R.drawable.frame_overlay_gallery_camera, 0, 0); - mCameraButton.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View arg0) { - GalleryUtils.startCameraActivity(mActivity); - } - }); - RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams( - RelativeLayout.LayoutParams.WRAP_CONTENT, - RelativeLayout.LayoutParams.WRAP_CONTENT); - lp.addRule(RelativeLayout.CENTER_IN_PARENT); - galleryRoot.addView(mCameraButton, lp); - return true; - } - - private void cleanupCameraButton() { - if (mCameraButton == null) return; - RelativeLayout galleryRoot = (RelativeLayout) ((Activity) mActivity) - .findViewById(R.id.gallery_root); - if (galleryRoot == null) return; - galleryRoot.removeView(mCameraButton); - mCameraButton = null; - } - - private void showCameraButton() { - if (mCameraButton == null && !setupCameraButton()) return; - mCameraButton.setVisibility(View.VISIBLE); - } - - private void hideCameraButton() { - if (mCameraButton == null) return; - mCameraButton.setVisibility(View.GONE); - } - - private void clearLoadingBit(int loadingBit) { - mLoadingBits &= ~loadingBit; - if (mLoadingBits == 0 && mIsActive) { - if (mAlbumSetDataAdapter.size() == 0) { - // If this is not the top of the gallery folder hierarchy, - // tell the parent AlbumSetPage instance to handle displaying - // the empty album toast, otherwise show it within this - // instance - if (mActivity.getStateManager().getStateCount() > 1) { - Intent result = new Intent(); - result.putExtra(AlbumPage.KEY_EMPTY_ALBUM, true); - setStateResult(Activity.RESULT_OK, result); - mActivity.getStateManager().finishState(this); - } else { - mShowedEmptyToastForSelf = true; - showEmptyAlbumToast(Toast.LENGTH_LONG); - mSlotView.invalidate(); - showCameraButton(); - } - return; - } - } - // Hide the empty album toast if we are in the root instance of - // AlbumSetPage and the album is no longer empty (for instance, - // after a sync is completed and web albums have been synced) - if (mShowedEmptyToastForSelf) { - mShowedEmptyToastForSelf = false; - hideEmptyAlbumToast(); - hideCameraButton(); - } - } - - private void setLoadingBit(int loadingBit) { - mLoadingBits |= loadingBit; - } - - @Override - public void onPause() { - super.onPause(); - mIsActive = false; - mAlbumSetDataAdapter.pause(); - mAlbumSetView.pause(); - mActionModeHandler.pause(); - mEyePosition.pause(); - DetailsHelper.pause(); - // Call disableClusterMenu to avoid receiving callback after paused. - // Don't hide menu here otherwise the list menu will disappear earlier than - // the action bar, which is janky and unwanted behavior. - mActionBar.disableClusterMenu(false); - if (mSyncTask != null) { - mSyncTask.cancel(); - mSyncTask = null; - clearLoadingBit(BIT_LOADING_SYNC); - } - } - - @Override - public void onResume() { - super.onResume(); - mIsActive = true; - setContentPane(mRootPane); - - // Set the reload bit here to prevent it exit this page in clearLoadingBit(). - setLoadingBit(BIT_LOADING_RELOAD); - mAlbumSetDataAdapter.resume(); - - mAlbumSetView.resume(); - mEyePosition.resume(); - mActionModeHandler.resume(); - if (mShowClusterMenu) { - mActionBar.enableClusterMenu(mSelectedAction, this); - } - if (!mInitialSynced) { - setLoadingBit(BIT_LOADING_SYNC); - mSyncTask = mMediaSet.requestSync(AlbumSetPage.this); - } - } - - private void initializeData(Bundle data) { - String mediaPath = data.getString(AlbumSetPage.KEY_MEDIA_PATH); - mMediaSet = mActivity.getDataManager().getMediaSet(mediaPath); - mSelectionManager.setSourceMediaSet(mMediaSet); - mAlbumSetDataAdapter = new AlbumSetDataLoader( - mActivity, mMediaSet, DATA_CACHE_SIZE); - mAlbumSetDataAdapter.setLoadingListener(new MyLoadingListener()); - mAlbumSetView.setModel(mAlbumSetDataAdapter); - } - - private void initializeViews() { - mSelectionManager = new SelectionManager(mActivity, true); - mSelectionManager.setSelectionListener(this); - - mConfig = Config.AlbumSetPage.get(mActivity); - mSlotView = new SlotView(mActivity, mConfig.slotViewSpec); - mAlbumSetView = new AlbumSetSlotRenderer( - mActivity, mSelectionManager, mSlotView, mConfig.labelSpec, - mConfig.placeholderColor); - mSlotView.setSlotRenderer(mAlbumSetView); - mSlotView.setListener(new SlotView.SimpleListener() { - @Override - public void onDown(int index) { - AlbumSetPage.this.onDown(index); - } - - @Override - public void onUp(boolean followedByLongPress) { - AlbumSetPage.this.onUp(followedByLongPress); - } - - @Override - public void onSingleTapUp(int slotIndex) { - AlbumSetPage.this.onSingleTapUp(slotIndex); - } - - @Override - public void onLongTap(int slotIndex) { - AlbumSetPage.this.onLongTap(slotIndex); - } - }); - - mActionModeHandler = new ActionModeHandler(mActivity, mSelectionManager); - mActionModeHandler.setActionModeListener(new ActionModeListener() { - @Override - public boolean onActionItemClicked(MenuItem item) { - return onItemSelected(item); - } - }); - mRootPane.addComponent(mSlotView); - } - - @Override - protected boolean onCreateActionBar(Menu menu) { - Activity activity = mActivity; - final boolean inAlbum = mActivity.getStateManager().hasStateClass(AlbumPage.class); - MenuInflater inflater = getSupportMenuInflater(); - - if (mGetContent) { - inflater.inflate(R.menu.pickup, menu); - int typeBits = mData.getInt( - Gallery.KEY_TYPE_BITS, DataManager.INCLUDE_IMAGE); - mActionBar.setTitle(GalleryUtils.getSelectionModePrompt(typeBits)); - } else if (mGetAlbum) { - inflater.inflate(R.menu.pickup, menu); - mActionBar.setTitle(R.string.select_album); - } else { - inflater.inflate(R.menu.albumset, menu); - boolean wasShowingClusterMenu = mShowClusterMenu; - mShowClusterMenu = !inAlbum; - boolean selectAlbums = !inAlbum && - mActionBar.getClusterTypeAction() == FilterUtils.CLUSTER_BY_ALBUM; - MenuItem selectItem = menu.findItem(R.id.action_select); - selectItem.setTitle(activity.getString( - selectAlbums ? R.string.select_album : R.string.select_group)); - - MenuItem cameraItem = menu.findItem(R.id.action_camera); - cameraItem.setVisible(GalleryUtils.isCameraAvailable(activity)); - - FilterUtils.setupMenuItems(mActionBar, mMediaSet.getPath(), false); - - Intent helpIntent = HelpUtils.getHelpIntent(activity); - - MenuItem helpItem = menu.findItem(R.id.action_general_help); - helpItem.setVisible(helpIntent != null); - if (helpIntent != null) helpItem.setIntent(helpIntent); - - mActionBar.setTitle(mTitle); - mActionBar.setSubtitle(mSubtitle); - if (mShowClusterMenu != wasShowingClusterMenu) { - if (mShowClusterMenu) { - mActionBar.enableClusterMenu(mSelectedAction, this); - } else { - mActionBar.disableClusterMenu(true); - } - } - } - return true; - } - - @Override - protected boolean onItemSelected(MenuItem item) { - Activity activity = mActivity; - switch (item.getItemId()) { - case R.id.action_cancel: - activity.setResult(Activity.RESULT_CANCELED); - activity.finish(); - return true; - case R.id.action_select: - mSelectionManager.setAutoLeaveSelectionMode(false); - mSelectionManager.enterSelectionMode(); - return true; - case R.id.action_details: - if (mAlbumSetDataAdapter.size() != 0) { - if (mShowDetails) { - hideDetails(); - } else { - showDetails(); - } - } else { - Toast.makeText(activity, - activity.getText(R.string.no_albums_alert), - Toast.LENGTH_SHORT).show(); - } - return true; - case R.id.action_camera: { - GalleryUtils.startCameraActivity(activity); - return true; - } - case R.id.action_manage_offline: { - Bundle data = new Bundle(); - String mediaPath = mActivity.getDataManager().getTopSetPath( - DataManager.INCLUDE_ALL); - data.putString(AlbumSetPage.KEY_MEDIA_PATH, mediaPath); - mActivity.getStateManager().startState(ManageCachePage.class, data); - return true; - } - case R.id.action_sync_picasa_albums: { - PicasaSource.requestSync(activity); - return true; - } - case R.id.action_settings: { - activity.startActivity(new Intent(activity, GallerySettings.class)); - return true; - } - default: - return false; - } - } - - @Override - protected void onStateResult(int requestCode, int resultCode, Intent data) { - if (data != null && data.getBooleanExtra(AlbumPage.KEY_EMPTY_ALBUM, false)) { - showEmptyAlbumToast(Toast.LENGTH_SHORT); - } - switch (requestCode) { - case REQUEST_DO_ANIMATION: { - mSlotView.startRisingAnimation(); - } - } - } - - private String getSelectedString() { - int count = mSelectionManager.getSelectedCount(); - int action = mActionBar.getClusterTypeAction(); - int string = action == FilterUtils.CLUSTER_BY_ALBUM - ? R.plurals.number_of_albums_selected - : R.plurals.number_of_groups_selected; - String format = mActivity.getResources().getQuantityString(string, count); - return String.format(format, count); - } - - @Override - public void onSelectionModeChange(int mode) { - switch (mode) { - case SelectionManager.ENTER_SELECTION_MODE: { - mActionBar.disableClusterMenu(true); - mActionModeHandler.startActionMode(); - performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); - break; - } - case SelectionManager.LEAVE_SELECTION_MODE: { - mActionModeHandler.finishActionMode(); - if (mShowClusterMenu) { - mActionBar.enableClusterMenu(mSelectedAction, this); - } - mRootPane.invalidate(); - break; - } - case SelectionManager.SELECT_ALL_MODE: { - mActionModeHandler.updateSupportedOperation(); - mRootPane.invalidate(); - break; - } - } - } - - @Override - public void onSelectionChange(Path path, boolean selected) { - mActionModeHandler.setTitle(getSelectedString()); - mActionModeHandler.updateSupportedOperation(path, selected); - } - - private void hideDetails() { - mShowDetails = false; - mDetailsHelper.hide(); - mAlbumSetView.setHighlightItemPath(null); - mSlotView.invalidate(); - } - - private void showDetails() { - mShowDetails = true; - if (mDetailsHelper == null) { - mDetailsHelper = new DetailsHelper(mActivity, mRootPane, mDetailsSource); - mDetailsHelper.setCloseListener(new CloseListener() { - @Override - public void onClose() { - hideDetails(); - } - }); - } - mDetailsHelper.show(); - } - - @Override - public void onSyncDone(final MediaSet mediaSet, final int resultCode) { - if (resultCode == MediaSet.SYNC_RESULT_ERROR) { - Log.d(TAG, "onSyncDone: " + Utils.maskDebugInfo(mediaSet.getName()) + " result=" - + resultCode); - } - ((Activity) mActivity).runOnUiThread(new Runnable() { - @Override - public void run() { - GLRoot root = mActivity.getGLRoot(); - root.lockRenderThread(); - try { - if (resultCode == MediaSet.SYNC_RESULT_SUCCESS) { - mInitialSynced = true; - } - clearLoadingBit(BIT_LOADING_SYNC); - if (resultCode == MediaSet.SYNC_RESULT_ERROR && mIsActive) { - Log.w(TAG, "failed to load album set"); - } - } finally { - root.unlockRenderThread(); - } - } - }); - } - - private class MyLoadingListener implements LoadingListener { - @Override - public void onLoadingStarted() { - setLoadingBit(BIT_LOADING_RELOAD); - } - - @Override - public void onLoadingFinished(boolean loadingFailed) { - clearLoadingBit(BIT_LOADING_RELOAD); - } - } - - private class MyDetailsSource implements DetailsHelper.DetailsSource { - private int mIndex; - - @Override - public int size() { - return mAlbumSetDataAdapter.size(); - } - - @Override - public int setIndex() { - Path id = mSelectionManager.getSelected(false).get(0); - mIndex = mAlbumSetDataAdapter.findSet(id); - return mIndex; - } - - @Override - public MediaDetails getDetails() { - MediaObject item = mAlbumSetDataAdapter.getMediaSet(mIndex); - if (item != null) { - mAlbumSetView.setHighlightItemPath(item.getPath()); - return item.getDetails(); - } else { - return null; - } - } - } -} |