package com.zhan_dui.dictionary.fragments;
import java.util.ArrayList;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockFragment;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import com.mobeta.android.dslv.DragSortListView;
import com.viewpagerindicator.TabPageIndicator;
import com.zhan_dui.dictionary.R;
import com.zhan_dui.dictionary.cursoradapters.OfflineListCursorAdapter;
import com.zhan_dui.dictionary.datacenter.QueryProcessor;
import com.zhan_dui.dictionary.db.DictionaryDB;
import com.zhan_dui.dictionary.fileimport.FileImportActivity;
import com.zhan_dui.dictionary.listeners.IndicatorOnPageChangeListener;
import com.zhan_dui.dictionary.pageradapter.DictionaryManageFragmentPager;
/**
* 字典管理页面
*
* @author xuanqinanhai
*
*/
public class DictionaryManageFragment extends SherlockFragment {
private ViewPager mViewPager;
private TabPageIndicator mTabPageIndicator;
private ActionBar mActionBar;
private DictionaryManageFragmentPager mDictionaryManageFragment;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mActionBar = ((SherlockFragmentActivity) getActivity())
.getSupportActionBar();
mActionBar.setTitle(R.string.offline_manage);
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View resultView = inflater.inflate(R.layout.dictionary_manage,
container, false);
return resultView;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.search_import, menu);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mViewPager = (ViewPager) view.findViewById(R.id.viewpager);
mTabPageIndicator = (TabPageIndicator) view.findViewById(R.id.titles);
mDictionaryManageFragment = new DictionaryManageFragmentPager(
getActivity());
mViewPager.setAdapter(mDictionaryManageFragment);
mTabPageIndicator.setViewPager(mViewPager);
mTabPageIndicator
.setOnPageChangeListener(new IndicatorOnPageChangeListener());
}
@Override
public void onDestroyView() {
super.onDestroyView();
QueryProcessor.updateCacheDictionaryList(getActivity()
.getApplicationContext());
if (mDictionaryManageFragment.mOfflineDictionaryManageView == null) {
return;
}
DragSortListView dragSortListView = (DragSortListView) mDictionaryManageFragment.mOfflineDictionaryManageView
.findViewById(android.R.id.list);
OfflineListCursorAdapter dragSortCursorAdapter = (OfflineListCursorAdapter) dragSortListView
.getInputAdapter();
ArrayList<Integer> SortedResult = dragSortCursorAdapter
.getCursorPositions();
if (SortedResult == null || SortedResult.size() == 0) {
return;
}
Cursor cursor = dragSortCursorAdapter.getCursor();
cursor.moveToPosition(-1);
int i = 0;
DictionaryDB dictionaryDB = new DictionaryDB(getActivity(),
DictionaryDB.DB_NAME, null, DictionaryDB.DB_VERSION);
SQLiteDatabase sqLiteDatabase = dictionaryDB.getWritableDatabase();
while (cursor.moveToNext()) {
String[] args = { SortedResult.get(i).toString(),
cursor.getString(cursor.getColumnIndex("_id")) };
sqLiteDatabase
.execSQL(
"update `dictionary_list` set `dictionary_order`= ? where `_id`= ?",
args);
i++;
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.import_files) {
Intent intent = new Intent(getActivity(), FileImportActivity.class);
getActivity().startActivity(intent);
return true;
}
return super.onOptionsItemSelected(item);
}
}