Android Open Source - nsa-away Directory Chooser Activity






From Project

Back to project page nsa-away.

License

The source code is released under:

GNU General Public License

If you think the Android project nsa-away listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.sector67.nsaaway.file;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
//from www  .  j a  v a  2  s . c o  m
import org.sector67.nsaaway.R;

import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
/*
 * A class to allow choosing a directory
 */
public class DirectoryChooserActivity extends ListActivity {

  public static final String START_DIR = "startDir";
  public static final String ONLY_DIRS = "onlyDirs";
  public static final String SHOW_HIDDEN = "showHidden";
  public static final String CHOSEN_DIRECTORY = "chosenDir";
  public static final int PICK_DIRECTORY = 43522432;
  private File dir;
  private boolean showHidden = false;
  private boolean onlyDirs = true ;
  
  @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Bundle extras = getIntent().getExtras();
        dir = Environment.getExternalStorageDirectory();
        if (extras != null) {
          String preferredStartDir = extras.getString(START_DIR);
          showHidden = extras.getBoolean(SHOW_HIDDEN, false);
          onlyDirs = extras.getBoolean(ONLY_DIRS, true);
          if(preferredStartDir != null) {
              File startDir = new File(preferredStartDir);
              if(startDir.isDirectory()) {
                dir = startDir;
              }
            } 
        }
        
 //       setContentView(R.layout.chooser_list);
        setTitle(dir.getAbsolutePath());
 //       Button btnChoose = (Button) findViewById(R.id.btnChoose);
        Button btnChoose = null;
        String name = dir.getName();
        if(name.length() == 0)
          name = "/";
        btnChoose.setText("Choose " + "'" + name + "'");
        btnChoose.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
              returnDir(dir.getAbsolutePath());
            }
        });
        
        ListView lv = getListView();
        lv.setTextFilterEnabled(true);
        
        if(!dir.canRead()) {
          Context context = getApplicationContext();
          String msg = "Could not read folder contents.";
          Toast toast = Toast.makeText(context, msg, Toast.LENGTH_LONG);
          toast.show();
          return;
        }
        
        final ArrayList<File> files = filter(dir.listFiles(), onlyDirs, showHidden);
        String[] names = names(files);
//        setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, names));          
        

        lv.setOnItemClickListener(new OnItemClickListener() {
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            if(!files.get(position).isDirectory())
              return;
            String path = files.get(position).getAbsolutePath();
                Intent intent = new Intent(DirectoryChooserActivity.this, DirectoryChooserActivity.class);
                intent.putExtra(DirectoryChooserActivity.START_DIR, path);
                intent.putExtra(DirectoryChooserActivity.SHOW_HIDDEN, showHidden);
                intent.putExtra(DirectoryChooserActivity.ONLY_DIRS, onlyDirs);
                startActivityForResult(intent, PICK_DIRECTORY);
          }
        });
    }
  
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      if(requestCode == PICK_DIRECTORY && resultCode == RESULT_OK) {
        Bundle extras = data.getExtras();
        String path = (String) extras.get(DirectoryChooserActivity.CHOSEN_DIRECTORY);
          returnDir(path);
      }
    }
  
    private void returnDir(String path) {
      Intent result = new Intent();
      result.putExtra(CHOSEN_DIRECTORY, path);
        setResult(RESULT_OK, result);
      finish();      
    }

  public ArrayList<File> filter(File[] file_list, boolean onlyDirs, boolean showHidden) {
    ArrayList<File> files = new ArrayList<File>();
    for(File file: file_list) {
      if(onlyDirs && !file.isDirectory())
        continue;
      if(!showHidden && file.isHidden())
        continue;
      files.add(file);
    }
    Collections.sort(files);
    return files;
  }
  
  public String[] names(ArrayList<File> files) {
    String[] names = new String[files.size()];
    int i = 0;
    for(File file: files) {
      names[i] = file.getName();
      i++;
    }
    return names;
  }
}




Java Source Code List

org.sector67.nsaaway.CreateAKeyActivity.java
org.sector67.nsaaway.DisplayCiphertextActivity.java
org.sector67.nsaaway.DisplayPlaintextActivity.java
org.sector67.nsaaway.EnterCiphertextActivity.java
org.sector67.nsaaway.EnterPlaintextActivity.java
org.sector67.nsaaway.KeyChooserActivity.java
org.sector67.nsaaway.KeyChooserDialogFragment.java
org.sector67.nsaaway.KeyManagerActivity.java
org.sector67.nsaaway.MainActivity.java
org.sector67.nsaaway.SettingsActivity.java
org.sector67.nsaaway.SettingsFragment.java
org.sector67.nsaaway.SimpleOCRActivity.java
org.sector67.nsaaway.android.AlertUtils.java
org.sector67.nsaaway.file.AbstractFileUtils.java
org.sector67.nsaaway.file.DirectoryChooserActivity.java
org.sector67.nsaaway.file.FileUtilsFactory.java
org.sector67.nsaaway.file.FileUtils.java
org.sector67.nsaaway.file.KitKatFileUtils.java
org.sector67.nsaaway.file.LegacyFileUtils.java
org.sector67.nsaaway.key.KeyUtils.java
org.sector67.nsaaway.ocr.complex.BeepManager.java
org.sector67.nsaaway.ocr.complex.CaptureActivityHandler.java
org.sector67.nsaaway.ocr.complex.CaptureActivity.java
org.sector67.nsaaway.ocr.complex.DecodeHandler.java
org.sector67.nsaaway.ocr.complex.DecodeThread.java
org.sector67.nsaaway.ocr.complex.FinishListener.java
org.sector67.nsaaway.ocr.complex.HelpActivity.java
org.sector67.nsaaway.ocr.complex.LuminanceSource.java
org.sector67.nsaaway.ocr.complex.OcrCharacterHelper.java
org.sector67.nsaaway.ocr.complex.OcrInitAsyncTask.java
org.sector67.nsaaway.ocr.complex.OcrRecognizeAsyncTask.java
org.sector67.nsaaway.ocr.complex.OcrResultFailure.java
org.sector67.nsaaway.ocr.complex.OcrResultText.java
org.sector67.nsaaway.ocr.complex.OcrResult.java
org.sector67.nsaaway.ocr.complex.PlanarYUVLuminanceSource.java
org.sector67.nsaaway.ocr.complex.PreferencesActivity.java
org.sector67.nsaaway.ocr.complex.ViewfinderView.java
org.sector67.nsaaway.ocr.complex.camera.AutoFocusManager.java
org.sector67.nsaaway.ocr.complex.camera.CameraConfigurationManager.java
org.sector67.nsaaway.ocr.complex.camera.CameraManager.java
org.sector67.nsaaway.ocr.complex.camera.PreviewCallback.java
org.sector67.nsaaway.ocr.complex.camera.ShutterButton.java
org.sector67.nsaaway.ocr.complex.language.LanguageCodeHelper.java