下面列出了android.view.View#setKeepScreenOn ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void onShowCustomView(View view, int requestedOrientation, CustomViewCallback callback) {
if (view == null) {
return;
}
if (mCustomView != null && callback != null) {
callback.onCustomViewHidden();
return;
}
try {
view.setKeepScreenOn(true);
} catch (SecurityException e) {
Log.e(Constants.TAG, "WebView is not allowed to keep the screen on");
}
mOriginalOrientation = getRequestedOrientation();
FrameLayout decor = (FrameLayout) getWindow().getDecorView();
mFullscreenContainer = new FullscreenHolder(this);
mCustomView = view;
mFullscreenContainer.addView(mCustomView, COVER_SCREEN_PARAMS);
decor.addView(mFullscreenContainer, COVER_SCREEN_PARAMS);
setFullscreen(true);
getCurrentWebView().setVisibility(View.GONE);
if (view instanceof FrameLayout) {
if (((FrameLayout) view).getFocusedChild() instanceof VideoView) {
mVideoView = (VideoView) ((FrameLayout) view).getFocusedChild();
mVideoView.setOnErrorListener(new VideoCompletionListener());
mVideoView.setOnCompletionListener(new VideoCompletionListener());
}
}
mCustomViewCallback = callback;
}
@Override
public void onPlayerStateChanged(boolean playWhenReady, int playbackState) {
View view = viewToKeepScreenOn.get();
if (view == null) {
return;
}
if (playbackState == Player.STATE_IDLE || playbackState == Player.STATE_ENDED || !playWhenReady) {
view.setKeepScreenOn(false);
} else {
// This prevents the screen from getting dim/lock
view.setKeepScreenOn(true);
}
}
@CalledByNative
private void removeBlock() {
// mKeepScreenOnView may be null since it's possible that |applyBlock()| was
// not invoked due to having failed to get a view to call |setKeepScrenOn| on.
if (mKeepScreenOnView == null) return;
View view = mKeepScreenOnView.get();
mKeepScreenOnView = null;
if (view == null) return;
view.setKeepScreenOn(false);
}
public void checkPreferencesChanges() {
boolean screenOn = PreferenceManager
.getDefaultSharedPreferences(getActivity()).getBoolean("pref_force_screen_on", false);
boolean dyslexic = PreferenceManager
.getDefaultSharedPreferences(getActivity()).getBoolean("pref_opendyslexic", false);
ViewSwitcher switcher = getActivity().findViewById(R.id.switcher);
View lrcView = getActivity().findViewById(R.id.lrc_view);
if (switcher != null) {
switcher.setKeepScreenOn(screenOn);
if (switcher.getCurrentView() != null && switcher.getCurrentView() instanceof ViewGroup) {
changeTypefaceForAllChildren((ViewGroup) switcher.getCurrentView(), dyslexic ? "dyslexic" : "light");
}
}
if (lrcView != null)
lrcView.setKeepScreenOn(screenOn);
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
TypedValue outValue = new TypedValue();
MainActivity mainActivity = (MainActivity) getActivity();
mainActivity.getTheme().resolveAttribute(R.attr.themeName, outValue, false);
if ("Night".equals(outValue.string) != NightTimeVerifier.check(getActivity()) ||
mainActivity.themeNum != Integer.valueOf(sharedPrefs.getString("pref_theme", "0"))) {
getActivity().finish();
Intent intent = new Intent(getActivity(), MainActivity.class);
intent.setAction("android.intent.action.MAIN");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
getActivity().overridePendingTransition(0, 0);
}
}
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
Bundle b = getIntent().getExtras();
mAudioUrl = b.getString("mediaUrl");
String backgroundColor = b.getString("bgColor");
String backgroundImagePath = b.getString("bgImage");
String backgroundImageScale = b.getString("bgImageScale");
mShouldAutoClose = b.getBoolean("shouldAutoClose", true);
backgroundImageScale = backgroundImageScale == null ? "center" : backgroundImageScale.toLowerCase();
ImageView.ScaleType bgImageScaleType;
// Default background to black
int bgColor = Color.BLACK;
if (backgroundColor != null) {
bgColor = Color.parseColor(backgroundColor);
}
if (backgroundImageScale.equals("fit")) {
bgImageScaleType = ImageView.ScaleType.FIT_CENTER;
} else if (backgroundImageScale.equals("stretch")) {
bgImageScaleType = ImageView.ScaleType.FIT_XY;
} else {
bgImageScaleType = ImageView.ScaleType.CENTER;
}
RelativeLayout audioView = new RelativeLayout(this);
audioView.setBackgroundColor(bgColor);
if (backgroundImagePath != null) {
ImageView bgImage = new ImageView(this);
new ImageLoadTask(backgroundImagePath, bgImage, getApplicationContext()).execute(null, null);
RelativeLayout.LayoutParams bgImageLayoutParam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
bgImageLayoutParam.addRule(RelativeLayout.CENTER_IN_PARENT);
bgImage.setLayoutParams(bgImageLayoutParam);
bgImage.setScaleType(bgImageScaleType);
audioView.addView(bgImage);
}
RelativeLayout.LayoutParams relLayoutParam = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
mMediaControllerView = new View(this);
audioView.addView(mMediaControllerView);
setContentView(audioView, relLayoutParam);
// stop the screen from going to sleep. keepawake parameter from javascript. default is true.
mMediaControllerView.setKeepScreenOn(true);
Boolean keepAwake = b.getBoolean("keepAwake", true);
if (keepAwake == false) {
mMediaControllerView.setKeepScreenOn(false);
}
play();
}