diff --git a/touch/src/main/java/de/nicidienase/chaosflix/touch/activities/BrowseActivity.java b/touch/src/main/java/de/nicidienase/chaosflix/touch/activities/BrowseActivity.java index 8c5f889d..6dde713d 100644 --- a/touch/src/main/java/de/nicidienase/chaosflix/touch/activities/BrowseActivity.java +++ b/touch/src/main/java/de/nicidienase/chaosflix/touch/activities/BrowseActivity.java @@ -32,27 +32,35 @@ public class BrowseActivity extends TouchBaseActivity implements EventDetailsFragment.OnEventDetailsFragmentInteractionListener{ private static final String TAG = BrowseActivity.class.getSimpleName(); + private static final String TAG_RETAINED_FRAGMENT = "retained_fragment"; CompositeDisposable mDisposables = new CompositeDisposable(); @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_container_layout); - Disposable disposable = getApiServiceObservable() - .subscribe(mediaApiService -> { - mediaApiService.getConferences() + FragmentManager fragmentManager = getSupportFragmentManager(); + Fragment fragment = fragmentManager.findFragmentByTag(TAG_RETAINED_FRAGMENT); + if(fragment != null){ + FragmentTransaction ft = fragmentManager.beginTransaction(); + ft.replace(R.id.fragment_container,fragment,TAG_RETAINED_FRAGMENT); + ft.commit(); + } else { + Disposable disposable = getApiServiceObservable() + .subscribe(mediaApiService -> { + mediaApiService.getConferences() .observeOn(AndroidSchedulers.mainThread()) .subscribe(conferencesWrapper -> { - ConferencesBrowseFragment browseFragment - = ConferencesBrowseFragment.newInstance(getNumColumns()); - browseFragment.setContent(conferencesWrapper); - FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); - ft.replace(R.id.fragment_container,browseFragment); - ft.commit(); - }); - }); - mDisposables.add(disposable); - getSupportActionBar().setLogo(R.drawable.icon_notext); + ConferencesTabBrowseFragment browseFragment + = ConferencesTabBrowseFragment.newInstance(getNumColumns()); + browseFragment.setContent(conferencesWrapper); + FragmentTransaction ft = fragmentManager.beginTransaction(); + ft.replace(R.id.fragment_container,browseFragment); + ft.commit(); + }); + }); + mDisposables.add(disposable); + } } @Override diff --git a/touch/src/main/java/de/nicidienase/chaosflix/touch/fragments/EventDetailsFragment.java b/touch/src/main/java/de/nicidienase/chaosflix/touch/fragments/EventDetailsFragment.java index 143cab51..ccd3adc9 100644 --- a/touch/src/main/java/de/nicidienase/chaosflix/touch/fragments/EventDetailsFragment.java +++ b/touch/src/main/java/de/nicidienase/chaosflix/touch/fragments/EventDetailsFragment.java @@ -61,6 +61,7 @@ public class EventDetailsFragment extends Fragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setRetainInstance(true); postponeEnterTransition(); Transition transition = TransitionInflater.from(getContext()) .inflateTransition(android.R.transition.move); diff --git a/touch/src/main/java/de/nicidienase/chaosflix/touch/fragments/EventsFragment.java b/touch/src/main/java/de/nicidienase/chaosflix/touch/fragments/EventsFragment.java index bd6eb09f..c4eb0550 100644 --- a/touch/src/main/java/de/nicidienase/chaosflix/touch/fragments/EventsFragment.java +++ b/touch/src/main/java/de/nicidienase/chaosflix/touch/fragments/EventsFragment.java @@ -58,6 +58,7 @@ public class EventsFragment extends Fragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setRetainInstance(true); if (getArguments() != null) { mColumnCount = getArguments().getInt(ARG_COLUMN_COUNT); mConference = getArguments().getParcelable(ARG_CONFERENCE);