diff options
Diffstat (limited to 'src/com/android/photos/MultiChoiceManager.java')
-rw-r--r-- | src/com/android/photos/MultiChoiceManager.java | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/src/com/android/photos/MultiChoiceManager.java b/src/com/android/photos/MultiChoiceManager.java index 99685cbfe..137898ce3 100644 --- a/src/com/android/photos/MultiChoiceManager.java +++ b/src/com/android/photos/MultiChoiceManager.java @@ -28,8 +28,6 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.AbsListView.MultiChoiceModeListener; -import android.widget.ShareActionProvider; -import android.widget.ShareActionProvider.OnShareTargetSelectedListener; import org.codeaurora.gallery.R; import com.android.gallery3d.app.TrimVideo; @@ -42,7 +40,7 @@ import java.util.ArrayList; import java.util.List; public class MultiChoiceManager implements MultiChoiceModeListener, - OnShareTargetSelectedListener, SelectionManager.SelectedUriSource { + SelectionManager.SelectedUriSource { public interface Provider { public MultiChoiceManager getMultiChoiceManager(); @@ -61,7 +59,6 @@ public class MultiChoiceManager implements MultiChoiceModeListener, } private SelectionManager mSelectionManager; - private ShareActionProvider mShareActionProvider; private ActionMode mActionMode; private Context mContext; private Delegate mDelegate; @@ -122,7 +119,7 @@ public class MultiChoiceManager implements MultiChoiceModeListener, } } - mSelectionManager.onItemSelectedStateChanged(mShareActionProvider, + mSelectionManager.onItemSelectedStateChanged( mDelegate.getItemMediaType(item), supported, checked); @@ -155,8 +152,21 @@ public class MultiChoiceManager implements MultiChoiceModeListener, MenuInflater inflater = mode.getMenuInflater(); inflater.inflate(R.menu.gallery_multiselect, menu); MenuItem menuItem = menu.findItem(R.id.menu_share); - mShareActionProvider = (ShareActionProvider) menuItem.getActionProvider(); - mShareActionProvider.setOnShareTargetSelectedListener(this); + if (menuItem != null) { + menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + mActionMode.finish(); + Intent shareIntent = mSelectionManager.getShareIntent(); + if (shareIntent != null) { + Intent intent = Intent.createChooser(shareIntent, null); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.startActivity(intent); + } + return true; + } + }); + } updateSelectedTitle(mode); return true; } @@ -169,7 +179,6 @@ public class MultiChoiceManager implements MultiChoiceModeListener, mSelectedShareableUrisArray = new ArrayList<Uri>(); mSelectionManager.onClearSelection(); mSelectionManager.setSelectedUriSource(null); - mShareActionProvider = null; mActionMode = null; } @@ -179,12 +188,6 @@ public class MultiChoiceManager implements MultiChoiceModeListener, return false; } - @Override - public boolean onShareTargetSelected(ShareActionProvider provider, Intent intent) { - mActionMode.finish(); - return false; - } - private static class BulkDeleteTask extends AsyncTask<Void, Void, Void> { private Delegate mDelegate; private List<Object> mPaths; |