Merge "Add BatteryStatusFeatureProvider" into rvc-qpr-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 44ad44d..629394a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3870,7 +3870,7 @@
<!-- Label for ethernet tether checkbox [CHAR LIMIT=NONE]-->
<string name="ethernet_tether_checkbox_text">Ethernet tethering</string>
<!-- Ethernet Tethering subtext [CHAR LIMIT=NONE]-->
- <string name="ethernet_tethering_subtext" product="default">Share phone\u2019s internet connection via USB Ethernet</string>
+ <string name="ethernet_tethering_subtext" product="default">Share phone\u2019s internet connection via Ethernet</string>
<!-- Tethering footer info [CHAR LIMIT=NONE]-->
<string name="tethering_footer_info">Use hotspot and tethering to provide internet to other devices through your mobile data connection. Apps can also create a hotspot to share content with nearby devices.</string>
diff --git a/src/com/android/settings/display/darkmode/TimeFormatter.java b/src/com/android/settings/display/darkmode/TimeFormatter.java
index 1032fe1..32ff026 100644
--- a/src/com/android/settings/display/darkmode/TimeFormatter.java
+++ b/src/com/android/settings/display/darkmode/TimeFormatter.java
@@ -18,26 +18,29 @@
import android.content.Context;
import java.time.LocalTime;
-import java.time.format.DateTimeFormatter;
-import java.util.Locale;
+import java.util.Calendar;
+import java.util.TimeZone;
/**
* Formats LocalTime to the locale time string format
*/
public class TimeFormatter {
private final Context mContext;
- private final DateTimeFormatter mFormatter;
+ private final java.text.DateFormat mFormatter;
public TimeFormatter(Context context) {
mContext = context;
- Locale locale = mContext.getResources().getConfiguration().locale;
- if (locale == null) {
- locale = Locale.getDefault();
- }
- mFormatter = DateTimeFormatter.ofPattern("hh:mm a", locale);
+ mFormatter = android.text.format.DateFormat.getTimeFormat(context);
+ mFormatter.setTimeZone(TimeZone.getTimeZone("UTC"));
}
public String of(LocalTime time) {
- return mFormatter.format(time);
+ final Calendar c = Calendar.getInstance();
+ c.setTimeZone(mFormatter.getTimeZone());
+ c.set(Calendar.HOUR_OF_DAY, time.getHour());
+ c.set(Calendar.MINUTE, time.getMinute());
+ c.set(Calendar.SECOND, 0);
+ c.set(Calendar.MILLISECOND, 0);
+ return mFormatter.format(c.getTime());
}
public boolean is24HourFormat() {
diff --git a/src/com/android/settings/wifi/WifiUtils.java b/src/com/android/settings/wifi/WifiUtils.java
index 1333ab4..2214605 100644
--- a/src/com/android/settings/wifi/WifiUtils.java
+++ b/src/com/android/settings/wifi/WifiUtils.java
@@ -23,6 +23,7 @@
import android.content.pm.PackageManager;
import android.net.NetworkCapabilities;
import android.net.wifi.ScanResult;
+import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiConfiguration;
import android.os.UserHandle;
import android.os.UserManager;
@@ -38,8 +39,6 @@
private static final int SSID_ASCII_MIN_LENGTH = 1;
private static final int SSID_ASCII_MAX_LENGTH = 32;
- private static final int PASSWORD_MIN_LENGTH = 8;
- private static final int PASSWORD_MAX_LENGTH = 63;
public static boolean isSSIDTooLong(String ssid) {
@@ -56,13 +55,17 @@
return ssid.length() < SSID_ASCII_MIN_LENGTH;
}
- public static boolean isHotspotPasswordValid(String password) {
- if (TextUtils.isEmpty(password)) {
+ /**
+ * Check if the WPA2-PSK hotspot password is valid.
+ */
+ public static boolean isHotspotWpa2PasswordValid(String password) {
+ final SoftApConfiguration.Builder configBuilder = new SoftApConfiguration.Builder();
+ try {
+ configBuilder.setPassphrase(password, SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
+ } catch (IllegalArgumentException e) {
return false;
}
-
- final int length = password.length();
- return length >= PASSWORD_MIN_LENGTH && length <= PASSWORD_MAX_LENGTH;
+ return true;
}
/**
diff --git a/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java
index a4a51dc..be67d22 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java
@@ -118,7 +118,7 @@
@Override
public boolean isTextValid(String value) {
- return WifiUtils.isHotspotPasswordValid(value);
+ return WifiUtils.isHotspotWpa2PasswordValid(value);
}
private static String generateRandomPassword() {
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiUtilsTest.java b/tests/robotests/src/com/android/settings/wifi/WifiUtilsTest.java
index 9de095d..dffd87d 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiUtilsTest.java
@@ -18,10 +18,6 @@
import static com.google.common.truth.Truth.assertThat;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-
import static org.mockito.Mockito.spy;
import android.content.Context;
@@ -30,6 +26,9 @@
import com.android.settingslib.wifi.AccessPoint;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class)
@@ -48,11 +47,12 @@
public void testPassword() {
final String longPassword = "123456789012345678901234567890"
+ "1234567890123456789012345678901234567890";
- assertThat(WifiUtils.isHotspotPasswordValid("123")).isFalse();
- assertThat(WifiUtils.isHotspotPasswordValid("12345678")).isTrue();
- assertThat(WifiUtils.isHotspotPasswordValid("1234567890")).isTrue();
- assertThat(WifiUtils.isHotspotPasswordValid(longPassword)).isFalse();
- assertThat(WifiUtils.isHotspotPasswordValid("")).isFalse();
+ assertThat(WifiUtils.isHotspotWpa2PasswordValid("123")).isFalse();
+ assertThat(WifiUtils.isHotspotWpa2PasswordValid("12345678")).isTrue();
+ assertThat(WifiUtils.isHotspotWpa2PasswordValid("1234567890")).isTrue();
+ assertThat(WifiUtils.isHotspotWpa2PasswordValid(longPassword)).isFalse();
+ assertThat(WifiUtils.isHotspotWpa2PasswordValid("")).isFalse();
+ assertThat(WifiUtils.isHotspotWpa2PasswordValid("€¥£")).isFalse();
}
@Test
@@ -73,4 +73,4 @@
public void getWifiConfigWithNullInput_ThrowIllegalArgumentException() {
WifiConfiguration config = WifiUtils.getWifiConfig(null, null, null);
}
-}
\ No newline at end of file
+}