diff --git a/mobile/com.sap.sailing.android.shared/res/layout-land/fragment_home.xml b/mobile/com.sap.sailing.android.shared/res/layout-land/fragment_home.xml
index 6d1436f151d..69fde6d5383 100644
--- a/mobile/com.sap.sailing.android.shared/res/layout-land/fragment_home.xml
+++ b/mobile/com.sap.sailing.android.shared/res/layout-land/fragment_home.xml
@@ -1,8 +1,8 @@
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/fiori_main_background">
-
+ android:src="@drawable/working_title" />
+ android:textColor="@color/fiori_text_color" />
+ android:orientation="horizontal">
+ android:textColor="@color/fiori_text_color" />
-
-
+ android:textStyle="bold" />
-
-
+ android:dividerHeight="1dp" />
\ No newline at end of file
diff --git a/mobile/com.sap.sailing.android.shared/res/layout/fragment_container.xml b/mobile/com.sap.sailing.android.shared/res/layout/fragment_container.xml
index c9bf7d6a47c..4c3e755d2c2 100644
--- a/mobile/com.sap.sailing.android.shared/res/layout/fragment_container.xml
+++ b/mobile/com.sap.sailing.android.shared/res/layout/fragment_container.xml
@@ -1,21 +1,20 @@
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+ android:textSize="16sp" />
-
-
+ android:textSize="12sp" />
-
+ android:background="@color/separator_color" />
+ android:layout_height="match_parent" />
\ No newline at end of file
diff --git a/mobile/com.sap.sailing.android.shared/res/layout/fragment_home.xml b/mobile/com.sap.sailing.android.shared/res/layout/fragment_home.xml
index 2369c05d749..6b5d6ff4268 100644
--- a/mobile/com.sap.sailing.android.shared/res/layout/fragment_home.xml
+++ b/mobile/com.sap.sailing.android.shared/res/layout/fragment_home.xml
@@ -1,8 +1,8 @@
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/fiori_main_background">
+ android:src="@drawable/working_title" />
+ android:textSize="@dimen/default_text_size" />
+ android:textSize="@dimen/highlight_text_size" />
+ android:textSize="@dimen/button_text_size" />
+ android:dividerHeight="1dp" />
\ No newline at end of file
diff --git a/mobile/com.sap.sailing.android.shared/res/values-land/dimens.xml b/mobile/com.sap.sailing.android.shared/res/values-land/dimens.xml
index f26f249b4e6..7ab30e2b03d 100644
--- a/mobile/com.sap.sailing.android.shared/res/values-land/dimens.xml
+++ b/mobile/com.sap.sailing.android.shared/res/values-land/dimens.xml
@@ -3,4 +3,5 @@
80dp
50dp
10dp
+ 5dp
\ No newline at end of file
diff --git a/mobile/com.sap.sailing.android.shared/res/values/dimens.xml b/mobile/com.sap.sailing.android.shared/res/values/dimens.xml
index 14e742df84d..ec8dcb461d3 100644
--- a/mobile/com.sap.sailing.android.shared/res/values/dimens.xml
+++ b/mobile/com.sap.sailing.android.shared/res/values/dimens.xml
@@ -37,6 +37,7 @@
50dp
80dp
10dp
+ 5dp
10dp
diff --git a/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/ui/activities/AbstractBaseActivity.java b/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/ui/activities/AbstractBaseActivity.java
index 1cc07304b90..2e26a8e7ea1 100644
--- a/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/ui/activities/AbstractBaseActivity.java
+++ b/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/ui/activities/AbstractBaseActivity.java
@@ -7,7 +7,6 @@ import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AlertDialog;
-import com.sap.sailing.android.shared.R;
import com.sap.sailing.android.shared.logging.ExLog;
public abstract class AbstractBaseActivity extends SendingServiceAwareActivity {
@@ -55,19 +54,17 @@ public abstract class AbstractBaseActivity extends SendingServiceAwareActivity {
}
public void showErrorPopup(String title, String message) {
- new AlertDialog.Builder(this, R.style.AppTheme_AlertDialog)
+ new AlertDialog.Builder(this)
.setTitle(title)
.setMessage(message)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.dismiss();
}
- }).create();
-
- dialog.show();
+ }).show();
}
- public void showErrorPopup(int string1Id, int string2Id) {
- showErrorPopup(getString(string1Id), getString(string2Id));
+ public void showErrorPopup(int title, int message) {
+ showErrorPopup(getString(title), getString(message));
}
}
diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/activities/RegattaActivity.java b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/activities/RegattaActivity.java
index adddf925c25..8a64cbc163d 100755
--- a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/activities/RegattaActivity.java
+++ b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/activities/RegattaActivity.java
@@ -19,6 +19,7 @@ import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.ColorDrawable;
+import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
@@ -39,6 +40,7 @@ import com.sap.sailing.android.shared.data.BaseCheckinData;
import com.sap.sailing.android.shared.data.CheckinUrlInfo;
import com.sap.sailing.android.shared.data.LeaderboardInfo;
import com.sap.sailing.android.shared.data.http.HttpGetRequest;
+import com.sap.sailing.android.shared.data.http.HttpJsonPostRequest;
import com.sap.sailing.android.shared.logging.ExLog;
import com.sap.sailing.android.shared.ui.activities.AbstractRegattaActivity;
import com.sap.sailing.android.shared.util.BitmapHelper;
@@ -46,6 +48,7 @@ import com.sap.sailing.android.shared.util.NetworkHelper;
import com.sap.sailing.android.shared.util.NetworkHelper.NetworkHelperError;
import com.sap.sailing.android.shared.util.NetworkHelper.NetworkHelperFailureListener;
import com.sap.sailing.android.shared.util.NetworkHelper.NetworkHelperSuccessListener;
+import com.sap.sailing.android.shared.util.UniqueDeviceUuid;
import com.sap.sailing.android.tracking.app.BuildConfig;
import com.sap.sailing.android.tracking.app.R;
import com.sap.sailing.android.tracking.app.ui.fragments.RegattaFragment;
@@ -55,7 +58,6 @@ import com.sap.sailing.android.tracking.app.upload.UploadTeamImageTask;
import com.sap.sailing.android.tracking.app.utils.AboutHelper;
import com.sap.sailing.android.tracking.app.utils.AppPreferences;
import com.sap.sailing.android.tracking.app.utils.CheckinManager;
-import com.sap.sailing.android.tracking.app.utils.CheckoutHelper;
import com.sap.sailing.android.tracking.app.utils.DatabaseHelper;
import com.sap.sailing.android.tracking.app.valueobjects.CheckinData;
import com.sap.sailing.android.tracking.app.valueobjects.CompetitorCheckinData;
@@ -66,8 +68,8 @@ public class RegattaActivity extends AbstractRegattaActivity
implements RegattaFragment.FragmentWatcher, UploadResponseHandler {
private final static String TAG = RegattaActivity.class.getName();
- private final static String LEADERBOARD_IMAGE_FILENAME_PREFIX = "leaderboardImage_";
- private final static String FLAG_IMAGE_FILENAME_PREFIX = "flagImage_";
+ private final static String COMPETITOR_IMAGE_FILENAME_PREFIX = "competitor_";
+ private final static String FLAG_IMAGE_FILENAME_PREFIX = "flag_";
public EventInfo event;
public CompetitorInfo competitor;
@@ -105,7 +107,7 @@ public class RegattaActivity extends AbstractRegattaActivity
if (toolbar != null) {
setSupportActionBar(toolbar);
}
- if (getSupportActionBar() != null) {
+ if (toolbar != null && getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
toolbar.setNavigationIcon(R.drawable.sap_logo_64dp);
@@ -235,7 +237,7 @@ public class RegattaActivity extends AbstractRegattaActivity
}
private void setTeamImage(ImageView imageView, int width, int height) {
- String fileName = getLeaderboardImageFileName(leaderboard.name);
+ String fileName = getCompetitorImageFileName(competitor.id);
Bitmap storedImage = getStoredImage(fileName, width, height);
if (storedImage == null) {
askServerAboutTeamImageUrl(imageView);
@@ -305,7 +307,7 @@ public class RegattaActivity extends AbstractRegattaActivity
* @param bitmap
*/
public void updateLeaderboardPictureChosenByUser(final Bitmap bitmap) {
- storeImageAndSendToServer(bitmap, getLeaderboardImageFileName(leaderboard.name), true);
+ storeImageAndSendToServer(bitmap, getCompetitorImageFileName(competitor.id), true);
runOnUiThread(new Runnable() {
@Override
public void run() {
@@ -378,7 +380,7 @@ public class RegattaActivity extends AbstractRegattaActivity
File mediaStorageDir = getMediaStorageDir();
File mediaFile;
- String mImageName = "MI_" + fileName + ".png";
+ String mImageName = fileName + ".png";
mediaFile = new File(mediaStorageDir.getPath() + File.separator + mImageName);
return mediaFile;
}
@@ -387,7 +389,7 @@ public class RegattaActivity extends AbstractRegattaActivity
File mediaStorageDir = getMediaStorageDir();
File mediaFile;
- String mImageName = "MI_" + fileName + ".png";
+ String mImageName = fileName + ".png";
mediaFile = new File(mediaStorageDir.getPath() + File.separator + mImageName);
return mediaFile.delete();
@@ -441,8 +443,8 @@ public class RegattaActivity extends AbstractRegattaActivity
setUpView();
}
- private String getLeaderboardImageFileName(String leaderboardName) {
- return LEADERBOARD_IMAGE_FILENAME_PREFIX + leaderboardName;
+ private String getCompetitorImageFileName(String competitorId) {
+ return COMPETITOR_IMAGE_FILENAME_PREFIX + competitorId;
}
private String getFlagImageFileName(String countryCode) {
@@ -467,23 +469,48 @@ public class RegattaActivity extends AbstractRegattaActivity
* Check out from regatta;
*/
public void checkout() {
- CheckoutHelper checkoutHelper = new CheckoutHelper();
- checkoutHelper.checkoutCompetitor(this, leaderboard.name, event.server, competitor.id, new NetworkHelperSuccessListener() {
- @Override
- public void performAction(JSONObject response) {
- DatabaseHelper.getInstance().deleteRegattaFromDatabase(RegattaActivity.this, event.checkinDigest);
- deleteImageFile(getLeaderboardImageFileName(leaderboard.name));
- dismissProgressDialog();
- finish();
- }
- }, new NetworkHelperFailureListener() {
- @Override
- public void performAction(NetworkHelperError e) {
- dismissProgressDialog();
- showErrorPopup(R.string.error,
- R.string.error_could_not_complete_operation_on_server_try_again);
- }
- });
+ final String checkoutURLStr = event.server
+ + prefs.getServerCheckoutPath().replace("{leaderboard-name}", Uri.encode(leaderboard.name));
+
+ showProgressDialog(R.string.please_wait, R.string.checking_out);
+
+ JSONObject checkoutData = new JSONObject();
+ try {
+ checkoutData.put("competitorId", competitor.id);
+ checkoutData.put("deviceUuid", UniqueDeviceUuid.getUniqueId(this));
+ checkoutData.put("toMillis", System.currentTimeMillis());
+ } catch (JSONException e) {
+ showErrorPopup(R.string.error, R.string.error_could_not_complete_operation_on_server_try_again);
+ ExLog.e(this, TAG, "Error populating checkout-data: " + e.getMessage());
+ return;
+ }
+
+ try {
+ HttpJsonPostRequest request = new HttpJsonPostRequest(this, new URL(checkoutURLStr), checkoutData.toString());
+ NetworkHelper.getInstance(this).executeHttpJsonRequestAsync(request,
+ new NetworkHelperSuccessListener() {
+
+ @Override
+ public void performAction(JSONObject response) {
+ DatabaseHelper.getInstance().deleteRegattaFromDatabase(RegattaActivity.this,
+ event.checkinDigest);
+ deleteImageFile(getCompetitorImageFileName(competitor.id));
+ dismissProgressDialog();
+ finish();
+ }
+ }, new NetworkHelperFailureListener() {
+
+ @Override
+ public void performAction(NetworkHelperError e) {
+ dismissProgressDialog();
+ showErrorPopup(R.string.error,
+ R.string.error_could_not_complete_operation_on_server_try_again);
+ }
+ });
+
+ } catch (MalformedURLException e) {
+ ExLog.w(this, TAG, "Error, can't check out, MalformedURLException: " + e.getMessage());
+ }
}
@Override
@@ -527,7 +554,7 @@ public class RegattaActivity extends AbstractRegattaActivity
public void retryUpload(View view) {
if (prefs.hasFailedUpload(leaderboard.name)) {
- pictureFile = getImageFile(getLeaderboardImageFileName(leaderboard.name));
+ pictureFile = getImageFile(getCompetitorImageFileName(competitor.id));
}
if (pictureFile != null) {
sendTeamImageToServer(pictureFile);
@@ -589,7 +616,7 @@ public class RegattaActivity extends AbstractRegattaActivity
FileOutputStream outputStream = null;
try {
in = new java.net.URL(downloadUrl).openStream();
- imageFile = getImageFile(getLeaderboardImageFileName(leaderboard.name));
+ imageFile = getImageFile(getCompetitorImageFileName(competitor.id));
if (!imageFile.exists()) {
imageFile.createNewFile();
}
diff --git a/mobile/com.sap.sailing.buoy.positioning/res/layout-land/fragment_buoy_postion_detail.xml b/mobile/com.sap.sailing.buoy.positioning/res/layout-land/fragment_buoy_postion_detail.xml
index 3eb71db5e0f..5bf35602782 100644
--- a/mobile/com.sap.sailing.buoy.positioning/res/layout-land/fragment_buoy_postion_detail.xml
+++ b/mobile/com.sap.sailing.buoy.positioning/res/layout-land/fragment_buoy_postion_detail.xml
@@ -1,12 +1,12 @@
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/fiori_main_background"
+ android:orientation="vertical"
+ android:paddingLeft="0dp"
+ android:paddingRight="0dp">
+ android:layout_weight="1" />
@@ -42,29 +41,27 @@
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="@dimen/fragment_side_margin"
- android:paddingTop="12dp">
+ android:paddingTop="@dimen/list_side_margin">
+ android:textSize="20sp" />
-
+ android:textColor="@color/fiori_text_color" />
+ android:layout_weight="1" />
+ tools:text="ca. 13m" />
+ android:layout_marginLeft="@dimen/signal_quality_indicator_left_margin"
+ android:layout_marginRight="@dimen/fragment_side_margin"
+ android:layout_marginStart="@dimen/signal_quality_indicator_left_margin" />
-
+
+ android:paddingTop="@dimen/list_side_margin">
+ android:textSize="20sp" />
+ android:textColor="@color/fiori_text_color" />
+ android:layout_weight="1" />
+ tools:text="11,4m" />
-
+
+ android:layout_weight="1" />
+ android:textStyle="bold" />
-
-
-
\ No newline at end of file
diff --git a/mobile/com.sap.sailing.buoy.positioning/res/layout/fragment_buoy_postion_detail.xml b/mobile/com.sap.sailing.buoy.positioning/res/layout/fragment_buoy_postion_detail.xml
index 6da4dc2b485..8930f7bf9e3 100644
--- a/mobile/com.sap.sailing.buoy.positioning/res/layout/fragment_buoy_postion_detail.xml
+++ b/mobile/com.sap.sailing.buoy.positioning/res/layout/fragment_buoy_postion_detail.xml
@@ -1,18 +1,16 @@
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/fiori_main_background"
+ android:orientation="vertical">
+ android:layout_weight="1" />
@@ -20,16 +18,19 @@
-
+ android:background="@color/list_item_background_color"
+ android:orientation="vertical">
+
+ android:paddingTop="@dimen/list_side_margin">
+ android:textSize="20sp" />
+ tools:text="ca. 13m" />
+ android:layout_marginStart="@dimen/signal_quality_indicator_left_margin" />
-
+
+ android:layout_height="wrap_content"
+ android:background="@color/list_item_background_color"
+ android:orientation="vertical">
+ android:paddingTop="@dimen/list_side_margin">
+ android:textSize="20sp" />
+ tools:text="11,4m" />
-
+
@@ -109,6 +114,6 @@
android:background="@drawable/position_send_button"
android:textAllCaps="false"
android:textSize="18sp"
- android:textStyle="bold"/>
+ android:textStyle="bold" />
\ No newline at end of file
diff --git a/mobile/com.sap.sailing.buoy.positioning/res/layout/fragment_buoy_postion_overview.xml b/mobile/com.sap.sailing.buoy.positioning/res/layout/fragment_buoy_postion_overview.xml
index 18cb5e7ef13..07c453addbf 100644
--- a/mobile/com.sap.sailing.buoy.positioning/res/layout/fragment_buoy_postion_overview.xml
+++ b/mobile/com.sap.sailing.buoy.positioning/res/layout/fragment_buoy_postion_overview.xml
@@ -1,9 +1,10 @@
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@drawable/fiori_main_background"
+ android:orientation="vertical">
+
+ android:textColor="@color/fiori_text_color"
+ android:textSize="@dimen/list_header_text_size" />
-
+
+ android:dividerHeight="1dp" />
+ android:visibility="gone" />
diff --git a/mobile/com.sap.sailing.buoy.positioning/res/layout/mark_listview_row.xml b/mobile/com.sap.sailing.buoy.positioning/res/layout/mark_listview_row.xml
index c7c2e979ad6..8663f78eeac 100644
--- a/mobile/com.sap.sailing.buoy.positioning/res/layout/mark_listview_row.xml
+++ b/mobile/com.sap.sailing.buoy.positioning/res/layout/mark_listview_row.xml
@@ -1,24 +1,26 @@
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ android:layout_height="wrap_content"
+ android:background="@color/list_item_background_color"
+ android:minHeight="@dimen/list_row_height">
+ android:textColor="@color/fiori_text_color" />
+ android:maxLines="1"
+ android:textColor="@color/fiori_text_color"
+ android:textSize="20sp" />
+ android:maxLines="1"
+ android:textColor="@color/fiori_text_color"
+ android:textSize="14sp" />