diff --git a/MyTracks/res/layout/add_people.xml b/MyTracks/res/layout/add_emails.xml similarity index 92% rename from MyTracks/res/layout/add_people.xml rename to MyTracks/res/layout/add_emails.xml index 744a4ed04..db942ef23 100644 --- a/MyTracks/res/layout/add_people.xml +++ b/MyTracks/res/layout/add_emails.xml @@ -22,9 +22,9 @@ limitations under the License. android:orientation="vertical" android:padding="8dp" > - - Add people + + Add emails - Enter email addresses diff --git a/MyTracks/src/com/google/android/apps/mytracks/MarkerDetailActivity.java b/MyTracks/src/com/google/android/apps/mytracks/MarkerDetailActivity.java index 397043fa1..021f1b9b7 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/MarkerDetailActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/MarkerDetailActivity.java @@ -144,7 +144,7 @@ public class MarkerDetailActivity extends AbstractMyTracksActivity } @Override - public void onMarkerDeleted() { + public void onDeleteOneMarkerDone() { runOnUiThread(new Runnable() { @Override public void run() { diff --git a/MyTracks/src/com/google/android/apps/mytracks/MarkerListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/MarkerListActivity.java index 4776cac3e..c2fdc0730 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/MarkerListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/MarkerListActivity.java @@ -306,7 +306,7 @@ public class MarkerListActivity extends AbstractMyTracksActivity implements Dele } @Override - public void onMarkerDeleted() { + public void onDeleteOneMarkerDone() { // Do nothing } } diff --git a/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java index 43beec3cb..5256c32d3 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/SearchListActivity.java @@ -24,13 +24,14 @@ import com.google.android.apps.mytracks.content.SearchEngineProvider; import com.google.android.apps.mytracks.content.Track; import com.google.android.apps.mytracks.content.Waypoint; import com.google.android.apps.mytracks.content.Waypoint.WaypointType; -import com.google.android.apps.mytracks.fragments.AddPeopleDialogFragment; import com.google.android.apps.mytracks.fragments.ConfirmDialogFragment; import com.google.android.apps.mytracks.fragments.ConfirmDialogFragment.ConfirmCaller; import com.google.android.apps.mytracks.fragments.DeleteOneMarkerDialogFragment; import com.google.android.apps.mytracks.fragments.DeleteOneMarkerDialogFragment.DeleteOneMarkerCaller; import com.google.android.apps.mytracks.fragments.DeleteOneTrackDialogFragment; import com.google.android.apps.mytracks.fragments.DeleteOneTrackDialogFragment.DeleteOneTrackCaller; +import com.google.android.apps.mytracks.io.sendtogoogle.AccountChooserActivity; +import com.google.android.apps.mytracks.io.sendtogoogle.SendRequest; import com.google.android.apps.mytracks.services.MyTracksLocationManager; import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection; import com.google.android.apps.mytracks.stats.TripStatistics; @@ -510,11 +511,15 @@ public class SearchListActivity extends AbstractMyTracksActivity } @Override - public void onConfirmed(int confirmId, long trackId) { + public void onConfirmDone(int confirmId, long trackId) { switch (confirmId) { case R.string.confirm_share_drive_key: - AddPeopleDialogFragment.newInstance(trackId) - .show(getSupportFragmentManager(), AddPeopleDialogFragment.ADD_PEOPLE_DIALOG_TAG); + SendRequest sendRequest = new SendRequest(trackId); + sendRequest.setSendDrive(true); + sendRequest.setDriveShare(true); + Intent intent = IntentUtils.newIntent(this, AccountChooserActivity.class) + .putExtra(SendRequest.SEND_REQUEST_KEY, sendRequest); + startActivity(intent); break; default: } @@ -526,7 +531,7 @@ public class SearchListActivity extends AbstractMyTracksActivity } @Override - public void onTrackDeleted() { + public void onDeleteOneTrackDone() { runOnUiThread(new Runnable() { @Override public void run() { @@ -536,7 +541,7 @@ public class SearchListActivity extends AbstractMyTracksActivity } @Override - public void onMarkerDeleted() { + public void onDeleteOneMarkerDone() { runOnUiThread(new Runnable() { @Override public void run() { diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java index 22337d25c..7b04731f6 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java @@ -21,7 +21,6 @@ import com.google.android.apps.mytracks.content.Track; import com.google.android.apps.mytracks.content.TrackDataHub; import com.google.android.apps.mytracks.content.Waypoint; import com.google.android.apps.mytracks.content.WaypointCreationRequest; -import com.google.android.apps.mytracks.fragments.AddPeopleDialogFragment; import com.google.android.apps.mytracks.fragments.ChartFragment; import com.google.android.apps.mytracks.fragments.ChooseActivityDialogFragment; import com.google.android.apps.mytracks.fragments.ChooseUploadServiceDialogFragment; @@ -35,6 +34,7 @@ import com.google.android.apps.mytracks.fragments.MyTracksMapFragment; import com.google.android.apps.mytracks.fragments.StatsFragment; import com.google.android.apps.mytracks.io.file.SaveActivity; import com.google.android.apps.mytracks.io.file.TrackFileFormat; +import com.google.android.apps.mytracks.io.sendtogoogle.AccountChooserActivity; import com.google.android.apps.mytracks.io.sendtogoogle.SendRequest; import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection; import com.google.android.apps.mytracks.settings.SettingsActivity; @@ -430,11 +430,12 @@ public class TrackDetailActivity extends AbstractMyTracksActivity } @Override - public void onConfirmed(int confirmId, long confirmTrackId) { + public void onConfirmDone(int confirmId, long confirmTrackId) { + Intent intent; switch (confirmId) { case R.string.confirm_play_earth_key: AnalyticsUtils.sendPageViews(this, "/action/play"); - Intent intent = IntentUtils.newIntent(this, SaveActivity.class) + intent = IntentUtils.newIntent(this, SaveActivity.class) .putExtra(SaveActivity.EXTRA_TRACK_ID, confirmTrackId) .putExtra(SaveActivity.EXTRA_TRACK_FILE_FORMAT, (Parcelable) TrackFileFormat.KML) .putExtra(SaveActivity.EXTRA_PLAY_TRACK, true); @@ -446,8 +447,12 @@ public class TrackDetailActivity extends AbstractMyTracksActivity getSupportFragmentManager(), ChooseActivityDialogFragment.CHOOSE_ACTIVITY_DIALOG_TAG); break; case R.string.confirm_share_drive_key: - AddPeopleDialogFragment.newInstance(confirmTrackId) - .show(getSupportFragmentManager(), AddPeopleDialogFragment.ADD_PEOPLE_DIALOG_TAG); + SendRequest sendRequest = new SendRequest(trackId); + sendRequest.setSendDrive(true); + sendRequest.setDriveShare(true); + intent = IntentUtils.newIntent(this, AccountChooserActivity.class) + .putExtra(SendRequest.SEND_REQUEST_KEY, sendRequest); + startActivity(intent); break; default: } @@ -459,7 +464,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity } @Override - public void onTrackDeleted() { + public void onDeleteOneTrackDone() { runOnUiThread(new Runnable() { @Override public void run() { diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java index 7a8ba6ee0..e41a613cc 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java @@ -23,7 +23,6 @@ import com.google.android.apps.mytracks.content.TrackDataListener; import com.google.android.apps.mytracks.content.TrackDataType; import com.google.android.apps.mytracks.content.TracksColumns; import com.google.android.apps.mytracks.content.Waypoint; -import com.google.android.apps.mytracks.fragments.AddPeopleDialogFragment; import com.google.android.apps.mytracks.fragments.ConfirmDialogFragment; import com.google.android.apps.mytracks.fragments.ConfirmDialogFragment.ConfirmCaller; import com.google.android.apps.mytracks.fragments.DeleteAllTrackDialogFragment; @@ -34,6 +33,8 @@ import com.google.android.apps.mytracks.fragments.WelcomeDialogFragment; import com.google.android.apps.mytracks.io.file.ImportActivity; import com.google.android.apps.mytracks.io.file.SaveActivity; import com.google.android.apps.mytracks.io.file.TrackFileFormat; +import com.google.android.apps.mytracks.io.sendtogoogle.AccountChooserActivity; +import com.google.android.apps.mytracks.io.sendtogoogle.SendRequest; import com.google.android.apps.mytracks.io.sync.SyncUtils; import com.google.android.apps.mytracks.services.ITrackRecordingService; import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection; @@ -632,11 +633,15 @@ public class TrackListActivity extends FragmentActivity } @Override - public void onConfirmed(int confirmId, long trackId) { + public void onConfirmDone(int confirmId, long trackId) { switch (confirmId) { case R.string.confirm_share_drive_key: - AddPeopleDialogFragment.newInstance(trackId) - .show(getSupportFragmentManager(), AddPeopleDialogFragment.ADD_PEOPLE_DIALOG_TAG); + SendRequest sendRequest = new SendRequest(trackId); + sendRequest.setSendDrive(true); + sendRequest.setDriveShare(true); + Intent intent = IntentUtils.newIntent(this, AccountChooserActivity.class) + .putExtra(SendRequest.SEND_REQUEST_KEY, sendRequest); + startActivity(intent); break; default: } @@ -648,7 +653,7 @@ public class TrackListActivity extends FragmentActivity } @Override - public void onTrackDeleted() { + public void onDeleteOneTrackDone() { // Do nothing } diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/AddPeopleDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/AddEmailsDialogFragment.java similarity index 68% rename from MyTracks/src/com/google/android/apps/mytracks/fragments/AddPeopleDialogFragment.java rename to MyTracks/src/com/google/android/apps/mytracks/fragments/AddEmailsDialogFragment.java index 9782fdf4b..c4491ea10 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/AddPeopleDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/AddEmailsDialogFragment.java @@ -16,16 +16,12 @@ package com.google.android.apps.mytracks.fragments; -import com.google.android.apps.mytracks.io.sendtogoogle.AccountChooserActivity; -import com.google.android.apps.mytracks.io.sendtogoogle.SendRequest; -import com.google.android.apps.mytracks.util.IntentUtils; import com.google.android.maps.mytracks.R; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; -import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; @@ -38,35 +34,62 @@ import android.widget.FilterQueryProvider; import android.widget.MultiAutoCompleteTextView; /** - * A DialogFragment to add people to share a track with. + * A DialogFragment to add emails. * * @author Jimmy Shih */ -public class AddPeopleDialogFragment extends DialogFragment { +public class AddEmailsDialogFragment extends DialogFragment { - public static final String ADD_PEOPLE_DIALOG_TAG = "addPeopleDialog"; + /** + * Interface for caller of this dialog fragment. + * + * @author Jimmy Shih + */ + public interface AddEmailsCaller { + + /** + * Called when add emails is done. + * + * @param emails the added emails + */ + public void onAddEmailsDone(String emails); + } + + public static final String ADD_EMAILS_DIALOG_TAG = "addEmailsDialog"; private static final String KEY_TRACK_ID = "trackId"; - public static AddPeopleDialogFragment newInstance(long trackId) { + public static AddEmailsDialogFragment newInstance(long trackId) { Bundle bundle = new Bundle(); bundle.putLong(KEY_TRACK_ID, trackId); - AddPeopleDialogFragment addPeopleDialogFragment = new AddPeopleDialogFragment(); + AddEmailsDialogFragment addPeopleDialogFragment = new AddEmailsDialogFragment(); addPeopleDialogFragment.setArguments(bundle); return addPeopleDialogFragment; } private MultiAutoCompleteTextView multiAutoCompleteTextView; + private AddEmailsCaller caller; + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + try { + caller = (AddEmailsCaller) activity; + } catch (ClassCastException e) { + throw new ClassCastException( + activity.toString() + " must implement " + AddEmailsCaller.class.getSimpleName()); + } + } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { FragmentActivity activity = getActivity(); - View view = activity.getLayoutInflater().inflate(R.layout.add_people, null); - multiAutoCompleteTextView = (MultiAutoCompleteTextView) view.findViewById(R.id.add_people); + View view = activity.getLayoutInflater().inflate(R.layout.add_emails, null); + multiAutoCompleteTextView = (MultiAutoCompleteTextView) view.findViewById(R.id.add_emails); multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); - SimpleCursorAdapter adapter = new SimpleCursorAdapter(getActivity(), R.layout.add_people_item, + SimpleCursorAdapter adapter = new SimpleCursorAdapter(getActivity(), R.layout.add_emails_item, getCursor(getActivity(), null), new String[] { ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.CommonDataKinds.Email.DATA }, new int[] { android.R.id.text1, android.R.id.text2 }, 0); @@ -85,24 +108,28 @@ public class AddPeopleDialogFragment extends DialogFragment { }); multiAutoCompleteTextView.setAdapter(adapter); - return new AlertDialog.Builder(activity).setNegativeButton(R.string.generic_cancel, null) - .setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() { + return new AlertDialog.Builder(activity).setNegativeButton( + R.string.generic_cancel, new DialogInterface.OnClickListener() { + @Override public void onClick(DialogInterface dialog, int which) { - String acl = multiAutoCompleteTextView.getText().toString(); - if (acl != null && !acl.equals("")) { - long trackId = getArguments().getLong(KEY_TRACK_ID); - SendRequest sendRequest = new SendRequest(trackId); - sendRequest.setSendDrive(true); - sendRequest.setAcl(acl); - Intent intent = IntentUtils.newIntent(getActivity(), AccountChooserActivity.class) - .putExtra(SendRequest.SEND_REQUEST_KEY, sendRequest); - startActivity(intent); - } + caller.onAddEmailsDone(null); } - }).setTitle(R.string.share_track_add_people).setView(view).create(); + }).setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + String acl = multiAutoCompleteTextView.getText().toString(); + caller.onAddEmailsDone(acl); + } + }).setTitle(R.string.share_track_add_emails_title).setView(view).create(); } + @Override + public void onCancel(DialogInterface dialog) { + super.onCancel(dialog); + caller.onAddEmailsDone(null); + } + /** * Gets the cursor * diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmDialogFragment.java index 9a9e85ba7..b9a6dc531 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmDialogFragment.java @@ -44,9 +44,9 @@ public class ConfirmDialogFragment extends DialogFragment { public interface ConfirmCaller { /** - * Called when confirmed. + * Called when confirm is done. */ - public void onConfirmed(int confirmId, long trackId); + public void onConfirmDone(int confirmId, long trackId); } public static final String CONFIRM_DIALOG_TAG = "confirmDialog"; @@ -92,7 +92,7 @@ public class ConfirmDialogFragment extends DialogFragment { if (!PreferencesUtils.getBoolean(getActivity(), confirmId, defaultValue)) { long trackId = getArguments().getLong(KEY_TRACK_ID); dismiss(); - caller.onConfirmed(confirmId, trackId); + caller.onConfirmDone(confirmId, trackId); } } @@ -110,7 +110,7 @@ public class ConfirmDialogFragment extends DialogFragment { int confirmId = getArguments().getInt(KEY_CONFIRM_ID); long trackId = getArguments().getLong(KEY_TRACK_ID); PreferencesUtils.setBoolean(getActivity(), confirmId, !checkBox.isChecked()); - caller.onConfirmed(confirmId, trackId); + caller.onConfirmDone(confirmId, trackId); } }).setTitle(R.string.generic_confirm_title).setView(view).create(); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteOneMarkerDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteOneMarkerDialogFragment.java index 4096d4c44..1a03f2b0f 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteOneMarkerDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteOneMarkerDialogFragment.java @@ -35,23 +35,23 @@ import android.support.v4.app.FragmentActivity; */ public class DeleteOneMarkerDialogFragment extends DialogFragment { - public static final String DELETE_ONE_MARKER_DIALOG_TAG = "deleteOneMarkerDialog"; - private static final String KEY_MARKER_ID = "markerId"; - private static final String KEY_TRACK_ID = "trackId"; - /** * Interface for caller of this dialog fragment. * * @author Jimmy Shih */ public interface DeleteOneMarkerCaller { - + /** - * Called when a marker is deleted. + * Called when delete one marker is done. */ - public void onMarkerDeleted(); + public void onDeleteOneMarkerDone(); } + public static final String DELETE_ONE_MARKER_DIALOG_TAG = "deleteOneMarkerDialog"; + private static final String KEY_MARKER_ID = "markerId"; + private static final String KEY_TRACK_ID = "trackId"; + public static DeleteOneMarkerDialogFragment newInstance(long markerId, long trackId) { Bundle bundle = new Bundle(); bundle.putLong(KEY_MARKER_ID, markerId); @@ -89,7 +89,7 @@ public class DeleteOneMarkerDialogFragment extends DialogFragment { MyTracksProviderUtils.Factory.get(fragmentActivity).deleteWaypoint( getArguments().getLong(KEY_MARKER_ID), new DescriptionGeneratorImpl(fragmentActivity)); - caller.onMarkerDeleted(); + caller.onDeleteOneMarkerDone(); } }).start(); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteOneTrackDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteOneTrackDialogFragment.java index ae438daba..0bccf4499 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteOneTrackDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteOneTrackDialogFragment.java @@ -50,9 +50,9 @@ public class DeleteOneTrackDialogFragment extends DialogFragment { public TrackRecordingServiceConnection getTrackRecordingServiceConnection(); /** - * Called when a track is deleted. + * Called when delete one track is done. */ - public void onTrackDeleted(); + public void onDeleteOneTrackDone(); } public static final String DELETE_ONE_TRACK_DIALOG_TAG = "deleteOneTrackDialog"; @@ -98,7 +98,7 @@ public class DeleteOneTrackDialogFragment extends DialogFragment { @Override public void run() { MyTracksProviderUtils.Factory.get(fragmentActivity).deleteTrack(trackId); - caller.onTrackDeleted(); + caller.onDeleteOneTrackDone(); } }).start(); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/drive/SendDriveActivity.java b/MyTracks/src/com/google/android/apps/mytracks/io/drive/SendDriveActivity.java index 6fb553d28..3ab5726e2 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/drive/SendDriveActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/drive/SendDriveActivity.java @@ -39,7 +39,7 @@ public class SendDriveActivity extends AbstractSendActivity { @Override protected AbstractSendAsyncTask createAsyncTask() { return new SendDriveAsyncTask( - this, sendRequest.getTrackId(), sendRequest.getAccount(), sendRequest.getAcl()); + this, sendRequest.getTrackId(), sendRequest.getAccount(), sendRequest.getDriveShareEmails()); } @Override diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/AccountChooserActivity.java b/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/AccountChooserActivity.java index 1df5f4d25..e6cac0a1d 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/AccountChooserActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/AccountChooserActivity.java @@ -17,6 +17,8 @@ package com.google.android.apps.mytracks.io.sendtogoogle; import com.google.android.apps.mytracks.Constants; +import com.google.android.apps.mytracks.fragments.AddEmailsDialogFragment; +import com.google.android.apps.mytracks.fragments.AddEmailsDialogFragment.AddEmailsCaller; import com.google.android.apps.mytracks.io.drive.SendDriveActivity; import com.google.android.apps.mytracks.io.fusiontables.SendFusionTablesActivity; import com.google.android.apps.mytracks.io.gdata.maps.MapsConstants; @@ -39,6 +41,7 @@ import android.app.Dialog; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; +import android.support.v4.app.FragmentActivity; import android.util.Log; import android.widget.Toast; @@ -49,7 +52,7 @@ import java.io.IOException; * * @author Jimmy Shih */ -public class AccountChooserActivity extends Activity { +public class AccountChooserActivity extends FragmentActivity implements AddEmailsCaller { private static final String TAG = AccountChooserActivity.class.getSimpleName(); private static final int DIALOG_NO_ACCOUNT_ID = 0; @@ -143,6 +146,17 @@ public class AccountChooserActivity extends Activity { } } + @Override + public void onAddEmailsDone(String emails) { + if (emails != null && !emails.equals("")) { + sendRequest.setDriveShareEmails(emails); + Intent intent = IntentUtils.newIntent(this, SendDriveActivity.class) + .putExtra(SendRequest.SEND_REQUEST_KEY, sendRequest); + startActivity(intent); + } + finish(); + } + /** * Creates a chooser dialog. */ @@ -327,7 +341,13 @@ public class AccountChooserActivity extends Activity { private void startNextActivity() { Class next; if (sendRequest.isSendDrive()) { - next = SendDriveActivity.class; + if (sendRequest.isDriveShare()) { + AddEmailsDialogFragment.newInstance(sendRequest.getTrackId()) + .show(getSupportFragmentManager(), AddEmailsDialogFragment.ADD_EMAILS_DIALOG_TAG); + return; + } else { + next = SendDriveActivity.class; + } } else if (sendRequest.isSendMaps()) { next = sendRequest.isNewMap() ? SendMapsActivity.class : ChooseMapActivity.class; } else if (sendRequest.isSendFusionTables()) { diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/SendRequest.java b/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/SendRequest.java index f9f05be0b..2731c1cad 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/SendRequest.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/SendRequest.java @@ -33,11 +33,12 @@ public class SendRequest implements Parcelable { private long trackId = -1L; private String sharingAppPackageName = null; private String sharingAppClassName = null; - private String acl = null; private boolean sendDrive = false; private boolean sendMaps = false; private boolean sendFusionTables = false; private boolean sendSpreadsheets = false; + private boolean driveShare = false; + private String driveShareEmails = null; private boolean newMap = false; private Account account = null; private String mapId = null; @@ -94,22 +95,6 @@ public class SendRequest implements Parcelable { this.sharingAppClassName = sharingAppClassName; } - /** - * Gets the email address of the user to share the track with. - */ - public String getAcl() { - return acl; - } - - /** - * Sets the email address of the user to share the track with. - * - * @param acl the email address - */ - public void setAcl(String acl) { - this.acl = acl; - } - /** * True if the user has selected the send to Google Drive option. */ @@ -178,6 +163,22 @@ public class SendRequest implements Parcelable { this.sendSpreadsheets = sendSpreadsheets; } + public boolean isDriveShare() { + return driveShare; + } + + public void setDriveShare(boolean driveShare) { + this.driveShare = driveShare; + } + + public String getDriveShareEmails() { + return driveShareEmails; + } + + public void setDriveShareEmails(String driveShareEmails) { + this.driveShareEmails = driveShareEmails; + } + /** * True if the user has selected to create a new Google Maps. */ @@ -297,11 +298,12 @@ public class SendRequest implements Parcelable { trackId = in.readLong(); sharingAppPackageName = in.readString(); sharingAppClassName = in.readString(); - acl = in.readString(); sendDrive = in.readByte() == 1; sendMaps = in.readByte() == 1; sendFusionTables = in.readByte() == 1; sendSpreadsheets = in.readByte() == 1; + driveShare = in.readByte() == 1; + driveShareEmails = in.readString(); newMap = in.readByte() == 1; account = in.readParcelable(null); mapId = in.readString(); @@ -321,11 +323,12 @@ public class SendRequest implements Parcelable { out.writeLong(trackId); out.writeString(sharingAppPackageName); out.writeString(sharingAppClassName); - out.writeString(acl); out.writeByte((byte) (sendDrive ? 1 : 0)); out.writeByte((byte) (sendMaps ? 1 : 0)); out.writeByte((byte) (sendFusionTables ? 1 : 0)); out.writeByte((byte) (sendSpreadsheets ? 1 : 0)); + out.writeByte((byte) (driveShare ? 1 : 0)); + out.writeString(driveShareEmails); out.writeByte((byte) (newMap ? 1 : 0)); out.writeParcelable(account, 0); out.writeString(mapId); diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/io/sendtogoogle/SendRequestTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/io/sendtogoogle/SendRequestTest.java index d16846d6c..7447e3e38 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/io/sendtogoogle/SendRequestTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/io/sendtogoogle/SendRequestTest.java @@ -26,12 +26,16 @@ import android.test.AndroidTestCase; * @author Youtao Liu */ public class SendRequestTest extends AndroidTestCase { + private SendRequest sendRequest; - final static private String ACCOUNTNAME = "testAccount1"; - final static private String ACCOUNTYPE = "testType1"; - final static private String MAPID = "mapId1"; - + private static final String SHARING_APP_PACKAGE_NAME = "package"; + private static final String SHARING_APP_CLASS_NAME = "class"; + private final static String ACCOUNTNAME = "testAccount1"; + private final static String ACCOUNTYPE = "testType1"; + private final static String MAPID = "mapId1"; + private final static String DRIVE_SHARE_EMAILS = "foo@foo.com"; + @Override protected void setUp() throws Exception { super.setUp(); @@ -141,12 +145,13 @@ public class SendRequestTest extends AndroidTestCase { parcel.writeLong(2); parcel.writeString(""); parcel.writeString(""); - parcel.writeString(""); parcel.writeByte((byte) 1); parcel.writeByte((byte) 1); parcel.writeByte((byte) 1); parcel.writeByte((byte) 1); parcel.writeByte((byte) 1); + parcel.writeString(DRIVE_SHARE_EMAILS); + parcel.writeByte((byte) 1); Account account = new Account(ACCOUNTNAME, ACCOUNTYPE); parcel.writeParcelable(account, 0); parcel.writeString(MAPID); @@ -159,11 +164,12 @@ public class SendRequestTest extends AndroidTestCase { assertEquals(2, sendRequest.getTrackId()); assertEquals("", sendRequest.getSharingAppPackageName()); assertEquals("", sendRequest.getSharingAppClassName()); - assertEquals("", sendRequest.getAcl()); assertTrue(sendRequest.isSendDrive()); assertTrue(sendRequest.isSendMaps()); assertTrue(sendRequest.isSendFusionTables()); assertTrue(sendRequest.isSendSpreadsheets()); + assertTrue(sendRequest.isDriveShare()); + assertEquals(DRIVE_SHARE_EMAILS, sendRequest.getDriveShareEmails()); assertTrue(sendRequest.isNewMap()); assertEquals(account, sendRequest.getAccount()); assertEquals(MAPID, sendRequest.getMapId()); @@ -182,12 +188,13 @@ public class SendRequestTest extends AndroidTestCase { parcel.writeLong(4); parcel.writeString(null); parcel.writeString(null); + parcel.writeByte((byte) 0); + parcel.writeByte((byte) 0); + parcel.writeByte((byte) 0); + parcel.writeByte((byte) 0); + parcel.writeByte((byte) 0); parcel.writeString(null); parcel.writeByte((byte) 0); - parcel.writeByte((byte) 0); - parcel.writeByte((byte) 0); - parcel.writeByte((byte) 0); - parcel.writeByte((byte) 0); Account account = new Account(ACCOUNTNAME, ACCOUNTYPE); parcel.writeParcelable(account, 0); parcel.writeString(MAPID); @@ -200,11 +207,12 @@ public class SendRequestTest extends AndroidTestCase { assertEquals(4, sendRequest.getTrackId()); assertNull(sendRequest.getSharingAppPackageName()); assertNull(sendRequest.getSharingAppClassName()); - assertNull(sendRequest.getAcl()); assertFalse(sendRequest.isSendDrive()); assertFalse(sendRequest.isSendMaps()); assertFalse(sendRequest.isSendFusionTables()); assertFalse(sendRequest.isSendSpreadsheets()); + assertFalse(sendRequest.isDriveShare()); + assertNull(sendRequest.getDriveShareEmails()); assertFalse(sendRequest.isNewMap()); assertEquals(account, sendRequest.getAccount()); assertEquals(MAPID, sendRequest.getMapId()); @@ -226,11 +234,12 @@ public class SendRequestTest extends AndroidTestCase { long trackId = parcel.readLong(); String sharingAppPackageName = parcel.readString(); String sharingAppClassName = parcel.readString(); - String acl = parcel.readString(); boolean sendDrive = parcel.readByte() == 1; boolean sendMaps = parcel.readByte() == 1; boolean sendFusionTables = parcel.readByte() == 1; boolean sendSpreadsheets = parcel.readByte() == 1; + boolean driveShare = parcel.readByte() == 1; + String dirveShareEmails = parcel.readString(); boolean newMap = parcel.readByte() == 1; Parcelable account = parcel.readParcelable(null); String mapId = parcel.readString(); @@ -241,11 +250,12 @@ public class SendRequestTest extends AndroidTestCase { assertEquals(1, trackId); assertNull(sharingAppPackageName); assertNull(sharingAppClassName); - assertNull(acl); assertFalse(sendDrive); assertFalse(sendMaps); assertFalse(sendFusionTables); assertFalse(sendSpreadsheets); + assertFalse(driveShare); + assertNull(dirveShareEmails); assertFalse(newMap); assertNull(account); assertNull(mapId); @@ -260,13 +270,14 @@ public class SendRequestTest extends AndroidTestCase { */ public void testWriteToParcel() { sendRequest = new SendRequest(4); - sendRequest.setSharingAppPackageName("package"); - sendRequest.setSharingAppClassName("class"); - sendRequest.setAcl("acl"); + sendRequest.setSharingAppPackageName(SHARING_APP_PACKAGE_NAME); + sendRequest.setSharingAppClassName(SHARING_APP_CLASS_NAME); sendRequest.setSendDrive(true); sendRequest.setSendMaps(true); sendRequest.setSendFusionTables(true); sendRequest.setSendSpreadsheets(true); + sendRequest.setDriveShare(true); + sendRequest.setDriveShareEmails(DRIVE_SHARE_EMAILS); sendRequest.setNewMap(true); Account accountNew = new Account(ACCOUNTNAME + "2", ACCOUNTYPE + "2"); sendRequest.setAccount(accountNew); @@ -282,11 +293,12 @@ public class SendRequestTest extends AndroidTestCase { long trackId = parcel.readLong(); String sharingAppPackageName = parcel.readString(); String sharingAppClassName = parcel.readString(); - String acl = parcel.readString(); boolean sendDrive = parcel.readByte() == 1; boolean sendMaps = parcel.readByte() == 1; boolean sendFusionTables = parcel.readByte() == 1; boolean sendSpreadsheets = parcel.readByte() == 1; + boolean shareDrive = parcel.readByte() == 1; + String driveShareEmails = parcel.readString(); boolean newMap = parcel.readByte() == 1; Parcelable account = parcel.readParcelable(null); String mapId = parcel.readString(); @@ -295,13 +307,14 @@ public class SendRequestTest extends AndroidTestCase { boolean fusionTablesSuccess = parcel.readByte() == 1; boolean spreadsheetsSuccess = parcel.readByte() == 1; assertEquals(4, trackId); - assertEquals("package", sharingAppPackageName); - assertEquals("class", sharingAppClassName); - assertEquals("acl", acl); + assertEquals(SHARING_APP_PACKAGE_NAME, sharingAppPackageName); + assertEquals(SHARING_APP_CLASS_NAME, sharingAppClassName); assertTrue(sendDrive); assertTrue(sendMaps); assertTrue(sendFusionTables); assertTrue(sendSpreadsheets); + assertTrue(shareDrive); + assertEquals(DRIVE_SHARE_EMAILS, driveShareEmails); assertTrue(newMap); assertEquals(accountNew, account); assertEquals(MAPID, mapId);