Loading res/layout/city_list_item.xml +18 −1 Original line number Diff line number Diff line Loading @@ -28,19 +28,36 @@ android:button="@drawable/red_checkbox" android:layout_height="wrap_content" android:layout_width="wrap_content" /> <ImageView android:id="@+id/city_selected_icon" android:clickable="false" android:src="@drawable/ic_location" android:layout_height="wrap_content" android:layout_width="wrap_content" /> <TextView android:id="@+id/city_name" style="@style/city_name" android:textColor="@color/clock_white" android:paddingStart="16dip" android:paddingEnd="10dip" android:layout_height="wrap_content" android:layout_width="0dip" android:layout_weight="1" android:ellipsize="start" /> android:ellipsize="end" android:singleLine="true" /> <TextView android:id="@+id/city_time" style="@style/city_time" android:textColor="@color/clock_gray" android:layout_marginRight="8dip" android:layout_height="wrap_content" android:layout_width="wrap_content"/> <ImageView android:id="@+id/city_remove" android:src="@android:drawable/ic_menu_close_clear_cancel" android:background="@drawable/item_background" android:layout_marginRight="4dip" android:gravity="center_vertical" android:layout_height="wrap_content" android:layout_width="wrap_content" /> </LinearLayout> src/com/android/deskclock/worldclock/CitiesActivity.java +32 −4 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.Filter; import android.widget.Filterable; import android.widget.ImageView; import android.widget.ListView; import android.widget.SearchView; import android.widget.SearchView.OnQueryTextListener; Loading Loading @@ -126,7 +127,7 @@ public class CitiesActivity extends Activity implements OnCheckedChangeListener, private Filter mFilter = new Filter() { @Override protected FilterResults performFiltering(CharSequence constraint) { protected synchronized FilterResults performFiltering(CharSequence constraint) { FilterResults results = new FilterResults(); String modifiedQuery = constraint.toString().trim().toUpperCase(); Loading @@ -137,6 +138,8 @@ public class CitiesActivity extends Activity implements OnCheckedChangeListener, // If the search query is empty, add in the selected cities if (TextUtils.isEmpty(modifiedQuery)) { if (mSelectedCities.length > 0) { sectionHeaders.add("+"); sectionPositions.add(0); filteredList.add(new CityObj(mSelectedCitiesHeaderString, mSelectedCitiesHeaderString, null)); Loading Loading @@ -229,7 +232,6 @@ public class CitiesActivity extends Activity implements OnCheckedChangeListener, sortCities(mSortType); } private void loadCities(Context c) { mCities = Utils.loadCitiesFromXml(c); if (mCities == null) { Loading Loading @@ -300,14 +302,39 @@ public class CitiesActivity extends Activity implements OnCheckedChangeListener, // Make sure to recycle a City view only if (view == null) { view = mInflater.inflate(R.layout.city_list_item, parent, false); CityViewHolder holder = new CityViewHolder(); final CityViewHolder holder = new CityViewHolder(); holder.name = (TextView) view.findViewById(R.id.city_name); holder.time = (TextView) view.findViewById(R.id.city_time); holder.selected = (CheckBox) view.findViewById(R.id.city_onoff); holder.selectedPin = (ImageView) view.findViewById(R.id.city_selected_icon); holder.remove = (ImageView) view.findViewById(R.id.city_remove); holder.remove.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { CompoundButton b = holder.selected; onCheckedChanged(b, false); b.setChecked(false); mAdapter.refreshSelectedCities(); } }); view.setTag(holder); } view.setOnClickListener(CitiesActivity.this); CityViewHolder holder = (CityViewHolder) view.getTag(); if (mCitiesList.isFastScrollEnabled() && position <= mUserSelectedCities.size()) { holder.selected.setVisibility(View.GONE); holder.time.setVisibility(View.GONE); holder.remove.setVisibility(View.VISIBLE); holder.selectedPin.setVisibility(View.VISIBLE); view.setEnabled(false); } else { holder.selected.setVisibility(View.VISIBLE); holder.time.setVisibility(View.VISIBLE); holder.remove.setVisibility(View.GONE); holder.selectedPin.setVisibility(View.GONE); view.setEnabled(true); } holder.selected.setTag(c); holder.selected.setChecked(mUserSelectedCities.containsKey(c.mCityId)); holder.selected.setOnCheckedChangeListener(CitiesActivity.this); Loading @@ -334,6 +361,8 @@ public class CitiesActivity extends Activity implements OnCheckedChangeListener, TextView name; TextView time; CheckBox selected; ImageView selectedPin; ImageView remove; } public void set24HoursMode(Context c) { Loading Loading @@ -377,7 +406,6 @@ public class CitiesActivity extends Activity implements OnCheckedChangeListener, private boolean isEmpty(Object[] array) { return array == null || array.length == 0; } } @Override Loading Loading
res/layout/city_list_item.xml +18 −1 Original line number Diff line number Diff line Loading @@ -28,19 +28,36 @@ android:button="@drawable/red_checkbox" android:layout_height="wrap_content" android:layout_width="wrap_content" /> <ImageView android:id="@+id/city_selected_icon" android:clickable="false" android:src="@drawable/ic_location" android:layout_height="wrap_content" android:layout_width="wrap_content" /> <TextView android:id="@+id/city_name" style="@style/city_name" android:textColor="@color/clock_white" android:paddingStart="16dip" android:paddingEnd="10dip" android:layout_height="wrap_content" android:layout_width="0dip" android:layout_weight="1" android:ellipsize="start" /> android:ellipsize="end" android:singleLine="true" /> <TextView android:id="@+id/city_time" style="@style/city_time" android:textColor="@color/clock_gray" android:layout_marginRight="8dip" android:layout_height="wrap_content" android:layout_width="wrap_content"/> <ImageView android:id="@+id/city_remove" android:src="@android:drawable/ic_menu_close_clear_cancel" android:background="@drawable/item_background" android:layout_marginRight="4dip" android:gravity="center_vertical" android:layout_height="wrap_content" android:layout_width="wrap_content" /> </LinearLayout>
src/com/android/deskclock/worldclock/CitiesActivity.java +32 −4 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.Filter; import android.widget.Filterable; import android.widget.ImageView; import android.widget.ListView; import android.widget.SearchView; import android.widget.SearchView.OnQueryTextListener; Loading Loading @@ -126,7 +127,7 @@ public class CitiesActivity extends Activity implements OnCheckedChangeListener, private Filter mFilter = new Filter() { @Override protected FilterResults performFiltering(CharSequence constraint) { protected synchronized FilterResults performFiltering(CharSequence constraint) { FilterResults results = new FilterResults(); String modifiedQuery = constraint.toString().trim().toUpperCase(); Loading @@ -137,6 +138,8 @@ public class CitiesActivity extends Activity implements OnCheckedChangeListener, // If the search query is empty, add in the selected cities if (TextUtils.isEmpty(modifiedQuery)) { if (mSelectedCities.length > 0) { sectionHeaders.add("+"); sectionPositions.add(0); filteredList.add(new CityObj(mSelectedCitiesHeaderString, mSelectedCitiesHeaderString, null)); Loading Loading @@ -229,7 +232,6 @@ public class CitiesActivity extends Activity implements OnCheckedChangeListener, sortCities(mSortType); } private void loadCities(Context c) { mCities = Utils.loadCitiesFromXml(c); if (mCities == null) { Loading Loading @@ -300,14 +302,39 @@ public class CitiesActivity extends Activity implements OnCheckedChangeListener, // Make sure to recycle a City view only if (view == null) { view = mInflater.inflate(R.layout.city_list_item, parent, false); CityViewHolder holder = new CityViewHolder(); final CityViewHolder holder = new CityViewHolder(); holder.name = (TextView) view.findViewById(R.id.city_name); holder.time = (TextView) view.findViewById(R.id.city_time); holder.selected = (CheckBox) view.findViewById(R.id.city_onoff); holder.selectedPin = (ImageView) view.findViewById(R.id.city_selected_icon); holder.remove = (ImageView) view.findViewById(R.id.city_remove); holder.remove.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { CompoundButton b = holder.selected; onCheckedChanged(b, false); b.setChecked(false); mAdapter.refreshSelectedCities(); } }); view.setTag(holder); } view.setOnClickListener(CitiesActivity.this); CityViewHolder holder = (CityViewHolder) view.getTag(); if (mCitiesList.isFastScrollEnabled() && position <= mUserSelectedCities.size()) { holder.selected.setVisibility(View.GONE); holder.time.setVisibility(View.GONE); holder.remove.setVisibility(View.VISIBLE); holder.selectedPin.setVisibility(View.VISIBLE); view.setEnabled(false); } else { holder.selected.setVisibility(View.VISIBLE); holder.time.setVisibility(View.VISIBLE); holder.remove.setVisibility(View.GONE); holder.selectedPin.setVisibility(View.GONE); view.setEnabled(true); } holder.selected.setTag(c); holder.selected.setChecked(mUserSelectedCities.containsKey(c.mCityId)); holder.selected.setOnCheckedChangeListener(CitiesActivity.this); Loading @@ -334,6 +361,8 @@ public class CitiesActivity extends Activity implements OnCheckedChangeListener, TextView name; TextView time; CheckBox selected; ImageView selectedPin; ImageView remove; } public void set24HoursMode(Context c) { Loading Loading @@ -377,7 +406,6 @@ public class CitiesActivity extends Activity implements OnCheckedChangeListener, private boolean isEmpty(Object[] array) { return array == null || array.length == 0; } } @Override Loading