Skip to content

Commit

Permalink
1、添加Session超时就跳转到登录页面的行为
Browse files Browse the repository at this point in the history
2、调整曲线的样式
3、添加数据通信时在标题栏的动画标示
  • Loading branch information
taowenyin committed Aug 2, 2017
1 parent 1436df9 commit 318c3ff
Show file tree
Hide file tree
Showing 11 changed files with 158 additions and 51 deletions.
Binary file added app/src/main/assets/apng/signal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -184,9 +184,9 @@ protected void onBindItemViewHolder(CurveItemViewHolder holder, int section, int
// 设置这条曲线的颜色
line.setColor(Color.parseColor(lineColor[i]));
// 设置曲线圆点的大小
line.setPointRadius(5);
line.setPointRadius(3);
// 设置这条曲线的宽度
line.setStrokeWidth(2);
line.setStrokeWidth(1);
// 折线图上每个数据点的形状 这里是圆形
line.setShape(ValueShape.CIRCLE);
// 曲线是否平滑,即是曲线还是折线
Expand Down
11 changes: 11 additions & 0 deletions app/src/main/java/cn/edu/siso/rlxapf/DeviceListActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,17 @@ public void handleMessage(Message msg) {
break;
case HTTPConfig.DeviceListError.SESSION_NO_SET:
badMsg = getResources().getString(R.string.device_list_error_session_no_set);

// 清空账户信息
SharedPreferences accountPref = getSharedPreferences(
getResources().getString(R.string.account_pref_name), MODE_PRIVATE);
SharedPreferences.Editor editor = accountPref.edit();
editor.clear();
SharedPreferencesCompat.EditorCompat.getInstance().apply(editor);

Intent intent = new Intent(DeviceListActivity.this, LoginActivity.class);
startActivity(intent);
finish();
break;
case HTTPConfig.DeviceListError.SESSION_ERROR:
badMsg = getResources().getString(R.string.device_list_error_session_error);
Expand Down
30 changes: 15 additions & 15 deletions app/src/main/java/cn/edu/siso/rlxapf/LoginActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,21 @@ protected void onCreate(Bundle savedInstanceState) {
loginPassword = (EditText) findViewById(R.id.login_form_password);
dialogFragment = new ConnectDialogFragment(); // 初始化通信对话框对象

loginFormLoginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

RLXApplication application = (RLXApplication) getApplication();
OkHttpClientManager httpManager = application.getHttpManager();

Map<String, String> params = new HashMap<String, String>();
params.put("u", loginAccount.getText().toString());
params.put("p", loginPassword.getText().toString());
httpManager.httpStrGetAsyn(HTTPConfig.API_URL_LOGIN, params, httpHandler);
dialogFragment.show(getSupportFragmentManager(), LoginActivity.class.getName());
}
});

httpHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
Expand Down Expand Up @@ -133,20 +148,5 @@ public void handleMessage(Message msg) {

LoginActivity.this.finish();
}

loginFormLoginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

RLXApplication application = (RLXApplication) getApplication();
OkHttpClientManager httpManager = application.getHttpManager();

Map<String, String> params = new HashMap<String, String>();
params.put("u", loginAccount.getText().toString());
params.put("p", loginPassword.getText().toString());
httpManager.httpStrGetAsyn(HTTPConfig.API_URL_LOGIN, params, httpHandler);
dialogFragment.show(getSupportFragmentManager(), LoginActivity.class.getName());
}
});
}
}
18 changes: 16 additions & 2 deletions app/src/main/java/cn/edu/siso/rlxapf/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.github.sahasbhop.apngview.ApngDrawable;
import com.github.sahasbhop.apngview.ApngImageLoader;

import java.util.ArrayList;
import java.util.HashMap;
Expand All @@ -43,7 +45,9 @@

public class MainActivity extends AppCompatActivity implements
TabHost.OnTabChangeListener,
UserFragment.OnFragmentInteractionListener {
UserFragment.OnFragmentInteractionListener,
RealTimeFragment.OnFragmentInteractionListener,
SpectrumFragment.OnFragmentInteractionListener {

private enum CurrOperate {NO_OPERATE, STOP_DEVICE, START_DEVICE, ENTER_PARAMS};

Expand All @@ -52,6 +56,7 @@ private enum CurrOperate {NO_OPERATE, STOP_DEVICE, START_DEVICE, ENTER_PARAMS};
private ImageButton toolbarBack = null;
private PopupBottomMenu operateMenu = null;
private ConnectDialogFragment dialogFragment = null;
private ImageView signalView = null;

private WindowManager.LayoutParams wLP = null;

Expand Down Expand Up @@ -104,6 +109,10 @@ protected void onCreate(Bundle savedInstanceState) {
toolbarTitle = (TextView) findViewById(R.id.toolbar_title);
toolbarOperate = (ImageButton) findViewById(R.id.toolbar_operate);
toolbarBack = (ImageButton) findViewById(R.id.toolbar_back);
signalView = (ImageView) findViewById(R.id.signal_view);
// 初始化GIF动画
ApngImageLoader.getInstance().displayImage("assets://apng/signal.png", signalView);

dialogFragment = new ConnectDialogFragment(); // 初始化通信对话框对象

tcpHandler = new Handler() {
Expand Down Expand Up @@ -295,7 +304,7 @@ public void onClick(View v) {
protected void onDestroy() {
super.onDestroy();

Log.i(TAG, "关闭设备");
Log.i(TAG, "关闭设备 " + deviceData.get(currPosition).getGPSDeviceNo());

tcpClientManager.close(deviceData.get(currPosition).getGPSDeviceNo());
}
Expand Down Expand Up @@ -341,5 +350,10 @@ public void onFragmentInteraction(Uri uri) {
break;
}
}
if (uri.getQueryParameter(UriCommunication.Action).equals(UriCommunication.ActionParams.Signal)) {
ApngDrawable signalDrawable = ApngDrawable.getFromView(signalView);
signalDrawable.setNumPlays(1); // Fix number of repetition
signalDrawable.start(); // Start animation
}
}
}
57 changes: 46 additions & 11 deletions app/src/main/java/cn/edu/siso/rlxapf/RealTimeFragment.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package cn.edu.siso.rlxapf;

import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
Expand Down Expand Up @@ -28,6 +29,8 @@
public class RealTimeFragment extends Fragment implements
TabLayout.OnTabSelectedListener {

private OnFragmentInteractionListener mListener = null;

private TcpClientManager tcpClientManager = null;
private Handler tcpHandler = null;
private boolean isTimeout = false;
Expand All @@ -42,6 +45,14 @@ public class RealTimeFragment extends Fragment implements

private List<DeviceBean> deviceData = null;
private int currPosition = -1;
private Uri signalUri = Uri.parse(
UriCommunication.SchemeParams.Fragment
+ "://"
+ getClass().getName()
+ "?"
+ UriCommunication.Action
+ "="
+ UriCommunication.ActionParams.Signal);

private int[] realTimeIndicatorTitleArray = {
R.string.main_top_tab_real_curve_title,
Expand Down Expand Up @@ -83,18 +94,22 @@ public void handleMessage(Message msg) {
String resType = data.getString(TcpClientManager.KEY_TCP_RES_TYPE);
if (!isTimeout && isRealTime) {
if (resType.equals(TcpClientManager.TcpResType.CRC)) {
ConnectToast toast = new ConnectToast(context,
ConnectToast.ConnectRes.BAD,
getResources().getString(R.string.tcp_connect_real_data_error_crc),
Toast.LENGTH_LONG);
toast.show();
Log.e(TAG, getResources().getString(R.string.tcp_connect_real_data_error_crc));

// ConnectToast toast = new ConnectToast(context,
// ConnectToast.ConnectRes.BAD,
// getResources().getString(R.string.tcp_connect_real_data_error_crc),
// Toast.LENGTH_LONG);
// toast.show();
}
if (resType.equals(TcpClientManager.TcpResType.LENGTH)) {
ConnectToast toast = new ConnectToast(context,
ConnectToast.ConnectRes.BAD,
getResources().getString(R.string.tcp_connect_real_data_error_length),
Toast.LENGTH_LONG);
toast.show();
Log.e(TAG, getResources().getString(R.string.tcp_connect_real_data_error_length));

// ConnectToast toast = new ConnectToast(context,
// ConnectToast.ConnectRes.BAD,
// getResources().getString(R.string.tcp_connect_real_data_error_length),
// Toast.LENGTH_LONG);
// toast.show();
}
if (resType.equals(TcpClientManager.TcpResType.SUCCESS)) {
RealTimeDatasBean datasBean = JSON.parseObject(
Expand Down Expand Up @@ -131,6 +146,8 @@ public void handleMessage(Message msg) {
tcpClientManager.sendCmd(context, TcpClientManager.TcpCmdType.REAL_DATA,
new String[]{deviceData.get(currPosition).getDeviceNo()},
tcpHandler);
// 发送信号指令
mListener.onFragmentInteraction(signalUri);
}
}
}
Expand Down Expand Up @@ -163,9 +180,15 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
@Override
public void onAttach(Context context) {
super.onAttach(context);

Log.i(TAG, "===onAttach===");

if (context instanceof UserFragment.OnFragmentInteractionListener) {
mListener = (OnFragmentInteractionListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement OnFragmentInteractionListener");
}

this.context = context;
}

Expand All @@ -178,6 +201,7 @@ public void onResume() {
tcpClientManager.sendCmd(context, TcpClientManager.TcpCmdType.REAL_DATA,
new String[]{deviceData.get(currPosition).getDeviceNo()},
tcpHandler);
mListener.onFragmentInteraction(signalUri);
}

@Override
Expand All @@ -186,6 +210,13 @@ public void onPause() {
isRealTime = false; // 关闭实时数据
}

@Override
public void onDetach() {
super.onDetach();

mListener = null;
}

@Override
public void onTabSelected(TabLayout.Tab tab) {
realTimePage.setCurrentItem(tab.getPosition());
Expand All @@ -203,4 +234,8 @@ public void onTabUnselected(TabLayout.Tab tab) {
public void onTabReselected(TabLayout.Tab tab) {
Log.i(TAG, "onTabUnselected");
}

public interface OnFragmentInteractionListener {
void onFragmentInteraction(Uri uri);
}
}
68 changes: 53 additions & 15 deletions app/src/main/java/cn/edu/siso/rlxapf/SpectrumFragment.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package cn.edu.siso.rlxapf;

import android.content.Context;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
Expand Down Expand Up @@ -40,6 +41,8 @@

public class SpectrumFragment extends Fragment {

private OnFragmentInteractionListener mListener = null;

private RecyclerView spectrumRecyclerView = null;
private DataSectionRecyclerAdapter adapter = null;

Expand All @@ -54,6 +57,14 @@ public class SpectrumFragment extends Fragment {

private List<DeviceBean> deviceData = null;
private int currPosition = -1;
private Uri signalUri = Uri.parse(
UriCommunication.SchemeParams.Fragment
+ "://"
+ getClass().getName()
+ "?"
+ UriCommunication.Action
+ "="
+ UriCommunication.ActionParams.Signal);

public static final String TAG = "SpectrumFragment";

Expand Down Expand Up @@ -85,18 +96,22 @@ public void handleMessage(Message msg) {
String resType = data.getString(TcpClientManager.KEY_TCP_RES_TYPE);
if (!isTimeout && isSpectrum) {
if (resType.equals(TcpClientManager.TcpResType.CRC)) {
ConnectToast toast = new ConnectToast(context,
ConnectToast.ConnectRes.BAD,
getResources().getString(R.string.tcp_connect_spectrum_data_error_crc),
Toast.LENGTH_LONG);
toast.show();
Log.e(TAG, getResources().getString(R.string.tcp_connect_spectrum_data_error_crc));

// ConnectToast toast = new ConnectToast(context,
// ConnectToast.ConnectRes.BAD,
// getResources().getString(R.string.tcp_connect_spectrum_data_error_crc),
// Toast.LENGTH_LONG);
// toast.show();
}
if (resType.equals(TcpClientManager.TcpResType.LENGTH)) {
ConnectToast toast = new ConnectToast(context,
ConnectToast.ConnectRes.BAD,
getResources().getString(R.string.tcp_connect_spectrum_data_error_length),
Toast.LENGTH_LONG);
toast.show();
Log.e(TAG, getResources().getString(R.string.tcp_connect_spectrum_data_error_length));

// ConnectToast toast = new ConnectToast(context,
// ConnectToast.ConnectRes.BAD,
// getResources().getString(R.string.tcp_connect_spectrum_data_error_length),
// Toast.LENGTH_LONG);
// toast.show();
}
if (resType.equals(TcpClientManager.TcpResType.SUCCESS)) {
Log.i(TAG, "更新谐波数据");
Expand All @@ -114,11 +129,13 @@ public void handleMessage(Message msg) {
// 标记当前为超时状态
isTimeout = true;

ConnectToast toast = new ConnectToast(getContext(),
ConnectToast.ConnectRes.BAD,
getResources().getString(R.string.tcp_connect_spectrum_data_time_out),
Toast.LENGTH_LONG);
toast.show();
Log.e(TAG, getResources().getString(R.string.tcp_connect_spectrum_data_time_out));

// ConnectToast toast = new ConnectToast(getContext(),
// ConnectToast.ConnectRes.BAD,
// getResources().getString(R.string.tcp_connect_spectrum_data_time_out),
// Toast.LENGTH_LONG);
// toast.show();
}

if (isSpectrum) {
Expand All @@ -136,6 +153,8 @@ public void handleMessage(Message msg) {
tcpClientManager.sendCmd(context, TcpClientManager.TcpCmdType.SPECTRUM_DATA,
new String[]{deviceData.get(currPosition).getDeviceNo()},
tcpHandler);
// 发送信号指令
mListener.onFragmentInteraction(signalUri);
}
}
}
Expand Down Expand Up @@ -201,6 +220,13 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
public void onAttach(Context context) {
super.onAttach(context);

if (context instanceof UserFragment.OnFragmentInteractionListener) {
mListener = (OnFragmentInteractionListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement OnFragmentInteractionListener");
}

this.context = context;
}

Expand All @@ -214,6 +240,8 @@ public void onResume() {
tcpClientManager.sendCmd(context, TcpClientManager.TcpCmdType.SPECTRUM_DATA,
new String[]{deviceData.get(currPosition).getDeviceNo()},
tcpHandler);
// 发送信号指令
mListener.onFragmentInteraction(signalUri);
}

@Override
Expand All @@ -222,8 +250,18 @@ public void onPause() {
isSpectrum = false; // 关闭实时数据
}

@Override
public void onDetach() {
super.onDetach();

mListener = null;
}

private void updateHarmonicDates(HarmonicDatasBean datesBean) {

}

public interface OnFragmentInteractionListener {
void onFragmentInteraction(Uri uri);
}
}
Loading

0 comments on commit 318c3ff

Please sign in to comment.