@Override public void onSensorChanged(SensorEvent event) { if (getActivity() != null && getActivity().findViewById(R.id.rotateDeviceHint) != null) { // Log.i(TAG, "Sensor " + event.values[1]); if (event.values[1] > 10 || event.values[1] < -10) { // Sensor noise. Ignore. } else if (event.values[1] < 5.5 && event.values[1] > -5.5) { // Landscape if (orientation != 1 && readingConfirmed(1)) { if (mBroadcaster.getSessionConfig().isConvertingVerticalVideo()) { if (event.values[0] > 0) { mBroadcaster.signalVerticalVideo(FullFrameRect.SCREEN_ROTATION.LANDSCAPE); } else { mBroadcaster.signalVerticalVideo( FullFrameRect.SCREEN_ROTATION.UPSIDEDOWN_LANDSCAPE); } } else { getActivity().findViewById(R.id.rotateDeviceHint).setVisibility(View.GONE); } orientation = 1; } } else if (event.values[1] > 7.5 || event.values[1] < -7.5) { // Portrait if (orientation != 0 && readingConfirmed(0)) { if (mBroadcaster.getSessionConfig().isConvertingVerticalVideo()) { if (event.values[1] > 0) { mBroadcaster.signalVerticalVideo(FullFrameRect.SCREEN_ROTATION.VERTICAL); } else { mBroadcaster.signalVerticalVideo( FullFrameRect.SCREEN_ROTATION.UPSIDEDOWN_VERTICAL); } } else { getActivity().findViewById(R.id.rotateDeviceHint).setVisibility(View.VISIBLE); } orientation = 0; } } } }