final Tour tour = new Tour(); tour.setName(tourNameInput.getText().toString()); tour.setTravelAgency(travelAgencyInput.getText().toString()); tour.setBeginDate(startDateInput.getText().toString()); tour.setDuration(duration); tour.setMemberCount(20); tour.setTourguide((User) ParseUser.getCurrentUser()); tour.setTourCode(CodeGenerator.generate()); tour.setTouristCode(CodeGenerator.generate()); tour.setSnapshotVersion(1); final ProgressDialogFragment progressDialogFragment = ProgressDialogFragment.newInstance(); progressDialogFragment.show(getFragmentManager(), ProgressDialogFragment.class.getSimpleName()); tour.saveInBackground(new SaveCallback() { @Override public void done(ParseException exception) { if (exception == null) { Snapshot snapshot = new Snapshot(tour); final String snapshotJson = BaseSnapshotModel.getGson().toJson(snapshot); byte[] snapshotBytes = snapshotJson.getBytes(); tour.setSnapshot(new ParseFile(snapshotBytes)); tour.saveInBackground(new SaveCallback() { @Override public void done(ParseException e) { progressDialogFragment.dismiss(); SnapshotUtil.getInstance(getActivity()).setSnapshot(snapshotJson); startActivity(MainActivity.createIntent(getActivity(), true)); getActivity().finish(); } }); } else { progressDialogFragment.dismiss(); exception.printStackTrace(); } } });