Merge "Import translations. DO NOT MERGE" into nyc-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index e683117..dedc00b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -6094,6 +6094,12 @@
     <!-- [CHAR LIMIT=40] Zen mode settings: Downtime days option value, all days set -->
     <string name="zen_mode_schedule_rule_days_all">Every day</string>
 
+    <!-- [CHAR LIMIT=60] Zen mode settings: Downtime rule setting -->
+    <string name="zen_mode_schedule_alarm_title">Alarm can override end time</string>
+
+    <!-- [CHAR LIMIT=NONE] Zen mode settings: Downtime rule setting -->
+    <string name="zen_mode_schedule_alarm_summary">Stop at the end time or next alarm, whichever comes first</string>
+
     <!-- [CHAR LIMIT=40] General divider text when concatenating multiple items in a text summary -->
     <string name="summary_divider_text">,\u0020</string>
 
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index 3b3dafe..0fbb90f 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -163,11 +163,6 @@
             android:summary="@string/wifi_allow_scan_with_traffic_summary"/>
 
        <SwitchPreference
-            android:key="legacy_dhcp_client"
-            android:title="@string/legacy_dhcp_client"
-            android:summary="@string/legacy_dhcp_client_summary"/>
-
-       <SwitchPreference
             android:key="mobile_data_always_on"
             android:title="@string/mobile_data_always_on"
             android:summary="@string/mobile_data_always_on_summary"/>
diff --git a/res/xml/zen_mode_schedule_rule_settings.xml b/res/xml/zen_mode_schedule_rule_settings.xml
index 80a9d66..6224ce1 100644
--- a/res/xml/zen_mode_schedule_rule_settings.xml
+++ b/res/xml/zen_mode_schedule_rule_settings.xml
@@ -32,6 +32,13 @@
 
     <!-- Start time/End time added and removed here! :-) -->
 
+    <!-- Exit DND mode with alarm -->
+    <SwitchPreference
+        android:key="exit_at_alarm"
+        android:title="@string/zen_mode_schedule_alarm_title"
+        android:summary="@string/zen_mode_schedule_alarm_summary"
+        android:order="99" />
+
     <!-- Zen mode -->
     <DropDownPreference
             android:key="zen_mode"
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index f33b23d..186e751 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -174,7 +174,6 @@
     private static final String WIFI_AGGRESSIVE_HANDOVER_KEY = "wifi_aggressive_handover";
     private static final String WIFI_ALLOW_SCAN_WITH_TRAFFIC_KEY = "wifi_allow_scan_with_traffic";
     private static final String USB_CONFIGURATION_KEY = "select_usb_configuration";
-    private static final String WIFI_LEGACY_DHCP_CLIENT_KEY = "legacy_dhcp_client";
     private static final String MOBILE_DATA_ALWAYS_ON = "mobile_data_always_on";
     private static final String KEY_COLOR_MODE = "color_mode";
     private static final String FORCE_RESIZABLE_KEY = "force_resizable_activities";
@@ -249,7 +248,6 @@
     private SwitchPreference mWifiDisplayCertification;
     private SwitchPreference mWifiVerboseLogging;
     private SwitchPreference mWifiAggressiveHandover;
-    private SwitchPreference mLegacyDhcpClient;
     private SwitchPreference mMobileDataAlwaysOn;
     private SwitchPreference mBluetoothDisableAbsVolume;
 
@@ -413,7 +411,6 @@
         mWifiVerboseLogging = findAndInitSwitchPref(WIFI_VERBOSE_LOGGING_KEY);
         mWifiAggressiveHandover = findAndInitSwitchPref(WIFI_AGGRESSIVE_HANDOVER_KEY);
         mWifiAllowScansWithTraffic = findAndInitSwitchPref(WIFI_ALLOW_SCAN_WITH_TRAFFIC_KEY);
-        mLegacyDhcpClient = findAndInitSwitchPref(WIFI_LEGACY_DHCP_CLIENT_KEY);
         mMobileDataAlwaysOn = findAndInitSwitchPref(MOBILE_DATA_ALWAYS_ON);
         mLogdSize = addListPreference(SELECT_LOGD_SIZE_KEY);
         mUsbConfiguration = addListPreference(USB_CONFIGURATION_KEY);
@@ -705,7 +702,6 @@
         updateWifiVerboseLoggingOptions();
         updateWifiAggressiveHandoverOptions();
         updateWifiAllowScansWithTrafficOptions();
-        updateLegacyDhcpClientOptions();
         updateMobileDataAlwaysOnOptions();
         updateSimulateColorSpace();
         updateUSBAudioOptions();
@@ -1393,18 +1389,6 @@
         mWifiManager.setAllowScansWithTraffic(mWifiAllowScansWithTraffic.isChecked() ? 1 : 0);
     }
 
-    private void updateLegacyDhcpClientOptions() {
-        updateSwitchPreference(mLegacyDhcpClient, Settings.Global.getInt(
-                getActivity().getContentResolver(),
-                Settings.Global.LEGACY_DHCP_CLIENT, 0) != 0);
-    }
-
-    private void writeLegacyDhcpClientOptions() {
-        Settings.Global.putInt(getActivity().getContentResolver(),
-                Settings.Global.LEGACY_DHCP_CLIENT,
-                mLegacyDhcpClient.isChecked() ? 1 : 0);
-    }
-
     private void updateBluetoothDisableAbsVolumeOptions() {
         updateSwitchPreference(mBluetoothDisableAbsVolume,
                 SystemProperties.getBoolean(BLUETOOTH_DISABLE_ABSOLUTE_VOLUME_PROPERTY, false));
@@ -1886,8 +1870,6 @@
             writeWifiAggressiveHandoverOptions();
         } else if (preference == mWifiAllowScansWithTraffic) {
             writeWifiAllowScansWithTrafficOptions();
-        } else if (preference == mLegacyDhcpClient) {
-            writeLegacyDhcpClientOptions();
         } else if (preference == mMobileDataAlwaysOn) {
             writeMobileDataAlwaysOnOptions();
         } else if (preference == mColorTemperaturePreference) {
diff --git a/src/com/android/settings/notification/ZenModeScheduleRuleSettings.java b/src/com/android/settings/notification/ZenModeScheduleRuleSettings.java
index 5f0fa5e..1c5027e 100644
--- a/src/com/android/settings/notification/ZenModeScheduleRuleSettings.java
+++ b/src/com/android/settings/notification/ZenModeScheduleRuleSettings.java
@@ -29,6 +29,7 @@
 import android.provider.Settings;
 import android.service.notification.ZenModeConfig;
 import android.service.notification.ZenModeConfig.ScheduleInfo;
+import android.support.v14.preference.SwitchPreference;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.Preference.OnPreferenceClickListener;
 import android.support.v7.preference.PreferenceScreen;
@@ -49,6 +50,7 @@
     private static final String KEY_DAYS = "days";
     private static final String KEY_START_TIME = "start_time";
     private static final String KEY_END_TIME = "end_time";
+    private static final String KEY_EXIT_AT_ALARM = "exit_at_alarm";
 
     public static final String ACTION = Settings.ACTION_ZEN_MODE_SCHEDULE_RULE_SETTINGS;
 
@@ -58,6 +60,7 @@
     private Preference mDays;
     private TimePickerPreference mStart;
     private TimePickerPreference mEnd;
+    private SwitchPreference mExitAtAlarm;
 
     private ScheduleInfo mSchedule;
 
@@ -137,6 +140,16 @@
         });
         root.addPreference(mEnd);
         mEnd.setDependency(mDays.getKey());
+
+        mExitAtAlarm = (SwitchPreference) root.findPreference(KEY_EXIT_AT_ALARM);
+        mExitAtAlarm.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
+            @Override
+            public boolean onPreferenceChange(Preference preference, Object o) {
+                mSchedule.exitAtAlarm = (Boolean) o;
+                updateRule(ZenModeConfig.toScheduleConditionId(mSchedule));
+                return true;
+            }
+        });
     }
 
     private void updateDays() {
@@ -181,6 +194,7 @@
         updateDays();
         mStart.setTime(mSchedule.startHour, mSchedule.startMinute);
         mEnd.setTime(mSchedule.endHour, mSchedule.endMinute);
+        mExitAtAlarm.setChecked(mSchedule.exitAtAlarm);
         updateEndSummary();
     }