Redesigned on-screen key layout config dialog, readme text option now supported by default, updated translations
This commit is contained in:
@@ -2033,6 +2033,8 @@ class Settings
|
||||
R.drawable.b5,
|
||||
R.drawable.b6
|
||||
};
|
||||
int oldX = 0, oldY = 0;
|
||||
boolean resizing = false;
|
||||
|
||||
public CustomizeScreenKbLayoutTool(MainActivity _p)
|
||||
{
|
||||
@@ -2045,7 +2047,7 @@ class Settings
|
||||
boundaryBmp = BitmapFactory.decodeResource( p.getResources(), R.drawable.rectangle );
|
||||
boundary.setImageBitmap(boundaryBmp);
|
||||
layout.addView(boundary);
|
||||
currentButton = 0;
|
||||
currentButton = -1;
|
||||
if( Globals.TouchscreenKeyboardTheme == 2 )
|
||||
{
|
||||
int buttons2[] = {
|
||||
@@ -2063,6 +2065,10 @@ class Settings
|
||||
|
||||
for( int i = 0; i < Globals.ScreenKbControlsLayout.length; i++ )
|
||||
{
|
||||
if( ! Globals.ScreenKbControlsShown[currentButton] )
|
||||
continue;
|
||||
if( currentButton == -1 )
|
||||
currentButton = i;
|
||||
imgs[i] = new ImageView(p);
|
||||
imgs[i].setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));
|
||||
imgs[i].setScaleType(ImageView.ScaleType.MATRIX);
|
||||
@@ -2072,115 +2078,123 @@ class Settings
|
||||
layout.addView(imgs[i]);
|
||||
Matrix m = new Matrix();
|
||||
RectF src = new RectF(0, 0, bmps[i].getWidth(), bmps[i].getHeight());
|
||||
if( Globals.ScreenKbControlsLayout[i][0] == Globals.ScreenKbControlsLayout[i][2] ||
|
||||
Globals.ScreenKbControlsLayout[i][1] == Globals.ScreenKbControlsLayout[i][3] )
|
||||
{
|
||||
int displayX = 800;
|
||||
int displayY = 480;
|
||||
try {
|
||||
DisplayMetrics dm = new DisplayMetrics();
|
||||
p.getWindowManager().getDefaultDisplay().getMetrics(dm);
|
||||
displayX = dm.widthPixels;
|
||||
displayY = dm.heightPixels;
|
||||
} catch (Exception eeeee) {}
|
||||
Globals.ScreenKbControlsLayout[i][0] = displayX / 2 - displayX / 6;
|
||||
Globals.ScreenKbControlsLayout[i][2] = displayX / 2 + displayX / 6;
|
||||
Globals.ScreenKbControlsLayout[i][1] = displayY / 2 - displayY / 4;
|
||||
Globals.ScreenKbControlsLayout[i][3] = displayY / 2 + displayY / 4;
|
||||
}
|
||||
RectF dst = new RectF(Globals.ScreenKbControlsLayout[i][0], Globals.ScreenKbControlsLayout[i][1],
|
||||
Globals.ScreenKbControlsLayout[i][2], Globals.ScreenKbControlsLayout[i][3]);
|
||||
m.setRectToRect(src, dst, Matrix.ScaleToFit.FILL);
|
||||
imgs[i].setImageMatrix(m);
|
||||
}
|
||||
boundary.bringToFront();
|
||||
|
||||
setupButton(true);
|
||||
if( currentButton == -1 )
|
||||
onKeyEvent( KeyEvent.KEYCODE_BACK ); // All buttons disabled - do not show anything
|
||||
else
|
||||
setupButton(currentButton);
|
||||
}
|
||||
|
||||
void setupButton(boolean undo)
|
||||
void setupButton(int i)
|
||||
{
|
||||
do {
|
||||
currentButton += (undo ? -1 : 1);
|
||||
if(currentButton >= Globals.ScreenKbControlsLayout.length)
|
||||
{
|
||||
p.getVideoLayout().removeView(layout);
|
||||
layout = null;
|
||||
p.touchListener = null;
|
||||
p.keyListener = null;
|
||||
goBack(p);
|
||||
return;
|
||||
}
|
||||
if(currentButton < 0)
|
||||
{
|
||||
currentButton = 0;
|
||||
undo = false;
|
||||
}
|
||||
} while( ! Globals.ScreenKbControlsShown[currentButton] );
|
||||
|
||||
if( Globals.ScreenKbControlsLayout[currentButton][0] == Globals.ScreenKbControlsLayout[currentButton][2] ||
|
||||
Globals.ScreenKbControlsLayout[currentButton][1] == Globals.ScreenKbControlsLayout[currentButton][3] )
|
||||
{
|
||||
int displayX = 800;
|
||||
int displayY = 480;
|
||||
try {
|
||||
DisplayMetrics dm = new DisplayMetrics();
|
||||
p.getWindowManager().getDefaultDisplay().getMetrics(dm);
|
||||
displayX = dm.widthPixels;
|
||||
displayY = dm.heightPixels;
|
||||
} catch (Exception eeeee) {}
|
||||
Globals.ScreenKbControlsLayout[currentButton][0] = displayX / 2 - displayX / 6;
|
||||
Globals.ScreenKbControlsLayout[currentButton][2] = displayX / 2 + displayX / 6;
|
||||
Globals.ScreenKbControlsLayout[currentButton][1] = displayY / 2 - displayY / 4;
|
||||
Globals.ScreenKbControlsLayout[currentButton][3] = displayY / 2 + displayY / 4;
|
||||
}
|
||||
Matrix m = new Matrix();
|
||||
RectF src = new RectF(0, 0, bmps[currentButton].getWidth(), bmps[currentButton].getHeight());
|
||||
RectF dst = new RectF(Globals.ScreenKbControlsLayout[currentButton][0], Globals.ScreenKbControlsLayout[currentButton][1],
|
||||
Globals.ScreenKbControlsLayout[currentButton][2], Globals.ScreenKbControlsLayout[currentButton][3]);
|
||||
RectF src = new RectF(0, 0, bmps[i].getWidth(), bmps[i].getHeight());
|
||||
RectF dst = new RectF(Globals.ScreenKbControlsLayout[i][0], Globals.ScreenKbControlsLayout[i][1],
|
||||
Globals.ScreenKbControlsLayout[i][2], Globals.ScreenKbControlsLayout[i][3]);
|
||||
m.setRectToRect(src, dst, Matrix.ScaleToFit.FILL);
|
||||
imgs[currentButton].setImageMatrix(m);
|
||||
imgs[i].setImageMatrix(m);
|
||||
m = new Matrix();
|
||||
src = new RectF(0, 0, boundaryBmp.getWidth(), boundaryBmp.getHeight());
|
||||
m.setRectToRect(src, dst, Matrix.ScaleToFit.FILL);
|
||||
boundary.setImageMatrix(m);
|
||||
String buttonText = (currentButton == 0 ? "DPAD" : ( currentButton == 1 ? "Text input" : "" ));
|
||||
if ( currentButton >= 2 && currentButton - 2 < Globals.AppTouchscreenKeyboardKeysNames.length )
|
||||
buttonText = Globals.AppTouchscreenKeyboardKeysNames[currentButton - 2];
|
||||
String buttonText = (i == 0 ? "Joystick" : ( i == 1 ? "Text input" : "" ));
|
||||
if ( i >= 2 && i - 2 < Globals.AppTouchscreenKeyboardKeysNames.length )
|
||||
buttonText = Globals.AppTouchscreenKeyboardKeysNames[i - 2];
|
||||
p.setText(p.getResources().getString(R.string.screenkb_custom_layout_help) + "\n" + buttonText.replace("_", " "));
|
||||
}
|
||||
|
||||
public void onTouchEvent(final MotionEvent ev)
|
||||
{
|
||||
if(currentButton >= Globals.ScreenKbControlsLayout.length)
|
||||
{
|
||||
setupButton(false);
|
||||
return;
|
||||
}
|
||||
if( ev.getAction() == MotionEvent.ACTION_DOWN )
|
||||
{
|
||||
Globals.ScreenKbControlsLayout[currentButton][0] = (int)ev.getX();
|
||||
Globals.ScreenKbControlsLayout[currentButton][1] = (int)ev.getY();
|
||||
Globals.ScreenKbControlsLayout[currentButton][2] = (int)ev.getX();
|
||||
Globals.ScreenKbControlsLayout[currentButton][3] = (int)ev.getY();
|
||||
oldX = (int)ev.getX();
|
||||
oldY = (int)ev.getY();
|
||||
resizing = true;
|
||||
for( int i = 0; i < Globals.ScreenKbControlsLayout.length; i++ )
|
||||
{
|
||||
if( ! Globals.ScreenKbControlsShown[currentButton] )
|
||||
continue;
|
||||
if( Globals.ScreenKbControlsLayout[currentButton][0] <= oldX &&
|
||||
Globals.ScreenKbControlsLayout[currentButton][2] >= oldX &&
|
||||
Globals.ScreenKbControlsLayout[currentButton][1] <= oldY &&
|
||||
Globals.ScreenKbControlsLayout[currentButton][2] >= oldY )
|
||||
{
|
||||
currentButton = i;
|
||||
setupButton(currentButton);
|
||||
resizing = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if( ev.getAction() == MotionEvent.ACTION_MOVE )
|
||||
{
|
||||
if( Globals.ScreenKbControlsLayout[currentButton][0] > (int)ev.getX() )
|
||||
Globals.ScreenKbControlsLayout[currentButton][0] = (int)ev.getX();
|
||||
if( Globals.ScreenKbControlsLayout[currentButton][1] > (int)ev.getY() )
|
||||
Globals.ScreenKbControlsLayout[currentButton][1] = (int)ev.getY();
|
||||
if( Globals.ScreenKbControlsLayout[currentButton][2] < (int)ev.getX() )
|
||||
Globals.ScreenKbControlsLayout[currentButton][2] = (int)ev.getX();
|
||||
if( Globals.ScreenKbControlsLayout[currentButton][3] < (int)ev.getY() )
|
||||
Globals.ScreenKbControlsLayout[currentButton][3] = (int)ev.getY();
|
||||
int dx = (int)ev.getX() - oldX;
|
||||
int dy = (int)ev.getY() - oldY;
|
||||
if( resizing )
|
||||
{
|
||||
// Resize slowly, with 1/3 of movement speed
|
||||
dx /= 6;
|
||||
dy /= 6;
|
||||
Globals.ScreenKbControlsLayout[currentButton][0] -= dx;
|
||||
Globals.ScreenKbControlsLayout[currentButton][2] += dx;
|
||||
Globals.ScreenKbControlsLayout[currentButton][1] -= dy;
|
||||
Globals.ScreenKbControlsLayout[currentButton][3] += dy;
|
||||
dx *= 6;
|
||||
dy *= 6;
|
||||
}
|
||||
else
|
||||
{
|
||||
Globals.ScreenKbControlsLayout[currentButton][0] += dx;
|
||||
Globals.ScreenKbControlsLayout[currentButton][2] += dx;
|
||||
Globals.ScreenKbControlsLayout[currentButton][1] += dy;
|
||||
Globals.ScreenKbControlsLayout[currentButton][3] += dy;
|
||||
}
|
||||
oldX += dx;
|
||||
oldY += dy;
|
||||
Matrix m = new Matrix();
|
||||
RectF src = new RectF(0, 0, bmps[currentButton].getWidth(), bmps[currentButton].getHeight());
|
||||
RectF dst = new RectF(Globals.ScreenKbControlsLayout[currentButton][0], Globals.ScreenKbControlsLayout[currentButton][1],
|
||||
Globals.ScreenKbControlsLayout[currentButton][2], Globals.ScreenKbControlsLayout[currentButton][3]);
|
||||
m.setRectToRect(src, dst, Matrix.ScaleToFit.FILL);
|
||||
imgs[currentButton].setImageMatrix(m);
|
||||
m = new Matrix();
|
||||
src = new RectF(0, 0, boundaryBmp.getWidth(), boundaryBmp.getHeight());
|
||||
m.setRectToRect(src, dst, Matrix.ScaleToFit.FILL);
|
||||
boundary.setImageMatrix(m);
|
||||
}
|
||||
|
||||
Matrix m = new Matrix();
|
||||
RectF src = new RectF(0, 0, bmps[currentButton].getWidth(), bmps[currentButton].getHeight());
|
||||
RectF dst = new RectF(Globals.ScreenKbControlsLayout[currentButton][0], Globals.ScreenKbControlsLayout[currentButton][1],
|
||||
Globals.ScreenKbControlsLayout[currentButton][2], Globals.ScreenKbControlsLayout[currentButton][3]);
|
||||
m.setRectToRect(src, dst, Matrix.ScaleToFit.FILL);
|
||||
imgs[currentButton].setImageMatrix(m);
|
||||
m = new Matrix();
|
||||
src = new RectF(0, 0, boundaryBmp.getWidth(), boundaryBmp.getHeight());
|
||||
m.setRectToRect(src, dst, Matrix.ScaleToFit.FILL);
|
||||
boundary.setImageMatrix(m);
|
||||
|
||||
if( ev.getAction() == MotionEvent.ACTION_UP )
|
||||
setupButton(false);
|
||||
}
|
||||
|
||||
public void onKeyEvent(final int keyCode)
|
||||
{
|
||||
if( layout != null && imgs[currentButton] != null )
|
||||
layout.removeView(imgs[currentButton]);
|
||||
imgs[currentButton] = null;
|
||||
setupButton(true);
|
||||
if( keyCode == KeyEvent.KEYCODE_BACK )
|
||||
{
|
||||
p.getVideoLayout().removeView(layout);
|
||||
layout = null;
|
||||
p.touchListener = null;
|
||||
p.keyListener = null;
|
||||
goBack(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,7 +137,6 @@
|
||||
<string name="remap_screenkb_button_rotateright">Geste de rotation à droite avec deux doigts</string>
|
||||
|
||||
<string name="screenkb_custom_layout">Personnalisation de la présentation du clavier à l\'écran</string>
|
||||
<string name="screenkb_custom_layout_help">Faites glisser l\'écran pour ajouter le bouton, appuyez sur Retour/BACK pour annuler le dernier bouton</string>
|
||||
|
||||
<string name="calibrate_touchscreen">Calibrer l\'écran tactile</string>
|
||||
<string name="calibrate_touchscreen_touch">Touchez les bords de l\'écran, appuyez sur Retour/BACK lorsque vous avez terminé</string>
|
||||
@@ -158,9 +157,6 @@
|
||||
|
||||
<string name="show_more_options">Afficher plus d\'options</string>
|
||||
|
||||
<string name="broken_libc_title">Erreur interne détectée (OS/LibC)</string>
|
||||
<string name="broken_libc_text">Certaines librairies sont mal installées et cette application va probablement ne pas fonctionner. Merci de mettre à jour votre système, flash, ROM custom, ou bien de copier le fichier /system/lib/libc.so depuis un autre système (Attention, Experts uniquement !).</string>
|
||||
|
||||
<string name="hardware_mouse_detected">Hardware mouse detected, disabling mouse emulation</string>
|
||||
<string name="not_enough_ram">Not enough RAM</string>
|
||||
<string name="not_enough_ram_size">This app needs %1$d Mb RAM, your device has %2$d Mb</string>
|
||||
@@ -175,4 +171,5 @@
|
||||
<string name="cancel_download_resume">You can resume it later, the data will not be downloaded twice.</string>
|
||||
<string name="yes">Yes</string>
|
||||
<string name="no">No</string>
|
||||
<string name="screenkb_custom_layout_help">Press BACK when done. Resize buttons by sliding on empty space.</string>
|
||||
</resources>
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
<string name="calibrate_touchscreen">Калибровка сенсорного экрана</string>
|
||||
<string name="calibrate_touchscreen_touch">Дотроньтесь до всех краев экрана, потом нажмите Назад/BACK</string>
|
||||
<string name="screenkb_custom_layout">Настройка расположения кнопок</string>
|
||||
<string name="screenkb_custom_layout_help">Проведите по экрану, чтобы добавить кнопку, нажмите клавишу Назад/BACK, чтобы отменить последнюю кнопку</string>
|
||||
<string name="screenkb_custom_layout_help">Нажмите клавишу Назад/BACK для завершения. Проведите по пустому месту, чтобы изменить размер кнопки</string>
|
||||
<string name="rightclick_key">Физическая кнопка</string>
|
||||
<string name="pointandclick_showcreenunderfinger2">Наэкранная лупа</string>
|
||||
<string name="video">Настройки видео</string>
|
||||
@@ -126,8 +126,6 @@
|
||||
<string name="display_size_small">Маленький (телефон)</string>
|
||||
<string name="display_size_tiny">Крохотный</string>
|
||||
<string name="show_more_options">Показать больше параметров</string>
|
||||
<string name="broken_libc_title">Обнаружена бракованная прошивка</string>
|
||||
<string name="broken_libc_text">Ваше устройство содержит дефективные системные библиотеки, данное приложение скорее всего не будет работать. Пожалуйста, установите обновление, либо установите неофициальную прошивку, либо скопируйте /system/lib/libc.so с другого устройства (только для специалистов!)</string>
|
||||
<string name="controls_screenkb_drawsize">Размер изображения кнопок</string>
|
||||
<string name="display_size_small_touchpad">Маленький, режим тачпада</string>
|
||||
<string name="display_size_tiny_touchpad">Крохотный, режим тачпада</string>
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
<string name="calibrate_touchscreen">Калібрування сенсорного екрану</string>
|
||||
<string name="calibrate_touchscreen_touch">Доторкнiться до всіх країв екрану, потiм натисніть Назад/BACK</string>
|
||||
<string name="screenkb_custom_layout">Налаштування положення кнопок</string>
|
||||
<string name="screenkb_custom_layout_help">Проведiть по екрану, щоб додати кнопку, натисніть Назад/BACK, щоб скасувати останню кнопку</string>
|
||||
<string name="screenkb_custom_layout_help">Натисніть Назад/BACK для завершення. Проведiть по екрану, щоб змінити розмір кнопки</string>
|
||||
<string name="rightclick_key">Фізична кнопка</string>
|
||||
<string name="pointandclick_showcreenunderfinger2">Наекранна лупа</string>
|
||||
<string name="video">Налаштування відео</string>
|
||||
@@ -131,19 +131,17 @@
|
||||
<string name="display_size_tiny_touchpad">Крихiтний, режим тачпаду</string>
|
||||
<string name="hardware_mouse_detected">Виявлена зовнiшня миша, емуляція миші вимкнена</string>
|
||||
|
||||
<string name="broken_libc_title">Broken OS detected</string>
|
||||
<string name="broken_libc_text">Your device has broken system libraries, this application will most probably crash. Please install a system update, or flash a custom ROM, or copy file /system/lib/libc.so from another device (experts only!)</string>
|
||||
<string name="not_enough_ram">Not enough RAM</string>
|
||||
<string name="not_enough_ram_size">This app needs %1$d Mb RAM, your device has %2$d Mb</string>
|
||||
<string name="ignore">Ignore</string>
|
||||
<string name="calibrate_gyroscope">Calibrate gyroscope</string>
|
||||
<string name="calibrate_gyroscope_text">Put your phone on a flat surface</string>
|
||||
<string name="reset_config">Reset config to defaults</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
<string name="calibrate_gyroscope_not_supported">Your device does not have gyroscope</string>
|
||||
<string name="reset_config_ask">Reset all options to default values?</string>
|
||||
<string name="cancel_download">Cancel data downloading?</string>
|
||||
<string name="cancel_download_resume">You can resume it later, the data will not be downloaded twice.</string>
|
||||
<string name="yes">Yes</string>
|
||||
<string name="no">No</string>
|
||||
<string name="not_enough_ram">Недостатньо пам’яті</string>
|
||||
<string name="not_enough_ram_size">Потрібно %1$d Mb пам’яті, доступно лише %2$d Mb</string>
|
||||
<string name="ignore">Ігнорувати</string>
|
||||
<string name="calibrate_gyroscope">Калібрувати гіроскоп</string>
|
||||
<string name="calibrate_gyroscope_text">Покладіть телефон на рівну поверхню</string>
|
||||
<string name="reset_config">Скинути всі налаштування</string>
|
||||
<string name="cancel">Відмінити</string>
|
||||
<string name="calibrate_gyroscope_not_supported">Гіроскоп відсутній</string>
|
||||
<string name="reset_config_ask">Скинути всі налаштування у значення за замовчуванням?</string>
|
||||
<string name="cancel_download">Припинити завантаження?</string>
|
||||
<string name="cancel_download_resume">Завантаження може бути відновлено пізніше.</string>
|
||||
<string name="yes">Так</string>
|
||||
<string name="no">Ні</string>
|
||||
</resources>
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
<string name="remap_screenkb_button_rotateright">Rotate right two-finger gesture</string>
|
||||
|
||||
<string name="screenkb_custom_layout">Customize on-screen keyboard layout</string>
|
||||
<string name="screenkb_custom_layout_help">Slide screen to add button, press BACK to undo last button</string>
|
||||
<string name="screenkb_custom_layout_help">Press BACK when done. Resize buttons by sliding on empty space.</string>
|
||||
|
||||
<string name="calibrate_touchscreen">Calibrate touchscreen</string>
|
||||
<string name="calibrate_touchscreen_touch">Touch all edges of the screen, press BACK when done</string>
|
||||
@@ -157,9 +157,6 @@
|
||||
|
||||
<string name="show_more_options">Show more options</string>
|
||||
|
||||
<string name="broken_libc_title">Broken OS detected</string>
|
||||
<string name="broken_libc_text">Your device has broken system libraries, this application will most probably crash. Please install a system update, or flash a custom ROM, or copy file /system/lib/libc.so from another device (experts only!)</string>
|
||||
|
||||
<string name="hardware_mouse_detected">Hardware mouse detected, disabling mouse emulation</string>
|
||||
|
||||
<string name="not_enough_ram">Not enough RAM</string>
|
||||
|
||||
Reference in New Issue
Block a user