@@ -116,7 +116,14 @@ public boolean onPreferenceChange(Preference preference, Object newValue) {
116116 try {
117117 final Ini ini = createWebadminIni (webadminFile );
118118 final String ip = CuberiteService .getIpAddress (getContext ());
119- final String port = ini .get ("WebAdmin" , "Ports" );
119+ int port ;
120+ try {
121+ port = Integer .parseInt (ini .get ("WebAdmin" , "Ports" ));
122+ } catch (NumberFormatException e ) {
123+ ini .put ("WebAdmin" , "Ports" , 8080 );
124+ ini .store (webadminFile );
125+ port = Integer .parseInt (ini .get ("WebAdmin" , "Ports" ));
126+ }
120127 url = "http://" + ip + ":" + port ;
121128
122129 Preference webadminDescription = findPreference ("webadminDescription" );
@@ -221,37 +228,30 @@ public boolean onPreferenceClick(Preference preference) {
221228
222229 // Authentication
223230 final SwitchPreference toggleAuthentication = findPreference ("troubleshootingAuthenticationToggle" );
224- toggleAuthentication .setShouldDisableView (false );
225- toggleAuthentication .setEnabled (true );
226-
227231 final File settingsFile = new File (cuberiteDir .getAbsolutePath () + "/settings.ini" );
228- int enabled = 0 ;
229232
230- try {
231- Ini ini = new Ini (settingsFile );
232- enabled = Integer .parseInt (ini .get ("Authentication" , "Authenticate" ));
233-
234- if (enabled == 1 ) {
235- toggleAuthentication .setChecked (true );
236- } else {
237- toggleAuthentication .setChecked (false );
238- }
239- } catch (IOException e ) {
240- Log .e (LOG , "Settings.ini doesn't exist, disabling authentication toggle" );
241- toggleAuthentication .setShouldDisableView (true );
242- toggleAuthentication .setEnabled (false );
243- }
233+ updateAuthenticationToggle (settingsFile , toggleAuthentication );
244234
245235 toggleAuthentication .setOnPreferenceClickListener (new Preference .OnPreferenceClickListener () {
246236 @ Override
247237 public boolean onPreferenceClick (Preference preference ) {
248238 try {
249- Ini ini = new Ini (settingsFile );
250- int enabled = Integer .parseInt (ini .get ("Authentication" , "Authenticate" ));
251- int newenabled = enabled ^ 1 ; // XOR: 0 ^ 1 => 1, 1 ^ 1 => 0
252- ini .put ("Authentication" , "Authenticate" , newenabled );
239+ final Ini ini = new Ini (settingsFile );
240+ int newEnabled ;
241+
242+ try {
243+ final int enabled = Integer .parseInt (ini .get ("Authentication" , "Authenticate" ));
244+ newEnabled = enabled ^ 1 ; // XOR: 0 ^ 1 => 1, 1 ^ 1 => 0
245+ } catch (NumberFormatException e ) {
246+ newEnabled = 1 ;
247+ }
248+
249+ boolean newEnabledBool = newEnabled != 0 ;
250+ toggleAuthentication .setChecked (newEnabledBool );
251+
252+ ini .put ("Authentication" , "Authenticate" , newEnabled );
253253 ini .store (settingsFile );
254- MainActivity .showSnackBar (getActivity (), String .format (getString (R .string .settings_authentication_toggle_success ), getString (( newenabled == 1 ? R .string .enabled : R .string .disabled ) )));
254+ MainActivity .showSnackBar (getActivity (), String .format (getString (R .string .settings_authentication_toggle_success ), getString (newEnabled == 1 ? R .string .enabled : R .string .disabled )));
255255 } catch (IOException e ) {
256256 Log .e (LOG , "Something went wrong while opening the ini file" , e );
257257 MainActivity .showSnackBar (getActivity (), getString (R .string .settings_authentication_toggle_error ));
@@ -434,6 +434,29 @@ public void onClick(DialogInterface dialog, int id) {
434434 dialog .show ();
435435 }
436436
437+ private void updateAuthenticationToggle (File settingsFile , SwitchPreference toggle ) {
438+ try {
439+ final Ini ini = new Ini (settingsFile );
440+
441+ try {
442+ final int enabled = Integer .parseInt (ini .get ("Authentication" , "Authenticate" ));
443+
444+ if (enabled == 0 ) {
445+ toggle .setChecked (false );
446+ }
447+ } catch (NumberFormatException e ) {
448+ ini .put ("Authentication" , "Authenticate" , 1 );
449+ ini .store (settingsFile );
450+ toggle .setChecked (true );
451+ }
452+ } catch (IOException e ) {
453+ Log .e (LOG , "Settings.ini doesn't exist, disabling authentication toggle" );
454+ toggle .setShouldDisableView (true );
455+ toggle .setEnabled (false );
456+ toggle .setChecked (true );
457+ }
458+ }
459+
437460 @ Override
438461 public void onActivityResult (int requestCode , int resultCode , Intent data ) {
439462 super .onActivityResult (requestCode , resultCode , data );
0 commit comments