2222import javax .inject .Inject ;
2323
2424public class SettingsActivity extends BaseBackActivity {
25- @ SuppressWarnings ("unused" )
26- private static final String TAG = "SettingsActivity" ;
25+ @ SuppressWarnings ("unused" ) private static final String TAG = "SettingsActivity" ;
2726
28- @ Override
29- protected int getContentViewId () {
27+ @ Override protected int getContentViewId () {
3028 return R .layout .activity_settings ;
3129 }
3230
33- @ Override
34- protected void initViews () {
31+ @ Override protected void initViews () {
3532 super .initViews ();
3633
3734 // Display the fragment as the main content.
38- getFragmentManager ().beginTransaction ()
39- .replace (R .id .content , new SettingsFragment ())
40- .commit ();
35+ getFragmentManager ().beginTransaction ().replace (R .id .content , new SettingsFragment ()).commit ();
4136 }
4237
4338 public static class SettingsFragment extends PreferenceFragment {
44- @ Inject
45- AccountController accountController ;
46- @ Inject
47- CurrencyController currencyController ;
48- @ Inject
49- PreferenceController preferenceController ;
50-
51- @ Override
52- public void onCreate (Bundle savedInstanceState ) {
39+ @ Inject AccountController accountController ;
40+ @ Inject CurrencyController currencyController ;
41+ @ Inject PreferenceController preferenceController ;
42+
43+ @ Override public void onCreate (Bundle savedInstanceState ) {
5344 super .onCreate (savedInstanceState );
5445
5546 MtApp .get ().getAppComponent ().inject (SettingsFragment .this );
@@ -59,18 +50,14 @@ public void onCreate(Bundle savedInstanceState) {
5950
6051 setupDefaultAccountPref ();
6152 setupDefaultCurrencyPref ();
53+ setupNonSubstitutionCurrencyPref ();
6254 setupDisplayPrecision ();
6355 setupAboutPref ();
6456 }
6557
66- private void setupAboutPref () {
67- Preference preference = findPreference (getString (R .string .pref_about ));
68- preference .setSummary (getString (R .string .about_summary , BuildConfig .VERSION_NAME ,
69- Build .VERSION .RELEASE ));
70- }
71-
7258 private void setupDefaultAccountPref () {
73- ListPreference defaultAccountPref = (ListPreference ) findPreference (getString (R .string .pref_default_account ));
59+ ListPreference defaultAccountPref =
60+ (ListPreference ) findPreference (getString (R .string .pref_default_account ));
7461 defaultAccountPref .setOnPreferenceChangeListener (preferenceChangeListener );
7562
7663 List <Account > accountList = accountController .readActiveAccounts ();
@@ -87,9 +74,9 @@ private void setupDefaultAccountPref() {
8774 }
8875 }
8976
90- @ SuppressWarnings ("ToArrayCallWithZeroLengthArrayArgument" )
91- private void setupDefaultCurrencyPref () {
92- ListPreference defaultCurrencyPref = (ListPreference ) findPreference (getString (R .string .pref_default_currency ));
77+ @ SuppressWarnings ("ToArrayCallWithZeroLengthArrayArgument" ) private void setupDefaultCurrencyPref () {
78+ ListPreference defaultCurrencyPref =
79+ (ListPreference ) findPreference (getString (R .string .pref_default_currency ));
9380 defaultCurrencyPref .setOnPreferenceChangeListener (preferenceChangeListener );
9481
9582 List <String > currencyList = currencyController .readAll ();
@@ -101,9 +88,23 @@ private void setupDefaultCurrencyPref() {
10188 defaultCurrencyPref .setSummary (defaultCurrency );
10289 }
10390
104- @ SuppressWarnings ("ToArrayCallWithZeroLengthArrayArgument" )
105- private void setupDisplayPrecision () {
106- ListPreference displayPrecisionPref = (ListPreference ) findPreference (getString (R .string .pref_display_precision ));
91+ @ SuppressWarnings ("ToArrayCallWithZeroLengthArrayArgument" ) private void setupNonSubstitutionCurrencyPref () {
92+ ListPreference nonSubstitutionCurrencyPref =
93+ (ListPreference ) findPreference (getString (R .string .pref_non_substitution_currency ));
94+ nonSubstitutionCurrencyPref .setOnPreferenceChangeListener (preferenceChangeListener );
95+
96+ List <String > currencyList = currencyController .readAll ();
97+ nonSubstitutionCurrencyPref .setEntries (currencyList .toArray (new String [0 ]));
98+ nonSubstitutionCurrencyPref .setEntryValues (currencyList .toArray (new String [0 ]));
99+
100+ String nonSubstitutionCurrency = preferenceController .readNonSubstitutionCurrency ();
101+ nonSubstitutionCurrencyPref .setDefaultValue (nonSubstitutionCurrency );
102+ nonSubstitutionCurrencyPref .setSummary (nonSubstitutionCurrency );
103+ }
104+
105+ @ SuppressWarnings ("ToArrayCallWithZeroLengthArrayArgument" ) private void setupDisplayPrecision () {
106+ ListPreference displayPrecisionPref =
107+ (ListPreference ) findPreference (getString (R .string .pref_display_precision ));
107108 displayPrecisionPref .setOnPreferenceChangeListener (preferenceChangeListener );
108109
109110 List <String > precisionListValues = new ArrayList <>();
@@ -124,6 +125,11 @@ private void setupDisplayPrecision() {
124125 }
125126 }
126127
128+ private void setupAboutPref () {
129+ Preference preference = findPreference (getString (R .string .pref_about ));
130+ preference .setSummary (getString (R .string .about_summary , BuildConfig .VERSION_NAME , Build .VERSION .RELEASE ));
131+ }
132+
127133 @ SuppressWarnings ("ToArrayCallWithZeroLengthArrayArgument" )
128134 private String [] getEntries (List <Account > accountList ) {
129135 List <String > result = new ArrayList <>();
@@ -146,16 +152,15 @@ private String[] getEntryValues(List<Account> accountList) {
146152 return result .toArray (new String [0 ]);
147153 }
148154
149- private Preference .OnPreferenceChangeListener preferenceChangeListener
150- = new Preference .OnPreferenceChangeListener () {
151- @ Override
152- public boolean onPreferenceChange (Preference preference , Object newValue ) {
153- // Previously we could set summary to default value,
154- // but now it's needed to display selected entry
155- preference .setSummary ("%s" );
156- getActivity ().setResult (RESULT_OK );
157- return true ;
158- }
159- };
155+ private Preference .OnPreferenceChangeListener preferenceChangeListener =
156+ new Preference .OnPreferenceChangeListener () {
157+ @ Override public boolean onPreferenceChange (Preference preference , Object newValue ) {
158+ // Previously we could set summary to default value,
159+ // but now it's needed to display selected entry
160+ preference .setSummary ("%s" );
161+ getActivity ().setResult (RESULT_OK );
162+ return true ;
163+ }
164+ };
160165 }
161166}
0 commit comments