Nie wiem w czym piszesz. Ale w javie jest np. System.currentTimeMillis(), zwraca longa (prawie unixowy timestamp, jak chcesz takiego to podziel przez 1000L). Czyli ilość (mili)sekund od pierwszego stycznia 1970. Jak masz dwa takie timestampy longowe możesz je odejmować ;d
Pewnie nie jest to zbyt dobry pomysł, ale zaklepałbym to tak:
Kod:
public bool OnTouch(View v, MotionEvent e)
{
switch (e.Action)
{
case MotionEventActions.Down:
_lastX = 0;
_lastY = (int)e.GetY ();
_viewX = (int)e.GetX ();
_viewY = (int)e.GetY ();
_started = System.currentTimeMillis();
break;
case MotionEventActions.Up:
_ended = System.currentTimeMillis();
if(_ended - _started > 500)
{
sout("God damn thats a pretty fuckin long click")
}
else if (Math.Abs (_lastX) > ViewManager.GetTouchScope(this)) {
if (_lastX > 0) {
date = date.AddDays (-1);
DayList.Adapter = new HourInDayAdapter (this, hours, date);
} else {
date = date.AddDays (1);
DayList.Adapter = new HourInDayAdapter (this, hours, date);
}
} else {
sout("oh im sorry. did I break your concentration?");
}
break;
case MotionEventActions.Move:
var left = (int)(e.RawX - _viewX);
var down2 = (int)(_lastY - e.GetY ());
var cos = (int)(e.GetY () + down2);
DayList.SmoothScrollBy (down2, 0);
_lastY = (int)e.GetY();
_lastX = left;
break;
}
return true;
}