Android Open Source - QuickReturn Abs List View Quick Return Attacher






From Project

Back to project page QuickReturn.

License

The source code is released under:

MIT License

If you think the Android project QuickReturn listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.felipecsl.quickreturn.library;
//from   w w w  .  j  a v a2  s  . c o  m
import android.view.View;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.ListView;

import com.felipecsl.quickreturn.library.widget.AbsListViewScrollTarget;
import com.felipecsl.quickreturn.library.widget.QuickReturnTargetView;

public class AbsListViewQuickReturnAttacher
        extends QuickReturnAttacher
        implements AdapterView.OnItemClickListener, AdapterView.OnItemLongClickListener {
    private static final String TAG = "AbsListViewQuickReturnAttacher";

    private final CompositeAbsListViewOnScrollListener onScrollListener =
            new CompositeAbsListViewOnScrollListener();
    private AbsListView.OnItemClickListener onItemClickListener;
    private final AbsListView absListView;
    private AdapterView.OnItemLongClickListener onItemLongClickListener;

    public AbsListViewQuickReturnAttacher(AbsListView listView) {
        this.absListView = listView;
        listView.setOnScrollListener(onScrollListener);
        listView.setOnItemClickListener(this);
        listView.setOnItemLongClickListener(this);
    }

    public QuickReturnTargetView addTargetView(View view, int position) {
        return addTargetView(view, position, 0);
    }

    public QuickReturnTargetView addTargetView(View view, int position, int viewHeight) {
        AbsListViewScrollTarget targetView = new AbsListViewScrollTarget(absListView, view,
                position, viewHeight);
        onScrollListener.registerOnScrollListener(targetView);

        return targetView;
    }

    public void removeTargetView(AbsListViewScrollTarget targetView) {
        onScrollListener.unregisterOnScrollListener(targetView);
    }

    public void addOnScrollListener(AbsListView.OnScrollListener listener) {
        onScrollListener.registerOnScrollListener(listener);
    }

    public void setOnItemClickListener(AbsListView.OnItemClickListener listener) {
        onItemClickListener = listener;
    }

    public void setOnItemLongClickListener(AbsListView.OnItemLongClickListener listener) {
        onItemLongClickListener = listener;
    }

    @Override
    public void onItemClick(final AdapterView<?> parent, View view, int position, long id) {
        if (onItemClickListener != null) {
            // TODO: Sending incorrect view` and `id` args below.
            onItemClickListener.onItemClick(parent, view,
                    position - getClickPositionOffset(parent), id);
        }
    }

    @Override
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
        int positionOffset;
        if (onItemLongClickListener != null) {
            // TODO: Sending incorrect view` and `id` args below.
            onItemLongClickListener.onItemLongClick(parent, view,
                    position - getClickPositionOffset(parent), id);
        }
        return false;
    }

    private int getClickPositionOffset(AdapterView<?> parent) {
        if (parent instanceof ListView)
            return 1;

        if (parent instanceof GridView)
            // TODO: getNumColumns may return AUTO_FIT.
            // TODO: Need fallback for Gingerbread.
            return ((GridView) parent).getNumColumns();

        return 0;
    }
}




Java Source Code List

com.felipecsl.quickreturn.app.MainActivity.java
com.felipecsl.quickreturn.library.AbsListViewQuickReturnAttacher.java
com.felipecsl.quickreturn.library.CompositeAbsListViewOnScrollListener.java
com.felipecsl.quickreturn.library.CompositeOnScrollListener.java
com.felipecsl.quickreturn.library.QuickReturnAttacher.java
com.felipecsl.quickreturn.library.QuickReturnStateTransition.java
com.felipecsl.quickreturn.library.ScrollViewQuickReturnAttacher.java
com.felipecsl.quickreturn.library.SimpleAnimationListener.java
com.felipecsl.quickreturn.library.widget.AbsListViewScrollTarget.java
com.felipecsl.quickreturn.library.widget.ObservableScrollView.java
com.felipecsl.quickreturn.library.widget.QuickReturnAdapter.java
com.felipecsl.quickreturn.library.widget.QuickReturnTargetView.java
com.felipecsl.quickreturn.library.widget.ScrollViewScrollTarget.java