Home | History | Annotate | Download | only in util
      1 package com.xtremelabs.robolectric.tester.android.util;
      2 
      3 import android.support.v4.app.Fragment;
      4 import android.support.v4.app.FragmentTransaction;
      5 import android.view.View;
      6 
      7 public class TestFragmentTransaction extends FragmentTransaction {
      8 
      9     private TestFragmentManager fragmentManager;
     10     private int containerViewId;
     11     private String tag;
     12     private Fragment fragment;
     13     private boolean replacing;
     14     private boolean starting;
     15     private boolean removing;
     16     private boolean addedToBackStack;
     17     private boolean hiding;
     18     private boolean showing;
     19     private String backStackName;
     20     private int lastEnterAnimation;
     21     private int lastExitAnimation;
     22     private Fragment fragmentToRemove;
     23     private boolean committedAllowingStateLoss;
     24     private Fragment fragmentToAttach;
     25 
     26     public TestFragmentTransaction(TestFragmentManager fragmentManager) {
     27         this.fragmentManager = fragmentManager;
     28     }
     29 
     30     @Override
     31     public FragmentTransaction add(Fragment fragment, String tag) {
     32         return add(View.NO_ID, fragment, tag);
     33     }
     34 
     35     @Override
     36     public FragmentTransaction add(int containerViewId, Fragment fragment) {
     37         return add(containerViewId, fragment, null);
     38     }
     39 
     40     @Override
     41     public FragmentTransaction add(int containerViewId, Fragment fragment, String tag) {
     42         this.containerViewId = containerViewId;
     43         this.tag = tag;
     44         this.fragment = fragment;
     45         this.starting = true;
     46         return this;
     47     }
     48 
     49     @Override
     50     public FragmentTransaction replace(int containerViewId, Fragment fragment) {
     51         return replace(containerViewId, fragment, null);
     52     }
     53 
     54     @Override
     55     public FragmentTransaction replace(int containerViewId, Fragment fragment, String tag) {
     56         this.containerViewId = containerViewId;
     57         this.tag = tag;
     58         this.fragment = fragment;
     59         this.replacing = true;
     60         this.starting = true;
     61         return this;
     62     }
     63 
     64     @Override
     65     public FragmentTransaction remove(Fragment fragment) {
     66         this.fragmentToRemove = fragment;
     67         this.removing = true;
     68         return this;
     69     }
     70 
     71     @Override
     72     public FragmentTransaction hide(Fragment fragment) {
     73         this.fragment = fragment;
     74         this.hiding = true;
     75         this.showing = false;
     76         return this;
     77     }
     78 
     79     @Override
     80     public FragmentTransaction show(Fragment fragment) {
     81         this.fragment = fragment;
     82         this.showing = true;
     83         this.hiding = false;
     84         return this;
     85     }
     86 
     87     @Override
     88     public FragmentTransaction detach(Fragment fragment) {
     89         return null;
     90     }
     91 
     92     @Override
     93     public FragmentTransaction attach(Fragment fragment) {
     94         fragmentToAttach = fragment;
     95         return this;
     96     }
     97 
     98     @Override
     99     public boolean isEmpty() {
    100         return false;
    101     }
    102 
    103     @Override
    104     public FragmentTransaction setCustomAnimations(int enter, int exit) {
    105         this.lastEnterAnimation = enter;
    106         this.lastExitAnimation = exit;
    107         return this;
    108     }
    109 
    110     @Override
    111     public FragmentTransaction setCustomAnimations(int enter, int exit, int popEnter, int popExit) {
    112         return null;
    113     }
    114 
    115     @Override
    116     public FragmentTransaction setTransition(int transit) {
    117         return null;
    118     }
    119 
    120     @Override
    121     public FragmentTransaction setTransitionStyle(int styleRes) {
    122         return null;
    123     }
    124 
    125     @Override
    126     public FragmentTransaction addToBackStack(String name) {
    127         backStackName = name;
    128         addedToBackStack = true;
    129         return this;
    130     }
    131 
    132     @Override
    133     public boolean isAddToBackStackAllowed() {
    134         return false;
    135     }
    136 
    137     @Override
    138     public FragmentTransaction disallowAddToBackStack() {
    139         return null;
    140     }
    141 
    142     @Override
    143     public FragmentTransaction setBreadCrumbTitle(int res) {
    144         return null;
    145     }
    146 
    147     @Override
    148     public FragmentTransaction setBreadCrumbTitle(CharSequence text) {
    149         return null;
    150     }
    151 
    152     @Override
    153     public FragmentTransaction setBreadCrumbShortTitle(int res) {
    154         return null;
    155     }
    156 
    157     @Override
    158     public FragmentTransaction setBreadCrumbShortTitle(CharSequence text) {
    159         return null;
    160     }
    161 
    162     @Override
    163     public int commit() {
    164         fragmentManager.commitLater(this);
    165         return 0;
    166     }
    167 
    168     @Override
    169     public int commitAllowingStateLoss() {
    170         committedAllowingStateLoss = true;
    171         return commit();
    172     }
    173 
    174     public boolean isAddedToBackStack() {
    175         return addedToBackStack;
    176     }
    177 
    178     public int getContainerViewId() {
    179         return containerViewId;
    180     }
    181 
    182     public String getTag() {
    183         return tag;
    184     }
    185 
    186     public Fragment getFragment() {
    187         return fragment;
    188     }
    189 
    190     public boolean isReplacing() {
    191         return replacing;
    192     }
    193 
    194     public boolean isStarting() {
    195         return starting;
    196     }
    197 
    198     public boolean isRemoving() {
    199         return removing;
    200     }
    201 
    202     public boolean isHiding() {
    203         return hiding;
    204     }
    205 
    206     public boolean isShowing() {
    207         return showing;
    208     }
    209 
    210     public String getBackStackName() {
    211         return backStackName;
    212     }
    213 
    214     public int getLastEnterAnimation() {
    215         return lastEnterAnimation;
    216     }
    217 
    218     public int getLastExitAnimation() {
    219         return lastExitAnimation;
    220     }
    221 
    222     public TestFragmentManager getManager() {
    223         return fragmentManager;
    224     }
    225 
    226     public Fragment getFragmentToRemove() {
    227         return fragmentToRemove;
    228     }
    229 
    230     public boolean isCommittedAllowingStateLoss() {
    231         return committedAllowingStateLoss;
    232     }
    233 
    234     public boolean isAttaching() {
    235         return fragmentToAttach != null;
    236     }
    237 
    238     public Fragment getFragmentToAttach() {
    239         return fragmentToAttach;
    240     }
    241 }
    242