forked from upstream-mirrors/OpenTracks
After exporting to external storage, add option to share the file.
This commit is contained in:
@@ -44,7 +44,6 @@ public class SaveActivity extends Activity {
|
|||||||
public static final String EXTRA_TRACK_FILE_FORMAT = "track_file_format";
|
public static final String EXTRA_TRACK_FILE_FORMAT = "track_file_format";
|
||||||
public static final String EXTRA_TRACK_IDS = "track_ids";
|
public static final String EXTRA_TRACK_IDS = "track_ids";
|
||||||
public static final String EXTRA_PLAY_TRACK = "play_track";
|
public static final String EXTRA_PLAY_TRACK = "play_track";
|
||||||
public static final String EXTRA_SHARE_TRACK = "share_track";
|
|
||||||
|
|
||||||
private static final int DIALOG_PROGRESS_ID = 0;
|
private static final int DIALOG_PROGRESS_ID = 0;
|
||||||
private static final int DIALOG_RESULT_ID = 1;
|
private static final int DIALOG_RESULT_ID = 1;
|
||||||
@@ -52,7 +51,6 @@ public class SaveActivity extends Activity {
|
|||||||
private TrackFileFormat trackFileFormat;
|
private TrackFileFormat trackFileFormat;
|
||||||
private long[] trackIds;
|
private long[] trackIds;
|
||||||
private boolean playTrack;
|
private boolean playTrack;
|
||||||
private boolean shareTrack;
|
|
||||||
private String directoryName;
|
private String directoryName;
|
||||||
|
|
||||||
private SaveAsyncTask saveAsyncTask;
|
private SaveAsyncTask saveAsyncTask;
|
||||||
@@ -64,6 +62,9 @@ public class SaveActivity extends Activity {
|
|||||||
// the number of tracks to save
|
// the number of tracks to save
|
||||||
private int totalCount;
|
private int totalCount;
|
||||||
|
|
||||||
|
// the last successfully saved path
|
||||||
|
private String savedPath;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@@ -72,7 +73,6 @@ public class SaveActivity extends Activity {
|
|||||||
trackFileFormat = intent.getParcelableExtra(EXTRA_TRACK_FILE_FORMAT);
|
trackFileFormat = intent.getParcelableExtra(EXTRA_TRACK_FILE_FORMAT);
|
||||||
trackIds = intent.getLongArrayExtra(EXTRA_TRACK_IDS);
|
trackIds = intent.getLongArrayExtra(EXTRA_TRACK_IDS);
|
||||||
playTrack = intent.getBooleanExtra(EXTRA_PLAY_TRACK, false);
|
playTrack = intent.getBooleanExtra(EXTRA_PLAY_TRACK, false);
|
||||||
shareTrack = intent.getBooleanExtra(EXTRA_SHARE_TRACK, false);
|
|
||||||
|
|
||||||
if (!FileUtils.isExternalStorageWriteable()) {
|
if (!FileUtils.isExternalStorageWriteable()) {
|
||||||
Toast.makeText(this, R.string.external_storage_not_writable, Toast.LENGTH_LONG).show();
|
Toast.makeText(this, R.string.external_storage_not_writable, Toast.LENGTH_LONG).show();
|
||||||
@@ -80,7 +80,7 @@ public class SaveActivity extends Activity {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
directoryName = playTrack || shareTrack ? FileUtils.buildExternalDirectoryPath(
|
directoryName = playTrack ? FileUtils.buildExternalDirectoryPath(
|
||||||
trackFileFormat.getExtension(), "tmp")
|
trackFileFormat.getExtension(), "tmp")
|
||||||
: FileUtils.buildExternalDirectoryPath(trackFileFormat.getExtension());
|
: FileUtils.buildExternalDirectoryPath(trackFileFormat.getExtension());
|
||||||
|
|
||||||
@@ -133,7 +133,7 @@ public class SaveActivity extends Activity {
|
|||||||
success = false;
|
success = false;
|
||||||
message = getString(R.string.save_error, successCount, totalTracks, directoryName);
|
message = getString(R.string.save_error, successCount, totalTracks, directoryName);
|
||||||
}
|
}
|
||||||
return new AlertDialog.Builder(this).setCancelable(true).setIcon(
|
AlertDialog.Builder builder = new AlertDialog.Builder(this).setCancelable(true).setIcon(
|
||||||
success ? android.R.drawable.ic_dialog_info : android.R.drawable.ic_dialog_alert)
|
success ? android.R.drawable.ic_dialog_info : android.R.drawable.ic_dialog_alert)
|
||||||
.setMessage(message).setOnCancelListener(new DialogInterface.OnCancelListener() {
|
.setMessage(message).setOnCancelListener(new DialogInterface.OnCancelListener() {
|
||||||
@Override
|
@Override
|
||||||
@@ -147,8 +147,23 @@ public class SaveActivity extends Activity {
|
|||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
}).setTitle(success ? R.string.generic_success_title : R.string.generic_error_title)
|
}).setTitle(success ? R.string.generic_success_title : R.string.generic_error_title);
|
||||||
.create();
|
if (!playTrack && trackIds.length == 1 && trackIds[0] != -1L && success
|
||||||
|
&& savedPath != null) {
|
||||||
|
builder.setNegativeButton(
|
||||||
|
R.string.share_track_share_file, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
Intent intent = IntentUtils.newShareFileIntent(
|
||||||
|
SaveActivity.this, trackIds[0], savedPath, trackFileFormat);
|
||||||
|
startActivity(
|
||||||
|
Intent.createChooser(intent, getString(R.string.share_track_picker_title)));
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return builder.create();
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -159,25 +174,19 @@ public class SaveActivity extends Activity {
|
|||||||
*
|
*
|
||||||
* @param aSuccessCount the number of tracks successfully saved
|
* @param aSuccessCount the number of tracks successfully saved
|
||||||
* @param aTotalCount the number of tracks to save
|
* @param aTotalCount the number of tracks to save
|
||||||
* @param savedPath the last successfully saved path
|
* @param aSavedPath the last successfully saved path
|
||||||
*/
|
*/
|
||||||
public void onAsyncTaskCompleted(int aSuccessCount, int aTotalCount, String savedPath) {
|
public void onAsyncTaskCompleted(int aSuccessCount, int aTotalCount, String aSavedPath) {
|
||||||
successCount = aSuccessCount;
|
successCount = aSuccessCount;
|
||||||
totalCount = aTotalCount;
|
totalCount = aTotalCount;
|
||||||
|
savedPath = aSavedPath;
|
||||||
removeDialog(DIALOG_PROGRESS_ID);
|
removeDialog(DIALOG_PROGRESS_ID);
|
||||||
if (successCount == 1 && totalCount == 1 && savedPath != null) {
|
if (playTrack && successCount == 1 && totalCount == 1 && savedPath != null) {
|
||||||
if (playTrack) {
|
startActivity(GoogleEarthUtils.getPlayInEarthIntent(savedPath));
|
||||||
startActivity(GoogleEarthUtils.getPlayInEarthIntent(savedPath));
|
finish();
|
||||||
finish();
|
} else {
|
||||||
return;
|
showDialog(DIALOG_RESULT_ID);
|
||||||
} else if (shareTrack) {
|
|
||||||
Intent intent = IntentUtils.newShareFileIntent(this, trackIds[0], savedPath, trackFileFormat);
|
|
||||||
startActivity(Intent.createChooser(intent, getString(R.string.share_track_picker_title)));
|
|
||||||
finish();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
showDialog(DIALOG_RESULT_ID);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user