Add low-level OUYA detection, Handle menu with R3 button

This commit is contained in:
TwistedUmbrella 2014-02-16 20:31:08 -05:00
parent aa9f842110
commit 88f0b8b6c2
1 changed files with 16 additions and 6 deletions

View File

@ -8,6 +8,7 @@ import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.net.Uri;
import android.os.Build;
@ -48,6 +49,7 @@ public class GL2JNIActivity extends Activity {
int[] name = { -1, -1, -1, -1 };
float[] globalLS_X = new float[4], globalLS_Y = new float[4],
previousLS_X = new float[4], previousLS_Y = new float[4];
private boolean isOuyaOrTV = false;
public static HashMap<Integer, String> deviceId_deviceDescriptor = new HashMap<Integer, String>();
public static HashMap<String, Integer> deviceDescriptor_PlayerNum = new HashMap<String, Integer>();
@ -65,6 +67,11 @@ public class GL2JNIActivity extends Activity {
ConfigureFragment.getCurrentConfiguration(prefs);
menu = new OnScreenMenu(GL2JNIActivity.this, prefs);
PackageManager pMan = getPackageManager();
if (pMan.hasSystemFeature(PackageManager.FEATURE_TELEVISION)) {
isOuyaOrTV = true;
}
/*
* try { //int rID =
* getResources().getIdentifier("fortyonepost.com.lfas:raw/syms.map",
@ -172,7 +179,7 @@ public class GL2JNIActivity extends Activity {
OuyaController.BUTTON_DPAD_LEFT, key_CONT_DPAD_LEFT,
OuyaController.BUTTON_DPAD_RIGHT, key_CONT_DPAD_RIGHT,
OuyaController.BUTTON_R1, key_CONT_START
OuyaController.BUTTON_MENU, key_CONT_START
};
} else if (InputDevice.getDevice(joys[i]).getName()
@ -188,7 +195,7 @@ public class GL2JNIActivity extends Activity {
OuyaController.BUTTON_DPAD_LEFT, key_CONT_DPAD_LEFT,
OuyaController.BUTTON_DPAD_RIGHT, key_CONT_DPAD_RIGHT,
OuyaController.BUTTON_R1, key_CONT_START
OuyaController.BUTTON_MENU, key_CONT_START
};
xbox[playerNum] = true;
@ -243,6 +250,7 @@ public class GL2JNIActivity extends Activity {
OuyaController.BUTTON_DPAD_LEFT, key_CONT_DPAD_LEFT,
OuyaController.BUTTON_DPAD_RIGHT, key_CONT_DPAD_RIGHT,
OuyaController.BUTTON_MENU, key_CONT_START,
KeyEvent.KEYCODE_BUTTON_START, key_CONT_START
};
}
@ -607,13 +615,15 @@ public class GL2JNIActivity extends Activity {
if (android.os.Build.MODEL.equals("R800")
|| android.os.Build.MODEL.equals("R800i")) {
if ((keyCode == KeyEvent.KEYCODE_MENU)
|| (keyCode == KeyEvent.KEYCODE_SEARCH)) {
if (keyCode == KeyEvent.KEYCODE_SEARCH) {
return showMenu();
}
} else if (isOuyaOrTV) {
if (keyCode == OuyaController.BUTTON_R3) {
return showMenu();
}
} else {
if (keyCode == OuyaController.BUTTON_MENU
|| keyCode == KeyEvent.KEYCODE_BACK) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return showMenu();
}
}