Grundaufbau der App
[DHBWCampusApp.git] / app / src / main / java / de / dhbwloe / campusapp / fragments / WifiSettings.java
1 package de.dhbwloe.campusapp.fragments;
2
3
4 import android.annotation.TargetApi;
5 import android.net.wifi.WifiConfiguration;
6 import android.net.wifi.WifiEnterpriseConfig;
7 import android.net.wifi.WifiManager;
8 import android.os.Build;
9 import android.os.Bundle;
10 import android.support.v4.app.Fragment;
11 import android.view.LayoutInflater;
12 import android.view.View;
13 import android.view.ViewGroup;
14 import android.widget.Button;
15 import android.widget.EditText;
16
17 import java.lang.reflect.Field;
18
19 import de.dhbwloe.campusapp.CampusAppFragment;
20 import de.dhbwloe.campusapp.R;
21 import de.dhbwloe.campusapp.search.SearchIndices;
22
23 /**
24  * A simple {@link Fragment} subclass.
25  */
26 public class WifiSettings extends CampusAppFragment {
27     /* implement this for search results ;) */
28     public static SearchIndices[] GetSearchIndices() {
29         return new SearchIndices[] {
30                 new SearchIndices("WifiSettings", true) {{
31                     setUpdateTime(1);
32                     setTarget("#WifiSettings");
33                     setTitle("Wifi Settings");
34                     setDescription("WLAN Konfiguration für dieses Gerät");
35                     addKeyWord("wlan, secure, dhbw-secure, wifi, w-lan, wireless, internet, netzwerk");
36                 }},
37         };
38     }
39
40     private View view;
41
42     @Override
43     public View onCreateView(LayoutInflater inflater, ViewGroup container,
44                              Bundle savedInstanceState) {
45         view = inflater.inflate(R.layout.fragment_wifi_settings, container, false);
46         AppContext.setTitle("DHBW WLAN Settings");
47
48         Button connectBtn = (Button) view.findViewById(R.id.wifiConnectBtn);
49         connectBtn.setOnClickListener(new View.OnClickListener() {
50             @Override
51             public void onClick(View v) {
52                 Button connectBtn = (Button)v;
53                 connectBtn.setEnabled(false);
54
55                 EditText usernameEdt = (EditText) view.findViewById(R.id.wifiUsername);
56                 EditText passwordEdt = (EditText) view.findViewById(R.id.wifiPassword);
57
58                 String username = usernameEdt.getText().toString();
59                 String password = passwordEdt.getText().toString();
60
61                 if(Build.VERSION.SDK_INT < 18) {
62                     // connectToDHWiFi not supported!
63                     // do something else?
64                 }
65                 else if(username.length() > 0 && password.length() > 0)
66                     connectToDHWiFi(username, password);
67
68                 connectBtn.setEnabled(true);
69             }
70         });
71
72         return view;
73     }
74
75     @TargetApi(18)
76     private void connectToDHWiFi(String username, String password) {
77         WifiConfiguration wifiConfig = new WifiConfiguration();
78         wifiConfig.SSID = "dhbw-secure";
79         wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
80         wifiConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.IEEE8021X);
81
82         WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
83         enterpriseConfig.setIdentity(username);
84         enterpriseConfig.setPassword(password);
85         enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.PEAP);
86         enterpriseConfig.setPhase2Method(WifiEnterpriseConfig.Phase2.MSCHAPV2);
87         wifiConfig.enterpriseConfig = enterpriseConfig;
88
89         WifiManager wfm = (WifiManager)AppContext.getMainActivity().getSystemService(AppContext.getMainActivity().WIFI_SERVICE);
90
91         int networkId = wfm.addNetwork(wifiConfig);
92         wfm.enableNetwork(networkId, true);
93     }
94
95
96
97 }