Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0fc18594 authored by Michaël Burtin's avatar Michaël Burtin Committed by Steve Kondik
Browse files

Use the Hotspot driver call from WIFI HAL

Change-Id: Ie27de1c073681e92ba1602dcd40ef1aa297fd4f4
parent 21ada823
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -119,6 +119,21 @@ static jboolean android_net_wifi_unloadDriver(JNIEnv* env, jobject)
    return (jboolean)(::wifi_unload_driver() == 0);
}

static jboolean android_net_wifi_isHotspotDriverLoaded(JNIEnv* env, jobject)
{
    return (jboolean)(::is_wifi_hotspot_driver_loaded() == 1);
}

static jboolean android_net_wifi_loadHotspotDriver(JNIEnv* env, jobject)
{
    return (jboolean)(::wifi_load_hotspot_driver() == 0);
}

static jboolean android_net_wifi_unloadHotspotDriver(JNIEnv* env, jobject)
{
    return (jboolean)(::wifi_unload_hotspot_driver() == 0);
}

static jboolean android_net_wifi_startSupplicant(JNIEnv* env, jobject)
{
    return (jboolean)(::wifi_start_supplicant() == 0);
@@ -561,6 +576,9 @@ static JNINativeMethod gWifiMethods[] = {
    { "loadDriver", "()Z",  (void *)android_net_wifi_loadDriver },
    { "isDriverLoaded", "()Z",  (void *)android_net_wifi_isDriverLoaded},
    { "unloadDriver", "()Z",  (void *)android_net_wifi_unloadDriver },
    { "loadHotspotDriver", "()Z",  (void *)android_net_wifi_loadHotspotDriver },
    { "isHotspotDriverLoaded", "()Z",  (void *)android_net_wifi_isHotspotDriverLoaded},
    { "unloadHotspotDriver", "()Z",  (void *)android_net_wifi_unloadHotspotDriver },
    { "startSupplicant", "()Z",  (void *)android_net_wifi_startSupplicant },
    { "startP2pSupplicant", "()Z",  (void *)android_net_wifi_startP2pSupplicant },
    { "stopSupplicant", "()Z", (void*) android_net_wifi_stopSupplicant },
+6 −0
Original line number Diff line number Diff line
@@ -58,6 +58,12 @@ public class WifiNative {

    public native static boolean unloadDriver();

    public native static boolean loadHotspotDriver();

    public native static boolean isHotspotDriverLoaded();

    public native static boolean unloadHotspotDriver();

    public native static boolean startSupplicant();

    public native static boolean startP2pSupplicant();
+41 −41
Original line number Diff line number Diff line
@@ -1954,27 +1954,27 @@ public class WifiStateMachine extends StateMachine {
                    switch(message.arg1) {
                        case WIFI_STATE_ENABLING:
                            setWifiState(WIFI_STATE_ENABLING);
                            break;
                        case WIFI_AP_STATE_ENABLING:
                            setWifiApState(WIFI_AP_STATE_ENABLING);
                            break;
                    }

                            if(WifiNative.loadDriver()) {
                                if (DBG) log("Driver load successful");
                                sendMessage(CMD_LOAD_DRIVER_SUCCESS);
                            } else {
                        loge("Failed to load driver!");
                        switch(message.arg1) {
                            case WIFI_STATE_ENABLING:
                                if (DBG) log("Failed to load driver!");
                                setWifiState(WIFI_STATE_UNKNOWN);
                                sendMessage(CMD_LOAD_DRIVER_FAILURE);
                            }
                            break;
                        case WIFI_AP_STATE_ENABLING:
                                setWifiApState(WIFI_AP_STATE_FAILED);
                                break;
                        }
                            setWifiApState(WIFI_AP_STATE_ENABLING);
                            if(WifiNative.loadHotspotDriver()) {
                                if (DBG) log("Hotspot driver load successful");
                                sendMessage(CMD_LOAD_DRIVER_SUCCESS);
                            } else {
                                if (DBG) log("Failed to load Hotspot driver!");
                                setWifiState(WIFI_AP_STATE_FAILED);
                                sendMessage(CMD_LOAD_DRIVER_FAILURE);
                            }
                            break;
                    }
                    mWakeLock.release();
                }
            }).start();
@@ -2080,35 +2080,35 @@ public class WifiStateMachine extends StateMachine {
                public void run() {
                    if (DBG) log(getName() + message.toString() + "\n");
                    mWakeLock.acquire();
                    if(WifiNative.unloadDriver()) {
                        if (DBG) log("Driver unload successful");
                        sendMessage(CMD_UNLOAD_DRIVER_SUCCESS);

                    switch(message.arg1) {
                        case WIFI_STATE_DISABLED:
                        case WIFI_STATE_UNKNOWN:
                            if(WifiNative.unloadDriver()) {
                                if (DBG) log("Driver unload successful");
                                sendMessage(CMD_UNLOAD_DRIVER_SUCCESS);
                                setWifiState(message.arg1);
                                break;
                            case WIFI_AP_STATE_DISABLED:
                            case WIFI_AP_STATE_FAILED:
                                setWifiApState(message.arg1);
                                break;
                        }
                            } else {
                                loge("Failed to unload driver!");
                                sendMessage(CMD_UNLOAD_DRIVER_FAILURE);

                        switch(message.arg1) {
                            case WIFI_STATE_DISABLED:
                            case WIFI_STATE_UNKNOWN:
                                setWifiState(WIFI_STATE_UNKNOWN);
                            }

                            setWifiState(message.arg1);
                            break;
                        case WIFI_AP_STATE_DISABLED:
                        case WIFI_AP_STATE_FAILED:
                            if(WifiNative.unloadHotspotDriver()) {
                                if (DBG) log("Hotspot driver unload successful");
                                sendMessage(CMD_UNLOAD_DRIVER_SUCCESS);
                                setWifiApState(message.arg1);
                            } else {
                                loge("Failed to unload hotspot driver!");
                                sendMessage(CMD_UNLOAD_DRIVER_FAILURE);
                                setWifiApState(WIFI_AP_STATE_FAILED);
                                break;
                            }
                            break;
                    }

                    mWakeLock.release();
                }
            }).start();