66package org .mozilla .vrbrowser ;
77
88import android .Manifest ;
9+ import android .content .BroadcastReceiver ;
10+ import android .content .Context ;
11+ import android .content .Intent ;
12+ import android .content .IntentFilter ;
913import android .os .Bundle ;
1014import android .util .Log ;
1115
2832import com .psmart .vrlib .VrActivity ;
2933import com .psmart .vrlib .PicovrSDK ;
3034
35+ import org .mozilla .vrbrowser .utils .DeviceType ;
3136import org .mozilla .vrbrowser .utils .SystemUtils ;
3237
3338
@@ -41,6 +46,16 @@ public static boolean filterPermission(final String aPermission) {
4146 return false ;
4247 }
4348
49+ private BroadcastReceiver mKeysReceiver = new BroadcastReceiver () {
50+ @ Override
51+ public void onReceive (Context context , Intent intent ) {
52+ String s = intent .getStringExtra ("reason" );
53+ if (s .equalsIgnoreCase ("recenter" )) {
54+ nativeRecenter ();
55+ }
56+ }
57+ };
58+
4459 CVControllerManager mControllerManager ;
4560 HbManager mHbManager ;
4661 private boolean mControllersReady ;
@@ -59,6 +74,10 @@ protected void onCreate(Bundle bundle) {
5974 nativeOnCreate ();
6075 super .onCreate (bundle );
6176
77+ IntentFilter filter = new IntentFilter ();
78+ filter .addAction (Intent .ACTION_CLOSE_SYSTEM_DIALOGS );
79+ registerReceiver (mKeysReceiver , filter );
80+
6281 if (ControllerClient .isControllerServiceExisted (this )) {
6382 mControllerManager = new CVControllerManager (this );
6483 mControllerManager .setListener (this );
@@ -118,6 +137,7 @@ protected void onDestroy() {
118137 if (mControllerManager != null ) {
119138 mControllerManager .setListener (null );
120139 }
140+ unregisterReceiver (mKeysReceiver );
121141 }
122142
123143 @ Override
@@ -330,5 +350,6 @@ public void onChannelChanged(int var1, int var2) {
330350 protected native void nativeSetFocusedController (int index );
331351 protected native void nativeUpdateControllerState (int index , boolean connected , int buttons , float grip , float axisX , float axisY , boolean touched );
332352 protected native void nativeUpdateControllerPose (int index , boolean dof6 , float px , float py , float pz , float qx , float qy , float qz , float qw );
353+ protected native void nativeRecenter ();
333354 protected native void queueRunnable (Runnable aRunnable );
334355}
0 commit comments