package tv.danmaku.android.support;
import tv.danmaku.android.BuildHelper;
import android.annotation.TargetApi;
import android.app.Activity;
import android.view.View;
import android.view.View.OnSystemUiVisibilityChangeListener;
public class SystemUIHelper {
@TargetApi(11)
public static void setSystemUiVisibility(Activity activity, int visibility) {
if (activity == null)
return;
if (BuildHelper.isApi11_HoneyCombOrLater()) {
activity.getWindow().getDecorView()
.setSystemUiVisibility(visibility);
}
}
public static void hideNavigation(Activity activity) {
if (activity == null)
return;
if (!BuildHelper.isApi11_HoneyCombOrLater())
return;
int visibility = View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
// visibility |= View.SYSTEM_UI_FLAG_LOW_PROFILE;
visibility |= View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
visibility |= View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
visibility |= View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
setSystemUiVisibility(activity, visibility);
}
public static void showNavigation(Activity activity) {
if (activity == null)
return;
if (!BuildHelper.isApi11_HoneyCombOrLater())
return;
int visibility = View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
setSystemUiVisibility(activity, visibility);
}
@TargetApi(11)
public static void setOnSystemUiVisibilityChangeListener(Activity activity,
OnSystemUiVisibilityChangeListener listener) {
if (activity == null)
return;
if (BuildHelper.isApi11_HoneyCombOrLater()) {
activity.getWindow().getDecorView()
.findViewById(android.R.id.content)
.setOnSystemUiVisibilityChangeListener(listener);
}
}
@TargetApi(16)
public static void requestFitSysWindow(View view) {
if (view == null)
return;
if (BuildHelper.isApi16_JellyBeanOrLater()) {
view.requestFitSystemWindows();
}
}
public static String getVisibilityVerbose(int visibility) {
StringBuilder sb = new StringBuilder();
sb.append(String.valueOf(visibility));
sb.append(':');
if (0 != (visibility & View.SYSTEM_UI_FLAG_LOW_PROFILE))
sb.append("low|");
if (0 != (visibility & View.SYSTEM_UI_FLAG_FULLSCREEN))
sb.append("full|");
if (0 != (visibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION))
sb.append("hide|");
if (0 != (visibility & View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN))
sb.append("layout_full|");
if (0 != (visibility & View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION))
sb.append("layout_hide|");
if (0 != (visibility & View.SYSTEM_UI_FLAG_LAYOUT_STABLE))
sb.append("layout_stable|");
return sb.toString();
}
}