ConnectionInfoDialogFragment.java 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package de.tudarmstadt.informatik.hostage.ui2.fragment;
  2. import android.app.Activity;
  3. import android.app.AlertDialog;
  4. import android.app.Dialog;
  5. import android.app.DialogFragment;
  6. import android.content.Context;
  7. import android.content.DialogInterface;
  8. import android.content.SharedPreferences;
  9. import android.os.Bundle;
  10. import android.view.ContextThemeWrapper;
  11. import android.view.LayoutInflater;
  12. import android.view.View;
  13. import android.widget.TextView;
  14. import java.util.ArrayList;
  15. import de.tudarmstadt.informatik.hostage.R;
  16. import de.tudarmstadt.informatik.hostage.ui.LogFilter;
  17. import de.tudarmstadt.informatik.hostage.ui2.activity.MainActivity;
  18. /**
  19. * Created by Fabio Arnold on 03.03.14.
  20. * displays details about the current connection
  21. */
  22. public class ConnectionInfoDialogFragment extends DialogFragment {
  23. public Dialog onCreateDialog(Bundle savedInstance) {
  24. // the data we want to display
  25. String ssid = "undefined";
  26. String bssid = "undefined";
  27. String internalIP = "undefined";
  28. String externalIP = "undefined";
  29. // get infos about the current connection using SharedPreferences
  30. final Activity activity = getActivity();
  31. if (activity != null) {
  32. SharedPreferences sharedPreferences = activity.getSharedPreferences(getString(R.string.connection_info), Context.MODE_PRIVATE);
  33. ssid = sharedPreferences.getString(getString(R.string.connection_info_ssid), "");
  34. bssid = sharedPreferences.getString(getString(R.string.connection_info_bssid), "");
  35. internalIP = sharedPreferences.getString(getString(R.string.connection_info_internal_ip), "");
  36. externalIP = sharedPreferences.getString(getString(R.string.connection_info_external_ip), "");
  37. }
  38. // inflate the layout with a dark theme
  39. Context context = new ContextThemeWrapper(getActivity(), android.R.style.Theme_Holo);
  40. LayoutInflater localInflater = getActivity().getLayoutInflater().cloneInContext(context);
  41. View view = localInflater.inflate(R.layout.fragment_connectioninfo_dialog, null);
  42. // assign values in layout
  43. if (view != null) {
  44. ((TextView)view.findViewById(R.id.connectioninfo_ssid_value)).setText(ssid);
  45. ((TextView)view.findViewById(R.id.connectioninfo_bssid_value)).setText(bssid);
  46. ((TextView)view.findViewById(R.id.connectioninfo_internalip_value)).setText(internalIP);
  47. ((TextView)view.findViewById(R.id.connectioninfo_externalip_value)).setText(externalIP);
  48. }
  49. // capture the SSID for the button action
  50. final String filterSSID = ssid;
  51. // build the actual dialog
  52. AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), AlertDialog.THEME_HOLO_DARK);
  53. builder.setView(view);
  54. builder.setTitle(R.string.title_connection_info);
  55. builder.setIcon(android.R.drawable.ic_dialog_info);
  56. builder.setPositiveButton(R.string.show_records, new DialogInterface.OnClickListener() {
  57. @Override
  58. public void onClick(DialogInterface dialog, int which) {
  59. ArrayList<String> ssids = new ArrayList<String>();
  60. ssids.add(filterSSID);
  61. LogFilter filter = new LogFilter();
  62. filter.setESSIDs(ssids);
  63. RecordOverviewFragment recordOverviewFragment = new RecordOverviewFragment();
  64. recordOverviewFragment.setFilter(filter);
  65. recordOverviewFragment.setGroupKey("ESSID");
  66. recordOverviewFragment.setUpNavigatible(true);
  67. MainActivity.getInstance().injectFragment(recordOverviewFragment);
  68. }
  69. });
  70. builder.setNegativeButton(R.string.close, null);
  71. return builder.create();
  72. }
  73. }