diff --git a/MyTracks/res/layout/add_emails.xml b/MyTracks/res/layout/share_track.xml similarity index 73% rename from MyTracks/res/layout/add_emails.xml rename to MyTracks/res/layout/share_track.xml index db942ef23..7e8cde401 100644 --- a/MyTracks/res/layout/add_emails.xml +++ b/MyTracks/res/layout/share_track.xml @@ -21,14 +21,23 @@ limitations under the License. android:layout_width="match_parent" android:orientation="vertical" android:padding="8dp" > + + \ No newline at end of file diff --git a/MyTracks/res/values/strings.xml b/MyTracks/res/values/strings.xml index b034cf50f..2ba45001a 100644 --- a/MyTracks/res/values/strings.xml +++ b/MyTracks/res/values/strings.xml @@ -2000,26 +2000,29 @@ limitations under the License. - - Share track with - - - Enter email addresses - - - This will upload your track to Google Drive so you can share the file with friends. The file - will be private and only those you have shared with will have access. + This will upload your track to Google Drive so you can share the file with friends. + + + Email addresses + + + Invite to view: Select an application + + Make public & share URL + @@ -2046,10 +2049,19 @@ limitations under the License. %2$s: track description."> I think you might be interested in this track:\n\n%1$s\n\n%2$s + + Share URL using: + I would like to share a track with you + + Share track + * isSendDrive and isDriveEnableSync -> enable sync *

- * isSendDrive and isDriveShare -> show {@link AddEmailsDialogFragment} + * isSendDrive and isDriveShare -> show {@link ShareTrackDialogFragment} *

* isSendDrive -> start {@link SendDriveActivity} *

- * isSendMaps and isMapShare -> show {@link ChooseActivityDialogFragment} - *

- * isSendMaps and isMapsExistingMap -> start {@link ChooseMapActivity} - *

- * isSendMaps and !isMapsExistingMap -> {@link SendMapsActivity} + * isSendMaps -> start {@link SendMapsActivity} *

* isSendFusionTables -> start {@link SendFusionTablesActivity} *

@@ -292,8 +286,8 @@ public abstract class AbstractSendToGoogleActivity extends AbstractMyTracksActiv SyncUtils.enableSync(sendRequest.getAccount()); return; } else if (sendRequest.isDriveShare()) { - AddEmailsDialogFragment.newInstance(sendRequest.getTrackId()) - .show(getSupportFragmentManager(), AddEmailsDialogFragment.ADD_EMAILS_DIALOG_TAG); + ShareTrackDialogFragment.newInstance(sendRequest.getTrackId()) + .show(getSupportFragmentManager(), ShareTrackDialogFragment.SHARE_TRACK_DIALOG_TAG); return; } else { next = SendDriveActivity.class; @@ -344,7 +338,7 @@ public abstract class AbstractSendToGoogleActivity extends AbstractMyTracksActiv protected void confirmShare(long trackId) { ConfirmDialogFragment.newInstance(R.string.confirm_share_drive_key, PreferencesUtils.CONFIRM_SHARE_DRIVE_DEFAULT, - getString(R.string.share_track_drive_confirm_message), new long[] { trackId }) + getString(R.string.share_track_confirm_message), new long[] { trackId }) .show(getSupportFragmentManager(), ConfirmDialogFragment.CONFIRM_DIALOG_TAG); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/ChooseActivityDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/ChooseActivityDialogFragment.java index 06262ca8f..1dba7e249 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/ChooseActivityDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/ChooseActivityDialogFragment.java @@ -124,7 +124,7 @@ public class ChooseActivityDialogFragment extends DialogFragment { caller.onChooseActivityDone( activityInfo.applicationInfo.packageName, activityInfo.name); } - }).setTitle(R.string.share_track_picker_title).create(); + }).setTitle(R.string.share_track_share_url_title).create(); } @Override diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/AddEmailsDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/ShareTrackDialogFragment.java similarity index 79% rename from MyTracks/src/com/google/android/apps/mytracks/fragments/AddEmailsDialogFragment.java rename to MyTracks/src/com/google/android/apps/mytracks/fragments/ShareTrackDialogFragment.java index a22734399..736dc2110 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/AddEmailsDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/ShareTrackDialogFragment.java @@ -30,64 +30,69 @@ import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; import android.support.v4.widget.SimpleCursorAdapter; import android.view.View; +import android.widget.CheckBox; import android.widget.FilterQueryProvider; import android.widget.MultiAutoCompleteTextView; /** - * A DialogFragment to add emails. + * A DialogFragment to share a track. * * @author Jimmy Shih */ -public class AddEmailsDialogFragment extends DialogFragment { +public class ShareTrackDialogFragment extends DialogFragment { /** * Interface for caller of this dialog fragment. * * @author Jimmy Shih */ - public interface AddEmailsCaller { + public interface ShareTrackCaller { /** - * Called when add emails is done. + * Called when share track is done. * * @param emails the added emails + * @param makePublic true to make the track public */ - public void onAddEmailsDone(String emails); + public void onShareTrackDone(String emails, boolean makePublic); } - public static final String ADD_EMAILS_DIALOG_TAG = "addEmailsDialog"; + public static final String SHARE_TRACK_DIALOG_TAG = "shareTrackDialog"; private static final String KEY_TRACK_ID = "trackId"; - public static AddEmailsDialogFragment newInstance(long trackId) { + public static ShareTrackDialogFragment newInstance(long trackId) { Bundle bundle = new Bundle(); bundle.putLong(KEY_TRACK_ID, trackId); - AddEmailsDialogFragment addPeopleDialogFragment = new AddEmailsDialogFragment(); - addPeopleDialogFragment.setArguments(bundle); - return addPeopleDialogFragment; + ShareTrackDialogFragment shareleTrackDialogFragment = new ShareTrackDialogFragment(); + shareleTrackDialogFragment.setArguments(bundle); + return shareleTrackDialogFragment; } - private AddEmailsCaller caller; + private ShareTrackCaller caller; private FragmentActivity fragmentActivity; private MultiAutoCompleteTextView multiAutoCompleteTextView; - + private CheckBox checkBox; + @Override public void onAttach(Activity activity) { super.onAttach(activity); try { - caller = (AddEmailsCaller) activity; + caller = (ShareTrackCaller) activity; } catch (ClassCastException e) { throw new ClassCastException( - activity.toString() + " must implement " + AddEmailsCaller.class.getSimpleName()); + activity.toString() + " must implement " + ShareTrackCaller.class.getSimpleName()); } } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { fragmentActivity = getActivity(); - View view = fragmentActivity.getLayoutInflater().inflate(R.layout.add_emails, null); - multiAutoCompleteTextView = (MultiAutoCompleteTextView) view.findViewById(R.id.add_emails); + View view = fragmentActivity.getLayoutInflater().inflate(R.layout.share_track, null); + + multiAutoCompleteTextView = (MultiAutoCompleteTextView) view.findViewById( + R.id.share_track_emails); multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); SimpleCursorAdapter adapter = new SimpleCursorAdapter(fragmentActivity, @@ -109,15 +114,17 @@ public class AddEmailsDialogFragment extends DialogFragment { }); multiAutoCompleteTextView.setAdapter(adapter); + checkBox = (CheckBox) view.findViewById(R.id.share_track_public); + return new AlertDialog.Builder(fragmentActivity).setNegativeButton( R.string.generic_cancel, null) .setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String acl = multiAutoCompleteTextView.getText().toString(); - caller.onAddEmailsDone(acl); + caller.onShareTrackDone(acl, checkBox.isChecked()); } - }).setTitle(R.string.share_track_add_emails_title).setView(view).create(); + }).setTitle(R.string.share_track_title).setView(view).create(); } /** 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 6db5dcb25..207683b2c 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 @@ -37,8 +37,8 @@ public class SendDriveActivity extends AbstractSendActivity { @Override protected AbstractSendAsyncTask createAsyncTask() { - return new SendDriveAsyncTask( - this, sendRequest.getTrackId(), sendRequest.getAccount(), sendRequest.getDriveShareEmails()); + return new SendDriveAsyncTask(this, sendRequest.getTrackId(), sendRequest.getAccount(), + sendRequest.getDriveShareEmails(), sendRequest.isDriveSharePublic()); } @Override diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/drive/SendDriveAsyncTask.java b/MyTracks/src/com/google/android/apps/mytracks/io/drive/SendDriveAsyncTask.java index 5f0f9f262..2dde0638e 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/drive/SendDriveAsyncTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/drive/SendDriveAsyncTask.java @@ -28,6 +28,7 @@ import com.google.api.client.googleapis.extensions.android.gms.auth.UserRecovera import com.google.api.services.drive.Drive; import com.google.api.services.drive.model.File; import com.google.api.services.drive.model.Permission; +import com.google.api.services.drive.model.PermissionList; import android.accounts.Account; import android.content.Context; @@ -44,10 +45,12 @@ public class SendDriveAsyncTask extends AbstractSendAsyncTask { private final long trackId; private final Account account; private final String[] acl; + private final boolean isPublic; private final Context context; private final MyTracksProviderUtils myTracksProviderUtils; - public SendDriveAsyncTask(SendDriveActivity activity, long trackId, Account account, String acl) { + public SendDriveAsyncTask( + SendDriveActivity activity, long trackId, Account account, String acl, boolean isPublic) { super(activity); this.trackId = trackId; this.account = account; @@ -56,7 +59,8 @@ public class SendDriveAsyncTask extends AbstractSendAsyncTask { } else { this.acl = null; } - + this.isPublic = isPublic; + context = activity.getApplicationContext(); myTracksProviderUtils = MyTracksProviderUtils.Factory.get(context); } @@ -91,18 +95,18 @@ public class SendDriveAsyncTask extends AbstractSendAsyncTask { File driveFile = drive.files().get(driveId).execute(); if (SyncUtils.isValid(driveFile, folderId) && SyncUtils.updateDriveFile( drive, driveFile, context, myTracksProviderUtils, track, false)) { - addPermission(drive, driveId); + addPermission(drive, driveFile); return true; } SyncUtils.updateTrackWithDriveFileInfo(myTracksProviderUtils, track, null); } - String id = SyncUtils.insertDriveFile( + File file = SyncUtils.insertDriveFile( drive, folderId, context, myTracksProviderUtils, track, false); - if (id == null) { + if (file == null) { return false; } - addPermission(drive, id); + addPermission(drive, file); return true; } catch (UserRecoverableAuthException e) { SendToGoogleUtils.sendNotification( @@ -128,16 +132,38 @@ public class SendDriveAsyncTask extends AbstractSendAsyncTask { * @param drive the drive * @param driveId the drive id */ - private void addPermission(Drive drive, String driveId) throws IOException { + private void addPermission(Drive drive, File file) throws IOException { + if (isPublic) { + boolean hasPublic = false; + PermissionList permissionList = drive.permissions().list(file.getId()).execute(); + for (Permission permission : permissionList.getItems()) { + String role = permission.getRole(); + if (role.equals("reader") || role.equals("writer")) { + if (permission.getType().equals("anyone")) { + hasPublic = true; + break; + } + } + } + if (!hasPublic) { + Permission permission = new Permission(); + permission.setRole("reader"); + permission.setType("anyone"); + permission.setValue(""); + drive.permissions().insert(file.getId(), permission).execute(); + } + shareUrl = file.getAlternateLink(); + } + if (acl != null) { for (String email : acl) { email = email.trim(); if (!email.equals("")) { Permission permission = new Permission(); - permission.setValue(email); - permission.setType("user"); permission.setRole("reader"); - drive.permissions().insert(driveId, permission).execute(); + permission.setType("user"); + permission.setValue(email); + drive.permissions().insert(file.getId(), permission).execute(); } } } diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/fusiontables/SendFusionTablesAsyncTask.java b/MyTracks/src/com/google/android/apps/mytracks/io/fusiontables/SendFusionTablesAsyncTask.java index 7601f627a..b2d4998cd 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/fusiontables/SendFusionTablesAsyncTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/fusiontables/SendFusionTablesAsyncTask.java @@ -214,8 +214,9 @@ public class SendFusionTablesAsyncTask extends AbstractSendAsyncTask { } Drive drive = SyncUtils.getDriveService(driveCredential); Permission permission = new Permission(); - permission.setType("anyone"); permission.setRole("reader"); + permission.setType("anyone"); + permission.setValue(""); drive.permissions().insert(tableId, permission).execute(); return true; } diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/AbstractSendActivity.java b/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/AbstractSendActivity.java index b21aee1d9..1c5d1b002 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/AbstractSendActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/AbstractSendActivity.java @@ -90,7 +90,8 @@ public abstract class AbstractSendActivity extends Activity { * * @param success true if the AsyncTask is successful */ - public void onAsyncTaskCompleted(boolean success) { + public void onAsyncTaskCompleted(boolean success, String shareUrl) { + sendRequest.setShareUrl(shareUrl); startNextActivity(success, false); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/AbstractSendAsyncTask.java b/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/AbstractSendAsyncTask.java index 11dab9c5c..2b69b269f 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/AbstractSendAsyncTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/AbstractSendAsyncTask.java @@ -20,7 +20,7 @@ import android.os.AsyncTask; /** * The abstract class for AsyncTasks sending a track to Google. - * + * * @author Jimmy Shih */ public abstract class AbstractSendAsyncTask extends AsyncTask { @@ -35,6 +35,11 @@ public abstract class AbstractSendAsyncTask extends AsyncTask diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/UploadResultActivity.java b/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/UploadResultActivity.java index 6bf4039c5..b39311fa5 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/UploadResultActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/sendtogoogle/UploadResultActivity.java @@ -60,7 +60,7 @@ public class UploadResultActivity extends FragmentActivity implements ChooseActi protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); sendRequest = getIntent().getParcelableExtra(SendRequest.SEND_REQUEST_KEY); - shareUrl = null; + shareUrl = sendRequest.getShareUrl(); Track track = MyTracksProviderUtils.Factory.get(this).getTrack(sendRequest.getTrackId()); if (track == null) { @@ -69,6 +69,12 @@ public class UploadResultActivity extends FragmentActivity implements ChooseActi return; } + if (sendRequest.isDriveSuccess() && shareUrl != null) { + new ChooseActivityDialogFragment().show( + getSupportFragmentManager(), ChooseActivityDialogFragment.CHOOSE_ACTIVITY_DIALOG_TAG); + return; + } + if (sendRequest.isSendMaps() && sendRequest.isMapsSuccess()) { shareUrl = SendMapsUtils.getMapUrl(track); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/sync/SyncUtils.java b/MyTracks/src/com/google/android/apps/mytracks/io/sync/SyncUtils.java index 737a8b6c0..4790e868b 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/io/sync/SyncUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/io/sync/SyncUtils.java @@ -262,9 +262,9 @@ public class SyncUtils { * @param myTracksProviderUtils the myTracksProviderUtils * @param track the track * @param canRetry true if can retry - * @return the added drive file id or null. + * @return the added drive file or null. */ - public static String insertDriveFile(Drive drive, String folderId, Context context, + public static File insertDriveFile(Drive drive, String folderId, Context context, MyTracksProviderUtils myTracksProviderUtils, Track track, boolean canRetry) throws IOException { java.io.File file = getFile(context, myTracksProviderUtils, track); @@ -281,7 +281,7 @@ public class SyncUtils { return null; } SyncUtils.updateTrackWithDriveFileInfo(myTracksProviderUtils, track, uploadedFile); - return uploadedFile.getId(); + return uploadedFile; } finally { file.delete(); } 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 8e98912f0..019fa686d 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 @@ -32,6 +32,7 @@ public class SendRequestTest extends AndroidTestCase { private final static String ACCOUNTNAME = "testAccount1"; private final static String ACCOUNTYPE = "testType1"; private final static String DRIVE_SHARE_EMAILS = "foo@foo.com"; + private final static String SHARE_URL = "url@url.com"; @Override protected void setUp() throws Exception { @@ -128,12 +129,14 @@ public class SendRequestTest extends AndroidTestCase { 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.writeByte((byte) 1); parcel.writeByte((byte) 1); parcel.writeByte((byte) 1); parcel.writeByte((byte) 1); + parcel.writeString(SHARE_URL); parcel.setDataPosition(0); sendRequest = SendRequest.CREATOR.createFromParcel(parcel); assertEquals(2, sendRequest.getTrackId()); @@ -144,11 +147,13 @@ public class SendRequestTest extends AndroidTestCase { assertTrue(sendRequest.isDriveEnableSync()); assertTrue(sendRequest.isDriveShare()); assertEquals(DRIVE_SHARE_EMAILS, sendRequest.getDriveShareEmails()); + assertTrue(sendRequest.isDriveSharePublic()); assertEquals(account, sendRequest.getAccount()); assertTrue(sendRequest.isDriveSuccess()); assertTrue(sendRequest.isMapsSuccess()); assertTrue(sendRequest.isFusionTablesSuccess()); assertTrue(sendRequest.isSpreadsheetsSuccess()); + assertEquals(SHARE_URL, sendRequest.getShareUrl()); } /** @@ -165,12 +170,14 @@ public class SendRequestTest extends AndroidTestCase { parcel.writeByte((byte) 0); parcel.writeByte((byte) 0); parcel.writeString(null); + parcel.writeByte((byte) 0); Account account = new Account(ACCOUNTNAME, ACCOUNTYPE); parcel.writeParcelable(account, 0); parcel.writeByte((byte) 0); parcel.writeByte((byte) 0); parcel.writeByte((byte) 0); parcel.writeByte((byte) 0); + parcel.writeString(null); parcel.setDataPosition(0); sendRequest = SendRequest.CREATOR.createFromParcel(parcel); assertEquals(4, sendRequest.getTrackId()); @@ -181,11 +188,13 @@ public class SendRequestTest extends AndroidTestCase { assertFalse(sendRequest.isDriveEnableSync()); assertFalse(sendRequest.isDriveShare()); assertNull(sendRequest.getDriveShareEmails()); + assertFalse(sendRequest.isDriveSharePublic()); assertEquals(account, sendRequest.getAccount()); assertFalse(sendRequest.isDriveSuccess()); assertFalse(sendRequest.isMapsSuccess()); assertFalse(sendRequest.isFusionTablesSuccess()); assertFalse(sendRequest.isSpreadsheetsSuccess()); + assertNull(sendRequest.getShareUrl()); } /** @@ -202,14 +211,16 @@ public class SendRequestTest extends AndroidTestCase { boolean sendMaps = parcel.readByte() == 1; boolean sendFusionTables = parcel.readByte() == 1; boolean sendSpreadsheets = parcel.readByte() == 1; - boolean driveEnableSync = parcel.readByte() == 1; + boolean driveEnableSync = parcel.readByte() == 1; boolean driveShare = parcel.readByte() == 1; String dirveShareEmails = parcel.readString(); + boolean driveSharePublic = parcel.readByte() == 1; Parcelable account = parcel.readParcelable(null); boolean driveSuccess = parcel.readByte() == 1; boolean mapsSuccess = parcel.readByte() == 1; boolean fusionTablesSuccess = parcel.readByte() == 1; boolean spreadsheetsSuccess = parcel.readByte() == 1; + String shareUrl = parcel.readString(); assertEquals(1, trackId); assertFalse(sendDrive); assertFalse(sendMaps); @@ -218,11 +229,13 @@ public class SendRequestTest extends AndroidTestCase { assertFalse(driveEnableSync); assertFalse(driveShare); assertNull(dirveShareEmails); + assertFalse(driveSharePublic); assertNull(account); assertFalse(driveSuccess); assertFalse(mapsSuccess); assertFalse(fusionTablesSuccess); assertFalse(spreadsheetsSuccess); + assertNull(shareUrl); } /** @@ -237,12 +250,14 @@ public class SendRequestTest extends AndroidTestCase { sendRequest.setDriveEnableSync(true); sendRequest.setDriveShare(true); sendRequest.setDriveShareEmails(DRIVE_SHARE_EMAILS); + sendRequest.setDriveSharePublic(true); Account accountNew = new Account(ACCOUNTNAME + "2", ACCOUNTYPE + "2"); sendRequest.setAccount(accountNew); sendRequest.setMapsSuccess(true); sendRequest.setDriveSuccess(true); sendRequest.setFusionTablesSuccess(true); sendRequest.setSpreadsheetsSuccess(true); + sendRequest.setShareUrl(SHARE_URL); Parcel parcel = Parcel.obtain(); parcel.setDataPosition(0); sendRequest.writeToParcel(parcel, 1); @@ -255,11 +270,13 @@ public class SendRequestTest extends AndroidTestCase { boolean driveEnableSync = parcel.readByte() == 1; boolean driveShare = parcel.readByte() == 1; String driveShareEmails = parcel.readString(); + boolean driveSharePublic = parcel.readByte() == 1; Parcelable account = parcel.readParcelable(null); boolean driveSuccess = parcel.readByte() == 1; boolean mapsSuccess = parcel.readByte() == 1; boolean fusionTablesSuccess = parcel.readByte() == 1; boolean spreadsheetsSuccess = parcel.readByte() == 1; + String shareUrl = parcel.readString(); assertEquals(4, trackId); assertTrue(sendDrive); assertTrue(sendMaps); @@ -268,10 +285,12 @@ public class SendRequestTest extends AndroidTestCase { assertTrue(driveEnableSync); assertTrue(driveShare); assertEquals(DRIVE_SHARE_EMAILS, driveShareEmails); + assertTrue(driveSharePublic); assertEquals(accountNew, account); assertTrue(driveSuccess); assertTrue(mapsSuccess); assertTrue(fusionTablesSuccess); assertTrue(spreadsheetsSuccess); + assertEquals(SHARE_URL, shareUrl); } }