@Override
 protected void onDestroy() {
   super.onDestroy();
   if (mFileOperationHelper != null) {
     mFileOperationHelper.setSearchContext(null);
   }
 }
 private void initUI() {
   mFileOperationHelper = FileOperationHelper.getInstance(this);
   mFileOperationHelper.setSearchContext(this);
   mFileSettingsHelper = FileSettingsHelper.getInstance(this);
   mFileSortHelper = FileSortHelper.getInstance(mFileSettingsHelper);
   mFileSDCardHelper =
       FileSDCardHelper.getInstance(this, mFileSettingsHelper, mFileOperationHelper);
   mFileIconHelper = new FileIconHelper(this);
   mSearchListView = (ListView) findViewById(R.id.search_listview);
   mSearchButton = (ImageView) findViewById(R.id.search);
   mKeywordsEdit = (EditText) findViewById(R.id.text_keyword);
   mImm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
   mSearchButton.setOnClickListener(this);
   mAdapter = new SearchListAdapter(this);
   mSearchListView.setAdapter(mAdapter);
   mSearchListView.setOnItemClickListener(this);
   mSearchListView.setOnCreateContextMenuListener(this);
 }
 public int onReflush() {
   mData.clear();
   ArrayList<FileInfo> fileInfos = mFileOperationHelper.searchFileInfos(mKeywords);
   mData.addAll(fileInfos);
   Collections.sort(mData, mFileSortHelper.getComparator(mFileSettingsHelper.getSortType()));
   mAdapter.notifyDataSetChanged();
   if (fileInfos.size() <= 0) return ERROR_NO_FIND_FILES;
   return SEARCH_SUCCESS;
 }
 @Override
 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
   FileInfo fileInfo = mAdapter.getItem(position);
   if (fileInfo.isDir) {
     if (mFileSDCardHelper.isDoubleCardPhone) {
       SDCardInfo internalSdCardInfo = mFileSDCardHelper.getRoot(SDCardInfo.INTERNAL_SD);
       if (fileInfo.filePath.startsWith(internalSdCardInfo.path)) {
         mFileOperationHelper.go2Folder(1, fileInfo);
       } else {
         mFileOperationHelper.go2Folder(2, fileInfo);
       }
     } else {
       mFileOperationHelper.go2Folder(1, fileInfo);
     }
     this.finish();
   } else {
     mFileOperationHelper.viewFile(this, fileInfo);
   }
 }
  private void initUI() {
    mFileSettingsHelper = FileSettingsHelper.getInstance(this);
    FileOperationHelper fileOperationHelper = FileOperationHelper.getInstance(this);
    mFileSDCardHelper =
        FileSDCardHelper.getInstance(this, mFileSettingsHelper, fileOperationHelper);
    mViewPager = (ViewPager) findViewById(R.id.sdcard_viewPager);
    mViewPager.setOffscreenPageLimit(3);

    IntentFilter filter = new IntentFilter();
    filter.addAction(ACTION_LOCALE_CHANGED);
    // registerReceiver(mReceiver, filter);

    ActionBar actionBar = getActionBar();
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    actionBar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_HOME);

    mFileSDCardPageAdapter = new FileSDCardPageAdapter(this, mViewPager);
    mFileSDCardPageAdapter.addTab(
        actionBar.newTab().setText(R.string.menu_sdcard_info), FileSDCardInfoFragment.class, null);
    mViewPager.setCurrentItem(0);

    ArrayList<SDCardInfo> roots = mFileSDCardHelper.getAllRoot(); // SD鍗′俊鎭�
    Bundle _args = null;
    for (int i = 0; i < roots.size(); i++) {
      SDCardInfo info = roots.get(i);
      _args = new Bundle();
      _args.putInt(KEY_SDTYPE, info.type);
      mFileSDCardPageAdapter.addTab(
          // Add SDCard tab
          actionBar
              .newTab()
              .setText(
                  info.type == SDCardInfo.INTERNAL_SD
                      ? R.string.title_internal_sdcard
                      : R.string.title_external_sdcard),
          FileSDCardFragment2.class,
          _args);
    }

    Button clearGarbage = (Button) findViewById(R.id.clear_garbage);
    clearGarbage.setOnClickListener(this);
  }
 /*
  * (non-Javadoc)
  *
  * @see android.app.Activity#onContextItemSelected(android.view.MenuItem)
  */
 @Override
 public boolean onContextItemSelected(MenuItem item) {
   int position = ((AdapterContextMenuInfo) item.getMenuInfo()).position;
   FileInfo fileInfo = mAdapter.getItem(position);
   if (fileInfo == null) {
     return true;
   }
   switch (item.getItemId()) {
     case MenuHelper.MENU_FAVORITE:
       mFileOperationHelper.onOperationFavorite(fileInfo);
       break;
     case MenuHelper.MENU_COPY:
       copyFile(fileInfo);
       finish();
       break;
     case MenuHelper.MENU_COPY_PATH:
       mFileOperationHelper.onOperationCopyPath(fileInfo.filePath);
       break;
     case MenuHelper.MENU_MOVE:
       moveFile(fileInfo);
       finish();
       break;
     case MenuHelper.MENU_SEND:
       mFileOperationHelper.onOperationSend(fileInfo);
       break;
     case MenuHelper.MENU_RENAME:
       mFileOperationHelper.onOperationRename(fileInfo, this);
       onReflush();
       break;
     case MenuHelper.MENU_DELETE:
       mFileOperationHelper.onOperationDeleteFiles(fileInfo, this);
       onReflush();
       break;
     case MenuHelper.MENU_INFO:
       mFileOperationHelper.onOperationInfo(fileInfo, this);
       break;
     default:
       break;
   }
   return true;
 }
 private void copyFile(FileInfo fileInfo) {
   mFileOperationHelper.setOperationState(FileOperationHelper.FILE_OPERATION_STATE_COPY);
   mFileOperationHelper.addOperationInfo(fileInfo);
 }
 private void moveFile(FileInfo fileInfo) {
   mFileOperationHelper.setOperationState(FileOperationHelper.FILE_OPERATION_STATE_MOVE);
   mFileOperationHelper.addOperationInfo(fileInfo);
   // reflushData();
 }