Snap for 6761348 from b6a9493804 to rvc-qpr1-release

Change-Id: I606792147915c9712e943e1e81a18b764b8a5025
This commit is contained in:
android-build-team Robot
2020-08-13 23:15:47 +00:00
4 changed files with 33 additions and 27 deletions

View File

@@ -18,26 +18,29 @@ package com.android.settings.display.darkmode;
import android.content.Context; import android.content.Context;
import java.time.LocalTime; import java.time.LocalTime;
import java.time.format.DateTimeFormatter; import java.util.Calendar;
import java.util.Locale; import java.util.TimeZone;
/** /**
* Formats LocalTime to the locale time string format * Formats LocalTime to the locale time string format
*/ */
public class TimeFormatter { public class TimeFormatter {
private final Context mContext; private final Context mContext;
private final DateTimeFormatter mFormatter; private final java.text.DateFormat mFormatter;
public TimeFormatter(Context context) { public TimeFormatter(Context context) {
mContext = context; mContext = context;
Locale locale = mContext.getResources().getConfiguration().locale; mFormatter = android.text.format.DateFormat.getTimeFormat(context);
if (locale == null) { mFormatter.setTimeZone(TimeZone.getTimeZone("UTC"));
locale = Locale.getDefault();
}
mFormatter = DateTimeFormatter.ofPattern("hh:mm a", locale);
} }
public String of(LocalTime time) { 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() { public boolean is24HourFormat() {

View File

@@ -23,6 +23,7 @@ import android.content.Context;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.net.NetworkCapabilities; import android.net.NetworkCapabilities;
import android.net.wifi.ScanResult; import android.net.wifi.ScanResult;
import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiConfiguration;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
@@ -38,8 +39,6 @@ public class WifiUtils {
private static final int SSID_ASCII_MIN_LENGTH = 1; private static final int SSID_ASCII_MIN_LENGTH = 1;
private static final int SSID_ASCII_MAX_LENGTH = 32; 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) { public static boolean isSSIDTooLong(String ssid) {
@@ -56,13 +55,17 @@ public class WifiUtils {
return ssid.length() < SSID_ASCII_MIN_LENGTH; 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; return false;
} }
return true;
final int length = password.length();
return length >= PASSWORD_MIN_LENGTH && length <= PASSWORD_MAX_LENGTH;
} }
/** /**

View File

@@ -118,7 +118,7 @@ public class WifiTetherPasswordPreferenceController extends WifiTetherBasePrefer
@Override @Override
public boolean isTextValid(String value) { public boolean isTextValid(String value) {
return WifiUtils.isHotspotPasswordValid(value); return WifiUtils.isHotspotWpa2PasswordValid(value);
} }
private static String generateRandomPassword() { private static String generateRandomPassword() {

View File

@@ -18,10 +18,6 @@ package com.android.settings.wifi;
import static com.google.common.truth.Truth.assertThat; 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 static org.mockito.Mockito.spy;
import android.content.Context; import android.content.Context;
@@ -30,6 +26,9 @@ import android.os.Bundle;
import com.android.settingslib.wifi.AccessPoint; import com.android.settingslib.wifi.AccessPoint;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment; import org.robolectric.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
@@ -48,11 +47,12 @@ public class WifiUtilsTest {
public void testPassword() { public void testPassword() {
final String longPassword = "123456789012345678901234567890" final String longPassword = "123456789012345678901234567890"
+ "1234567890123456789012345678901234567890"; + "1234567890123456789012345678901234567890";
assertThat(WifiUtils.isHotspotPasswordValid("123")).isFalse(); assertThat(WifiUtils.isHotspotWpa2PasswordValid("123")).isFalse();
assertThat(WifiUtils.isHotspotPasswordValid("12345678")).isTrue(); assertThat(WifiUtils.isHotspotWpa2PasswordValid("12345678")).isTrue();
assertThat(WifiUtils.isHotspotPasswordValid("1234567890")).isTrue(); assertThat(WifiUtils.isHotspotWpa2PasswordValid("1234567890")).isTrue();
assertThat(WifiUtils.isHotspotPasswordValid(longPassword)).isFalse(); assertThat(WifiUtils.isHotspotWpa2PasswordValid(longPassword)).isFalse();
assertThat(WifiUtils.isHotspotPasswordValid("")).isFalse(); assertThat(WifiUtils.isHotspotWpa2PasswordValid("")).isFalse();
assertThat(WifiUtils.isHotspotWpa2PasswordValid("€¥£")).isFalse();
} }
@Test @Test