package org.primftpd.prefs;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.preference.EditTextPreference;
import android.preference.Preference;
import android.preference.PreferenceCategory;
import android.preference.PreferenceFragment;
import org.primftpd.R;
import org.primftpd.util.Defaults;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
public class FtpPrefsFragment extends PreferenceFragment
{
protected Logger logger = LoggerFactory.getLogger(getClass());
private EditTextPreference startDirPref;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
logger.debug("onCreate()");
addPreferencesFromResource(R.xml.preferences);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
logger.debug("disabling announce pref, sdk: {}", Build.VERSION.SDK_INT);
Preference announcePref = getPreferenceManager().findPreference(LoadPrefsUtil.PREF_KEY_ANNOUNCE);
PreferenceCategory prefCat = (PreferenceCategory) getPreferenceManager().findPreference("ftpPrefCat");
prefCat.removePreference(announcePref);
}
// text parameter for pub key auth pref
Resources res = getResources();
String text = String.format(res.getString(R.string.prefSummaryPubKeyAuth), Defaults.PUB_KEY_AUTH_KEY_PATH);
Preference pubKeyAuthPref = findPreference(LoadPrefsUtil.PREF_KEY_PUB_KEY_AUTH);
pubKeyAuthPref.setSummary(text);
// directory picker for choosing home dir
startDirPref = (EditTextPreference)findPreference(LoadPrefsUtil.PREF_KEY_START_DIR);
startDirPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
// don't show default dialog
startDirPref.getDialog().dismiss();
File startDirVal = LoadPrefsUtil.startDir(startDirPref.getSharedPreferences());
logger.debug("using initial start dir val: {}", startDirVal);
Intent dirPickerIntent = Defaults.createDefaultDirPicker(getActivity().getApplicationContext(), startDirVal);
startActivityForResult(dirPickerIntent, 0);
return false;
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
logger.debug("onActivityResult()");
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == Activity.RESULT_OK) {
Uri uri = data.getData();
File file = com.nononsenseapps.filepicker.Utils.getFileForUri(uri);
String path = file.getAbsolutePath();
logger.debug("got start dir path: {}", path);
startDirPref.setText(path);
}
}
}