forked from organicmaps/organicmaps
[android] Transparent statusbar.
This commit is contained in:
parent
3e78928cbb
commit
b26eaabd8a
15 changed files with 76 additions and 24 deletions
|
@ -10,11 +10,13 @@
|
|||
<item name="android:textColorSecondary">@color/text_dark_subtitle</item>
|
||||
<item name="android:windowBackground">?windowBackgroundForced</item>
|
||||
<item name="android:colorPrimaryDark" tools:targetApi="lollipop">@color/bg_statusbar</item>
|
||||
<item name="android:windowDrawsSystemBarBackgrounds" tools:targetApi="lollipop">true</item>
|
||||
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
|
||||
<item name="android:fontFamily" tools:targetApi="jelly_bean">@string/robotoRegular</item>
|
||||
<item name="android:colorBackgroundCacheHint">@null</item>
|
||||
<item name="android:windowActionBarOverlay">true</item>
|
||||
<item name="clickableBackground">?selectableItemBackground</item>
|
||||
<item name="windowActionBar">false</item>
|
||||
<item name="windowActionBarOverlay">true</item>
|
||||
|
||||
<item name="alertDialogTheme">@style/MwmTheme.DialogFragment</item>
|
||||
<item name="windowBackgroundForced">@color/bg_window</item>
|
||||
|
@ -22,7 +24,6 @@
|
|||
<item name="cardBackground">@color/bg_cards</item>
|
||||
<item name="fullscreenDialogTheme">@style/MwmTheme.DialogFragment.Fullscreen</item>
|
||||
|
||||
<item name="statusBar">@color/bg_statusbar</item>
|
||||
<item name="colorPrimary">@color/bg_primary</item>
|
||||
<item name="colorControlNormal">?secondary</item>
|
||||
<item name="colorAccent">@color/base_accent</item>
|
||||
|
@ -95,11 +96,13 @@
|
|||
<item name="android:textColorSecondary">@color/text_light_subtitle</item>
|
||||
<item name="android:windowBackground">?windowBackgroundForced</item>
|
||||
<item name="android:colorPrimaryDark" tools:targetApi="lollipop">?statusBar</item>
|
||||
<item name="android:windowDrawsSystemBarBackgrounds" tools:targetApi="lollipop">true</item>
|
||||
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
|
||||
<item name="android:fontFamily" tools:targetApi="jelly_bean">@string/robotoRegular</item>
|
||||
<item name="android:colorBackgroundCacheHint">@null</item>
|
||||
<item name="android:windowActionBarOverlay">true</item>
|
||||
<item name="clickableBackground">?selectableItemBackground</item>
|
||||
<item name="windowActionBar">false</item>
|
||||
<item name="windowActionBarOverlay">true</item>
|
||||
|
||||
<item name="alertDialogTheme">@style/MwmTheme.Night.DialogFragment</item>
|
||||
<item name="windowBackgroundForced">@color/bg_window_night</item>
|
||||
|
@ -107,7 +110,6 @@
|
|||
<item name="cardBackground">@color/bg_cards_night</item>
|
||||
<item name="fullscreenDialogTheme">@style/MwmTheme.DialogFragment.Fullscreen.Night</item>
|
||||
|
||||
<item name="statusBar">@color/bg_statusbar_night</item>
|
||||
<item name="colorPrimary">@color/bg_primary_night</item>
|
||||
<item name="colorControlNormal">?secondary</item>
|
||||
<item name="colorAccent">@color/base_accent_night</item>
|
||||
|
|
|
@ -78,6 +78,7 @@
|
|||
<item name="android:textViewStyle">@style/MwmWidget.TextView</item>
|
||||
<item name="android:colorBackgroundCacheHint">@null</item>
|
||||
<item name="android:fontFamily" tools:targetApi="jelly_bean">@string/robotoRegular</item>
|
||||
<item name="android:windowTranslucentStatus" tools:targetApi="kitkat">true</item>
|
||||
</style>
|
||||
|
||||
<style name="MwmTheme.DialogFragment.Fullscreen.Night" parent="Theme.AppCompat">
|
||||
|
@ -91,6 +92,7 @@
|
|||
<item name="android:textViewStyle">@style/MwmWidget.TextView</item>
|
||||
<item name="android:colorBackgroundCacheHint">@null</item>
|
||||
<item name="android:fontFamily" tools:targetApi="jelly_bean">@string/robotoRegular</item>
|
||||
<item name="android:windowTranslucentStatus" tools:targetApi="kitkat">true</item>
|
||||
</style>
|
||||
|
||||
<style name="MwmTheme.DialogFragment.Fullscreen.Translucent">
|
||||
|
@ -169,9 +171,6 @@
|
|||
<item name="android:colorPrimaryDark" tools:targetApi="lollipop">@android:color/black</item>
|
||||
<item name="android:timePickerStyle" tools:targetApi="lollipop">@style/MwmWidget.Editor.TimePicker</item>
|
||||
<item name="android:windowBackground">@null</item>
|
||||
<item name="windowActionBar">false</item>
|
||||
<item name="windowActionBarOverlay">true</item>
|
||||
<item name="android:windowActionBarOverlay">true</item>
|
||||
</style>
|
||||
|
||||
<style name="MwmTheme.Night.FullScreenGalleryActivity">
|
||||
|
@ -179,9 +178,6 @@
|
|||
<item name="android:colorPrimaryDark" tools:targetApi="lollipop">@android:color/black</item>
|
||||
<item name="android:timePickerStyle" tools:targetApi="lollipop">@style/MwmWidget.Editor.TimePicker</item>
|
||||
<item name="android:windowBackground">@null</item>
|
||||
<item name="windowActionBar">false</item>
|
||||
<item name="windowActionBarOverlay">true</item>
|
||||
<item name="android:windowActionBarOverlay">true</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -451,6 +451,7 @@ public class MwmActivity extends BaseMwmFragmentActivity
|
|||
{
|
||||
mPositionChooser = findViewById(R.id.position_chooser);
|
||||
final Toolbar toolbar = (Toolbar) mPositionChooser.findViewById(R.id.toolbar_position_chooser);
|
||||
UiUtils.extendViewWithStatusBar(toolbar);
|
||||
UiUtils.showHomeUpButton(toolbar);
|
||||
toolbar.setNavigationOnClickListener(new OnClickListener()
|
||||
{
|
||||
|
|
|
@ -24,6 +24,7 @@ public class BaseMwmExtraTitleActivity extends BaseMwmFragmentActivity
|
|||
title = bundle.getString(EXTRA_TITLE);
|
||||
}
|
||||
Toolbar toolbar = getToolbar();
|
||||
UiUtils.extendViewWithStatusBar(toolbar);
|
||||
toolbar.setTitle(title);
|
||||
UiUtils.showHomeUpButton(toolbar);
|
||||
displayToolbarAsActionBar();
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.mapswithme.maps.base;
|
|||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.media.AudioManager;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
|
@ -11,6 +12,7 @@ import android.support.v4.app.Fragment;
|
|||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.MenuItem;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import com.mapswithme.maps.MwmApplication;
|
||||
import com.mapswithme.maps.R;
|
||||
|
@ -50,6 +52,8 @@ public class BaseMwmFragmentActivity extends AppCompatActivity
|
|||
mBaseDelegate.onCreate();
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
|
||||
setVolumeControlStream(AudioManager.STREAM_MUSIC);
|
||||
final int layoutId = getContentLayoutResId();
|
||||
if (layoutId != 0)
|
||||
|
|
|
@ -4,6 +4,7 @@ import android.os.Bundle;
|
|||
import android.support.annotation.StringRes;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
|
||||
import com.mapswithme.maps.R;
|
||||
import com.mapswithme.util.UiUtils;
|
||||
|
||||
|
@ -15,6 +16,7 @@ public abstract class BaseToolbarActivity extends BaseMwmFragmentActivity
|
|||
super.onCreate(state);
|
||||
|
||||
Toolbar toolbar = getToolbar();
|
||||
UiUtils.extendViewWithStatusBar(toolbar);
|
||||
int title = getToolbarTitle();
|
||||
if (title == 0)
|
||||
toolbar.setTitle(getTitle());
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.mapswithme.maps.gallery;
|
|||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.StyleRes;
|
||||
|
@ -66,8 +65,6 @@ public class FullScreenGalleryActivity extends BaseMwmFragmentActivity
|
|||
toolbar.setTitle("");
|
||||
UiUtils.showHomeUpButton(toolbar);
|
||||
displayToolbarAsActionBar();
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
|
||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
|
||||
|
||||
mUserBlock = findViewById(R.id.rl__user_block);
|
||||
mDescription = (TextView) findViewById(R.id.tv__description);
|
||||
|
|
|
@ -98,6 +98,9 @@ public class NavigationController
|
|||
View shadow = topFrame.findViewById(R.id.shadow_top);
|
||||
UiUtils.showIf(Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP, shadow);
|
||||
|
||||
UiUtils.extendViewWithStatusBar(mStreetFrame);
|
||||
UiUtils.extendViewMarginWithStatusBar(turnFrame);
|
||||
|
||||
// Bottom frame
|
||||
mSpeedValue = (TextView) mBottomFrame.findViewById(R.id.speed_value);
|
||||
mSpeedUnits = (TextView) mBottomFrame.findViewById(R.id.speed_dimen);
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.mapswithme.maps.routing;
|
||||
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.widget.ImageView;
|
||||
|
@ -8,7 +7,6 @@ import android.widget.ImageView;
|
|||
import com.mapswithme.maps.MwmActivity;
|
||||
import com.mapswithme.maps.R;
|
||||
import com.mapswithme.maps.bookmarks.data.MapObject;
|
||||
import com.mapswithme.util.ThemeUtils;
|
||||
import com.mapswithme.util.UiUtils;
|
||||
|
||||
public class RoutingPlanInplaceController extends RoutingPlanController
|
||||
|
@ -17,17 +15,9 @@ public class RoutingPlanInplaceController extends RoutingPlanController
|
|||
|
||||
private Boolean mSlotsRestoredState;
|
||||
|
||||
private void updateStatusBarColor()
|
||||
{
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
|
||||
mActivity.getWindow().setStatusBarColor(ThemeUtils.getColor(mActivity, UiUtils.isVisible(mFrame) ? R.attr.statusBar
|
||||
: android.R.attr.colorPrimaryDark));
|
||||
}
|
||||
|
||||
public RoutingPlanInplaceController(MwmActivity activity)
|
||||
{
|
||||
super(activity.findViewById(R.id.routing_plan_frame), activity);
|
||||
updateStatusBarColor();
|
||||
}
|
||||
|
||||
public void show(boolean show)
|
||||
|
@ -47,7 +37,6 @@ public class RoutingPlanInplaceController extends RoutingPlanController
|
|||
}
|
||||
|
||||
UiUtils.showIf(show, mFrame);
|
||||
updateStatusBarColor();
|
||||
if (show)
|
||||
updatePoints();
|
||||
}
|
||||
|
|
|
@ -27,6 +27,8 @@ public class ToolbarController
|
|||
{
|
||||
mActivity = activity;
|
||||
mToolbar = (Toolbar) root.findViewById(getToolbarId());
|
||||
|
||||
UiUtils.extendViewWithStatusBar(mToolbar);
|
||||
setupNavigationListener();
|
||||
}
|
||||
|
||||
|
|
|
@ -47,6 +47,7 @@ class BottomPlacePageAnimationController extends BasePlacePageAnimationControlle
|
|||
final Toolbar toolbar = (Toolbar) mLayoutToolbar.findViewById(R.id.toolbar);
|
||||
if (toolbar != null)
|
||||
{
|
||||
UiUtils.extendViewWithStatusBar(toolbar);
|
||||
UiUtils.showHomeUpButton(toolbar);
|
||||
toolbar.setNavigationOnClickListener(new View.OnClickListener()
|
||||
{
|
||||
|
|
|
@ -85,6 +85,7 @@ public class EditBookmarkFragment extends BaseMwmDialogFragment implements View.
|
|||
private void initToolbar(View view)
|
||||
{
|
||||
Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
|
||||
UiUtils.extendViewWithStatusBar(toolbar);
|
||||
final TextView textView = (TextView) toolbar.findViewById(R.id.tv__save);
|
||||
textView.setOnClickListener(new View.OnClickListener()
|
||||
{
|
||||
|
|
|
@ -79,6 +79,7 @@ public class EditDescriptionFragment extends BaseMwmDialogFragment
|
|||
private void initToolbar(View view)
|
||||
{
|
||||
Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
|
||||
UiUtils.extendViewWithStatusBar(toolbar);
|
||||
final TextView textView = (TextView) toolbar.findViewById(R.id.tv__save);
|
||||
textView.setOnClickListener(new View.OnClickListener()
|
||||
{
|
||||
|
|
|
@ -16,6 +16,7 @@ class LeftPlacePageAnimationController extends BasePlacePageAnimationController
|
|||
LeftPlacePageAnimationController(@NonNull PlacePageView placePage)
|
||||
{
|
||||
super(placePage);
|
||||
UiUtils.extendViewPaddingWithStatusBar(mPreview);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -23,6 +23,7 @@ import android.text.TextUtils;
|
|||
import android.view.MotionEvent;
|
||||
import android.view.Surface;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewTreeObserver;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.Animation.AnimationListener;
|
||||
|
@ -359,6 +360,56 @@ public final class UiUtils
|
|||
return viewRect.contains(x, y);
|
||||
}
|
||||
|
||||
private static int getStatusBarHeight(Context context)
|
||||
{
|
||||
int result = 0;
|
||||
Resources res = context.getResources();
|
||||
int resourceId = res.getIdentifier("status_bar_height", "dimen", "android");
|
||||
if (resourceId > 0)
|
||||
result = res.getDimensionPixelSize(resourceId);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void extendViewWithStatusBar(View view)
|
||||
{
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT)
|
||||
return;
|
||||
|
||||
int statusBarHeight = getStatusBarHeight(view.getContext());
|
||||
ViewGroup.LayoutParams lp = view.getLayoutParams();
|
||||
lp.height += statusBarHeight;
|
||||
view.setLayoutParams(lp);
|
||||
extendViewPaddingTop(view, statusBarHeight);
|
||||
}
|
||||
|
||||
public static void extendViewPaddingWithStatusBar(View view)
|
||||
{
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT)
|
||||
return;
|
||||
|
||||
int statusBarHeight = getStatusBarHeight(view.getContext());
|
||||
extendViewPaddingTop(view, statusBarHeight);
|
||||
}
|
||||
|
||||
private static void extendViewPaddingTop(View view, int statusBarHeight)
|
||||
{
|
||||
view.setPadding(view.getPaddingLeft(), view.getPaddingTop() + statusBarHeight,
|
||||
view.getPaddingRight(), view.getPaddingBottom());
|
||||
}
|
||||
|
||||
public static void extendViewMarginWithStatusBar(View view)
|
||||
{
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT)
|
||||
return;
|
||||
|
||||
int statusBarHeight = getStatusBarHeight(view.getContext());
|
||||
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
|
||||
int margin = lp.getMarginStart();
|
||||
lp.setMargins(margin, margin + statusBarHeight, margin, margin);
|
||||
view.setLayoutParams(lp);
|
||||
}
|
||||
|
||||
// utility class
|
||||
private UiUtils() {}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue