Files
MoGoEagleEye/app2/src/main/java/com/freedom/app2/MainActivity.java
2020-12-24 20:30:54 +08:00

131 lines
5.3 KiB
Java

package com.freedom.app2;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.network.SubscribeImpl;
import com.mogo.httpdns.HttpDnsConst;
import com.mogo.httpdns.IHttpDnsCallback;
import com.mogo.httpdns.IMogoHttpDns;
import com.mogo.httpdns.MogoHttpDnsHandler;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.WorkThreadHandler;
import com.mogo.utils.network.RequestOptions;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
public class MainActivity extends AppCompatActivity {
private ApiServices apiServices;
private IMogoHttpDns httpDns;
private View send;
private View fresh;
private View fresh2;
private TextView content;
@Override
protected void onCreate( Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
send = findViewById( R.id.send );
fresh = findViewById( R.id.fresh );
fresh2 = findViewById( R.id.fresh2 );
content = findViewById( R.id.content );
httpDns = MogoHttpDnsHandler.getHttpDnsApi();
apiServices = MogoApisHandler.getInstance().getApis().getNetworkApi().create( ApiServices.class, "https://dnstest.zhidaozhixing.com" );
send.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick( View v ) {
apiServices.requestHttpDns()
.observeOn( AndroidSchedulers.mainThread() )
.subscribeOn( Schedulers.io() )
.subscribe( new SubscribeImpl< ResponseBody >( RequestOptions.create( MainActivity.this ).loading( true ) ) {
@Override
public void onSuccess( ResponseBody o ) {
super.onSuccess( o );
try {
renderResponse( o );
} catch ( Exception e ) {
content.setText( Log.getStackTraceString( e ) );
}
}
@Override
public void onError( Throwable e ) {
super.onError( e );
content.setText( Log.getStackTraceString( e ) );
}
} );
}
} );
fresh.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick( View v ) {
WorkThreadHandler.getInstance().post( new Runnable() {
@Override
public void run() {
httpDns.getHttpDnsIp( "dnstest.zhidaozhixing.com", HttpDnsConst.HTTP_DNS_ADDRESS_TYPE_HTTP, false, new IHttpDnsCallback() {
@Override
public void onParsed( @Nullable String ip ) {
StringBuilder sb = new StringBuilder( "httpDns ip:\n" );
sb.append( ip ).append( "\n" );
UiThreadHandler.post( new Runnable() {
@Override
public void run() {
content.setText( sb.toString() );
}
} );
}
} );
}
} );
}
} );
fresh2.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick( View v ) {
WorkThreadHandler.getInstance().post( new Runnable() {
@Override
public void run() {
httpDns.getHttpDnsIp( "dzt-city.zhidaozhixing.com", HttpDnsConst.HTTP_DNS_ADDRESS_TYPE_HTTP, false, new IHttpDnsCallback() {
@Override
public void onParsed( @Nullable String ip ) {
StringBuilder sb = new StringBuilder( "httpDns ip:\n" );
sb.append( ip ).append( "\n" );
UiThreadHandler.post( new Runnable() {
@Override
public void run() {
content.setText( sb.toString() );
}
} );
}
} );
}
} );
}
} );
}
private void renderResponse( ResponseBody body ) {
StringBuilder sb = new StringBuilder( "httpDns ip:\n" );
String ip = httpDns.getCachedHttpDnsIps( "dnstest.zhidaozhixing.com", HttpDnsConst.HTTP_DNS_ADDRESS_TYPE_HTTP );
sb.append( ip ).append( "\n" );
sb.append( "\nserverIp: \n" ).append( body.result.serverIp ).append( "\n" );
content.setText( sb.toString() );
}
}