Skip to content

Commit 2cc8a75

Browse files
author
“Akshay
committed
Code refactor
1 parent 723c6c9 commit 2cc8a75

File tree

1 file changed

+28
-51
lines changed

1 file changed

+28
-51
lines changed

iterableapi/src/main/java/com/iterable/iterableapi/IterableInAppFragmentHTMLNotification.java

Lines changed: 28 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)