forked from upstream-mirrors/OpenTracks
Add AddEmail after choosing an account.
This commit is contained in:
@@ -22,9 +22,9 @@ limitations under the License.
|
||||
android:orientation="vertical"
|
||||
android:padding="8dp" >
|
||||
<MultiAutoCompleteTextView
|
||||
android:hint="@string/share_track_add_people_hint"
|
||||
android:hint="@string/share_track_add_emails_hint"
|
||||
android:completionThreshold="1"
|
||||
android:id="@+id/add_people"
|
||||
android:id="@+id/add_emails"
|
||||
android:imeOptions="actionDone"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
@@ -2220,11 +2220,11 @@ limitations under the License.
|
||||
</string>
|
||||
|
||||
<!-- Share Track -->
|
||||
<string name="share_track_add_people"
|
||||
translation_description="The dialog title for adding people to share a track with.">
|
||||
Add people
|
||||
<string name="share_track_add_emails_title"
|
||||
translation_description="The dialog title for adding emails to share a track with.">
|
||||
Add emails
|
||||
</string>
|
||||
<string name="share_track_add_people_hint"
|
||||
<string name="share_track_add_emails_hint"
|
||||
translation_description="The hint in the auto complete text box for entering email addresses.">
|
||||
Enter email addresses
|
||||
</string>
|
||||
|
||||
@@ -144,7 +144,7 @@ public class MarkerDetailActivity extends AbstractMyTracksActivity
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMarkerDeleted() {
|
||||
public void onDeleteOneMarkerDone() {
|
||||
runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
@@ -306,7 +306,7 @@ public class MarkerListActivity extends AbstractMyTracksActivity implements Dele
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMarkerDeleted() {
|
||||
public void onDeleteOneMarkerDone() {
|
||||
// Do nothing
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
+52
-25
@@ -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
|
||||
*
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
+8
-8
@@ -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();
|
||||
}
|
||||
|
||||
+3
-3
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
+22
-2
@@ -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()) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
+33
-20
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user