diff --git a/packages/DocumentsUI/res/layout/dialog_file_name.xml b/packages/DocumentsUI/res/layout/dialog_file_name.xml index 5ed476fc32879..3a95a136126ed 100644 --- a/packages/DocumentsUI/res/layout/dialog_file_name.xml +++ b/packages/DocumentsUI/res/layout/dialog_file_name.xml @@ -17,6 +17,7 @@ false true true + true + false stateUnspecified|adjustUnspecified @@ -43,7 +45,7 @@ diff --git a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java index 73b3509ebee20..54202d40bda9d 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java @@ -127,6 +127,7 @@ public abstract class BaseActivity extends Activity mSearchManager = new SearchViewManager(this, icicle); DocumentsToolbar toolbar = (DocumentsToolbar) findViewById(R.id.toolbar); + Display.adjustToolbar(toolbar, this); setActionBar(toolbar); mNavigator = new NavigationView( mDrawer, diff --git a/packages/DocumentsUI/src/com/android/documentsui/Display.java b/packages/DocumentsUI/src/com/android/documentsui/Display.java index bae2d58c7abbd..d46a3eac94e98 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/Display.java +++ b/packages/DocumentsUI/src/com/android/documentsui/Display.java @@ -20,13 +20,15 @@ import android.app.Activity; import android.content.Context; import android.graphics.Point; import android.util.TypedValue; +import android.view.WindowManager; +import android.widget.Toolbar; /* * Convenience class for getting display related attributes */ public final class Display { /* - * Returns the screen width in pixels. + * Returns the screen width in raw pixels. */ public static float screenWidth(Activity activity) { Point size = new Point(); @@ -42,15 +44,44 @@ public final class Display { } /* - * Returns action bar height in pixels. + * Returns action bar height in raw pixels. */ public static float actionBarHeight(Context context) { - int actionBarHeight = 0; + int height = 0; TypedValue tv = new TypedValue(); if (context.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) { - actionBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, + height = TypedValue.complexToDimensionPixelSize(tv.data, context.getResources().getDisplayMetrics()); } - return actionBarHeight; + return height; + } + + /* + * Returns status bar height in raw pixels. + */ + private static int statusBarHeight(Context context) { + int height = 0; + int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", + "android"); + if (resourceId > 0) { + height = context.getResources().getDimensionPixelSize(resourceId); + } + return height; + } + + /* + * Adjusts toolbar for the layout with translucent status bar. Increases the + * height of the toolbar and adds padding at the top to accommodate status bar visible above + * toolbar. + */ + public static void adjustToolbar(Toolbar toolbar, Activity activity) { + if ((activity.getWindow().getAttributes().flags + & WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) != 0) { + int statusBarHeight = Display.statusBarHeight(activity); + toolbar.getLayoutParams().height = (int) (Display.actionBarHeight(activity) + + statusBarHeight); + toolbar.setPadding(toolbar.getPaddingLeft(), statusBarHeight, toolbar.getPaddingRight(), + toolbar.getPaddingBottom()); + } } } diff --git a/packages/DocumentsUI/src/com/android/documentsui/DrawerController.java b/packages/DocumentsUI/src/com/android/documentsui/DrawerController.java index 020f2c0ad8759..2dbb730c601a9 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/DrawerController.java +++ b/packages/DocumentsUI/src/com/android/documentsui/DrawerController.java @@ -55,7 +55,7 @@ abstract class DrawerController implements DrawerListener { View drawer = activity.findViewById(R.id.drawer_roots); Toolbar toolbar = (Toolbar) activity.findViewById(R.id.roots_toolbar); - + Display.adjustToolbar(toolbar, activity); drawer.getLayoutParams().width = calculateDrawerWidth(activity); ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(