Skip to content

Commit 1e1be67

Browse files
committed
[fixme] receiver
1 parent 211d9cd commit 1e1be67

File tree

3 files changed

+65
-51
lines changed

3 files changed

+65
-51
lines changed

app/src/main/java/osc/dtuwifi/MainActivity.java

+14-38
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,15 @@
11
package osc.dtuwifi;
22

3-
import android.net.http.SslError;
3+
import android.content.SharedPreferences;
44
import android.os.Bundle;
5+
import android.preference.PreferenceManager;
56
import android.support.v7.app.AppCompatActivity;
6-
import android.util.Log;
77
import android.view.Menu;
88
import android.view.MenuItem;
99
import android.view.View;
10-
import android.webkit.SslErrorHandler;
11-
import android.webkit.WebChromeClient;
12-
import android.webkit.WebResourceError;
13-
import android.webkit.WebResourceRequest;
14-
import android.webkit.WebView;
15-
import android.webkit.WebViewClient;
1610
import android.widget.Button;
1711
import android.widget.EditText;
12+
import android.widget.Toast;
1813

1914
public class MainActivity extends AppCompatActivity {
2015

@@ -25,44 +20,25 @@ protected void onCreate(Bundle savedInstanceState) {
2520
super.onCreate(savedInstanceState);
2621
setContentView(R.layout.activity_main);
2722

28-
final WebView webView = (WebView) findViewById(R.id.webView);
2923
final EditText username = (EditText) findViewById(R.id.username);
3024
final EditText password = (EditText) findViewById(R.id.password);
3125
Button submit = (Button) findViewById(R.id.submit);
3226

33-
webView.setWebViewClient(new WebViewClient() {
34-
@Override
35-
public void onPageFinished(WebView view, String url) {
36-
super.onPageFinished(view, url);
37-
Log.d(TAG, url);
38-
}
39-
40-
@Override
41-
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
42-
super.onReceivedError(view, request, error);
43-
Log.d(TAG, "Error : " + error.getErrorCode() + "");
44-
}
45-
46-
@Override
47-
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
48-
handler.proceed();
49-
Log.d(TAG, "SSL Error : " + error.toString());
50-
}
51-
});
52-
webView.setWebChromeClient(new WebChromeClient());
53-
webView.getSettings().setJavaScriptEnabled(true);
54-
webView.getSettings().setAppCacheEnabled(true);
55-
webView.getSettings().setDomStorageEnabled(true);
56-
webView.loadUrl("https://10.50.0.100/connect/PortalMain");
27+
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
28+
final SharedPreferences.Editor editor = preferences.edit();
5729

5830
submit.setOnClickListener(new View.OnClickListener() {
5931
@Override
6032
public void onClick(View view) {
61-
webView.loadUrl("javascript: {" +
62-
"document.getElementById('LoginUserPassword_auth_username').value = '" + username.getText().toString() + "';" +
63-
"document.getElementById('LoginUserPassword_auth_password').value = '" + password.getText().toString() + "';" +
64-
"var button = document.getElementById('UserCheck_Login_Button');" +
65-
"button.click(); };");
33+
if(username.getText().toString().trim().equals(""))
34+
Toast.makeText(MainActivity.this, "Please enter username", Toast.LENGTH_SHORT).show();
35+
else if(password.getText().toString().trim().equals(""))
36+
Toast.makeText(MainActivity.this, "Please enter username", Toast.LENGTH_SHORT).show();
37+
else{
38+
editor.putString("username", username.getText().toString());
39+
editor.putString("password", password.getText().toString());
40+
editor.apply();
41+
}
6642
}
6743
});
6844

Original file line numberDiff line numberDiff line change
@@ -1,26 +1,72 @@
11
package osc.dtuwifi;
22

3+
import android.annotation.SuppressLint;
34
import android.content.BroadcastReceiver;
45
import android.content.Context;
56
import android.content.Intent;
7+
import android.content.SharedPreferences;
68
import android.net.NetworkInfo;
9+
import android.net.http.SslError;
710
import android.net.wifi.WifiManager;
11+
import android.preference.PreferenceManager;
812
import android.util.Log;
13+
import android.webkit.SslErrorHandler;
14+
import android.webkit.WebChromeClient;
15+
import android.webkit.WebView;
16+
import android.webkit.WebViewClient;
917

1018
public class WiFiReceiver extends BroadcastReceiver {
1119

1220
public static final String TAG = "WiFiReceiver";
21+
private WebView webView;
1322

1423
public WiFiReceiver() {
1524
}
1625

26+
@SuppressLint("SetJavaScriptEnabled")
1727
@Override
18-
public void onReceive(Context context, Intent intent) {
28+
public void onReceive(final Context context, Intent intent) {
1929
NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
20-
if(info != null && info.isConnected()) {
21-
WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
22-
String ssid = wifiManager.getConnectionInfo().getSSID();
23-
Log.d(TAG, ssid);
30+
if(info != null && info.isConnected() && info.getExtraInfo().equals("\"DTU-WiFI\"")) {
31+
//FIXME : this block gets executed twice
32+
webView = new WebView(context);
33+
webView.setWebViewClient(new WebViewClient() {
34+
@Override
35+
public void onPageFinished(WebView view, String url) {
36+
super.onPageFinished(view, url);
37+
Log.d(TAG, "Page finished : " + url);
38+
if(url.equals("https://10.50.0.100/connect/PortalMain")){
39+
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
40+
String username = preferences.getString("username", null);
41+
String password = preferences.getString("password", null);
42+
if(username != null && password != null){
43+
Log.d(TAG, "Logging in..");
44+
webView.loadUrl("javascript: {" +
45+
"document.getElementById('LoginUserPassword_auth_username').value = '" + username + "';" +
46+
"document.getElementById('LoginUserPassword_auth_password').value = '" + password + "';" +
47+
"var button = document.getElementById('UserCheck_Login_Button');" +
48+
"button.click(); };");
49+
}
50+
}
51+
}
52+
53+
@Override
54+
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
55+
handler.proceed();
56+
Log.d(TAG, "SSL Error : " + error.toString());
57+
}
58+
59+
@Override
60+
public boolean shouldOverrideUrlLoading(WebView view, String url) {
61+
Log.d(TAG, "Page loaded : " + url);
62+
return super.shouldOverrideUrlLoading(view, url);
63+
}
64+
});
65+
webView.setWebChromeClient(new WebChromeClient());
66+
webView.getSettings().setJavaScriptEnabled(true);
67+
webView.getSettings().setAppCacheEnabled(true);
68+
webView.getSettings().setDomStorageEnabled(true);
69+
webView.loadUrl("https://10.50.0.100/connect/PortalMain");
2470
}
2571
}
2672
}

app/src/main/res/layout/activity_main.xml

-8
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,4 @@
3939
android:layout_marginTop="70dp"
4040
android:text="Submit" />
4141

42-
<WebView
43-
android:id="@+id/webView"
44-
android:layout_width="match_parent"
45-
android:layout_height="100dp"
46-
android:layout_alignParentLeft="true"
47-
android:layout_alignParentStart="true"
48-
android:layout_alignParentTop="true"
49-
android:visibility="visible" />
5042
</RelativeLayout>

0 commit comments

Comments
 (0)