aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2013-04-05 00:21:56 -0700
committerGerrit Code Review <gerrit@cyanogenmod.org>2013-04-05 00:21:56 -0700
commitff16b002ab974bec67f60a734ef5ca1bb770db45 (patch)
tree526083b822844b945a9eeca069655532dec7ae99 /src
parent46524321c6f32902bfdc89e1ce7e899320d867fb (diff)
parent801658ac45668fc0eb7cf3427111e551e4a61dbd (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.java9
-rw-r--r--src/com/cyanogenmod/filemanager/ui/dialogs/AssociationsDialog.java35
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);
}
/**