X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/6d5c6f86e5fa9a2edb51562d028554cbc49cdf93..0f0e210d6979f45a1f9609371bb39cbb5faee6fe:/src/com/owncloud/android/ui/ExtendedListView.java diff --git a/src/com/owncloud/android/ui/ExtendedListView.java b/src/com/owncloud/android/ui/ExtendedListView.java index c28ff1c3..22587643 100644 --- a/src/com/owncloud/android/ui/ExtendedListView.java +++ b/src/com/owncloud/android/ui/ExtendedListView.java @@ -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