diff --git a/res/values/strings.xml b/res/values/strings.xml
index 01aee0c..54e5fe2 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -385,6 +385,11 @@
     <!-- Settings summary for the powersave feature. -->
     <string name ="pref_powersave_enabled_summary">Turn on power saving mode</string>
 
+    <!-- Checkbox setting for enabling/disabling night mode feature -->
+    <string name ="pref_nightmode_enabled">Night mode</string>
+    <!-- Settings summary for the night mode feature. -->
+    <string name ="pref_nightmode_enabled_summary">Turn on night mode</string>
+
     <!-- Checkbox setting for enabling/disabling the form AutoFill feature [CHAR-LIMIT=32] -->
     <string name="pref_autofill_enabled">Form auto-fill</string>
     <!-- Settings summary for the form AutoFill feature. [CHAR-LIMIT=none] -->
diff --git a/res/xml/general_preferences.xml b/res/xml/general_preferences.xml
index abd7b73..816503b 100644
--- a/res/xml/general_preferences.xml
+++ b/res/xml/general_preferences.xml
@@ -43,6 +43,12 @@
             android:title="@string/pref_powersave_enabled" />
 
         <CheckBoxPreference
+            android:defaultValue="false"
+            android:key="nightmode_enabled"
+            android:summary="@string/pref_nightmode_enabled_summary"
+            android:title="@string/pref_nightmode_enabled" />
+
+        <CheckBoxPreference
             android:key="autofill_enabled"
             android:title="@string/pref_autofill_enabled"
             android:summary="@string/pref_autofill_enabled_summary"
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index a60a109..4a138c1 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -270,6 +270,7 @@
         settings.setSaveFormData(saveFormdata());
         settings.setUseWideViewPort(isWideViewport());
         settings.setDoNotTrack(doNotTrack());
+        settings.setNightModeEnabled(isNightModeEnabled());
         settings.setMediaPlaybackRequiresUserGesture(false);
 
         WebSettings settingsClassic = (WebSettings) settings;
@@ -821,6 +822,14 @@
         mPrefs.edit().putBoolean(PREF_WEB_REFINER_ENABLED, value).apply();
     }
 
+    public boolean isNightModeEnabled() {
+        return mPrefs.getBoolean(PREF_NIGHTMODE_ENABLED, false);
+    }
+
+    public void setNightModeEnabled(boolean value) {
+        mPrefs.edit().putBoolean(PREF_NIGHTMODE_ENABLED, value).apply();
+    }
+
     // -----------------------------
     // getter/setters for debug_preferences.xml
     // -----------------------------
diff --git a/src/com/android/browser/PreferenceKeys.java b/src/com/android/browser/PreferenceKeys.java
index ab11940..99e5f1c 100644
--- a/src/com/android/browser/PreferenceKeys.java
+++ b/src/com/android/browser/PreferenceKeys.java
@@ -62,6 +62,7 @@
     static final String PREF_WEB_REFINER_ENABLED = "web_refiner_enabled";
     static final String PREF_HOMEPAGE = "homepage";
     static final String PREF_POWERSAVE_ENABLED = "powersave_enabled";
+    static final String PREF_NIGHTMODE_ENABLED = "nightmode_enabled";
     static final String PREF_SYNC_WITH_CHROME = "sync_with_chrome";
 
     // ----------------------
