@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;
       }
     }
   }
 }