forked from upstream-mirrors/OpenTracks
Fix a NPE (replace MyTracks.getInstance() with the parent activity).
This commit is contained in:
@@ -22,6 +22,7 @@ import com.google.android.apps.mytracks.io.TrackWriterFactory;
|
|||||||
import com.google.android.apps.mytracks.io.TrackWriterFactory.TrackFileFormat;
|
import com.google.android.apps.mytracks.io.TrackWriterFactory.TrackFileFormat;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.ProgressDialog;
|
import android.app.ProgressDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -46,7 +47,7 @@ public class ExportAllTracks {
|
|||||||
public static final int KML_OPTION_INDEX = 1;
|
public static final int KML_OPTION_INDEX = 1;
|
||||||
public static final int CSV_OPTION_INDEX = 2;
|
public static final int CSV_OPTION_INDEX = 2;
|
||||||
|
|
||||||
private final Context context;
|
private final Activity activity;
|
||||||
private WakeLock wakeLock;
|
private WakeLock wakeLock;
|
||||||
private ProgressDialog progress;
|
private ProgressDialog progress;
|
||||||
|
|
||||||
@@ -70,11 +71,11 @@ public class ExportAllTracks {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public ExportAllTracks(Context c) {
|
public ExportAllTracks(Activity activity) {
|
||||||
this.context = c;
|
this.activity = activity;
|
||||||
Log.i(MyTracksConstants.TAG, "ExportAllTracks: Starting");
|
Log.i(MyTracksConstants.TAG, "ExportAllTracks: Starting");
|
||||||
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(c);
|
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
||||||
builder.setSingleChoiceItems(R.array.export_formats, 0, itemClick);
|
builder.setSingleChoiceItems(R.array.export_formats, 0, itemClick);
|
||||||
builder.setPositiveButton(R.string.ok, positiveClick);
|
builder.setPositiveButton(R.string.ok, positiveClick);
|
||||||
builder.setNegativeButton(R.string.cancel, null);
|
builder.setNegativeButton(R.string.cancel, null);
|
||||||
@@ -107,11 +108,11 @@ public class ExportAllTracks {
|
|||||||
*/
|
*/
|
||||||
private void aquireLocksAndExport() {
|
private void aquireLocksAndExport() {
|
||||||
SharedPreferences prefs =
|
SharedPreferences prefs =
|
||||||
context.getSharedPreferences(MyTracksSettings.SETTINGS_NAME, 0);
|
activity.getSharedPreferences(MyTracksSettings.SETTINGS_NAME, 0);
|
||||||
long recordingTrackId = -1;
|
long recordingTrackId = -1;
|
||||||
if (prefs != null) {
|
if (prefs != null) {
|
||||||
recordingTrackId =
|
recordingTrackId =
|
||||||
prefs.getLong(context.getString(R.string.recording_track_key), -1);
|
prefs.getLong(activity.getString(R.string.recording_track_key), -1);
|
||||||
}
|
}
|
||||||
if (recordingTrackId != -1) {
|
if (recordingTrackId != -1) {
|
||||||
acquireWakeLock();
|
acquireWakeLock();
|
||||||
@@ -127,12 +128,12 @@ public class ExportAllTracks {
|
|||||||
Log.i(MyTracksConstants.TAG, "ExportAllTracks: Releasing wake lock.");
|
Log.i(MyTracksConstants.TAG, "ExportAllTracks: Releasing wake lock.");
|
||||||
}
|
}
|
||||||
Log.i(MyTracksConstants.TAG, "ExportAllTracks: Done");
|
Log.i(MyTracksConstants.TAG, "ExportAllTracks: Done");
|
||||||
Toast.makeText(context, R.string.export_done, Toast.LENGTH_SHORT).show();
|
Toast.makeText(activity, R.string.export_done, Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void makeProgressDialog(final int trackCount) {
|
private void makeProgressDialog(final int trackCount) {
|
||||||
String exportMsg = context.getString(R.string.tracklist_btn_export_all);
|
String exportMsg = activity.getString(R.string.tracklist_btn_export_all);
|
||||||
progress = new ProgressDialog(context);
|
progress = new ProgressDialog(activity);
|
||||||
progress.setIcon(android.R.drawable.ic_dialog_info);
|
progress.setIcon(android.R.drawable.ic_dialog_info);
|
||||||
progress.setTitle(exportMsg);
|
progress.setTitle(exportMsg);
|
||||||
progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
|
progress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
|
||||||
@@ -150,7 +151,7 @@ public class ExportAllTracks {
|
|||||||
Cursor cursor = null;
|
Cursor cursor = null;
|
||||||
try {
|
try {
|
||||||
MyTracksProviderUtils providerUtils =
|
MyTracksProviderUtils providerUtils =
|
||||||
MyTracksProviderUtils.Factory.get(context);
|
MyTracksProviderUtils.Factory.get(activity);
|
||||||
cursor = providerUtils.getTracksCursor("");
|
cursor = providerUtils.getTracksCursor("");
|
||||||
if (cursor == null) {
|
if (cursor == null) {
|
||||||
return;
|
return;
|
||||||
@@ -160,7 +161,7 @@ public class ExportAllTracks {
|
|||||||
Log.i(MyTracksConstants.TAG,
|
Log.i(MyTracksConstants.TAG,
|
||||||
"ExportAllTracks: Exporting: " + cursor.getCount() + " tracks.");
|
"ExportAllTracks: Exporting: " + cursor.getCount() + " tracks.");
|
||||||
int idxTrackId = cursor.getColumnIndexOrThrow(TracksColumns._ID);
|
int idxTrackId = cursor.getColumnIndexOrThrow(TracksColumns._ID);
|
||||||
MyTracks.getInstance().runOnUiThread(new Runnable() {
|
activity.runOnUiThread(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
makeProgressDialog(trackCount);
|
makeProgressDialog(trackCount);
|
||||||
}
|
}
|
||||||
@@ -168,7 +169,7 @@ public class ExportAllTracks {
|
|||||||
|
|
||||||
for (int i = 0; cursor.moveToNext(); i++) {
|
for (int i = 0; cursor.moveToNext(); i++) {
|
||||||
final int status = i;
|
final int status = i;
|
||||||
MyTracks.getInstance().runOnUiThread(new Runnable() {
|
activity.runOnUiThread(new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
if (progress == null) {
|
if (progress == null) {
|
||||||
@@ -182,13 +183,13 @@ public class ExportAllTracks {
|
|||||||
long id = cursor.getLong(idxTrackId);
|
long id = cursor.getLong(idxTrackId);
|
||||||
Log.i(MyTracksConstants.TAG, "ExportAllTracks: exporting: " + id);
|
Log.i(MyTracksConstants.TAG, "ExportAllTracks: exporting: " + id);
|
||||||
TrackWriter writer =
|
TrackWriter writer =
|
||||||
TrackWriterFactory.newWriter(context, providerUtils, id, format);
|
TrackWriterFactory.newWriter(activity, providerUtils, id, format);
|
||||||
writer.writeTrack();
|
writer.writeTrack();
|
||||||
|
|
||||||
if (!writer.wasSuccess()) {
|
if (!writer.wasSuccess()) {
|
||||||
// Abort the whole export on the first error.
|
// Abort the whole export on the first error.
|
||||||
int error = writer.getErrorMessage();
|
int error = writer.getErrorMessage();
|
||||||
Toast.makeText(context, error, Toast.LENGTH_LONG).show();
|
Toast.makeText(activity, error, Toast.LENGTH_LONG).show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -213,7 +214,7 @@ public class ExportAllTracks {
|
|||||||
Log.i(MyTracksConstants.TAG, "ExportAllTracks: Aquiring wake lock.");
|
Log.i(MyTracksConstants.TAG, "ExportAllTracks: Aquiring wake lock.");
|
||||||
try {
|
try {
|
||||||
PowerManager pm =
|
PowerManager pm =
|
||||||
(PowerManager) context.getSystemService(Context.POWER_SERVICE);
|
(PowerManager) activity.getSystemService(Context.POWER_SERVICE);
|
||||||
if (pm == null) {
|
if (pm == null) {
|
||||||
Log.e(MyTracksConstants.TAG,
|
Log.e(MyTracksConstants.TAG,
|
||||||
"ExportAllTracks: Power manager not found!");
|
"ExportAllTracks: Power manager not found!");
|
||||||
|
|||||||
Reference in New Issue
Block a user