diff --git a/src/main/java/ru/touchin/templates/TouchinActivity.java b/src/main/java/ru/touchin/templates/TouchinActivity.java index 1565aec..a961442 100644 --- a/src/main/java/ru/touchin/templates/TouchinActivity.java +++ b/src/main/java/ru/touchin/templates/TouchinActivity.java @@ -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 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(); + }