Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.teameos.settings.device;
- import android.app.AlertDialog;
- import android.app.Dialog;
- import android.content.Context;
- import android.content.DialogInterface;
- import android.content.SharedPreferences;
- import android.os.Bundle;
- import android.os.Environment;
- import android.support.v4.app.DialogFragment;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.ArrayAdapter;
- import android.widget.TextView;
- import com.squareup.otto.Subscribe;
- import java.io.File;
- import java.io.FileFilter;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- public class PrlListDialogFragment extends DialogFragment {
- private static String TAG = "PrlListDialogFragment";
- private static String FOLDER_KEY = "folder_key";
- final static String SDCARD_PATH = Environment.getExternalStorageDirectory().toString();
- PrlAdapter mPrlAdapter;
- SharedPreferences mPrefs;
- public static PrlListDialogFragment newInstance() {
- PrlListDialogFragment f = new PrlListDialogFragment();
- return f;
- }
- public PrlListDialogFragment() {
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- mPrefs = getActivity().getSharedPreferences(TAG, Context.MODE_PRIVATE);
- BusProvider.getInstance().register(this);
- log("Created");
- }
- @Override
- public void onPause() {
- super.onPause();
- BusProvider.getInstance().unregister(this);
- }
- @Override
- public void onResume() {
- super.onResume();
- BusProvider.getInstance().register(this);
- }
- @Override
- public Dialog onCreateDialog(Bundle savedInstanceState) {
- log("onCreateDialog called");
- mPrlAdapter = new PrlAdapter(getActivity(), getPrlFiles());
- AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
- builder.setTitle(R.string.select_prl);
- builder.setAdapter(mPrlAdapter, new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int item) {
- File prl = (File) mPrlAdapter.getItem(item);
- BusProvider.getInstance().post(new PrlSelectedEvent(prl));
- }
- });
- return builder.create();
- }
- private class PrlAdapter extends ArrayAdapter<File> {
- private final ArrayList<File> prls;
- private final Context mContext;
- public PrlAdapter(Context context, ArrayList<File> prls) {
- super(context, android.R.layout.select_dialog_item, prls);
- this.mContext = context;
- this.prls = prls;
- // TODO Auto-generated constructor stub
- }
- public View getView(int position, View convertView, ViewGroup parent) {
- View itemRow = convertView;
- File f = prls.get(position);
- itemRow = ((LayoutInflater) mContext
- .getSystemService(Context.LAYOUT_INFLATER_SERVICE))
- .inflate(android.R.layout.select_dialog_item, null);
- ((TextView) itemRow.findViewById(android.R.id.text1)).setText(f.getName());
- return itemRow;
- }
- }
- private ArrayList<File> getPrlFiles() {
- File f = new File(mPrefs.getString(FOLDER_KEY, SDCARD_PATH)).getAbsoluteFile();
- log("PRL path found " + f.getAbsolutePath());
- if (!f.isDirectory()) {
- log(f.toString() + " is not a directory?");
- f = new File(SDCARD_PATH);
- }
- ArrayList<File> list = new ArrayList<File>();
- if (f.listFiles() == null) return null;
- for(File tmp : f.listFiles(new PrlFilter())) {
- list.add(tmp);
- }
- return list;
- }
- private class PrlFilter implements FileFilter {
- private final String[] okFileExtensions =
- new String[] {"prl"};
- @Override
- public boolean accept(File file) {
- for (String extension : okFileExtensions) {
- if (file.getName().toLowerCase().endsWith(extension)) {
- return true;
- }
- }
- return false;
- }
- }
- @Subscribe
- public void onPrlDirectorySelectedEvent(PrlDirectorySelectedEvent event) {
- mPrlAdapter.clear();
- mPrlAdapter.addAll(getPrlFiles());
- mPrlAdapter.notifyDataSetChanged();
- }
- private static void log(String s) {
- Log.i(TAG, s);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement