From b064db0d1a7ffcedddd691b35d57e2cdb0268883 Mon Sep 17 00:00:00 2001 From: Michael Chan Date: Tue, 9 Apr 2013 14:18:45 -0700 Subject: Fixed disallow result labels to be clicked Bug: 8578919 Change-Id: I85d903e9df3aacfac0c08c156285c9a631883fe5 --- .../timezonepicker/TimeZoneFilterTypeAdapter.java | 5 +++++ src/com/android/timezonepicker/TimeZonePickerView.java | 1 + .../android/timezonepicker/TimeZoneResultAdapter.java | 16 ++++++++++------ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/com/android/timezonepicker/TimeZoneFilterTypeAdapter.java b/src/com/android/timezonepicker/TimeZoneFilterTypeAdapter.java index 0c8d420..4cec7b4 100644 --- a/src/com/android/timezonepicker/TimeZoneFilterTypeAdapter.java +++ b/src/com/android/timezonepicker/TimeZoneFilterTypeAdapter.java @@ -96,6 +96,11 @@ public class TimeZoneFilterTypeAdapter extends BaseAdapter implements Filterable mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } + @Override + public boolean areAllItemsEnabled() { + return false; + } + @Override public boolean isEnabled(int position) { return !mLiveResults.get(position).showLabel; diff --git a/src/com/android/timezonepicker/TimeZonePickerView.java b/src/com/android/timezonepicker/TimeZonePickerView.java index 50b7afb..e41db2b 100644 --- a/src/com/android/timezonepicker/TimeZonePickerView.java +++ b/src/com/android/timezonepicker/TimeZonePickerView.java @@ -60,6 +60,7 @@ public class TimeZonePickerView extends LinearLayout implements TextWatcher, OnI mResultAdapter = new TimeZoneResultAdapter(mContext, tzd, l); ListView timeZoneList = (ListView) findViewById(R.id.timezonelist); timeZoneList.setAdapter(mResultAdapter); + timeZoneList.setOnItemClickListener(mResultAdapter); mAutoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.searchBox); mFilterAdapter = new TimeZoneFilterTypeAdapter(mContext, tzd, mResultAdapter); diff --git a/src/com/android/timezonepicker/TimeZoneResultAdapter.java b/src/com/android/timezonepicker/TimeZoneResultAdapter.java index 3adbf43..7e9744b 100644 --- a/src/com/android/timezonepicker/TimeZoneResultAdapter.java +++ b/src/com/android/timezonepicker/TimeZoneResultAdapter.java @@ -22,8 +22,9 @@ import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; import android.view.View; -import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.TextView; @@ -35,7 +36,7 @@ import java.util.Arrays; import java.util.Iterator; import java.util.List; -public class TimeZoneResultAdapter extends BaseAdapter implements OnClickListener, +public class TimeZoneResultAdapter extends BaseAdapter implements OnItemClickListener, OnSetFilterListener { private static final String TAG = "TimeZoneResultAdapter"; private static final int VIEW_TAG_TIME_ZONE = R.id.time_zone; @@ -261,6 +262,11 @@ public class TimeZoneResultAdapter extends BaseAdapter implements OnClickListene return mTimeZoneData.get(mFilteredTimeZoneIndices[position]); } + @Override + public boolean areAllItemsEnabled() { + return false; + } + @Override public boolean isEnabled(int position) { return mFilteredTimeZoneIndices[position] >= 0; @@ -277,7 +283,6 @@ public class TimeZoneResultAdapter extends BaseAdapter implements OnClickListene if (v == null) { v = mInflater.inflate(R.layout.time_zone_item, null); - v.setOnClickListener(this); ViewHolder.setupViewHolder(v); } @@ -323,14 +328,13 @@ public class TimeZoneResultAdapter extends BaseAdapter implements OnClickListene return true; } - // Implements OnClickListener + // Implements OnItemClickListener @Override - public void onClick(View v) { + public void onItemClick(AdapterView parent, View v, int position, long id) { if (mTimeZoneSetListener != null) { TimeZoneInfo tzi = (TimeZoneInfo) v.getTag(VIEW_TAG_TIME_ZONE); mTimeZoneSetListener.onTimeZoneSet(tzi); saveRecentTimezone(tzi.mTzId); } } - } -- cgit v1.2.3