2017-01-26 16:46:24 -05:00
|
|
|
package com.introlab.rtabmap;
|
|
|
|
|
|
2017-06-10 12:29:57 -04:00
|
|
|
import java.io.File;
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.Iterator;
|
|
|
|
|
import java.util.Map.Entry;
|
|
|
|
|
|
|
|
|
|
import android.app.AlertDialog;
|
|
|
|
|
import android.content.DialogInterface;
|
2017-01-26 16:46:24 -05:00
|
|
|
import android.content.SharedPreferences;
|
|
|
|
|
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
|
|
|
|
|
import android.os.Bundle;
|
|
|
|
|
import android.preference.ListPreference;
|
|
|
|
|
import android.preference.Preference;
|
|
|
|
|
import android.preference.PreferenceActivity;
|
2017-06-10 12:29:57 -04:00
|
|
|
import android.text.InputType;
|
|
|
|
|
import android.view.WindowManager;
|
|
|
|
|
import android.view.inputmethod.EditorInfo;
|
|
|
|
|
import android.widget.EditText;
|
2017-01-26 16:46:24 -05:00
|
|
|
|
|
|
|
|
public class SettingsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {
|
|
|
|
|
|
2017-06-10 12:29:57 -04:00
|
|
|
private SettingsActivity getActivity() {return this;}
|
|
|
|
|
|
2017-01-26 16:46:24 -05:00
|
|
|
@Override
|
|
|
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
|
addPreferencesFromResource(R.layout.activity_settings);
|
|
|
|
|
|
2017-06-10 12:29:57 -04:00
|
|
|
Preference buttonReset = findPreference(getString(R.string.pref_key_reset_button));
|
|
|
|
|
buttonReset.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
2017-01-26 16:46:24 -05:00
|
|
|
@Override
|
|
|
|
|
public boolean onPreferenceClick(Preference preference) {
|
|
|
|
|
getPreferenceScreen().getSharedPreferences().edit().clear().commit();
|
|
|
|
|
|
|
|
|
|
recreate();
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
2017-06-10 12:29:57 -04:00
|
|
|
Preference buttonOpen = findPreference(getString(R.string.pref_key_open_button));
|
|
|
|
|
buttonOpen.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public boolean onPreferenceClick(Preference preference) {
|
|
|
|
|
File prefsdir = new File(getApplicationInfo().dataDir,"shared_prefs");
|
|
|
|
|
if(prefsdir.exists() && prefsdir.isDirectory()){
|
|
|
|
|
ArrayList<String> filesArray = new ArrayList<String>(Arrays.asList(prefsdir.list()));
|
|
|
|
|
ArrayList<String> newList = new ArrayList<String>();
|
|
|
|
|
filesArray.remove("com.introlab.rtabmap_preferences.xml");
|
|
|
|
|
for (String s : filesArray) {
|
|
|
|
|
newList.add(s.substring(0, s.length()-4)); // rip off the ".xml"
|
|
|
|
|
}
|
|
|
|
|
final String[] files = newList.toArray(new String[filesArray.size()]);
|
|
|
|
|
if(files.length > 0)
|
|
|
|
|
{
|
|
|
|
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
|
|
|
|
builder.setTitle("Choose Presets:");
|
|
|
|
|
builder.setItems(files, new DialogInterface.OnClickListener() {
|
|
|
|
|
public void onClick(DialogInterface dialog, final int which) {
|
|
|
|
|
//sp1 is the shared pref to copy to
|
|
|
|
|
SharedPreferences.Editor ed = getPreferenceScreen().getSharedPreferences().edit();
|
|
|
|
|
SharedPreferences sp = getActivity().getSharedPreferences(files[which], MODE_PRIVATE); //The shared preferences to copy from
|
|
|
|
|
//Cycle through all the entries in the sp
|
|
|
|
|
for(Entry<String,?> entry : sp.getAll().entrySet()){
|
|
|
|
|
Object v = entry.getValue();
|
|
|
|
|
String key = entry.getKey();
|
|
|
|
|
//Now we just figure out what type it is, so we can copy it.
|
|
|
|
|
// Note that i am using Boolean and Integer instead of boolean and int.
|
|
|
|
|
// That's because the Entry class can only hold objects and int and boolean are primatives.
|
|
|
|
|
if(v instanceof Boolean)
|
|
|
|
|
// Also note that i have to cast the object to a Boolean
|
|
|
|
|
// and then use .booleanValue to get the boolean
|
|
|
|
|
ed.putBoolean(key, ((Boolean)v).booleanValue());
|
|
|
|
|
else if(v instanceof Float)
|
|
|
|
|
ed.putFloat(key, ((Float)v).floatValue());
|
|
|
|
|
else if(v instanceof Integer)
|
|
|
|
|
ed.putInt(key, ((Integer)v).intValue());
|
|
|
|
|
else if(v instanceof Long)
|
|
|
|
|
ed.putLong(key, ((Long)v).longValue());
|
|
|
|
|
else if(v instanceof String)
|
|
|
|
|
ed.putString(key, ((String)v));
|
|
|
|
|
}
|
|
|
|
|
ed.commit(); //save it.
|
|
|
|
|
recreate();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
builder.show();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
Preference buttonSave = findPreference(getString(R.string.pref_key_save_button));
|
|
|
|
|
buttonSave.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public boolean onPreferenceClick(Preference preference) {
|
|
|
|
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
|
|
|
|
builder.setTitle("Save Presets:");
|
|
|
|
|
final EditText input = new EditText(getActivity());
|
|
|
|
|
input.setInputType(InputType.TYPE_CLASS_TEXT);
|
|
|
|
|
input.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
|
|
|
|
|
builder.setView(input);
|
|
|
|
|
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onClick(DialogInterface dialog, int which)
|
|
|
|
|
{
|
|
|
|
|
final String fileName = input.getText().toString();
|
|
|
|
|
dialog.dismiss();
|
|
|
|
|
if(!fileName.isEmpty())
|
|
|
|
|
{
|
|
|
|
|
File newFile = new File(getApplicationInfo().dataDir + "/shared_prefs/" + fileName + ".xml");
|
|
|
|
|
if(newFile.exists())
|
|
|
|
|
{
|
|
|
|
|
new AlertDialog.Builder(getActivity())
|
|
|
|
|
.setTitle("Presets Already Exist")
|
|
|
|
|
.setMessage("Do you want to overwrite the existing file?")
|
|
|
|
|
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
|
|
|
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
|
|
|
saveConfig(fileName);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.setNegativeButton("No", new DialogInterface.OnClickListener() {
|
|
|
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
|
|
|
dialog.dismiss();
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.show();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
saveConfig(fileName);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
AlertDialog alertToShow = builder.create();
|
|
|
|
|
alertToShow.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
|
|
|
|
|
alertToShow.show();
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
Preference buttonRemove = findPreference(getString(R.string.pref_key_remove_button));
|
|
|
|
|
buttonRemove.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public boolean onPreferenceClick(Preference preference) {
|
|
|
|
|
File prefsdir = new File(getApplicationInfo().dataDir,"shared_prefs");
|
|
|
|
|
if(prefsdir.exists() && prefsdir.isDirectory()){
|
|
|
|
|
ArrayList<String> filesArray = new ArrayList<String>(Arrays.asList(prefsdir.list()));
|
|
|
|
|
ArrayList<String> newList = new ArrayList<String>();
|
|
|
|
|
filesArray.remove("com.introlab.rtabmap_preferences.xml");
|
|
|
|
|
for (String s : filesArray) {
|
|
|
|
|
newList.add(s.substring(0, s.length()-4)); // rip off the ".xml"
|
|
|
|
|
}
|
|
|
|
|
final String[] files = newList.toArray(new String[filesArray.size()]);
|
|
|
|
|
if(files.length > 0)
|
|
|
|
|
{
|
|
|
|
|
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
|
|
|
|
builder.setTitle("Remove Presets:");
|
|
|
|
|
builder.setItems(files, new DialogInterface.OnClickListener() {
|
|
|
|
|
public void onClick(DialogInterface dialog, final int which) {
|
|
|
|
|
File file = new File(getApplicationInfo().dataDir + "/shared_prefs/" + files[which] + ".xml");
|
|
|
|
|
if(file.exists())
|
|
|
|
|
{
|
|
|
|
|
file.delete();
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
builder.show();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
2017-02-05 17:24:45 -05:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_density))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_density))).getEntry() + ") "+getString(R.string.pref_summary_density));
|
2017-01-26 16:46:24 -05:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_depth))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_depth))).getEntry() + ") "+getString(R.string.pref_summary_depth));
|
2017-04-01 14:14:36 -04:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_min_depth))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_min_depth))).getEntry() + ") "+getString(R.string.pref_summary_min_depth));
|
2017-01-26 16:46:24 -05:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_point_size))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_point_size))).getEntry() + ") "+getString(R.string.pref_summary_point_size));
|
|
|
|
|
((Preference)findPreference(getString(R.string.pref_key_angle))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_angle))).getEntry() + ") "+getString(R.string.pref_summary_angle));
|
|
|
|
|
((Preference)findPreference(getString(R.string.pref_key_triangle))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_triangle))).getEntry() + ") "+getString(R.string.pref_summary_triangle));
|
2017-04-17 21:42:01 -04:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_background_color))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_background_color))).getEntry() + ") "+getString(R.string.pref_summary_background_color));
|
2017-03-12 21:21:09 -04:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_rendering_texture_decimation))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_rendering_texture_decimation))).getEntry() + ") "+getString(R.string.pref_summary_rendering_texture_decimation));
|
|
|
|
|
|
2017-01-26 16:46:24 -05:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_update_rate))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_update_rate))).getEntry() + ") "+getString(R.string.pref_summary_update_rate));
|
|
|
|
|
((Preference)findPreference(getString(R.string.pref_key_time_thr))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_time_thr))).getEntry() + ") "+getString(R.string.pref_summary_time_thr));
|
2017-02-05 17:24:45 -05:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_mem_thr))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_mem_thr))).getEntry() + ") "+getString(R.string.pref_summary_mem_thr));
|
2017-01-26 16:46:24 -05:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_loop_thr))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_loop_thr))).getEntry() + ") "+getString(R.string.pref_summary_loop_thr));
|
2017-02-05 17:24:45 -05:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_sim_thr))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_sim_thr))).getEntry() + ") "+getString(R.string.pref_summary_sim_thr));
|
2017-02-15 19:07:10 -05:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_min_inliers))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_min_inliers))).getEntry() + ") "+getString(R.string.pref_summary_min_inliers));
|
2017-01-26 16:46:24 -05:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_opt_error))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_opt_error))).getEntry() + ") "+getString(R.string.pref_summary_opt_error));
|
2017-02-05 17:24:45 -05:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_features_voc))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_features_voc))).getEntry() + ") "+getString(R.string.pref_summary_features_voc));
|
2017-01-26 16:46:24 -05:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_features))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_features))).getEntry() + ") "+getString(R.string.pref_summary_features));
|
2017-01-27 11:47:57 -05:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_features_type))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_features_type))).getEntry() + ") "+getString(R.string.pref_summary_features_type));
|
2017-02-15 19:07:10 -05:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_optimizer))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_optimizer))).getEntry() + ") "+getString(R.string.pref_summary_optimizer));
|
2017-01-26 16:46:24 -05:00
|
|
|
|
|
|
|
|
((Preference)findPreference(getString(R.string.pref_key_cloud_voxel))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_cloud_voxel))).getEntry() + ") "+getString(R.string.pref_summary_cloud_voxel));
|
|
|
|
|
((Preference)findPreference(getString(R.string.pref_key_texture_size))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_texture_size))).getEntry() + ") "+getString(R.string.pref_summary_texture_size));
|
|
|
|
|
((Preference)findPreference(getString(R.string.pref_key_normal_k))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_normal_k))).getEntry() + ") "+getString(R.string.pref_summary_normal_k));
|
2017-02-05 17:24:45 -05:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_max_texture_distance))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_max_texture_distance))).getEntry() + ") "+getString(R.string.pref_summary_max_texture_distance));
|
2017-03-04 19:34:40 -05:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_min_texture_cluster_size))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_min_texture_cluster_size))).getEntry() + ") "+getString(R.string.pref_summary_min_texture_cluster_size));
|
2017-01-26 16:46:24 -05:00
|
|
|
|
|
|
|
|
((Preference)findPreference(getString(R.string.pref_key_opt_depth))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_opt_depth))).getEntry() + ") "+getString(R.string.pref_summary_opt_depth));
|
|
|
|
|
((Preference)findPreference(getString(R.string.pref_key_opt_color_radius))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_opt_color_radius))).getEntry() + ") "+getString(R.string.pref_summary_opt_color_radius));
|
|
|
|
|
|
2017-03-12 21:21:09 -04:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_cluster_ratio))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_cluster_ratio))).getEntry() + ") "+getString(R.string.pref_summary_cluster_ratio));
|
2017-01-26 17:34:15 -05:00
|
|
|
((Preference)findPreference(getString(R.string.pref_key_gain_max_radius))).setSummary("("+((ListPreference)findPreference(getString(R.string.pref_key_gain_max_radius))).getEntry() + ") "+getString(R.string.pref_summary_gain_max_radius));
|
2017-01-26 16:46:24 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
|
|
|
|
Preference pref = findPreference(key);
|
|
|
|
|
|
|
|
|
|
if (pref instanceof ListPreference) {
|
2017-02-05 17:24:45 -05:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_density))==0) pref.setSummary("("+ ((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_density));
|
2017-04-01 14:14:36 -04:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_depth))==0)
|
|
|
|
|
{
|
|
|
|
|
pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_depth));
|
|
|
|
|
float maxDepth = Float.parseFloat(((ListPreference)pref).getValue());
|
|
|
|
|
float minDepth = Float.parseFloat(((ListPreference)findPreference(getString(R.string.pref_key_min_depth))).getValue());
|
|
|
|
|
if(maxDepth > 0.0f && maxDepth <= minDepth)
|
|
|
|
|
{
|
|
|
|
|
((ListPreference)findPreference(getString(R.string.pref_key_min_depth))).setValueIndex(0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(key.compareTo(getString(R.string.pref_key_min_depth))==0)
|
|
|
|
|
{
|
|
|
|
|
pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_min_depth));
|
|
|
|
|
float maxDepth = Float.parseFloat(((ListPreference)findPreference(getString(R.string.pref_key_depth))).getValue());
|
|
|
|
|
float minDepth = Float.parseFloat(((ListPreference)pref).getValue());
|
|
|
|
|
if(minDepth >= maxDepth)
|
|
|
|
|
{
|
|
|
|
|
((ListPreference)findPreference(getString(R.string.pref_key_depth))).setValueIndex(0);
|
|
|
|
|
}
|
|
|
|
|
}
|
2017-01-26 16:46:24 -05:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_point_size))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_point_size));
|
|
|
|
|
if(key.compareTo(getString(R.string.pref_key_angle))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_angle));
|
|
|
|
|
if(key.compareTo(getString(R.string.pref_key_triangle))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_triangle));
|
2017-04-17 21:42:01 -04:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_background_color))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_background_color));
|
2017-03-12 21:21:09 -04:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_rendering_texture_decimation))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_rendering_texture_decimation));
|
2017-01-26 16:46:24 -05:00
|
|
|
|
|
|
|
|
if(key.compareTo(getString(R.string.pref_key_update_rate))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_update_rate));
|
|
|
|
|
if(key.compareTo(getString(R.string.pref_key_time_thr))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_time_thr));
|
2017-02-05 17:24:45 -05:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_mem_thr))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_mem_thr));
|
2017-01-26 16:46:24 -05:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_loop_thr))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_loop_thr));
|
2017-02-05 17:24:45 -05:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_sim_thr))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_sim_thr));
|
2017-02-15 19:07:10 -05:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_min_inliers))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_min_inliers));
|
2017-01-26 16:46:24 -05:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_opt_error))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_opt_error));
|
2017-02-05 17:24:45 -05:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_features_voc))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_features_voc));
|
2017-01-26 16:46:24 -05:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_features))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_features));
|
2017-01-27 11:47:57 -05:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_features_type))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_features_type));
|
2017-02-15 19:07:10 -05:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_optimizer))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_optimizer));
|
2017-01-27 11:47:57 -05:00
|
|
|
|
2017-01-26 16:46:24 -05:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_cloud_voxel))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_cloud_voxel));
|
|
|
|
|
if(key.compareTo(getString(R.string.pref_key_texture_size))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_texture_size));
|
|
|
|
|
if(key.compareTo(getString(R.string.pref_key_normal_k))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_normal_k));
|
2017-02-05 17:24:45 -05:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_max_texture_distance))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_max_texture_distance));
|
2017-03-04 19:34:40 -05:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_min_texture_cluster_size))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_min_texture_cluster_size));
|
2017-01-26 16:46:24 -05:00
|
|
|
|
|
|
|
|
if(key.compareTo(getString(R.string.pref_key_opt_depth))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_opt_depth));
|
|
|
|
|
if(key.compareTo(getString(R.string.pref_key_opt_color_radius))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_opt_color_radius));
|
2017-01-26 17:34:15 -05:00
|
|
|
|
2017-03-12 21:21:09 -04:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_cluster_ratio))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_cluster_ratio));
|
2017-01-26 17:34:15 -05:00
|
|
|
if(key.compareTo(getString(R.string.pref_key_gain_max_radius))==0) pref.setSummary("("+((ListPreference)pref).getEntry() + ") "+getString(R.string.pref_summary_gain_max_radius));
|
2017-01-26 16:46:24 -05:00
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected void onResume() {
|
|
|
|
|
super.onResume();
|
|
|
|
|
// Set up a listener whenever a key changes
|
|
|
|
|
getPreferenceScreen().getSharedPreferences()
|
|
|
|
|
.registerOnSharedPreferenceChangeListener(this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected void onPause() {
|
|
|
|
|
super.onPause();
|
|
|
|
|
// Unregister the listener whenever a key changes
|
|
|
|
|
getPreferenceScreen().getSharedPreferences()
|
|
|
|
|
.unregisterOnSharedPreferenceChangeListener(this);
|
|
|
|
|
}
|
2017-06-10 12:29:57 -04:00
|
|
|
|
|
|
|
|
private void saveConfig(String fileName)
|
|
|
|
|
{
|
|
|
|
|
//sp1 is the shared pref to copy to
|
|
|
|
|
SharedPreferences.Editor ed = getActivity().getSharedPreferences(fileName, MODE_PRIVATE).edit();
|
|
|
|
|
SharedPreferences sp = getPreferenceScreen().getSharedPreferences(); //The shared preferences to copy from
|
|
|
|
|
ed.clear(); // This clears the one we are copying to, but you don't necessarily need to do that.
|
|
|
|
|
//Cycle through all the entries in the sp
|
|
|
|
|
for(Entry<String,?> entry : sp.getAll().entrySet()){
|
|
|
|
|
Object v = entry.getValue();
|
|
|
|
|
String key = entry.getKey();
|
|
|
|
|
//Now we just figure out what type it is, so we can copy it.
|
|
|
|
|
// Note that i am using Boolean and Integer instead of boolean and int.
|
|
|
|
|
// That's because the Entry class can only hold objects and int and boolean are primatives.
|
|
|
|
|
if(v instanceof Boolean)
|
|
|
|
|
// Also note that i have to cast the object to a Boolean
|
|
|
|
|
// and then use .booleanValue to get the boolean
|
|
|
|
|
ed.putBoolean(key, ((Boolean)v).booleanValue());
|
|
|
|
|
else if(v instanceof Float)
|
|
|
|
|
ed.putFloat(key, ((Float)v).floatValue());
|
|
|
|
|
else if(v instanceof Integer)
|
|
|
|
|
ed.putInt(key, ((Integer)v).intValue());
|
|
|
|
|
else if(v instanceof Long)
|
|
|
|
|
ed.putLong(key, ((Long)v).longValue());
|
|
|
|
|
else if(v instanceof String)
|
|
|
|
|
ed.putString(key, ((String)v));
|
|
|
|
|
}
|
|
|
|
|
ed.commit(); //save it.
|
|
|
|
|
}
|
2017-01-26 16:46:24 -05:00
|
|
|
}
|