package net.bible.android.view.util; import android.view.View; /** primarily to prevent long-touch being handled while dragging a separator on v slow mobiles * * @author Martin Denham [mjdenham at gmail dot com] * @see gnu.lgpl.License for license details.<br> * The copyright to this program is held by it's author. */ public class TouchOwner { private long ownershipTime; private View currentOwner; private static final long MAX_OWNERSHIP_TIME = 20*1000; // 20 secs private static final TouchOwner singleton = new TouchOwner(); public static TouchOwner getInstance() { return singleton; } public void setTouchOwner(View owner) { currentOwner = owner; ownershipTime = System.currentTimeMillis(); } public void releaseOwnership(View owner) { currentOwner = null; } public boolean isTouchOwned() { if (currentOwner==null) { // Not owned return false; } else if (System.currentTimeMillis()-ownershipTime>MAX_OWNERSHIP_TIME) { // Ownership timed out currentOwner = null; return false; } else { // is owned return true; } } }