Merge "Import translations. DO NOT MERGE" into oc-dr1-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 0c4e25b..10ec779 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -2422,7 +2422,7 @@
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
- android:value="com.android.settings.DreamSettings" />
+ android:value="com.android.settings.dream.DreamSettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ec21ff8..100d295 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -7166,6 +7166,9 @@
<!-- [CHAR LIMIT=50] Zen mode settings: Alarms option -->
<string name="zen_mode_alarms">Alarms</string>
+ <!-- [CHAR LIMIT=50] Zen mode settings: Alarms option summary -->
+ <string name="zen_mode_alarms_summary">Alarms are always a priority and make sound</string>
+
<!-- [CHAR LIMIT=50] Zen mode settings: Reminders option -->
<string name="zen_mode_reminders">Reminders</string>
diff --git a/res/xml/zen_mode_priority_settings.xml b/res/xml/zen_mode_priority_settings.xml
index e2b8f48..e4f8f5e 100644
--- a/res/xml/zen_mode_priority_settings.xml
+++ b/res/xml/zen_mode_priority_settings.xml
@@ -19,13 +19,6 @@
android:key="zen_mode_priority_settings"
android:title="@string/zen_mode_priority_settings_title" >
- <!-- Alarms -->
- <SwitchPreference
- android:key="alarms"
- android:title="@string/zen_mode_alarms"
- android:enabled="false"
- android:defaultValue="true"/>
-
<!-- Reminders -->
<SwitchPreference
android:key="reminders"
@@ -36,6 +29,14 @@
android:key="events"
android:title="@string/zen_mode_events"/>
+ <!-- Alarms -->
+ <SwitchPreference
+ android:key="alarms"
+ android:title="@string/zen_mode_alarms"
+ android:summary="@string/zen_mode_alarms_summary"
+ android:enabled="false"
+ android:defaultValue="true"/>
+
<!-- Messages -->
<DropDownPreference
android:key="messages"
diff --git a/src/com/android/settings/ApnEditor.java b/src/com/android/settings/ApnEditor.java
index ba160ab..196fec8 100644
--- a/src/com/android/settings/ApnEditor.java
+++ b/src/com/android/settings/ApnEditor.java
@@ -147,7 +147,8 @@
Telephony.Carriers.ROAMING_PROTOCOL, // 20
Telephony.Carriers.MVNO_TYPE, // 21
Telephony.Carriers.MVNO_MATCH_DATA, // 22
- Telephony.Carriers.EDITED // 23
+ Telephony.Carriers.EDITED, // 23
+ Telephony.Carriers.USER_EDITABLE //24
};
private static final int ID_INDEX = 0;
@@ -173,6 +174,7 @@
private static final int MVNO_TYPE_INDEX = 21;
private static final int MVNO_MATCH_DATA_INDEX = 22;
private static final int EDITED_INDEX = 23;
+ private static final int USER_EDITABLE_INDEX = 24;
@Override
@@ -284,7 +286,8 @@
Log.d(TAG, "onCreate: EDITED " + mCursor.getInt(EDITED_INDEX));
// if it's not a USER_EDITED apn, check if it's read-only
if (mCursor.getInt(EDITED_INDEX) != Telephony.Carriers.USER_EDITED &&
- apnTypesMatch(mReadOnlyApnTypes, mCursor.getString(TYPE_INDEX))) {
+ (mCursor.getInt(USER_EDITABLE_INDEX) == 0 ||
+ apnTypesMatch(mReadOnlyApnTypes, mCursor.getString(TYPE_INDEX)))) {
Log.d(TAG, "onCreate: apnTypesMatch; read-only APN");
mReadOnlyApn = true;
disableAllFields();
diff --git a/src/com/android/settings/display/BrightnessLevelPreferenceController.java b/src/com/android/settings/display/BrightnessLevelPreferenceController.java
index 3436d2d..a8ad8c6 100644
--- a/src/com/android/settings/display/BrightnessLevelPreferenceController.java
+++ b/src/com/android/settings/display/BrightnessLevelPreferenceController.java
@@ -142,7 +142,7 @@
final float value = Settings.System.getFloat(mContentResolver,
System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0);
// auto brightness is between -1 and 1
- return ((value + 1)) / 2;
+ return getPercentage(value, -1, 1);
}
final double value = Settings.System.getInt(mContentResolver, System.SCREEN_BRIGHTNESS,
mMinBrightness);
@@ -150,6 +150,12 @@
}
private double getPercentage(double value, int min, int max) {
+ if (value > max) {
+ return 1.0;
+ }
+ if (value < min) {
+ return 0.0;
+ }
return (value - min) / (max - min);
}
diff --git a/src/com/android/settings/notification/ZenModeSettings.java b/src/com/android/settings/notification/ZenModeSettings.java
index 5e815f8..59e588d 100644
--- a/src/com/android/settings/notification/ZenModeSettings.java
+++ b/src/com/android/settings/notification/ZenModeSettings.java
@@ -358,10 +358,10 @@
String getPrioritySettingSummary(Policy policy) {
String s = mContext.getString(R.string.zen_mode_alarms);
- s = append(s, isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_REMINDERS),
+ s = prepend(s, isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_EVENTS),
+ R.string.zen_mode_events);
+ s = prepend(s, isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_REMINDERS),
R.string.zen_mode_reminders);
- s = append(s, isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_EVENTS),
- R.string.zen_mode_events);
if (isCategoryEnabled(policy, Policy.PRIORITY_CATEGORY_MESSAGES)) {
if (policy.priorityMessageSenders == Policy.PRIORITY_SENDERS_ANY) {
s = append(s, true, R.string.zen_mode_all_messages);
@@ -426,6 +426,15 @@
return s;
}
+ @VisibleForTesting
+ String prepend(String s, boolean condition, int resId) {
+ if (condition) {
+ return mContext.getString(
+ R.string.join_many_items_middle, mContext.getString(resId), s);
+ }
+ return s;
+ }
+
private boolean isCategoryEnabled(Policy policy, int categoryType) {
return (policy.priorityCategories & categoryType) != 0;
}
diff --git a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
index 378b054..d35adef 100644
--- a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
@@ -19,6 +19,7 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -130,7 +131,7 @@
}
@Test
- public void updateState_autoBrightness_shouldSetSummaryToVrBrightness() {
+ public void updateState_autoBrightness_shouldSetSummaryToAutoBrightness() {
doReturn(false).when(mController).isInVrMode();
System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
@@ -143,7 +144,7 @@
}
@Test
- public void updateState_manualBrightness_shouldSetSummaryToVrBrightness() {
+ public void updateState_manualBrightness_shouldSetSummaryToScreenBrightness() {
doReturn(false).when(mController).isInVrMode();
System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
System.SCREEN_BRIGHTNESS_MODE_MANUAL);
@@ -154,4 +155,45 @@
verify(mPreference).setSummary("45%");
}
+
+ @Test
+ public void updateState_brightnessOutOfRange_shouldSetSummaryInRange() {
+ // VR mode
+ doReturn(true).when(mController).isInVrMode();
+
+ System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR, 105);
+ mController.updateState(mPreference);
+ verify(mPreference).setSummary("100%");
+
+ System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR, -20);
+ mController.updateState(mPreference);
+ verify(mPreference).setSummary("0%");
+
+ // Auto mode
+ doReturn(false).when(mController).isInVrMode();
+ System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
+ System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
+
+ reset(mPreference);
+ System.putFloat(mContentResolver, System.SCREEN_AUTO_BRIGHTNESS_ADJ, 1.5f);
+ mController.updateState(mPreference);
+ verify(mPreference).setSummary("100%");
+
+ System.putFloat(mContentResolver, System.SCREEN_AUTO_BRIGHTNESS_ADJ, -1.5f);
+ mController.updateState(mPreference);
+ verify(mPreference).setSummary("0%");
+
+ // Manual mode
+ System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
+ System.SCREEN_BRIGHTNESS_MODE_MANUAL);
+
+ reset(mPreference);
+ System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS, 115);
+ mController.updateState(mPreference);
+ verify(mPreference).setSummary("100%");
+
+ System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS, -10);
+ mController.updateState(mPreference);
+ verify(mPreference).setSummary("0%");
+ }
}
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java
index 8ac482b..716e2b2 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeSettingsTest.java
@@ -16,6 +16,7 @@
package com.android.settings.notification;
+import android.app.NotificationManager;
import android.content.Context;
import com.android.settings.R;
@@ -30,6 +31,8 @@
import static com.google.common.truth.Truth.assertThat;
+import static junit.framework.Assert.assertTrue;
+
@RunWith(SettingsRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class ZenModeSettingsTest {
@@ -60,6 +63,38 @@
final String result = mBuilder.append(original, true, R.string.zen_mode_alarms);
assertThat(result).contains(alarm);
+ assertThat(result).contains(original);
+ assertTrue(result.indexOf(original) < result.indexOf(alarm));
+ }
+
+ @Test
+ public void testPrepend() {
+ String original = mContext.getString(R.string.zen_mode_alarms);
+ String reminders = mContext.getString(R.string.zen_mode_reminders);
+
+ final String result = mBuilder.prepend(original, true, R.string.zen_mode_reminders);
+ assertThat(result).contains(original);
+ assertThat(result).contains(reminders);
+ assertTrue(result.indexOf(reminders) < result.indexOf(original));
+ }
+
+ @Test
+ public void testGetPrioritySettingSummary_sameOrderAsTargetPage() {
+ NotificationManager.Policy policy = new NotificationManager.Policy(
+ NotificationManager.Policy.PRIORITY_CATEGORY_EVENTS
+ | NotificationManager.Policy.PRIORITY_CATEGORY_REMINDERS,
+ 0, 0);
+ final String result = mBuilder.getPrioritySettingSummary(policy);
+
+ String alarms = mContext.getString(R.string.zen_mode_alarms);
+ String reminders = mContext.getString(R.string.zen_mode_reminders);
+ String events = mContext.getString(R.string.zen_mode_events);
+
+ assertThat(result).contains(alarms);
+ assertThat(result).contains(reminders);
+ assertThat(result).contains(events);
+ assertTrue(result.indexOf(reminders) < result.indexOf(events) &&
+ result.indexOf(events) < result.indexOf(alarms));
}
}
diff --git a/tests/unit/src/com/android/settings/dream/DreamSettingsLaunchTest.java b/tests/unit/src/com/android/settings/dream/DreamSettingsLaunchTest.java
new file mode 100644
index 0000000..497fa0a
--- /dev/null
+++ b/tests/unit/src/com/android/settings/dream/DreamSettingsLaunchTest.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2017 The Android Open Source 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.android.settings.dream;
+
+import android.content.Context;
+import android.content.Intent;
+import android.provider.Settings;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public class DreamSettingsLaunchTest {
+
+ @Test
+ public void launchFromIntent_doesNotCrash() {
+ final Context context = InstrumentationRegistry.getTargetContext();
+ Intent intent = new Intent(Settings.ACTION_DREAM_SETTINGS);
+
+ context.startActivity(intent);
+ }
+}