Home | History | Annotate | Download | only in app

Lines Matching defs:fragment

17 package androidx.fragment.app;
39 import androidx.fragment.app.test.FragmentTestActivity;
40 import androidx.fragment.test.R;
73 // Ensure that adding and popping a Fragment uses the enter and popExit animators
78 // One fragment with a view
79 final AnimatorFragment fragment = new AnimatorFragment();
82 .add(R.id.fragmentContainer, fragment)
88 assertEnterPopExit(fragment);
91 // Ensure that removing and popping a Fragment uses the exit and popEnter animators
96 // One fragment with a view
97 final AnimatorFragment fragment = new AnimatorFragment();
99 .add(R.id.fragmentContainer, fragment, "1")
106 .remove(fragment)
112 assertExitPopEnter(fragment);
115 // Ensure that showing and popping a Fragment uses the enter and popExit animators
121 // One fragment with a view
122 final AnimatorFragment fragment = new AnimatorFragment();
123 fm.beginTransaction().add(R.id.fragmentContainer, fragment).hide(fragment).commit();
129 assertEquals(View.GONE, fragment.getView().getVisibility());
136 .show(fragment)
144 assertEquals(View.VISIBLE, fragment.getView().getVisibility());
148 assertEnterPopExit(fragment);
153 assertEquals(View.GONE, fragment.getView().getVisibility());
158 // Ensure that showing and popping a Fragment uses the enter and popExit animators
164 // One fragment with a view
165 final AnimatorFragment fragment = new AnimatorFragment();
167 .add(R.id.fragmentContainer, fragment)
168 .hide(fragment)
176 assertEquals(View.GONE, fragment.getView().getVisibility());
183 .show(fragment)
192 assertEquals(View.VISIBLE, fragment.getView().getVisibility());
196 assertEnterPopExit(fragment);
201 assertEquals(View.GONE, fragment.getView().getVisibility());
206 // Ensure that hiding and popping a Fragment uses the exit and popEnter animators
211 // One fragment with a view
212 final AnimatorFragment fragment = new AnimatorFragment();
214 .add(R.id.fragmentContainer, fragment, "1")
221 .hide(fragment)
227 assertExitPopEnter(fragment);
230 // Ensure that attaching and popping a Fragment uses the enter and popExit animators
235 // One fragment with a view
236 final AnimatorFragment fragment = new AnimatorFragment();
238 .add(R.id.fragmentContainer, fragment)
239 .detach(fragment)
246 .attach(fragment)
252 assertEnterPopExit(fragment);
255 // Ensure that detaching and popping a Fragment uses the exit and popEnter animators
260 // One fragment with a view
261 final AnimatorFragment fragment = new AnimatorFragment();
263 .add(R.id.fragmentContainer, fragment, "1")
270 .detach(fragment)
276 assertExitPopEnter(fragment);
279 // Replace should exit the existing fragments and enter the added fragment, then
280 // popping should popExit the removed fragment and popEnter the added fragments
285 // One fragment with a view
319 // Ensure that adding and popping a Fragment uses the enter and popExit animators,
320 // but the animators are delayed when an entering Fragment is postponed.
325 final AnimatorFragment fragment = new AnimatorFragment();
326 fragment.postponeEnterTransition();
329 .add(R.id.fragmentContainer, fragment)
335 assertPostponed(fragment, 0);
336 fragment.startPostponedEnterTransition();
339 assertEnterPopExit(fragment);
342 // Ensure that removing and popping a Fragment uses the exit and popEnter animators,
343 // but the animators are delayed when an entering Fragment is postponed.
349 final AnimatorFragment fragment = new AnimatorFragment();
351 .add(R.id.fragmentContainer, fragment, "1")
358 .remove(fragment)
364 assertExitPostponedPopEnter(fragment);
367 // Ensure that adding and popping a Fragment is postponed in both directions
449 // Make sure that if the state was saved while a Fragment was animating that its
492 Fragment fragment2restored = fm2.findFragmentByTag("2");
495 Fragment fragment1restored = fm2.findFragmentByTag("1");
500 private void assertEnterPopExit(AnimatorFragment fragment) throws Throwable {
501 assertFragmentAnimation(fragment, 1, true, ENTER);
507 assertFragmentAnimation(fragment, 2, false, POP_EXIT);
510 private void assertExitPopEnter(AnimatorFragment fragment) throws Throwable {
511 assertFragmentAnimation(fragment, 1, false, EXIT);
519 boolean isSameFragment = replacement == fragment;
524 private void assertExitPostponedPopEnter(AnimatorFragment fragment) throws Throwable {
525 assertFragmentAnimation(fragment, 1, false, EXIT);
527 fragment.postponeEnterTransition();
530 assertPostponed(fragment, 1);
532 fragment.startPostponedEnterTransition();
534 assertFragmentAnimation(fragment, 2, true, POP_ENTER);
537 private void assertFragmentAnimation(AnimatorFragment fragment, int numAnimators,
539 assertEquals(numAnimators, fragment.numAnimators);
540 assertEquals(isEnter, fragment.enter);
541 assertEquals(animatorResourceId, fragment.resourceId);
542 assertNotNull(fragment.animator);
543 assertTrue(fragment.wasStarted);
544 assertTrue(fragment.endLatch.await(200, TimeUnit.MILLISECONDS));
547 private void assertPostponed(AnimatorFragment fragment, int expectedAnimators)
549 assertTrue(fragment.mOnCreateViewCalled);
550 assertEquals(View.VISIBLE, fragment.getView().getVisibility());
551 assertEquals(0f, fragment.getView().getAlpha(), 0f);
552 assertEquals(expectedAnimators, fragment.numAnimators);