diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index c73739526..788f8f869 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -83,7 +83,9 @@ limitations under the License.
android:name=".AggregatedStatsActivity"
android:label="@string/menu_aggregated_statistics" />
-
+
@@ -128,7 +130,9 @@ limitations under the License.
android:name="android.app.default_searchable"
android:value=".SearchListActivity" />
-
+
diff --git a/src/main/java/de/dennisguse/opentracks/fragments/FileTypeDialogFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/FileTypeDialogFragment.java
index 0c72dc142..8620847c6 100644
--- a/src/main/java/de/dennisguse/opentracks/fragments/FileTypeDialogFragment.java
+++ b/src/main/java/de/dennisguse/opentracks/fragments/FileTypeDialogFragment.java
@@ -70,14 +70,35 @@ public class FileTypeDialogFragment extends AbstractDialogFragment {
choices[i] = getString(optionId, trackFileFormat.name(),
FileUtils.getPathDisplayName(trackFileFormat.getExtension()));
}
- return new AlertDialog.Builder(getActivity()).setNegativeButton(R.string.generic_cancel, null)
+ return new AlertDialog.Builder(getActivity())
+ .setCancelable(true)
+ .setNegativeButton(R.string.generic_cancel, new OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ onDismissed();
+ }
+ })
.setPositiveButton(R.string.generic_ok, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int position = ((AlertDialog) dialog).getListView().getCheckedItemPosition();
caller.onFileTypeDone(TrackFileFormat.values()[position]);
}
- }).setSingleChoiceItems(choices, 0, null).setTitle(titleId).create();
+ })
+ .setSingleChoiceItems(choices, 0, null)
+ .setTitle(titleId)
+ .setOnCancelListener(new DialogInterface.OnCancelListener() {
+ @Override
+ public void onCancel(DialogInterface dialog) {
+ onDismissed();
+ }
+ })
+ .create();
+ }
+
+ protected void onDismissed() {
+ dismiss();
+ caller.onDismissed();
}
/**
@@ -91,5 +112,7 @@ public class FileTypeDialogFragment extends AbstractDialogFragment {
* Called when file type selection is done.
*/
void onFileTypeDone(TrackFileFormat trackFileFormat);
+
+ void onDismissed();
}
}
\ No newline at end of file
diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java
index ad3fa0f49..de398a1aa 100644
--- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java
@@ -92,6 +92,11 @@ public class ExportActivity extends FragmentActivity implements FileTypeDialogFr
// }
}
+ @Override
+ public void onDismissed() {
+ finish();
+ }
+
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
@@ -103,6 +108,7 @@ public class ExportActivity extends FragmentActivity implements FileTypeDialogFr
public void onCancel(DialogInterface dialog) {
saveAsyncTask.cancel(true);
dialog.dismiss();
+ onDismissed();
}
}, directoryDisplayName);
return progressDialog;
@@ -129,13 +135,13 @@ public class ExportActivity extends FragmentActivity implements FileTypeDialogFr
@Override
public void onCancel(DialogInterface dialog) {
dialog.dismiss();
- finish();
+ onDismissed();
}
}).setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int arg1) {
dialog.dismiss();
- finish();
+ onDismissed();
}
}).setTitle(titleId);
final Dialog dialog = builder.create();
diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportActivity.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportActivity.java
index bbe3f58cf..b381f77d1 100644
--- a/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportActivity.java
@@ -102,6 +102,11 @@ public class ImportActivity extends FragmentActivity implements FileTypeDialogFr
// }
}
+ @Override
+ public void onDismissed() {
+ finish();
+ }
+
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
@@ -112,6 +117,7 @@ public class ImportActivity extends FragmentActivity implements FileTypeDialogFr
public void onCancel(DialogInterface dialog) {
importAsyncTask.cancel(true);
dialog.dismiss();
+ onDismissed();
}
}, directoryDisplayName);
return progressDialog;
@@ -142,13 +148,13 @@ public class ImportActivity extends FragmentActivity implements FileTypeDialogFr
@Override
public void onCancel(DialogInterface dialogInterface) {
dialogInterface.dismiss();
- finish();
+ onDismissed();
}
}).setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int which) {
dialogInterface.dismiss();
- finish();
+ onDismissed();
}
}).setTitle(titleId).create();
dialog.setOnShowListener(new DialogInterface.OnShowListener() {
diff --git a/src/main/res/values/themes_custom.xml b/src/main/res/values/themes_custom.xml
index 166d83007..aafb9fbdf 100644
--- a/src/main/res/values/themes_custom.xml
+++ b/src/main/res/values/themes_custom.xml
@@ -32,6 +32,16 @@ limitations under the License.
- @style/CustomAlertDialogTheme
+
+