123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- package de.tudarmstadt.informatik.hostage.ui2.fragment;
- import java.util.ArrayList;
- import java.util.Date;
- import android.os.Bundle;
- import android.text.format.DateFormat;
- import android.view.LayoutInflater;
- import android.view.Menu;
- import android.view.MenuInflater;
- import android.view.MotionEvent;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.LinearLayout;
- import android.widget.ScrollView;
- import android.widget.TextView;
- import de.tudarmstadt.informatik.hostage.R;
- import de.tudarmstadt.informatik.hostage.deprecated.UglyDbHelper;
- import de.tudarmstadt.informatik.hostage.logging.Record;
- /**
- * Created by Julien on 02.03.14.
- */
- public class RecordDetailFragment extends UpNavigatibleFragment {
- private class Location {
- private double longitude;
- private double latitude;
- private float accuracy;
- public double getLatitude() {
- return latitude;
- }
- public void setLatitude(double latitude) {
- this.latitude = latitude;
- }
- public float getAccuracy() {
- return accuracy;
- }
- public void setAccuracy(float accuracy) {
- this.accuracy = accuracy;
- }
- public double getLongitude() {
- return this.longitude;
- }
- public void setLongitude(double longitude) {
- this.longitude = longitude;
- }
- public Location() {
- super();
- }
- public Location(double latitude, double longitude, float accuracy) {
- super();
- this.latitude = latitude;
- this.longitude = longitude;
- this.accuracy = accuracy;
- }
- }
- private Record record;
- private UglyDbHelper dbh;
- private View rootView;
- private LayoutInflater mInflater;
- private ScrollView mScrollView;
- private LinearLayout mRecordOverviewConversation;
- private TextView mRecordDetailsTextSsid;
- private TextView mRecordDetailsTextBssid;
- private TextView mRecordDetailsTextRemoteip;
- private TextView mRecordDetailsTextProtocol;
- public void setRecord(Record rec) {
- this.record = rec;
- }
- public Record getRecord() {
- return this.record;
- }
- public int getLayoutId() {
- // return R.layout.fragment_record_detail;
- return R.layout.fragment_record_overview;
- }
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setHasOptionsMenu(true);
- }
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- super.onCreateView(inflater, container, savedInstanceState);
- mInflater = inflater;
- getActivity().setTitle(record.getSsid());
- this.dbh = new UglyDbHelper(this.getActivity().getBaseContext());
- this.rootView = inflater.inflate(this.getLayoutId(), container, false);
- this.assignViews(rootView);
- this.configurateRootView(rootView);
- return rootView;
- }
- public void onStart() {
- super.onStart();
- }
- private void assignViews(View view) {
- mScrollView = (ScrollView) view.findViewById(R.id.scrollView);
- mRecordOverviewConversation = (LinearLayout) view.findViewById(R.id.record_overview_conversation);
- mRecordDetailsTextSsid = (TextView) view.findViewById(R.id.record_details_text_ssid);
- mRecordDetailsTextBssid = (TextView) view.findViewById(R.id.record_details_text_bssid);
- mRecordDetailsTextRemoteip = (TextView) view.findViewById(R.id.record_details_text_remoteip);
- mRecordDetailsTextProtocol = (TextView) view.findViewById(R.id.record_details_text_protocol);
- }
- private void configurateRootView(View rootView) {
- mRecordDetailsTextBssid.setText(record.getBssid());
- mRecordDetailsTextSsid.setText(record.getSsid());
- if (record.getRemoteIP() != null)
- mRecordDetailsTextRemoteip.setText(record.getRemoteIP() + ":" + record.getRemotePort());
- mRecordDetailsTextProtocol.setText(record.getProtocol());
- ArrayList<Record> conversation = this.dbh.getConversationForAttackID(record.getAttack_id());
- for (Record r : conversation) {
- View row;
- String from = r.getLocalIP() == null ? "-" : r.getLocalIP() + ":" + r.getLocalPort();
- String to = r.getRemoteIP() == null ? "-" : r.getRemoteIP() + ":" + r.getRemotePort();
- if (r.getType() == Record.TYPE.SEND) {
- row = mInflater.inflate(R.layout.fragment_record_conversation_sent, null);
- } else {
- row = mInflater.inflate(R.layout.fragment_record_conversation_received, null);
- String tmp = from;
- from = to;
- to = tmp;
- }
- TextView conversationInfo = (TextView) row.findViewById(R.id.record_conversation_info);
- TextView conversationContent = (TextView) row.findViewById(R.id.record_conversation_content);
- conversationContent.setOnTouchListener(new View.OnTouchListener() {
- @Override
- public boolean onTouch(final View v, final MotionEvent motionEvent) {
- if (v.getId() == R.id.record_conversation_content) {
- v.getParent().requestDisallowInterceptTouchEvent(true);
- switch (motionEvent.getAction() & MotionEvent.ACTION_MASK) {
- case MotionEvent.ACTION_UP:
- v.getParent().requestDisallowInterceptTouchEvent(false);
- break;
- }
- }
- return false;
- }
- });
- Date date = new Date(r.getTimestamp());
- conversationInfo.setText(String.format(getString(R.string.record_details_info), from, to, getDateAsString(date), getTimeAsString(date)));
- if (r.getPacket() != null)
- conversationContent.setText(r.getPacket());
- mRecordOverviewConversation.addView(row);
- }
- }
- /*****************************
- *
- * Date Transform
- *
- * ***************************/
- private String getDateAsString(Date date) {
- return DateFormat.getDateFormat(getActivity()).format(date);
- }
- private String getTimeAsString(Date date) {
- return DateFormat.getTimeFormat(getActivity()).format(date);
- }
- public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- super.onCreateOptionsMenu(menu, inflater);
- }
- }
|