Settings Listeners

Added click and change listeners
This commit is contained in:
Toby Woerthle 2018-01-19 00:46:10 -05:00
parent 5f3abd0f3b
commit fc96ad539b
4 changed files with 119 additions and 19 deletions

View File

@ -247,7 +247,7 @@ public class MainActivity extends AppCompatActivity
}
private void startSettingsFragment() {
Fragment fragment = new WithdrawWalletFragment();
Fragment fragment = new SettingsFragment();
fragment.setRetainInstance(true);
// Insert the fragment by replacing any existing fragment

View File

@ -1,20 +1,92 @@
package com.flashwifi.wifip2p;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceFragment;
import android.preference.PreferenceScreen;
import android.widget.Toast;
import com.pddstudio.preferences.encrypted.EncryptedPreferences;
/**
* Created by Toby on 1/16/2018.
*/
public class SettingsFragment extends PreferenceFragment {
public class SettingsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
//Set change listener
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
switch(key){
case "pref_key_security":
Toast.makeText(getActivity(), "Security Changed", Toast.LENGTH_SHORT).show();
break;
case "pref_key_network_timeout":
Toast.makeText(getActivity(), "Network Timeout Changed", Toast.LENGTH_SHORT).show();
break;
case "pref_key_units":
Toast.makeText(getActivity(), "Units Changed", Toast.LENGTH_SHORT).show();
break;
case "pref_key_switch_testnet":
Toast.makeText(getActivity(), "Testnet on/off Changed", Toast.LENGTH_SHORT).show();
break;
case "edit_text_buy_price":
Toast.makeText(getActivity(), "Buy Price Changed", Toast.LENGTH_SHORT).show();
break;
case "edit_text_sell_price":
Toast.makeText(getActivity(), "Sell Price Changed", Toast.LENGTH_SHORT).show();
break;
}
}
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
String key = preference.getKey();
switch (key) {
case "pref_key_reset_data_usage":
Toast.makeText(getActivity(), "Reset Data Usage", Toast.LENGTH_SHORT).show();
break;
case "pref_key_testnet_fund_add":
Toast.makeText(getActivity(), "Testnet fund add", Toast.LENGTH_SHORT).show();
break;
case "pref_key_reset_password":
Toast.makeText(getActivity(), "Reset Password", Toast.LENGTH_SHORT).show();
break;
case "pref_key_reset_wallet":
Toast.makeText(getActivity(), "Reset Wallet", Toast.LENGTH_SHORT).show();
break;
}
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
public void updatePassword(String password){
Context context = getActivity();
EncryptedPreferences encryptedPreferences = new EncryptedPreferences.Builder(context).withEncryptionPassword(password).build();
String seed = encryptedPreferences.getString(getString(R.string.encrypted_seed), null);
if (seed != null && context != null) {
//Correct password, re-store seed with new password
EncryptedPreferences encryptedPreferencesUpdated = new EncryptedPreferences.Builder(context).withEncryptionPassword(password).build();
encryptedPreferencesUpdated.edit().putString(getString(R.string.encrypted_seed), seed).apply();
}
else{
//Wrong Password
}
}
}

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="securityPref" >
<item>One</item>
<item>Two</item>
</string-array>
<string-array name="networkTimeoutPref" >
<item>15 seconds</item>
<item>30 seconds</item>
<item>1 minute</item>
<item>3 minutes</item>
<item>No timeout</item>
</string-array>
<string-array name="unitsPref" >
<item>Iota (i)</item>
<item>Kilo Iota (Ki)</item>
<item>Mega Iota (Mi)</item>
<item>Giga Iota (Gi)</item>
<item>Tera Iota (Ti)</item>
<item>Peta Iota (Pi)</item>
</string-array>
</resources>

View File

@ -10,6 +10,8 @@
android:key="pref_key_security"
android:divider="@null"
android:dividerHeight="0dp"
android:entries="@array/securityPref"
android:entryValues="@array/securityPref"
android:title="Security" />
<Preference
@ -28,28 +30,27 @@
<ListPreference
android:key="pref_key_network_timeout"
android:entries="@array/networkTimeoutPref"
android:entryValues="@array/networkTimeoutPref"
android:title="Network Timeout" />
<ListPreference
android:key="pref_key_units"
android:entries="@array/unitsPref"
android:entryValues="@array/unitsPref"
android:title="Units" />
<PreferenceScreen
android:key="button_testnet_category_key"
android:title="Testnet"
android:persistent="false">
<SwitchPreference
android:defaultValue="false"
android:key="pref_key_switch_testnet"
android:title="Testnet" />
<SwitchPreference
android:defaultValue="false"
android:key="switch_preference_testnet"
android:title="Testnet" />
<Preference
android:key="pref_key_reset_password"
android:title="Reset Password"/>
</PreferenceScreen>
<Preference
android:divider="@null"
android:dividerHeight="0dp"
android:key="pref_key_testnet_fund_add"
android:title="Add 2000i testnet"/>
</PreferenceCategory>
@ -59,15 +60,17 @@
android:key="pref_key_payment_settings">
<EditTextPreference
android:defaultValue="Default value"
android:defaultValue="10"
android:key="edit_text_buy_price"
android:inputType="number"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Buy Price" />
android:title="Max Buy Price" />
<EditTextPreference
android:defaultValue="Default value"
android:defaultValue="10"
android:key="edit_text_sell_price"
android:inputType="number"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="Sell Price" />