Compare commits

..

26 Commits

Author SHA1 Message Date
6a235d1d3f merge with develop 2022-03-22 15:18:25 +02:00
bac12825c9 edit apk name 2022-03-22 15:10:29 +02:00
bbed107c42 get versionCode & name from tag 2022-03-22 12:11:08 +02:00
bca16caf94 new marker icon 2022-03-21 13:01:04 +02:00
0b887deb99 remove marker icon 2022-03-21 12:19:23 +02:00
c85dc279dc clean history activity 2022-03-21 11:58:34 +02:00
db360c4d45 speed limit 2022-03-21 11:50:52 +02:00
89f8cbfcae WIP 2022-03-18 23:12:20 +02:00
456c27b829 Merge pull request '#SD-207 - send more data for ack to occur' (#5) from features/SD-207-get_alarms_and_send_ack into develop
Reviewed-on: #5
2022-03-18 16:44:57 +00:00
8127caa949 #SD-207 - send more data for ack to occur 2022-03-18 18:43:48 +02:00
4420af337d cleanups 2022-03-18 15:40:15 +02:00
6b6543ca3f display test positions 2022-03-18 15:22:35 +02:00
f554356af1 small cleanups 2022-03-18 15:03:34 +02:00
2540b5f511 Merge pull request '#SD-185 - Make the UI compatible with SMS parsing changes' (#4) from features/SD-185-update-app-to_support-new-message-parsing into develop
Reviewed-on: #4
2022-03-18 06:41:30 +00:00
b072355b4f #SD-185 - Make the UI compatible with SMS parsing changes 2022-03-18 08:40:05 +02:00
0fabbc73be comment line in order to move vehicle 2022-03-17 15:13:25 +02:00
85cf7ae6a4 Merge pull request 'Live Page' (#3) from feature/live into develop
Reviewed-on: #3
2022-03-17 08:20:52 +00:00
91a05ae4d1 start working on history 2022-03-17 10:18:23 +02:00
4f7def273f merge with develop 2022-03-16 16:49:04 +02:00
4439687405 display history 2022-03-16 16:40:34 +02:00
5349558ace display info when on move 2022-03-16 14:41:05 +02:00
b91931e833 small changes 2022-03-16 14:32:28 +02:00
201845da3a display info bubble 2022-03-16 10:54:41 +02:00
2334dc2e3c make marker move 2022-03-15 17:42:58 +02:00
4141b2ab8c Merge pull request '#SD-199 - rework SDMobileActivity and check live messages' (#2) from features/SD-199-livetab-check into develop
Reviewed-on: #2
2022-03-15 13:56:44 +00:00
3da44593dd display Markers 2022-03-15 14:45:18 +02:00
34 changed files with 3090 additions and 3286 deletions

0
gradlew vendored Normal file → Executable file
View File

View File

@ -2,6 +2,7 @@ package com.safemobile.activities;
import java.util.ArrayList; import java.util.ArrayList;
import com.google.android.gms.maps.GoogleMap;
import com.safemobile.lib.Vehicle; import com.safemobile.lib.Vehicle;
import android.app.Activity; import android.app.Activity;
@ -23,7 +24,7 @@ public abstract class AbstractLiveActivity extends AppCompatActivity {
public abstract void pollReceived(int position, double lat, double lng); // --> UpdatePoll public abstract void pollReceived(int position, double lat, double lng); // --> UpdatePoll
public abstract void vehicleStatusReceived(long imei, int opCode, int status); // --> UpdateOptions public abstract void vehicleStatusReceived(long imei, int opCode, int status); // --> UpdateOptions
public abstract void emergencyAlarmReceived(int position, double lat, double lng); // --> UpdateEmergencyAlarm public abstract void emergencyAlarmReceived(int position, double lat, double lng); // --> UpdateEmergencyAlarm
public abstract GoogleMap getMap(); // --> UpdateEmergencyAlarm
/** Misc */ /** Misc */
public AbstractSDParentActivity getParentTab() { public AbstractSDParentActivity getParentTab() {

View File

@ -155,12 +155,12 @@ public abstract class AbstractSDParentActivity extends TabActivity {
} }
public boolean sendAlarmAcknowledge(int alarm_id, int type) public boolean sendAlarmAcknowledge(int alarm_id, int type, String unitName)
{ {
if(tcp == null) if(tcp == null)
return false; return false;
boolean res = tcp.Write("0.0", "#28#" + alarm_id + "#" + type + "#"); boolean res = tcp.Write("0.0", "#28#" + alarm_id + "#" + type + "#" + AppParams.USERID + "#" + unitName + "#");
if(res) if(res)
SM.Debug("Message [sendAlarmAcknowledge] sent to app server alarm_id:" + alarm_id + " type:" + type); SM.Debug("Message [sendAlarmAcknowledge] sent to app server alarm_id:" + alarm_id + " type:" + type);
else else
@ -198,12 +198,11 @@ 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."+Integer.toString((int) (System.currentTimeMillis() / 1000L)); String histSeqID = "1."+ (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");
@ -213,8 +212,7 @@ 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,149 +48,230 @@ 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");
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,0); calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.MILLISECOND, 0);
if(listMessages.get(position).received.after(calendar.getTime())) if (listMessages.get(position).received.after(calendar.getTime()))
sdf = new SimpleDateFormat("HH:mm:ss"); sdf = new SimpleDateFormat("HH:mm:ss");
else else
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;
i++; i++;
} }
if(position > -1 && position < ackPositions.size()) { if (position > -1 && position < ackPositions.size()) {
ackPositions.remove(position); ackPositions.remove(position);
ackPositions.add(position, true); ackPositions.add(position, true);
} }
} }
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,71 +56,44 @@ 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(String.format("%s...", listMessages.get(position).message.substring(0, 25)));
view.txtViewLastMsg.setText(listMessages.get(position).message.substring(0, 25) + "...");
else else
view.txtViewLastMsg.setText(listMessages.get(position).message); view.txtViewLastMsg.setText(listMessages.get(position).message);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,0); calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.MILLISECOND, 0);
if(listMessages.get(position).received.after(calendar.getTime())) if (listMessages.get(position).received.after(calendar.getTime()))
sdf = new SimpleDateFormat("HH:mm:ss"); sdf = new SimpleDateFormat("HH:mm:ss");
else else
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

@ -21,36 +21,28 @@ public class SuperVehicle extends Vehicle{
// TODO Auto-generated constructor stub // TODO Auto-generated constructor stub
} }
public void SetDataFromLastPos(Double _lat,Double _lng,long _time,int _speed,String _Address,Boolean _isON) public void SetDataFromLastPos(Double _lat,Double _lng,long _time,int _speed,String _Address,Boolean _isON) {
{ try {
try
{
lat = _lat; lat = _lat;
lng = _lng; lng = _lng;
timeGMT = _time; timeGMT = _time;
speed = _speed; speed = _speed;
Address = _Address; Address = _Address;
isON = _isON; isON = _isON;
} } catch (Exception ex) {
catch (Exception ex) Log.d("Erorr", "Contert Error: "+ ex);
{
Log.d("Erorr", "Contert Error:"+ex.toString());
} }
} }
public void SetNewPosition(Double _lat,Double _lng,long _time,int _speed) public void SetNewPosition(Double _lat,Double _lng,long _time,int _speed) {
{ try {
try
{
lat = _lat; lat = _lat;
lng = _lng; lng = _lng;
timeGMT = _time; timeGMT = _time;
speed = _speed; speed = _speed;
isON = true; isON = true;
} } catch (Exception ex) {
catch (Exception ex) Log.d("Erorr", "Contert Error: " + ex);
{
Log.d("Erorr", "Contert Error:"+ex.toString());
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?><!--
Copyright (C) 2012 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/custom_info_bubble"
android:paddingLeft="7dp"
android:paddingRight="7dp"
android:paddingTop="9dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/containerTop"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/l_bg_gps"
android:orientation="vertical">
<TextView
android:id="@+id/tvUnitName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:ellipsize="end"
android:fontFamily="sans-serif-smallcaps"
android:maxLines="1"
android:paddingTop="5dp"
tools:text="Linux 9910"
android:textColor="#FFFFFF"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/tvGPSLocation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:ellipsize="end"
android:fontFamily="sans-serif-smallcaps"
android:maxLines="1"
tools:text="[44.41857,26.09585]"
android:textColor="#FFFFFF"
android:textSize="10sp"
tools:ignore="SmallSp" />
</LinearLayout>
<RelativeLayout
android:layout_width="225dp"
android:layout_height="wrap_content"
android:padding="10dp"
android:id="@+id/rlMapInfoBubbleInfo">
<ImageView
android:id="@+id/time"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginRight="5dp"
android:adjustViewBounds="true"
android:src="@drawable/l_time"
android:layout_marginEnd="5dp" />
<TextView
android:id="@+id/tvTimeAgo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/time"
android:layout_alignTop="@+id/time"
android:layout_gravity="center_horizontal"
android:layout_toEndOf="@+id/time"
android:layout_toRightOf="@+id/time"
android:ellipsize="end"
android:gravity="center_vertical"
android:maxLines="1"
tools:text="a year ago [01:05:01]"
android:textColor="#ff000000"
android:textSize="10sp" />
<ImageView
android:id="@+id/speed"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_below="@+id/time"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:adjustViewBounds="true"
android:src="@drawable/l_speed" />
<TextView
android:id="@+id/tvSpeed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/speed"
android:layout_alignTop="@+id/speed"
android:layout_gravity="center_horizontal"
android:layout_toRightOf="@+id/speed"
android:ellipsize="end"
android:gravity="center_vertical"
android:maxLines="1"
tools:text="24 kph"
android:textColor="#ff000000"
android:textSize="10sp" />
<ImageView
android:id="@+id/streetView"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_below="@+id/speed"
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:adjustViewBounds="true"
android:src="@drawable/l_street"
android:visibility="visible" />
<TextView
android:id="@+id/tvStreetView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/streetView"
android:layout_gravity="center_horizontal"
android:layout_toRightOf="@+id/streetView"
android:ellipsize="end"
android:gravity="center_vertical"
android:maxLines="5"
tools:text="3601 E Algonquin Rd., Suite 800 Rolling Meadows, IL 60008"
android:textColor="#ff000000"
android:textSize="10sp"
android:visibility="visible" />
</RelativeLayout>
</LinearLayout>

View File

@ -1,13 +1,14 @@
<?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"
android:layout_width="fill_parent" xmlns:tools="http://schemas.android.com/tools"
android:layout_height="fill_parent" android:layout_width="fill_parent"
android:orientation="vertical" android:layout_height="fill_parent"
android:background="#ffffff" android:orientation="vertical"
android:paddingTop="5dp" android:background="#ffffff"
android:paddingBottom="5dp"> android:paddingTop="5dp"
<LinearLayout android:paddingBottom="5dp">
android:id="@+id/layoutSend" <LinearLayout
android:id="@+id/layoutSend"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:paddingRight="13dp" android:paddingRight="13dp"
@ -19,147 +20,151 @@
android:background="#ffffff" android:background="#ffffff"
android:layout_marginLeft="5dp" android:layout_marginLeft="5dp"
android:layout_weight="0"> android:layout_weight="0">
<ImageView <ImageView
android:id="@+id/imageViewSenderIco" android:id="@+id/imageViewSenderIco"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/ambulance_large" android:src="@drawable/ambulance_large"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="center" android:scaleType="center"
android:background="#ffffff" android:background="#ffffff"
android:layout_margin="3dp" android:layout_margin="3dp"
android:layout_gravity="top" android:layout_gravity="top"
android:layout_weight="0" /> android:layout_weight="0" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="10dp" android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
android:padding="5dp" android:padding="5dp"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:background="@layout/row_conversation_style_send" android:background="@layout/row_conversation_style_send"
android:orientation="vertical" android:orientation="vertical"
android:layout_weight="1" > android:layout_weight="1" >
<TextView <TextView
android:id="@+id/textViewSendMsg" android:id="@+id/textViewSendMsg"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Medium Text" android:text="Medium Text"
android:textColor="#000000" android:textColor="#000000"
android:textSize="16dp" /> android:textSize="16dp" />
<RelativeLayout <RelativeLayout
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"
android:scaleType="center" android:scaleType="center"
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"
<TextView tools:ignore="DuplicateIds" />
android:id="@+id/textViewNotACKSendMsg" <TextView
android:layout_width="fill_parent" android:id="@+id/textViewNotACK"
android:layout_height="wrap_content" android:layout_width="fill_parent"
android:text="@string/notAck" android:layout_height="wrap_content"
android:textColor="#000000" android:text="@string/notAck"
android:textSize="13dp" android:textColor="#000000"
android:layout_toRightOf="@+id/imageAck" android:textSize="13dp"
android:visibility="invisible" /> android:layout_toRightOf="@+id/imageAck"
<TextView android:visibility="invisible"
android:id="@+id/textViewSendDate" tools:ignore="DuplicateIds" />
android:layout_width="wrap_content" <TextView
android:layout_height="wrap_content" android:id="@+id/textViewSendDate"
android:layout_gravity="right" android:layout_width="wrap_content"
android:text="Small Text" android:layout_height="wrap_content"
android:textColor="#4c4c4c" android:layout_gravity="right"
android:textSize="13dp" android:text="Small Text"
android:layout_alignParentRight="true"/> android:textColor="#4c4c4c"
</RelativeLayout> android:textSize="13dp"
</LinearLayout> android:layout_alignParentRight="true"/>
</RelativeLayout>
</LinearLayout>
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:paddingLeft="13dp" android:paddingLeft="13dp"
android:layout_weight="0" android:layout_weight="0"
android:orientation="horizontal" android:orientation="horizontal"
android:id="@+id/layoutReceived"> android:id="@+id/layoutReceived">
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="10dp" android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
android:padding="5dp" android:padding="5dp"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:background="@layout/row_conversation_style_rec" android:background="@layout/row_conversation_style_rec"
android:orientation="vertical" android:orientation="vertical"
android:layout_weight="1" > android:layout_weight="1" >
<TextView <TextView
android:id="@+id/textViewReceivedMsg" android:id="@+id/textViewReceivedMsg"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Medium Text" android:text="Medium Text"
android:textColor="#000000" android:textColor="#000000"
android:textSize="16dp" /> android:textSize="16dp" />
<RelativeLayout <RelativeLayout
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"
android:scaleType="center" android:scaleType="center"
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"
<TextView tools:ignore="DuplicateIds" />
android:id="@+id/textViewNotACKReceiveMsg" <TextView
android:layout_width="fill_parent" android:id="@+id/textViewNotACK"
android:layout_height="wrap_content" android:layout_width="fill_parent"
android:text="@string/notAck" android:layout_height="wrap_content"
android:textColor="#000000" android:text="@string/notAck"
android:textSize="13dp" android:textColor="#000000"
android:layout_toRightOf="@+id/imageAck" android:textSize="13dp"
android:visibility="invisible"/> android:layout_toRightOf="@+id/imageAck"
<TextView android:visibility="invisible"
android:id="@+id/textViewReceivedDate" tools:ignore="DuplicateIds" />
android:layout_width="wrap_content" <TextView
android:layout_height="wrap_content" android:id="@+id/textViewReceivedDate"
android:layout_gravity="right" android:layout_width="wrap_content"
android:text="Small Text" android:layout_height="wrap_content"
android:textColor="#4c4c4c" android:layout_gravity="right"
android:textSize="13dp" android:text="Small Text"
android:layout_alignParentRight="true"/> android:textColor="#4c4c4c"
</RelativeLayout> android:textSize="13dp"
</LinearLayout> android:layout_alignParentRight="true"/>
<LinearLayout </RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:background="#ffffff" android:background="#ffffff"
android:layout_marginRight="5dp" android:layout_marginRight="5dp"
android:layout_weight="0"> android:layout_weight="0">
<ImageView <ImageView
android:id="@+id/imageViewReceivedIco" android:id="@+id/imageViewReceivedIco"
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"
android:scaleType="center" android:scaleType="center"
android:src="@drawable/error" android:src="@drawable/error"
android:background="#ffffff" android:background="#ffffff"
android:layout_margin="3dp" android:layout_margin="3dp"
android:layout_weight="0" android:layout_weight="0"
android:layout_gravity="top" android:layout_gravity="top"
/> />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="white">#FFFFFF</color>
<color name="black">#000000</color>
</resources>

View File

@ -1,5 +1,24 @@
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
apply plugin: 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' apply plugin: 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
apply plugin: "com.gladed.androidgitversion"
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
mavenCentral()
}
dependencies {
classpath "gradle.plugin.com.gladed.gradle.androidgitversion:gradle-android-git-version:0.4.3"
}
}
androidGitVersion {
codeFormat 'MNNBBBB'
format '%tag%%.count%'
hideBranches = ['develop']
}
android { android {
compileSdkVersion 31 compileSdkVersion 31
@ -9,6 +28,9 @@ android {
applicationId "com.safemobile.dispatch" applicationId "com.safemobile.dispatch"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 31 targetSdkVersion 31
versionName androidGitVersion.name()
versionCode androidGitVersion.code()
archivesBaseName = "SafeDispatchMobile_v.$versionName"
} }
buildTypes { buildTypes {

View File

@ -1,9 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="com.safemobile.dispatch" package="com.safemobile.dispatch">
android:versionCode="9"
android:versionName="1.0.9">
<!-- require OpenGL ES version 2 for Google Maps --> <!-- require OpenGL ES version 2 for Google Maps -->
<uses-feature <uses-feature

View File

@ -3,7 +3,6 @@ package com.safemobile.dispatch;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Locale; import java.util.Locale;
/** fix import*/
import com.safemobile.adapters.AlertGridViewAdapter; import com.safemobile.adapters.AlertGridViewAdapter;
import com.safemobile.adapters.AlertGridViewAdapter.ViewHolder; import com.safemobile.adapters.AlertGridViewAdapter.ViewHolder;
@ -15,11 +14,11 @@ import com.safemobile.lib.SM;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import android.view.View; import android.view.View;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.TextView; import android.widget.TextView;
@ -28,232 +27,213 @@ import android.widget.GridView;
public class AlarmActivity extends Activity { public class AlarmActivity extends Activity {
private Context context; private Context context;
public TabLayoutActivity parentTab; private TabLayoutActivity parentTab;
public ArrayList<Alarm> allAlarms = new ArrayList<Alarm>(); private ArrayList<Alarm> allAlarms = new ArrayList<>();
private ArrayList<Boolean> acknowledged = new ArrayList<Boolean>(); private ArrayList<Boolean> acknowledged = new ArrayList<>();
private AlertGridViewAdapter adapter; private AlertGridViewAdapter adapter;
/* Visual resources */ /* Visual resources */
private GridView gridView; private GridView gridView;
public View convertViewAlarm; private View convertViewAlarm;
private int ack_position; private int ackPosition;
private Bundle savedInstanceState;
public Bundle savedInstanceState;
// Need handler for callbacks to the UI thread // Need handler for callbacks to the UI thread
private final Handler myHandler = new Handler(); private final Handler myHandler = new Handler(Looper.getMainLooper());
/** Called when the activity is first created. */ private static final String ALARM = "alarm";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.savedInstanceState = savedInstanceState; /**
// get parentTab * Called when the activity is first created.
parentTab = (TabLayoutActivity)getParent(); */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Locale locale = new Locale(AppParams.LANGUAGETMP); this.setSavedInstanceState(savedInstanceState);
Locale.setDefault(locale); // get parentTab
Configuration config = new Configuration(); setParentTab((TabLayoutActivity) getParent());
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, Locale locale = new Locale(AppParams.LANGUAGETMP);
getBaseContext().getResources().getDisplayMetrics()); Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
context = this;
setContentView(R.layout.tabalarm);
gridView = findViewById(R.id.gridViewAlarms);
adapter = new AlertGridViewAdapter(this, getAllAlarms(), context, acknowledged);
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(onItemClickListener);
// change tab header fontFace
TextView textView1 = findViewById(R.id.textView1);
textView1.setTypeface(Typeface.createFromAsset(getAssets(), "Sketch_Block.ttf"));
textView1.setTextSize(24);
getParentTab().alarmActivity = this;
}
@Override
public void onBackPressed() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(getString(R.string.exit))
.setCancelable(false)
.setNeutralButton(getString(R.string.logout), (dialog, id) -> getParentTab().whenBackPressed(AppParams.ActivityResult.logout))
.setPositiveButton(getString(R.string.ext), (dialog, id) -> getParentTab().whenBackPressed(AppParams.ActivityResult.exit))
.setNegativeButton(getString(R.string.cancel), (dialog, id) -> dialog.cancel());
AlertDialog alert = builder.create();
alert.show();
}
@Override
public void onPause() {
super.onPause();
SM.Debug("onPause");
}
@Override
public void onResume() {
super.onResume();
if (!AppParams.DEMO)
getAlarms();
else {
for (int i = getAllAlarms().size() - 1; i >= 0; i--) {
Alarm alarm = getAllAlarms().get(i);
if (alarm.ack == 1)
getAllAlarms().remove(i);
}
acknowledged = new ArrayList<>();
for (int i = 0; i < getAllAlarms().size(); i++)
acknowledged.add(false);
updateResultsInUi(ALARM);
}
SM.Debug("onResume");
}
context = this; private final OnItemClickListener onItemClickListener = new OnItemClickListener() {
setContentView(R.layout.tabalarm);
gridView = (GridView) findViewById(R.id.gridViewAlarms);
adapter = new AlertGridViewAdapter(this, allAlarms, context, acknowledged);
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(onItemClickListener);
// change tab header fontface
TextView textView1 = (TextView) findViewById(R.id.textView1);
textView1.setTypeface(Typeface.createFromAsset(getAssets(), "Sketch_Block.ttf"));
textView1.setTextSize(24);
parentTab.alarmActivity = this;
}
@Override
public void onBackPressed()
{
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(getString(R.string.exit))
.setCancelable(false)
.setNeutralButton(getString(R.string.logout), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
parentTab.whenBackPressed(AppParams.ActivityResult.logout);
}
})
.setPositiveButton(getString(R.string.ext), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
parentTab.whenBackPressed(AppParams.ActivityResult.exit);
}
})
.setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
@Override
public void onPause()
{
super.onPause();
SM.Debug("onPause");
}
@Override
public void onResume()
{
super.onResume();
if(!AppParams.DEMO)
GetAlarms();
else if (AppParams.DEMO)
{
for(int i=allAlarms.size()-1; i>=0; i--)
{
Alarm alarm = allAlarms.get(i);
if(alarm.ack==1)
allAlarms.remove(i);
}
acknowledged = new ArrayList<Boolean>();
for(int i=0;i<allAlarms.size();i++)
acknowledged.add(false);
updateResultsInUi("alarm");
}
SM.Debug("onResume");
}
private OnItemClickListener onItemClickListener = new OnItemClickListener() {
@Override @Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) { long arg3) {
SM.Debug(" ### CLICK Alarm : " + position); SM.Debug(" ### CLICK Alarm : " + position);
convertViewAlarm = arg1; setConvertViewAlarm(arg1);
// save position // save position
ack_position = position; ackPosition = position;
//Toast.makeText(context, "SETACK " + idx, 1000).show(); if (!AppParams.DEMO)
if(!AppParams.DEMO) setACK(getAllAlarms().get(position).idx, getAllAlarms().get(position).type, getAllAlarms().get(position).unitName);
setACK(allAlarms.get(position).idx,allAlarms.get(position).type); else {
else getAllAlarms().get(position).ack = 1;
{
allAlarms.get(position).ack = 1;
updateResultsInUi("else"); updateResultsInUi("else");
} }
} }
// send ACK to AppServer
private void setACK(int idx, int type, String unitName) {
getParentTab().executeNetworkStuff(new String[]{OperationCodes.SendAlarmAcknoledge + "", idx + "", type + "", unitName});
}
}; };
// Update Alarms received from AppServer // Update Alarms received from AppServer
public void UpdateAlarms(ArrayList<Alarm> list) public void updateAlarms(ArrayList<Alarm> list) {
{ SM.Debug("## updateAlarms: " + list.size());
SM.Debug("## UpdateAlarms: " + list.size()); setAllAlarms(list);
allAlarms = list; acknowledged = new ArrayList<>();
acknowledged = new ArrayList<Boolean>();
// set acknowledged based on alarm.ack value // set acknowledged based on alarm.ack value
for(Alarm alarm: allAlarms) for (Alarm alarm : getAllAlarms()) {
{ acknowledged.add(alarm.ack == 1);
acknowledged.add((alarm.ack == 1)? true: false); SM.Debug("ALARM", "SC_ID> " + alarm.sc_id + " | "
SM.Debug("ALARM", "SC_ID> " + alarm.sc_id + " | " + (getParentTab().getVehHashByScId().get(alarm.sc_id) == null ? "null" : getParentTab().getVehHashByScId().get(alarm.sc_id).name));
+ (parentTab.getVehHashByScId().get(alarm.sc_id) == null ? "null" : parentTab.getVehHashByScId().get(alarm.sc_id).name ));
if (parentTab.getVehHashByScId().get(alarm.sc_id)!=null) if (getParentTab().getVehHashByScId().get(alarm.sc_id) != null)
alarm.unitName = parentTab.getVehHashByScId().get(alarm.sc_id).name; alarm.unitName = getParentTab().getVehHashByScId().get(alarm.sc_id).name;
/*Enumeration<Long> keylist = parentTab.SuperVehHash.keys();
while(keylist.hasMoreElements())
{
SuperVehicle tmp = (SuperVehicle)((parentTab.SuperVehHash.get((long)keylist.nextElement())));
if (tmp.sc_id==alarm.sc_id)
{
alarm.unitName = tmp.name;
break;
}
}*/
} }
myHandler.post(updateResultsRUN);
}
myHandler.post(UpdateResultsRUN); // Create runnable for posting
final Runnable updateResultsRUN = () -> updateResultsInUi(ALARM);
} private void updateResultsInUi(String param) {
if (param.equals(ALARM)) {
// set adapter
adapter = new AlertGridViewAdapter(this, getAllAlarms(), context, acknowledged);
gridView.setAdapter(adapter);
} else {
adapter.changeACK(ackPosition);
SM.Debug("Set ACK: " + ackPosition + " | " + (Boolean.TRUE.equals(acknowledged.get(ackPosition)) ? "true" : "false"));
// Create runnable for posting ViewHolder viewAlarm;
final Runnable UpdateResultsRUN = new Runnable() { viewAlarm = (ViewHolder) getConvertViewAlarm().getTag();
public void run() {
updateResultsInUi("alarm");
}
};
private void updateResultsInUi(String param) switch (Boolean.TRUE.equals(acknowledged.get(ackPosition)) ? 1 : 0) {
{
if(param.equals("alarm"))
{
// set adapter
adapter = new AlertGridViewAdapter(this, allAlarms, context, acknowledged);
gridView.setAdapter(adapter);
}
else
{
adapter.changeACK(ack_position);
SM.Debug("Set ACK: " + ack_position + " | " + (acknowledged.get(ack_position) ? "true": "false"));
ViewHolder viewAlarm = new ViewHolder();
viewAlarm = (ViewHolder) convertViewAlarm.getTag();
switch(acknowledged.get(ack_position) ? 1 : 0)
{
case 1: case 1:
viewAlarm.imageViewAlert.setImageResource(R.drawable.alert_off); viewAlarm.imageViewAlert.setImageResource(R.drawable.alert_off);
//view.imgViewIcon.setImageDrawable(adapter.convertToGrayscale(activity.getResources().getDrawable(liveVehicle.get(position).getSmallIcon())));
break; break;
case 0: case 0:
//view.imgViewAlarm.setImageResource(R.drawable.siren); viewAlarm.imageViewAlert.setImageResource(R.drawable.siren);
//view.imgViewIcon.setImageResource(liveVehicle.get(position).getSmallIcon());
break; break;
default:
throw new IllegalStateException("Unexpected value: " + (Boolean.TRUE.equals(acknowledged.get(ackPosition)) ? 1 : 0));
} }
} }
} }
// update ACK received from AppServer // update ACK received from AppServer
public void UpdateACK() public void updateACK() {
{ myHandler.post(updateAckRUN);
myHandler.post(UpdateAckRUN);
} }
// Create runnable for posting // Create runnable for posting
final Runnable UpdateAckRUN = new Runnable() { final Runnable updateAckRUN = () -> {
public void run() { SM.Debug(" updateACK: ");
SM.Debug(" UpdateACK: "); updateResultsInUi("adapter");
updateResultsInUi("adapter"); };
}
};
// send to AppServer
// send to AppServer private void getAlarms() {
private void GetAlarms() getParentTab().executeNetworkStuff(new String[]{OperationCodes.GetAlarms + "", AppParams.USERID + ""});
{
parentTab.executeNetworkStuff(new String[]{OperationCodes.GetAlarms +"", AppParams.USERID + ""});
//parentTab.getAlarms(AppParams.USERID);
} }
// send ACK to AppServer public TabLayoutActivity getParentTab() {
private void setACK(int idx, int type) return parentTab;
{ }
parentTab.executeNetworkStuff(new String[]{OperationCodes.SendAlarmAcknoledge +"", idx + "", type + ""});
//parentTab.sendAlarmAcknowledge(idx, type); public void setParentTab(TabLayoutActivity parentTab) {
} this.parentTab = parentTab;
}
public ArrayList<Alarm> getAllAlarms() {
return allAlarms;
}
public void setAllAlarms(ArrayList<Alarm> allAlarms) {
this.allAlarms = allAlarms;
}
public View getConvertViewAlarm() {
return convertViewAlarm;
}
public void setConvertViewAlarm(View convertViewAlarm) {
this.convertViewAlarm = convertViewAlarm;
}
public Bundle getSavedInstanceState() {
return savedInstanceState;
}
public void setSavedInstanceState(Bundle savedInstanceState) {
this.savedInstanceState = savedInstanceState;
}
} }

View File

@ -0,0 +1,128 @@
package com.safemobile.dispatch;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.model.Marker;
import com.safemobile.lib.HistPos;
import com.safemobile.lib.SuperVehicle;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Hashtable;
import java.util.Locale;
public class GoogleMapsInfoBubble implements GoogleMap.InfoWindowAdapter {
private final String TAG = GoogleMapsInfoBubble.class.getName();
private final View mWindow;
private Hashtable<Long, SuperVehicle> superVehHash;
private final Context context;
private ArrayList<HistPos> histPosList;
private boolean isLiveTab = true;
public GoogleMapsInfoBubble(LayoutInflater layoutInflater, Context context, Hashtable<Long, SuperVehicle> vehicles) {
this.context = context;
this.superVehHash = vehicles;
mWindow = layoutInflater.inflate(R.layout.map_marker_info_bubble, null);
}
public GoogleMapsInfoBubble(LayoutInflater layoutInflater, Context context) {
isLiveTab = false;
this.context = context;
// this.superVehHash = vehicles;
mWindow = layoutInflater.inflate(R.layout.map_marker_info_bubble, null);
}
public void setHistoryPositions(ArrayList<HistPos> positions) {
this.histPosList = positions;
}
@Override
public View getInfoWindow(@NonNull Marker marker) {
render(marker, mWindow);
return mWindow;
}
@Override
public View getInfoContents(@NonNull Marker marker) {
render(marker, mWindow);
return mWindow;
}
private void render(Marker marker, View view) {
long key = 0;
int position = 0;
if (isLiveTab) {
try {
key = Long.parseLong(marker.getTitle());
} catch (Exception ex) {
Log.v(TAG, "Unable to parse Google Maps Info Bubble title");
}
} else {
try {
position = Integer.getInteger(marker.getTitle());
} catch (Exception e) {
Log.v(TAG, "Unable to parse Google Maps Info Bubble title on History");
}
}
RelativeLayout rlMapInfoBubbleInfo = view.findViewById(R.id.rlMapInfoBubbleInfo);
TextView tvUnitName = view.findViewById(R.id.tvUnitName);
TextView tvGPSLocation = view.findViewById(R.id.tvGPSLocation);
TextView tvTimeAgo = view.findViewById(R.id.tvTimeAgo);
TextView tvSpeed = view.findViewById(R.id.tvSpeed);
TextView tvStreetView = view.findViewById(R.id.tvStreetView);
ImageView streetView = view.findViewById(R.id.streetView);
rlMapInfoBubbleInfo.setVisibility(View.VISIBLE);
boolean isMilitaryTime = false;
Date positionTime;
String speed, address, gpsLocation, name = "";
if (isLiveTab) {
SuperVehicle vehicle = superVehHash.get(key);
positionTime = new Date(vehicle.timeGMT);
address = vehicle.Address != null ? vehicle.Address : "";
name = vehicle.name;
speed = String.format(context.getResources().getString(R.string.speedMph), vehicle.speed);
gpsLocation = "[" + String.format("%.4f", vehicle.lat) + "," + String.format("%.4f",vehicle.lng) + "]";
} else {
HistPos histPos = histPosList.get(position);
positionTime = new Date(histPos.timeGMT);
address = histPos.Address != null ? histPos.Address : "";
speed = String.format(context.getResources().getString(R.string.speedMph), histPos.speed);
gpsLocation = "[" + String.format("%.4f", histPos.lat) + "," + String.format("%.4f",histPos.lng) + "]";
}
String timeFormat = isMilitaryTime
? "HH:mm:ss dd.MMM.yyyy"
: "hh:mm:ss a dd.MMM.yyy";
DateFormat format = new SimpleDateFormat(timeFormat, Locale.ENGLISH);
tvTimeAgo.setText(format.format(positionTime));
tvStreetView.setText(address);
streetView.setVisibility(address.length() > 0 ? View.VISIBLE : View.GONE);
tvStreetView.setVisibility(address.length() > 0 ? View.VISIBLE : View.GONE);
if (!isLiveTab)
tvUnitName.setVisibility(View.GONE);
else
tvUnitName.setText(name);
tvSpeed.setText(speed);
tvGPSLocation.setText(gpsLocation);
}
}

View File

@ -1,23 +1,218 @@
package com.safemobile.dispatch; package com.safemobile.dispatch;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;
import com.google.android.gms.maps.CameraUpdateFactory;
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.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.PolylineOptions;
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;
public class HistoryActivity extends AppCompatActivity { import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
public class HistoryActivity extends AppCompatActivity implements OnMapReadyCallback {
public Bundle savedInstanceState; public Bundle savedInstanceState;
private TabLayoutActivity parentTab;
private GoogleMap googleMap;
private Spinner spinnerVehicle;
private Button displayButton;
private Date startDate, endDate;
private final Handler myHandler = new Handler();
private GoogleMapsInfoBubble infoBubble;
private final ArrayList<Vehicle> allVehicle = new ArrayList<>();
private final ArrayList<String> allVehicleNames = new ArrayList<>();
private final SimpleDateFormat sdf = new SimpleDateFormat("MMMM dd yyyy");
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
this.savedInstanceState = savedInstanceState; this.savedInstanceState = savedInstanceState;
setContentView(R.layout.tabhistory); setContentView(R.layout.tabhistory);
parentTab = (TabLayoutActivity) getParent();
parentTab.historyActivity = this;
Locale locale = new Locale(AppParams.LANGUAGETMP);
Locale.setDefault(locale);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
if (mapFragment != null)
mapFragment.getMapAsync(this);
spinnerVehicle = findViewById(R.id.spinnerVehicle);
getVehicles();
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, allVehicleNames);
adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
spinnerVehicle.setAdapter(adapter);
spinnerVehicle.setSelection(0);
changeMapType();
changeTraffic();
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);
}
});
setDate();
} }
private void displayHistory(ArrayList<HistPos> positions) {
LatLng latLng = null;
PolylineOptions polylineOptions = new PolylineOptions();
BitmapDescriptor markerIcon = BitmapDescriptorFactory.fromResource(R.drawable.history_pin);
for (int i = 0; i < positions.size(); i++) {
HistPos pos = positions.get(i);
if (pos.speed > 0) {
latLng = new LatLng(pos.lat, pos.lng);
polylineOptions.add(latLng);
googleMap.addMarker(new MarkerOptions()
.position(latLng)
.icon(markerIcon)
.title(String.valueOf(i)));
}
}
googleMap.addPolyline(polylineOptions);
if (latLng != null)
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 14));
}
private void setDate() {
Calendar calendar = Calendar.getInstance();
endDate = calendar.getTime();
calendar.add(Calendar.DATE, -1);
startDate = calendar.getTime();
TextView textViewStartDate = findViewById(R.id.textViewStartDate);
TextView textViewEndDate = findViewById(R.id.textViewEndDate);
textViewStartDate.setText(sdf.format(startDate));
textViewEndDate.setText(sdf.format(endDate));
textViewStartDate.setOnClickListener(view -> openDialog(textViewStartDate, true));
textViewEndDate.setOnClickListener(view -> openDialog(textViewEndDate, false));
}
private void openDialog(TextView textView, Boolean isStartDate) {
Date date = startDate;
if (!isStartDate)
date = endDate;
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
DatePickerDialog.OnDateSetListener setListener = (datePicker, y, m, d) -> {
calendar.set(y, m, d);
String dateString = sdf.format(calendar.getTime());
textView.setText(dateString);
if (isStartDate)
startDate = calendar.getTime();
else
endDate = calendar.getTime();
};
Dialog dialog = new DatePickerDialog(this, android.R.style.Theme_Holo_Light_Dialog_MinWidth, setListener,
calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.show();
}
private void changeTraffic() {
ImageView changeTrafficImageView = findViewById(R.id.changeTraffic);
changeTrafficImageView.setOnClickListener(v -> {
if (googleMap.isTrafficEnabled()) {
changeTrafficImageView.setImageResource(R.drawable.traffic_off);
googleMap.setTrafficEnabled(false);
} else {
changeTrafficImageView.setImageResource(R.drawable.traffic);
googleMap.setTrafficEnabled(true);
}
});
}
private void changeMapType() {
ImageView changeMapType = findViewById(R.id.changeMapType);
changeMapType.setOnClickListener(view -> {
if (googleMap.getMapType() == GoogleMap.MAP_TYPE_SATELLITE) {
changeMapType.setImageResource(R.drawable.satellite);
googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
} else {
changeMapType.setImageResource(R.drawable.map);
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
}
});
}
public void getVehicles() {
try {
allVehicle.clear();
allVehicleNames.clear();
for (Vehicle vehicle : parentTab.getAllVehicle()) {
allVehicleNames.add(vehicle.name);
allVehicle.add(vehicle);
}
} catch (Exception ignored) { }
}
final Runnable UpdateMapResults = new Runnable() {
public void run() {
Log.v("updateMap", parentTab.HistPosList.toString());
SM.Debug("Do the Display");
infoBubble.setHistoryPositions(parentTab.HistPosList);
displayHistory(parentTab.HistPosList);
}
};
public void UpdateMap() { public void UpdateMap() {
myHandler.post(UpdateMapResults);
SM.Debug("Do the updateMAP post"); SM.Debug("Do the updateMAP post");
} }
@ -32,4 +227,15 @@ public class HistoryActivity extends AppCompatActivity {
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;
infoBubble = new GoogleMapsInfoBubble(getLayoutInflater(), this);
this.googleMap.setInfoWindowAdapter(infoBubble);
parentTab.demoPositionsList();
displayButton.performClick();
}
} }

View File

@ -42,9 +42,8 @@ public class IconContextMenu implements DialogInterface.OnCancelListener,
private static final int LIST_PREFERED_HEIGHT = 65; private static final int LIST_PREFERED_HEIGHT = 65;
private IconMenuAdapter menuAdapter = null; private IconMenuAdapter menuAdapter;
private Activity parentActivity = null; private Activity parentActivity;
private int dialogId = 0;
private IconContextMenuOnClickListener clickHandler = null; private IconContextMenuOnClickListener clickHandler = null;
@ -55,7 +54,6 @@ public class IconContextMenu implements DialogInterface.OnCancelListener,
*/ */
public IconContextMenu(Activity parent, int id) { public IconContextMenu(Activity parent, int id) {
this.parentActivity = parent; this.parentActivity = parent;
this.dialogId = id;
menuAdapter = new IconMenuAdapter(parentActivity); menuAdapter = new IconMenuAdapter(parentActivity);
} }
@ -89,19 +87,13 @@ public class IconContextMenu implements DialogInterface.OnCancelListener,
public Dialog createMenu(String menuItitle) { public Dialog createMenu(String menuItitle) {
final AlertDialog.Builder builder = new AlertDialog.Builder(parentActivity); final AlertDialog.Builder builder = new AlertDialog.Builder(parentActivity);
builder.setTitle(menuItitle); builder.setTitle(menuItitle);
builder.setAdapter(menuAdapter, new DialogInterface.OnClickListener() { builder.setAdapter(menuAdapter, (dialoginterface, i) -> {
@Override IconContextMenuItem item = (IconContextMenuItem) menuAdapter.getItem(i);
public void onClick(DialogInterface dialoginterface, int i) { if (clickHandler != null)
IconContextMenuItem item = (IconContextMenuItem) menuAdapter.getItem(i); clickHandler.onClick(item.actionTag);
if (clickHandler != null) {
clickHandler.onClick(item.actionTag);
}
}
}); });
builder.setInverseBackgroundForced(true); builder.setInverseBackgroundForced(true);
AlertDialog dialog = builder.create(); AlertDialog dialog = builder.create();
dialog.setOnCancelListener(this); dialog.setOnCancelListener(this);
dialog.setOnDismissListener(this); dialog.setOnDismissListener(this);
@ -117,7 +109,7 @@ public class IconContextMenu implements DialogInterface.OnCancelListener,
} }
private void cleanup() { private void cleanup() {
parentActivity.dismissDialog(dialogId); // parentActivity.dismissDialog(dialogId);
} }
/** /**
@ -131,7 +123,7 @@ public class IconContextMenu implements DialogInterface.OnCancelListener,
* Menu-like list adapter with icon * Menu-like list adapter with icon
*/ */
protected class IconMenuAdapter extends BaseAdapter { protected class IconMenuAdapter extends BaseAdapter {
private Context context = null; private Context context;
private ArrayList<IconContextMenuItem> mItems = new ArrayList<IconContextMenuItem>(); private ArrayList<IconContextMenuItem> mItems = new ArrayList<IconContextMenuItem>();
@ -193,6 +185,7 @@ public class IconContextMenu implements DialogInterface.OnCancelListener,
textView.setTag(item); textView.setTag(item);
textView.setText(item.text); textView.setText(item.text);
textView.setCompoundDrawablesWithIntrinsicBounds(item.image, null, null, null); textView.setCompoundDrawablesWithIntrinsicBounds(item.image, null, null, null);
textView.setTextColor(R.color.black);
return textView; return textView;
} }

View File

@ -9,13 +9,19 @@ import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.view.View; import android.view.View;
import android.view.Window; import android.view.Window;
import android.widget.AdapterView;
import android.widget.Button; import android.widget.Button;
import android.widget.GridView; import android.widget.GridView;
import android.widget.ImageButton; import android.widget.ImageButton;
@ -26,11 +32,13 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
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.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.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions; import com.google.android.gms.maps.model.MarkerOptions;
import com.safemobile.activities.AbstractLiveActivity; import com.safemobile.activities.AbstractLiveActivity;
import com.safemobile.activities.AbstractSDParentActivity; import com.safemobile.activities.AbstractSDParentActivity;
@ -94,6 +102,7 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
//value poll //value poll
private double latPoll = 0; private double latPoll = 0;
private double lngPoll = 0; private double lngPoll = 0;
private ArrayList<Marker> markers = new ArrayList<>();
@Override @Override
@ -130,12 +139,11 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
mapFragment.getMapAsync(this); mapFragment.getMapAsync(this);
} }
// create on vehicle long click menu // create on vehicle long click menu
createIconContextMenu(); createIconContextMenu();
// image View for changing map type satellite or map // image View for changing map type satellite or map
ImageView changeMapTypeImageView = (ImageView) findViewById(R.id.changeMapType); ImageView changeMapTypeImageView = findViewById(R.id.changeMapType);
changeMapTypeImageView.setOnClickListener(v -> { changeMapTypeImageView.setOnClickListener(v -> {
if (googleMap.getMapType() == GoogleMap.MAP_TYPE_SATELLITE) { if (googleMap.getMapType() == GoogleMap.MAP_TYPE_SATELLITE) {
changeMapTypeImageView.setImageResource(R.drawable.satellite); changeMapTypeImageView.setImageResource(R.drawable.satellite);
@ -146,7 +154,7 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
} }
}); });
ImageView changeTrafficImageView = (ImageView) findViewById(R.id.changeTraffic); ImageView changeTrafficImageView = findViewById(R.id.changeTraffic);
changeTrafficImageView.setOnClickListener(v -> { changeTrafficImageView.setOnClickListener(v -> {
if (googleMap.isTrafficEnabled()) { if (googleMap.isTrafficEnabled()) {
changeTrafficImageView.setImageResource(R.drawable.traffic_off); changeTrafficImageView.setImageResource(R.drawable.traffic_off);
@ -158,12 +166,12 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
}); });
// change tab header font // change tab header font
TextView textView1 = (TextView) findViewById(R.id.textView1); TextView textView1 = findViewById(R.id.textView1);
textView1.setTypeface(Typeface.createFromAsset(getAssets(), "Sketch_Block.ttf")); textView1.setTypeface(Typeface.createFromAsset(getAssets(), "Sketch_Block.ttf"));
textView1.setTextSize(24); textView1.setTextSize(24);
// get grid view and set empty data adapter // get grid view and set empty data adapter
gridVehicle = (GridView) findViewById(R.id.gridVehicle); gridVehicle = findViewById(R.id.gridVehicle);
if (AppParams.DEMO) { if (AppParams.DEMO) {
disabledVehicles = new ArrayList<>(); disabledVehicles = new ArrayList<>();
@ -185,14 +193,16 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
threadUI.start(); threadUI.start();
}); });
// get vehicle menu creation // get vehicle menu creation
gridVehicle.setOnItemLongClickListener(itemLongClickHandler); gridVehicle.setOnItemLongClickListener((adapterView, view, i, l) -> {
contextMenuPosition = position;
iconContextMenu.createMenu(getString(R.string.options)).show();
return true;
});
LinearLayout slideLayout = findViewById(R.id.slidelayout);
LinearLayout slideLayout = (LinearLayout) findViewById(R.id.slidelayout); ImageView slideLayoutImageView = findViewById(R.id.slideLayoutImage);
ImageView slideLayoutImageView = (ImageView) findViewById(R.id.slideLayoutImage); LinearLayout linearLayoutVehicles = findViewById(R.id.layoutBig);
LinearLayout linearLayoutVehicles = (LinearLayout) findViewById(R.id.layoutBig);
slideLayout.setOnClickListener(v -> { slideLayout.setOnClickListener(v -> {
if (showVehicle) { if (showVehicle) {
linearLayoutVehicles.setVisibility(View.GONE); linearLayoutVehicles.setVisibility(View.GONE);
@ -205,7 +215,7 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
} }
}); });
imageViewCheckAll = (ImageButton) findViewById(R.id.imageCheckAll); imageViewCheckAll = findViewById(R.id.imageCheckAll);
imageViewCheckAll.setSelected(false); imageViewCheckAll.setSelected(false);
imageViewCheckAll.setOnClickListener(arg0 -> { imageViewCheckAll.setOnClickListener(arg0 -> {
for (int i = 0; i < displayedVehicles.size(); i++) for (int i = 0; i < displayedVehicles.size(); i++)
@ -223,7 +233,7 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
Enumeration<Long> keyList = getParentTab().getSuperVehHash().keys(); Enumeration<Long> keyList = getParentTab().getSuperVehHash().keys();
while (keyList.hasMoreElements()) { while (keyList.hasMoreElements()) {
(Objects.requireNonNull(getParentTab().getSuperVehHash().get((long) keyList.nextElement()))).needUpdate = true; (Objects.requireNonNull(getParentTab().getSuperVehHash().get(keyList.nextElement()))).needUpdate = true;
} }
// change button title // change button title
@ -247,7 +257,7 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
displayVehicle(true, LAT_OUTLIMIT, LNG_OUTLIMIT); displayVehicle(true, LAT_OUTLIMIT, LNG_OUTLIMIT);
}); });
displayButton = (Button) findViewById(R.id.buttonDisplay); displayButton = findViewById(R.id.buttonDisplay);
displayButton.setText(getString(R.string.displayAll)); displayButton.setText(getString(R.string.displayAll));
@ -259,7 +269,7 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
Enumeration<Long> keyList = getParentTab().getSuperVehHash().keys(); Enumeration<Long> keyList = getParentTab().getSuperVehHash().keys();
while (keyList.hasMoreElements()) while (keyList.hasMoreElements())
(Objects.requireNonNull(getParentTab().getSuperVehHash().get((long) keyList.nextElement()))).needUpdate = true; (Objects.requireNonNull(getParentTab().getSuperVehHash().get(keyList.nextElement()))).needUpdate = true;
// change button title // change button title
if (displayButton.getText().toString().equals(getString(R.string.displayAll))) { if (displayButton.getText().toString().equals(getString(R.string.displayAll))) {
@ -297,11 +307,8 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
@Override @Override
public void onMapReady(@NonNull GoogleMap googleMap) { public void onMapReady(@NonNull GoogleMap googleMap) {
this.googleMap = googleMap; this.googleMap = googleMap;
GoogleMapsInfoBubble infoBubble = new GoogleMapsInfoBubble(getLayoutInflater(), this, getParentTab().getSuperVehHash());
// Add a marker in Sydney and move the camera this.googleMap.setInfoWindowAdapter(infoBubble);
LatLng sydney = new LatLng(-34, 151);
this.googleMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
this.googleMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
} }
@ -433,36 +440,101 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
}); });
} }
/**
* create context menu
*/
@Override
public Dialog onCreateDialog(int id) {
if (id == 1) {
return iconContextMenu.createMenu(getString(R.string.options));
}
return super.onCreateDialog(id);
}
/* list item long click handler
* used to show the context menu
*/
private final AdapterView.OnItemLongClickListener itemLongClickHandler = ((parent, view, position, id) -> {
// save position
contextMenuPosition = position;
showDialog(1);
return true;
});
public void displayVehicle(boolean withZoom, double latZoom, double lngZoom) { public void displayVehicle(boolean withZoom, double latZoom, double lngZoom) {
//TODO: add makers for vehicles if (googleMap != null) {
String openWindow = "";
for (Marker marker : markers) {
if (marker.isInfoWindowShown()) {
openWindow = marker.getTitle();
}
}
googleMap.clear();
for (int i = 0; i < displayedVehicles.size(); i++) {
if (displayedVehicles.get(i)) {
SuperVehicle tmpSuper = getParentTab().getSuperVehHash().get(Long.valueOf(liveVehicle.get(i).imei));
if (tmpSuper != null) {
LatLng newLocation = new LatLng(tmpSuper.lat, tmpSuper.lng);
MarkerOptions markerOptions = new MarkerOptions().position(newLocation).title(liveVehicle.get(i).imei);
BitmapDescriptor markerIcon = getProperBitmap(tmpSuper.getLargeIcon(), tmpSuper.name);
markerOptions.icon(markerIcon);
Marker marker = this.googleMap.addMarker(markerOptions);
if (openWindow.equals(marker.getTitle()))
marker.showInfoWindow();
markers.add(marker);
}
}
}
}
} }
public void showOpenedBalloon(boolean demo) { public void showOpenedBalloon(boolean demo) {
//TODO: add show balloon //TODO: add show balloon
} }
private BitmapDescriptor getProperBitmap(int largeIcon, String text) {
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), largeIcon);
Bitmap textBitmap = getTextAsDrawable(this, text);
Bitmap b3 = overlay(bitmap, textBitmap);
return BitmapDescriptorFactory.fromBitmap(b3);
}
public static Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {
int maxWidth = Math.max(bmp1.getWidth(), bmp2.getWidth());
Bitmap bmOverlay = Bitmap.createBitmap(maxWidth, bmp1.getHeight() + bmp2.getHeight(), bmp1.getConfig());
Canvas canvas = new Canvas(bmOverlay);
canvas.drawBitmap(bmp1, new Matrix(), null);
canvas.drawBitmap(bmp2, 0, bmp1.getHeight(), null);
bmp1.recycle();
bmp2.recycle();
return bmOverlay;
}
public Bitmap getTextAsDrawable(Context context, String text) {
Typeface tf = Typeface.create("Helvetica", Typeface.BOLD);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.WHITE);
paint.setTypeface(tf);
paint.setTextSize(convertToPixels(context, 16));
Rect textRect = new Rect();
paint.getTextBounds(text, 0, text.length(), textRect);
Bitmap bitmap = Bitmap.createBitmap(textRect.width(), textRect.height() + 5,
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
paint.setColor(getResources().getColor(R.color.cardview_dark_background));
canvas.drawRect(0, 0, bitmap.getWidth(), bitmap.getHeight(), paint);
float scale = context.getResources().getDisplayMetrics().density;
// text color - #3D3D3D
paint.setColor(Color.rgb(255, 255, 255));
// text size in pixels
// draw text to the Canvas center
Rect bounds = new Rect();
paint.getTextBounds(text, 0, text.length(), bounds);
int x = (bitmap.getWidth() - bounds.width()) / 2;
int y = (bitmap.getHeight() + bounds.height()) / 2;
canvas.drawText(text, x, y, paint);
return bitmap;
}
public int convertToPixels(Context context, int nDP) {
final float conversionScale = context.getResources().getDisplayMetrics().density;
return (int) ((nDP * conversionScale) + 0.5f);
}
public void showLoadingDialog(String message) { public void showLoadingDialog(String message) {
loadingDialog = new Dialog(context); loadingDialog = new Dialog(context);
loadingDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); loadingDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
@ -470,9 +542,9 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
loadingDialog.setCancelable(true); loadingDialog.setCancelable(true);
loadingDialog.setCanceledOnTouchOutside(false); loadingDialog.setCanceledOnTouchOutside(false);
Button cancel = (Button) loadingDialog.findViewById(R.id.buttonCancel); Button cancel = loadingDialog.findViewById(R.id.buttonCancel);
cancel.setVisibility(View.GONE); cancel.setVisibility(View.GONE);
TextView textView1 = (TextView) loadingDialog.findViewById(R.id.textView1); TextView textView1 = loadingDialog.findViewById(R.id.textView1);
textView1.setText(message); textView1.setText(message);
loadingDialog.show(); loadingDialog.show();
@ -501,8 +573,7 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
disabledVehicles.add(!veh.status); disabledVehicles.add(!veh.status);
// add vehicle to hash Table according to driver_id // add vehicle to hash Table according to driver_id
if (tableHashOverlay.get((int) veh.driver_id) == null) // if doesn't exist if (tableHashOverlay.get((int) veh.driver_id) == null) {
{
ArrayList<SuperVehicle> array = new ArrayList<>(); ArrayList<SuperVehicle> array = new ArrayList<>();
SuperVehicle superVehicle = new SuperVehicle(veh.sc_id, veh.imei, veh.lp, veh.name, veh.driver_id, veh.time_route, veh.GPS_reporting_interval, veh.is_stolen); SuperVehicle superVehicle = new SuperVehicle(veh.sc_id, veh.imei, veh.lp, veh.name, veh.driver_id, veh.time_route, veh.GPS_reporting_interval, veh.is_stolen);
array.add(superVehicle); array.add(superVehicle);
@ -519,7 +590,6 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
} }
// set adapter // set adapter
adapter = new VehiclesGridViewAdapter(activity, context, list, disabledVehicles); adapter = new VehiclesGridViewAdapter(activity, context, list, disabledVehicles);
adapter.notifyDataSetChanged(); adapter.notifyDataSetChanged();
@ -538,7 +608,6 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
// show vehicles in gridView // show vehicles in gridView
private void updateResultsUI() { private void updateResultsUI() {
gridVehicle.setAdapter(adapter); gridVehicle.setAdapter(adapter);
try { try {
// hide loading dialog // hide loading dialog
loadingDialog.cancel(); loadingDialog.cancel();
@ -576,7 +645,6 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
pollReceived(position,lat,lng); pollReceived(position,lat,lng);
} }
public void updatePosition(int pos) { public void updatePosition(int pos) {
contextMenuPosition = pos; contextMenuPosition = pos;
} }
@ -598,11 +666,9 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
final Runnable updateOptionsRUN = this::updateOptionsUI; final Runnable updateOptionsRUN = this::updateOptionsUI;
private void updateOptionsUI() { private void updateOptionsUI() {
SM.Debug("REFRESHDisableEnable" + (Boolean.TRUE.equals(disabledVehicles.get(contextMenuPosition)) ? "true" : "false")); SM.Debug("REFRESHDisableEnable" + (Boolean.TRUE.equals(disabledVehicles.get(contextMenuPosition)) ? "true" : "false"));
// change Enable/Disable in adapter // change Enable/Disable in adapter
adapter.changeDisabled(contextMenuPosition, disabledVehicles.get(contextMenuPosition)); adapter.changeDisabled(contextMenuPosition, disabledVehicles.get(contextMenuPosition));
} }
/** /**
@ -692,7 +758,6 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
// zone and channel change intent // zone and channel change intent
IntentFilter intentFilter = new IntentFilter(OperationCodes.UNIT_STATUS_UPDATE + ""); IntentFilter intentFilter = new IntentFilter(OperationCodes.UNIT_STATUS_UPDATE + "");
this.registerReceiver(mReceiver, intentFilter); this.registerReceiver(mReceiver, intentFilter);
} }
//The BroadcastReceiver that listens for Notification broadcasts //The BroadcastReceiver that listens for Notification broadcasts
@ -723,4 +788,9 @@ public class LiveActivity extends AbstractLiveActivity implements OnMapReadyCall
} }
} }
}; };
@Override
public GoogleMap getMap() {
return googleMap;
}
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,243 +1,244 @@
<?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"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:weightSum="1" android:layout_height="fill_parent" android:weightSum="1"
android:id="@+id/layoutMain" android:id="@+id/layoutMain"
style="?bg"> style="?bg">
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="left" android:gravity="left"
android:layout_weight="0" android:layout_weight="0"
android:orientation="horizontal" android:orientation="horizontal"
style="?header" style="?header"
android:id="@+id/layoutHeader"> android:id="@+id/layoutHeader">
<ImageView <ImageView
android:id="@+id/imageViewMsg" android:id="@+id/imageViewMsg"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:src="@drawable/message" android:src="@drawable/message"
android:paddingLeft="0dp" android:paddingLeft="0dp"
android:layout_margin="3dp" android:layout_margin="3dp"
android:layout_weight="0" /> android:layout_weight="0" />
<TextView <TextView
android:id="@+id/textView1" android:id="@+id/textView1"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:gravity="center_vertical" android:gravity="center_vertical"
android:text="@string/textMessaging" android:text="@string/textMessaging"
android:layout_marginLeft="5dp" android:layout_marginLeft="5dp"
android:textStyle="bold" android:textStyle="bold"
android:paddingTop="7dp" android:paddingTop="7dp"
android:textColor="#FFFFFF" android:textColor="#FFFFFF"
android:textAppearance="?android:attr/textAppearanceMedium" android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_weight="0"/> android:layout_weight="0"/>
<ImageView <ImageView
android:id="@+id/imageViewSeparator" android:id="@+id/imageViewSeparator"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:src="@drawable/separator_white" android:src="@drawable/separator_white"
android:layout_margin="2dp" android:layout_margin="2dp"
android:layout_weight="0" android:layout_weight="0"
android:visibility="invisible" android:visibility="invisible"
android:focusable="false" /> android:focusable="false" />
<ImageView
android:id="@+id/imageViewDown"
android:layout_width="20dp"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical"
android:layout_marginBottom="2dp"
android:layout_marginTop="2dp"
android:focusable="false"
android:visibility="invisible"
android:src="@drawable/arrow_menu_down" />
<ImageButton
android:id="@+id/imageButtonAdd2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scaleType="centerInside"
android:layout_marginRight="5dp"
android:paddingLeft="2dp"
android:visibility="invisible"
android:background="@drawable/addmessage_selector"/>
<TextView
android:id="@+id/textViewNew"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:text="New"
android:textStyle="bold"
android:paddingTop="7dp"
android:textColor="#FFFFFF"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_weight="0"
android:paddingRight="5dp"
android:visibility="gone"/>
<ImageButton
android:id="@+id/imageButtonAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:scaleType="centerInside"
android:layout_marginRight="5dp"
android:paddingLeft="2dp"
android:background="@drawable/addmessage_selector"/>
<!-- android:background="@drawable/addmessage_selector" -->
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:layout_weight="0"
android:orientation="horizontal"
style="?header"
android:id="@+id/layoutHeaderConversation">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical">
<ImageButton
android:id="@+id/imageButtonBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="5dp"
android:paddingLeft="2dp"
android:background="@drawable/messageback_selector"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:gravity="right|center_vertical"
android:orientation="horizontal"
android:paddingBottom="2dp"
android:paddingRight="15dp"
android:paddingTop="3dp" >
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="0">
<ImageView <ImageView
android:id="@+id/imageViewDown" android:id="@+id/imageViewSelectedContact"
android:layout_width="20dp" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:src="@drawable/ambulance_large"
android:layout_marginBottom="2dp" android:layout_margin="3dp" />
android:layout_marginTop="2dp" </LinearLayout>
android:focusable="false" <TextView
android:visibility="invisible" android:id="@+id/textViewSelectedContact"
android:src="@drawable/arrow_menu_down" /> android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="Large Text"
android:gravity="center_vertical"
android:paddingLeft="3dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_weight="0"/>
<ImageButton </LinearLayout>
android:id="@+id/imageButtonAdd2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scaleType="centerInside"
android:layout_marginRight="5dp"
android:paddingLeft="2dp"
android:visibility="invisible"
android:background="@drawable/addmessage_selector"/>
<TextView <!-- android:background="@drawable/addmessage_selector" -->
android:id="@+id/textViewNew" </LinearLayout>
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:text="New"
android:textStyle="bold"
android:paddingTop="7dp"
android:textColor="#FFFFFF"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_weight="0"
android:paddingRight="5dp"
android:visibility="gone"/>
<ImageButton <LinearLayout
android:id="@+id/imageButtonAdd" android:layout_width="fill_parent"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_height="wrap_content" android:id="@+id/layoutConversations"
android:layout_weight="0" android:layout_weight="1"
android:scaleType="centerInside" android:orientation="vertical">
android:layout_marginRight="5dp"
android:paddingLeft="2dp"
android:background="@drawable/addmessage_selector"/>
<!-- android:background="@drawable/addmessage_selector" --> <GridView
</LinearLayout> android:id="@+id/gridView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#999999"
android:drawSelectorOnTop="false"
android:horizontalSpacing="0dp"
android:numColumns="1"
android:verticalSpacing="1dp" >
</GridView>
</LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:id="@+id/layoutSendMsg"
android:layout_height="wrap_content" android:layout_width="fill_parent"
android:gravity="left" android:layout_height="wrap_content"
android:layout_weight="0" android:gravity="left"
android:orientation="horizontal" android:layout_weight="0"
style="?header" android:orientation="horizontal"
android:id="@+id/layoutHeaderConversation"> style="?header">
<LinearLayout
<LinearLayout android:layout_weight="0"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent">
android:layout_gravity="center_vertical"> <TextView
<ImageButton android:id="@+id/textView1"
android:id="@+id/imageButtonBack" 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" android:text="@string/message"
android:layout_marginRight="5dp" android:layout_marginLeft="5dp"
android:paddingLeft="2dp" android:layout_marginRight="5dp"
android:background="@drawable/messageback_selector"/> android:textAppearance="?android:attr/textAppearanceLarge"
</LinearLayout> />
<LinearLayout </LinearLayout>
android:layout_width="fill_parent" <LinearLayout
android:layout_height="fill_parent" android:layout_weight="1"
android:layout_gravity="center_horizontal" android:layout_width="fill_parent"
android:layout_weight="1" android:layout_height="wrap_content"
android:gravity="right|center_vertical" android:gravity="center_vertical"
android:orientation="horizontal" android:paddingTop="4dp">
android:paddingBottom="2dp" <EditText
android:paddingRight="15dp" android:id="@+id/editTextMsg"
android:paddingTop="3dp" > android:layout_width="fill_parent"
android:layout_height="wrap_content"
<LinearLayout android:layout_gravity="center_vertical"
android:layout_height="wrap_content" android:gravity="center_vertical"
android:layout_width="wrap_content" android:inputType="text"
android:layout_gravity="center_vertical" android:autofillHints="">
android:layout_weight="0"> </EditText>
<ImageView </LinearLayout>
android:id="@+id/imageViewSelectedContact" <LinearLayout
android:layout_width="wrap_content" android:layout_weight="0"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:src="@drawable/ambulance_large" android:layout_height="wrap_content"
android:layout_margin="3dp" /> android:gravity="center_vertical"
</LinearLayout> android:paddingTop="4dp">
<TextView <ImageView
android:id="@+id/textViewSelectedContact" android:id="@+id/imageBarcode"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="35dp"
android:text="Large Text" android:src="@drawable/barcode"
android:gravity="center_vertical" android:paddingTop="2dp"
android:paddingLeft="3dp" android:layout_margin="3dp" />
android:textAppearance="?android:attr/textAppearanceMedium" </LinearLayout>
android:layout_weight="0"/> <Button
android:id="@+id/imageButtonSend"
</LinearLayout> android:layout_width="wrap_content"
android:layout_height="wrap_content"
<!-- android:background="@drawable/addmessage_selector" --> android:layout_weight="0"
</LinearLayout> android:text="@string/send"
android:layout_marginRight="5dp"
<LinearLayout android:layout_gravity="center"
android:layout_width="fill_parent" android:paddingLeft="6dp"
android:layout_height="wrap_content" android:textColor="#000000"
android:id="@+id/layoutConversations" style="?login"
android:layout_weight="1" />
android:orientation="vertical"> </LinearLayout>
<GridView
android:id="@+id/gridView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#999999"
android:drawSelectorOnTop="false"
android:horizontalSpacing="0dp"
android:numColumns="1"
android:verticalSpacing="1dp" >
</GridView>
</LinearLayout>
<LinearLayout
android:id="@+id/layoutSendMsg"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:layout_weight="0"
android:orientation="horizontal"
style="?header">
<LinearLayout
android:layout_weight="0"
android:layout_width="wrap_content"
android:layout_height="fill_parent">
<TextView
android:id="@+id/textViewSendMsg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/message"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:textAppearance="?android:attr/textAppearanceLarge"
/>
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingTop="4dp">
<EditText
android:id="@+id/editTextMsg"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:inputType="text" >
</EditText>
</LinearLayout>
<LinearLayout
android:layout_weight="0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingTop="4dp">
<ImageView
android:id="@+id/imageBarcode"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:src="@drawable/barcode"
android:paddingTop="2dp"
android:layout_margin="3dp" />
</LinearLayout>
<Button
android:id="@+id/imageButtonSend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:text="@string/send"
android:layout_marginRight="5dp"
android:layout_gravity="center"
android:paddingLeft="6dp"
android:textColor="#000000"
style="?login"
/>
</LinearLayout>
</LinearLayout> </LinearLayout>

View File

@ -5,337 +5,330 @@
android:id="@+id/tab1Layout" android:orientation="horizontal" android:id="@+id/tab1Layout" android:orientation="horizontal"
style="?bg"> style="?bg">
<RelativeLayout <RelativeLayout
android:id="@+id/relativeHeader" android:id="@+id/relativeHeader"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentTop="true"> android:layout_alignParentTop="true">
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="left" android:gravity="left"
android:layout_weight="0" android:layout_weight="0"
android:orientation="horizontal" android:orientation="horizontal"
style="?header" style="?header"
android:id="@+id/layoutHeader"> android:id="@+id/layoutHeader">
<ImageView <ImageView
android:id="@+id/imageViewMsg" android:id="@+id/imageViewMsg"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:src="@drawable/calendar_48_red" android:src="@drawable/calendar_48_red"
android:paddingLeft="0dp" android:paddingLeft="0dp"
android:layout_margin="3dp" android:layout_margin="3dp"
android:layout_weight="0" /> android:layout_weight="0" />
<TextView <TextView
android:id="@+id/textView1" android:id="@+id/textView1"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:gravity="center_vertical" android:gravity="center_vertical"
android:text="@string/history" android:text="@string/history"
android:layout_marginLeft="5dp" android:layout_marginLeft="5dp"
android:textStyle="bold" android:textStyle="bold"
android:paddingTop="7dp" android:paddingTop="7dp"
android:textColor="#FFFFFF" android:textColor="#FFFFFF"
android:textAppearance="?android:attr/textAppearanceMedium" android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_weight="0"/> android:layout_weight="0"/>
<ImageView <ImageView
android:id="@+id/imageViewSeparator" android:id="@+id/imageViewSeparator"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:src="@drawable/separator_white" android:src="@drawable/separator_white"
android:layout_margin="2dp" android:layout_margin="2dp"
android:layout_weight="0" android:layout_weight="0"
android:visibility="invisible" android:visibility="invisible"
android:focusable="false" /> android:focusable="false" />
<ImageView <ImageView
android:id="@+id/imageViewDown" android:id="@+id/imageViewDown"
android:layout_width="20dp" android:layout_width="20dp"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginBottom="2dp" android:layout_marginBottom="2dp"
android:layout_marginTop="2dp" android:layout_marginTop="2dp"
android:focusable="false" android:focusable="false"
android:visibility="invisible" android:visibility="invisible"
android:src="@drawable/arrow_menu_down" /> android:src="@drawable/arrow_menu_down" />
<ImageButton <ImageButton
android:id="@+id/imageButtonAdd2" android:id="@+id/imageButtonAdd2"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:scaleType="centerInside" android:scaleType="centerInside"
android:layout_marginRight="5dp" android:layout_marginRight="5dp"
android:paddingLeft="2dp" android:paddingLeft="2dp"
android:visibility="invisible" android:visibility="invisible"
android:background="@drawable/addmessage_selector"/> android:background="@drawable/addmessage_selector"/>
<ImageView <ImageView
android:id="@+id/changeTraffic" android:id="@+id/changeTraffic"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:padding="3dp" android:padding="3dp"
android:layout_weight="0" android:layout_weight="0"
android:src="@drawable/traffic_off" android:src="@drawable/traffic_off"
android:adjustViewBounds="true"/> android:adjustViewBounds="true"/>
<ImageView <ImageView
android:id="@+id/changeMapTypeHeader" android:id="@+id/changeMapTypeHeader"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:padding="3dp" android:padding="3dp"
android:layout_weight="0" android:layout_weight="0"
android:src="@drawable/satellite" android:src="@drawable/satellite"
android:adjustViewBounds="true"/> android:adjustViewBounds="true"/>
<TextView <TextView
android:id="@+id/textViewNew" android:id="@+id/textViewNew"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:gravity="center_vertical" android:gravity="center_vertical"
android:text="New" android:text="New"
android:textStyle="bold" android:textStyle="bold"
android:paddingTop="7dp" android:paddingTop="7dp"
android:textColor="#FFFFFF" android:textColor="#FFFFFF"
android:textAppearance="?android:attr/textAppearanceMedium" android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_weight="0" android:layout_weight="0"
android:paddingRight="5dp" android:paddingRight="5dp"
android:visibility="gone"/> android:visibility="gone"/>
<!-- android:background="@drawable/addmessage_selector" -->
</LinearLayout> </LinearLayout>
</RelativeLayout>
</RelativeLayout> <RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/relativeHeader">
<RelativeLayout <LinearLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:layout_below="@+id/relativeHeader"> android:weightSum="1">
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:layout_width="200dp"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:weightSum="1"> android:id="@+id/layoutBig"
android:orientation="vertical"
android:visibility="visible">
<LinearLayout
<LinearLayout android:layout_width="fill_parent"
android:layout_width="200dp" android:layout_height="fill_parent"
android:layout_height="fill_parent" android:id="@+id/liveVehicle"
android:id="@+id/layoutBig" android:background="#ffffff"
android:orientation="vertical" android:orientation="vertical">
android:visibility="visible">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/liveVehicle"
android:background="#ffffff"
android:orientation="vertical">
<LinearLayout <LinearLayout
android:id="@+id/LayoutSpinner" android:id="@+id/LayoutSpinner"
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"
android:paddingTop="10dp" android:paddingTop="10dp"
android:gravity="top" android:gravity="top"
android:layout_weight="1"> android:layout_weight="1">
<TextView <TextView
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/vehicle" android:text="@string/vehicle"
android:textSize="20dp" android:textSize="20dp"
android:paddingLeft="5dp"
android:textColor="#000000"
android:gravity="left"
android:id="@+id/labelVehicle"/>
<Spinner
android:id="@+id/spinnerVehicle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:entries="@array/arrayLanguages"
android:gravity="center_horizontal"
android:prompt="@string/selUsername"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/startDate"
android:textSize="22dp"
android:paddingLeft="5dp"
android:layout_marginTop="15sp"
android:textColor="#000000"
android:gravity="left"
android:id="@+id/labelStartDate"
/>
<LinearLayout
android:id="@+id/layoutStartPicker"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_gravity="left"
android:gravity="right"
android:layout_marginLeft="2sp"
android:layout_marginRight="3sp"
android:orientation="horizontal"
android:background="@drawable/style_spinner">
<ImageView
android:id="@+id/imageViewStartDate"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical"
android:src="@drawable/calendar_48" />
<TextView
android:id="@+id/textViewStartDate"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:text="10:41, 12.12.2011"
android:textSize="18sp"
android:paddingLeft="1dp"
android:textColor="#000000"/>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/endDate"
android:textSize="22dp"
android:paddingLeft="5dp"
android:textColor="#000000"
android:gravity="left"
android:id="@+id/labelEndDate"
/>
<LinearLayout
android:id="@+id/layoutEndPicker"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_gravity="left"
android:gravity="right"
android:layout_marginTop="3sp"
android:layout_marginLeft="2sp"
android:layout_marginRight="3sp"
android:orientation="horizontal"
android:background="@drawable/style_spinner">
<ImageView
android:id="@+id/imageViewEndDate"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:src="@drawable/calendar_48_red" />
<TextView
android:id="@+id/textViewEndDate"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:text="10:00, 13.12.2011"
android:textSize="18sp"
android:paddingLeft="1dp"
android:textColor="#000000" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="bottom">
<TextView
android:id="@+id/textViewSearch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="bottom"
android:text=""
android:textSize="16dp"
android:paddingLeft="5dp" android:paddingLeft="5dp"
android:textColor="#000000" android:textColor="#000000"/>
android:gravity="left" </LinearLayout>
android:id="@+id/labelVehicle"/> </LinearLayout>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="0"
style="?header"
android:gravity="center"
android:paddingTop="4dp">
<Spinner <Button
android:id="@+id/spinnerVehicle" android:id="@+id/buttonDisplay"
android:layout_width="fill_parent" style="?login"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:entries="@array/arrayLanguages" android:layout_height="wrap_content"
android:gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:prompt="@string/selUsername"/> android:layout_weight="0"
<TextView android:text="@string/display" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/startDate"
android:textSize="22dp"
android:paddingLeft="5dp"
android:textColor="#000000"
android:gravity="left"
android:id="@+id/labelStartDate"
android:visibility="gone"/>
<LinearLayout
android:id="@+id/layoutStartPicker"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_gravity="left"
android:gravity="right"
android:layout_marginLeft="2sp"
android:layout_marginRight="3sp"
android:orientation="horizontal"
android:background="@drawable/style_spinner">
<ImageView
android:id="@+id/imageViewStartDate"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical"
android:src="@drawable/calendar_48" />
<TextView
android:id="@+id/textViewStartDate"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:text="10:41, 12.12.2011"
android:textSize="18sp"
android:paddingLeft="1dp"
android:textColor="#000000"/>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/endDate"
android:textSize="22dp"
android:paddingLeft="5dp"
android:textColor="#000000"
android:gravity="left"
android:id="@+id/labelEndDate"
android:visibility="gone"/>
<LinearLayout
android:id="@+id/layoutEndPicker"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_gravity="left"
android:gravity="right"
android:layout_marginTop="3sp"
android:layout_marginLeft="2sp"
android:layout_marginRight="3sp"
android:orientation="horizontal"
android:background="@drawable/style_spinner">
<ImageView
android:id="@+id/imageViewEndDate"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:src="@drawable/calendar_48_red" />
<TextView
android:id="@+id/textViewEndDate"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:text="10:00, 13.12.2011"
android:textSize="18sp"
android:paddingLeft="1dp"
android:textColor="#000000" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="bottom">
<TextView
android:id="@+id/textViewSearch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="bottom"
android:text=""
android:textSize="16dp"
android:paddingLeft="5dp"
android:textColor="#000000"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="0"
style="?header"
android:gravity="center"
android:paddingTop="4dp">
<Button </LinearLayout>
android:id="@+id/buttonDisplay" </LinearLayout>
style="?login" </LinearLayout>
android:layout_width="wrap_content" <LinearLayout
android:layout_height="wrap_content" android:layout_width="20dp"
android:layout_gravity="center_horizontal" android:layout_height="fill_parent"
android:layout_weight="0" android:id="@+id/slidelayout"
android:text="@string/display" /> android:layout_toRightOf="@id/liveVehicle"
android:gravity="center_vertical"
android:orientation="vertical"
android:layout_weight="0">
<ImageView
android:id="@+id/slideLayoutImage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:src="@drawable/arrow_left"
android:layout_weight="1"
style="?sliders" />
</LinearLayout>
</LinearLayout> <fragment
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/map"
android:layout_toRightOf="@id/slidelayout"
android:layout_weight="1"
tools:context=".HistoryActivity"
android:name="com.google.android.gms.maps.SupportMapFragment" />
</LinearLayout>
</LinearLayout> </LinearLayout>
<LinearLayout <ImageView
android:layout_width="20dp" android:id="@+id/changeMapType"
android:layout_height="fill_parent" android:layout_width="wrap_content"
android:id="@+id/slidelayout" android:layout_height="wrap_content"
android:layout_toRightOf="@id/liveVehicle" android:layout_alignParentRight="true"
android:gravity="center_vertical" android:layout_alignParentTop="true"
android:orientation="vertical" android:padding="3dp"
android:layout_weight="0"> android:src="@drawable/satellite"
<ImageView android:visibility="gone"/>
android:id="@+id/slideLayoutImage" <LinearLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="30dp"
android:gravity="center_horizontal" android:layout_margin="3dp"
android:src="@drawable/arrow_left" android:layout_alignLeft="@+id/changeMapType"
android:layout_weight="1" android:layout_below="@+id/changeMapType"
style="?sliders" /> android:background="#fff"
</LinearLayout> android:orientation="horizontal"
android:id="@+id/layoutTraffic"
<LinearLayout android:visibility="gone">
android:id="@+id/layoutGoogleMaps" <ImageView
android:layout_width="fill_parent" android:id="@+id/checkTraffic"
android:layout_height="fill_parent" android:layout_width="wrap_content"
android:layout_toRightOf="@id/slidelayout" android:layout_height="fill_parent"
android:layout_weight="1" android:padding="1dp"
android:orientation="horizontal" > android:src="@drawable/checked"/>
</LinearLayout> <TextView
android:id="@+id/changeTraffic2"
</LinearLayout> android:text="Traffic"
<ImageView android:textSize="16dp"
android:id="@+id/changeMapType" android:textColor="#000"
android:layout_width="wrap_content" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="fill_parent"
android:layout_alignParentRight="true" android:gravity="center_vertical"/>
android:layout_alignParentTop="true"
android:padding="3dp"
android:src="@drawable/satellite"
android:visibility="gone"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="30dp"
android:layout_margin="3dp"
android:layout_alignLeft="@+id/changeMapType"
android:layout_below="@+id/changeMapType"
android:background="#fff"
android:orientation="horizontal"
android:id="@+id/layoutTraffic"
android:visibility="gone">
<ImageView
android:id="@+id/checkTraffic"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:padding="1dp"
android:src="@drawable/checked"/>
<TextView
android:id="@+id/changeTraffic2"
android:text="Traffic"
android:textSize="16dp"
android:textColor="#000"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"/>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
</RelativeLayout> </RelativeLayout>

View File

@ -5,88 +5,68 @@
android:orientation="vertical" > android:orientation="vertical" >
<LinearLayout <LinearLayout
android:id="@+id/linearLayout1" android:id="@+id/linearLayout1"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:background="#000000"> android:background="#000000">
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout2" android:orientation="vertical">
<!--
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout3">
<LinearLayout android:layout_width="80dp" android:id="@+id/linearLayout4" android:layout_height="wrap_content"> <LinearLayout
<Button android:layout_width="wrap_content" android:text="Create tabs" android:layout_height="wrap_content" android:id="@+id/button1"></Button> android:layout_width="fill_parent"
</LinearLayout> android:id="@+id/linearLayout6"
<LinearLayout android:layout_height="match_parent" android:id="@+id/linearLayout5" android:layout_width="match_parent"> android:orientation="horizontal"
<LinearLayout android:layout_width="100dp" android:layout_height="match_parent" android:id="@+id/linearLayout7" android:layout_weight="0.29" android:weightSum="1"> android:layout_height="fill_parent">
<Button android:text="Remove selected tab" android:layout_height="wrap_content" android:id="@+id/button3" android:layout_width="wrap_content"></Button> <TabHost
</LinearLayout> android:layout_width="fill_parent"
<EditText android:layout_width="wrap_content" android:id="@+id/editText1" android:layout_height="wrap_content" android:inputType="number" android:layout_weight="13.86"> android:layout_height="fill_parent"
<requestFocus></requestFocus> android:id="@android:id/tabhost"
</EditText> android:layout_weight="1">
<LinearLayout android:layout_width="80dp" android:layout_height="match_parent" android:id="@+id/linearLayout7" android:layout_weight="0.29" android:weightSum="1"> <RelativeLayout
<Button android:layout_width="wrap_content" android:text="Add tab" android:layout_height="wrap_content" android:id="@+id/button2" android:layout_weight="0.25"></Button> android:orientation="vertical"
</LinearLayout>
</LinearLayout>
</LinearLayout>
-->
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:id="@+id/linearLayout6" android:layout_height="fill_parent"
android:orientation="horizontal" android:padding="0dp">
android:layout_height="fill_parent"> <TabWidget
<TabHost android:id="@android:id/tabs"
android:layout_width="390dp"
android:layout_height="wrap_content"/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:id="@android:id/tabhost" android:layout_below="@android:id/tabs"/>
android:layout_weight="1">
<RelativeLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="0dp">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="390dp"
android:layout_height="wrap_content"/>
<FrameLayout </RelativeLayout>
android:id="@android:id/tabcontent" </TabHost>
android:layout_width="fill_parent" <LinearLayout
android:layout_height="fill_parent" android:layout_width="wrap_content"
android:layout_below="@android:id/tabs"/> android:layout_height="fill_parent"
android:layout_weight="0"
</RelativeLayout> android:orientation="horizontal">
</TabHost> <LinearLayout
<LinearLayout android:layout_width="20dp"
android:layout_width="wrap_content" android:layout_height="fill_parent"
android:layout_height="fill_parent" android:id="@+id/layoutSlideMenu"
android:layout_weight="0" android:gravity="center_vertical"
android:orientation="horizontal"> android:orientation="vertical"
<LinearLayout android:layout_weight="0">
android:layout_width="20dp" <ImageView
android:layout_height="fill_parent" android:id="@+id/imageViewSlideMenu"
android:id="@+id/layoutSlideMenu" android:layout_width="fill_parent"
android:gravity="center_vertical" android:layout_height="fill_parent"
android:orientation="vertical" android:gravity="center_horizontal"
android:layout_weight="0"> android:src="@drawable/arrow_right"
<ImageView android:layout_weight="1"
android:id="@+id/imageViewSlideMenu" style="?sliders" />
android:layout_width="fill_parent" </LinearLayout>
android:layout_height="fill_parent" <include
android:gravity="center_horizontal" android:id="@+id/layoutMenu"
android:src="@drawable/arrow_right" android:layout_width="fill_parent"
android:layout_weight="1" android:layout_height="fill_parent"
style="?sliders" /> layout="@layout/menu" />
</LinearLayout>
<include
android:id="@+id/layoutMenu"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
layout="@layout/menu" />
</LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout>
</LinearLayout> </LinearLayout>
<RelativeLayout <RelativeLayout
@ -100,15 +80,15 @@
android:layout_margin="2dp" android:layout_margin="2dp"
android:visibility="invisible" android:visibility="invisible"
android:background="@drawable/alert_message"> android:background="@drawable/alert_message">
android:visibility="invisible" <ImageView
android:background="@drawable/alert_message"> android:id="@+id/imageViewClose"
<ImageView android:layout_width="wrap_content"
android:id="@+id/imageViewClose" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:src="@drawable/balloon_overlay_close"
android:layout_height="wrap_content" android:layout_alignParentRight="true"
android:src="@drawable/balloon_overlay_close" android:layout_alignParentTop="true"
android:layout_alignParentRight="true" android:visibility="invisible"
android:layout_alignParentTop="true" android:background="@drawable/balloon_close_bg_selector" />
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -127,15 +107,15 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:layout_above="@android:id/tabs"/> android:layout_above="@android:id/tabs"/>
<LinearLayout <LinearLayout
android:layout_above="@android:id/tabs"/> android:layout_width="wrap_content"
<LinearLayout android:layout_height="wrap_content"
android:layout_width="wrap_content" android:orientation="horizontal">
android:layout_height="wrap_content" <ImageView
android:orientation="horizontal"> android:id="@+id/imageViewPopUp"
<ImageView android:layout_width="wrap_content"
android:id="@+id/imageViewPopUp" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:src="@drawable/message"
android:layout_height="wrap_content" android:layout_gravity="center_vertical" />
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -162,7 +142,6 @@
android:layout_gravity="center_vertical"/> android:layout_gravity="center_vertical"/>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout>
</LinearLayout> </LinearLayout>
</RelativeLayout> </RelativeLayout>
</RelativeLayout> </RelativeLayout>

View File

@ -1,240 +1,241 @@
<?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"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:weightSum="1" android:layout_height="fill_parent" android:weightSum="1"
android:id="@+id/layoutMain" android:id="@+id/layoutMain"
style="?bg"> style="?bg">
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="left" android:gravity="left"
android:layout_weight="0" android:layout_weight="0"
android:orientation="horizontal" android:orientation="horizontal"
style="?header" style="?header"
android:id="@+id/layoutHeader"> android:id="@+id/layoutHeader">
<ImageView <ImageView
android:id="@+id/imageViewMsg" android:id="@+id/imageViewMsg"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:src="@drawable/message" android:src="@drawable/message"
android:paddingLeft="5dp" android:paddingLeft="5dp"
android:layout_margin="3dp" android:layout_margin="3dp"
android:layout_weight="0" /> android:layout_weight="0" />
<TextView <TextView
android:id="@+id/textView1" android:id="@+id/textView1"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:gravity="center_vertical" android:gravity="center_vertical"
android:text="@string/textMessaging" android:text="@string/textMessaging"
android:layout_marginLeft="5dp" android:layout_marginLeft="5dp"
android:textStyle="bold" android:textStyle="bold"
android:paddingTop="7dp" android:paddingTop="7dp"
android:textColor="#FFFFFF" android:textColor="#FFFFFF"
android:textAppearance="?android:attr/textAppearanceMedium" android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_weight="0"/> android:layout_weight="0"/>
<ImageView <ImageView
android:id="@+id/imageViewSeparator" android:id="@+id/imageViewSeparator"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:src="@drawable/separator_white" android:src="@drawable/separator_white"
android:layout_margin="2dp" android:layout_margin="2dp"
android:layout_weight="0" android:layout_weight="0"
android:visibility="invisible" android:visibility="invisible"
android:focusable="false" /> android:focusable="false" />
<ImageView
android:id="@+id/imageViewDown"
android:layout_width="20dp"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical"
android:layout_marginBottom="2dp"
android:layout_marginTop="2dp"
android:focusable="false"
android:visibility="invisible"
android:src="@drawable/arrow_menu_down" />
<ImageButton
android:id="@+id/imageButtonAdd2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scaleType="centerInside"
android:layout_marginRight="5dp"
android:paddingLeft="2dp"
android:visibility="invisible"
android:background="@drawable/addmessage_selector"/>
<ImageButton
android:id="@+id/imageButtonAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:scaleType="centerInside"
android:layout_marginRight="5dp"
android:paddingLeft="2dp"
android:background="@drawable/addmessage_selector"/>
<TextView
android:id="@+id/textViewNew"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:text="New"
android:textStyle="bold"
android:paddingTop="7dp"
android:textColor="#FFFFFF"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_weight="0"
android:paddingRight="5dp"
android:visibility="gone"/>
<!-- android:background="@drawable/addmessage_selector" -->
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:layout_weight="0"
android:orientation="horizontal"
style="?header"
android:id="@+id/layoutHeaderConversation">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical">
<ImageButton
android:id="@+id/imageButtonBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="5dp"
android:paddingLeft="2dp"
android:background="@drawable/messageback_selector"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:gravity="right|center_vertical"
android:orientation="horizontal"
android:paddingBottom="0dp"
android:paddingRight="15dp"
android:paddingTop="0dp" >
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="0">
<ImageView <ImageView
android:id="@+id/imageViewDown" android:id="@+id/imageViewSelectedContact"
android:layout_width="20dp" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="35dp"
android:layout_gravity="center_vertical" android:src="@drawable/ambulance_large"
android:layout_marginBottom="2dp" android:layout_margin="3dp" />
android:layout_marginTop="2dp" </LinearLayout>
android:focusable="false" <TextView
android:visibility="invisible" android:id="@+id/textViewSelectedContact"
android:src="@drawable/arrow_menu_down" /> android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="Large Text"
android:gravity="center_vertical"
android:paddingLeft="3dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_weight="0"/>
<ImageButton </LinearLayout>
android:id="@+id/imageButtonAdd2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scaleType="centerInside"
android:layout_marginRight="5dp"
android:paddingLeft="2dp"
android:visibility="invisible"
android:background="@drawable/addmessage_selector"/>
<ImageButton <!-- android:background="@drawable/addmessage_selector" -->
android:id="@+id/imageButtonAdd" </LinearLayout>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:scaleType="centerInside"
android:layout_marginRight="5dp"
android:paddingLeft="2dp"
android:background="@drawable/addmessage_selector"/>
<TextView
android:id="@+id/textViewNew"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:text="New"
android:textStyle="bold"
android:paddingTop="7dp"
android:textColor="#FFFFFF"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_weight="0"
android:paddingRight="5dp"
android:visibility="gone"/>
<!-- android:background="@drawable/addmessage_selector" -->
</LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="left" android:id="@+id/layoutConversations"
android:layout_weight="0" android:layout_weight="1"
android:orientation="horizontal" android:orientation="vertical">
style="?header"
android:id="@+id/layoutHeaderConversation">
<LinearLayout <GridView
android:layout_width="wrap_content" android:id="@+id/gridView1"
android:layout_height="fill_parent" android:layout_width="fill_parent"
android:layout_gravity="center_vertical"> android:layout_height="wrap_content"
<ImageButton android:background="#999999"
android:id="@+id/imageButtonBack" android:drawSelectorOnTop="false"
android:layout_width="wrap_content" android:horizontalSpacing="0dp"
android:layout_height="wrap_content" android:numColumns="1"
android:layout_gravity="center_vertical" android:verticalSpacing="1dp" >
android:layout_marginRight="5dp" </GridView>
android:paddingLeft="2dp" </LinearLayout>
android:background="@drawable/messageback_selector"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:gravity="right|center_vertical"
android:orientation="horizontal"
android:paddingBottom="0dp"
android:paddingRight="15dp"
android:paddingTop="0dp" >
<LinearLayout <LinearLayout
android:layout_height="wrap_content" android:id="@+id/layoutSendMsg"
android:layout_width="wrap_content" android:layout_width="fill_parent"
android:layout_gravity="center_vertical" android:layout_height="wrap_content"
android:layout_weight="0"> android:gravity="left"
<ImageView android:layout_weight="0"
android:id="@+id/imageViewSelectedContact" android:orientation="horizontal"
android:layout_width="wrap_content" style="?header">
android:layout_height="35dp" <LinearLayout
android:src="@drawable/ambulance_large" android:layout_weight="0"
android:layout_margin="3dp" /> android:layout_width="wrap_content"
</LinearLayout> android:layout_height="fill_parent">
<TextView <TextView
android:id="@+id/textViewSelectedContact" android:id="@+id/textView1"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_height="wrap_content"
android:text="Large Text" android:layout_gravity="center_vertical"
android:gravity="center_vertical" android:text="@string/message"
android:paddingLeft="3dp" android:layout_marginLeft="5dp"
android:textAppearance="?android:attr/textAppearanceMedium" android:layout_marginRight="5dp"
android:layout_weight="0"/> android:textSize="18dp"
/>
</LinearLayout> </LinearLayout>
<LinearLayout
<!-- android:background="@drawable/addmessage_selector" --> android:layout_weight="1"
</LinearLayout> android:layout_width="fill_parent"
android:layout_height="wrap_content"
<LinearLayout android:gravity="center_vertical"
android:layout_width="fill_parent" android:paddingTop="4dp">
android:layout_height="wrap_content" <EditText
android:id="@+id/layoutConversations" android:id="@+id/editTextMsg"
android:layout_weight="1" android:layout_width="fill_parent"
android:orientation="vertical"> android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
<GridView android:gravity="center_vertical"
android:id="@+id/gridView1" android:inputType="text"
android:layout_width="fill_parent" android:maxLength="255"
android:layout_height="wrap_content" android:autofillHints="">
android:background="#999999" </EditText>
android:drawSelectorOnTop="false" </LinearLayout>
android:horizontalSpacing="0dp" <LinearLayout
android:numColumns="1" android:layout_weight="0"
android:verticalSpacing="1dp" > android:layout_width="wrap_content"
</GridView> android:layout_height="wrap_content"
</LinearLayout> android:gravity="center_vertical"
android:paddingTop="4dp">
<LinearLayout <ImageView
android:id="@+id/layoutSendMsg" android:id="@+id/imageBarcode"
android:layout_width="fill_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="35dp"
android:gravity="left" android:src="@drawable/barcode"
android:layout_weight="0" android:layout_margin="3dp" />
android:orientation="horizontal" </LinearLayout>
style="?header"> <Button
<LinearLayout android:id="@+id/imageButtonSend"
android:layout_weight="0" android:layout_width="wrap_content"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_height="fill_parent"> android:layout_weight="0"
<TextView android:text="@string/send"
android:id="@+id/textViewSendMsg" android:layout_marginRight="5dp"
android:layout_width="wrap_content" android:layout_gravity="center"
android:layout_height="wrap_content" android:paddingLeft="6dp"
android:layout_gravity="center_vertical" android:textColor="#000000"
android:text="@string/message" style="?login"/>
android:layout_marginLeft="5dp" </LinearLayout>
android:layout_marginRight="5dp"
android:textSize="18dp"
/>
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingTop="4dp">
<EditText
android:id="@+id/editTextMsg"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:inputType="text"
android:maxLength="255" >
</EditText>
</LinearLayout>
<LinearLayout
android:layout_weight="0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingTop="4dp">
<ImageView
android:id="@+id/imageBarcode"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:src="@drawable/barcode"
android:layout_margin="3dp" />
</LinearLayout>
<Button
android:id="@+id/imageButtonSend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:text="@string/send"
android:layout_marginRight="5dp"
android:layout_gravity="center"
android:paddingLeft="6dp"
android:textColor="#000000"
style="?login"/>
</LinearLayout>
</LinearLayout> </LinearLayout>

View File

@ -232,4 +232,7 @@
<item >German</item> <item >German</item>
<item >Romanian</item> <item >Romanian</item>
</string-array> </string-array>
<string name="speedMph">%1$d mph</string>
</resources> </resources>

View File

@ -236,4 +236,7 @@
<item >Spanish</item> <item >Spanish</item>
<item >Russian</item> <item >Russian</item>
</string-array> </string-array>
<string name="speedMph">%1$d mph</string>
</resources> </resources>

View File

@ -233,4 +233,7 @@
<item >Turca</item> <item >Turca</item>
<item >Romana</item> <item >Romana</item>
</string-array> </string-array>
<string name="speedMph">%1$d mph</string>
</resources> </resources>

View File

@ -232,4 +232,7 @@
<item >German</item> <item >German</item>
<item >Romanian</item> <item >Romanian</item>
</string-array> </string-array>
<string name="speedMph">%1$d mph</string>
</resources> </resources>

View File

@ -254,4 +254,8 @@
</string-array> </string-array>
<string name="title_activity_new_live">NewLiveActivity</string> <string name="title_activity_new_live">NewLiveActivity</string>
<string name="title_activity_google_maps">GoogleMapsActivity</string> <string name="title_activity_google_maps">GoogleMapsActivity</string>
<string name="speedMph">%1$d mph</string>
</resources> </resources>