diff options
3 files changed, 33 insertions, 30 deletions
| diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index e32677c7a..8603b5e8c 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -35,6 +35,7 @@ import android.support.v4.content.CursorLoader;  import android.support.v4.content.Loader;  import android.support.v4.view.MenuItemCompat;  import android.support.v4.widget.CursorAdapter; +import android.support.v4.widget.NoScrollableSwipeRefreshLayout;  import android.support.v7.app.ActionBar;  import android.support.v7.app.ActionBarActivity;  import android.support.v7.widget.SearchView; @@ -81,7 +82,7 @@ import se.emilsjolander.stickylistheaders.StickyListHeadersListView;   */  public class KeyListFragment extends LoaderFragment          implements SearchView.OnQueryTextListener, AdapterView.OnItemClickListener, -        LoaderManager.LoaderCallbacks<Cursor>, ListAwareSwipeRefreshLayout.OnRefreshListener { +        LoaderManager.LoaderCallbacks<Cursor> {      private KeyListAdapter mAdapter;      private StickyListHeadersListView mStickyList; @@ -131,7 +132,19 @@ public class KeyListFragment extends LoaderFragment          });          mSwipeRefreshLayout = (ListAwareSwipeRefreshLayout) view.findViewById(R.id.key_list_swipe_container); -        mSwipeRefreshLayout.setOnRefreshListener(this); +        mSwipeRefreshLayout.setOnRefreshListener(new NoScrollableSwipeRefreshLayout.OnRefreshListener() { +            @Override +            public void onRefresh() { +                KeyUpdateHelper updateHelper = new KeyUpdateHelper(); +                KeychainIntentServiceHandler finishedHandler = new KeychainIntentServiceHandler(getActivity()) { +                    public void handleMessage(Message message) { +                        mSwipeRefreshLayout.setRefreshing(false); +                    } +                }; +                updateHelper.updateAllKeys(getActivity(), finishedHandler); +                updateActionbarForSwipe(false); +            } +        });          mSwipeRefreshLayout.setColorScheme(                  R.color.android_purple_dark,                  R.color.android_purple_light, @@ -141,7 +154,7 @@ public class KeyListFragment extends LoaderFragment          mSwipeRefreshLayout.setOnTouchListener(new View.OnTouchListener() {              @Override              public boolean onTouch(View v, MotionEvent event) { -                if (event.getAction() == MotionEvent.ACTION_MOVE) { +                if (event.getAction() == MotionEvent.ACTION_DOWN) {                      updateActionbarForSwipe(true);                  } else {                      updateActionbarForSwipe(false); @@ -454,6 +467,8 @@ public class KeyListFragment extends LoaderFragment          MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener() {              @Override              public boolean onMenuItemActionExpand(MenuItem item) { +                // disable swipe-to-refresh +                mSwipeRefreshLayout.setIsLocked(true);                  return true;              } @@ -461,6 +476,8 @@ public class KeyListFragment extends LoaderFragment              public boolean onMenuItemActionCollapse(MenuItem item) {                  mQuery = null;                  getLoaderManager().restartLoader(0, null, KeyListFragment.this); +                // enable swipe-to-refresh +                mSwipeRefreshLayout.setIsLocked(false);                  return true;              }          }); @@ -753,17 +770,4 @@ public class KeyListFragment extends LoaderFragment      } -    /** -     * Implements OnRefreshListener for drag-to-refresh -     */ -    public void onRefresh() { -        KeyUpdateHelper updateHelper = new KeyUpdateHelper(); -        KeychainIntentServiceHandler finishedHandler = new KeychainIntentServiceHandler(getActivity()) { -            public void handleMessage(Message message) { -                mSwipeRefreshLayout.setRefreshing(false); -            } -        }; -        updateHelper.updateAllKeys(getActivity(), finishedHandler); -        updateActionbarForSwipe(false); -    }  } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/ListAwareSwipeRefreshLayout.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/ListAwareSwipeRefreshLayout.java index 7490d69ee..f7d44d2cf 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/ListAwareSwipeRefreshLayout.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/ListAwareSwipeRefreshLayout.java @@ -19,11 +19,8 @@ package org.sufficientlysecure.keychain.ui.widget;  import android.content.Context;  import android.support.v4.widget.NoScrollableSwipeRefreshLayout; -import android.support.v4.widget.SwipeRefreshLayout;  import android.util.AttributeSet; -import org.sufficientlysecure.keychain.util.Log; -  import se.emilsjolander.stickylistheaders.StickyListHeadersListView;  public class ListAwareSwipeRefreshLayout extends NoScrollableSwipeRefreshLayout { @@ -55,7 +52,6 @@ public class ListAwareSwipeRefreshLayout extends NoScrollableSwipeRefreshLayout      public void setIsLocked(boolean locked) {          mIsLocked = locked; -        Log.d("ListAwareSwipeRefreshLayout", (mIsLocked ? "is locked" : "not locked"));      }      public boolean getIsLocked() { @@ -70,13 +66,9 @@ public class ListAwareSwipeRefreshLayout extends NoScrollableSwipeRefreshLayout          return (mIsLocked || (                  mStickyListHeadersListView.getWrappedList().getChildCount() > 0 -                && -                ( -                    mStickyListHeadersListView.getWrappedList().getChildAt(0).getTop() < 0 -                    || -                    mStickyListHeadersListView.getFirstVisiblePosition() > 0 -                ) -            ) +                        && (mStickyListHeadersListView.getWrappedList().getChildAt(0).getTop() < 0 +                        || mStickyListHeadersListView.getFirstVisiblePosition() > 0) +        )          );      }  }
\ No newline at end of file diff --git a/OpenKeychain/src/main/res/layout/key_list_fragment.xml b/OpenKeychain/src/main/res/layout/key_list_fragment.xml index 6af40106d..69096f03e 100644 --- a/OpenKeychain/src/main/res/layout/key_list_fragment.xml +++ b/OpenKeychain/src/main/res/layout/key_list_fragment.xml @@ -1,6 +1,5 @@  <?xml version="1.0" encoding="utf-8"?> -<org.sufficientlysecure.keychain.ui.widget.ListAwareSwipeRefreshLayout -    xmlns:android="http://schemas.android.com/apk/res/android" +<org.sufficientlysecure.keychain.ui.widget.ListAwareSwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:id="@+id/key_list_swipe_container"      android:layout_width="match_parent"      android:layout_height="match_parent" @@ -9,6 +8,7 @@      <FrameLayout          android:layout_width="match_parent"          android:layout_height="match_parent"> +          <se.emilsjolander.stickylistheaders.StickyListHeadersListView              android:id="@+id/key_list_list"              android:layout_width="match_parent" @@ -20,6 +20,7 @@              android:paddingLeft="16dp"              android:paddingRight="32dp"              android:scrollbarStyle="outsideOverlay" /> +          <LinearLayout              android:id="@+id/key_list_empty"              android:layout_width="match_parent" @@ -27,18 +28,21 @@              android:gravity="center"              android:orientation="vertical"              android:visibility="visible"> +              <TextView                  android:layout_width="wrap_content"                  android:layout_height="wrap_content"                  android:gravity="center"                  android:text="@string/key_list_empty_text1"                  android:textAppearance="?android:attr/textAppearanceLarge" /> +              <TextView                  android:layout_width="wrap_content"                  android:layout_height="wrap_content"                  android:gravity="center"                  android:text=""                  android:textAppearance="?android:attr/textAppearanceLarge" /> +              <TextView                  android:layout_width="wrap_content"                  android:layout_height="wrap_content" @@ -46,6 +50,7 @@                  android:gravity="center"                  android:text="@string/key_list_empty_text2"                  android:textAppearance="?android:attr/textAppearanceSmall" /> +              <Button                  android:id="@+id/key_list_empty_button_create"                  android:layout_width="wrap_content" @@ -55,7 +60,8 @@                  android:text="@string/key_list_empty_button_create"                  android:drawableLeft="@drawable/ic_action_new_account"                  android:drawablePadding="8dp" -                android:background="@drawable/button_edgy"/> +                android:background="@drawable/button_edgy" /> +              <TextView                  android:layout_width="wrap_content"                  android:layout_height="wrap_content" @@ -63,6 +69,7 @@                  android:gravity="center"                  android:text="@string/key_list_empty_text3"                  android:textAppearance="?android:attr/textAppearanceSmall" /> +              <Button                  android:id="@+id/key_list_empty_button_import"                  android:layout_width="wrap_content" | 
