diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index b5ff80d..30d6fb3 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -260,17 +260,17 @@
     <item msgid="346101114322879720">"ማሳወቂያዎችን ድረስ"</item>
     <item msgid="4760681822601767255">"ካሜራ"</item>
     <item msgid="2172823594140104317">"ኦዲዮ ቅረጽ"</item>
-    <item msgid="5612873260709742213">"ድምጽ አጫውት"</item>
+    <item msgid="5612873260709742213">"ድምፅ አጫውት"</item>
     <item msgid="2027206403725749996">"ቅንጥብ መለያ አንብብ"</item>
     <item msgid="5643742956725663156">"ቅንጥብ መለያ ቀይር"</item>
     <item msgid="7362845549479684378">"የሚዲያ አዝራሮች"</item>
     <item msgid="3843484466100107397">"የድምጽ ትኩረት"</item>
-    <item msgid="617344340943430125">"ዋናው ድምጽ መቆጣጠሪያ"</item>
+    <item msgid="617344340943430125">"ዋናው ድምፅ መቆጣጠሪያ"</item>
     <item msgid="1249691739381713634">"የድምጽ መጠን"</item>
-    <item msgid="6485000384018554920">"የጥሪ ድምጽ መጠን"</item>
+    <item msgid="6485000384018554920">"የጥሪ ድምፅ መጠን"</item>
     <item msgid="3378000878531336372">"የማህደረ መረጃ መጠን"</item>
     <item msgid="5272927168355895681">"የማንቂያ ድምፅ መጠን"</item>
-    <item msgid="4422070755065530548">"የማሳወቂያ ድምጽ መጠን"</item>
+    <item msgid="4422070755065530548">"የማሳወቂያ ድምፅ መጠን"</item>
     <item msgid="3250654589277825306">"የብሉቱዝ ድምፅ መጠን"</item>
     <item msgid="4212187233638382465">"እንደነቃ አቆይ"</item>
     <item msgid="5099026183238335900">"አካባቢን ይቆጣጠሩ"</item>
@@ -327,7 +327,7 @@
     <item msgid="8267704990417682222">"ማሳወቂያዎችን ይድረሱ"</item>
     <item msgid="3180676986290096851">"ካሜራ"</item>
     <item msgid="9174072114281872917">"ኦዲዮ ቅረጽ"</item>
-    <item msgid="1444183972646890539">"ድምጽ አጫውት"</item>
+    <item msgid="1444183972646890539">"ድምፅ አጫውት"</item>
     <item msgid="4337542044275236638">"ቅንጥብ ሰሌዳ አንብብ"</item>
     <item msgid="2681224211796661809">"ቅንጥብ መለያ ቀይር"</item>
     <item msgid="4479361062226474111">"የሚዲያ አዝራሮች"</item>
@@ -337,7 +337,7 @@
     <item msgid="6749550886745567276">"የጥሪ መጠን"</item>
     <item msgid="2218685029915863168">"የማህደረ መረጃ ክፍልፍል"</item>
     <item msgid="4266577290496513640">"የማንቂያ ድምፅ መጠን"</item>
-    <item msgid="8608084169623998854">"የማሳወቂያ ድምጽ መጠን"</item>
+    <item msgid="8608084169623998854">"የማሳወቂያ ድምፅ መጠን"</item>
     <item msgid="7948784184567841794">"የብሉቱዝ ድምፅ መጠን"</item>
     <item msgid="1148968792599973150">"እንደነቃ አቆይ"</item>
     <item msgid="8482874682804856549">"አካባቢ"</item>
diff --git a/src/com/android/settings/notification/ShowOnLockScreenNotificationPreferenceController.java b/src/com/android/settings/notification/ShowOnLockScreenNotificationPreferenceController.java
index 5614e5d..1addd82 100644
--- a/src/com/android/settings/notification/ShowOnLockScreenNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/ShowOnLockScreenNotificationPreferenceController.java
@@ -157,6 +157,6 @@
 
     private boolean getLockscreenSilentNotificationsEnabled() {
         return Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 1) != 0;
+                Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS, 0) != 0;
     }
 }
diff --git a/tests/robotests/src/com/android/settings/notification/ShowOnLockscreenNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ShowOnLockscreenNotificationPreferenceControllerTest.java
index c7dfb15..567c7ff 100644
--- a/tests/robotests/src/com/android/settings/notification/ShowOnLockscreenNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ShowOnLockscreenNotificationPreferenceControllerTest.java
@@ -93,7 +93,7 @@
         assertThat(mPreference.getValue()).isEqualTo(
                 String.valueOf(R.string.lock_screen_notifs_show_none));
 
-        assertThat(mPreference.getSummary())
+        assertThat(mPreference.getSummary().toString())
                 .isEqualTo(mContext.getString(R.string.lock_screen_notifs_show_none));
     }
 
@@ -110,7 +110,7 @@
 
         assertThat(mPreference.getValue()).isEqualTo(
                 String.valueOf(R.string.lock_screen_notifs_show_alerting));
-        assertThat(mPreference.getSummary())
+        assertThat(mPreference.getSummary().toString())
                 .isEqualTo(mContext.getString(R.string.lock_screen_notifs_show_alerting));
     }
 
@@ -127,20 +127,20 @@
 
         assertThat(mPreference.getValue()).isEqualTo(
                 String.valueOf(R.string.lock_screen_notifs_show_all));
-        assertThat(mPreference.getSummary())
+        assertThat(mPreference.getSummary().toString())
                 .isEqualTo(mContext.getString(R.string.lock_screen_notifs_show_all));
     }
 
     @Test
-    public void updateState_allNotifsOnLockscreen_isDefault() {
+    public void updateState_alertingNotifsOnLockscreen_isDefault() {
         // settings don't exist
 
         mController.displayPreference(mScreen);
 
         assertThat(mPreference.getValue()).isEqualTo(
-                String.valueOf(R.string.lock_screen_notifs_show_all));
-        assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.lock_screen_notifs_show_all));
+                String.valueOf(R.string.lock_screen_notifs_show_alerting));
+        assertThat(mPreference.getSummary().toString())
+                .isEqualTo(mContext.getString(R.string.lock_screen_notifs_show_alerting));
     }
 
     @Test
