package edu.vanderbilt.cs282.feisele;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
* An abstract activity which logs the life-cycle call backs.
* A decorator pattern implemented via inheritance.
*/
public abstract class LifecycleLoggingFragment extends Fragment {
static private final String TAG = "Lifecycle Logging Fragment";
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
Log.d(TAG, "onAttach: fragment attached "+activity.toString());
}
@Override
public void onDetach() {
super.onDetach();
Log.d(TAG, "onDetach: fragment detach");
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "onCreate: fragment rebuilt");
if (savedInstanceState == null) {
Log.d(TAG, "onCreate: fragment created fresh");
} else {
Log.d(TAG, "onCreate: fragment restarted");
}
}
/**
* Note the isDynamic parameter which allows this call
* whether the fragment is dynamic or static.
*/
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState, boolean isDynamic) {
Log.d(TAG, "onCreateView: fragment rebuilt");
if (savedInstanceState == null) {
Log.d(TAG, "onCreateView: fragment created fresh");
} else {
Log.d(TAG, "onCreateView: fragment restarted");
}
/**
* The android documentation suggests that this call should
* not be made when the fragment is dynamically added
*/
if (!(isDynamic)) {
super.onCreateView(inflater, container, savedInstanceState);
}
return null;
}
@Override
public void onDestroyView() {
super.onDestroyView();
Log.d(TAG, "onDestroyView: fragment view destroyed");
}
@Override
public void onStart() {
super.onStart();
Log.d(TAG, "onStart");
}
@Override
public void onResume() {
super.onResume();
Log.d(TAG, "onResume");
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
Log.d(TAG, "onSaveInstanceState");
}
@Override
public void onPause() {
super.onPause();
Log.d(TAG, "onPause");
}
@Override
public void onStop() {
super.onStop();
Log.d(TAG, "onStop");
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy");
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Log.d(TAG, "onActivityCreated: fragment activity created ");
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d(TAG, new StringBuilder("onActivityResult ").
append(" request=").append(requestCode).
append(" result=").append(resultCode).
append(" intent=[").append(data).append("]").
toString());
}
}