package com.appolica.tabcontroller;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
/**
* An implementation of {@link ShowHideHandler} that uses {@link FragmentTransaction#attach(Fragment)}
* and {@link FragmentTransaction#detach(Fragment)} to show/hide fragments.
*/
public class AttachDetachHandler implements ShowHideHandler {
private static final String TAG = "AttachDetachHandler";
@Override
public FragmentTransaction show(FragmentTransaction transaction, Fragment fragment) {
Log.d(TAG, "attach: " + fragment);
return transaction.attach(fragment);
}
@Override
public FragmentTransaction hide(FragmentTransaction transaction, Fragment fragment) {
Log.d(TAG, "detach: " + fragment);
return transaction.detach(fragment);
}
@Override
public void save(@Nullable Bundle saveControllerState, Fragment fragment) {
// should be empty
}
@Override
public void restore(@Nullable Bundle savedControllerState, FragmentTransaction transaction, Fragment fragment) {
// should be empty
}
@Override
public boolean isVisible(Fragment fragment) {
return !fragment.isDetached();
}
}