-keep class com.epicgames.unreal.GameActivity{*;} -keep class com.psmart.aosoperation.SysActivity{*;} import com.psmart.aosoperation.NativeVerfyInterface; import android.app.Instrumentation; import android.os.RemoteException; import java.util.List; import com.psmart.aosoperation.MRCCalibration; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import com.pxr.xrlib.PicovrSDK; import com.psmart.aosoperation.SysActivity; public boolean AndroidThunkJava_IsOculusMobileApplication() { return true; } @Override public boolean dispatchKeyEvent(KeyEvent event) { int action = event.getAction(); if (event.getKeyCode()==1001) { keyRemappingSendFakeKeyEvent(action , 96); } return super.dispatchKeyEvent(event); } private static void keyRemappingSendFakeKeyEvent(final int action,final int keyCode) { new Thread(new Runnable() { public void run() { try { Instrumentation inst=new Instrumentation(); final long eventTime = SystemClock.uptimeMillis(); KeyEvent event =new KeyEvent(eventTime - 50, eventTime - 50, action, keyCode, 0, 0, 1001, 0, KeyEvent.FLAG_FROM_SYSTEM, InputDevice.SOURCE_GAMEPAD); int id = event.getDeviceId(); inst.sendKeySync(event); } catch (Exception e) {} } }).start(); } public void EnableContentProtect(boolean bEnable) { SysActivity.SetSecure(this, bEnable); } public String GetDeviceSN( ) { return SysActivity.getDeviceSN(); } public int GetPsensorState() { return SysActivity.getPsensorState(); } public void VolumeUp() { SysActivity.pxr_UpAudio(); } public void VolumeDown() { SysActivity.pxr_DownAudio(); } public void SetVolume(int volume) { SysActivity.pxr_ChangeAudio(volume); } public int GetMaxVolumeNumber() { int maxV = SysActivity.pxr_GetMaxAudionumber(); Log.debug("========== PICOXR_UPL: Max system volume:" + maxV+" =========="); return maxV; } public int GetCurrentVolume() { int currentV = SysActivity.pxr_GetAudionumber(); Log.debug("========== PICOXR_UPL: Current system volume:" + currentV+" =========="); return currentV; } private String getNewProp(String property) { // first try SystemProperties reflection try { java.lang.reflect.Method get = Class.forName("android.os.SystemProperties").getMethod("get", new Class[]{String.class}); String propValue = (String)get.invoke(null, property); if (propValue != null) { return propValue; } return ""; } catch (Exception e) { } // fall back to getprop command Process process = null; BufferedReader reader = null; String result = ""; try { process = new ProcessBuilder().command("/system/bin/getprop", property).redirectErrorStream(true).start(); reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = reader.readLine(); result = (line == null) ? "" : line; } catch (Exception e) { } if (reader != null) { try { reader.close(); } catch (IOException e) { } } if (process != null) { process.destroy(); } return result; } public String getPXRProductName() { return getNewProp("sys.pxr.product.name"); } public int GetCurrentBrightness() { int currentB = SysActivity.pxr_GetScreen_Brightness(this.getApplicationContext()); Log.debug("========== PICOXR_UPL: Current screen brightness:" + currentB+" =========="); return currentB; } private MRCCalibration mMRCCalibration = null; public float[] MRCGetCalibrationData(String path) { return mMRCCalibration.readCalibrationData(path); } public int GetPxrRuntimeVersion() { String packageName="com.pico.xr.openxr_runtime"; PackageManager manager = this.getApplicationContext().getPackageManager(); int code = 0; try { PackageInfo info = manager.getPackageInfo(packageName, 0); if(info ==null) { return 0; } code = info.versionCode; } catch (PackageManager.NameNotFoundException e){} return code; } public int GetHmdBatteryLevel() { return SysActivity.getHmdBatteryLevel(this); } public void StartApplication(String packageName) { Intent launchIntent = getPackageManager().getLaunchIntentForPackage(packageName); if (launchIntent != null) { launchIntent.putExtra("enter_flag", 1); startActivity(launchIntent);//null pointer check in case package name was not found } } public String GetAndroidPackageName( ) { return getApplicationContext().getPackageName(); } Log.debug("========== PICOXR_UPL:gameActivityOnCreateAdditions =========="); PicovrSDK.setJniActivity(); SysActivity.pxr_InitAudioDevice(this.getApplicationContext()); mMRCCalibration = new MRCCalibration(); Log.debug("========== PICOXR_UPL:gameActivityOnDestroyAdditions =========="); Log.debug("========== PICOXR_UPL:gameActivityOnStartAdditions =========="); Log.debug("========== PICOXR_UPL: initPsensor! =========="); SysActivity.initPsensor(this); Log.debug("========== PICOXR_UPL:gameActivityOnStopAdditions =========="); Log.debug("========== PICOXR_UPL: unregisterListener! =========="); SysActivity.unregisterListener(); Log.debug("========== PICOXR_UPL:gameActivityOnPauseAdditions =========="); Log.debug("========== PICOXR_UPL:gameActivityOnResumeAdditions =========="); Log.debug("========== PICOXR_UPL:gameActivityOnActivityResultAdditions ==========");