Merge "Long-press on GET_CONTENT app shows its details." into klp-dev
This commit is contained in:
@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.documentsui;
|
||||
|
||||
import static com.android.documentsui.DocumentsActivity.State.ACTION_GET_CONTENT;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.app.FragmentManager;
|
||||
import android.app.FragmentTransaction;
|
||||
@ -25,7 +27,9 @@ import android.content.Intent;
|
||||
import android.content.Loader;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.text.TextUtils;
|
||||
import android.text.format.Formatter;
|
||||
import android.view.LayoutInflater;
|
||||
@ -33,6 +37,7 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.AdapterView.OnItemClickListener;
|
||||
import android.widget.AdapterView.OnItemLongClickListener;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ListView;
|
||||
@ -133,6 +138,13 @@ public class RootsFragment extends Fragment {
|
||||
final State state = ((DocumentsActivity) context).getDisplayState();
|
||||
state.showAdvanced = SettingsActivity.getDisplayAdvancedDevices(context);
|
||||
|
||||
if (state.action == ACTION_GET_CONTENT) {
|
||||
mList.setOnItemLongClickListener(mItemLongClickListener);
|
||||
} else {
|
||||
mList.setOnItemLongClickListener(null);
|
||||
mList.setLongClickable(false);
|
||||
}
|
||||
|
||||
getLoaderManager().restartLoader(2, null, mCallbacks);
|
||||
}
|
||||
|
||||
@ -152,6 +164,13 @@ public class RootsFragment extends Fragment {
|
||||
}
|
||||
}
|
||||
|
||||
private void showAppDetails(ResolveInfo ri) {
|
||||
final Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
|
||||
intent.setData(Uri.fromParts("package", ri.activityInfo.packageName, null));
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
private OnItemClickListener mItemListener = new OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
@ -167,6 +186,19 @@ public class RootsFragment extends Fragment {
|
||||
}
|
||||
};
|
||||
|
||||
private OnItemLongClickListener mItemLongClickListener = new OnItemLongClickListener() {
|
||||
@Override
|
||||
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
final Item item = mAdapter.getItem(position);
|
||||
if (item instanceof AppItem) {
|
||||
showAppDetails(((AppItem) item).info);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
private static abstract class Item {
|
||||
private final int mLayoutId;
|
||||
|
||||
|
Reference in New Issue
Block a user