Loading core/java/com/android/internal/app/AlertController.java +55 −19 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.content.DialogInterface; import android.content.res.TypedArray; import android.database.Cursor; import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Handler; import android.os.Message; import android.text.TextUtils; Loading @@ -38,6 +39,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.view.Window; import android.view.WindowInsets; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; Loading Loading @@ -240,6 +242,7 @@ public class AlertController { mWindow.requestFeature(Window.FEATURE_NO_TITLE); mWindow.setContentView(mAlertDialogLayout); setupView(); setupDecor(); } public void setTitle(CharSequence title) { Loading Loading @@ -416,6 +419,27 @@ public class AlertController { return mScrollView != null && mScrollView.executeKeyEvent(event); } private void setupDecor() { final View decor = mWindow.getDecorView(); final View parent = mWindow.findViewById(R.id.parentPanel); if (parent != null && decor != null) { decor.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() { @Override public WindowInsets onApplyWindowInsets(View view, WindowInsets insets) { if (insets.isRound()) { // TODO: Get the padding as a function of the window size. int roundOffset = mContext.getResources().getDimensionPixelOffset( R.dimen.alert_dialog_round_padding); parent.setPadding(roundOffset, roundOffset, roundOffset, roundOffset); } return insets.consumeSystemWindowInsets(); } }); decor.setFitsSystemWindows(true); decor.requestApplyInsets(); } } private void setupView() { LinearLayout contentPanel = (LinearLayout) mWindow.findViewById(R.id.contentPanel); setupContent(contentPanel); Loading Loading @@ -636,14 +660,31 @@ public class AlertController { private void setBackground(TypedArray a, View topPanel, View contentPanel, View customPanel, View buttonPanel, boolean hasTitle, boolean hasCustomView, boolean hasButtons) { final int topBright = a.getResourceId( R.styleable.AlertDialog_topBright, R.drawable.popup_top_bright); final int topDark = a.getResourceId( R.styleable.AlertDialog_topDark, R.drawable.popup_top_dark); final int centerBright = a.getResourceId( R.styleable.AlertDialog_centerBright, R.drawable.popup_center_bright); final int centerDark = a.getResourceId( R.styleable.AlertDialog_centerDark, R.drawable.popup_center_dark); int fullDark = 0; int topDark = 0; int centerDark = 0; int bottomDark = 0; int fullBright = 0; int topBright = 0; int centerBright = 0; int bottomBright = 0; int bottomMedium = 0; if (mContext.getApplicationInfo().targetSdkVersion <= Build.VERSION_CODES.KITKAT) { fullDark = R.drawable.popup_full_dark; topDark = R.drawable.popup_top_dark; centerDark = R.drawable.popup_center_dark; bottomDark = R.drawable.popup_bottom_dark; fullBright = R.drawable.popup_full_bright; topBright = R.drawable.popup_top_bright; centerBright = R.drawable.popup_center_bright; bottomBright = R.drawable.popup_bottom_bright; bottomMedium = R.drawable.popup_bottom_medium; } topBright = a.getResourceId(R.styleable.AlertDialog_topBright, topBright); topDark = a.getResourceId(R.styleable.AlertDialog_topDark, topDark); centerBright = a.getResourceId(R.styleable.AlertDialog_centerBright, centerBright); centerDark = a.getResourceId(R.styleable.AlertDialog_centerDark, centerDark); /* We now set the background of all of the sections of the alert. * First collect together each section that is being displayed along Loading Loading @@ -707,22 +748,17 @@ public class AlertController { if (lastView != null) { if (setView) { final int bottomBright = a.getResourceId( R.styleable.AlertDialog_bottomBright, R.drawable.popup_bottom_bright); final int bottomMedium = a.getResourceId( R.styleable.AlertDialog_bottomMedium, R.drawable.popup_bottom_medium); final int bottomDark = a.getResourceId( R.styleable.AlertDialog_bottomDark, R.drawable.popup_bottom_dark); bottomBright = a.getResourceId(R.styleable.AlertDialog_bottomBright, bottomBright); bottomMedium = a.getResourceId(R.styleable.AlertDialog_bottomMedium, bottomMedium); bottomDark = a.getResourceId(R.styleable.AlertDialog_bottomDark, bottomDark); // ListViews will use the Bright background, but buttons use the // Medium background. lastView.setBackgroundResource( lastLight ? (hasButtons ? bottomMedium : bottomBright) : bottomDark); } else { final int fullBright = a.getResourceId( R.styleable.AlertDialog_fullBright, R.drawable.popup_full_bright); final int fullDark = a.getResourceId( R.styleable.AlertDialog_fullDark, R.drawable.popup_full_dark); fullBright = a.getResourceId(R.styleable.AlertDialog_fullBright, fullBright); fullDark = a.getResourceId(R.styleable.AlertDialog_fullDark, fullDark); lastView.setBackgroundResource(lastLight ? fullBright : fullDark); } Loading core/res/res/layout/alert_dialog_micro.xml +2 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ android:id="@+id/parentPanel" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white" android:layout_gravity="center" android:orientation="vertical"> <LinearLayout android:id="@+id/topPanel" Loading core/res/res/values/dimens.xml +2 −0 Original line number Diff line number Diff line Loading @@ -143,6 +143,8 @@ <!-- Preferred width of the search view. --> <dimen name="search_view_preferred_width">320dip</dimen> <!-- Dialog padding for round display --> <dimen name="alert_dialog_round_padding">27dip</dimen> <!-- Dialog title height --> <dimen name="alert_dialog_title_height">64dip</dimen> <!-- Dialog button bar height --> Loading core/res/res/values/styles_micro.xml +10 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,16 @@ --> <resources> <style name="AlertDialog.Micro" parent="AlertDialog.Holo.Light"> <item name="fullDark">@null</item> <item name="topDark">@null</item> <item name="centerDark">@null</item> <item name="bottomDark">@null</item> <item name="fullBright">@null</item> <item name="topBright">@null</item> <item name="centerBright">@null</item> <item name="bottomBright">@null</item> <item name="bottomMedium">@null</item> <item name="centerMedium">@null</item> <item name="layout">@layout/alert_dialog_micro</item> </style> Loading core/res/res/values/symbols.xml +2 −0 Original line number Diff line number Diff line Loading @@ -120,6 +120,7 @@ <java-symbol type="id" name="overlay_display_window_title" /> <java-symbol type="id" name="package_label" /> <java-symbol type="id" name="packages_list" /> <java-symbol type="id" name="parentPanel" /> <java-symbol type="id" name="pause" /> <java-symbol type="id" name="perms_list" /> <java-symbol type="id" name="perm_icon" /> Loading Loading @@ -325,6 +326,7 @@ <java-symbol type="color" name="tab_indicator_text_v4" /> <java-symbol type="dimen" name="accessibility_touch_slop" /> <java-symbol type="dimen" name="alert_dialog_round_padding"/> <java-symbol type="dimen" name="config_prefDialogWidth" /> <java-symbol type="dimen" name="config_viewConfigurationTouchSlop" /> <java-symbol type="dimen" name="config_viewMinFlingVelocity" /> Loading Loading
core/java/com/android/internal/app/AlertController.java +55 −19 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.content.DialogInterface; import android.content.res.TypedArray; import android.database.Cursor; import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Handler; import android.os.Message; import android.text.TextUtils; Loading @@ -38,6 +39,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.view.Window; import android.view.WindowInsets; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; Loading Loading @@ -240,6 +242,7 @@ public class AlertController { mWindow.requestFeature(Window.FEATURE_NO_TITLE); mWindow.setContentView(mAlertDialogLayout); setupView(); setupDecor(); } public void setTitle(CharSequence title) { Loading Loading @@ -416,6 +419,27 @@ public class AlertController { return mScrollView != null && mScrollView.executeKeyEvent(event); } private void setupDecor() { final View decor = mWindow.getDecorView(); final View parent = mWindow.findViewById(R.id.parentPanel); if (parent != null && decor != null) { decor.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() { @Override public WindowInsets onApplyWindowInsets(View view, WindowInsets insets) { if (insets.isRound()) { // TODO: Get the padding as a function of the window size. int roundOffset = mContext.getResources().getDimensionPixelOffset( R.dimen.alert_dialog_round_padding); parent.setPadding(roundOffset, roundOffset, roundOffset, roundOffset); } return insets.consumeSystemWindowInsets(); } }); decor.setFitsSystemWindows(true); decor.requestApplyInsets(); } } private void setupView() { LinearLayout contentPanel = (LinearLayout) mWindow.findViewById(R.id.contentPanel); setupContent(contentPanel); Loading Loading @@ -636,14 +660,31 @@ public class AlertController { private void setBackground(TypedArray a, View topPanel, View contentPanel, View customPanel, View buttonPanel, boolean hasTitle, boolean hasCustomView, boolean hasButtons) { final int topBright = a.getResourceId( R.styleable.AlertDialog_topBright, R.drawable.popup_top_bright); final int topDark = a.getResourceId( R.styleable.AlertDialog_topDark, R.drawable.popup_top_dark); final int centerBright = a.getResourceId( R.styleable.AlertDialog_centerBright, R.drawable.popup_center_bright); final int centerDark = a.getResourceId( R.styleable.AlertDialog_centerDark, R.drawable.popup_center_dark); int fullDark = 0; int topDark = 0; int centerDark = 0; int bottomDark = 0; int fullBright = 0; int topBright = 0; int centerBright = 0; int bottomBright = 0; int bottomMedium = 0; if (mContext.getApplicationInfo().targetSdkVersion <= Build.VERSION_CODES.KITKAT) { fullDark = R.drawable.popup_full_dark; topDark = R.drawable.popup_top_dark; centerDark = R.drawable.popup_center_dark; bottomDark = R.drawable.popup_bottom_dark; fullBright = R.drawable.popup_full_bright; topBright = R.drawable.popup_top_bright; centerBright = R.drawable.popup_center_bright; bottomBright = R.drawable.popup_bottom_bright; bottomMedium = R.drawable.popup_bottom_medium; } topBright = a.getResourceId(R.styleable.AlertDialog_topBright, topBright); topDark = a.getResourceId(R.styleable.AlertDialog_topDark, topDark); centerBright = a.getResourceId(R.styleable.AlertDialog_centerBright, centerBright); centerDark = a.getResourceId(R.styleable.AlertDialog_centerDark, centerDark); /* We now set the background of all of the sections of the alert. * First collect together each section that is being displayed along Loading Loading @@ -707,22 +748,17 @@ public class AlertController { if (lastView != null) { if (setView) { final int bottomBright = a.getResourceId( R.styleable.AlertDialog_bottomBright, R.drawable.popup_bottom_bright); final int bottomMedium = a.getResourceId( R.styleable.AlertDialog_bottomMedium, R.drawable.popup_bottom_medium); final int bottomDark = a.getResourceId( R.styleable.AlertDialog_bottomDark, R.drawable.popup_bottom_dark); bottomBright = a.getResourceId(R.styleable.AlertDialog_bottomBright, bottomBright); bottomMedium = a.getResourceId(R.styleable.AlertDialog_bottomMedium, bottomMedium); bottomDark = a.getResourceId(R.styleable.AlertDialog_bottomDark, bottomDark); // ListViews will use the Bright background, but buttons use the // Medium background. lastView.setBackgroundResource( lastLight ? (hasButtons ? bottomMedium : bottomBright) : bottomDark); } else { final int fullBright = a.getResourceId( R.styleable.AlertDialog_fullBright, R.drawable.popup_full_bright); final int fullDark = a.getResourceId( R.styleable.AlertDialog_fullDark, R.drawable.popup_full_dark); fullBright = a.getResourceId(R.styleable.AlertDialog_fullBright, fullBright); fullDark = a.getResourceId(R.styleable.AlertDialog_fullDark, fullDark); lastView.setBackgroundResource(lastLight ? fullBright : fullDark); } Loading
core/res/res/layout/alert_dialog_micro.xml +2 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ android:id="@+id/parentPanel" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white" android:layout_gravity="center" android:orientation="vertical"> <LinearLayout android:id="@+id/topPanel" Loading
core/res/res/values/dimens.xml +2 −0 Original line number Diff line number Diff line Loading @@ -143,6 +143,8 @@ <!-- Preferred width of the search view. --> <dimen name="search_view_preferred_width">320dip</dimen> <!-- Dialog padding for round display --> <dimen name="alert_dialog_round_padding">27dip</dimen> <!-- Dialog title height --> <dimen name="alert_dialog_title_height">64dip</dimen> <!-- Dialog button bar height --> Loading
core/res/res/values/styles_micro.xml +10 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,16 @@ --> <resources> <style name="AlertDialog.Micro" parent="AlertDialog.Holo.Light"> <item name="fullDark">@null</item> <item name="topDark">@null</item> <item name="centerDark">@null</item> <item name="bottomDark">@null</item> <item name="fullBright">@null</item> <item name="topBright">@null</item> <item name="centerBright">@null</item> <item name="bottomBright">@null</item> <item name="bottomMedium">@null</item> <item name="centerMedium">@null</item> <item name="layout">@layout/alert_dialog_micro</item> </style> Loading
core/res/res/values/symbols.xml +2 −0 Original line number Diff line number Diff line Loading @@ -120,6 +120,7 @@ <java-symbol type="id" name="overlay_display_window_title" /> <java-symbol type="id" name="package_label" /> <java-symbol type="id" name="packages_list" /> <java-symbol type="id" name="parentPanel" /> <java-symbol type="id" name="pause" /> <java-symbol type="id" name="perms_list" /> <java-symbol type="id" name="perm_icon" /> Loading Loading @@ -325,6 +326,7 @@ <java-symbol type="color" name="tab_indicator_text_v4" /> <java-symbol type="dimen" name="accessibility_touch_slop" /> <java-symbol type="dimen" name="alert_dialog_round_padding"/> <java-symbol type="dimen" name="config_prefDialogWidth" /> <java-symbol type="dimen" name="config_viewConfigurationTouchSlop" /> <java-symbol type="dimen" name="config_viewMinFlingVelocity" /> Loading