package ua.stu.view.scpview; import group.pals.android.lib.ui.filechooser.FileChooserActivity; import group.pals.android.lib.ui.filechooser.io.localfile.LocalFile; import group.pals.android.lib.ui.filechooser.services.IFileProvider; import java.util.List; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.os.Parcelable; import android.preference.PreferenceActivity; import android.preference.PreferenceManager; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class Settings extends PreferenceActivity implements OnClickListener{ private final static String TAG = "Settings"; private Button save; private final static int SAVE_ID = 0x12345678; //default preference on settings context private SharedPreferences preferences_default; //preference on MainActivity context private SharedPreferences preferences; private String ecgFilePath; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); init(); setListFooter(save); } @Override public void onBuildHeaders(List<Header> target) { super.onBuildHeaders(target); loadHeadersFromResource(R.layout.settings_headers, target); } private final void init() { save = new Button( this ); save.setId( SAVE_ID ); save.setText( R.string.settings_save ); save.setOnClickListener( this ); preferences_default = PreferenceManager.getDefaultSharedPreferences(this); preferences = getSharedPreferences(getResources().getString( R.string.app_settings_file ), MODE_PRIVATE); } @Override public void onClick(View v) { switch ( v.getId() ) { case SAVE_ID: saveColorsSettings(); saveModeSettings(); finish(); break; } } private void saveColorsSettings() { String settingsColorsKey = getResources().getString( R.string.app_settings_colors ); String settingsColorsValue = preferences_default.getString(settingsColorsKey, "1"); String settingsColorGp = getResources().getString( R.string.app_settings_colorGp ); String settingsColorChar = getResources().getString( R.string.app_settings_colorCh ); String settingsColorGrap = getResources().getString( R.string.app_settings_colorG ); Log.d("settingsColorsValue",settingsColorsValue); int colorGraphPaper = android.graphics.Color.RED; int colorCharacter = android.graphics.Color.BLUE; int colorGrap = android.graphics.Color.BLACK; if (settingsColorsValue.equals("1")) { colorGraphPaper = android.graphics.Color.GRAY; colorCharacter = android.graphics.Color.BLACK; colorGrap = android.graphics.Color.BLUE; } Editor ed = preferences.edit(); ed.putInt(settingsColorGp, colorGraphPaper); ed.putInt(settingsColorChar, colorCharacter); ed.putInt(settingsColorGrap, colorGrap); ed.commit(); } private void saveModeSettings() { String settingsModeKey = getResources().getString( R.string.app_settings_mode ); String settingsModeValue = preferences_default.getString(settingsModeKey, "1"); Editor ed = preferences.edit(); //file manager mode if (settingsModeValue.equals("0")) { ed.putBoolean(getResources().getString(R.string.settings_mode_filemanager),true); ed.putBoolean(getResources().getString(R.string.settings_mode_qrcode),false); } //qr-code mode else if (settingsModeValue.equals("1")) { ed.putBoolean(getResources().getString(R.string.settings_mode_qrcode),true); ed.putBoolean(getResources().getString(R.string.settings_mode_filemanager),false); } ed.commit(); } private void saveFilePathsSettings(String ecgFilePath) { String settingsFilePathsECGKey = getResources().getString(R.string.app_settings_file_paths_ecg); Editor ed = preferences.edit(); ed.putString(settingsFilePathsECGKey, ecgFilePath); ed.commit(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.d(TAG, "onActivityResult"); switch (requestCode) { case SCPViewActivity.REQUEST_CHOOSE_FILE: if (resultCode == 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 */ @SuppressWarnings("unchecked") List<LocalFile> files = (List<LocalFile>) data .getSerializableExtra(FileChooserActivity._Results); ecgFilePath = files.get(0).getPath(); saveFilePathsSettings(ecgFilePath); } break; } } public final void runFileChooser(int style, String rootPath, IFileProvider.FilterMode mode) { Intent intent = new Intent(getBaseContext(), FileChooserActivity.class); /* * by default, if not specified, default rootpath is sdcard, if sdcard * is not available, "/" will be used */ intent.putExtra(FileChooserActivity._Theme, style); intent.putExtra(FileChooserActivity._Rootpath,(Parcelable) new LocalFile(rootPath)); intent.putExtra(FileChooserActivity._FilterMode,mode); startActivityForResult(intent, SCPViewActivity.REQUEST_CHOOSE_FILE); } }