Compare commits

..

1 Commits

Author SHA1 Message Date
b072355b4f #SD-185 - Make the UI compatible with SMS parsing changes 2022-03-18 08:40:05 +02:00
11 changed files with 2096 additions and 2140 deletions

View File

@ -198,11 +198,12 @@ public abstract class AbstractSDParentActivity extends TabActivity {
return res; return res;
} }
public boolean getHistoryPositions(int sc_id, long timeGMTStart, long timeGMTStop) { public boolean getHistoryPositions(int sc_id, long timeGMTStart, long timeGMTStop)
{
if(tcp == null) if(tcp == null)
return false; return false;
String histSeqID = "1."+ (int) (System.currentTimeMillis() / 1000L); String histSeqID = "1."+Integer.toString((int) (System.currentTimeMillis() / 1000L));
boolean res = tcp.Write(histSeqID,"#26#"+sc_id+"#"+timeGMTStart+"#"+timeGMTStop+"#"); boolean res = tcp.Write(histSeqID,"#26#"+sc_id+"#"+timeGMTStart+"#"+timeGMTStop+"#");
if(res) if(res)
SM.Debug("Message [getHistoryPositions] sent to app server"); SM.Debug("Message [getHistoryPositions] sent to app server");
@ -212,7 +213,8 @@ public abstract class AbstractSDParentActivity extends TabActivity {
return res; return res;
} }
public boolean getRadiosList() { public boolean getRadiosList()
{
if(tcp == null) if(tcp == null)
return false; return false;

View File

@ -6,7 +6,6 @@ import java.util.Calendar;
import java.util.Hashtable; import java.util.Hashtable;
import android.app.Activity; import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -19,20 +18,18 @@ import com.safemobile.lib.Msg;
import com.safemobile.lib.R; import com.safemobile.lib.R;
import com.safemobile.lib.SM; import com.safemobile.lib.SM;
public class ConversationGridViewAdapter extends BaseAdapter public class ConversationGridViewAdapter extends BaseAdapter {
{ private final ArrayList<Msg> listMessages;
private ArrayList<Msg> listMessages; private final Activity activity;
private Activity activity; private final ArrayList<Boolean> dispatcherPositions;
//public String time; private final ArrayList<Boolean> ackPositions;
private ArrayList<Boolean> dispatcher_positions = new ArrayList<Boolean>(); private final Hashtable<Integer, View> hash = new Hashtable<>();
private ArrayList<Boolean> ackPositions = new ArrayList<Boolean>();
private Hashtable<Integer, View> hash = new Hashtable<Integer, View>();
public ConversationGridViewAdapter(Activity activity, ArrayList<Msg> listMessages, Context context, long sc_id, int unit_type, ArrayList<Boolean> dispatcher_positions, ArrayList<Boolean> ackPositions) { public ConversationGridViewAdapter(Activity activity, ArrayList<Msg> listMessages, ArrayList<Boolean> dispatcherPositions, ArrayList<Boolean> ackPositions) {
this.activity = activity; this.activity = activity;
this.listMessages = listMessages; this.listMessages = listMessages;
this.dispatcher_positions = dispatcher_positions; this.dispatcherPositions = dispatcherPositions;
this.ackPositions = ackPositions; this.ackPositions = ackPositions;
} }
@ -51,49 +48,124 @@ public class ConversationGridViewAdapter extends BaseAdapter
return 0; return 0;
} }
public static class ViewHolder public static class ViewHolder {
{ private ImageView imgViewContact;
public ImageView imgViewContact; private TextView txtViewMsg;
public TextView txtViewMsg; private TextView txtViewDateTime;
public TextView txtViewDateTime; private ImageView imgViewReceivedContact;
public ImageView imgViewReceivedContact; private TextView txtViewReceivedMsg;
public TextView txtViewReceivedMsg; private TextView txtViewReceivedDateTime;
public TextView txtViewReceivedDateTime; private ImageView imageAck;
public ImageView imageAck; private TextView textViewNotACK;
public TextView textViewNotACK; private LinearLayout layoutSend;
public LinearLayout layoutSend; private LinearLayout layoutReceived;
public LinearLayout layoutReceived;
public ImageView getImgViewContact() {
return imgViewContact;
}
public void setImgViewContact(ImageView imgViewContact) {
this.imgViewContact = imgViewContact;
}
public TextView getTxtViewMsg() {
return txtViewMsg;
}
public void setTxtViewMsg(TextView txtViewMsg) {
this.txtViewMsg = txtViewMsg;
}
public TextView getTxtViewDateTime() {
return txtViewDateTime;
}
public void setTxtViewDateTime(TextView txtViewDateTime) {
this.txtViewDateTime = txtViewDateTime;
}
public ImageView getImgViewReceivedContact() {
return imgViewReceivedContact;
}
public void setImgViewReceivedContact(ImageView imgViewReceivedContact) {
this.imgViewReceivedContact = imgViewReceivedContact;
}
public TextView getTxtViewReceivedMsg() {
return txtViewReceivedMsg;
}
public void setTxtViewReceivedMsg(TextView txtViewReceivedMsg) {
this.txtViewReceivedMsg = txtViewReceivedMsg;
}
public TextView getTxtViewReceivedDateTime() {
return txtViewReceivedDateTime;
}
public void setTxtViewReceivedDateTime(TextView txtViewReceivedDateTime) {
this.txtViewReceivedDateTime = txtViewReceivedDateTime;
}
public ImageView getImageAck() {
return imageAck;
}
public void setImageAck(ImageView imageAck) {
this.imageAck = imageAck;
}
public TextView getTextViewNotACK() {
return textViewNotACK;
}
public void setTextViewNotACK(TextView textViewNotACK) {
this.textViewNotACK = textViewNotACK;
}
public LinearLayout getLayoutSend() {
return layoutSend;
}
public void setLayoutSend(LinearLayout layoutSend) {
this.layoutSend = layoutSend;
}
public LinearLayout getLayoutReceived() {
return layoutReceived;
}
public void setLayoutReceived(LinearLayout layoutReceived) {
this.layoutReceived = layoutReceived;
}
} }
@Override @Override
public View getView(int position, View convertView, ViewGroup parent) { public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder view; ViewHolder view;
LayoutInflater inflator = activity.getLayoutInflater(); LayoutInflater inflater = activity.getLayoutInflater();
if(convertView==null) if (convertView == null) {
{
view = new ViewHolder(); view = new ViewHolder();
convertView = inflator.inflate(R.layout.row_conversation, null); convertView = inflater.inflate(R.layout.row_conversation, null);
view.imgViewContact = (ImageView) convertView.findViewById(R.id.imageViewSenderIco); view.setImgViewContact(convertView.findViewById(R.id.imageViewSenderIco));
view.txtViewMsg = (TextView) convertView.findViewById(R.id.textViewSendMsg); view.setTxtViewMsg(convertView.findViewById(R.id.textViewSendMsg));
view.txtViewDateTime = (TextView) convertView.findViewById(R.id.textViewSendDate); view.setTxtViewDateTime(convertView.findViewById(R.id.textViewSendDate));
view.imgViewReceivedContact = (ImageView) convertView.findViewById(R.id.imageViewReceivedIco); view.setImgViewReceivedContact(convertView.findViewById(R.id.imageViewReceivedIco));
view.txtViewReceivedMsg = (TextView) convertView.findViewById(R.id.textViewReceivedMsg); view.setTxtViewReceivedMsg(convertView.findViewById(R.id.textViewReceivedMsg));
view.txtViewReceivedDateTime = (TextView) convertView.findViewById(R.id.textViewReceivedDate); view.setTxtViewReceivedDateTime(convertView.findViewById(R.id.textViewReceivedDate));
view.layoutSend = (LinearLayout) convertView.findViewById(R.id.layoutSend); view.setLayoutSend(convertView.findViewById(R.id.layoutSend));
view.layoutReceived = (LinearLayout) convertView.findViewById(R.id.layoutReceived); view.setLayoutReceived(convertView.findViewById(R.id.layoutReceived));
view.textViewNotACK = (TextView) convertView.findViewById(R.id.textViewNotACKSendMsg); view.setTextViewNotACK(convertView.findViewById(R.id.textViewNotACK));
view.imageAck = (ImageView) convertView.findViewById(R.id.imageAck); view.setImageAck(convertView.findViewById(R.id.imageAck));
convertView.setTag(view); convertView.setTag(view);
} } else {
else
{
view = (ViewHolder) convertView.getTag(); view = (ViewHolder) convertView.getTag();
} }
try try {
{
hash.put(position, convertView); hash.put(position, convertView);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm MMM-dd"); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm MMM-dd");
@ -108,52 +180,52 @@ public class ConversationGridViewAdapter extends BaseAdapter
sdf = new SimpleDateFormat("HH:mm MMM-dd"); sdf = new SimpleDateFormat("HH:mm MMM-dd");
//view.imgViewContact.setImageResource(getIcon(listMessages.get(position).from.user_type)); view.getImgViewContact().setImageResource(R.drawable.peoplegreen_large);
view.imgViewContact.setImageResource(R.drawable.peoplegreen_large); view.getTxtViewMsg().setText(listMessages.get(position).message);
view.txtViewMsg.setText(listMessages.get(position).message); view.getTxtViewDateTime().setText(sdf.format(listMessages.get(position).received));
view.txtViewDateTime.setText(sdf.format(listMessages.get(position).received)); view.getImgViewReceivedContact().setImageResource(listMessages.get(position).from.getLargeIcon());
//view.imgViewReceivedContact.setImageResource(getIcon(listMessages.get(position).from.user_type)); view.getTxtViewReceivedMsg().setText(listMessages.get(position).message);
view.imgViewReceivedContact.setImageResource(listMessages.get(position).from.getLargeIcon()); view.getTxtViewReceivedDateTime().setText(sdf.format(listMessages.get(position).received));
view.txtViewReceivedMsg.setText(listMessages.get(position).message);
view.txtViewReceivedDateTime.setText(sdf.format(listMessages.get(position).received));
if(ackPositions.size() > 0) if (!ackPositions.isEmpty())
switch(ackPositions.get(position) ? 1: 0) { switch (Boolean.TRUE.equals(ackPositions.get(position)) ? 1 : 0) {
case 0: case 0:
// show not ack // show not ack
view.textViewNotACK.setVisibility(View.VISIBLE); view.getTextViewNotACK().setVisibility(View.VISIBLE);
view.imageAck.setVisibility(View.VISIBLE); view.getImageAck().setVisibility(View.VISIBLE);
break; break;
case 1: case 1:
// show not ack // show not ack
view.textViewNotACK.setVisibility(View.INVISIBLE); view.getTextViewNotACK().setVisibility(View.INVISIBLE);
view.imageAck.setVisibility(View.INVISIBLE); view.getImageAck().setVisibility(View.INVISIBLE);
break;
default:
throw new IllegalStateException("Unexpected value: " + (Boolean.TRUE.equals(ackPositions.get(position)) ? 1 : 0));
} }
switch(dispatcher_positions.get(position) ? 1 : 0) { switch (Boolean.TRUE.equals(dispatcherPositions.get(position)) ? 1 : 0) {
case 1: case 1:
view.layoutReceived.setVisibility(View.GONE); view.getLayoutReceived().setVisibility(View.GONE);
view.layoutSend.setVisibility(View.VISIBLE); view.getLayoutSend().setVisibility(View.VISIBLE);
break; break;
case 0: case 0:
view.layoutReceived.setVisibility(View.VISIBLE); view.getLayoutReceived().setVisibility(View.VISIBLE);
view.layoutSend.setVisibility(View.GONE); view.getLayoutSend().setVisibility(View.GONE);
break; break;
default:
throw new IllegalStateException("Unexpected value: " + (Boolean.TRUE.equals(dispatcherPositions.get(position)) ? 1 : 0));
} }
} } catch (Exception ex) {
catch(Exception ex)
{
SM.Exception(ex.toString()); SM.Exception(ex.toString());
} }
return convertView; return convertView;
} }
public void setACK(String seqID) public void setACK(String seqID) {
{ int position = -1;
int position = -1, i=0; int i = 0;
for(Msg msg: listMessages) for (Msg msg : listMessages) {
{
if (msg.seqID.equals(seqID)) if (msg.seqID.equals(seqID))
position = i; position = i;
@ -166,34 +238,40 @@ public class ConversationGridViewAdapter extends BaseAdapter
} }
} }
public void changeView(String seqID) public void changeView(String seqID) {
{ int position = -1;
int position = -1, i=0; int i = 0;
for(Msg msg: listMessages) for (Msg msg : listMessages) {
{
if (msg.seqID.equals(seqID)) if (msg.seqID.equals(seqID))
position = i; position = i;
i++; i++;
} }
if(position != -1 && hash.size() > position) if (position != -1 && hash.size() > position) {
{
SM.Debug("POSITON : " + position); SM.Debug("POSITON : " + position);
View con = hash.get(position); View con = hash.get(position);
ViewHolder view = (ViewHolder) con.getTag(); ViewHolder view = null;
if (con != null) {
view = (ViewHolder) con.getTag();
}
switch(ackPositions.get(position) ? 1 : 0) switch (Boolean.TRUE.equals(ackPositions.get(position)) ? 1 : 0) {
{
case 1: case 1:
view.imageAck.setVisibility(View.INVISIBLE); if (view != null) {
view.textViewNotACK.setVisibility(View.INVISIBLE); view.getImageAck().setVisibility(View.INVISIBLE);
view.getTextViewNotACK().setVisibility(View.INVISIBLE);
}
break; break;
case 0: case 0:
view.imageAck.setVisibility(View.VISIBLE); if (view != null) {
view.textViewNotACK.setVisibility(View.VISIBLE); view.getImageAck().setVisibility(View.VISIBLE);
view.getTextViewNotACK().setVisibility(View.VISIBLE);
}
break; break;
default:
throw new IllegalStateException("Unexpected value: " + (Boolean.TRUE.equals(ackPositions.get(position)) ? 1 : 0));
} }
} }
} }

View File

@ -5,7 +5,6 @@ import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import android.app.Activity; import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -18,15 +17,11 @@ import com.safemobile.lib.Msg;
import com.safemobile.lib.R; import com.safemobile.lib.R;
import com.safemobile.lib.SM; import com.safemobile.lib.SM;
public class MessagesGridViewAdapter extends BaseAdapter public class MessagesGridViewAdapter extends BaseAdapter {
{ private final ArrayList<Msg> listMessages;
private ArrayList<Msg> listMessages; private final Activity activity;
private Activity activity;
//public String time;
//private int[] colors = new int[] { Color.parseColor("#FFFFFF"), Color.parseColor("#D2E4FC") };
public MessagesGridViewAdapter(Activity activity, ArrayList<Msg> listMessages) {
public MessagesGridViewAdapter(Activity activity, ArrayList<Msg> listMessages, Context context) {
super(); super();
this.activity = activity; this.activity = activity;
this.listMessages = listMessages; this.listMessages = listMessages;
@ -47,8 +42,7 @@ public class MessagesGridViewAdapter extends BaseAdapter
return 0; return 0;
} }
public static class ViewHolder public static class ViewHolder {
{
public ImageView imgViewContact; public ImageView imgViewContact;
public TextView txtViewContact; public TextView txtViewContact;
public TextView txtViewDateTime; public TextView txtViewDateTime;
@ -62,31 +56,26 @@ public class MessagesGridViewAdapter extends BaseAdapter
ViewHolder view; ViewHolder view;
LayoutInflater inflator = activity.getLayoutInflater(); LayoutInflater inflator = activity.getLayoutInflater();
if(convertView==null) if (convertView == null) {
{
view = new ViewHolder(); view = new ViewHolder();
convertView = inflator.inflate(R.layout.row_message, null); convertView = inflator.inflate(R.layout.row_message, null);
view.imgViewContact = (ImageView) convertView.findViewById(R.id.imageViewContact); view.imgViewContact = convertView.findViewById(R.id.imageViewContact);
view.txtViewContact = (TextView) convertView.findViewById(R.id.textViewContact); view.txtViewContact = convertView.findViewById(R.id.textViewContact);
view.txtViewDateTime = (TextView) convertView.findViewById(R.id.textViewLastDate); view.txtViewDateTime = convertView.findViewById(R.id.textViewLastDate);
view.txtViewLastMsg = (TextView) convertView.findViewById(R.id.textViewLastMsg); view.txtViewLastMsg = convertView.findViewById(R.id.textViewLastMsg);
view.layoutMessage = (LinearLayout) convertView.findViewById(R.id.layoutMessage); view.layoutMessage = convertView.findViewById(R.id.layoutMessage);
convertView.setTag(view); convertView.setTag(view);
} } else {
else
{
view = (ViewHolder) convertView.getTag(); view = (ViewHolder) convertView.getTag();
} }
try try {
{
view.imgViewContact.setImageResource(listMessages.get(position).from.getLargeIcon()); view.imgViewContact.setImageResource(listMessages.get(position).from.getLargeIcon());
//view.imgViewContact.setImageResource(R.drawable.peopleblue); view.txtViewContact.setText(String.format("%s :", listMessages.get(position).from.name));
view.txtViewContact.setText(listMessages.get(position).from.name+ " :");
if (listMessages.get(position).message.length() > 25) if (listMessages.get(position).message.length() > 25)
view.txtViewLastMsg.setText(listMessages.get(position).message.substring(0, 25) + "..."); view.txtViewLastMsg.setText(String.format("%s...", listMessages.get(position).message.substring(0, 25)));
else else
view.txtViewLastMsg.setText(listMessages.get(position).message); view.txtViewLastMsg.setText(listMessages.get(position).message);
@ -102,31 +91,9 @@ public class MessagesGridViewAdapter extends BaseAdapter
sdf = new SimpleDateFormat("MMM-dd HH:mm"); sdf = new SimpleDateFormat("MMM-dd HH:mm");
view.txtViewDateTime.setText(sdf.format(listMessages.get(position).received)); view.txtViewDateTime.setText(sdf.format(listMessages.get(position).received));
} } catch (Exception ex) {
catch(Exception ex)
{
SM.Exception(ex.toString()); SM.Exception(ex.toString());
} }
return convertView; return convertView;
} }
public int getIcon(int user_type, String username)
{
// if request was send by MessagesActivity -> Spinner
if(user_type == -1)
{
// get unit_type for selected username
for (Msg mes: listMessages)
{
// if user is selected
if(mes.from.name.equals(username))
{
user_type = (int) mes.from.driver_id; // save user_type
return mes.from.getLargeIcon();
}
}
}
return 0;
}
} }

View File

@ -1,215 +0,0 @@
package com.safemobile.adapters;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Hashtable;
import java.util.Locale;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.safemobile.lib.R;
import com.safemobile.lib.SM;
import com.safemobile.libpad.PadTextMessage;
public class PadConversationGridViewAdapter extends BaseAdapter
{
private ArrayList<PadTextMessage> listMessages;
private Activity activity;
//public String time;
private ArrayList<Boolean> outgoingPositions = new ArrayList<Boolean>();
private ArrayList<Boolean> ackPositions = new ArrayList<Boolean>();
private Hashtable<Integer, View> hash = new Hashtable<Integer, View>();
public PadConversationGridViewAdapter(Activity activity, ArrayList<PadTextMessage> listMessages, Context context, ArrayList<Boolean> outgoingPositions, ArrayList<Boolean> ackPositions) {
this.activity = activity;
this.listMessages = listMessages;
this.outgoingPositions = outgoingPositions;
this.ackPositions = ackPositions;
}
@Override
public int getCount() {
return listMessages.size();
}
@Override
public PadTextMessage getItem(int position) {
return listMessages.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
/** return the list of messages in the adapter
* @return an ArrayList of PadTextMessages
*/
public ArrayList<PadTextMessage> getMessages() {
return listMessages;
}
public static class ViewHolder
{
public ImageView imgViewContact;
public TextView txtViewMsg;
public TextView txtViewDateTime;
public ImageView imgViewReceivedContact;
public TextView txtViewReceivedMsg;
public TextView txtViewReceivedDateTime;
public ImageView imageAck;
public TextView textViewNotACK;
public LinearLayout layoutSend;
public LinearLayout layoutReceived;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder view;
LayoutInflater inflator = activity.getLayoutInflater();
if(convertView==null)
{
view = new ViewHolder();
convertView = inflator.inflate(R.layout.row_conversation, null);
view.imgViewContact = (ImageView) convertView.findViewById(R.id.imageViewSenderIco);
view.txtViewMsg = (TextView) convertView.findViewById(R.id.textViewSendMsg);
view.txtViewDateTime = (TextView) convertView.findViewById(R.id.textViewSendDate);
view.imgViewReceivedContact = (ImageView) convertView.findViewById(R.id.imageViewReceivedIco);
view.txtViewReceivedMsg = (TextView) convertView.findViewById(R.id.textViewReceivedMsg);
view.txtViewReceivedDateTime = (TextView) convertView.findViewById(R.id.textViewReceivedDate);
view.layoutSend = (LinearLayout) convertView.findViewById(R.id.layoutSend);
view.layoutReceived = (LinearLayout) convertView.findViewById(R.id.layoutReceived);
view.textViewNotACK = (TextView) convertView.findViewById(R.id.textViewNotACKSendMsg);
view.imageAck = (ImageView) convertView.findViewById(R.id.imageAck);
convertView.setTag(view);
}
else
{
view = (ViewHolder) convertView.getTag();
}
try
{
hash.put(position, convertView);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm MMM-dd", Locale.getDefault());
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
Date date = new Date(listMessages.get(position).timeGMT * 1000);
if(date.after(calendar.getTime()))
sdf = new SimpleDateFormat("HH:mm:ss", Locale.getDefault());
else
sdf = new SimpleDateFormat("HH:mm MMM-dd", Locale.getDefault());
// set gmt time
//sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
//view.imgViewContact.setImageResource(getIcon(listMessages.get(position).from.user_type));
view.imgViewContact.setImageResource(R.drawable.peoplegreen_large);
view.txtViewMsg.setText(listMessages.get(position).message);
view.txtViewDateTime.setText(sdf.format(date));
//view.imgViewReceivedContact.setImageResource(getIcon(listMessages.get(position).from.user_type));
view.imgViewReceivedContact.setImageResource(R.drawable.peopleblue_large);
view.txtViewReceivedMsg.setText(listMessages.get(position).message);
view.txtViewReceivedDateTime.setText(sdf.format(date));
if(ackPositions.size() > 0)
switch(ackPositions.get(position) ? 1: 0) {
case 0:
// show not ack
view.textViewNotACK.setVisibility(View.VISIBLE);
view.imageAck.setVisibility(View.VISIBLE);
break;
case 1:
// show not ack
view.textViewNotACK.setVisibility(View.INVISIBLE);
view.imageAck.setVisibility(View.INVISIBLE);
}
switch(outgoingPositions.get(position) ? 1 : 0) {
case 1:
view.layoutReceived.setVisibility(View.GONE);
view.layoutSend.setVisibility(View.VISIBLE);
break;
case 0:
view.layoutReceived.setVisibility(View.VISIBLE);
view.layoutSend.setVisibility(View.GONE);
break;
}
}
catch(Exception ex)
{
SM.Exception(ex.toString());
}
return convertView;
}
/*
public void setACK(String seqID)
{
int position = -1, i=0;
for(Msg msg: listMessages)
{
if(msg.seqID.equals(seqID))
position = i;
i++;
}
ackPositions.remove(position);
ackPositions.add(position, true);
}
public void changeView(String seqID)
{
int position = -1, i=0;
for(Msg msg: listMessages)
{
if(msg.seqID.equals(seqID))
position = i;
i++;
}
if(position != -1 && hash.size() > position)
{
SM.Debug("POSITON : " + position);
View con = hash.get(position);
ViewHolder view = (ViewHolder) con.getTag();
switch(ackPositions.get(position) ? 1 : 0)
{
case 1:
view.imageAck.setVisibility(View.INVISIBLE);
view.textViewNotACK.setVisibility(View.INVISIBLE);
break;
case 0:
view.imageAck.setVisibility(View.VISIBLE);
view.textViewNotACK.setVisibility(View.VISIBLE);
break;
}
}
}
*/
}

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical" android:orientation="vertical"
@ -53,7 +54,7 @@
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<ImageView <ImageView
android:id="@+id/imageAckSendMsg" android:id="@+id/imageAck"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:adjustViewBounds="true" android:adjustViewBounds="true"
@ -61,16 +62,18 @@
android:paddingTop="2dp" android:paddingTop="2dp"
android:src="@drawable/exclamation_small" android:src="@drawable/exclamation_small"
android:layout_weight="0" android:layout_weight="0"
android:visibility="invisible"/> android:visibility="invisible"
tools:ignore="DuplicateIds" />
<TextView <TextView
android:id="@+id/textViewNotACKSendMsg" android:id="@+id/textViewNotACK"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/notAck" android:text="@string/notAck"
android:textColor="#000000" android:textColor="#000000"
android:textSize="13dp" android:textSize="13dp"
android:layout_toRightOf="@+id/imageAck" android:layout_toRightOf="@+id/imageAck"
android:visibility="invisible" /> android:visibility="invisible"
tools:ignore="DuplicateIds" />
<TextView <TextView
android:id="@+id/textViewSendDate" android:id="@+id/textViewSendDate"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -113,7 +116,7 @@
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<ImageView <ImageView
android:id="@+id/imageAckReceiveMsg" android:id="@+id/imageAck"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:adjustViewBounds="true" android:adjustViewBounds="true"
@ -121,16 +124,18 @@
android:paddingTop="2dp" android:paddingTop="2dp"
android:src="@drawable/exclamation_small" android:src="@drawable/exclamation_small"
android:layout_weight="0" android:layout_weight="0"
android:visibility="invisible"/> android:visibility="invisible"
tools:ignore="DuplicateIds" />
<TextView <TextView
android:id="@+id/textViewNotACKReceiveMsg" android:id="@+id/textViewNotACK"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/notAck" android:text="@string/notAck"
android:textColor="#000000" android:textColor="#000000"
android:textSize="13dp" android:textSize="13dp"
android:layout_toRightOf="@+id/imageAck" android:layout_toRightOf="@+id/imageAck"
android:visibility="invisible"/> android:visibility="invisible"
tools:ignore="DuplicateIds" />
<TextView <TextView
android:id="@+id/textViewReceivedDate" android:id="@+id/textViewReceivedDate"
android:layout_width="wrap_content" android:layout_width="wrap_content"

View File

@ -1,30 +1,17 @@
package com.safemobile.dispatch; package com.safemobile.dispatch;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.Spinner; import android.widget.Spinner;
import android.widget.TextView; import android.widget.TextView;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptor;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.Polyline;
import com.google.android.gms.maps.model.PolylineOptions;
import com.safemobile.lib.AppParams; import com.safemobile.lib.AppParams;
import com.safemobile.lib.HistPos;
import com.safemobile.lib.OperationCodes;
import com.safemobile.lib.SM; import com.safemobile.lib.SM;
import com.safemobile.lib.Vehicle; import com.safemobile.lib.Vehicle;
@ -34,7 +21,7 @@ import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.Locale; import java.util.Locale;
public class HistoryActivity extends AppCompatActivity implements OnMapReadyCallback { public class HistoryActivity extends AppCompatActivity {
public Bundle savedInstanceState; public Bundle savedInstanceState;
private TabLayoutActivity parentTab; private TabLayoutActivity parentTab;
@ -42,9 +29,6 @@ public class HistoryActivity extends AppCompatActivity implements OnMapReadyCall
private Spinner spinnerVehicle; private Spinner spinnerVehicle;
private ImageView changeMapType, checkTraffic, slideLayoutImage; private ImageView changeMapType, checkTraffic, slideLayoutImage;
private LinearLayout layoutTraffic, slidelayout, layoutVehicles; private LinearLayout layoutTraffic, slidelayout, layoutVehicles;
private Button displayButton;
private Date startDate, endDate;
private final Handler myHandler = new Handler();
private ArrayList<Vehicle> allVehicle = new ArrayList<>(); private ArrayList<Vehicle> allVehicle = new ArrayList<>();
private ArrayList<String> allVehicleNames = new ArrayList<>(); private ArrayList<String> allVehicleNames = new ArrayList<>();
@ -63,9 +47,9 @@ public class HistoryActivity extends AppCompatActivity implements OnMapReadyCall
Locale locale = new Locale(AppParams.LANGUAGETMP); Locale locale = new Locale(AppParams.LANGUAGETMP);
Locale.setDefault(locale); Locale.setDefault(locale);
googleMap = parentTab.liveActivity.getMap();
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map); .findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
spinnerVehicle = findViewById(R.id.spinnerVehicle); spinnerVehicle = findViewById(R.id.spinnerVehicle);
getVehicles(); getVehicles();
@ -81,23 +65,6 @@ public class HistoryActivity extends AppCompatActivity implements OnMapReadyCall
slidelayout = findViewById(R.id.slidelayout); slidelayout = findViewById(R.id.slidelayout);
slideLayoutImage = findViewById(R.id.slideLayoutImage); slideLayoutImage = findViewById(R.id.slideLayoutImage);
layoutVehicles = findViewById(R.id.layoutBig); layoutVehicles = findViewById(R.id.layoutBig);
displayButton = findViewById(R.id.buttonDisplay);
displayButton.setOnClickListener(view -> {
googleMap.clear();
if (!AppParams.DEMO) {
parentTab.dropAllData =false;
parentTab.firstHistData = true;
parentTab.HistMsgList.clear();
parentTab.HistPosList.clear();
// request history
parentTab.executeNetworkStuff(new String[] {OperationCodes.GetHistoryPositions + "", allVehicle.get(spinnerVehicle.getSelectedItemPosition()).sc_id + "",
(startDate.getTime()/ 1000L) + "", (endDate.getTime()/ 1000L) + ""});
} else {
parentTab.demoPositionsList();
displayHistory(parentTab.demoPositions);
}
});
// slidelayout.setOnTouchListener((v, event) -> { // slidelayout.setOnTouchListener((v, event) -> {
// if (showVehicle) { // if (showVehicle) {
// layoutVehicles.setVisibility(View.GONE); // layoutVehicles.setVisibility(View.GONE);
@ -114,29 +81,11 @@ public class HistoryActivity extends AppCompatActivity implements OnMapReadyCall
setDate(); setDate();
} }
private void displayHistory(ArrayList<HistPos> positions) {
LatLng latLng = null;
PolylineOptions polylineOptions = new PolylineOptions();
BitmapDescriptor markerIcon = BitmapDescriptorFactory.fromResource(R.drawable.bus);
for (HistPos pos : positions) {
latLng = new LatLng(pos.lat, pos.lng);
polylineOptions.add(latLng);
googleMap.addMarker(new MarkerOptions()
.position(latLng)
.icon(markerIcon));
}
Polyline polyline1 = googleMap.addPolyline(polylineOptions);
if (latLng != null)
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 14));
}
private void setDate() { private void setDate() {
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
endDate = calendar.getTime(); Date endDate = calendar.getTime();
calendar.add(Calendar.DATE, -1); calendar.add(Calendar.DATE, -1);
startDate = calendar.getTime(); Date startDate = calendar.getTime();
LinearLayout layoutStartPicker = findViewById(R.id.layoutStartPicker); LinearLayout layoutStartPicker = findViewById(R.id.layoutStartPicker);
TextView textViewDate = findViewById(R.id.textViewStartDate); TextView textViewDate = findViewById(R.id.textViewStartDate);
@ -195,16 +144,7 @@ public class HistoryActivity extends AppCompatActivity implements OnMapReadyCall
} }
final Runnable UpdateMapResults = new Runnable() {
public void run() {
Log.v("updateMap", parentTab.HistPosList.toString());
SM.Debug("Do the Display");
displayHistory(parentTab.HistPosList);
}
};
public void UpdateMap() { public void UpdateMap() {
myHandler.post(UpdateMapResults);
SM.Debug("Do the updateMAP post"); SM.Debug("Do the updateMAP post");
} }
@ -219,12 +159,4 @@ public class HistoryActivity extends AppCompatActivity implements OnMapReadyCall
public void UpdateNrPos(int size) { public void UpdateNrPos(int size) {
SM.Debug("Do Cancelwindow"); SM.Debug("Do Cancelwindow");
} }
@Override
public void onMapReady(@NonNull GoogleMap googleMap) {
this.googleMap = googleMap;
parentTab.demoPositionsList();
displayButton.performClick();
}
} }

View File

@ -188,7 +188,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent"> android:layout_height="fill_parent">
<TextView <TextView
android:id="@+id/textViewSendMsg" android:id="@+id/textView1"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
@ -210,7 +210,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:gravity="center_vertical" android:gravity="center_vertical"
android:inputType="text" > android:inputType="text"
android:autofillHints="">
</EditText> </EditText>
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout

View File

@ -284,15 +284,14 @@
</LinearLayout> </LinearLayout>
<fragment <fragment
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:id="@+id/map" android:id="@+id/map"
android:layout_toRightOf="@id/slidelayout" android:layout_toRightOf="@id/slidelayout"
android:layout_weight="1" android:layout_weight="1"
tools:context=".HistoryActivity"
android:name="com.google.android.gms.maps.SupportMapFragment" /> android:name="com.google.android.gms.maps.SupportMapFragment" />
</LinearLayout> </LinearLayout>
<ImageView <ImageView
android:id="@+id/changeMapType" android:id="@+id/changeMapType"

View File

@ -186,7 +186,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent"> android:layout_height="fill_parent">
<TextView <TextView
android:id="@+id/textViewSendMsg" android:id="@+id/textView1"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
@ -209,7 +209,8 @@
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:gravity="center_vertical" android:gravity="center_vertical"
android:inputType="text" android:inputType="text"
android:maxLength="255" > android:maxLength="255"
android:autofillHints="">
</EditText> </EditText>
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout