package com.kitty.poclient.fragment;
import com.kitty.poclient.R;
import com.kitty.poclient.fragment.setting.SettingsFragment;
import com.kitty.poclient.fragment.usb.ExternalDeviceFragment;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTabHost;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabWidget;
public class MainFragment extends Fragment implements TabFragment.OnTitleClickListener {
private final static String TAG = "MainFragment ";
public static final int TAB_MUSIC = 0;
public static final int TAB_WEB = 1;
public static final int TAB_DEVICE = 2;
public static final int TAB_SETTING = 3;
public OnMainChangedListener listener;
public void setOnMainChangedListener(OnMainChangedListener listener) {
this.listener = listener;
}
public interface OnMainChangedListener {
void onTabChanged(String tabId);
void onToggle();
void onPlayerClick();
}
private FragmentTabHost mTabHost;
private TabWidget mTabWidget;
private String tab_arrays[];
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
System.out.println(TAG + "onCreateView");
View view = (FragmentTabHost) inflater.inflate(R.layout.layout_tabhost_main, null);
mTabHost = (FragmentTabHost) view.findViewById(android.R.id.tabhost);
mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.realcontent);
tab_arrays = getResources().getStringArray(R.array.tab_arrays);
mTabHost.addTab(mTabHost.newTabSpec(tab_arrays[TAB_MUSIC]).setIndicator("", getResources().getDrawable(R.drawable.tab_music_selector)), TabMusicFragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec(tab_arrays[TAB_WEB]).setIndicator("", getResources().getDrawable(R.drawable.tab_store_selector)), TabWebFragment.class, null);
// mTabHost.addTab(mTabHost.newTabSpec(tab_arrays[TAB_DEVICE]).setIndicator("", getResources().getDrawable(R.drawable.tab_device_selector)), ExternalDeviceFragment.class, null);
// mTabHost.addTab(mTabHost.newTabSpec(tab_arrays[TAB_SETTING]).setIndicator("", getResources().getDrawable(R.drawable.tab_setting_selector)), SettingsFragment.class, null);
mTabWidget = mTabHost.getTabWidget();
int h = getResources().getInteger(R.integer.tab_widget_height);
for (int i = 0, count = mTabWidget.getTabCount(); i < count; i++) {
mTabWidget.getChildAt(i).setBackgroundDrawable(getResources().getDrawable(R.drawable.tab_background_selector));
mTabWidget.getChildAt(i).getLayoutParams().height = h;
}
mTabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
if (listener != null)
listener.onTabChanged(tabId);
}
});
return view;
}
public void menuChanged(String currentFragment, int position) {
Log.i(getTag(), "currentFragment " + currentFragment + " ,position " + position);
System.out.println(TAG + "menuChanged(" + currentFragment + "," + position + ")");
// TabWebFragment webFragment = (TabWebFragment) getChildFragmentManager().findFragmentByTag(tab_arrays[TAB_WEB]);
switch (mTabHost.getCurrentTab()) {
case TAB_MUSIC:
TabMusicFragment musicFragment = (TabMusicFragment) getChildFragmentManager().findFragmentByTag(tab_arrays[TAB_MUSIC]);
musicFragment.setContentFragment(currentFragment, position);
break;
case TAB_WEB:
TabWebFragment webFragment = (TabWebFragment) getChildFragmentManager().findFragmentByTag(tab_arrays[TAB_WEB]);
webFragment.setContentFragment(currentFragment, position);
break;
case TAB_DEVICE:
break;
case TAB_SETTING:
break;
}
}
public void onSearchClick() {
System.out.println(TAG + "onSearchClick");
switch (mTabHost.getCurrentTab()) {
case TAB_WEB:
TabWebFragment webFragment = (TabWebFragment) getChildFragmentManager().findFragmentByTag(tab_arrays[TAB_WEB]);
webFragment.setSearchFragment();
break;
default:
break;
}
}
public static int getTabPosition(String name, Context context) {
System.out.println(TAG + "getTabPosition(" + name + "," + context + ")");
String tab_arrays[] = context.getResources().getStringArray(R.array.tab_arrays);
int position = -1;
for (int i = 0, count = tab_arrays.length; i < count; i++) {
if (name.equals(tab_arrays[i])) {
position = i;
break;
}
}
return position;
}
@Override
public void onMenuClick() {
if (listener != null)
listener.onToggle();
}
@Override
public void onPlayerClick() {
if (listener != null)
listener.onPlayerClick();
}
}