Beispiel #1
0
  public void exportTasks(
      final Context context, final ExportType exportType, DialogBuilder dialogBuilder) {
    this.context = context;
    this.exportCount = 0;
    this.backupDirectory = preferences.getBackupDirectory();
    this.latestSetVersionName = null;

    handler = exportType == ExportType.EXPORT_TYPE_MANUAL ? new Handler() : null;
    if (exportType == ExportType.EXPORT_TYPE_MANUAL) {
      progressDialog = dialogBuilder.newProgressDialog();
      progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
      progressDialog.setProgress(0);
      progressDialog.setCancelable(false);
      progressDialog.setIndeterminate(false);
      progressDialog.show();
      if (context instanceof Activity) {
        progressDialog.setOwnerActivity((Activity) context);
      }
    } else {
      progressDialog = new ProgressDialog(context);
    }

    new Thread(
            new Runnable() {
              @Override
              public void run() {
                try {
                  String output = setupFile(backupDirectory, exportType);
                  int tasks = taskService.countTasks();

                  if (tasks > 0) {
                    doTasksExport(output);
                  }

                  preferences.setLong(PREF_BACKUP_LAST_DATE, DateUtilities.now());

                  if (exportType == ExportType.EXPORT_TYPE_MANUAL) {
                    onFinishExport(output);
                  }
                } catch (IOException e) {
                  Timber.e(e, e.getMessage());
                } finally {
                  post(
                      new Runnable() {
                        @Override
                        public void run() {
                          if (progressDialog.isShowing() && context instanceof Activity) {
                            DialogUtilities.dismissDialog((Activity) context, progressDialog);
                            ((Activity) context).finish();
                          }
                        }
                      });
                }
              }
            })
        .start();
  }