hardware: Clean up CMHW and AdvancedDisplay

 - Use CMSDK FileUtils
 - Simplify, yet harden checks
 - Use static final Strings
 - Remove unnecessary imports
 - Remove unnecessary Strings
 - Update copyright

Change-Id: Id2f0f2fdf5be7e2b29a3910a6aa56a3aad10868f
diff --git a/AdvancedDisplay/src/com/cyanogenmod/settings/device/ScreenFragmentActivity.java b/AdvancedDisplay/src/com/cyanogenmod/settings/device/ScreenFragmentActivity.java
index 7b64a4f..8ecb593 100644
--- a/AdvancedDisplay/src/com/cyanogenmod/settings/device/ScreenFragmentActivity.java
+++ b/AdvancedDisplay/src/com/cyanogenmod/settings/device/ScreenFragmentActivity.java
@@ -31,6 +31,7 @@
 import android.util.Log;
 
 import com.cyanogenmod.settings.device.R;
+import org.cyanogenmod.internal.util.FileUtils;
 
 public class ScreenFragmentActivity extends PreferenceFragment {
 
@@ -69,8 +70,8 @@
         return true;
     }
 
-    public static boolean isSupported(String FILE) {
-        return Utils.fileExists(FILE);
+    public static boolean isSupported(String filePath) {
+        return FileUtils.isFileWritable(filePath);
     }
 
     public static void restore(Context context) {
diff --git a/AdvancedDisplay/src/com/cyanogenmod/settings/device/Utils.java b/AdvancedDisplay/src/com/cyanogenmod/settings/device/Utils.java
deleted file mode 100644
index 552ece5..0000000
--- a/AdvancedDisplay/src/com/cyanogenmod/settings/device/Utils.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2012 The CyanogenMod Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.cyanogenmod.settings.device;
-
-import android.util.Log;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.SyncFailedException;
-import android.app.AlertDialog;
-import android.content.DialogInterface;
-import android.content.Context;
-
-public class Utils {
-
-    private static final String TAG = "DeviceSettings_Utils";
-    private static final String TAG_READ = "DeviceSettings_Utils_Read";
-    private static final String TAG_WRITE = "DeviceSettings_Utils_Write";
-
-    /**
-     * Write a string value to the specified file.
-     *
-     * @param filename The filename
-     * @param value The value
-     */
-    public static void writeValue(String filename, String value) {
-        FileOutputStream fos = null;
-        try {
-            fos = new FileOutputStream(new File(filename), false);
-            fos.write(value.getBytes());
-            fos.flush();
-            // fos.getFD().sync();
-        } catch (FileNotFoundException ex) {
-            Log.w(TAG, "file " + filename + " not found: " + ex);
-        } catch (SyncFailedException ex) {
-            Log.w(TAG, "file " + filename + " sync failed: " + ex);
-        } catch (IOException ex) {
-            Log.w(TAG, "IOException trying to sync " + filename + ": " + ex);
-        } catch (RuntimeException ex) {
-            Log.w(TAG, "exception while syncing file: ", ex);
-        } finally {
-            if (fos != null) {
-                try {
-                    Log.w(TAG_WRITE, "file " + filename + ": " + value);
-                    fos.close();
-                } catch (IOException ex) {
-                    Log.w(TAG, "IOException while closing synced file: ", ex);
-                } catch (RuntimeException ex) {
-                    Log.w(TAG, "exception while closing file: ", ex);
-                }
-            }
-        }
-
-    }
-
-    /**
-     * Check if the specified file exists.
-     * @param filename      The filename
-     * @return              Whether the file exists or not
-     */
-    public static boolean fileExists(String filename) {
-        return new File(filename).exists();
-    }
-
-}
diff --git a/AdvancedDisplay/src/com/cyanogenmod/settings/device/mDNIeNegative.java b/AdvancedDisplay/src/com/cyanogenmod/settings/device/mDNIeNegative.java
index bde9946..a5e20f2 100644
--- a/AdvancedDisplay/src/com/cyanogenmod/settings/device/mDNIeNegative.java
+++ b/AdvancedDisplay/src/com/cyanogenmod/settings/device/mDNIeNegative.java
@@ -25,6 +25,8 @@
 import android.preference.Preference.OnPreferenceChangeListener;
 import android.preference.PreferenceManager;
 
+import org.cyanogenmod.internal.util.FileUtils;
+
 public class mDNIeNegative extends ListPreference implements OnPreferenceChangeListener {
 
     private static String FILE = null;
@@ -36,7 +38,7 @@
     }
 
     public static boolean isSupported(String filePath) {
-        return Utils.fileExists(filePath);
+        return FileUtils.isFileWritable(filePath);
     }
 
     /**
@@ -50,11 +52,11 @@
         }
 
         SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
-        Utils.writeValue(FILE, sharedPrefs.getString(DisplaySettings.KEY_MDNIE_NEGATIVE, "0"));
+        FileUtils.writeLine(FILE, sharedPrefs.getString(DisplaySettings.KEY_MDNIE_NEGATIVE, "0"));
     }
 
     public boolean onPreferenceChange(Preference preference, Object newValue) {
-        Utils.writeValue(FILE, (String) newValue);
+        FileUtils.writeLine(FILE, (String) newValue);
         return true;
     }
 
diff --git a/AdvancedDisplay/src/com/cyanogenmod/settings/device/mDNIeScenario.java b/AdvancedDisplay/src/com/cyanogenmod/settings/device/mDNIeScenario.java
index cbab69d..5d33fe9 100644
--- a/AdvancedDisplay/src/com/cyanogenmod/settings/device/mDNIeScenario.java
+++ b/AdvancedDisplay/src/com/cyanogenmod/settings/device/mDNIeScenario.java
@@ -25,6 +25,8 @@
 import android.preference.Preference.OnPreferenceChangeListener;
 import android.preference.PreferenceManager;
 
+import org.cyanogenmod.internal.util.FileUtils;
+
 public class mDNIeScenario extends ListPreference implements OnPreferenceChangeListener {
 
     private static String FILE = null;
@@ -36,7 +38,7 @@
     }
 
     public static boolean isSupported(String filePath) {
-        return Utils.fileExists(filePath);
+        return FileUtils.isFileWritable(filePath);
     }
 
     /**
@@ -50,11 +52,11 @@
         }
 
         SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
-        Utils.writeValue(FILE, sharedPrefs.getString(DisplaySettings.KEY_MDNIE_SCENARIO, "0"));
+        FileUtils.writeLine(FILE, sharedPrefs.getString(DisplaySettings.KEY_MDNIE_SCENARIO, "0"));
     }
 
     public boolean onPreferenceChange(Preference preference, Object newValue) {
-        Utils.writeValue(FILE, (String) newValue);
+        FileUtils.writeLine(FILE, (String) newValue);
         return true;
     }
 
diff --git a/cmhw/org/cyanogenmod/hardware/AdaptiveBacklight.java b/cmhw/org/cyanogenmod/hardware/AdaptiveBacklight.java
index 10f7d20..16a3748 100644
--- a/cmhw/org/cyanogenmod/hardware/AdaptiveBacklight.java
+++ b/cmhw/org/cyanogenmod/hardware/AdaptiveBacklight.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 The CyanogenMod Project
+ * Copyright (C) 2013-2016 The CyanogenMod Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,12 +16,9 @@
 
 package org.cyanogenmod.hardware;
 
-import org.cyanogenmod.hardware.util.FileUtils;
-
 import android.os.SystemProperties;
-import android.text.TextUtils;
 
-import java.io.File;
+import org.cyanogenmod.internal.util.FileUtils;
 
 /**
  * Adaptive backlight support (this refers to technologies like NVIDIA SmartDimmer,
@@ -29,7 +26,8 @@
  */
 public class AdaptiveBacklight {
 
-    private static String FILE_CABC = SystemProperties.get("ro.cm.hardware.cabc", "/sys/class/lcd/panel/power_reduce");
+    private static final String FILE_CABC = SystemProperties.get(
+            "ro.cm.hardware.cabc", "/sys/class/lcd/panel/power_reduce");
 
     /**
      * Whether device supports an adaptive backlight technology.
@@ -37,8 +35,8 @@
      * @return boolean Supported devices must return always true
      */
     public static boolean isSupported() {
-        File f = new File(FILE_CABC);
-        return f.exists();
+        return FileUtils.isFileWritable(FILE_CABC) &&
+                FileUtils.isFileReadable(FILE_CABC);
     }
 
     /**
@@ -48,11 +46,7 @@
      * the operation failed while reading the status; true in any other case.
      */
     public static boolean isEnabled() {
-        if (TextUtils.equals(FileUtils.readOneLine(FILE_CABC), "1")) {
-            return true;
-        } else {
-            return false;
-        }
+        return "1".equals(FileUtils.readOneLine(FILE_CABC));
     }
 
     /**
@@ -63,10 +57,6 @@
      * failed; true in any other case.
      */
     public static boolean setEnabled(boolean status) {
-        if (status == true) {
-            return FileUtils.writeLine(FILE_CABC, "1");
-        } else {
-            return FileUtils.writeLine(FILE_CABC, "0");
-        }
+        return FileUtils.writeLine(FILE_CABC, status ? "1" : "0");
     }
 }
diff --git a/cmhw/org/cyanogenmod/hardware/HighTouchSensitivity.java b/cmhw/org/cyanogenmod/hardware/HighTouchSensitivity.java
index b968be4..4e3c973 100644
--- a/cmhw/org/cyanogenmod/hardware/HighTouchSensitivity.java
+++ b/cmhw/org/cyanogenmod/hardware/HighTouchSensitivity.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2014 The CyanogenMod Project
+ * Copyright (C) 2014-2016 The CyanogenMod Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,29 +16,28 @@
 
 package org.cyanogenmod.hardware;
 
-import org.cyanogenmod.hardware.util.FileUtils;
+import android.util.Log;
+
+import org.cyanogenmod.internal.util.FileUtils;
 
 import java.io.BufferedReader;
-import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
 
-import android.util.Log;
-
 /**
  * Glove mode / high touch sensitivity
  */
 public class HighTouchSensitivity {
 
-    private static String TAG = "HighTouchSensitivity";
+    private static final String TAG = "HighTouchSensitivity";
 
-    private static String COMMAND_PATH = "/sys/class/sec/tsp/cmd";
-    private static String COMMAND_LIST_PATH = "/sys/class/sec/tsp/cmd_list";
-    private static String COMMAND_RESULT_PATH = "/sys/class/sec/tsp/cmd_result";
-    private static String GLOVE_MODE = "glove_mode";
-    private static String GLOVE_MODE_ENABLE = "glove_mode,1";
-    private static String GLOVE_MODE_DISABLE = "glove_mode,0";
-    private static String STATUS_OK = ":OK";
+    private static final String COMMAND_PATH = "/sys/class/sec/tsp/cmd";
+    private static final String COMMAND_LIST_PATH = "/sys/class/sec/tsp/cmd_list";
+    private static final String COMMAND_RESULT_PATH = "/sys/class/sec/tsp/cmd_result";
+    private static final String GLOVE_MODE = "glove_mode";
+    private static final String GLOVE_MODE_ENABLE = "glove_mode,1";
+    private static final String GLOVE_MODE_DISABLE = "glove_mode,0";
+    private static final String STATUS_OK = ":OK";
 
     /**
      * Whether device supports high touch sensitivity.
@@ -46,25 +45,29 @@
      * @return boolean Supported devices must return always true
      */
     public static boolean isSupported() {
-        File f = new File(COMMAND_PATH);
-        if (f.exists()) {
-            BufferedReader reader = null;
-            try {
-                String currentLine;
-                reader = new BufferedReader(new FileReader(COMMAND_LIST_PATH));
-                while ((currentLine = reader.readLine()) != null) {
-                    if (GLOVE_MODE.equals(currentLine))
-                        return true;
+        if (!FileUtils.isFileWritable(COMMAND_PATH) ||
+                !FileUtils.isFileReadable(COMMAND_LIST_PATH) ||
+                !FileUtils.isFileReadable(COMMAND_RESULT_PATH)) {
+            return false;
+        }
+
+        BufferedReader reader = null;
+        try {
+            String currentLine;
+            reader = new BufferedReader(new FileReader(COMMAND_LIST_PATH));
+            while ((currentLine = reader.readLine()) != null) {
+                if (GLOVE_MODE.equals(currentLine)) {
+                    return true;
                 }
-            } catch (IOException e) {
-                // Ignore exception, will be false anyway
-            } finally {
-                if (reader != null) {
-                    try {
-                        reader.close();
-                    } catch (IOException e) {
-                        // Ignore exception, no recovery possible
-                    }
+            }
+        } catch (IOException e) {
+            Log.e(TAG, "Could not read from file " + COMMAND_LIST_PATH, e);
+        } finally {
+            if (reader != null) {
+                try {
+                    reader.close();
+                } catch (IOException e) {
+                    // Ignore exception, no recovery possible
                 }
             }
         }
@@ -77,7 +80,7 @@
      * or the operation failed while reading the status; true in any other case.
      */
     public static boolean isEnabled() {
-        return FileUtils.readOneLine(COMMAND_RESULT_PATH).equals(GLOVE_MODE_ENABLE + STATUS_OK);
+        return (GLOVE_MODE_ENABLE + STATUS_OK).equals(FileUtils.readOneLine(COMMAND_RESULT_PATH));
     }
 
     /**
diff --git a/cmhw/org/cyanogenmod/hardware/SunlightEnhancement.java b/cmhw/org/cyanogenmod/hardware/SunlightEnhancement.java
index afcf33c..8c55ca8 100644
--- a/cmhw/org/cyanogenmod/hardware/SunlightEnhancement.java
+++ b/cmhw/org/cyanogenmod/hardware/SunlightEnhancement.java
@@ -16,11 +16,9 @@
 
 package org.cyanogenmod.hardware;
 
-import org.cyanogenmod.hardware.util.FileUtils;
-
 import android.os.SystemProperties;
 
-import java.io.File;
+import org.cyanogenmod.internal.util.FileUtils;
 
 /**
  * Sunlight Readability Enhancement support, aka Facemelt Mode.
@@ -30,7 +28,8 @@
  * support.
  */
 public class SunlightEnhancement {
-    private static final String sOutdoorModePath = "/sys/class/mdnie/mdnie/outdoor";
+
+    private static final String FILE_SRE = "/sys/class/mdnie/mdnie/outdoor";
 
     /**
      * Whether device supports SRE
@@ -38,7 +37,8 @@
      * @return boolean Supported devices must return always true
      */
     public static boolean isSupported() {
-        return new File(sOutdoorModePath).exists();
+        return FileUtils.isFileWritable(FILE_SRE) &&
+                FileUtils.isFileReadable(FILE_SRE);
     }
 
     /**
@@ -48,10 +48,7 @@
      * the operation failed while reading the status; true in any other case.
      */
     public static boolean isEnabled() {
-        String line = FileUtils.readOneLine(sOutdoorModePath);
-        if (line == null)
-            return false;
-        return line.equals("1");
+        return "1".equals(FileUtils.readOneLine(FILE_SRE));
     }
 
     /**
@@ -62,7 +59,7 @@
      * failed; true in any other case.
      */
     public static boolean setEnabled(boolean status) {
-        return FileUtils.writeLine(sOutdoorModePath, status ? "1" : "0");
+        return FileUtils.writeLine(FILE_SRE, status ? "1" : "0");
     }
 
     /**
diff --git a/cmhw/org/cyanogenmod/hardware/TouchscreenHovering.java b/cmhw/org/cyanogenmod/hardware/TouchscreenHovering.java
index f6a7ee8..69e61f8 100644
--- a/cmhw/org/cyanogenmod/hardware/TouchscreenHovering.java
+++ b/cmhw/org/cyanogenmod/hardware/TouchscreenHovering.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015 The CyanogenMod Project
+ * Copyright (C) 2015-2016 The CyanogenMod Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,29 +16,28 @@
 
 package org.cyanogenmod.hardware;
 
-import org.cyanogenmod.hardware.util.FileUtils;
+import android.util.Log;
+
+import org.cyanogenmod.internal.util.FileUtils;
 
 import java.io.BufferedReader;
-import java.io.File;
 import java.io.FileReader;
 import java.io.IOException;
 
-import android.util.Log;
-
 /**
  * Touchscreen Hovering
  */
 public class TouchscreenHovering {
 
-    private static String TAG = "TouchscreenHovering";
+    private static final String TAG = "TouchscreenHovering";
 
-    private static String COMMAND_PATH = "/sys/class/sec/tsp/cmd";
-    private static String COMMAND_LIST_PATH = "/sys/class/sec/tsp/cmd_list";
-    private static String COMMAND_RESULT_PATH = "/sys/class/sec/tsp/cmd_result";
-    private static String HOVER_MODE = "hover_enable";
-    private static String HOVER_MODE_ENABLE = "hover_enable,1";
-    private static String HOVER_MODE_DISABLE = "hover_enable,0";
-    private static String STATUS_OK = ":OK";
+    private static final String COMMAND_PATH = "/sys/class/sec/tsp/cmd";
+    private static final String COMMAND_LIST_PATH = "/sys/class/sec/tsp/cmd_list";
+    private static final String COMMAND_RESULT_PATH = "/sys/class/sec/tsp/cmd_result";
+    private static final String HOVER_MODE = "hover_enable";
+    private static final String HOVER_MODE_ENABLE = "hover_enable,1";
+    private static final String HOVER_MODE_DISABLE = "hover_enable,0";
+    private static final String STATUS_OK = ":OK";
 
     /**
      * Whether device supports touchscreen hovering.
@@ -46,25 +45,29 @@
      * @return boolean Supported devices must return always true
      */
     public static boolean isSupported() {
-        File f = new File(COMMAND_PATH);
-        if (f.exists()) {
-            BufferedReader reader = null;
-            try {
-                String currentLine;
-                reader = new BufferedReader(new FileReader(COMMAND_LIST_PATH));
-                while ((currentLine = reader.readLine()) != null) {
-                    if (HOVER_MODE.equals(currentLine))
-                        return true;
+        if (!FileUtils.isFileWritable(COMMAND_PATH) ||
+                !FileUtils.isFileReadable(COMMAND_LIST_PATH) ||
+                !FileUtils.isFileReadable(COMMAND_RESULT_PATH)) {
+            return false;
+        }
+
+        BufferedReader reader = null;
+        try {
+            String currentLine;
+            reader = new BufferedReader(new FileReader(COMMAND_LIST_PATH));
+            while ((currentLine = reader.readLine()) != null) {
+                if (HOVER_MODE.equals(currentLine)) {
+                    return true;
                 }
-            } catch (IOException e) {
-                // Ignore exception, will be false anyway
-            } finally {
-                if (reader != null) {
-                    try {
-                        reader.close();
-                    } catch (IOException e) {
-                        // Ignore exception, no recovery possible
-                    }
+            }
+        } catch (IOException e) {
+            Log.e(TAG, "Could not read from file " + COMMAND_LIST_PATH, e);
+        } finally {
+            if (reader != null) {
+                try {
+                    reader.close();
+                } catch (IOException e) {
+                    // Ignore exception, no recovery possible
                 }
             }
         }
@@ -77,7 +80,8 @@
      * or the operation failed while reading the status; true in any other case.
      */
     public static boolean isEnabled() {
-        return FileUtils.readOneLine(COMMAND_RESULT_PATH).equals(HOVER_MODE_ENABLE + STATUS_OK);
+        return (HOVER_MODE_ENABLE + STATUS_OK).equals(
+                FileUtils.readOneLine(COMMAND_RESULT_PATH));
     }
 
     /**
@@ -88,6 +92,7 @@
      * failed; true in any other case.
      */
     public static boolean setEnabled(boolean status) {
-        return FileUtils.writeLine(COMMAND_PATH, status ? HOVER_MODE_ENABLE : HOVER_MODE_DISABLE);
+        return FileUtils.writeLine(COMMAND_PATH,
+                status ? HOVER_MODE_ENABLE : HOVER_MODE_DISABLE);
     }
 }
diff --git a/cmhw/org/cyanogenmod/hardware/VibratorHW.java b/cmhw/org/cyanogenmod/hardware/VibratorHW.java
index 3ec6b5d..8c68123 100644
--- a/cmhw/org/cyanogenmod/hardware/VibratorHW.java
+++ b/cmhw/org/cyanogenmod/hardware/VibratorHW.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 The CyanogenMod Project
+ * Copyright (C) 2013-2016 The CyanogenMod Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -16,80 +16,66 @@
 
 package org.cyanogenmod.hardware;
 
-import org.cyanogenmod.hardware.util.FileUtils;
-
-import java.io.File;
+import org.cyanogenmod.internal.util.FileUtils;
 
 public class VibratorHW {
 
-    private static String LEVEL_PATH = "/sys/class/timed_output/vibrator/pwm_value";
-    private static String LEVEL_MAX_PATH = "/sys/class/timed_output/vibrator/pwm_max";
-    private static String LEVEL_MIN_PATH = "/sys/class/timed_output/vibrator/pwm_min";
-    private static String LEVEL_DEFAULT_PATH = "/sys/class/timed_output/vibrator/pwm_default";
-    private static String LEVEL_THRESHOLD_PATH = "/sys/class/timed_output/vibrator/pwm_threshold";
+    private static final String DEFAULT_PATH = "/sys/class/timed_output/vibrator/pwm_default";
+    private static final String LEVEL_PATH = "/sys/class/timed_output/vibrator/pwm_value";
+    private static final String MAX_PATH = "/sys/class/timed_output/vibrator/pwm_max";
+    private static final String MIN_PATH = "/sys/class/timed_output/vibrator/pwm_min";
+    private static final String THRESHOLD_PATH = "/sys/class/timed_output/vibrator/pwm_threshold";
 
     public static boolean isSupported() {
-        File f = new File(LEVEL_PATH);
-        return f.exists();
+        return FileUtils.isFileWritable(LEVEL_PATH) &&
+                FileUtils.isFileReadable(LEVEL_PATH) &&
+                FileUtils.isFileReadable(DEFAULT_PATH) &&
+                FileUtils.isFileReadable(MAX_PATH) &&
+                FileUtils.isFileReadable(MIN_PATH) &&
+                FileUtils.isFileReadable(THRESHOLD_PATH);
     }
 
     public static int getMaxIntensity()  {
-        File f = new File(LEVEL_MAX_PATH);
-
-        if(f.exists()) {
-            return Integer.parseInt(FileUtils.readOneLine(LEVEL_MAX_PATH));
-        } else {
-            return 100;
+        try {
+            return Integer.parseInt(FileUtils.readOneLine(MAX_PATH));
+        } catch (NumberFormatException e) {
+            return -1;
         }
     }
 
     public static int getMinIntensity()  {
-        File f = new File(LEVEL_MIN_PATH);
-
-        if(f.exists()) {
-            return Integer.parseInt(FileUtils.readOneLine(LEVEL_MIN_PATH));
-        } else {
-            return 0;
+        try {
+            return Integer.parseInt(FileUtils.readOneLine(MIN_PATH));
+        } catch (NumberFormatException e) {
+            return -1;
         }
     }
 
     public static int getWarningThreshold()  {
-        File f = new File(LEVEL_THRESHOLD_PATH);
-
-        if(f.exists()) {
-            return Integer.parseInt(FileUtils.readOneLine(LEVEL_THRESHOLD_PATH));
-        } else {
-            return 75;
+        try {
+            return Integer.parseInt(FileUtils.readOneLine(THRESHOLD_PATH));
+        } catch (NumberFormatException e) {
+            return -1;
         }
     }
 
     public static int getCurIntensity()  {
-        File f = new File(LEVEL_PATH);
-
-        if(f.exists()) {
+        try {
             return Integer.parseInt(FileUtils.readOneLine(LEVEL_PATH));
-        } else {
-            return 0;
+        } catch (NumberFormatException e) {
+            return -1;
         }
     }
 
     public static int getDefaultIntensity()  {
-        File f = new File(LEVEL_DEFAULT_PATH);
-
-        if(f.exists()) {
-            return Integer.parseInt(FileUtils.readOneLine(LEVEL_DEFAULT_PATH));
-        } else {
-            return 50;
+        try {
+            return Integer.parseInt(FileUtils.readOneLine(DEFAULT_PATH));
+        } catch (NumberFormatException e) {
+            return -1;
         }
     }
 
     public static boolean setIntensity(int intensity)  {
-        File f = new File(LEVEL_PATH);
-
-        if(f.exists()) {
-            return FileUtils.writeLine(LEVEL_PATH, String.valueOf(intensity));
-        } else {
-            return false;
-        }
+        return FileUtils.writeLine(LEVEL_PATH, String.valueOf(intensity));
     }
 }