Support for getWindow() on FakeDialog
diff --git a/src/com/xtremelabs/droidsugar/fakes/FakeActivity.java b/src/com/xtremelabs/droidsugar/fakes/FakeActivity.java
index 1ee94a2..c503536 100644
--- a/src/com/xtremelabs/droidsugar/fakes/FakeActivity.java
+++ b/src/com/xtremelabs/droidsugar/fakes/FakeActivity.java
@@ -2,13 +2,10 @@
import android.app.Activity;
import android.app.Application;
-import android.content.Context;
import android.content.Intent;
-import android.content.res.Configuration;
-import android.graphics.drawable.Drawable;
-import android.net.Uri;
-import android.os.Bundle;
-import android.view.*;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.Window;
import com.xtremelabs.droidsugar.util.Implements;
@SuppressWarnings({"UnusedDeclaration"})
@@ -24,7 +21,7 @@
public Activity parent;
public static Application application;
private Activity realActivity;
- private FakeActivity.TestWindow window;
+ private TestWindow window;
public FakeActivity(Activity realActivity) {
this.realActivity = realActivity;
@@ -90,144 +87,4 @@
return window;
}
- public class TestWindow extends Window {
- public int flags;
-
- private TestWindow(Context context) {
- super(context);
- }
-
- @Override public void setFlags(int flags, int mask) {
- this.flags = (flags&~mask) | (flags&mask);
- }
-
- @Override public void addFlags(int flags) {
- setFlags(flags, flags);
- }
-
- @Override public boolean isFloating() {
- return false;
- }
-
- @Override public void setContentView(int layoutResID) {
- }
-
- @Override public void setContentView(View view) {
- }
-
- @Override public void setContentView(View view, ViewGroup.LayoutParams params) {
- }
-
- @Override public void addContentView(View view, ViewGroup.LayoutParams params) {
- }
-
- @Override public View getCurrentFocus() {
- return null;
- }
-
- @Override public LayoutInflater getLayoutInflater() {
- return null;
- }
-
- @Override public void setTitle(CharSequence title) {
- }
-
- @Override public void setTitleColor(int textColor) {
- }
-
- @Override public void openPanel(int featureId, KeyEvent event) {
- }
-
- @Override public void closePanel(int featureId) {
- }
-
- @Override public void togglePanel(int featureId, KeyEvent event) {
- }
-
- @Override public boolean performPanelShortcut(int featureId, int keyCode, KeyEvent event, int flags) {
- return false;
- }
-
- @Override public boolean performPanelIdentifierAction(int featureId, int id, int flags) {
- return false;
- }
-
- @Override public void closeAllPanels() {
- }
-
- @Override public boolean performContextMenuIdentifierAction(int id, int flags) {
- return false;
- }
-
- @Override public void onConfigurationChanged(Configuration newConfig) {
- }
-
- @Override public void setBackgroundDrawable(Drawable drawable) {
- }
-
- @Override public void setFeatureDrawableResource(int featureId, int resId) {
- }
-
- @Override public void setFeatureDrawableUri(int featureId, Uri uri) {
- }
-
- @Override public void setFeatureDrawable(int featureId, Drawable drawable) {
- }
-
- @Override public void setFeatureDrawableAlpha(int featureId, int alpha) {
- }
-
- @Override public void setFeatureInt(int featureId, int value) {
- }
-
- @Override public void takeKeyEvents(boolean get) {
- }
-
- @Override public boolean superDispatchKeyEvent(KeyEvent event) {
- return false;
- }
-
- @Override public boolean superDispatchTouchEvent(MotionEvent event) {
- return false;
- }
-
- @Override public boolean superDispatchTrackballEvent(MotionEvent event) {
- return false;
- }
-
- @Override public View getDecorView() {
- return null;
- }
-
- @Override public View peekDecorView() {
- return null;
- }
-
- @Override public Bundle saveHierarchyState() {
- return null;
- }
-
- @Override public void restoreHierarchyState(Bundle savedInstanceState) {
- }
-
- @Override protected void onActive() {
- }
-
- @Override public void setChildDrawable(int featureId, Drawable drawable) {
- }
-
- @Override public void setChildInt(int featureId, int value) {
- }
-
- @Override public boolean isShortcutKey(int keyCode, KeyEvent event) {
- return false;
- }
-
- @Override public void setVolumeControlStream(int streamType) {
- }
-
- @Override public int getVolumeControlStream() {
- return 0;
- }
- }
}
diff --git a/src/com/xtremelabs/droidsugar/fakes/FakeDialog.java b/src/com/xtremelabs/droidsugar/fakes/FakeDialog.java
index 6eaf441..e958b99 100644
--- a/src/com/xtremelabs/droidsugar/fakes/FakeDialog.java
+++ b/src/com/xtremelabs/droidsugar/fakes/FakeDialog.java
@@ -5,6 +5,7 @@
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
+import android.view.Window;
import com.xtremelabs.droidsugar.util.Implements;
import java.lang.reflect.Method;
@@ -24,6 +25,7 @@
private DialogInterface.OnDismissListener onDismissListener;
public CharSequence title;
private DialogInterface.OnCancelListener onCancelListener;
+ private Window window;
public static void reset() {
latestDialog = null;
@@ -116,4 +118,11 @@
public void setOnCancelListener(final DialogInterface.OnCancelListener listener) {
this.onCancelListener = listener;
}
+
+ public Window getWindow() {
+ if(window == null) {
+ window = new TestWindow(realDialog.getContext());
+ }
+ return window;
+ }
}
diff --git a/src/com/xtremelabs/droidsugar/fakes/TestWindow.java b/src/com/xtremelabs/droidsugar/fakes/TestWindow.java
new file mode 100644
index 0000000..f72fa53
--- /dev/null
+++ b/src/com/xtremelabs/droidsugar/fakes/TestWindow.java
@@ -0,0 +1,159 @@
+package com.xtremelabs.droidsugar.fakes;
+
+import android.content.Context;
+import android.content.res.Configuration;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.*;
+
+public class TestWindow extends Window {
+ public int flags;
+ public int requestedFeatureId;
+ public int featureDrawableResourceFeatureId;
+ public int featureDrawableResourceResId;
+
+ TestWindow(Context context) {
+ super(context);
+ }
+
+ @Override public boolean requestFeature(int featureId) {
+ this.requestedFeatureId = featureId;
+ return true;
+ }
+
+ @Override public void setFlags(int flags, int mask) {
+ this.flags = (flags&~mask) | (flags&mask);
+ }
+
+ @Override public void addFlags(int flags) {
+ setFlags(flags, flags);
+ }
+
+ @Override public boolean isFloating() {
+ return false;
+ }
+
+ @Override public void setContentView(int layoutResID) {
+ }
+
+ @Override public void setContentView(View view) {
+ }
+
+ @Override public void setContentView(View view, ViewGroup.LayoutParams params) {
+ }
+
+ @Override public void addContentView(View view, ViewGroup.LayoutParams params) {
+ }
+
+ @Override public View getCurrentFocus() {
+ return null;
+ }
+
+ @Override public LayoutInflater getLayoutInflater() {
+ return null;
+ }
+
+ @Override public void setTitle(CharSequence title) {
+ }
+
+ @Override public void setTitleColor(int textColor) {
+ }
+
+ @Override public void openPanel(int featureId, KeyEvent event) {
+ }
+
+ @Override public void closePanel(int featureId) {
+ }
+
+ @Override public void togglePanel(int featureId, KeyEvent event) {
+ }
+
+ @Override public boolean performPanelShortcut(int featureId, int keyCode, KeyEvent event, int flags) {
+ return false;
+ }
+
+ @Override public boolean performPanelIdentifierAction(int featureId, int id, int flags) {
+ return false;
+ }
+
+ @Override public void closeAllPanels() {
+ }
+
+ @Override public boolean performContextMenuIdentifierAction(int id, int flags) {
+ return false;
+ }
+
+ @Override public void onConfigurationChanged(Configuration newConfig) {
+ }
+
+ @Override public void setBackgroundDrawable(Drawable drawable) {
+ }
+
+ @Override public void setFeatureDrawableResource(int featureId, int resId) {
+ featureDrawableResourceFeatureId = featureId;
+ featureDrawableResourceResId = resId;
+ }
+
+ @Override public void setFeatureDrawableUri(int featureId, Uri uri) {
+ }
+
+ @Override public void setFeatureDrawable(int featureId, Drawable drawable) {
+ }
+
+ @Override public void setFeatureDrawableAlpha(int featureId, int alpha) {
+ }
+
+ @Override public void setFeatureInt(int featureId, int value) {
+ }
+
+ @Override public void takeKeyEvents(boolean get) {
+ }
+
+ @Override public boolean superDispatchKeyEvent(KeyEvent event) {
+ return false;
+ }
+
+ @Override public boolean superDispatchTouchEvent(MotionEvent event) {
+ return false;
+ }
+
+ @Override public boolean superDispatchTrackballEvent(MotionEvent event) {
+ return false;
+ }
+
+ @Override public View getDecorView() {
+ return null;
+ }
+
+ @Override public View peekDecorView() {
+ return null;
+ }
+
+ @Override public Bundle saveHierarchyState() {
+ return null;
+ }
+
+ @Override public void restoreHierarchyState(Bundle savedInstanceState) {
+ }
+
+ @Override protected void onActive() {
+ }
+
+ @Override public void setChildDrawable(int featureId, Drawable drawable) {
+ }
+
+ @Override public void setChildInt(int featureId, int value) {
+ }
+
+ @Override public boolean isShortcutKey(int keyCode, KeyEvent event) {
+ return false;
+ }
+
+ @Override public void setVolumeControlStream(int streamType) {
+ }
+
+ @Override public int getVolumeControlStream() {
+ return 0;
+ }
+}