super.onViewCreated(view, savedInstanceState);
setHasOptionsMenu(true);
- getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
+ final boolean readOnly = getActivity().getIntent().getBooleanExtra(VpnProfileDataSource.KEY_READ_ONLY, false);
+ getListView().setChoiceMode(readOnly ? ListView.CHOICE_MODE_NONE : ListView.CHOICE_MODE_MULTIPLE);
mAdapter = new SelectedApplicationsAdapter(getActivity());
+ mAdapter.setReadOnly(readOnly);
setListAdapter(mAdapter);
setListShown(false);
@Override
public void onListItemClick(ListView l, View v, int position, long id)
{
+ if (mAdapter.isReadOnly())
+ {
+ return;
+ }
+
super.onListItemClick(l, v, position, id);
SelectedApplicationEntry item = (SelectedApplicationEntry)getListView().getItemAtPosition(position);
item.setSelected(!item.isSelected());
{
Intent intent = new Intent(VpnProfileDetailActivity.this, SelectedApplicationsActivity.class);
intent.putExtra(VpnProfileDataSource.KEY_SELECTED_APPS_LIST, new ArrayList<>(mSelectedApps));
+ intent.putExtra(VpnProfileDataSource.KEY_READ_ONLY, mProfile.isReadOnly());
mSelectApplications.launch(intent);
}
});
public class SelectedApplicationsAdapter extends BaseAdapter implements Filterable
{
- private Context mContext;
+ private final Context mContext;
private final Object mLock = new Object();
- private List<SelectedApplicationEntry> mData;
+ private final List<SelectedApplicationEntry> mData;
private List<SelectedApplicationEntry> mDataFiltered;
private SelectedApplicationsFilter mFilter;
+ private boolean mReadOnly;
public SelectedApplicationsAdapter(Context context)
{
SelectedApplicationEntry item = getItem(position);
CheckableLinearLayout checkable = (CheckableLinearLayout)view;
checkable.setChecked(item.isSelected());
- ImageView icon = (ImageView)view.findViewById(R.id.app_icon);
+ checkable.setEnabled(!mReadOnly);
+ ImageView icon = view.findViewById(R.id.app_icon);
icon.setImageDrawable(item.getIcon());
- TextView text = (TextView)view.findViewById(R.id.app_name);
+ TextView text = view.findViewById(R.id.app_name);
text.setText(item.toString());
return view;
}
return mFilter;
}
+ public boolean isReadOnly()
+ {
+ return mReadOnly;
+ }
+
+ public void setReadOnly(final boolean readOnly)
+ {
+ this.mReadOnly = readOnly;
+ }
+
private class SelectedApplicationsFilter extends Filter
{