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

Commit 99e509cc authored by Jean Chalard's avatar Jean Chalard
Browse files

Rework the list interface

Display the shortcut in the list, and remove the cross button.

Bug: 6026080
Change-Id: I7f594f07a84e4df3ad5b8160129d92d1a4b0fc28
parent c4c4b916
Loading
Loading
Loading
Loading
+34 −32
Original line number Diff line number Diff line
@@ -17,34 +17,36 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
        android:orientation="horizontal">
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:gravity="center_vertical"
    android:paddingRight="?android:attr/scrollbarSize"
    android:background="?android:attr/selectableItemBackground" >

  <RelativeLayout android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_marginLeft="15dip"
                  android:layout_marginRight="6dip"
                  android:layout_marginTop="6dip"
                  android:layout_marginBottom="6dip"
                  android:layout_weight="1">

    <TextView
            android:id="@android:id/text1"
    <TextView android:id="@+android:id/text1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
            android:layout_weight="1"
              android:singleLine="true"
              android:textAppearance="?android:attr/textAppearanceMedium"
            android:gravity="center_vertical"
            android:paddingLeft="16dip"
            android:minHeight="?android:attr/listPreferredItemHeight"/>
              android:ellipsize="marquee"
              android:fadingEdge="horizontal" />

    <ImageView
            android:id="@+id/divider"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:layout_marginLeft="8dip"
            android:src="@drawable/nav_divider"
        />

    <ImageView
            android:id="@+id/delete_button"
    <TextView android:id="@+android:id/text2"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:padding="8dip"
            android:src="@drawable/ic_item_delete"
            android:background="?android:attr/selectableItemBackground"
        />
              android:layout_below="@android:id/text1"
              android:layout_alignLeft="@android:id/text1"
              android:textAppearance="?android:attr/textAppearanceSmall"
              android:textColor="?android:attr/textColorSecondary"
              android:maxLines="1" />

  </RelativeLayout>

</LinearLayout>
+16 −17
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.database.Cursor;
import android.os.Bundle;
import android.provider.UserDictionary;
import android.text.InputType;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -53,11 +54,11 @@ public class UserDictionarySettings extends ListFragment {
    private static final String TAG = "UserDictionarySettings";

    private static final String[] QUERY_PROJECTION = {
        UserDictionary.Words._ID, UserDictionary.Words.WORD
        UserDictionary.Words._ID, UserDictionary.Words.WORD, UserDictionary.Words.SHORTCUT
    };

    private static final int INDEX_ID = 0;
    private static final int INDEX_WORD = 1;
    // The index of the shortcut in the above array.
    private static final int INDEX_SHORTCUT = 2;

    // Either the locale is empty (means the word is applicable to all locales)
    // or the word equals our current locale
@@ -148,8 +149,8 @@ public class UserDictionarySettings extends ListFragment {
    private ListAdapter createAdapter() {
        return new MyAdapter(getActivity(),
                R.layout.user_dictionary_item, mCursor,
                new String[] { UserDictionary.Words.WORD, UserDictionary.Words._ID },
                new int[] { android.R.id.text1, R.id.delete_button }, this);
                new String[] { UserDictionary.Words.WORD, UserDictionary.Words.SHORTCUT },
                new int[] { android.R.id.text1, android.R.id.text2 }, this);
    }

    @Override
@@ -211,18 +212,22 @@ public class UserDictionarySettings extends ListFragment {
                UserDictionary.Words.CONTENT_URI, DELETE_SELECTION, new String[] { word });
    }

    private static class MyAdapter extends SimpleCursorAdapter implements SectionIndexer,
            View.OnClickListener {
    private static class MyAdapter extends SimpleCursorAdapter implements SectionIndexer {

        private AlphabetIndexer mIndexer;
        private UserDictionarySettings mSettings;

        private ViewBinder mViewBinder = new ViewBinder() {

            public boolean setViewValue(View v, Cursor c, int columnIndex) {
                if (v instanceof ImageView && columnIndex == INDEX_ID) {
                    v.setOnClickListener(MyAdapter.this);
                    v.setTag(c.getString(INDEX_WORD));
                if (columnIndex == INDEX_SHORTCUT) {
                    final String shortcut = c.getString(INDEX_SHORTCUT);
                    if (TextUtils.isEmpty(shortcut)) {
                        v.setVisibility(View.GONE);
                    } else {
                        ((TextView)v).setText(shortcut);
                        v.setVisibility(View.VISIBLE);
                    }
                    v.invalidate();
                    return true;
                }

@@ -234,7 +239,6 @@ public class UserDictionarySettings extends ListFragment {
                UserDictionarySettings settings) {
            super(context, layout, c, from, to);

            mSettings = settings;
            if (null != c) {
                final String alphabet = context.getString(
                        com.android.internal.R.string.fast_scroll_alphabet);
@@ -255,10 +259,5 @@ public class UserDictionarySettings extends ListFragment {
        public Object[] getSections() {
            return null == mIndexer ? null : mIndexer.getSections();
        }

        public void onClick(View v) {
            UserDictionarySettings.deleteWord((String) v.getTag(),
                    mSettings.getActivity().getContentResolver());
        }
    }
}