Skip to content

Commit

Permalink
[Vision Glass] Realign window and pointer together
Browse files Browse the repository at this point in the history
  • Loading branch information
felipeerias committed May 15, 2024
1 parent b5a787c commit b79eeaf
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions app/src/visionglass/java/com/igalia/wolvic/PlatformActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
import android.hardware.display.DisplayManager;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.view.ContextThemeWrapper;
import android.view.Display;
Expand Down Expand Up @@ -48,6 +50,7 @@
import com.igalia.wolvic.browser.api.WMediaSession;
import com.igalia.wolvic.browser.api.WSession;
import com.igalia.wolvic.databinding.VisionglassLayoutBinding;
import com.igalia.wolvic.ui.widgets.UIWidget;
import com.igalia.wolvic.ui.widgets.WidgetManagerDelegate;
import com.igalia.wolvic.utils.SystemUtils;

Expand All @@ -61,6 +64,8 @@ public class PlatformActivity extends ComponentActivity implements SensorEventLi
static String LOGTAG = SystemUtils.createLogtag(PlatformActivity.class);

public static final String HUAWEI_USB_PERMISSION = "com.huawei.usblib.USB_PERMISSION";
private static final int REORIENT_CONTROLLER_DELAY_MS = 250;
private static final int REORIENT_UI_DELAY_MS = 5_000;

private boolean mIsAskingForPermission;
private PhoneUIViewModel mViewModel;
Expand All @@ -71,6 +76,7 @@ public class PlatformActivity extends ComponentActivity implements SensorEventLi
private int mDisplayModeRetryCount = 0;
private int mUSBPermissionRequestCount = 0;
private boolean mSwitchedTo3DMode = false;
private Handler mUiHandler;

@SuppressWarnings("unused")
public static boolean filterPermission(final String aPermission) {
Expand Down Expand Up @@ -187,6 +193,13 @@ private void registerPhoneIMUListener() {
mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_GAME_ROTATION_VECTOR), SensorManager.SENSOR_DELAY_NORMAL);
}

private void reorientController() {
mSensorManager.unregisterListener(this);
registerPhoneIMUListener();
runVRBrowserActivityCallback(activity -> activity.recenterUIYaw(WidgetManagerDelegate.YAW_TARGET_ALL));
mUiHandler.postDelayed(() -> queueRunnable(this::calibrateController), REORIENT_CONTROLLER_DELAY_MS);
}

private void initVisionGlassPhoneUI() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Expand All @@ -207,15 +220,13 @@ private void initVisionGlassPhoneUI() {

mBinding.voiceSearchButton.setEnabled(false);

mBinding.realignButton.setOnClickListener(v -> {
mSensorManager.unregisterListener(this);
registerPhoneIMUListener();
queueRunnable(this::calibrateController);
});
mBinding.realignButton.setOnClickListener(v -> reorientController());

Button backButton = findViewById(R.id.back_button);
backButton.setOnClickListener(v -> onBackPressed());

mUiHandler = new Handler(Looper.getMainLooper());

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}

Expand Down

0 comments on commit b79eeaf

Please sign in to comment.