package org.pccpa; import java.util.ArrayList; import java.util.List; import org.pccpa.api.Client; import org.pccpa.api.Contact; import org.pccpa.api.EmployeeItem; import org.pccpa.api.SiteSynRunnable; import org.pccpa.api.Client.ContactGrid; import org.pccpa.api.Client.EMGrid; import org.pccpa.frage.ContactListFragment; import org.pccpa.frage.DepartmentSelectDialog; import org.pccpa.frage.HelpFragment; import org.pccpa.frage.RemindListFragment; import android.app.DialogFragment; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.text.Editable; import android.text.TextWatcher; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.AbsListView; import android.widget.AbsListView.OnScrollListener; import android.widget.EditText; import android.widget.SearchView; import android.widget.TabHost; import android.widget.TabWidget; import android.widget.TextView; import android.widget.Toast; import com.actionbarsherlock.app.SherlockFragmentActivity; import com.actionbarsherlock.app.SherlockListActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import com.kull.android.SQLiteOrmHelper; public class ContactActivity extends BaseFragmentActivity { TabHost mTabHost; ViewPager mViewPager; TabsAdapter mTabsAdapter; EditText etSearchKeyword; ContactListFragment contactListFragment; public static List<EmployeeItem> EMP_ALL=new ArrayList<EmployeeItem>(); public static List<Contact> CONTACT_ALL=new ArrayList<Contact>(); Handler mHandler = new Handler(); private int mProgress = 100; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); //setContentView(R.layout.fragment_tabs_pager); contactListFragment=new ContactListFragment(); this.getSupportFragmentManager().beginTransaction() .add(android.R.id.content,contactListFragment) .commit(); /* mTabHost = (TabHost)findViewById(android.R.id.tabhost); mTabHost.setup(); mViewPager = (ViewPager)findViewById(R.id.pager); mTabsAdapter = new TabsAdapter(this, mTabHost, mViewPager); sqLiteOrmHelper.replaceTable(EmployeeItem.class); try { mTabsAdapter.addTab(mTabHost.newTabSpec("���").setIndicator("���"), ContactListFragment.class, null); //mTabsAdapter.addTab(mTabHost.newTabSpec("������").setIndicator("������"), // ContactListFragment.class, null); // mTabsAdapter.addTab(mTabHost.newTabSpec("������").setIndicator("������"), // ContactListFragment.class, null); // // mTabsAdapter.addTab(mTabHost.newTabSpec("��ƴ��").setIndicator("��ƴ��"), // ContactListFragment.class, null); } catch (Exception e) { // TODO Auto-generated catch block contextHelper.alert(e, Toast.LENGTH_LONG); } */ } @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub MenuItem miSearch= menu.add("����") .setIcon(R.drawable.ic_action_search) .setActionView(R.layout.collapsible_edittext); miSearch.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM|MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); etSearchKeyword=(EditText)miSearch.getActionView().findViewById(R.id.etxSearchKeyword); etSearchKeyword.addTextChangedListener(contactListFragment); MenuItem depSearch= menu.add("���Ҳ���") .setIcon(R.drawable.ic_content_select_all); depSearch.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM) ; //.setActionView(R.layout.collapsible_edittext); // menu.add("ͬ��ͨѶ¼") // .setIcon( R.drawable.ic_refresh_inverse) // .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); return true; } Thread synThread; @Override public boolean onOptionsItemSelected(MenuItem item) { //This uses the imported MenuItem from ActionBarSherlock if("ͬ��ͨѶ¼".equals(item.getTitle())){ if(synThread==null){ SiteSynRunnable siteSynRunnable=new SiteSynRunnable(this); synThread= new Thread(siteSynRunnable); synThread.run(); }else if(!synThread.isAlive()){ synThread.run(); } }else if("����".equals(item.getTitle())){ HelpFragment list=new HelpFragment(); list.context="ͨѶ¼����"; list.show(getSupportFragmentManager(), list.context); }else if("���Ҳ���".equals(item.getTitle())){ DepartmentSelectDialog dialog=new DepartmentSelectDialog(); dialog.setParent(contactListFragment); dialog.setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme_Light); dialog.show(this.getSupportFragmentManager(), ""); } return true; } private int synDB(){ try { EMGrid grid= Client.CURR_CLIENT.getEms(0,1); mProgress = grid.getTotal(); SQLiteOrmHelper ormHelper=DB.local.createSqLiteOrmHelper(this); ormHelper.replaceTable(EmployeeItem.class); int limit=200,eff=0; for(int start=0;start*limit<grid.getTotal();start++){ List<EmployeeItem> ems=Client.CURR_CLIENT.getEms(start*limit, limit).getRows(); for(EmployeeItem em:ems){ ormHelper.insert(em); //progressBar.setProgress(i++); eff++; int progress = (Window.PROGRESS_END - Window.PROGRESS_START) / 100 * eff;; setSupportProgress(progress); } } //progressBar.setVisibility(View.GONE); return eff; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return 0; } public static class TabsAdapter extends FragmentPagerAdapter implements TabHost.OnTabChangeListener, ViewPager.OnPageChangeListener { private final Context mContext; private final TabHost mTabHost; private final ViewPager mViewPager; private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>(); static final class TabInfo { private final String tag; private final Class<?> clss; private final Bundle args; TabInfo(String _tag, Class<?> _class, Bundle _args) { tag = _tag; clss = _class; args = _args; } } static class DummyTabFactory implements TabHost.TabContentFactory { private final Context mContext; public DummyTabFactory(Context context) { mContext = context; } @Override public View createTabContent(String tag) { View v = new View(mContext); v.setMinimumWidth(0); v.setMinimumHeight(0); return v; } } public TabsAdapter(FragmentActivity activity, TabHost tabHost, ViewPager pager) { super(activity.getSupportFragmentManager()); mContext = activity; mTabHost = tabHost; mViewPager = pager; mTabHost.setOnTabChangedListener(this); mViewPager.setAdapter(this); mViewPager.setOnPageChangeListener(this); } public void addTab(TabHost.TabSpec tabSpec, Class<?> clss, Bundle args) { tabSpec.setContent(new DummyTabFactory(mContext)); String tag = tabSpec.getTag(); TabInfo info = new TabInfo(tag, clss, args); mTabs.add(info); mTabHost.addTab(tabSpec); notifyDataSetChanged(); } @Override public int getCount() { return mTabs.size(); } @Override public Fragment getItem(int position) { TabInfo info = mTabs.get(position); return Fragment.instantiate(mContext, info.clss.getName(), info.args); } @Override public void onTabChanged(String tabId) { int position = mTabHost.getCurrentTab(); mViewPager.setCurrentItem(position); } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { // Unfortunately when TabHost changes the current tab, it kindly // also takes care of putting focus on it when not in touch mode. // The jerk. // This hack tries to prevent this from pulling focus out of our // ViewPager. TabWidget widget = mTabHost.getTabWidget(); int oldFocusability = widget.getDescendantFocusability(); widget.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); mTabHost.setCurrentTab(position); widget.setDescendantFocusability(oldFocusability); } @Override public void onPageScrollStateChanged(int state) { } } }