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);
+ }
}
/**