diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-09-18 13:55:23 +0200 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-09-18 13:55:23 +0200 |
commit | ac66f6cc1043cf79896cf063be2358a0b08e2ac5 (patch) | |
tree | 00d99a2296f05a34e2d8258063baa60be95c99e7 | |
parent | 91e97d03a1a436b8a13e423f34643586bb343e4a (diff) | |
download | open-keychain-ac66f6cc1043cf79896cf063be2358a0b08e2ac5.tar.gz open-keychain-ac66f6cc1043cf79896cf063be2358a0b08e2ac5.tar.bz2 open-keychain-ac66f6cc1043cf79896cf063be2358a0b08e2ac5.zip |
Swipe-to-refresh fixes
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" |