// Path: app/src/main/java/com/aaronjwood/portauthority/response/HostAsyncResponse.java
// public interface HostAsyncResponse extends LanHostAsyncResponse, WanHostAsyncResponse, ErrorAsyncResponse {
// }
// 
// Path: app/src/main/java/com/aaronjwood/portauthority/response/MainAsyncResponse.java
// public interface MainAsyncResponse extends ErrorAsyncResponse {
// 
//     /**
//      * Delegate to handle Host + AtomicInteger outputs
//      *
//      * @param h
//      * @param i
//      */
//     void processFinish(Host h, AtomicInteger i);
// 
//     /**
//      * Delegate to handle integer outputs
//      *
//      * @param output
//      */
//     void processFinish(int output);
// 
//     /**
//      * Delegate to handle string outputs
//      *
//      * @param output
//      */
//     void processFinish(String output);
// 
//     /**
//      * Delegate to handle boolean outputs
//      *
//      * @param output
//      */
//     void processFinish(boolean output);
// 
// }


import android.annotation.SuppressLint;
import android.content.Context;
import android.os.AsyncTask;
import com.aaronjwood.portauthority.R;
import com.aaronjwood.portauthority.response.HostAsyncResponse;
import com.aaronjwood.portauthority.response.MainAsyncResponse;
import java.io.IOException;
import java.lang.ref.WeakReference;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;
package com.aaronjwood.portauthority.async;





public class WanIpAsyncTask extends AsyncTask<Void, Void, String> {

    // IP service is 100% open source https://github.com/aaronjwood/public-ip-api
    private static final String EXTERNAL_IP_SERVICE = "https://yourip.aaronjwood.com/";
// Path: app/src/main/java/com/aaronjwood/portauthority/response/HostAsyncResponse.java
// public interface HostAsyncResponse extends LanHostAsyncResponse, WanHostAsyncResponse, ErrorAsyncResponse {
// }
// 
// Path: app/src/main/java/com/aaronjwood/portauthority/response/MainAsyncResponse.java
// public interface MainAsyncResponse extends ErrorAsyncResponse {
// 
//     /**
//      * Delegate to handle Host + AtomicInteger outputs
//      *
//      * @param h
//      * @param i
//      */
//     void processFinish(Host h, AtomicInteger i);
// 
//     /**
//      * Delegate to handle integer outputs
//      *
//      * @param output
//      */
//     void processFinish(int output);
// 
//     /**
//      * Delegate to handle string outputs
//      *
//      * @param output
//      */
//     void processFinish(String output);
// 
//     /**
//      * Delegate to handle boolean outputs
//      *
//      * @param output
//      */
//     void processFinish(boolean output);
// 
// }


// Path: app/src/main/java/com/aaronjwood/portauthority/async/WanIpAsyncTask.java
import android.annotation.SuppressLint;
import android.content.Context;
import android.os.AsyncTask;
import com.aaronjwood.portauthority.R;
import com.aaronjwood.portauthority.response.HostAsyncResponse;
import com.aaronjwood.portauthority.response.MainAsyncResponse;
import java.io.IOException;
import java.lang.ref.WeakReference;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;

package com.aaronjwood.portauthority.async;





public class WanIpAsyncTask extends AsyncTask<Void, Void, String> {

    // IP service is 100% open source https://github.com/aaronjwood/public-ip-api
    private static final String EXTERNAL_IP_SERVICE = "https://yourip.aaronjwood.com/";
    private final WeakReference<MainAsyncResponse> delegate;