예제 #1
0
  /** Event raised when the form is created for the first time */
  @Override
  public void onCreate(Bundle savedInstanceState) {

    Utilities.LogDebug("GpsMainActivity.onCreate");

    SharedPreferences prefs =
        PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    String lang = prefs.getString("locale_override", "");

    if (!lang.equalsIgnoreCase("")) {
      Locale locale = new Locale(lang);
      Locale.setDefault(locale);
      Configuration config = new Configuration();
      config.locale = locale;
      getApplicationContext()
          .getResources()
          .updateConfiguration(config, getApplicationContext().getResources().getDisplayMetrics());
    }

    super.onCreate(savedInstanceState);

    Utilities.LogInfo("GPSLogger started");

    setContentView(R.layout.main);

    GetPreferences();

    StartAndBindService();
  }
예제 #2
0
  /** Called when one of the menu items is selected. */
  public boolean onOptionsItemSelected(MenuItem item) {

    int itemId = item.getItemId();
    Utilities.LogInfo("Option item selected - " + String.valueOf(item.getTitle()));

    switch (itemId) {
      case R.id.mnuSettings:
        Intent settingsActivity = new Intent(getApplicationContext(), GpsSettingsActivity.class);
        startActivity(settingsActivity);
        break;
      case R.id.mnuOSM:
        UploadToOpenStreetMap();
        break;
      case R.id.mnuDropBox:
        UploadToDropBox();
        break;
      case R.id.mnuAnnotate:
        Annotate();
        break;
      case R.id.mnuShare:
        Share();
        break;
      case R.id.mnuEmailnow:
        EmailNow();
        break;
      case R.id.mnuExit:
        loggingService.StopLogging();
        loggingService.stopSelf();
        finish();
        break;
    }
    return false;
  }
예제 #3
0
  /** Handles the hardware back-button press */
  public boolean onKeyDown(int keyCode, KeyEvent event) {
    Utilities.LogInfo("KeyDown - " + String.valueOf(keyCode));

    if (keyCode == KeyEvent.KEYCODE_BACK && Session.isBoundToService()) {
      StopAndUnbindServiceIfRequired();
    }

    return super.onKeyDown(keyCode, event);
  }
예제 #4
0
  public static void SendFiles(Context applicationContext, IActionListener callback) {

    final String currentFileName = Session.getCurrentFileName();

    File gpxFolder = new File(Environment.getExternalStorageDirectory(), "GPSLogger");

    if (!gpxFolder.exists()) {
      callback.OnFailure();
      return;
    }

    List<File> files =
        new ArrayList<File>(
            Arrays.asList(
                gpxFolder.listFiles(
                    new FilenameFilter() {
                      @Override
                      public boolean accept(File file, String s) {
                        return s.contains(currentFileName) && !s.contains("zip");
                      }
                    })));

    if (files.size() == 0) {
      callback.OnFailure();
      return;
    }

    if (AppSettings.shouldSendZipFile()) {
      File zipFile = new File(gpxFolder.getPath(), currentFileName + ".zip");
      ArrayList<String> filePaths = new ArrayList<String>();

      for (File f : files) {
        filePaths.add(f.getAbsolutePath());
      }

      Utilities.LogInfo("Zipping file");
      ZipHelper zh =
          new ZipHelper(filePaths.toArray(new String[filePaths.size()]), zipFile.getAbsolutePath());
      zh.Zip();

      // files.clear();
      files.add(zipFile);
    }

    List<IFileSender> senders = GetFileSenders(applicationContext, callback);

    for (IFileSender sender : senders) {
      sender.UploadFile(files);
    }
  }
예제 #5
0
 /**
  * Sets the message in the top status label.
  *
  * @param message The status message
  */
 private void SetStatus(String message) {
   Utilities.LogDebug("GpsMainActivity.SetStatus: " + message);
   TextView tvStatus = (TextView) findViewById(R.id.textStatus);
   tvStatus.setText(message);
   Utilities.LogInfo(message);
 }