Logger.java 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package de.tudarmstadt.informatik.hostage.logging;
  2. import android.app.IntentService;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import de.tudarmstadt.informatik.hostage.persistence.HostageDBOpenHelper;
  6. public class Logger extends IntentService {
  7. private static final String ACTION_LOG = "de.tudarmstadt.informatik.hostage.action.LOG";
  8. private static final String ACTION_DELETE_BY_BSSID = "de.tudarmstadt.informatik.hostage.action.DELETE_BY_BSSID";
  9. private static final String ACTION_DELETE_BY_DATE = "de.tudarmstadt.informatik.hostage.action.DELETE_BY_DATE";
  10. private static final String ACTION_DELETE_ALL = "de.tudarmstadt.informatik.hostage.action.DELETE_ALL";
  11. private static final String EXTRA_RECORD = "de.tudarmstadt.informatik.hostage.extra.RECORD";
  12. private static final String EXTRA_MISC = "de.tudarmstadt.informatik.hostage.extra.MISC";
  13. public static void log(Context context, Record record) {
  14. Intent intent = new Intent(context, Logger.class);
  15. intent.setAction(ACTION_LOG);
  16. intent.putExtra(EXTRA_RECORD, record);
  17. context.startService(intent);
  18. }
  19. public static void deleteByBssid(Context context, String bssid) {
  20. Intent intent = new Intent(context, Logger.class);
  21. intent.setAction(ACTION_DELETE_BY_BSSID);
  22. intent.putExtra(EXTRA_MISC, bssid);
  23. context.startService(intent);
  24. }
  25. public static void deleteByDate(Context context, long timestamp) {
  26. Intent intent = new Intent(context, Logger.class);
  27. intent.setAction(ACTION_DELETE_BY_DATE);
  28. intent.putExtra(EXTRA_MISC, timestamp);
  29. context.startService(intent);
  30. }
  31. public static void deleteAll(Context context) {
  32. Intent intent = new Intent(context, Logger.class);
  33. intent.setAction(ACTION_DELETE_ALL);
  34. context.startService(intent);
  35. }
  36. private HostageDBOpenHelper mDbHelper;
  37. public Logger() {
  38. super("Logger");
  39. }
  40. @Override
  41. public void onCreate() {
  42. super.onCreate();
  43. mDbHelper = new HostageDBOpenHelper(getApplicationContext());
  44. }
  45. private void handleActionLog(Record record) {
  46. mDbHelper.addRecord(record);
  47. }
  48. private void handleActionDeleteByBssid(String bssid) {
  49. mDbHelper.deleteByBSSID(bssid);
  50. }
  51. private void handleActionDeleteByDate(long timestamp) {
  52. mDbHelper.deleteByDate(timestamp);
  53. }
  54. private void handleActionDeleteAll() {
  55. mDbHelper.clearData();
  56. }
  57. @Override
  58. protected void onHandleIntent(Intent intent) {
  59. if (intent != null) {
  60. final String action = intent.getAction();
  61. if (ACTION_LOG.equals(action)) {
  62. final Record record = intent.getParcelableExtra(EXTRA_RECORD);
  63. handleActionLog(record);
  64. } else if (ACTION_DELETE_BY_BSSID.equals(action)) {
  65. final String bssid = intent.getStringExtra(EXTRA_MISC);
  66. handleActionDeleteByBssid(bssid);
  67. } else if (ACTION_DELETE_BY_DATE.equals(action)) {
  68. final long timestamp = intent.getLongExtra(EXTRA_MISC, -1L);
  69. handleActionDeleteByDate(timestamp);
  70. } else if (ACTION_DELETE_ALL.equals(action)) {
  71. handleActionDeleteAll();
  72. }
  73. }
  74. }
  75. }