Bug 1412517 - Time picker layout broken when opened in landscape mode; r?sdaswani draft
authorPetru Lingurar <petru.lingurar@softvision.ro>
Fri, 22 Jun 2018 18:33:32 +0300
changeset 809621 6b6e561eb02adc558d32cbd4250bb0592ce84a66
parent 809559 6b6f3f6ecf142908b3e437d3bc3fac75540a9bcb
push id113732
push userplingurar@mozilla.com
push dateFri, 22 Jun 2018 15:37:13 +0000
reviewerssdaswani
bugs1412517
milestone62.0a1
Bug 1412517 - Time picker layout broken when opened in landscape mode; r?sdaswani MozReview-Commit-ID: HKidrZXrgqK
mobile/android/base/java/org/mozilla/gecko/prompts/Prompt.java
--- a/mobile/android/base/java/org/mozilla/gecko/prompts/Prompt.java
+++ b/mobile/android/base/java/org/mozilla/gecko/prompts/Prompt.java
@@ -1,32 +1,33 @@
 /* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 package org.mozilla.gecko.prompts;
 
-import org.mozilla.gecko.GeckoAppShell;
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.util.GeckoBundle;
 import org.mozilla.gecko.util.ThreadUtils;
 import org.mozilla.gecko.Tab;
 import org.mozilla.gecko.Tabs;
 
 import android.app.AlertDialog;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.DialogInterface.OnCancelListener;
 import android.content.DialogInterface.OnClickListener;
 import android.content.res.Resources;
 import android.text.TextUtils;
 import android.util.Log;
+import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.view.ViewGroup;
 import android.widget.AdapterView;
 import android.widget.AdapterView.OnItemClickListener;
 import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.ScrollView;
 
 import java.util.ArrayList;
 
@@ -361,17 +362,25 @@ public class Prompt implements OnClickLi
     /* Wraps an input in a linearlayout. We do this so that we can set padding that appears outside the background
      * drawable for the view.
      */
     private View wrapInput(final PromptInput input) {
         final LinearLayout linearLayout = new LinearLayout(mContext);
         linearLayout.setOrientation(LinearLayout.VERTICAL);
         applyInputStyle(linearLayout, input);
 
-        linearLayout.addView(input.getView(mContext));
+        View widget = input.getView(mContext);
+
+        // Make sure the widget will not be chopped on smaller screens
+        LinearLayout.LayoutParams parentParams = new LinearLayout.LayoutParams(
+                ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+        parentParams.gravity = Gravity.CENTER;
+        widget.setLayoutParams(parentParams);
+
+        linearLayout.addView(widget);
 
         return linearLayout;
     }
 
     /* Add the requested input elements to the dialog.
      *
      * @param builder
      *        the alert builder currently building this dialog.