diff --git a/app/src/main/java/com/ydd/sportfaceid/config/GlobalConfig.java b/app/src/main/java/com/ydd/sportfaceid/config/GlobalConfig.java deleted file mode 100644 index b37f090..0000000 --- a/app/src/main/java/com/ydd/sportfaceid/config/GlobalConfig.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.ydd.sportfaceid.config; - - -/** - * 全局配置常量 - * - * @author peakren - * @date 05/12/2017 10:29 PM - */ - -public class GlobalConfig { - - /** - * 与服务器通讯状态 - */ - public static boolean isConnected = false; - -} diff --git a/app/src/main/java/com/ydd/sportfaceid/netty/ClientHandler.java b/app/src/main/java/com/ydd/sportfaceid/netty/ClientHandler.java index d1c2805..ff6caa3 100644 --- a/app/src/main/java/com/ydd/sportfaceid/netty/ClientHandler.java +++ b/app/src/main/java/com/ydd/sportfaceid/netty/ClientHandler.java @@ -3,6 +3,7 @@ package com.ydd.sportfaceid.netty; import android.app.Activity; import android.util.Log; +import com.ydd.sportfaceid.config.SDAppConfig; import com.ydd.sportfaceid.netty.message.DeviceType; import com.ydd.sportfaceid.netty.message.HeartBeat; import com.ydd.sportfaceid.netty.message.MessageDTO; @@ -85,8 +86,8 @@ public class ClientHandler extends SimpleChannelInboundHandler { private HeartBeat getHbMessage() { HeartBeat hb = new HeartBeat(); hb.setDeviceName(DeviceIdUtil.generateDeviceId(mContext)); - hb.setVenueId(mContext.getTaskId()); // TODO 从上下文选择场馆 - hb.setEnterOrOut(DeviceType.ENTER); // TODO 上下文获取场馆进场或者出场 + hb.setVenueId(SDAppConfig.getInstance().getVenueId()); + hb.setEnterOrOut(SDAppConfig.getInstance().getDeviceType()); return hb; } diff --git a/app/src/main/java/com/ydd/sportfaceid/netty/ClientThread.java b/app/src/main/java/com/ydd/sportfaceid/netty/ClientThread.java index 39f7fb1..ee1b3e4 100644 --- a/app/src/main/java/com/ydd/sportfaceid/netty/ClientThread.java +++ b/app/src/main/java/com/ydd/sportfaceid/netty/ClientThread.java @@ -4,7 +4,6 @@ import android.app.Activity; import android.util.Log; import com.ydd.sportfaceid.BuildConfig; -import com.ydd.sportfaceid.config.GlobalConfig; import com.ydd.sportfaceid.event.MessageEvent; import com.ydd.sportfaceid.utils.SharedPreferencesUtil; @@ -33,16 +32,14 @@ import io.netty.channel.socket.nio.NioSocketChannel; */ public class ClientThread { - private final static String TAG = "sander"; + private final static String TAG = "ClientThread"; private static ClientThread instance; - private volatile EventLoopGroup workerGroup; private volatile Bootstrap bootstrap; private volatile boolean closed = false; private String remoteHost; private int remotePort; - private Activity mContext; private ChannelFuture future; @@ -65,74 +62,42 @@ public class ClientThread { } public void run() { - - closed = false; workerGroup = new NioEventLoopGroup(); bootstrap = new Bootstrap(); bootstrap.group(workerGroup); bootstrap.channel(NioSocketChannel.class); bootstrap.option(ChannelOption.TCP_NODELAY, true); bootstrap.option(ChannelOption.SO_KEEPALIVE, true); - ReConnectHandler reConnectHandler = new ReConnectHandler(); ClientHandler dmClientHandler = new ClientHandler(mContext); ClientInitializer channelInitializer = new ClientInitializer(reConnectHandler, dmClientHandler); - bootstrap.handler(channelInitializer); doConnect(); } - public void clearFuture(){ - future = null; - } - public void doConnect() { Log.d("sander","现在开始链接了"); - if (closed) { - return; - } remoteHost = SharedPreferencesUtil.getServerIp(); remotePort = SharedPreferencesUtil.getServerPort(); - if (GlobalConfig.isConnected){ - return; - } Log.d("sander", "连接 = " + remoteHost + " " + remotePort); future = bootstrap.connect(new InetSocketAddress(remoteHost, remotePort)); future.addListener((ChannelFutureListener) f -> f.channel().eventLoop().schedule(() -> { if (!f.isSuccess()) { - if (GlobalConfig.isConnected) { - GlobalConfig.isConnected = false; - } doConnect(); EventBus.getDefault().post(new MessageEvent("等待连接")); Log.e(TAG, "连接失败!"); } else { EventBus.getDefault().post(new MessageEvent("已连接")); Log.i(TAG, "连接成功!"); - GlobalConfig.isConnected = true; } }, 2, TimeUnit.SECONDS)); } - public void setContext(Activity context) { mContext = context; } - - public void close() { - closed = true; - workerGroup.shutdownGracefully(); - } - - public void restart() { - this.remoteHost = SharedPreferencesUtil.getServerIp(); - this.remotePort = SharedPreferencesUtil.getServerPort(); - close(); - run(); - } - @ChannelHandler.Sharable public class ReConnectHandler extends ChannelInboundHandlerAdapter { @Override diff --git a/app/src/main/java/com/ydd/sportfaceid/setting/SDSettingActivity.java b/app/src/main/java/com/ydd/sportfaceid/setting/SDSettingActivity.java index b097970..aa82530 100644 --- a/app/src/main/java/com/ydd/sportfaceid/setting/SDSettingActivity.java +++ b/app/src/main/java/com/ydd/sportfaceid/setting/SDSettingActivity.java @@ -4,6 +4,7 @@ import android.os.Bundle; import android.view.View; import android.widget.TextView; +import android.widget.Toast; import com.ydd.sportfaceid.R; import com.ydd.sportfaceid.config.SDAppConfig; import com.ydd.sportfaceid.main.SDBaseActivity; @@ -31,6 +32,8 @@ public class SDSettingActivity extends SDBaseActivity { Integer venueId = Integer.parseInt(venue_cell.getText().toString()); DeviceType deviceType = DeviceType.valueOf(device_type_cell.getText().toString()); SDAppConfig.getInstance().configSet(venueId,deviceType); + showToast("设置成功!"); + onGoToMainAction(); } public void onGoToMainAction(){ diff --git a/app/src/main/java/com/ydd/sportfaceid/view/SDGustInfoView.java b/app/src/main/java/com/ydd/sportfaceid/view/SDGustInfoView.java index cf14e17..e8a7cd8 100644 --- a/app/src/main/java/com/ydd/sportfaceid/view/SDGustInfoView.java +++ b/app/src/main/java/com/ydd/sportfaceid/view/SDGustInfoView.java @@ -70,13 +70,9 @@ public class SDGustInfoView extends RelativeLayout { mTimerOutput.schedule(new TimerTask() { @Override public void run() { //定时器,更新日志 - Observable.create(new Observable.OnSubscribe() { - - @Override - public void call(Subscriber subscriber) { - subscriber.onNext(null); - subscriber.onCompleted(); - } + Observable.create(subscriber -> { + subscriber.onNext(null); + subscriber.onCompleted(); }).subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber() {