ActivityTest.java revision 943730659b697ae049fe203b2a51d75113c49cb5
133873d2b41a5cd2597b20a4e88eb8942944c0f23Tyler Schultzpackage com.xtremelabs.robolectric.shadows; 20add4ea006647573fc11fac463c87842f2dcc403Christian Williams 30add4ea006647573fc11fac463c87842f2dcc403Christian Williamsimport android.app.Activity; 485af7906879a68c99b1878dac22605fa32454f3fRich Humphreyimport android.app.Dialog; 50add4ea006647573fc11fac463c87842f2dcc403Christian Williamsimport android.appwidget.AppWidgetProvider; 6b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williamsimport android.content.Intent; 70add4ea006647573fc11fac463c87842f2dcc403Christian Williamsimport android.content.IntentFilter; 8c6526af59ebcc818c95680ac6f8efe83a0b65644adriancowhamimport android.content.pm.ActivityInfo; 9b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williamsimport android.net.Uri; 1085af7906879a68c99b1878dac22605fa32454f3fRich Humphreyimport android.os.Bundle; 1105d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richardimport android.view.KeyEvent; 1285af7906879a68c99b1878dac22605fa32454f3fRich Humphreyimport android.view.View; 13c6526af59ebcc818c95680ac6f8efe83a0b65644adriancowham 14297cc102ff285524a4109025ecd2c9c6ef051ce5Jan Berkelimport android.widget.FrameLayout; 15ce8adbf01d520e692a7eb6b72874c0182966127bPhil Goodwin & Tyler Schultzimport com.xtremelabs.robolectric.ApplicationResolver; 16c23ee9ca694000bd03b88d958bb84000e04f51e4Christian Williamsimport com.xtremelabs.robolectric.R; 170add4ea006647573fc11fac463c87842f2dcc403Christian Williamsimport com.xtremelabs.robolectric.Robolectric; 1807257335f88da163910cc0bd039e6163edc38580Gregg Van Hove & Phil Goodwinimport com.xtremelabs.robolectric.WithTestDefaultsRunner; 19a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultzimport com.xtremelabs.robolectric.util.TestRunnable; 20b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williamsimport com.xtremelabs.robolectric.util.Transcript; 21ce8adbf01d520e692a7eb6b72874c0182966127bPhil Goodwin & Tyler Schultz 2285af7906879a68c99b1878dac22605fa32454f3fRich Humphreyimport org.hamcrest.CoreMatchers; 2385af7906879a68c99b1878dac22605fa32454f3fRich Humphreyimport org.junit.Test; 2485af7906879a68c99b1878dac22605fa32454f3fRich Humphreyimport org.junit.runner.RunWith; 2585af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 2685af7906879a68c99b1878dac22605fa32454f3fRich Humphreyimport java.util.concurrent.atomic.AtomicBoolean; 2785af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 2885af7906879a68c99b1878dac22605fa32454f3fRich Humphreyimport static com.xtremelabs.robolectric.Robolectric.shadowOf; 29297cc102ff285524a4109025ecd2c9c6ef051ce5Jan Berkelimport static com.xtremelabs.robolectric.util.TestUtil.assertInstanceOf; 3085af7906879a68c99b1878dac22605fa32454f3fRich Humphreyimport static com.xtremelabs.robolectric.util.TestUtil.newConfig; 315117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport static org.hamcrest.CoreMatchers.equalTo; 325117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport static org.hamcrest.CoreMatchers.notNullValue; 335117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport static org.hamcrest.CoreMatchers.nullValue; 345117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richardimport static org.hamcrest.CoreMatchers.sameInstance; 3585af7906879a68c99b1878dac22605fa32454f3fRich Humphreyimport static org.hamcrest.core.StringStartsWith.startsWith; 3685af7906879a68c99b1878dac22605fa32454f3fRich Humphreyimport static org.junit.Assert.*; 3785af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 3807257335f88da163910cc0bd039e6163edc38580Gregg Van Hove & Phil Goodwin@RunWith(WithTestDefaultsRunner.class) 390add4ea006647573fc11fac463c87842f2dcc403Christian Williamspublic class ActivityTest { 400add4ea006647573fc11fac463c87842f2dcc403Christian Williams 410add4ea006647573fc11fac463c87842f2dcc403Christian Williams @Test(expected = IllegalStateException.class) 420add4ea006647573fc11fac463c87842f2dcc403Christian Williams public void shouldComplainIfActivityIsDestroyedWithRegisteredBroadcastReceivers() throws Exception { 43256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante DialogLifeCycleActivity activity = new DialogLifeCycleActivity(); 440add4ea006647573fc11fac463c87842f2dcc403Christian Williams activity.registerReceiver(new AppWidgetProvider(), new IntentFilter()); 450add4ea006647573fc11fac463c87842f2dcc403Christian Williams activity.onDestroy(); 460add4ea006647573fc11fac463c87842f2dcc403Christian Williams } 470add4ea006647573fc11fac463c87842f2dcc403Christian Williams 480add4ea006647573fc11fac463c87842f2dcc403Christian Williams @Test 490add4ea006647573fc11fac463c87842f2dcc403Christian Williams public void shouldNotComplainIfActivityIsDestroyedWhileAnotherActivityHasRegisteredBroadcastReceivers() throws Exception { 50256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante DialogLifeCycleActivity activity = new DialogLifeCycleActivity(); 510add4ea006647573fc11fac463c87842f2dcc403Christian Williams 52256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante DialogLifeCycleActivity activity2 = new DialogLifeCycleActivity(); 530add4ea006647573fc11fac463c87842f2dcc403Christian Williams activity2.registerReceiver(new AppWidgetProvider(), new IntentFilter()); 540add4ea006647573fc11fac463c87842f2dcc403Christian Williams 550add4ea006647573fc11fac463c87842f2dcc403Christian Williams activity.onDestroy(); // should not throw exception 560add4ea006647573fc11fac463c87842f2dcc403Christian Williams } 570add4ea006647573fc11fac463c87842f2dcc403Christian Williams 58ce8adbf01d520e692a7eb6b72874c0182966127bPhil Goodwin & Tyler Schultz @Test 5933cb58b49af57097ec8450f1e2e8daed530fa823Stefano Dacchille public void shouldNotRegisterNullBroadcastReceiver() { 6033cb58b49af57097ec8450f1e2e8daed530fa823Stefano Dacchille DialogLifeCycleActivity activity = new DialogLifeCycleActivity(); 6133cb58b49af57097ec8450f1e2e8daed530fa823Stefano Dacchille activity.registerReceiver(null, new IntentFilter()); 6233cb58b49af57097ec8450f1e2e8daed530fa823Stefano Dacchille 6333cb58b49af57097ec8450f1e2e8daed530fa823Stefano Dacchille activity.onDestroy(); 6433cb58b49af57097ec8450f1e2e8daed530fa823Stefano Dacchille } 6533cb58b49af57097ec8450f1e2e8daed530fa823Stefano Dacchille 6633cb58b49af57097ec8450f1e2e8daed530fa823Stefano Dacchille @Test 67b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williams public void startActivityForResultAndReceiveResult_shouldSendResponsesBackToActivity() throws Exception { 68b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williams final Transcript transcript = new Transcript(); 69b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williams Activity activity = new Activity() { 70b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williams @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { 71b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williams transcript.add("onActivityResult called with requestCode " + requestCode + ", resultCode " + resultCode + ", intent data " + data.getData()); 72b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williams } 73b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williams }; 74b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williams activity.startActivityForResult(new Intent().setType("audio/*"), 123); 75b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williams activity.startActivityForResult(new Intent().setType("image/*"), 456); 76b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williams 77b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williams shadowOf(activity).receiveResult(new Intent().setType("image/*"), Activity.RESULT_OK, 7885af7906879a68c99b1878dac22605fa32454f3fRich Humphrey new Intent().setData(Uri.parse("content:foo"))); 79b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williams transcript.assertEventsSoFar("onActivityResult called with requestCode 456, resultCode -1, intent data content:foo"); 80b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williams } 81b832a2815d03667cbe1415bfcfd596292cb76f85Josh Lauer & Christian Williams 82b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams @Test 83b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams public void startActivityForResultAndReceiveResult_whenNoIntentMatches_shouldThrowException() throws Exception { 84b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams Activity activity = new Activity() { 85b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { 86b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams throw new IllegalStateException("should not be called"); 87b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams } 88b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams }; 89b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams activity.startActivityForResult(new Intent().setType("audio/*"), 123); 90b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams activity.startActivityForResult(new Intent().setType("image/*"), 456); 91b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams 92b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams Intent requestIntent = new Intent().setType("video/*"); 93b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams try { 94b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams shadowOf(activity).receiveResult(requestIntent, Activity.RESULT_OK, 95b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams new Intent().setData(Uri.parse("content:foo"))); 96b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams fail(); 97b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams } catch (Exception e) { 98b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams assertThat(e.getMessage(), startsWith("No intent matches " + requestIntent)); 99b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams } 100b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams } 101b76cabccd9f35b57fe486faf7d5763952c07c1a9Josh Lauer & Christian Williams 102ea74b95565e92521affdc7cc1a773e10fd235a96Josh Lauer & Christian Williams @Test 103cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey public void shouldSupportStartActivityForResult() throws Exception { 104256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante DialogLifeCycleActivity activity = new DialogLifeCycleActivity(); 105cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey ShadowActivity shadowActivity = Robolectric.shadowOf(activity); 106256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante Intent intent = new Intent().setClass(activity, DialogLifeCycleActivity.class); 107cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey assertThat(shadowActivity.getNextStartedActivity(), nullValue()); 10840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 109cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey activity.startActivityForResult(intent, 142); 11040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 111cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey Intent startedIntent = shadowActivity.getNextStartedActivity(); 112cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey assertThat(startedIntent, notNullValue()); 113cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey assertThat(startedIntent, sameInstance(intent)); 114cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey } 11540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 116cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey @Test 117cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey public void shouldSupportGetStartedActitivitesForResult() throws Exception { 118256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante DialogLifeCycleActivity activity = new DialogLifeCycleActivity(); 119cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey ShadowActivity shadowActivity = Robolectric.shadowOf(activity); 120256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante Intent intent = new Intent().setClass(activity, DialogLifeCycleActivity.class); 12140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 122cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey activity.startActivityForResult(intent, 142); 12340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 124cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey ShadowActivity.IntentForResult intentForResult = shadowActivity.getNextStartedActivityForResult(); 125cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey assertThat(intentForResult, notNullValue()); 12640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertThat(shadowActivity.getNextStartedActivityForResult(), nullValue()); 12740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertThat(intentForResult.intent, notNullValue()); 12840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertThat(intentForResult.intent, sameInstance(intent)); 12940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertThat(intentForResult.requestCode, equalTo(142)); 130cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey } 13140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 132cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey @Test 133cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey public void shouldSupportPeekStartedActitivitesForResult() throws Exception { 134256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante DialogLifeCycleActivity activity = new DialogLifeCycleActivity(); 135cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey ShadowActivity shadowActivity = Robolectric.shadowOf(activity); 136256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante Intent intent = new Intent().setClass(activity, DialogLifeCycleActivity.class); 137cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey 138cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey activity.startActivityForResult(intent, 142); 13940c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 140cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey ShadowActivity.IntentForResult intentForResult = shadowActivity.peekNextStartedActivityForResult(); 141cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey assertThat(intentForResult, notNullValue()); 14240c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertThat(shadowActivity.peekNextStartedActivityForResult(), sameInstance(intentForResult)); 14340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertThat(intentForResult.intent, notNullValue()); 14440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertThat(intentForResult.intent, sameInstance(intent)); 14540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams assertThat(intentForResult.requestCode, equalTo(142)); 146cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey } 14740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams 148cf37f66c9bcbf0b25b879fbb78c9442c9101c7acRich Humphrey @Test 149c23ee9ca694000bd03b88d958bb84000e04f51e4Christian Williams public void onContentChangedShouldBeCalledAfterContentViewIsSet() throws RuntimeException { 150c23ee9ca694000bd03b88d958bb84000e04f51e4Christian Williams final Transcript transcript = new Transcript(); 151c23ee9ca694000bd03b88d958bb84000e04f51e4Christian Williams Activity customActivity = new Activity() { 152c23ee9ca694000bd03b88d958bb84000e04f51e4Christian Williams @Override 153c23ee9ca694000bd03b88d958bb84000e04f51e4Christian Williams public void onContentChanged() { 154c23ee9ca694000bd03b88d958bb84000e04f51e4Christian Williams transcript.add("onContentChanged was called; title is \"" + shadowOf(findViewById(R.id.title)).innerText() + "\""); 155c23ee9ca694000bd03b88d958bb84000e04f51e4Christian Williams } 156c23ee9ca694000bd03b88d958bb84000e04f51e4Christian Williams }; 157c23ee9ca694000bd03b88d958bb84000e04f51e4Christian Williams customActivity.setContentView(R.layout.main); 158c23ee9ca694000bd03b88d958bb84000e04f51e4Christian Williams transcript.assertEventsSoFar("onContentChanged was called; title is \"Main Layout\""); 159c23ee9ca694000bd03b88d958bb84000e04f51e4Christian Williams } 160c23ee9ca694000bd03b88d958bb84000e04f51e4Christian Williams 161c23ee9ca694000bd03b88d958bb84000e04f51e4Christian Williams @Test 162ce8adbf01d520e692a7eb6b72874c0182966127bPhil Goodwin & Tyler Schultz public void shouldRetrievePackageNameFromTheManifest() throws Exception { 163147cdda64f4a372a27599ae1f902bd7be90bee5cPhil Goodwin Robolectric.application = new ApplicationResolver(newConfig("TestAndroidManifestWithPackageName.xml")).resolveApplication(); 16485af7906879a68c99b1878dac22605fa32454f3fRich Humphrey assertThat("com.wacka.wa", equalTo(new Activity().getPackageName())); 165ce8adbf01d520e692a7eb6b72874c0182966127bPhil Goodwin & Tyler Schultz } 166ce8adbf01d520e692a7eb6b72874c0182966127bPhil Goodwin & Tyler Schultz 167a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz @Test 168a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz public void shouldRunUiTasksImmediatelyByDefault() throws Exception { 169a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz TestRunnable runnable = new TestRunnable(); 170256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante DialogLifeCycleActivity activity = new DialogLifeCycleActivity(); 171a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz activity.runOnUiThread(runnable); 172a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz assertTrue(runnable.wasRun); 173a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz } 174a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz 175a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz @Test 176a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz public void shouldQueueUiTasksWhenUiThreadIsPaused() throws Exception { 177a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz Robolectric.pauseMainLooper(); 178a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz 179256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante DialogLifeCycleActivity activity = new DialogLifeCycleActivity(); 180a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz TestRunnable runnable = new TestRunnable(); 181a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz activity.runOnUiThread(runnable); 182a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz assertFalse(runnable.wasRun); 183a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz 184a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz Robolectric.unPauseMainLooper(); 185a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz assertTrue(runnable.wasRun); 186a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz } 18785af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 18888a7b3c27c736843e69e6ec12c1d7c7397c14d1cRich Humphrey @Test 18985af7906879a68c99b1878dac22605fa32454f3fRich Humphrey public void showDialog_shouldCreatePrepareAndShowDialog() { 190256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante final DialogLifeCycleActivity activity = new DialogLifeCycleActivity(); 19185af7906879a68c99b1878dac22605fa32454f3fRich Humphrey final AtomicBoolean dialogWasShown = new AtomicBoolean(false); 19285af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 19385af7906879a68c99b1878dac22605fa32454f3fRich Humphrey new Dialog(activity) { 19485af7906879a68c99b1878dac22605fa32454f3fRich Humphrey { activity.dialog = this; } 19585af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 19685af7906879a68c99b1878dac22605fa32454f3fRich Humphrey @Override 19785af7906879a68c99b1878dac22605fa32454f3fRich Humphrey public void show() { 19885af7906879a68c99b1878dac22605fa32454f3fRich Humphrey dialogWasShown.set(true); 19985af7906879a68c99b1878dac22605fa32454f3fRich Humphrey } 20085af7906879a68c99b1878dac22605fa32454f3fRich Humphrey }; 20185af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 202256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante activity.showDialog(1); 20385af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 20485af7906879a68c99b1878dac22605fa32454f3fRich Humphrey assertTrue(activity.createdDialog); 20585af7906879a68c99b1878dac22605fa32454f3fRich Humphrey assertTrue(activity.preparedDialog); 20685af7906879a68c99b1878dac22605fa32454f3fRich Humphrey assertTrue(dialogWasShown.get()); 2074c5a8c640b626c2b53b0c168d8db6d2930e270fdPhil Goodwin & Rick Kawala } 2085d94e8e81ad59715d929954355ff3a5f72a89122Matthias Kiefer 2092dd02a943021d7a8c0784854374c2fb3d1e5f1a6Matthias Kiefer 21005fe24178737f40b46d4033578ef1ce6b5dfa43bPhil Goodwin & Rick Kawala @Test 21185af7906879a68c99b1878dac22605fa32454f3fRich Humphrey public void showDialog_shouldCreatePrepareAndShowDialogWithBundle() { 212256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante final DialogLifeCycleActivity activity = new DialogLifeCycleActivity(); 21385af7906879a68c99b1878dac22605fa32454f3fRich Humphrey final AtomicBoolean dialogWasShown = new AtomicBoolean(false); 21485af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 21585af7906879a68c99b1878dac22605fa32454f3fRich Humphrey new Dialog(activity) { 21685af7906879a68c99b1878dac22605fa32454f3fRich Humphrey { activity.dialog = this; } 21785af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 21885af7906879a68c99b1878dac22605fa32454f3fRich Humphrey @Override 21985af7906879a68c99b1878dac22605fa32454f3fRich Humphrey public void show() { 22085af7906879a68c99b1878dac22605fa32454f3fRich Humphrey dialogWasShown.set(true); 22185af7906879a68c99b1878dac22605fa32454f3fRich Humphrey } 22285af7906879a68c99b1878dac22605fa32454f3fRich Humphrey }; 22385af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 224256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante activity.showDialog(1, new Bundle()); 22585af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 22685af7906879a68c99b1878dac22605fa32454f3fRich Humphrey assertTrue(activity.createdDialog); 22785af7906879a68c99b1878dac22605fa32454f3fRich Humphrey assertTrue(activity.preparedDialogWithBundle); 22885af7906879a68c99b1878dac22605fa32454f3fRich Humphrey assertTrue(dialogWasShown.get()); 22985af7906879a68c99b1878dac22605fa32454f3fRich Humphrey } 23085af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 23185af7906879a68c99b1878dac22605fa32454f3fRich Humphrey @Test 232256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante public void showDialog_shouldReuseDialogs() { 233256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante final DialogCreatingActivity activity = new DialogCreatingActivity(); 234256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante 235256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante activity.showDialog(1); 236256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante 2375117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard Dialog firstDialog = ShadowDialog.getLatestDialog(); 238256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante 239256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante activity.showDialog(1); 240256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante 2415117035453920f3d4d0f3969bdab0305dcdb94baJoe Moore & Ryan Richard final Dialog secondDialog = ShadowDialog.getLatestDialog(); 242256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante 243256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante assertSame("dialogs should be the same instance", firstDialog, secondDialog); 244256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante } 245256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante 2462dd02a943021d7a8c0784854374c2fb3d1e5f1a6Matthias Kiefer @Test 247943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb public void showDialog_shouldShowDialog() throws Exception { 248943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb final DialogCreatingActivity activity = new DialogCreatingActivity(); 249943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb activity.showDialog(1); 250943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb Dialog dialog = ShadowDialog.getLatestDialog(); 251943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb assertTrue(dialog.isShowing()); 252943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb } 253943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb 254943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb @Test 255943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb public void dismissDialog_shouldDismissPreviouslyShownDialog() throws Exception { 256943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb final DialogCreatingActivity activity = new DialogCreatingActivity(); 257943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb activity.showDialog(1); 258943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb activity.dismissDialog(1); 259943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb Dialog dialog = ShadowDialog.getLatestDialog(); 260943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb assertFalse(dialog.isShowing()); 261943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb } 262943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb 263943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb @Test(expected = IllegalArgumentException.class) 264943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb public void dismissDialog_shouldThrowExceptionIfDialogWasNotPreviouslyShown() throws Exception { 265943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb final DialogCreatingActivity activity = new DialogCreatingActivity(); 266943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb activity.dismissDialog(1); 267943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb } 268943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb 269943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb @Test 2702dd02a943021d7a8c0784854374c2fb3d1e5f1a6Matthias Kiefer public void removeDialog_shouldCreateDialogAgain() { 2712dd02a943021d7a8c0784854374c2fb3d1e5f1a6Matthias Kiefer final DialogCreatingActivity activity = new DialogCreatingActivity(); 2722dd02a943021d7a8c0784854374c2fb3d1e5f1a6Matthias Kiefer 2732dd02a943021d7a8c0784854374c2fb3d1e5f1a6Matthias Kiefer activity.showDialog(1); 2742dd02a943021d7a8c0784854374c2fb3d1e5f1a6Matthias Kiefer Dialog firstDialog = ShadowDialog.getLatestDialog(); 2752dd02a943021d7a8c0784854374c2fb3d1e5f1a6Matthias Kiefer 2762dd02a943021d7a8c0784854374c2fb3d1e5f1a6Matthias Kiefer activity.removeDialog(1); 2772dd02a943021d7a8c0784854374c2fb3d1e5f1a6Matthias Kiefer assertNull(Robolectric.shadowOf(activity).getDialogById(1)); 2782dd02a943021d7a8c0784854374c2fb3d1e5f1a6Matthias Kiefer 2792dd02a943021d7a8c0784854374c2fb3d1e5f1a6Matthias Kiefer activity.showDialog(1); 2802dd02a943021d7a8c0784854374c2fb3d1e5f1a6Matthias Kiefer Dialog secondDialog = ShadowDialog.getLatestDialog(); 2812dd02a943021d7a8c0784854374c2fb3d1e5f1a6Matthias Kiefer 2822dd02a943021d7a8c0784854374c2fb3d1e5f1a6Matthias Kiefer assertNotSame("dialogs should not be the same instance", firstDialog, secondDialog); 283943730659b697ae049fe203b2a51d75113c49cb5Chuck Greb } 284256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante 285256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante @Test 28685af7906879a68c99b1878dac22605fa32454f3fRich Humphrey public void shouldCallOnCreateDialogFromShowDialog() { 28785af7906879a68c99b1878dac22605fa32454f3fRich Humphrey ActivityWithOnCreateDialog activity = new ActivityWithOnCreateDialog(); 28885af7906879a68c99b1878dac22605fa32454f3fRich Humphrey activity.showDialog(123); 28985af7906879a68c99b1878dac22605fa32454f3fRich Humphrey assertTrue(activity.onCreateDialogWasCalled); 29085af7906879a68c99b1878dac22605fa32454f3fRich Humphrey assertThat(ShadowDialog.getLatestDialog(), CoreMatchers.<Object>notNullValue()); 29185af7906879a68c99b1878dac22605fa32454f3fRich Humphrey } 29285af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 29385af7906879a68c99b1878dac22605fa32454f3fRich Humphrey @Test 29485af7906879a68c99b1878dac22605fa32454f3fRich Humphrey public void shouldCallFinishInOnBackPressed() { 29585af7906879a68c99b1878dac22605fa32454f3fRich Humphrey Activity activity = new Activity(); 29685af7906879a68c99b1878dac22605fa32454f3fRich Humphrey activity.onBackPressed(); 29785af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 29888a7b3c27c736843e69e6ec12c1d7c7397c14d1cRich Humphrey ShadowActivity shadowActivity = shadowOf(activity); 29985af7906879a68c99b1878dac22605fa32454f3fRich Humphrey assertTrue(shadowActivity.isFinishing()); 30085af7906879a68c99b1878dac22605fa32454f3fRich Humphrey } 30185af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 30285af7906879a68c99b1878dac22605fa32454f3fRich Humphrey @Test 30385af7906879a68c99b1878dac22605fa32454f3fRich Humphrey public void shouldSupportCurrentFocus() { 304256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante DialogLifeCycleActivity activity = new DialogLifeCycleActivity(); 30585af7906879a68c99b1878dac22605fa32454f3fRich Humphrey ShadowActivity shadow = shadowOf(activity); 30688a7b3c27c736843e69e6ec12c1d7c7397c14d1cRich Humphrey 30785af7906879a68c99b1878dac22605fa32454f3fRich Humphrey assertNull(shadow.getCurrentFocus()); 30885af7906879a68c99b1878dac22605fa32454f3fRich Humphrey View view = new View(activity); 30985af7906879a68c99b1878dac22605fa32454f3fRich Humphrey shadow.setCurrentFocus(view); 31085af7906879a68c99b1878dac22605fa32454f3fRich Humphrey assertEquals(view, shadow.getCurrentFocus()); 31188a7b3c27c736843e69e6ec12c1d7c7397c14d1cRich Humphrey } 312a4f7d50f8e6f12d541421383544fe16c185e4bbcPhil Goodwin & Tyler Schultz 3137f306c7c98e32f85115ce57780a6752477b8faadadriancowham @Test 314c6526af59ebcc818c95680ac6f8efe83a0b65644adriancowham public void shouldSetOrientation() { 3157f306c7c98e32f85115ce57780a6752477b8faadadriancowham DialogLifeCycleActivity activity = new DialogLifeCycleActivity(); 316c6526af59ebcc818c95680ac6f8efe83a0b65644adriancowham activity.setRequestedOrientation( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT ); 317c6526af59ebcc818c95680ac6f8efe83a0b65644adriancowham assertThat( activity.getRequestedOrientation(), equalTo( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT ) ); 318c6526af59ebcc818c95680ac6f8efe83a0b65644adriancowham } 3197f306c7c98e32f85115ce57780a6752477b8faadadriancowham 320f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker @Test 321f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker public void retrieveIdOfResource() { 322f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker Activity activity = new Activity(); 323f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker 324f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker int id1 = R.string.hello; 325f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker String string = activity.getString(id1); 326f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker assertEquals("Hello", string); 327f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker 328f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker int id = activity.getResources().getIdentifier("hello", "string", "com.xtremelabs.robolectric"); 329f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker assertTrue(id > 0); 330f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker 331f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker String hello = activity.getResources().getString(id); 332f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker assertEquals("Hello", hello); 333f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker } 334f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker 335f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker @Test 336f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker public void retrieveIdOfNonExistingResource() { 337f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker Activity activity = new Activity(); 338f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker 339f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker int id = activity.getResources().getIdentifier("just_alot_of_crap", "string", "com.xtremelabs.robolectric"); 340f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker assertTrue(id == 0); 341f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker } 342f320a2d3b8075716daf2a80f5a8f7890086fb609Mark Bakker 34305d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard @Test 344297cc102ff285524a4109025ecd2c9c6ef051ce5Jan Berkel public void shouldSetContentViewWithFrameLayoutAsParent() throws Exception { 345297cc102ff285524a4109025ecd2c9c6ef051ce5Jan Berkel Activity activity = new Activity(); 346297cc102ff285524a4109025ecd2c9c6ef051ce5Jan Berkel activity.setContentView(R.layout.toplevel_merge); 347297cc102ff285524a4109025ecd2c9c6ef051ce5Jan Berkel 348297cc102ff285524a4109025ecd2c9c6ef051ce5Jan Berkel View contentView = shadowOf(activity).getContentView(); 349297cc102ff285524a4109025ecd2c9c6ef051ce5Jan Berkel assertInstanceOf(FrameLayout.class, contentView); 350297cc102ff285524a4109025ecd2c9c6ef051ce5Jan Berkel assertThat(((FrameLayout)contentView).getChildCount(), equalTo(2)); 351297cc102ff285524a4109025ecd2c9c6ef051ce5Jan Berkel } 352f14c3931ebac66beb7bf03f5d08fdd8895f02157Phil Goodwin & Ryan Richard 353f14c3931ebac66beb7bf03f5d08fdd8895f02157Phil Goodwin & Ryan Richard @Test 35405d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard public void onKeyUp_recordsThatItWasCalled() throws Exception { 35505d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard Activity activity = new Activity(); 35605d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard boolean consumed = activity.onKeyUp(KeyEvent.KEYCODE_0, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_0)); 35705d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard 35805d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard assertFalse(consumed); 35905d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard assertTrue(shadowOf(activity).onKeyUpWasCalled()); 36005d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard 36105d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard shadowOf(activity).resetKeyUpWasCalled(); 36205d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard assertFalse(shadowOf(activity).onKeyUpWasCalled()); 36305d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard } 36405d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard 36505d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard @Test 36605d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard public void onKeyUp_callsOnBackPressedWhichFinishesTheActivity() throws Exception { 36705d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard Activity activity = new Activity(); 36805d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard boolean consumed = activity.onKeyUp(KeyEvent.KEYCODE_BACK, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK)); 36905d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard 37005d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard assertTrue(consumed); 37105d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard assertTrue(shadowOf(activity).onKeyUpWasCalled()); 37205d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard assertTrue(activity.isFinishing()); 37305d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard } 37405d5fa490c39eae46684f666a66acb8edf42661cPhil Goodwin & Ryan Richard 375256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante private static class DialogCreatingActivity extends Activity { 376256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante @Override 377256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante protected Dialog onCreateDialog(int id) { 378256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante return new Dialog(this); 379256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante } 380256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante } 381c6526af59ebcc818c95680ac6f8efe83a0b65644adriancowham 382256949ba5562873047aecf1bf47533e5ae1cd933Phil Goodwin & Phil Plante private static class DialogLifeCycleActivity extends Activity { 38385af7906879a68c99b1878dac22605fa32454f3fRich Humphrey public boolean createdDialog = false; 38485af7906879a68c99b1878dac22605fa32454f3fRich Humphrey public boolean preparedDialog = false; 38585af7906879a68c99b1878dac22605fa32454f3fRich Humphrey public boolean preparedDialogWithBundle = false; 38685af7906879a68c99b1878dac22605fa32454f3fRich Humphrey public Dialog dialog = null; 38785af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 3880add4ea006647573fc11fac463c87842f2dcc403Christian Williams @Override protected void onDestroy() { 3890add4ea006647573fc11fac463c87842f2dcc403Christian Williams super.onDestroy(); 3900add4ea006647573fc11fac463c87842f2dcc403Christian Williams } 39185af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 39285af7906879a68c99b1878dac22605fa32454f3fRich Humphrey @Override 39385af7906879a68c99b1878dac22605fa32454f3fRich Humphrey protected Dialog onCreateDialog(int id) { 39485af7906879a68c99b1878dac22605fa32454f3fRich Humphrey createdDialog = true; 39585af7906879a68c99b1878dac22605fa32454f3fRich Humphrey return dialog; 39685af7906879a68c99b1878dac22605fa32454f3fRich Humphrey } 39785af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 39885af7906879a68c99b1878dac22605fa32454f3fRich Humphrey @Override 39985af7906879a68c99b1878dac22605fa32454f3fRich Humphrey protected void onPrepareDialog(int id, Dialog dialog) { 40085af7906879a68c99b1878dac22605fa32454f3fRich Humphrey preparedDialog = true; 40185af7906879a68c99b1878dac22605fa32454f3fRich Humphrey } 40285af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 40385af7906879a68c99b1878dac22605fa32454f3fRich Humphrey @Override 40485af7906879a68c99b1878dac22605fa32454f3fRich Humphrey protected void onPrepareDialog(int id, Dialog dialog, Bundle bundle) { 40585af7906879a68c99b1878dac22605fa32454f3fRich Humphrey preparedDialogWithBundle = true; 40685af7906879a68c99b1878dac22605fa32454f3fRich Humphrey } 40785af7906879a68c99b1878dac22605fa32454f3fRich Humphrey } 40885af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 40985af7906879a68c99b1878dac22605fa32454f3fRich Humphrey private static class ActivityWithOnCreateDialog extends Activity { 41085af7906879a68c99b1878dac22605fa32454f3fRich Humphrey boolean onCreateDialogWasCalled = false; 41185af7906879a68c99b1878dac22605fa32454f3fRich Humphrey 41285af7906879a68c99b1878dac22605fa32454f3fRich Humphrey @Override 41385af7906879a68c99b1878dac22605fa32454f3fRich Humphrey protected Dialog onCreateDialog(int id) { 41485af7906879a68c99b1878dac22605fa32454f3fRich Humphrey onCreateDialogWasCalled = true; 41585af7906879a68c99b1878dac22605fa32454f3fRich Humphrey return new Dialog(null); 41685af7906879a68c99b1878dac22605fa32454f3fRich Humphrey } 4170add4ea006647573fc11fac463c87842f2dcc403Christian Williams } 4180add4ea006647573fc11fac463c87842f2dcc403Christian Williams} 419