forked from upstream-mirrors/OpenTracks
Add back option to export to google drive
This commit is contained in:
@@ -21,6 +21,10 @@ limitations under the License.
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:padding="8dp" >
|
android:padding="8dp" >
|
||||||
|
<RadioButton
|
||||||
|
android:id="@+id/export_google_drive"
|
||||||
|
android:text="@string/export_google_drive"
|
||||||
|
style="@style/TextMedium" />
|
||||||
<RadioButton
|
<RadioButton
|
||||||
android:id="@+id/export_google_maps"
|
android:id="@+id/export_google_maps"
|
||||||
android:text="@string/export_google_maps"
|
android:text="@string/export_google_maps"
|
||||||
|
|||||||
@@ -442,8 +442,10 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity
|
|||||||
.show(getSupportFragmentManager(), FrequencyDialogFragment.FREQUENCY_DIALOG_TAG);
|
.show(getSupportFragmentManager(), FrequencyDialogFragment.FREQUENCY_DIALOG_TAG);
|
||||||
return true;
|
return true;
|
||||||
case R.id.track_detail_export:
|
case R.id.track_detail_export:
|
||||||
new ExportDialogFragment().show(getSupportFragmentManager(),
|
Track track = myTracksProviderUtils.getTrack(trackId);
|
||||||
ExportDialogFragment.EXPORT_DIALOG_TAG);
|
boolean hideDrive = track != null ? track.isSharedWithMe() : true;
|
||||||
|
ExportDialogFragment.newInstance(hideDrive)
|
||||||
|
.show(getSupportFragmentManager(), ExportDialogFragment.EXPORT_DIALOG_TAG);
|
||||||
return true;
|
return true;
|
||||||
case R.id.track_detail_edit:
|
case R.id.track_detail_edit:
|
||||||
intent = IntentUtils.newIntent(this, TrackEditActivity.class)
|
intent = IntentUtils.newIntent(this, TrackEditActivity.class)
|
||||||
@@ -499,6 +501,10 @@ public class TrackDetailActivity extends AbstractSendToGoogleActivity
|
|||||||
SendRequest sendRequest = new SendRequest(trackId);
|
SendRequest sendRequest = new SendRequest(trackId);
|
||||||
String pageView;
|
String pageView;
|
||||||
switch (exportType) {
|
switch (exportType) {
|
||||||
|
case GOOGLE_DRIVE:
|
||||||
|
pageView = AnalyticsUtils.ACTION_EXPORT_DRIVE;
|
||||||
|
sendRequest.setSendDrive(true);
|
||||||
|
break;
|
||||||
case GOOGLE_MAPS:
|
case GOOGLE_MAPS:
|
||||||
pageView = AnalyticsUtils.ACTION_EXPORT_MAPS;
|
pageView = AnalyticsUtils.ACTION_EXPORT_MAPS;
|
||||||
sendRequest.setSendMaps(true);
|
sendRequest.setSendMaps(true);
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import android.app.Activity;
|
|||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.support.v4.app.FragmentActivity;
|
import android.support.v4.app.FragmentActivity;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.RadioButton;
|
import android.widget.RadioButton;
|
||||||
@@ -44,7 +45,7 @@ public class ExportDialogFragment extends AbstractMyTracksDialogFragment {
|
|||||||
* @author Jimmy Shih
|
* @author Jimmy Shih
|
||||||
*/
|
*/
|
||||||
public enum ExportType {
|
public enum ExportType {
|
||||||
GOOGLE_MAPS, GOOGLE_FUSION_TABLES, GOOGLE_SPREADSHEET, EXTERNAL_STORAGE
|
GOOGLE_DRIVE, GOOGLE_MAPS, GOOGLE_FUSION_TABLES, GOOGLE_SPREADSHEET, EXTERNAL_STORAGE
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -62,6 +63,17 @@ public class ExportDialogFragment extends AbstractMyTracksDialogFragment {
|
|||||||
|
|
||||||
public static final String EXPORT_DIALOG_TAG = "export";
|
public static final String EXPORT_DIALOG_TAG = "export";
|
||||||
|
|
||||||
|
private static final String KEY_HIDE_DRIVE = "hideDrive";
|
||||||
|
|
||||||
|
public static ExportDialogFragment newInstance(boolean hideDrive) {
|
||||||
|
Bundle bundle = new Bundle();
|
||||||
|
bundle.putBoolean(KEY_HIDE_DRIVE, hideDrive);
|
||||||
|
|
||||||
|
ExportDialogFragment fragment = new ExportDialogFragment();
|
||||||
|
fragment.setArguments(bundle);
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
private ExportCaller caller;
|
private ExportCaller caller;
|
||||||
private RadioGroup exportTypeOptions;
|
private RadioGroup exportTypeOptions;
|
||||||
private RadioGroup exportGoogleMapsOptions;
|
private RadioGroup exportGoogleMapsOptions;
|
||||||
@@ -82,16 +94,25 @@ public class ExportDialogFragment extends AbstractMyTracksDialogFragment {
|
|||||||
@Override
|
@Override
|
||||||
protected Dialog createDialog() {
|
protected Dialog createDialog() {
|
||||||
FragmentActivity fragmentActivity = getActivity();
|
FragmentActivity fragmentActivity = getActivity();
|
||||||
|
boolean hideDrive = getArguments().getBoolean(KEY_HIDE_DRIVE);
|
||||||
|
ExportType exportType = ExportType.valueOf(PreferencesUtils.getString(
|
||||||
|
fragmentActivity, R.string.export_type_key, PreferencesUtils.EXPORT_TYPE_DEFAULT));
|
||||||
|
|
||||||
|
if (hideDrive && exportType == ExportType.GOOGLE_DRIVE) {
|
||||||
|
exportType = ExportType.GOOGLE_MAPS;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get views
|
||||||
View view = fragmentActivity.getLayoutInflater().inflate(R.layout.export, null);
|
View view = fragmentActivity.getLayoutInflater().inflate(R.layout.export, null);
|
||||||
|
|
||||||
exportTypeOptions = (RadioGroup) view.findViewById(R.id.export_type_options);
|
exportTypeOptions = (RadioGroup) view.findViewById(R.id.export_type_options);
|
||||||
|
RadioButton exportGoogleDrive = (RadioButton) view.findViewById(R.id.export_google_drive);
|
||||||
exportGoogleMapsOptions = (RadioGroup) view.findViewById(R.id.export_google_maps_options);
|
exportGoogleMapsOptions = (RadioGroup) view.findViewById(R.id.export_google_maps_options);
|
||||||
exportGoogleFusionTablesOptions = (RadioGroup) view.findViewById(
|
exportGoogleFusionTablesOptions = (RadioGroup) view.findViewById(
|
||||||
R.id.export_google_fusion_tables_options);
|
R.id.export_google_fusion_tables_options);
|
||||||
exportExternalStorageOptions = (RadioGroup) view.findViewById(
|
exportExternalStorageOptions = (RadioGroup) view.findViewById(
|
||||||
R.id.export_external_storage_options);
|
R.id.export_external_storage_options);
|
||||||
|
|
||||||
|
// exportTypeOptions
|
||||||
exportTypeOptions.setOnCheckedChangeListener(new OnCheckedChangeListener() {
|
exportTypeOptions.setOnCheckedChangeListener(new OnCheckedChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onCheckedChanged(RadioGroup group, int checkedId) {
|
public void onCheckedChanged(RadioGroup group, int checkedId) {
|
||||||
@@ -103,15 +124,18 @@ public class ExportDialogFragment extends AbstractMyTracksDialogFragment {
|
|||||||
checkedId == R.id.export_external_storage ? View.VISIBLE : View.GONE);
|
checkedId == R.id.export_external_storage ? View.VISIBLE : View.GONE);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
ExportType exportType = ExportType.valueOf(PreferencesUtils.getString(
|
|
||||||
fragmentActivity, R.string.export_type_key, PreferencesUtils.EXPORT_TYPE_DEFAULT));
|
|
||||||
exportTypeOptions.check(getExportTypeId(exportType));
|
exportTypeOptions.check(getExportTypeId(exportType));
|
||||||
|
|
||||||
|
// exportGoogleDrive
|
||||||
|
exportGoogleDrive.setVisibility(hideDrive ? View.GONE : View.VISIBLE);
|
||||||
|
|
||||||
|
// exportGoogleMapsOptions
|
||||||
boolean exportGoogleMapsPublic = PreferencesUtils.getBoolean(fragmentActivity,
|
boolean exportGoogleMapsPublic = PreferencesUtils.getBoolean(fragmentActivity,
|
||||||
R.string.export_google_maps_public_key, PreferencesUtils.EXPORT_GOOGLE_MAPS_PUBLIC_DEFAULT);
|
R.string.export_google_maps_public_key, PreferencesUtils.EXPORT_GOOGLE_MAPS_PUBLIC_DEFAULT);
|
||||||
exportGoogleMapsOptions.check(
|
exportGoogleMapsOptions.check(
|
||||||
exportGoogleMapsPublic ? R.id.export_google_maps_public : R.id.export_google_maps_unlisted);
|
exportGoogleMapsPublic ? R.id.export_google_maps_public : R.id.export_google_maps_unlisted);
|
||||||
|
|
||||||
|
// exportGoogleFusionTablesOptions
|
||||||
boolean exportGoogleFusionTablesPublic = PreferencesUtils.getBoolean(fragmentActivity,
|
boolean exportGoogleFusionTablesPublic = PreferencesUtils.getBoolean(fragmentActivity,
|
||||||
R.string.export_google_fusion_tables_public_key,
|
R.string.export_google_fusion_tables_public_key,
|
||||||
PreferencesUtils.EXPORT_GOOGLE_FUSION_TABLES_PUBLIC_DEFAULT);
|
PreferencesUtils.EXPORT_GOOGLE_FUSION_TABLES_PUBLIC_DEFAULT);
|
||||||
@@ -119,6 +143,7 @@ public class ExportDialogFragment extends AbstractMyTracksDialogFragment {
|
|||||||
exportGoogleFusionTablesPublic ? R.id.export_google_fusion_tables_public
|
exportGoogleFusionTablesPublic ? R.id.export_google_fusion_tables_public
|
||||||
: R.id.export_google_fusion_tables_private);
|
: R.id.export_google_fusion_tables_private);
|
||||||
|
|
||||||
|
// exportExternalStorageOptions
|
||||||
setExternalStorageOption(
|
setExternalStorageOption(
|
||||||
(RadioButton) view.findViewById(R.id.export_external_storage_kml), TrackFileFormat.KML);
|
(RadioButton) view.findViewById(R.id.export_external_storage_kml), TrackFileFormat.KML);
|
||||||
setExternalStorageOption(
|
setExternalStorageOption(
|
||||||
@@ -215,6 +240,8 @@ public class ExportDialogFragment extends AbstractMyTracksDialogFragment {
|
|||||||
*/
|
*/
|
||||||
private int getExportTypeId(ExportType exportType) {
|
private int getExportTypeId(ExportType exportType) {
|
||||||
switch (exportType) {
|
switch (exportType) {
|
||||||
|
case GOOGLE_DRIVE:
|
||||||
|
return R.id.export_google_drive;
|
||||||
case GOOGLE_MAPS:
|
case GOOGLE_MAPS:
|
||||||
return R.id.export_google_maps;
|
return R.id.export_google_maps;
|
||||||
case GOOGLE_FUSION_TABLES:
|
case GOOGLE_FUSION_TABLES:
|
||||||
@@ -233,6 +260,8 @@ public class ExportDialogFragment extends AbstractMyTracksDialogFragment {
|
|||||||
*/
|
*/
|
||||||
private ExportType getExportType(int exportTypeId) {
|
private ExportType getExportType(int exportTypeId) {
|
||||||
switch (exportTypeId) {
|
switch (exportTypeId) {
|
||||||
|
case R.id.export_google_drive:
|
||||||
|
return ExportType.GOOGLE_DRIVE;
|
||||||
case R.id.export_google_maps:
|
case R.id.export_google_maps:
|
||||||
return ExportType.GOOGLE_MAPS;
|
return ExportType.GOOGLE_MAPS;
|
||||||
case R.id.export_google_fusion_tables:
|
case R.id.export_google_fusion_tables:
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ public class AnalyticsUtils {
|
|||||||
|
|
||||||
public static final String ACTION_EXPORT_ALL_PREFIX = "/action/export_all_";
|
public static final String ACTION_EXPORT_ALL_PREFIX = "/action/export_all_";
|
||||||
public static final String ACTION_EXPORT_PREFIX = "/action/export_";
|
public static final String ACTION_EXPORT_PREFIX = "/action/export_";
|
||||||
|
public static final String ACTION_EXPORT_DRIVE = "/action/export_drive";
|
||||||
public static final String ACTION_EXPORT_FUSION_TABLES = "/action/export_fusion_tables";
|
public static final String ACTION_EXPORT_FUSION_TABLES = "/action/export_fusion_tables";
|
||||||
public static final String ACTION_EXPORT_MAPS = "/action/export_maps";
|
public static final String ACTION_EXPORT_MAPS = "/action/export_maps";
|
||||||
public static final String ACTION_EXPORT_SPREADSHEETS = "/action/export_spreadsheets";
|
public static final String ACTION_EXPORT_SPREADSHEETS = "/action/export_spreadsheets";
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ public class PreferencesUtils {
|
|||||||
public static final String EXPORT_EXTERNAL_STORAGE_FORMAT_DEFAULT = TrackFileFormat.KML.name();
|
public static final String EXPORT_EXTERNAL_STORAGE_FORMAT_DEFAULT = TrackFileFormat.KML.name();
|
||||||
public static final boolean EXPORT_GOOGLE_FUSION_TABLES_PUBLIC_DEFAULT = false;
|
public static final boolean EXPORT_GOOGLE_FUSION_TABLES_PUBLIC_DEFAULT = false;
|
||||||
public static final boolean EXPORT_GOOGLE_MAPS_PUBLIC_DEFAULT = false;
|
public static final boolean EXPORT_GOOGLE_MAPS_PUBLIC_DEFAULT = false;
|
||||||
public static final String EXPORT_TYPE_DEFAULT = ExportType.GOOGLE_MAPS.name();
|
public static final String EXPORT_TYPE_DEFAULT = ExportType.GOOGLE_DRIVE.name();
|
||||||
|
|
||||||
// Value for split_frequency_key and voice_frequency_key
|
// Value for split_frequency_key and voice_frequency_key
|
||||||
public static final int FREQUENCY_OFF = 0;
|
public static final int FREQUENCY_OFF = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user