diff --git a/MyTracks/AndroidManifest.xml b/MyTracks/AndroidManifest.xml index 935b3ebb9..2b6362942 100755 --- a/MyTracks/AndroidManifest.xml +++ b/MyTracks/AndroidManifest.xml @@ -102,6 +102,19 @@ + + + + + + + + + + + + + + + diff --git a/MyTracks/res/layout/mytracks_layout.xml b/MyTracks/res/layout/mytracks_layout.xml index 1e4c30873..cdc3ae2a3 100644 --- a/MyTracks/res/layout/mytracks_layout.xml +++ b/MyTracks/res/layout/mytracks_layout.xml @@ -26,8 +26,8 @@ limitations under the License. android:enabled="true" android:focusable="true" android:focusableInTouchMode="true" - android:apiKey="0TXoRmxTinrZKQ9JSazj-9A34XX6_lXsRvTpXWA"/> - + android:apiKey="0y_T_wDlbgovCQMZX7ZClDeveHLLhczEyiUblvw"/> + + + + + @drawable/left_arrow_chart_stateful + @drawable/left_arrow_track_stateful + @drawable/left_arrow_stats_stateful + + + + @drawable/right_arrow_stats_stateful + @drawable/right_arrow_chart_stateful + @drawable/right_arrow_track_stateful + + diff --git a/MyTracks/src/com/google/android/apps/mytracks/MyTracks.java b/MyTracks/src/com/google/android/apps/mytracks/MyTracks.java index 05ca8cdd8..cb8467b7c 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/MyTracks.java +++ b/MyTracks/src/com/google/android/apps/mytracks/MyTracks.java @@ -202,17 +202,6 @@ public class MyTracks extends TabActivity implements OnTouchListener, private NavControls navControls; - /** Icons shown on the left for each tab. */ - private final int leftIcons[] = - { R.drawable.left_arrow_chart_stateful, - R.drawable.left_arrow_track_stateful, - R.drawable.left_arrow_stats_stateful }; - /** Icons shown on the right for each tab. */ - private final int rightIcons[] = - { R.drawable.right_arrow_stats_stateful, - R.drawable.right_arrow_chart_stateful, - R.drawable.right_arrow_track_stateful }; - private final Runnable changeTab = new Runnable() { public void run() { getTabHost().setCurrentTab(navControls.getCurrentIcons()); @@ -266,7 +255,6 @@ public class MyTracks extends TabActivity implements OnTouchListener, providerUtils = MyTracksProviderUtils.Factory.get(this); menuManager = new MenuManager(this); sharedPreferences = getSharedPreferences(MyTracksSettings.SETTINGS_NAME, 0); - dialogManager = new DialogManager(this); // The volume we want to control is the Text-To-Speech volume int volumeStream = @@ -298,7 +286,10 @@ public class MyTracks extends TabActivity implements OnTouchListener, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); layout.setLayoutParams(params); navControls = - new NavControls(this, layout, leftIcons, rightIcons, changeTab); + new NavControls(this, layout, + getResources().obtainTypedArray(R.array.left_icons), + getResources().obtainTypedArray(R.array.right_icons), + changeTab); navControls.show(); tabHost.addView(layout); layout.setOnTouchListener(this); @@ -367,6 +358,7 @@ public class MyTracks extends TabActivity implements OnTouchListener, // to the user. Log.d(MyTracksConstants.TAG, "MyTracks.onResume"); tryBindTrackRecordingService(); + dialogManager = new DialogManager(this); super.onResume(); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/NavControls.java b/MyTracks/src/com/google/android/apps/mytracks/NavControls.java index 0622efab7..655a5fab8 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/NavControls.java +++ b/MyTracks/src/com/google/android/apps/mytracks/NavControls.java @@ -16,6 +16,7 @@ package com.google.android.apps.mytracks; import android.content.Context; +import android.content.res.TypedArray; import android.graphics.drawable.Drawable; import android.os.Handler; import android.view.MotionEvent; @@ -62,8 +63,7 @@ public class NavControls { addView(icon); } - public void setIcon(int iconId) { - Drawable drawable = getContext().getResources().getDrawable(iconId); + public void setIcon(Drawable drawable) { icon.setImageDrawable(drawable); icon.setVisibility(View.VISIBLE); } @@ -102,21 +102,21 @@ public class NavControls { private final TouchLayout prevImage; private final TouchLayout nextImage; - private final int[] leftIcons; - private final int[] rightIcons; + private final TypedArray leftIcons; + private final TypedArray rightIcons; private final Runnable touchRunnable; private boolean isVisible = false; private int currentIcons; public NavControls(Context context, ViewGroup container, - int[] leftIcons, int[] rightIcons, + TypedArray leftIcons, TypedArray rightIcons, Runnable touchRunnable) { this.leftIcons = leftIcons; this.rightIcons = rightIcons; this.touchRunnable = touchRunnable; - if (leftIcons.length != rightIcons.length || leftIcons.length < 1) { + if (leftIcons.length() != rightIcons.length() || leftIcons.length() < 1) { throw new IllegalArgumentException("Invalid icons specified"); } if (touchRunnable == null) { @@ -145,8 +145,8 @@ public class NavControls { container.addView(prevImage); container.addView(nextImage); - prevImage.setIcon(leftIcons[0]); - nextImage.setIcon(rightIcons[0]); + prevImage.setIcon(leftIcons.getDrawable(0)); + nextImage.setIcon(rightIcons.getDrawable(0)); this.currentIcons = 0; } @@ -206,8 +206,9 @@ public class NavControls { private void shiftIcons(boolean isLeft) { // Increment or decrement by one, with wrap around - currentIcons = (currentIcons + leftIcons.length + (isLeft ? -1 : 1)) % leftIcons.length; - prevImage.setIcon(leftIcons[currentIcons]); - nextImage.setIcon(rightIcons[currentIcons]); + currentIcons = (currentIcons + leftIcons.length() + + (isLeft ? -1 : 1)) % leftIcons.length(); + prevImage.setIcon(leftIcons.getDrawable(currentIcons)); + nextImage.setIcon(rightIcons.getDrawable(currentIcons)); } } diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/StatusAnnouncerTask.java b/MyTracks/src/com/google/android/apps/mytracks/services/StatusAnnouncerTask.java index 25571d515..9ee8b6c72 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/services/StatusAnnouncerTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/services/StatusAnnouncerTask.java @@ -261,7 +261,9 @@ public class StatusAnnouncerTask implements PeriodicTask { protected void listenToPhoneState(PhoneStateListener listener, int events) { TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - telephony.listen(listener, events); + if (telephony != null) { + telephony.listen(listener, events); + } } /**