1
0
Fork 0
forked from len0rd/rockbox

Touchscreen: Improved scroll threshold

Remove the hardcoded (and way too small) scroll threshold (the distance moved in pixels before we think the users wants to scroll) and replace it with something based on the actual DPI of the screen.
On Android we call the API for that, on other touchscreens we reimplemented Android's formula (as of 2.2) and calculate it.

Flyspray: 11727

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28548 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Thomas Martitz 2010-11-10 15:25:15 +00:00
parent e134021e1b
commit 33af0dec28
13 changed files with 115 additions and 3 deletions

View file

@ -28,16 +28,20 @@ import org.rockbox.Helper.MediaButtonReceiver;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewConfiguration;
public class RockboxFramebuffer extends View
{
private Bitmap btm;
private ByteBuffer native_buf;
private MediaButtonReceiver media_monitor;
private final DisplayMetrics metrics;
private final ViewConfiguration view_config;
public RockboxFramebuffer(Context c, int lcd_width,
int lcd_height, ByteBuffer native_fb)
@ -53,6 +57,9 @@ public class RockboxFramebuffer extends View
media_monitor.register();
/* the service needs to know the about us */
((RockboxService)c).set_fb(this);
metrics = c.getResources().getDisplayMetrics();
view_config = ViewConfiguration.get(c);
}
public void onDraw(Canvas c)
@ -132,6 +139,18 @@ public class RockboxFramebuffer extends View
break;
}
}
@SuppressWarnings("unused")
private int getDpi()
{
return metrics.densityDpi;
}
@SuppressWarnings("unused")
private int getScrollThreshold()
{
return view_config.getScaledTouchSlop();
}
private native void set_lcd_active(int active);
private native void touchHandler(boolean down, int x, int y);