merge heads

This commit is contained in:
Jimmy Shih
2011-11-18 14:11:24 -08:00
4 changed files with 144 additions and 141 deletions
+2 -2
View File
@@ -17,8 +17,8 @@ limitations under the License.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.maps.mytracks" package="com.google.android.maps.mytracks"
android:installLocation="auto" android:installLocation="auto"
android:versionCode="33" android:versionCode="34"
android:versionName="1.1.10"> android:versionName="1.1.11">
<application android:icon="@drawable/arrow_icon" <application android:icon="@drawable/arrow_icon"
android:label="@string/my_tracks_app_name" android:label="@string/my_tracks_app_name"
android:name="com.google.android.apps.mytracks.MyTracksApplication" android:name="com.google.android.apps.mytracks.MyTracksApplication"
+69 -58
View File
@@ -15,110 +15,121 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
--> -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/screen"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:background="@drawable/list_bar"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/list_bar"> android:layout_width="fill_parent">
<TextView <TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:layout_width="fill_parent"
android:text="@string/send_google_title" android:text="@string/send_google_title"
android:textSize="20dip"
android:textColor="#fff" android:textColor="#fff"
android:layout_marginLeft="10dip"/> android:textSize="20dip"/>
</LinearLayout> </LinearLayout>
<ScrollView android:id="@+id/sendtogoogle_scrollview" <ScrollView
android:layout_width="fill_parent"
android:layout_height="0dip" android:layout_height="0dip"
android:layout_weight="1"> android:layout_marginBottom="5dip"
android:layout_marginLeft="5dip"
android:layout_marginTop="5dip"
android:layout_weight="1"
android:layout_width="fill_parent">
<TableLayout <TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:stretchColumns="1" android:layout_width="fill_parent"
android:layout_marginTop="5dip" android:stretchColumns="1">
android:layout_marginLeft="5dip">
<!-- My Maps --> <!-- Google My Maps -->
<TableRow> <TableRow>
<ImageView android:src="@drawable/mymaps_icon" <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:layout_width="wrap_content"
android:layout_marginLeft="10dip"> android:src="@drawable/mymaps_icon"/>
<CheckBox android:id="@+id/sendtogoogle_google_mymaps" <LinearLayout
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:layout_width="fill_parent"
android:orientation="vertical">
<CheckBox
android:checked="true"
android:id="@+id/send_google_my_maps"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/send_google_my_maps"
android:textSize="20dip"
android:checked="true"/>
<RadioGroup android:id="@+id/sendtogoogle_group_mymaps"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content"> android:text="@string/send_google_my_maps"
<RadioButton android:id="@+id/sendtogoogle_create_new_map" android:textSize="18dip"/>
android:layout_width="fill_parent" <RadioGroup
android:id="@+id/send_google_my_maps_group"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<RadioButton
android:id="@+id/send_google_new_map"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/send_google_new_map"/> android:text="@string/send_google_new_map"/>
<RadioButton android:id="@+id/sendtogoogle_pick_existing_map" <RadioButton
android:layout_width="fill_parent" android:id="@+id/send_google_existing_map"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/send_google_existing_map"/> android:text="@string/send_google_existing_map"/>
</RadioGroup> </RadioGroup>
</LinearLayout> </LinearLayout>
</TableRow> </TableRow>
<!-- Fusion Tables --> <!-- Google Fusion Tables -->
<TableRow> <TableRow>
<ImageView android:src="@drawable/googledocs_icon" <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:layout_width="wrap_content"
android:layout_marginLeft="10dip"> android:src="@drawable/googledocs_icon"/>
<CheckBox android:id="@+id/sendtogoogle_google_fusiontables" <LinearLayout
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:layout_width="fill_parent"
android:orientation="vertical">
<CheckBox
android:checked="true"
android:id="@+id/send_google_fusion_tables"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/send_google_fusion_tables" android:text="@string/send_google_fusion_tables"
android:textSize="20dip" android:textSize="18dip"/>
android:checked="true"/>
</LinearLayout> </LinearLayout>
</TableRow> </TableRow>
<!-- Google Docs --> <!-- Google Docs -->
<TableRow> <TableRow>
<ImageView android:src="@drawable/googledocs_icon" <ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:layout_width="wrap_content"
android:layout_marginLeft="10dip"> android:src="@drawable/googledocs_icon"/>
<CheckBox android:id="@+id/sendtogoogle_google_docs" <LinearLayout
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:layout_width="fill_parent"
android:orientation="vertical">
<CheckBox
android:checked="true"
android:id="@+id/send_google_docs"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/send_google_docs" android:text="@string/send_google_docs"
android:textSize="20dip" android:textSize="18dip"/>
android:checked="true"/>
</LinearLayout> </LinearLayout>
</TableRow> </TableRow>
</TableLayout> </TableLayout>
</ScrollView> </ScrollView>
<LinearLayout style="@style/ButtonLayout"> <LinearLayout style="@style/ButtonLayout">
<LinearLayout style="@style/ButtonSpacer"/> <LinearLayout style="@style/ButtonSpacer"/>
<Button android:id="@+id/sendtogoogle_send_now" <Button
android:id="@+id/send_google_send_now"
android:layout_gravity="left" android:layout_gravity="left"
android:text="@string/send_google_send_now" android:text="@string/send_google_send_now"
style="@style/Button"/> style="@style/Button"/>
<Button android:id="@+id/sendtogoogle_cancel" <Button
android:id="@+id/send_google_cancel"
android:layout_gravity="right" android:layout_gravity="right"
android:text="@string/generic_cancel" android:text="@string/generic_cancel"
style="@style/Button"/> style="@style/Button"/>
@@ -16,6 +16,7 @@
package com.google.android.apps.mytracks.io.sendtogoogle; package com.google.android.apps.mytracks.io.sendtogoogle;
import com.google.android.apps.mytracks.Constants; import com.google.android.apps.mytracks.Constants;
import com.google.android.apps.mytracks.util.ApiFeatures;
import com.google.android.maps.mytracks.R; import com.google.android.maps.mytracks.R;
import android.app.Dialog; import android.app.Dialog;
@@ -40,11 +41,11 @@ import android.widget.RadioGroup;
*/ */
public class SendDialog extends Dialog { public class SendDialog extends Dialog {
private RadioButton createNewMapRadioButton; private RadioButton newMapRadioButton;
private RadioButton pickMapRadioButton; private RadioButton existingMapRadioButton;
private CheckBox sendToMyMapsCheckBox; private CheckBox myMapsCheckBox;
private CheckBox sendToFusionTablesCheckBox; private CheckBox fusionTablesCheckBox;
private CheckBox sendToDocsCheckBox; private CheckBox docsCheckBox;
private OnClickListener clickListener; private OnClickListener clickListener;
public SendDialog(Context context) { public SendDialog(Context context) {
@@ -57,19 +58,17 @@ public class SendDialog extends Dialog {
requestWindowFeature(Window.FEATURE_NO_TITLE); requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.mytracks_send_to_google); setContentView(R.layout.mytracks_send_to_google);
final Button sendButton = (Button) findViewById(R.id.sendtogoogle_send_now); final Button sendButton = (Button) findViewById(R.id.send_google_send_now);
final RadioGroup groupMyMaps = (RadioGroup) findViewById(R.id.sendtogoogle_group_mymaps);
sendToMyMapsCheckBox =
(CheckBox) findViewById(R.id.sendtogoogle_google_mymaps);
sendToFusionTablesCheckBox =
(CheckBox) findViewById(R.id.sendtogoogle_google_fusiontables);
sendToDocsCheckBox = (CheckBox) findViewById(R.id.sendtogoogle_google_docs);
createNewMapRadioButton =
(RadioButton) findViewById(R.id.sendtogoogle_create_new_map);
pickMapRadioButton =
(RadioButton) findViewById(R.id.sendtogoogle_pick_existing_map);
Button cancel = (Button) findViewById(R.id.sendtogoogle_cancel); final RadioGroup myMapsGroup = (RadioGroup) findViewById(R.id.send_google_my_maps_group);
newMapRadioButton = (RadioButton) findViewById(R.id.send_google_new_map);
existingMapRadioButton = (RadioButton) findViewById(R.id.send_google_existing_map);
myMapsCheckBox = (CheckBox) findViewById(R.id.send_google_my_maps);
fusionTablesCheckBox = (CheckBox) findViewById(R.id.send_google_fusion_tables);
docsCheckBox = (CheckBox) findViewById(R.id.send_google_docs);
Button cancel = (Button) findViewById(R.id.send_google_cancel);
cancel.setOnClickListener(new View.OnClickListener() { cancel.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { public void onClick(View v) {
if (clickListener != null) { if (clickListener != null) {
@@ -79,7 +78,7 @@ public class SendDialog extends Dialog {
} }
}); });
Button send = (Button) findViewById(R.id.sendtogoogle_send_now); Button send = (Button) findViewById(R.id.send_google_send_now);
send.setOnClickListener(new View.OnClickListener() { send.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { public void onClick(View v) {
if (clickListener != null) { if (clickListener != null) {
@@ -91,80 +90,72 @@ public class SendDialog extends Dialog {
OnCheckedChangeListener checkBoxListener = new OnCheckedChangeListener() { OnCheckedChangeListener checkBoxListener = new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton button, boolean checked) { public void onCheckedChanged(CompoundButton button, boolean checked) {
sendButton.setEnabled( sendButton.setEnabled(myMapsCheckBox.isChecked() || fusionTablesCheckBox.isChecked()
sendToMyMapsCheckBox.isChecked() || || docsCheckBox.isChecked());
sendToFusionTablesCheckBox.isChecked() || myMapsGroup.setVisibility(myMapsCheckBox.isChecked() ? View.VISIBLE : View.GONE);
sendToDocsCheckBox.isChecked());
groupMyMaps.setVisibility(sendToMyMapsCheckBox.isChecked() ? View.VISIBLE : View.INVISIBLE);
} }
}; };
sendToMyMapsCheckBox.setOnCheckedChangeListener(checkBoxListener);
sendToFusionTablesCheckBox.setOnCheckedChangeListener(checkBoxListener); myMapsCheckBox.setOnCheckedChangeListener(checkBoxListener);
sendToDocsCheckBox.setOnCheckedChangeListener(checkBoxListener); fusionTablesCheckBox.setOnCheckedChangeListener(checkBoxListener);
docsCheckBox.setOnCheckedChangeListener(checkBoxListener);
SharedPreferences prefs = SharedPreferences prefs = getContext().getSharedPreferences(
getContext().getSharedPreferences(Constants.SETTINGS_NAME, 0); Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
if (prefs != null) { if (prefs != null) {
sendToMyMapsCheckBox.setChecked( boolean pickExistingMap = prefs.getBoolean(
prefs.getBoolean( getContext().getString(R.string.pick_existing_map_key), false);
getContext().getString(R.string.send_to_my_maps_key), true));
sendToFusionTablesCheckBox.setChecked( newMapRadioButton.setChecked(!pickExistingMap);
prefs.getBoolean( existingMapRadioButton.setChecked(pickExistingMap);
getContext().getString(R.string.send_to_fusion_tables_key), true));
sendToDocsCheckBox.setChecked( myMapsCheckBox.setChecked(
prefs.getBoolean( prefs.getBoolean(getContext().getString(R.string.send_to_my_maps_key), true));
getContext().getString(R.string.send_to_docs_key), true)); fusionTablesCheckBox.setChecked(
pickMapRadioButton.setChecked( prefs.getBoolean(getContext().getString(R.string.send_to_fusion_tables_key), true));
prefs.getBoolean( docsCheckBox.setChecked(
getContext().getString(R.string.pick_existing_map_key), false)); prefs.getBoolean(getContext().getString(R.string.send_to_docs_key), true));
createNewMapRadioButton.setChecked(
!prefs.getBoolean(
getContext().getString(R.string.pick_existing_map_key), false));
} }
} }
@Override @Override
protected void onStop() { protected void onStop() {
SharedPreferences prefs = super.onStop();
getContext().getSharedPreferences(Constants.SETTINGS_NAME, 0); SharedPreferences prefs = getContext().getSharedPreferences(
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
if (prefs != null) { if (prefs != null) {
Editor editor = prefs.edit(); Editor editor = prefs.edit();
if (editor != null) { if (editor != null) {
editor.putBoolean( editor.putBoolean(getContext().getString(R.string.pick_existing_map_key),
getContext().getString(R.string.send_to_my_maps_key), existingMapRadioButton.isChecked());
sendToMyMapsCheckBox.isChecked()); editor.putBoolean(getContext().getString(R.string.send_to_my_maps_key),
editor.putBoolean( myMapsCheckBox.isChecked());
getContext().getString(R.string.send_to_fusion_tables_key), editor.putBoolean(getContext().getString(R.string.send_to_fusion_tables_key),
sendToFusionTablesCheckBox.isChecked()); fusionTablesCheckBox.isChecked());
editor.putBoolean( editor.putBoolean(getContext().getString(R.string.send_to_docs_key),
getContext().getString(R.string.send_to_docs_key), docsCheckBox.isChecked());
sendToDocsCheckBox.isChecked()); ApiFeatures.getInstance().getApiAdapter().applyPreferenceChanges(editor);
editor.putBoolean(
getContext().getString(R.string.pick_existing_map_key),
pickMapRadioButton.isChecked());
editor.commit();
} }
} }
super.onStop();
} }
public void setOnClickListener(OnClickListener clickListener) { public void setOnClickListener(OnClickListener clickListener) {
this.clickListener = clickListener; this.clickListener = clickListener;
} }
public boolean getSendToMyMaps() { public boolean getCreateNewMap() {
return sendToMyMapsCheckBox.isChecked(); return newMapRadioButton.isChecked();
} }
public boolean getSendToMyMaps() {
return myMapsCheckBox.isChecked();
}
public boolean getSendToFusionTables() { public boolean getSendToFusionTables() {
return sendToFusionTablesCheckBox.isChecked(); return fusionTablesCheckBox.isChecked();
} }
public boolean getSendToDocs() { public boolean getSendToDocs() {
return sendToDocsCheckBox.isChecked(); return docsCheckBox.isChecked();
}
public boolean getCreateNewMap() {
return createNewMapRadioButton.isChecked();
} }
} }
@@ -188,11 +188,12 @@ public abstract class AntSensorManager extends SensorManager {
private void cleanAntInterface() { private void cleanAntInterface() {
Log.i(TAG, "Destroying AntSensorManager"); Log.i(TAG, "Destroying AntSensorManager");
if (antReceiver == null) {
Log.e(TAG, "no ANT receiver");
return;
}
try { try {
if (antReceiver == null) {
Log.e(TAG, "no ANT receiver");
return;
}
antReceiver.releaseInterface(); antReceiver.releaseInterface();
antReceiver.destroy(); antReceiver.destroy();
antReceiver = null; antReceiver = null;
@@ -213,12 +214,12 @@ public abstract class AntSensorManager extends SensorManager {
private synchronized void serviceConnected() { private synchronized void serviceConnected() {
Log.d(TAG, "ANT service connected"); Log.d(TAG, "ANT service connected");
if (antReceiver == null) {
Log.e(TAG, "no ANT receiver");
return;
}
try { try {
if (antReceiver == null) {
Log.e(TAG, "no ANT receiver");
return;
}
if (!antReceiver.claimInterface()) { if (!antReceiver.claimInterface()) {
Log.e(TAG, "failed to claim ANT interface"); Log.e(TAG, "failed to claim ANT interface");
return; return;
@@ -305,12 +306,12 @@ public abstract class AntSensorManager extends SensorManager {
short deviceNumber, byte deviceType, byte txType, short channelPeriod, short deviceNumber, byte deviceType, byte txType, short channelPeriod,
byte radioFreq, byte proxSearch) { byte radioFreq, byte proxSearch) {
if (antReceiver == null) {
Log.e(TAG, "no ANT receiver");
return false;
}
try { try {
if (antReceiver == null) {
Log.e(TAG, "no ANT receiver");
return false;
}
// Assign as slave channel on selected network (0 = public, 1 = ANT+, 2 = // Assign as slave channel on selected network (0 = public, 1 = ANT+, 2 =
// ANTFS) // ANTFS)
antReceiver.ANTAssignChannel(channelNumber, AntDefine.PARAMETER_RX_NOT_TX, networkNumber); antReceiver.ANTAssignChannel(channelNumber, AntDefine.PARAMETER_RX_NOT_TX, networkNumber);