mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1013419 - Close the share dialog after sharing. r=bnicholson
This commit is contained in:
parent
d1b9bb188a
commit
a8cd19f8c2
@ -21,13 +21,14 @@ import android.widget.LinearLayout;
|
||||
import android.os.Build;
|
||||
|
||||
public class MenuItemActionView extends LinearLayout
|
||||
implements GeckoMenuItem.Layout {
|
||||
implements GeckoMenuItem.Layout,
|
||||
View.OnClickListener {
|
||||
private static final String LOGTAG = "GeckoMenuItemActionView";
|
||||
|
||||
private MenuItemDefault mMenuItem;
|
||||
private MenuItemActionBar mMenuButton;
|
||||
private List<ImageButton> mActionButtons;
|
||||
private View.OnClickListener mActionButtonListener;
|
||||
private List<View.OnClickListener> mActionButtonListeners = new ArrayList<View.OnClickListener>();
|
||||
|
||||
public MenuItemActionView(Context context) {
|
||||
this(context, null);
|
||||
@ -107,12 +108,8 @@ public class MenuItemActionView extends LinearLayout
|
||||
mMenuButton.setOnLongClickListener(listener);
|
||||
}
|
||||
|
||||
public void setActionButtonClickListener(View.OnClickListener listener) {
|
||||
mActionButtonListener = listener;
|
||||
|
||||
for (ImageButton button : mActionButtons) {
|
||||
button.setOnClickListener(listener);
|
||||
}
|
||||
public void addActionButtonClickListener(View.OnClickListener listener) {
|
||||
mActionButtonListeners.add(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -149,7 +146,7 @@ public class MenuItemActionView extends LinearLayout
|
||||
if (drawable != null) {
|
||||
ImageButton button = new ImageButton(getContext(), null, R.attr.menuItemShareActionButtonStyle);
|
||||
button.setImageDrawable(drawable);
|
||||
button.setOnClickListener(mActionButtonListener);
|
||||
button.setOnClickListener(this);
|
||||
button.setTag(count);
|
||||
|
||||
final int height = (int) (getResources().getDimension(R.dimen.menu_item_row_height));
|
||||
@ -162,4 +159,11 @@ public class MenuItemActionView extends LinearLayout
|
||||
addView(button, count);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
for (View.OnClickListener listener : mActionButtonListeners) {
|
||||
listener.onClick(view);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -175,16 +175,31 @@ public class PromptListAdapter extends ArrayAdapter<PromptListItem> {
|
||||
return -1;
|
||||
}
|
||||
|
||||
private View getActionView(PromptListItem item) {
|
||||
GeckoActionProvider provider = GeckoActionProvider.getForType(item.getIntent().getType(), getContext());
|
||||
private View getActionView(PromptListItem item, final ListView list, final int position) {
|
||||
final GeckoActionProvider provider = GeckoActionProvider.getForType(item.getIntent().getType(), getContext());
|
||||
provider.setIntent(item.getIntent());
|
||||
return provider.onCreateActionView();
|
||||
|
||||
final MenuItemActionView view = (MenuItemActionView) provider.onCreateActionView();
|
||||
// If a quickshare button is clicked, we need to close the dialog.
|
||||
view.addActionButtonClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ListView.OnItemClickListener listener = list.getOnItemClickListener();
|
||||
if (listener != null) {
|
||||
listener.onItemClick(list, view, position, position);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
private void updateActionView(final PromptListItem item, final MenuItemActionView view, final ListView list, final int position) {
|
||||
view.setTitle(item.label);
|
||||
view.setIcon(item.getIcon());
|
||||
view.setSubMenuIndicator(item.isParent);
|
||||
|
||||
// If the share button is clicked, we need to close the dialog and then show an intent chooser
|
||||
view.setMenuItemClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@ -221,7 +236,7 @@ public class PromptListAdapter extends ArrayAdapter<PromptListItem> {
|
||||
|
||||
if (convertView == null) {
|
||||
if (type == VIEW_TYPE_ACTIONS) {
|
||||
convertView = getActionView(item);
|
||||
convertView = getActionView(item, (ListView) parent, position);
|
||||
} else {
|
||||
int resourceId = mResourceId;
|
||||
if (item.isGroup) {
|
||||
|
@ -88,7 +88,7 @@ public class GeckoActionProvider {
|
||||
// Create the view and set its data model.
|
||||
ActivityChooserModel dataModel = ActivityChooserModel.get(mContext, mHistoryFileName);
|
||||
MenuItemActionView view = new MenuItemActionView(mContext, null);
|
||||
view.setActionButtonClickListener(mCallbacks);
|
||||
view.addActionButtonClickListener(mCallbacks);
|
||||
|
||||
final PackageManager packageManager = mContext.getPackageManager();
|
||||
int historySize = dataModel.getDistinctActivityCountInHistory();
|
||||
|
Loading…
Reference in New Issue
Block a user