Mudando a orientação da tela no android

Eu quero mudar a orientação da tela paraSENSOR quando o Layout do quadro estiver visível (ou seja, o vídeo estiver sendo reproduzido em tela cheia), o que está funcionando bem, mas quero revertê-lo paraRETRATO quando o layout do quadro se foi O que não está funcionando (sem erros, mas o código não está fazendo nada) eu tentei isso até agora

// Finally show the custom view container.
        mCustomViewContainer.setVisibility(View.VISIBLE);
        mCustomViewContainer.bringToFront();

        // auto orientation change if video is playing
        if (mCustomViewContainer.getVisibility() == View.VISIBLE) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
        } else {        
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }       
    }

a solução alternativa que encontrei foi alterar a orientação contra-pressionada, porque é lá que também oculto o layout do quadro

@Override
public void onBackPressed() {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    exitdlg = (View) findViewById(R.id.exitdlg);
    options1 = (View) findViewById(R.id.options1);
    if (mCustomView != null) {// close full screen video view if open
        mWebChromeClient.onHideCustomView();// FULL-SCREEN VIDEO-5
    } else if (options1.getVisibility() == View.VISIBLE) {
        findViewById(R.id.options1).setVisibility(View.GONE);

    } else if (exitdlg.getVisibility() == View.GONE) {// this brings
                                                        // up/hides
        // menu 1 on hardware
        // options btn
        // Its visible
        findViewById(R.id.exitdlg).setVisibility(View.VISIBLE);
    } else {
        // Either gone or invisible
        findViewById(R.id.exitdlg).setVisibility(View.GONE);

    }
}

mas só funciona quando pressiono o botão voltar duas vezes, o que não quero.isso é onde eu peguei esse código