aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-09-18 13:55:23 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-09-18 13:55:23 +0200
commitac66f6cc1043cf79896cf063be2358a0b08e2ac5 (patch)
tree00d99a2296f05a34e2d8258063baa60be95c99e7 /OpenKeychain
parent91e97d03a1a436b8a13e423f34643586bb343e4a (diff)
downloadopen-keychain-ac66f6cc1043cf79896cf063be2358a0b08e2ac5.tar.gz
open-keychain-ac66f6cc1043cf79896cf063be2358a0b08e2ac5.tar.bz2
open-keychain-ac66f6cc1043cf79896cf063be2358a0b08e2ac5.zip
Swipe-to-refresh fixes
Diffstat (limited to 'OpenKeychain')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java36
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/ListAwareSwipeRefreshLayout.java14
-rw-r--r--OpenKeychain/src/main/res/layout/key_list_fragment.xml13
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"