package com.brejza.matt.habmodem; import java.io.File; import java.util.List; import group.pals.android.lib.ui.filechooser.FileChooserActivity; import group.pals.android.lib.ui.filechooser.io.localfile.LocalFile; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.os.Parcelable; import android.preference.Preference; import android.preference.PreferenceManager; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceFragment; public class Preferences_fragment extends PreferenceFragment{ private static final int _ReqChooseFile=0; public Preferences_fragment() { // TODO Auto-generated constructor stub } private void showMapChooser() { Intent intent = new Intent(getActivity(), FileChooserActivity.class); intent.putExtra(FileChooserActivity._Rootpath, (Parcelable) new LocalFile(Environment.getExternalStorageDirectory().getPath() )); intent.putExtra(FileChooserActivity._RegexFilenameFilter, "(?si).*\\.(map)$"); intent.putExtra(FileChooserActivity._Theme, android.R.style.Theme_Dialog); startActivityForResult(intent, _ReqChooseFile); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case _ReqChooseFile: if (resultCode == android.app.Activity.RESULT_OK) { /* * you can use two flags included in data */ // IFileProvider.FilterMode filterMode = (IFileProvider.FilterMode) // data.getSerializableExtra(FileChooserActivity._FilterMode); // boolean saveDialog = data.getBooleanExtra(FileChooserActivity._SaveDialog, false); /* * a list of files will always return, * if selection mode is single, the list contains one file */ List<LocalFile> files = (List<LocalFile>) data.getSerializableExtra(FileChooserActivity._Results); for (File f : files) { PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext()).edit().putString("pref_map_path", f.getPath()).commit(); System.out.println(f.toString()); } setMapStr(); } break; } } private void setMapStr() { Preference pref = (Preference)getPreferenceScreen().findPreference("pref_map_path"); pref.setSummary(PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext()).getString("pref_map_path", "")); } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.preferences); setMapStr(); Preference myPref = (Preference) findPreference("pref_map_path"); myPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference arg0) { // TODO Auto-generated method stub showMapChooser(); return false; } }); } }