// Path: DandelionPro/src/com/ustc/dystu/dandelion/utils/Logger.java
// public class Logger {
// 	
// 	public static int DEBUG_LEVEL = 6;// ÆÁ±Îlog,ÐÞ¸ÄÎª0
// 
// 	private static final int VERBOSE = 5;
// 	private static final int DEBUG = 4;
// 	private static final int INFO = 3;
// 	private static final int WARN = 2;
// 	private static final int ERROR = 1;
// 
// 	public static int v(String tag, String msg) {
// 		if (DEBUG_LEVEL > VERBOSE) {
// 			return Log.v(tag, msg);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int v(String tag, String msg, Throwable e) {
// 		if (DEBUG_LEVEL > VERBOSE) {			return Log.v(tag, msg, e);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int d(String tag, String msg) {
// 		if (DEBUG_LEVEL > DEBUG) {
// 			return Log.d(tag, msg);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int d(String tag, String msg, Throwable e) {
// 		if (DEBUG_LEVEL > DEBUG) {
// 			return Log.d(tag, msg, e);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int i(String tag, String msg) {
// 		if (DEBUG_LEVEL > INFO) {
// 			return Log.i(tag, msg);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int i(String tag, String msg, Throwable e) {
// 		if (DEBUG_LEVEL > INFO) {
// 			return Log.i(tag, msg, e);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int w(String tag, String msg) {
// 		if (DEBUG_LEVEL > WARN) {
// 			return Log.w(tag, msg);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int w(String tag, String msg, Throwable e) {
// 		if (DEBUG_LEVEL > WARN) {
// 			return Log.w(tag, msg, e);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int e(String tag, String msg) {
// 		if (DEBUG_LEVEL > ERROR) {
// 			return Log.e(tag, msg);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int e(String tag, String msg, Throwable e) {
// 		if (DEBUG_LEVEL > ERROR) {
// 			return Log.e(tag, msg, e);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// }


import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TabHost;
import android.widget.TabWidget;
import java.util.ArrayList;
import com.ustc.dystu.dandelion.utils.Logger;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.util.AttributeSet;
import android.view.View;
        tabSpec.setContent(new DummyTabFactory(mContext));
        String tag = tabSpec.getTag();

        TabInfo info = new TabInfo(tag, clss, args);

        if (mAttached) {
            // If we are already attached to the window, then check to make
            // sure this tab's fragment is inactive if it exists. This shouldn't
            // normally happen.
            info.fragment = mFragmentManager.findFragmentByTag(tag);
            if (info.fragment != null && !info.fragment.isDetached()) {
                FragmentTransaction ft = mFragmentManager.beginTransaction();
                ft.detach(info.fragment);
                ft.commit();
            }
        }

        mTabs.add(info);
        addTab(tabSpec);
    }

    public BaseFragment getCurrentFragment() {
    	return (BaseFragment) mFragmentManager.findFragmentByTag(getCurrentTabTag());
    }
    
    @Override
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();

        String currentTab = getCurrentTabTag();
// Path: DandelionPro/src/com/ustc/dystu/dandelion/utils/Logger.java
// public class Logger {
// 	
// 	public static int DEBUG_LEVEL = 6;// ÆÁ±Îlog,ÐÞ¸ÄÎª0
// 
// 	private static final int VERBOSE = 5;
// 	private static final int DEBUG = 4;
// 	private static final int INFO = 3;
// 	private static final int WARN = 2;
// 	private static final int ERROR = 1;
// 
// 	public static int v(String tag, String msg) {
// 		if (DEBUG_LEVEL > VERBOSE) {
// 			return Log.v(tag, msg);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int v(String tag, String msg, Throwable e) {
// 		if (DEBUG_LEVEL > VERBOSE) {			return Log.v(tag, msg, e);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int d(String tag, String msg) {
// 		if (DEBUG_LEVEL > DEBUG) {
// 			return Log.d(tag, msg);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int d(String tag, String msg, Throwable e) {
// 		if (DEBUG_LEVEL > DEBUG) {
// 			return Log.d(tag, msg, e);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int i(String tag, String msg) {
// 		if (DEBUG_LEVEL > INFO) {
// 			return Log.i(tag, msg);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int i(String tag, String msg, Throwable e) {
// 		if (DEBUG_LEVEL > INFO) {
// 			return Log.i(tag, msg, e);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int w(String tag, String msg) {
// 		if (DEBUG_LEVEL > WARN) {
// 			return Log.w(tag, msg);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int w(String tag, String msg, Throwable e) {
// 		if (DEBUG_LEVEL > WARN) {
// 			return Log.w(tag, msg, e);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int e(String tag, String msg) {
// 		if (DEBUG_LEVEL > ERROR) {
// 			return Log.e(tag, msg);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// 	public static int e(String tag, String msg, Throwable e) {
// 		if (DEBUG_LEVEL > ERROR) {
// 			return Log.e(tag, msg, e);
// 		} else {
// 			return 0;
// 		}
// 	}
// 
// }


// Path: DandelionPro/src/com/ustc/dystu/dandelion/fragment/BaseFragmentTabHost.java
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.TabHost;
import android.widget.TabWidget;
import java.util.ArrayList;
import com.ustc.dystu.dandelion.utils.Logger;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.util.AttributeSet;
import android.view.View;

        tabSpec.setContent(new DummyTabFactory(mContext));
        String tag = tabSpec.getTag();

        TabInfo info = new TabInfo(tag, clss, args);

        if (mAttached) {
            // If we are already attached to the window, then check to make
            // sure this tab's fragment is inactive if it exists. This shouldn't
            // normally happen.
            info.fragment = mFragmentManager.findFragmentByTag(tag);
            if (info.fragment != null && !info.fragment.isDetached()) {
                FragmentTransaction ft = mFragmentManager.beginTransaction();
                ft.detach(info.fragment);
                ft.commit();
            }
        }

        mTabs.add(info);
        addTab(tabSpec);
    }

    public BaseFragment getCurrentFragment() {
    	return (BaseFragment) mFragmentManager.findFragmentByTag(getCurrentTabTag());
    }
    
    @Override
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();

        String currentTab = getCurrentTabTag();
        Logger.d("TAB", "currentTab:"+currentTab);