Fixed title in action bar when user clicks on upload notification in progress / failed
[pub/Android/ownCloud.git] / src / com / owncloud / android / ui / ExtendedListView.java
index c28ff1c..2258764 100644 (file)
@@ -1,6 +1,9 @@
-/* ownCloud Android client application
+/**
+ *   ownCloud Android client application
+ *
+ *   @author David A. Velasco
  *   Copyright (C) 2012 Bartek Przybylski
- *   Copyright (C) 2012-2013 ownCloud Inc.
+ *   Copyright (C) 2012-2015 ownCloud Inc.
  *
  *   This program is free software: you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License version 2,
@@ -21,18 +24,20 @@ package com.owncloud.android.ui;
 import android.content.Context;
 import android.graphics.Canvas;
 import android.util.AttributeSet;
-import android.widget.GridView;
+import android.widget.ListView;
+
+import com.owncloud.android.lib.common.utils.Log_OC;
 
 /**
- * GridView allowing to specify the position of an item that should be top left in the visible area, if possible.
- * 
- * The cleanest way I found to overcome the problem due to getHeight() returns 0 until the view is really drawn. 
- *  
- * @author David A. Velasco
+ * ListView allowing to specify the position of an item that should be centered in the visible area, if possible.
+ *
+ * The cleanest way I found to overcome the problem due to getHeight() returns 0 until the view is really drawn.
  */
-public class ExtendedListView extends GridView {
+public class ExtendedListView extends ListView {
 
-    private int mPositionToSetTopLeft;
+    private static final String TAG = ExtendedListView.class.getSimpleName();
+
+    private int mPositionToSetAndCenter = 0;
 
     public ExtendedListView(Context context) {
         super(context);
@@ -45,29 +50,31 @@ public class ExtendedListView extends GridView {
     public ExtendedListView(Context context, AttributeSet attrs, int defStyle) {
         super(context, attrs, defStyle);
     }
-    
+
     /**
      * {@inheritDoc}
-     * 
-     * 
+     *
+     *
      */
     @Override
     protected void onDraw (Canvas canvas) {
         super.onDraw(canvas);
-        if (mPositionToSetTopLeft > 0) {
-            this.smoothScrollToPosition(mPositionToSetTopLeft);
-            mPositionToSetTopLeft = 0;
+        if (mPositionToSetAndCenter > 0) {
+            Log_OC.v(TAG, "Centering around position " + mPositionToSetAndCenter);
+            this.setSelectionFromTop(mPositionToSetAndCenter, getHeight() / 2);
+            mPositionToSetAndCenter = 0;
         }
     }
-    
+
     /**
-     * Public method to set the position of the item that should be top left in the visible area of the view.
-     * 
+     * Public method to set the position of the item that should be centered in the visible area of the view.
+     *
      * The position is saved here and checked in onDraw().
-     *  
-     * @param position         Position (in the list of items) of the item to be top left in the visible area.     
+     *
+     * @param position         Position (in the list of items) of the item to center in the visible area.     
      */
-    public void setSelectionAsTopLeft(int position) {
-        mPositionToSetTopLeft = position;
+    public void setAndCenterSelection(int position) {
+        mPositionToSetAndCenter = position;
     }
-}
+
+}
\ No newline at end of file