diff options
6 files changed, 29 insertions, 38 deletions
| diff --git a/OpenPGP-Keychain/res/drawable/header_selector.xml b/OpenPGP-Keychain/res/drawable/header_selector.xml deleted file mode 100644 index 5dfb8265c..000000000 --- a/OpenPGP-Keychain/res/drawable/header_selector.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<selector xmlns:android="http://schemas.android.com/apk/res/android" > -     -    <item android:state_pressed="true" android:drawable="@color/header_pressed" /> -    <item android:drawable="@color/header_normal" /> - -</selector>
\ No newline at end of file diff --git a/OpenPGP-Keychain/res/layout/key_list_public_fragment.xml b/OpenPGP-Keychain/res/layout/key_list_public_fragment.xml index 451230a1f..2aca81cd6 100644 --- a/OpenPGP-Keychain/res/layout/key_list_public_fragment.xml +++ b/OpenPGP-Keychain/res/layout/key_list_public_fragment.xml @@ -14,7 +14,6 @@          android:paddingBottom="16dp"          android:paddingLeft="16dp"          android:paddingRight="32dp" -        android:paddingTop="16dp"          android:scrollbarStyle="outsideOverlay" />      <TextView diff --git a/OpenPGP-Keychain/res/layout/stickylist_header.xml b/OpenPGP-Keychain/res/layout/stickylist_header.xml index b8906c2db..cbd65bb72 100644 --- a/OpenPGP-Keychain/res/layout/stickylist_header.xml +++ b/OpenPGP-Keychain/res/layout/stickylist_header.xml @@ -1,8 +1,7 @@  <?xml version="1.0" encoding="utf-8"?>  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:layout_width="match_parent" -    android:layout_height="wrap_content" -    android:background="@color/abs__background_holo_light" > +    android:layout_height="wrap_content" >      <se.emilsjolander.stickylistheaders.views.UnderlineTextView          android:id="@+id/stickylist_header_text" diff --git a/OpenPGP-Keychain/res/values/colors.xml b/OpenPGP-Keychain/res/values/colors.xml index 7831a63a0..780137181 100644 --- a/OpenPGP-Keychain/res/values/colors.xml +++ b/OpenPGP-Keychain/res/values/colors.xml @@ -3,8 +3,5 @@      <color name="emphasis">#31b6e7</color>      <color name="bg_gray">#cecbce</color> -    <color name="header_normal">#ffe74c3c</color> -    <color name="header_pressed">#ffc0392b</color> -    <color name="menu_section_header">#FFDDDDDD</color>  </resources>
\ No newline at end of file diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyListPublicFragment.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyListPublicFragment.java index 84adaef99..7bc0bcd96 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyListPublicFragment.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyListPublicFragment.java @@ -44,19 +44,28 @@ import com.actionbarsherlock.app.SherlockFragment;  /**   * Public key list with sticky list headers.   *  - * - uses StickyListHeaders library - custom adapter: KeyListPublicAdapter + * - uses StickyListHeaders library   *  - * TODO: - fix loader with spinning animation - fix design - fix view holder in adapter + * - custom adapter: KeyListPublicAdapter + *  + * TODO: - fix view holder in adapter, fix loader   *    */  public class KeyListPublicFragment extends SherlockFragment implements          AdapterView.OnItemClickListener, LoaderManager.LoaderCallbacks<Cursor> {      private KeyListPublicActivity mKeyListPublicActivity; -      private KeyListPublicAdapter mAdapter; +    private StickyListHeadersListView mStickyList; -    StickyListHeadersListView stickyList; +    /** +     * Load custom layout with StickyListView from library +     */ +    @Override +    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { +        View view = inflater.inflate(R.layout.key_list_public_fragment, container, false); +        return view; +    }      /**       * Define Adapter and Loader on create of Activity @@ -67,20 +76,17 @@ public class KeyListPublicFragment extends SherlockFragment implements          super.onActivityCreated(savedInstanceState);          mKeyListPublicActivity = (KeyListPublicActivity) getActivity(); +        mStickyList = (StickyListHeadersListView) getActivity().findViewById(R.id.list); -        stickyList = (StickyListHeadersListView) getActivity().findViewById(R.id.list); - -        stickyList.setOnItemClickListener(this); -        // stickyList.setOnHeaderClickListener(this); -        // stickyList.setOnStickyHeaderOffsetChangedListener(this); +        mStickyList.setOnItemClickListener(this);          // mStickyList.addHeaderView(inflater.inflate(R.layout.list_header, null));          // mStickyList.addFooterView(inflater.inflate(R.layout.list_footer, null)); -        stickyList.setEmptyView(getActivity().findViewById(R.id.empty)); -        stickyList.setAreHeadersSticky(true); -        stickyList.setDrawingListUnderStickyHeader(true); -        stickyList.setFastScrollEnabled(true); +        mStickyList.setEmptyView(getActivity().findViewById(R.id.empty)); +        mStickyList.setAreHeadersSticky(true); +        mStickyList.setDrawingListUnderStickyHeader(false); +        mStickyList.setFastScrollEnabled(true);          try { -            stickyList.setFastScrollAlwaysVisible(true); +            mStickyList.setFastScrollAlwaysVisible(true);          } catch (ApiLevelTooLowException e) {          } @@ -101,12 +107,6 @@ public class KeyListPublicFragment extends SherlockFragment implements          getLoaderManager().initLoader(0, null, this);      } -    @Override -    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { -        View view = inflater.inflate(R.layout.key_list_public_fragment, container, false); -        return view; -    } -      // These are the rows that we will retrieve.      static final String[] PROJECTION = new String[] { KeyRings._ID, KeyRings.MASTER_KEY_ID,              UserIds.USER_ID }; @@ -134,7 +134,7 @@ public class KeyListPublicFragment extends SherlockFragment implements          mAdapter = new KeyListPublicAdapter(mKeyListPublicActivity, data, Id.type.public_key,                  userIdIndex); -        stickyList.setAdapter(mAdapter); +        mStickyList.setAdapter(mAdapter);          // The list should now be shown.          if (isResumed()) { @@ -152,9 +152,11 @@ public class KeyListPublicFragment extends SherlockFragment implements          mAdapter.swapCursor(null);      } +    /** +     * On click on item, start key view activity +     */      @Override      public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { -        // start key view on click          Intent detailsIntent = new Intent(mKeyListPublicActivity, KeyViewActivity.class);          detailsIntent.setData(KeychainContract.KeyRings.buildPublicKeyRingsUri(Long.toString(id)));          startActivity(detailsIntent); diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/adapter/KeyListPublicAdapter.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/adapter/KeyListPublicAdapter.java index 108fad917..ef3a0d228 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/adapter/KeyListPublicAdapter.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/adapter/KeyListPublicAdapter.java @@ -86,7 +86,6 @@ public class KeyListPublicAdapter extends CursorAdapter implements StickyListHea      @Override      public View getHeaderView(int position, View convertView, ViewGroup parent) { -          HeaderViewHolder holder;          if (convertView == null) {              holder = new HeaderViewHolder(); @@ -97,6 +96,7 @@ public class KeyListPublicAdapter extends CursorAdapter implements StickyListHea              holder = (HeaderViewHolder) convertView.getTag();          } +        // similar to getView in CursorAdapter          if (!mDataValid) {              // no data available at this point              Log.d(Constants.TAG, "getHeaderView: No data available at this point!"); @@ -108,17 +108,18 @@ public class KeyListPublicAdapter extends CursorAdapter implements StickyListHea              throw new IllegalStateException("couldn't move cursor to position " + position);          } -        // set header text as first char in name +        // set header text as first char in user id          String headerText = "" + mCursor.getString(mSectionColumnIndex).subSequence(0, 1).charAt(0);          holder.text.setText(headerText);          return convertView;      }      /** -     * Remember that these have to be static, position=1 should always return the same Id that is. +     * Header IDs should be static, position=1 should always return the same Id that is.       */      @Override      public long getHeaderId(int position) { +        // similar to getView in CursorAdapter          if (!mDataValid) {              // no data available at this point              Log.d(Constants.TAG, "getHeaderView: No data available at this point!"); | 
