Improve share track dialog

This commit is contained in:
Jimmy Shih
2013-06-07 10:10:55 -07:00
parent 4efd2a3f5e
commit 9571afa286
7 changed files with 91 additions and 29 deletions
@@ -16,6 +16,7 @@
package com.google.android.apps.mytracks.fragments;
import com.google.android.apps.mytracks.util.PreferencesUtils;
import com.google.android.maps.mytracks.R;
import android.app.Activity;
@@ -31,8 +32,11 @@ import android.support.v4.app.FragmentActivity;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.FilterQueryProvider;
import android.widget.MultiAutoCompleteTextView;
import android.widget.Toast;
/**
* A DialogFragment to share a track.
@@ -73,8 +77,9 @@ public class ShareTrackDialogFragment extends DialogFragment {
private ShareTrackCaller caller;
private FragmentActivity fragmentActivity;
private MultiAutoCompleteTextView multiAutoCompleteTextView;
private CheckBox checkBox;
private CheckBox publicCheckBox;
private CheckBox inviteCheckBox;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
@@ -90,7 +95,7 @@ public class ShareTrackDialogFragment extends DialogFragment {
public Dialog onCreateDialog(Bundle savedInstanceState) {
fragmentActivity = getActivity();
View view = fragmentActivity.getLayoutInflater().inflate(R.layout.share_track, null);
multiAutoCompleteTextView = (MultiAutoCompleteTextView) view.findViewById(
R.id.share_track_emails);
multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
@@ -114,15 +119,43 @@ public class ShareTrackDialogFragment extends DialogFragment {
});
multiAutoCompleteTextView.setAdapter(adapter);
checkBox = (CheckBox) view.findViewById(R.id.share_track_public);
publicCheckBox = (CheckBox) view.findViewById(R.id.share_track_public);
publicCheckBox.setChecked(PreferencesUtils.getBoolean(
fragmentActivity, R.string.share_track_public_key,
PreferencesUtils.SHARE_TRACK_PUBLIC_DEFAULT));
inviteCheckBox = (CheckBox) view.findViewById(R.id.share_track_invite);
inviteCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
multiAutoCompleteTextView.setVisibility(isChecked ? View.VISIBLE : View.GONE);
}
});
inviteCheckBox.setChecked(PreferencesUtils.getBoolean(
fragmentActivity, R.string.share_track_invite_key,
PreferencesUtils.SHARE_TRACK_INVITE_DEFAULT));
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.onShareTrackDone(acl, checkBox.isChecked());
if (!publicCheckBox.isChecked() && !inviteCheckBox.isChecked()) {
Toast.makeText(fragmentActivity, R.string.share_track_no_selection, Toast.LENGTH_LONG)
.show();
return;
}
String acl = multiAutoCompleteTextView.getText().toString().trim();
if (!publicCheckBox.isChecked() && acl.equals("")) {
Toast.makeText(fragmentActivity, R.string.share_track_no_emails, Toast.LENGTH_LONG)
.show();
return;
}
PreferencesUtils.setBoolean(
fragmentActivity, R.string.share_track_public_key, publicCheckBox.isChecked());
PreferencesUtils.setBoolean(
fragmentActivity, R.string.share_track_invite_key, inviteCheckBox.isChecked());
caller.onShareTrackDone(acl, publicCheckBox.isChecked());
}
}).setTitle(R.string.share_track_title).setView(view).create();
}