完成请求数据获取下拉框的问题

This commit is contained in:
limqhz
2020-07-30 01:07:25 +08:00
parent 2de9851aa2
commit e1ace424fe
12 changed files with 181 additions and 87 deletions

View File

@@ -46,21 +46,15 @@ android {
/**
* 服务器连接
*/
buildConfigField("String", "SERVER_IP", "\"120.27.209.4\"")
buildConfigField("String", "SERVER_PORT", "\"56791\"")
// buildConfigField("String", "SERVER_IP", "\"192.168.1.200\"")
// buildConfigField("String", "SERVER_PORT", "\"56794\"")
/**
* face++连接地址
*/
buildConfigField("String", "FACEID_WS_URL", "\"ws://192.168.1.111:9000/video?url=\"")
// buildConfigField("String", "SERVER_IP", "\"120.27.209.4\"")
// buildConfigField("String", "SERVER_PORT", "\"56792\"")
buildConfigField("String", "SERVER_IP", "\"127.0.0.1\"")
buildConfigField("String", "SERVER_PORT", "\"56792\"")
/**
* 门禁连接地址
*/
buildConfigField("String", "DOOR_SERVER_IP", "\"192.168.1.150\"")
buildConfigField("String", "DOOR_SERVER_PORT", "\"8000\"")
buildConfigField("String", "DOOR_SN", "\"MC-5824T28085603\"")
buildConfigField("String", "DOOR_PWD", "\"FFFFFFFF\"")
}

View File

@@ -2,6 +2,7 @@ package com.ydd.sportfaceid;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.widget.ContentLoadingProgressBar;
import android.text.Html;
@@ -18,10 +19,14 @@ import com.tencent.bugly.crashreport.CrashReport;
import com.ydd.sportfaceid.config.SDAppConfig;
import com.ydd.sportfaceid.event.QRCodeEvent;
import com.ydd.sportfaceid.main.SDBaseActivity;
import com.ydd.sportfaceid.netty.config.Constant;
import com.ydd.sportfaceid.netty.message.DeviceType;
import com.ydd.sportfaceid.service.ClientService;
import com.ydd.sportfaceid.setting.SDSettingActivity;
import com.ydd.sportfaceid.utils.DeviceIdUtil;
import com.ydd.sportfaceid.utils.EggClickUtil;
import com.ydd.sportfaceid.utils.QRCodeUtil;
import com.ydd.sportfaceid.utils.TimeUtil;
import com.ydd.sportfaceid.view.SDGustInfoView;
import org.greenrobot.eventbus.EventBus;
@@ -31,7 +36,6 @@ import org.greenrobot.eventbus.ThreadMode;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import static com.ydd.sportfaceid.event.QRCodeEvent.QR_EVENT_ACTION_FAILED;
import static com.ydd.sportfaceid.event.QRCodeEvent.QR_EVENT_ACTION_LOADING;
import static com.ydd.sportfaceid.event.QRCodeEvent.QR_EVENT_ACTION_OPEN_DOOR;
@@ -39,6 +43,8 @@ import static com.ydd.sportfaceid.event.QRCodeEvent.QR_EVENT_ACTION_OPEN_DOOR;
public class MainActivity extends SDBaseActivity {
private final String TAG = "MainActivity";
// private final String URL_PARTEN = "https://api.hongyutiyu.top/getLessonOrder/";
private final String URL_PARTEN = "https://lmqhznn.goho.co/getLessonOrder/";
@BindView(R.id.order_view)
WebView order_view;
@@ -53,6 +59,8 @@ public class MainActivity extends SDBaseActivity {
@BindView(R.id.qr_code_pb_cover)
ContentLoadingProgressBar qrCodePbCover;
private String current_date;
private EggClickUtil eggClickUtil;
private SDErrorDialog errorDialog;
@@ -70,7 +78,8 @@ public class MainActivity extends SDBaseActivity {
// 应该是原来的保持屏幕常亮的代码
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
order_view.setWebViewClient(new WebViewClient());
order_view.loadUrl("http://www.baidu.com");
current_date = TimeUtil.getCurrentDate();
refreshWebView();
// 启动Service
Intent socketService = new Intent(this, ClientService.class);
startService(socketService);
@@ -78,7 +87,16 @@ public class MainActivity extends SDBaseActivity {
initQrIcon();
}
@Override
/**
* 获取预订信息的字符串
* @return
*/
private void refreshWebView() {
String url = URL_PARTEN + SDAppConfig.getInstance().getVenueId() + "?date=" + current_date;
order_view.loadUrl(url);
}
@Override
protected void onResume() {
super.onResume();
}
@@ -137,15 +155,17 @@ public class MainActivity extends SDBaseActivity {
break;
case R.id.btn_refresh:
// TODO: wyb, 2020-07-29, 刷新逻辑.
configView();
break;
case R.id.btn_last_day:
// TODO: wyb, 2020-07-29, 上一天 需要重新加载新的url.
current_date = TimeUtil.getSpecifiedDayAfter(current_date,1);
configView();
break;
case R.id.btn_next_day:
// TODO: wyb, 2020-07-29, 下一天 需要重新加载新的url.
current_date = TimeUtil.getSpecifiedDayAfter(current_date,-1);
configView();
break;
default:
@@ -164,9 +184,11 @@ public class MainActivity extends SDBaseActivity {
private void initQrIcon() {
Integer venueId = SDAppConfig.getInstance().getVenueId();
if (venueId != 0) {
Bitmap qrImage = QRCodeUtil.createQRImage(venueId + "", qrCodeIvEnter.getWidth(), qrCodeIvEnter.getHeight());
String deviceName = DeviceIdUtil.generateDeviceId(this);
DeviceType deviceType = SDAppConfig.getInstance().getDeviceType();
String qrCert = deviceName + Constant.QRCODE_WORD + venueId + Constant.QRCODE_WORD + deviceType;
if (venueId != 0) {
Bitmap qrImage = QRCodeUtil.createQRImage(qrCert, qrCodeIvEnter.getWidth(), qrCodeIvEnter.getHeight());
qrCodeIvEnter.setImageBitmap(qrImage);
}

View File

@@ -1,24 +0,0 @@
package com.ydd.sportfaceid.event;
/**
* 消息事件
*
* @author peakren
* @date 08/12/2017 11:16 PM
*/
public class MessageEvent {
private String message;
public MessageEvent(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}

View File

@@ -4,7 +4,6 @@ import android.app.Activity;
import android.util.Log;
import com.ydd.sportfaceid.BuildConfig;
import com.ydd.sportfaceid.event.MessageEvent;
import com.ydd.sportfaceid.utils.SharedPreferencesUtil;
import org.greenrobot.eventbus.EventBus;
@@ -84,10 +83,8 @@ public class ClientThread {
future.addListener((ChannelFutureListener) f -> f.channel().eventLoop().schedule(() -> {
if (!f.isSuccess()) {
doConnect();
EventBus.getDefault().post(new MessageEvent("等待连接"));
Log.e(TAG, "连接失败!");
} else {
EventBus.getDefault().post(new MessageEvent("已连接"));
Log.i(TAG, "连接成功!");
}
}, 2, TimeUnit.SECONDS));

View File

@@ -3,5 +3,6 @@ package com.ydd.sportfaceid.netty.config;
public class Constant {
public final static String DELIMITER_WORD = "$_$";
public final static String QRCODE_WORD = "#";
}

View File

@@ -1,7 +1,10 @@
package com.ydd.sportfaceid.setting;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
@@ -10,6 +13,7 @@ import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
import com.google.gson.reflect.TypeToken;
import com.ydd.sportfaceid.R;
import com.ydd.sportfaceid.config.SDAppConfig;
import com.ydd.sportfaceid.main.SDBaseActivity;
@@ -18,6 +22,16 @@ import com.ydd.sportfaceid.netty.message.DeviceType;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import com.ydd.sportfaceid.utils.JsonMapper;
import com.ydd.sportfaceid.utils.TimeUntil;
import okhttp3.*;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
public class SDSettingActivity extends SDBaseActivity {
public static final String TAG = "SDSettingActivity_TAG";
@@ -28,14 +42,62 @@ public class SDSettingActivity extends SDBaseActivity {
@BindView(R.id.venue_action)
RadioGroup venueActionView;
private String spinnerValue;
private Integer spinnerValue;
List<VenueItem> resultList = null;
boolean init = false;
Handler handler = new Handler(){
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
init = true;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sdsetting);
ButterKnife.bind(this);
initSpinner();
new Thread(new Runnable() {
@Override
public void run() {
String url = "https://lmqhznn.goho.co/getVenueList";
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
Response response = null;
try {
response = client.newCall(request).execute();
} catch (IOException e) {
Log.e(TAG, "setConfigError: ", e);
showToast("网络异常,请稍候再试!");
}
if (!response.isSuccessful()) {
}
String result = null;
try {
result = response.body().string();
System.out.println("result ================" + result);
} catch (IOException e) {
e.printStackTrace();
}
resultList = JsonMapper.fromJson(result,new TypeToken<List<VenueItem>>(){}.getType());
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
}).start();
while (init){
initSpinner();
init = false;
}
}
@Override
@@ -60,12 +122,12 @@ public class SDSettingActivity extends SDBaseActivity {
private void setConfig() {
try {
if (TextUtils.isEmpty(spinnerValue)) {
if (spinnerValue == null) {
showToast("未选择场馆!");
return;
}
Integer venueId = Integer.parseInt(spinnerValue);
Integer venueId = spinnerValue;
RadioButton radioButton = findCheckedRadioButton();
if (radioButton == null) {
@@ -100,16 +162,13 @@ public class SDSettingActivity extends SDBaseActivity {
}
private void initSpinner() {
// TESTCODE: wyb, 2020-07-29, 测试Spinner列表.
// TODO: wyb, 2020-07-29, 需要请求场馆列表.
String[] stringArray = getResources().getStringArray(R.array.setting_spinner_test_list);
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.item_setting_spinner, stringArray);
ArrayAdapter<VenueItem> adapter = new ArrayAdapter<>(this, R.layout.item_setting_spinner, resultList);
venueCellView.setAdapter(adapter);
venueCellView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
spinnerValue = stringArray[position];
VenueItem venueItem = (VenueItem) venueCellView.getSelectedItem();
spinnerValue = venueItem.getVenueId();
}
@Override
@@ -118,7 +177,14 @@ public class SDSettingActivity extends SDBaseActivity {
}
});
// TODO: wyb, 2020-07-29, 这里可以设置为当前场馆的index.
venueCellView.setSelection(0, false);
int position = 0;
for (VenueItem venueItem : resultList){
if (spinnerValue.equals(venueItem.getVenueId())){
break;
}
position ++ ;
}
venueCellView.setSelection(position, false);
}
}

View File

@@ -0,0 +1,29 @@
package com.ydd.sportfaceid.setting;
import java.io.Serializable;
public class VenueItem implements Serializable {
private Integer venueId;
private String venueName;
public VenueItem(Integer venueId, String venueName) {
this.venueId = venueId;
this.venueName = venueName;
}
public Integer getVenueId() {
return venueId;
}
public void setVenueId(Integer venueId) {
this.venueId = venueId;
}
public String getVenueName() {
return venueName;
}
public void setVenueName(String venueName) {
this.venueName = venueName;
}
}

View File

@@ -52,26 +52,6 @@ public class SharedPreferencesUtil {
return serverShare.getInt("serverPort", Integer.parseInt(BuildConfig.SERVER_PORT));
}
/**
* 设置face++的连接地址和端口
*
* @param url
* @return
*/
public static boolean setFaceidWsUrl(String url) {
initServerShare();
if (getFaceidWsUrl().equals(url)) {
return false;
}
serverShare.edit().putString("faceidWsUrl", url).apply();
return true;
}
public static String getFaceidWsUrl() {
initServerShare();
return serverShare.getString("faceidWsUrl", BuildConfig.FACEID_WS_URL);
}
/**
* 设置门禁的连接地址和端口
*

View File

@@ -1,6 +1,10 @@
package com.ydd.sportfaceid.utils;
import android.text.format.DateUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
@@ -13,6 +17,8 @@ public class TimeUtil {
static final private SimpleDateFormat sFormat = new SimpleDateFormat("yyMMddHHmmssSSS");
static final private SimpleDateFormat sLogFormat = new SimpleDateFormat("MM-dd HH:mm:ss.SSS");
static final private SimpleDateFormat initOrderFormat = new SimpleDateFormat("YYYY-MM-dd");
static public String getNowTimeStr() {
return sFormat.format(new Date());
}
@@ -20,4 +26,30 @@ public class TimeUtil {
static public String getLogStr() {
return sLogFormat.format(new Date());
}
static public String getCurrentDate(){
return initOrderFormat.format(new Date());
}
/**
* 获取与指定日期间隔给定天数的日期.
* @param specifiedDay
* @param num 间隔天数
* @return String 间隔指定天数之后的日期
*/
public static String getSpecifiedDayAfter(String specifiedDay, int num){
Date specifiedDate = null;
try {
specifiedDate = initOrderFormat.parse(specifiedDay);
} catch (ParseException e) {
return getCurrentDate();
}
Calendar c = Calendar.getInstance();
c.setTime(specifiedDate);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day + num);
String dayAfter = initOrderFormat.format(c.getTime());
return dayAfter;
}
}

View File

@@ -51,7 +51,6 @@ public class SDGustInfoView extends RelativeLayout {
date_label.setText(date_string + " " + weak_string);
break;
}
super.handleMessage(msg);
}
};

View File

@@ -1,4 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/bg_color"
android:orientation="vertical">
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
@@ -9,3 +15,4 @@
tools:text="测试场馆1"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>

View File

@@ -6,13 +6,4 @@
<string name="camera_setting_type_title">请选择场馆,以及门禁类型</string>
<string name="stranger_info_string">您好 \n 您尚未注册成为本智能运动场用户 \n请扫描门禁上张贴的场馆二维码进行注册后再试</string>
<string name="stranger_info_detail_string">如遇注册用户无法识别请联系场馆管理人员</string>
<string-array name="setting_spinner_test_list">
<item>00001</item>
<item>00002</item>
<item>00003</item>
<item>00004</item>
<item>00005</item>
<item>00006</item>
</string-array>
</resources>