Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 263c7477 authored by James Kung's avatar James Kung
Browse files

New layout for selected city with remove button

Bug: 10449456
Change-Id: Iacaa75ec9c283cb4b1cc5ab73eff0b1ced22587a
parent 5e03fe74
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -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>
+32 −4
Original line number Diff line number Diff line
@@ -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;
@@ -127,7 +128,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();

@@ -138,6 +139,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));
@@ -230,7 +233,6 @@ public class CitiesActivity extends Activity implements OnCheckedChangeListener,
            sortCities(mSortType);
        }


        private void loadCities(Context c) {
            mCities = Utils.loadCitiesFromXml(c);
            if (mCities == null) {
@@ -301,14 +303,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);
@@ -335,6 +362,8 @@ public class CitiesActivity extends Activity implements OnCheckedChangeListener,
            TextView name;
            TextView time;
            CheckBox selected;
            ImageView selectedPin;
            ImageView remove;
        }

        public void set24HoursMode(Context c) {
@@ -378,7 +407,6 @@ public class CitiesActivity extends Activity implements OnCheckedChangeListener,
        private boolean isEmpty(Object[] array) {
            return array == null || array.length == 0;
        }

    }

    @Override