add the possibility to make activity full screen

This commit is contained in:
contrudar 2016-05-19 15:52:20 +03:00
parent f12b209595
commit 160fa39b48
1 changed files with 52 additions and 0 deletions

View File

@ -19,8 +19,15 @@
package ru.touchin.templates;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.IdRes;
import android.support.annotation.Nullable;
import android.view.View;
import ru.touchin.roboswag.components.navigation.activities.ViewControllerActivity;
import ru.touchin.roboswag.components.utils.Logic;
import ru.touchin.roboswag.components.utils.UiUtils;
/**
* Created by Gavriil Sitnikov on 11/03/16.
@ -32,4 +39,49 @@ public abstract class TouchinActivity<TLogic extends Logic> extends ViewControll
super();
}
@Override
protected void onPostCreate(@Nullable final Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
makeActivityFullScreen();
}
private void makeActivityFullScreen() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && (isActivityUnderNavigationBar() || isActivityUnderStatusBar())) {
final View activityView = findViewById(getContainerId());
int topPadding = activityView.getPaddingTop();
int bottomPadding = activityView.getPaddingBottom();
if (isActivityUnderStatusBar()) {
topPadding += UiUtils.getStatusBarHeight(this);
}
if (UiUtils.hasSoftKeys(this)) {
getWindow().getDecorView()
.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
if (isActivityUnderNavigationBar()) {
bottomPadding += UiUtils.getNavigationBarHeight(this);
}
} else {
getWindow().getDecorView()
.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}
activityView.setPadding(activityView.getPaddingLeft(),
topPadding,
activityView.getPaddingRight(),
bottomPadding);
}
}
protected boolean isActivityUnderStatusBar() {
return false;
}
protected boolean isActivityUnderNavigationBar() {
return false;
}
@IdRes
protected abstract int getContainerId();
}