ConnectionInfoDialogFragment.java 3.7 KB

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