Use system captive portal URL
The captive_portal_server setting is deprecated, and hard-wiring it as a string is also probably a bad idea. Since it's deprecated, this code will miss an override via the modern settings. This also hard-wired a slightly different fallback than ConnectivityService, and simply adjusting it here wouldn't stop that from happening again. It's best to just use the privileged API for obtaining the proper value. The choice of LOCAL_MAC_ADDRESS as the permission for this is a bit strange, but that's what is required, probably because a better fit didn't exist. Change-Id: I78d07d5ff96598cebf6d4ed032fe1516791836fe
This commit is contained in:
committed by
Michael Bestas
parent
d6af60c46f
commit
0ea955de20
@@ -41,6 +41,7 @@
|
||||
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
|
||||
<uses-permission android:name="lineageos.permission.HARDWARE_ABSTRACTION_ACCESS" />
|
||||
<uses-permission android:name="android.permission.BACKUP" />
|
||||
<uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS" />
|
||||
<uses-permission android:name="lineageos.permission.FINISH_SETUP" />
|
||||
<uses-permission android:name="lineageos.permission.WRITE_SETTINGS" />
|
||||
<uses-permission android:name="lineageos.permission.WRITE_SECURE_SETTINGS" />
|
||||
|
@@ -21,6 +21,7 @@
|
||||
<permission name="android.permission.CHANGE_CONFIGURATION"/>
|
||||
<permission name="android.permission.GET_ACCOUNTS_PRIVILEGED"/>
|
||||
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
|
||||
<permission name="android.permission.LOCAL_MAC_ADDRESS"/>
|
||||
<permission name="android.permission.MANAGE_USERS"/>
|
||||
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
|
||||
<permission name="android.permission.SET_TIME"/>
|
||||
|
@@ -25,7 +25,6 @@ import android.net.CaptivePortal;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.ICaptivePortal;
|
||||
import android.os.AsyncTask;
|
||||
import android.provider.Settings;
|
||||
import android.util.Log;
|
||||
|
||||
import java.io.IOException;
|
||||
@@ -38,17 +37,16 @@ public class CaptivePortalSetupActivity extends WrapperSubBaseActivity {
|
||||
|
||||
public static final String TAG = CaptivePortalSetupActivity.class.getSimpleName();
|
||||
|
||||
private static final String DEFAULT_SERVER = "clients3.google.com";
|
||||
private static final int CAPTIVE_PORTAL_SOCKET_TIMEOUT_MS = 10000;
|
||||
|
||||
private URL mCaptivePortalUrl;
|
||||
|
||||
@Override
|
||||
protected void onStartSubactivity() {
|
||||
String server = Settings.Global.getString(getContentResolver(), "captive_portal_server");
|
||||
if (server == null) server = DEFAULT_SERVER;
|
||||
ConnectivityManager connectivity = getSystemService(ConnectivityManager.class);
|
||||
|
||||
try {
|
||||
mCaptivePortalUrl = new URL("http://" + server + "/generate_204");
|
||||
mCaptivePortalUrl = new URL(connectivity.getCaptivePortalServerUrl());
|
||||
} catch (MalformedURLException e) {
|
||||
Log.e(TAG, "Not a valid url" + e);
|
||||
}
|
||||
|
Reference in New Issue
Block a user