Skip to content
This repository has been archived by the owner on Sep 6, 2019. It is now read-only.

Commit

Permalink
Workaround to make listview entry partly clickable, preserving copy
Browse files Browse the repository at this point in the history
Refs #1424
  • Loading branch information
M66B committed Feb 22, 2014
1 parent 4f63f03 commit 6494ed8
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 43 deletions.
64 changes: 36 additions & 28 deletions res/layout/usageentry.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,40 +2,48 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:baselineAligned="false"
android:orientation="horizontal" >

<TextView
android:id="@+id/tvTime"
android:layout_width="60dip"
<LinearLayout
android:id="@+id/llUsage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textIsSelectable="false" />
android:orientation="horizontal" >

<ImageView
android:id="@+id/imgIcon"
android:layout_width="16dip"
android:layout_height="16dip"
android:layout_gravity="center_vertical"
android:layout_marginRight="2dip"
android:contentDescription="@string/help_application" />
<TextView
android:id="@+id/tvTime"
android:layout_width="60dip"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textIsSelectable="false" />

<ImageView
android:id="@+id/imgRestricted"
android:layout_width="16dip"
android:layout_height="16dip"
android:layout_gravity="center_vertical"
android:layout_marginRight="2dip"
android:contentDescription="@string/help_used"
android:src="@drawable/presence_busy" />
<ImageView
android:id="@+id/imgIcon"
android:layout_width="16dip"
android:layout_height="16dip"
android:layout_gravity="center_vertical"
android:layout_marginRight="2dip"
android:contentDescription="@string/help_application" />

<TextView
android:id="@+id/tvApp"
android:layout_width="45dip"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textIsSelectable="false" />
<ImageView
android:id="@+id/imgRestricted"
android:layout_width="16dip"
android:layout_height="16dip"
android:layout_gravity="center_vertical"
android:layout_marginRight="2dip"
android:contentDescription="@string/help_used"
android:src="@drawable/presence_busy" />

<TextView
android:id="@+id/tvApp"
android:layout_width="45dip"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textIsSelectable="false" />
</LinearLayout>

<LinearLayout
android:layout_width="0dip"
Expand Down
33 changes: 18 additions & 15 deletions src/biz/bokhorst/xprivacy/ActivityUsage.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Filter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

Expand Down Expand Up @@ -73,20 +73,6 @@ protected void onCreate(Bundle savedInstanceState) {
UsageTask usageTask = new UsageTask();
usageTask.executeOnExecutor(mExecutor, (Object) null);

// Listen for clicks
ListView lvUsage = (ListView) findViewById(R.id.lvUsage);
lvUsage.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long arg) {
PRestriction usageData = mUsageAdapter.getItem(position);
Intent intent = new Intent(ActivityUsage.this, ActivityApp.class);
intent.putExtra(ActivityApp.cUid, usageData.uid);
intent.putExtra(ActivityApp.cRestrictionName, usageData.restrictionName);
intent.putExtra(ActivityApp.cMethodName, usageData.methodName);
startActivity(intent);
}
});

// Up navigation
getActionBar().setDisplayHomeAsUpEnabled(true);
}
Expand Down Expand Up @@ -223,6 +209,7 @@ protected void publishResults(CharSequence constraint, FilterResults results) {
private class ViewHolder {
private View row;
private int position;
public LinearLayout llUsage;
public TextView tvTime;
public ImageView imgIcon;
public ImageView imgRestricted;
Expand All @@ -233,6 +220,7 @@ private class ViewHolder {
public ViewHolder(View theRow, int thePosition) {
row = theRow;
position = thePosition;
llUsage = (LinearLayout) row.findViewById(R.id.llUsage);
tvTime = (TextView) row.findViewById(R.id.tvTime);
imgIcon = (ImageView) row.findViewById(R.id.imgIcon);
imgRestricted = (ImageView) row.findViewById(R.id.imgRestricted);
Expand Down Expand Up @@ -276,6 +264,21 @@ protected void onPostExecute(Object result) {
if (holder.position == position && result != null) {
holder.imgIcon.setImageDrawable(icon);
holder.imgIcon.setVisibility(View.VISIBLE);

View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View view) {
PRestriction usageData = mUsageAdapter.getItem(position);
Intent intent = new Intent(ActivityUsage.this, ActivityApp.class);
intent.putExtra(ActivityApp.cUid, usageData.uid);
intent.putExtra(ActivityApp.cRestrictionName, usageData.restrictionName);
intent.putExtra(ActivityApp.cMethodName, usageData.methodName);
startActivity(intent);
}
};

holder.llUsage.setOnClickListener(listener);
holder.tvRestriction.setOnClickListener(listener);
}
}
}
Expand Down

0 comments on commit 6494ed8

Please sign in to comment.