diff options
| author | Danny Baumann <dannybaumann@web.de> | 2013-04-05 00:21:56 -0700 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2013-04-05 00:21:56 -0700 |
| commit | ff16b002ab974bec67f60a734ef5ca1bb770db45 (patch) | |
| tree | 526083b822844b945a9eeca069655532dec7ae99 /src | |
| parent | 46524321c6f32902bfdc89e1ce7e899320d867fb (diff) | |
| parent | 801658ac45668fc0eb7cf3427111e551e4a61dbd (diff) | |
Merge "CMFM: Double click to open associated intent" into cm-10.1
Diffstat (limited to 'src')
| -rw-r--r-- | src/com/cyanogenmod/filemanager/adapters/AssociationsAdapter.java | 9 | ||||
| -rw-r--r-- | src/com/cyanogenmod/filemanager/ui/dialogs/AssociationsDialog.java | 35 |
2 files changed, 28 insertions, 16 deletions
diff --git a/src/com/cyanogenmod/filemanager/adapters/AssociationsAdapter.java b/src/com/cyanogenmod/filemanager/adapters/AssociationsAdapter.java index 22f6c3c..8d19428 100644 --- a/src/com/cyanogenmod/filemanager/adapters/AssociationsAdapter.java +++ b/src/com/cyanogenmod/filemanager/adapters/AssociationsAdapter.java @@ -22,6 +22,7 @@ import android.graphics.drawable.Drawable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ImageView; @@ -72,6 +73,7 @@ public class AssociationsAdapter private DataHolder[] mData; + private AdapterView<?> mParent; private final OnItemClickListener mOnItemClickListener; //The resource item layout @@ -86,13 +88,16 @@ public class AssociationsAdapter * Constructor of <code>AssociationsAdapter</code>. * * @param context The current context + * @param parent The adapter view * @param intents The intents info * @param onItemClickListener The listener for listen action clicks */ public AssociationsAdapter( - Context context, List<ResolveInfo> intents, OnItemClickListener onItemClickListener) { + Context context, AdapterView<?> parent, + List<ResolveInfo> intents, OnItemClickListener onItemClickListener) { super(context, RESOURCE_ITEM_NAME, intents); this.mOnItemClickListener = onItemClickListener; + this.mParent = parent; //Do cache of the data for better performance processData(intents); @@ -182,7 +187,7 @@ public class AssociationsAdapter @Override public void onClick(View v) { ViewHolder viewHolder = (ViewHolder)v.getTag(); - this.mOnItemClickListener.onItemClick(null, v, viewHolder.mPosition, v.getId()); + this.mOnItemClickListener.onItemClick(this.mParent, v, viewHolder.mPosition, v.getId()); } } diff --git a/src/com/cyanogenmod/filemanager/ui/dialogs/AssociationsDialog.java b/src/com/cyanogenmod/filemanager/ui/dialogs/AssociationsDialog.java index 1767a40..4686c4b 100644 --- a/src/com/cyanogenmod/filemanager/ui/dialogs/AssociationsDialog.java +++ b/src/com/cyanogenmod/filemanager/ui/dialogs/AssociationsDialog.java @@ -138,7 +138,7 @@ public class AssociationsDialog implements OnItemClickListener { isPlatformSigned && this.mAllowPreferred ? View.VISIBLE : View.GONE); this.mGrid = (GridView)v.findViewById(R.id.associations_gridview); AssociationsAdapter adapter = - new AssociationsAdapter(this.mContext, this.mIntents, this); + new AssociationsAdapter(this.mContext, this.mGrid, this.mIntents, this); this.mGrid.setAdapter(adapter); // Ensure a default title dialog @@ -208,21 +208,28 @@ public class AssociationsDialog implements OnItemClickListener { */ @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { - deselectAll(); - ((ViewGroup)view).setSelected(true); + // If the item is selected, then just open it like ActivityChooserView + // If there is no parent, that means an internal call. In this case ignore it. + if (parent != null && ((ViewGroup)view).isSelected()) { + this.mDialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick(); + + } else { + deselectAll(); + ((ViewGroup)view).setSelected(true); + + // Internal editors can be associated + boolean isPlatformSigned = AndroidHelper.isAppPlatformSignature(this.mContext); + if (isPlatformSigned && this.mAllowPreferred) { + ResolveInfo ri = getSelected(); + this.mRemember.setVisibility( + IntentsActionPolicy.isInternalEditor(ri) ? + View.INVISIBLE : + View.VISIBLE); + } - // Internal editors can be associated - boolean isPlatformSigned = AndroidHelper.isAppPlatformSignature(this.mContext); - if (isPlatformSigned && this.mAllowPreferred) { - ResolveInfo ri = getSelected(); - this.mRemember.setVisibility( - IntentsActionPolicy.isInternalEditor(ri) ? - View.INVISIBLE : - View.VISIBLE); + // Enable action button + this.mDialog.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(true); } - - // Enable action button - this.mDialog.getButton(DialogInterface.BUTTON_POSITIVE).setEnabled(true); } /** |
