Требование моего приложения заключается в том, что он должен оставаться в портретной ориентации в любое время, кроме случаев, когда пользователь просматривает носитель.Android Игнорировать изменение конфигурации
В моем манифесте я установил android:configChanges="orientation|screenSize"
, поэтому onConfigurationChanged вызывается каждый раз, когда пользователь меняется с портрета на пейзаж.
Я внедрил в приложении приложение youtubeplayersupportfragment. Когда пользователь выбирает полный экран, я хочу, чтобы пользователь мог повернуть экран в альбомный, чтобы позволить пользователю просматривать в полноэкранном режиме, если это необходимо.
Youtubeplayer имеет полноэкранный режим слушателя, который я реализовал здесь
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));
}
};
Мой вопрос: Есть ли вообще игнорировать изменения конфигурации, основанные на обстоятельствах «Ъ» т.е. в коде ниже равно ложь?
Нет смысла в вызове метода setRequestedOrientation(), поскольку это постоянно фиксирует ориентацию, а onconfigurationchanged не получает вызов снова, который мне нужно вызвать при изменении ориентации.
@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");
}
}