L'une des exigences de mon application est qu'elle doit rester en mode portrait à tout moment, sauf lorsque l'utilisateur visualise un média.Android Ignorer le changement de configuration
Dans mon manifeste, j'ai défini android:configChanges="orientation|screenSize"
, donc onConfigurationChanged est appelé chaque fois que l'utilisateur passe du mode portrait au mode paysage. J'ai mis en place un fragment de support youtubeplayersupport dans mon application. Lorsque l'utilisateur sélectionne le plein écran, je veux permettre à l'utilisateur de faire pivoter l'écran en mode paysage, afin de permettre à l'utilisateur de voir en plein écran si nécessaire.
Le Youtubeplayer a un écouteur plein écran que j'ai mis en œuvre ici
YouTubePlayer.OnInitializedListener YoutubePlayerInitializer = new YouTubePlayer.OnInitializedListener() {
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider, final YouTubePlayer youTubePlayer, boolean b) {
youTubePlayer.cueVideo(new MediaUtils().getVideoId(mFeedContent.getMedia().getMediaUrl()));
youTubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT);
youTubePlayer.setFullscreenControlFlags(2);
youTubePlayer.setOnFullscreenListener(new YouTubePlayer.OnFullscreenListener() {
@Override
public void onFullscreen(boolean b) {
if(b)
PreferenceUtils.setDisplayMedia(b);
else PreferenceUtils.setDisplayMedia(b);
}
});
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult){
Log.i(AbstractHolder.class.getSimpleName(), String.valueOf(youTubeInitializationResult));
}
};
Ma question est la suivante: Y at-il de toute façon d'ignorer les changements de configuration en fonction des circonstances à savoir « b » dans le code ci-dessous est false?
Il ne sert à rien d'appeler la méthode setRequestedOrientation() car elle corrige définitivement l'orientation et onconfigurationchanged ne reçoit plus d'appel dont j'ai besoin d'être appelé lorsque l'orientation est modifiée.
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
boolean media = PreferenceUtils.getDisplayMedia();
if (newConfig.orientation == newConfig.ORIENTATION_LANDSCAPE && media) {
//ALLOW ROTATION
L.i(MainActivity.class.getSimpleName(), "==================================LANDSCAPE");
} else {
//IGNORE CONFIGURATION CHANGE
L.i(MainActivity.class.getSimpleName(), "==================================PORTRAIT");
}
}