|
@@ -26,8 +26,11 @@ import android.support.annotation.StringRes;
|
|
import android.support.v4.app.Fragment;
|
|
import android.support.v4.app.Fragment;
|
|
import android.support.v4.view.MenuItemCompat;
|
|
import android.support.v4.view.MenuItemCompat;
|
|
import android.support.v4.widget.SwipeRefreshLayout;
|
|
import android.support.v4.widget.SwipeRefreshLayout;
|
|
|
|
+import android.view.GestureDetector;
|
|
import android.support.v7.widget.SearchView;
|
|
import android.support.v7.widget.SearchView;
|
|
import android.view.LayoutInflater;
|
|
import android.view.LayoutInflater;
|
|
|
|
+import android.view.MotionEvent;
|
|
|
|
+import android.view.ScaleGestureDetector;
|
|
import android.view.Menu;
|
|
import android.view.Menu;
|
|
import android.view.MenuInflater;
|
|
import android.view.MenuInflater;
|
|
import android.view.MenuItem;
|
|
import android.view.MenuItem;
|
|
@@ -44,6 +47,7 @@ import android.widget.TextView;
|
|
|
|
|
|
import com.getbase.floatingactionbutton.FloatingActionButton;
|
|
import com.getbase.floatingactionbutton.FloatingActionButton;
|
|
import com.getbase.floatingactionbutton.FloatingActionsMenu;
|
|
import com.getbase.floatingactionbutton.FloatingActionsMenu;
|
|
|
|
+import com.owncloud.android.MainApp;
|
|
import com.owncloud.android.R;
|
|
import com.owncloud.android.R;
|
|
import com.owncloud.android.lib.common.utils.Log_OC;
|
|
import com.owncloud.android.lib.common.utils.Log_OC;
|
|
import com.owncloud.android.ui.ExtendedListView;
|
|
import com.owncloud.android.ui.ExtendedListView;
|
|
@@ -68,6 +72,8 @@ public class ExtendedListFragment extends Fragment
|
|
private static final String KEY_EMPTY_LIST_MESSAGE = "EMPTY_LIST_MESSAGE";
|
|
private static final String KEY_EMPTY_LIST_MESSAGE = "EMPTY_LIST_MESSAGE";
|
|
private static final String KEY_IS_GRID_VISIBLE = "IS_GRID_VISIBLE";
|
|
private static final String KEY_IS_GRID_VISIBLE = "IS_GRID_VISIBLE";
|
|
|
|
|
|
|
|
+ private ScaleGestureDetector SGD = null;
|
|
|
|
+
|
|
protected SwipeRefreshLayout mRefreshListLayout;
|
|
protected SwipeRefreshLayout mRefreshListLayout;
|
|
private SwipeRefreshLayout mRefreshGridLayout;
|
|
private SwipeRefreshLayout mRefreshGridLayout;
|
|
protected SwipeRefreshLayout mRefreshEmptyLayout;
|
|
protected SwipeRefreshLayout mRefreshEmptyLayout;
|
|
@@ -98,6 +104,9 @@ public class ExtendedListFragment extends Fragment
|
|
|
|
|
|
private FilterableListAdapter mAdapter;
|
|
private FilterableListAdapter mAdapter;
|
|
|
|
|
|
|
|
+p private float scale = -1f;
|
|
|
|
+ private GestureDetector gestureDetector;
|
|
|
|
+
|
|
protected void setListAdapter(FilterableListAdapter listAdapter) {
|
|
protected void setListAdapter(FilterableListAdapter listAdapter) {
|
|
mAdapter = listAdapter;
|
|
mAdapter = listAdapter;
|
|
mCurrentListView.setAdapter(listAdapter);
|
|
mCurrentListView.setAdapter(listAdapter);
|
|
@@ -184,6 +193,33 @@ public class ExtendedListFragment extends Fragment
|
|
|
|
|
|
mGridFooterView = inflater.inflate(R.layout.list_footer, null, false);
|
|
mGridFooterView = inflater.inflate(R.layout.list_footer, null, false);
|
|
|
|
|
|
|
|
+ SGD = new ScaleGestureDetector(MainApp.getAppContext(),new ScaleListener());
|
|
|
|
+// gestureDetector = new GestureDetector(MainApp.getAppContext(), new SingleTapConfirm());
|
|
|
|
+
|
|
|
|
+ mGridView.setOnTouchListener(new View.OnTouchListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public boolean onTouch(View view, MotionEvent motionEvent) {
|
|
|
|
+// if (SGD.onTouchEvent(motionEvent)) {
|
|
|
|
+// return false;
|
|
|
|
+// }
|
|
|
|
+// return false;
|
|
|
|
+
|
|
|
|
+ SGD.onTouchEvent(motionEvent);
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ if (savedInstanceState != null) {
|
|
|
|
+ int referencePosition = savedInstanceState.getInt(KEY_SAVED_LIST_POSITION);
|
|
|
|
+ if (mCurrentListView == mListView) {
|
|
|
|
+ Log_OC.v(TAG, "Setting and centering around list position " + referencePosition);
|
|
|
|
+ mListView.setAndCenterSelection(referencePosition);
|
|
|
|
+ } else {
|
|
|
|
+ Log_OC.v(TAG, "Setting grid position " + referencePosition);
|
|
|
|
+ mGridView.setSelection(referencePosition);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
// Pull-down to refresh layout
|
|
// Pull-down to refresh layout
|
|
mRefreshListLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipe_containing_list);
|
|
mRefreshListLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipe_containing_list);
|
|
mRefreshGridLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipe_containing_grid);
|
|
mRefreshGridLayout = (SwipeRefreshLayout) v.findViewById(R.id.swipe_containing_grid);
|
|
@@ -219,6 +255,29 @@ public class ExtendedListFragment extends Fragment
|
|
return v;
|
|
return v;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private class SingleTapConfirm extends GestureDetector.SimpleOnGestureListener {
|
|
|
|
+ @Override
|
|
|
|
+ public boolean onSingleTapUp(MotionEvent e) {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
|
|
|
|
+ @Override
|
|
|
|
+ public boolean onScale(ScaleGestureDetector detector) {
|
|
|
|
+ if (scale == -1f){
|
|
|
|
+ mGridView.setNumColumns(GridView.AUTO_FIT);
|
|
|
|
+ scale = mGridView.getNumColumns();
|
|
|
|
+ }
|
|
|
|
+ scale *= 1-(detector.getScaleFactor()- 1);
|
|
|
|
+ scale = Math.max(2.0f, Math.min(scale, 10.0f));
|
|
|
|
+ Integer scaleInt = Math.round(scale);
|
|
|
|
+ mGridView.setNumColumns(scaleInt);
|
|
|
|
+
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
protected void setupEmptyList(View view) {
|
|
protected void setupEmptyList(View view) {
|
|
mEmptyListContainer = (LinearLayout) view.findViewById(R.id.empty_list_view);
|
|
mEmptyListContainer = (LinearLayout) view.findViewById(R.id.empty_list_view);
|
|
mEmptyListMessage = (TextView) view.findViewById(R.id.empty_list_view_text);
|
|
mEmptyListMessage = (TextView) view.findViewById(R.id.empty_list_view_text);
|