@@ -123,25 +123,7 @@ public void onStart() {
123123 // Set dialog positioning after the dialog is created and shown
124124 Dialog dialog = getDialog ();
125125 if (dialog != null ) {
126- Window window = dialog .getWindow ();
127- if (window != null ) {
128- WindowManager .LayoutParams windowParams = window .getAttributes ();
129- int startGravity = getVerticalLocation (insetPadding );
130-
131- if (startGravity == Gravity .CENTER_VERTICAL ) {
132- windowParams .gravity = Gravity .CENTER ;
133- IterableLogger .d (TAG , "Set dialog gravity to CENTER in onStart" );
134- } else if (startGravity == Gravity .TOP ) {
135- windowParams .gravity = Gravity .TOP | Gravity .CENTER_HORIZONTAL ;
136- IterableLogger .d (TAG , "Set dialog gravity to TOP in onStart" );
137- } else if (startGravity == Gravity .BOTTOM ) {
138- windowParams .gravity = Gravity .BOTTOM | Gravity .CENTER_HORIZONTAL ;
139- IterableLogger .d (TAG , "Set dialog gravity to BOTTOM in onStart" );
140- }
141-
142- window .setAttributes (windowParams );
143- IterableLogger .d (TAG , "Applied window gravity in onStart: " + windowParams .gravity );
144- }
126+ applyWindowGravity (dialog .getWindow (), "onStart" );
145127 }
146128 }
147129
@@ -185,22 +167,7 @@ public void onCancel(DialogInterface dialog) {
185167 dialog .requestWindowFeature (Window .FEATURE_NO_TITLE );
186168
187169 // Set window gravity for the dialog
188- Window window = dialog .getWindow ();
189- WindowManager .LayoutParams windowParams = window .getAttributes ();
190- int dialogGravity = getVerticalLocation (insetPadding );
191-
192- if (dialogGravity == Gravity .CENTER_VERTICAL ) {
193- windowParams .gravity = Gravity .CENTER ;
194- IterableLogger .d (TAG , "Set dialog gravity to CENTER in onCreateDialog" );
195- } else if (dialogGravity == Gravity .TOP ) {
196- windowParams .gravity = Gravity .TOP | Gravity .CENTER_HORIZONTAL ;
197- IterableLogger .d (TAG , "Set dialog gravity to TOP in onCreateDialog" );
198- } else if (dialogGravity == Gravity .BOTTOM ) {
199- windowParams .gravity = Gravity .BOTTOM | Gravity .CENTER_HORIZONTAL ;
200- IterableLogger .d (TAG , "Set dialog gravity to BOTTOM in onCreateDialog" );
201- }
202-
203- window .setAttributes (windowParams );
170+ applyWindowGravity (dialog .getWindow (), "onCreateDialog" );
204171
205172 if (getInAppLayout (insetPadding ) == InAppLayout .FULLSCREEN ) {
206173 dialog .getWindow ().setFlags (WindowManager .LayoutParams .FLAG_FULLSCREEN , WindowManager .LayoutParams .FLAG_FULLSCREEN );
@@ -222,22 +189,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c
222189 }
223190
224191 // Set initial window gravity based on inset padding
225- Window window = getDialog ().getWindow ();
226- WindowManager .LayoutParams windowParams = window .getAttributes ();
227- int windowGravity = getVerticalLocation (insetPadding );
228-
229- if (windowGravity == Gravity .CENTER_VERTICAL ) {
230- windowParams .gravity = Gravity .CENTER ;
231- IterableLogger .d (TAG , "Set initial CENTER window gravity in onCreateView" );
232- } else if (windowGravity == Gravity .TOP ) {
233- windowParams .gravity = Gravity .TOP | Gravity .CENTER_HORIZONTAL ;
234- IterableLogger .d (TAG , "Set initial TOP window gravity in onCreateView" );
235- } else if (windowGravity == Gravity .BOTTOM ) {
236- windowParams .gravity = Gravity .BOTTOM | Gravity .CENTER_HORIZONTAL ;
237- IterableLogger .d (TAG , "Set initial BOTTOM window gravity in onCreateView" );
238- }
239-
240- window .setAttributes (windowParams );
192+ applyWindowGravity (getDialog ().getWindow (), "onCreateView" );
241193
242194 webView = new IterableWebView (getContext ());
243195 webView .setId (R .id .webView );
@@ -711,6 +663,31 @@ int getVerticalLocation(Rect padding) {
711663 return gravity ;
712664 }
713665
666+ /**
667+ * Sets the window gravity based on inset padding
668+ * @param window The dialog window to configure
669+ * @param context Debug context string for logging
670+ */
671+ private void applyWindowGravity (Window window , String context ) {
672+ if (window == null ) {
673+ return ;
674+ }
675+
676+ WindowManager .LayoutParams windowParams = window .getAttributes ();
677+ int gravity = getVerticalLocation (insetPadding );
678+
679+ if (gravity == Gravity .CENTER_VERTICAL ) {
680+ windowParams .gravity = Gravity .CENTER ;
681+ } else if (gravity == Gravity .TOP ) {
682+ windowParams .gravity = Gravity .TOP | Gravity .CENTER_HORIZONTAL ;
683+ } else if (gravity == Gravity .BOTTOM ) {
684+ windowParams .gravity = Gravity .BOTTOM | Gravity .CENTER_HORIZONTAL ;
685+ }
686+
687+ window .setAttributes (windowParams );
688+ IterableLogger .d (TAG , "Set window gravity in " + context + ": " + windowParams .gravity );
689+ }
690+
714691 InAppLayout getInAppLayout (Rect padding ) {
715692 if (padding .top == 0 && padding .bottom == 0 ) {
716693 return InAppLayout .FULLSCREEN ;
0 commit comments