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:
parent
e134021e1b
commit
33af0dec28
13 changed files with 115 additions and 3 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue