Я создаю приложение для видеоплеера. Когда пользователь открывает действие VideoPlayer: я хочу скрыть строку состояния через 200 мс. Я использую Handler. Также пользователь может прикоснуться к виду поверхности, чтобы скрыть / показать строку состояния.
Проблема: первый раз, когда активность открывается, строка состояния исчезает через 200 мс, но когда пользователь взаимодействует с видом поверхности, чтобы показать / скрыть строку состояния, затем после того, как пользователь показывает строку состояния, она больше не будет скрываться.
VideoPlayer.class
public class VideoPlayer extends AppCompatActivity implements SurfaceHolder.Callback{
private SurfaceView surfaceView;
private SurfaceHolder surfaceHolder;
private boolean ISFULLSCREEN;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
surfaceView =findViewById(R.id.surface);
surfaceHolder=surfaceView.getHolder();
surfaceHolder.addCallback(VideoPlayer.this);
surfaceView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(ISFULLSCREEN) // if fullscreen true
{
exitFullScreen();
goFullScreen();
}
else
{
goFullScreen();
}
}
});
}
private void goFullScreen() //Hides statusbar and navigation bar after 200ms
{
Handler handler=new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
ISFULLSCREEN=true;
View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions =
View.SYSTEM_UI_FLAG_FULLSCREEN|View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
decorView.setSystemUiVisibility(uiOptions);
}
}, 200);
}
private void exitFullScreen() // shows statusbar
{
ISFULLSCREEN=false;
View decorView = getWindow().getDecorView();
// Show Status Bar.
int uiOptions = View.SYSTEM_UI_FLAG_VISIBLE;
decorView.setSystemUiVisibility(uiOptions);
}
}
Любая помощь будет оценена