diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable/buoy_dark_orange.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable/buoy_dark_orange.png
deleted file mode 100644
index 602fce6936e..00000000000
Binary files a/mobile/com.sap.sailing.racecommittee.app/res/drawable/buoy_dark_orange.png and /dev/null differ
diff --git a/mobile/com.sap.sailing.racecommittee.app/res/layout/ess_course_item.xml b/mobile/com.sap.sailing.racecommittee.app/res/layout/ess_course_item.xml
index 179e7371cd7..9b71f0e50c4 100644
--- a/mobile/com.sap.sailing.racecommittee.app/res/layout/ess_course_item.xml
+++ b/mobile/com.sap.sailing.racecommittee.app/res/layout/ess_course_item.xml
@@ -5,8 +5,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
- android:padding="@dimen/default_padding_half"
- android:orientation="vertical">
+ android:orientation="vertical"
+ android:padding="@dimen/default_padding_half">
+ tools:text="Black Cylinder"/>
diff --git a/mobile/com.sap.sailing.racecommittee.app/res/layout/ess_course_waypoint_item.xml b/mobile/com.sap.sailing.racecommittee.app/res/layout/ess_course_waypoint_item.xml
index 9d9766cbfc6..d138fe11bad 100644
--- a/mobile/com.sap.sailing.racecommittee.app/res/layout/ess_course_waypoint_item.xml
+++ b/mobile/com.sap.sailing.racecommittee.app/res/layout/ess_course_waypoint_item.xml
@@ -3,98 +3,114 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_height="wrap_content"
+ android:background="@color/constant_white">
+ android:paddingBottom="@dimen/default_margin_half"
+ android:paddingTop="@dimen/default_margin_half">
-
+ android:orientation="vertical">
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+ tools:text="G"/>
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
diff --git a/mobile/com.sap.sailing.racecommittee.app/res/layout/race_panel_more.xml b/mobile/com.sap.sailing.racecommittee.app/res/layout/race_panel_more.xml
index 9322102aca9..aeba51cd601 100644
--- a/mobile/com.sap.sailing.racecommittee.app/res/layout/race_panel_more.xml
+++ b/mobile/com.sap.sailing.racecommittee.app/res/layout/race_panel_more.xml
@@ -191,12 +191,6 @@
android:textAppearance="?textPanelCaption"
tools:text="4 + 3 = 7 Minuten"/>
-
-
diff --git a/mobile/com.sap.sailing.racecommittee.app/res/layout/race_panel_setup_ver.xml b/mobile/com.sap.sailing.racecommittee.app/res/layout/race_panel_setup_ver.xml
index fb63fb204df..7312fcbe639 100644
--- a/mobile/com.sap.sailing.racecommittee.app/res/layout/race_panel_setup_ver.xml
+++ b/mobile/com.sap.sailing.racecommittee.app/res/layout/race_panel_setup_ver.xml
@@ -35,21 +35,21 @@
+ android:textAppearance="?textPanelHeader"/>
+ tools:visibility="visible"/>
+ android:textAppearance="?textPanelHeader"/>
+ tools:visibility="visible"/>
+ android:textAppearance="?textPanelHeader"/>
+ tools:visibility="visible"/>
@@ -210,21 +209,21 @@
+ android:textAppearance="?textPanelHeader"/>
+ tools:visibility="visible"/>
+ android:layout_centerInParent="true"
+ android:src="?keyboard_control_36dp"/>
diff --git a/mobile/com.sap.sailing.racecommittee.app/res/layout/race_schedule_course_header.xml b/mobile/com.sap.sailing.racecommittee.app/res/layout/race_schedule_course_header.xml
index ee9e0e33412..6bc3809eb59 100644
--- a/mobile/com.sap.sailing.racecommittee.app/res/layout/race_schedule_course_header.xml
+++ b/mobile/com.sap.sailing.racecommittee.app/res/layout/race_schedule_course_header.xml
@@ -22,6 +22,7 @@
android:src="?chevron_left_24dp"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mobile/com.sap.sailing.racecommittee.app/res/layout/race_schedule_list_item.xml b/mobile/com.sap.sailing.racecommittee.app/res/layout/selection_list_item.xml
similarity index 100%
rename from mobile/com.sap.sailing.racecommittee.app/res/layout/race_schedule_list_item.xml
rename to mobile/com.sap.sailing.racecommittee.app/res/layout/selection_list_item.xml
diff --git a/mobile/com.sap.sailing.racecommittee.app/res/layout/welcome.xml b/mobile/com.sap.sailing.racecommittee.app/res/layout/welcome.xml
index ecb67047d84..2e091833ef3 100644
--- a/mobile/com.sap.sailing.racecommittee.app/res/layout/welcome.xml
+++ b/mobile/com.sap.sailing.racecommittee.app/res/layout/welcome.xml
@@ -21,8 +21,9 @@
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
- android:layout_marginBottom="@dimen/default_margin"
- android:layout_marginLeft="@dimen/default_margin"
+ android:layout_marginBottom="@dimen/side_padding"
+ android:layout_marginLeft="@dimen/side_padding"
+ android:layout_marginRight="@dimen/side_padding"
android:text="@string/login_text"
android:textColor="@color/constant_white"
android:textSize="@dimen/textSize_32" />
diff --git a/mobile/com.sap.sailing.racecommittee.app/res/values-de/strings.xml b/mobile/com.sap.sailing.racecommittee.app/res/values-de/strings.xml
index 2110e54f7c4..1c29cb5e45c 100644
--- a/mobile/com.sap.sailing.racecommittee.app/res/values-de/strings.xml
+++ b/mobile/com.sap.sailing.racecommittee.app/res/values-de/strings.xml
@@ -91,6 +91,7 @@
Veröffentlichen
Zurücknehmen
Vorherigen Kurs übernehmen
+ übernehmen
Bild der Bahnmarke
Abbrechen
Wiederholen
@@ -448,5 +449,8 @@
%d Minuten
N/A
(vor %s)
+ Vorheriger Kurs
+ Neuer Kurs
+ Kurs Layout
\ No newline at end of file
diff --git a/mobile/com.sap.sailing.racecommittee.app/res/values-sw600dp-land/references.xml b/mobile/com.sap.sailing.racecommittee.app/res/values-sw600dp-land/references.xml
index 2a802ec0367..51b7f7462e5 100644
--- a/mobile/com.sap.sailing.racecommittee.app/res/values-sw600dp-land/references.xml
+++ b/mobile/com.sap.sailing.racecommittee.app/res/values-sw600dp-land/references.xml
@@ -3,5 +3,6 @@
- @layout/race_list_header_small
- @layout/race_list_list_top
+ - @layout/race_schedule_course_marks_large
\ No newline at end of file
diff --git a/mobile/com.sap.sailing.racecommittee.app/res/values-sw720dp-port/references.xml b/mobile/com.sap.sailing.racecommittee.app/res/values-sw720dp-port/references.xml
index 7b8287ddb4b..1355e6e29c1 100644
--- a/mobile/com.sap.sailing.racecommittee.app/res/values-sw720dp-port/references.xml
+++ b/mobile/com.sap.sailing.racecommittee.app/res/values-sw720dp-port/references.xml
@@ -6,5 +6,6 @@
- @layout/race_main_small
- @layout/race_panel_flags_hor
- @layout/race_panel_setup_hor
+ - @layout/race_schedule_course_marks_small
\ No newline at end of file
diff --git a/mobile/com.sap.sailing.racecommittee.app/res/values-sw720dp/references.xml b/mobile/com.sap.sailing.racecommittee.app/res/values-sw720dp/references.xml
index 45b87b44304..a1e2633d40d 100644
--- a/mobile/com.sap.sailing.racecommittee.app/res/values-sw720dp/references.xml
+++ b/mobile/com.sap.sailing.racecommittee.app/res/values-sw720dp/references.xml
@@ -6,5 +6,6 @@
- @layout/race_main_large
- @layout/race_panel_flags_ver
- @layout/race_panel_setup_ver
+ - @layout/race_schedule_course_marks_large
\ No newline at end of file
diff --git a/mobile/com.sap.sailing.racecommittee.app/res/values/dimens.xml b/mobile/com.sap.sailing.racecommittee.app/res/values/dimens.xml
index 0874cc33a42..7d0ba43ac37 100644
--- a/mobile/com.sap.sailing.racecommittee.app/res/values/dimens.xml
+++ b/mobile/com.sap.sailing.racecommittee.app/res/values/dimens.xml
@@ -3,7 +3,7 @@
80dp
120dp
- 380dp
+ 320dp
150dp
12dp
diff --git a/mobile/com.sap.sailing.racecommittee.app/res/values/references.xml b/mobile/com.sap.sailing.racecommittee.app/res/values/references.xml
index cfa31a9d721..f44c5586c74 100644
--- a/mobile/com.sap.sailing.racecommittee.app/res/values/references.xml
+++ b/mobile/com.sap.sailing.racecommittee.app/res/values/references.xml
@@ -9,6 +9,7 @@
- @layout/race_main_small
- @layout/race_panel_flags_hor
- @layout/race_panel_setup_hor
+ - @layout/race_schedule_course_marks_small
- @layout/toolbar
\ No newline at end of file
diff --git a/mobile/com.sap.sailing.racecommittee.app/res/values/strings.xml b/mobile/com.sap.sailing.racecommittee.app/res/values/strings.xml
index 6d93fe35b7b..1ec2f6a04c0 100644
--- a/mobile/com.sap.sailing.racecommittee.app/res/values/strings.xml
+++ b/mobile/com.sap.sailing.racecommittee.app/res/values/strings.xml
@@ -102,6 +102,7 @@
Publish
Unpublish
Use previous course
+ Use this
Mark image
Cancel
Retry
@@ -472,5 +473,8 @@
(since %s)
%1$dh %2$02d\' %3$02d\"
+ Previous Course
+ New Course
+ Course Layout
\ No newline at end of file
diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/MainScheduleItem.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/SelectionItem.java
similarity index 83%
rename from mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/MainScheduleItem.java
rename to mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/SelectionItem.java
index bb517b447cc..31a92df9111 100644
--- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/MainScheduleItem.java
+++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/SelectionItem.java
@@ -2,13 +2,13 @@ package com.sap.sailing.racecommittee.app.domain.impl;
import android.graphics.drawable.Drawable;
-public class MainScheduleItem {
+public class SelectionItem {
private String mCaption;
private String mValue;
private Drawable mDrawable;
private Runnable mRunnable;
- public MainScheduleItem(String caption, String value, Drawable drawable, Runnable runnable) {
+ public SelectionItem(String caption, String value, Drawable drawable, Runnable runnable) {
mCaption = caption;
mDrawable = drawable;
mValue = value;
diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/adapters/MainScheduleAdapter.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/adapters/SelectionAdapter.java
similarity index 83%
rename from mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/adapters/MainScheduleAdapter.java
rename to mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/adapters/SelectionAdapter.java
index fa54f0b00ec..e84e1457578 100644
--- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/adapters/MainScheduleAdapter.java
+++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/adapters/SelectionAdapter.java
@@ -12,15 +12,15 @@ import android.widget.TextView;
import com.sap.sailing.android.shared.util.ViewHelper;
import com.sap.sailing.racecommittee.app.R;
-import com.sap.sailing.racecommittee.app.domain.impl.MainScheduleItem;
+import com.sap.sailing.racecommittee.app.domain.impl.SelectionItem;
-public class MainScheduleAdapter extends RecyclerView.Adapter {
+public class SelectionAdapter extends RecyclerView.Adapter {
private Context mContext;
- private List mItems;
+ private List mItems;
private ItemClick mListener;
- public MainScheduleAdapter(Context context, List items, ItemClick listener) {
+ public SelectionAdapter(Context context, List items, ItemClick listener) {
mContext = context;
mItems = items;
mListener = listener;
@@ -28,13 +28,13 @@ public class MainScheduleAdapter extends RecyclerView.Adapter mHistory;
private ArrayList mElements;
private ArrayList mMarks;
+ private ArrayList mItems;
private RecyclerView mHistoryCourse;
private RecyclerView mCurrentCourse;
private RecyclerView mMarkGrid;
private CourseElementAdapter mHistoryAdapter;
+ private SelectionAdapter mAdapter;
private RecyclerView.Adapter mCourseAdapter;
private CourseMarkAdapter mMarkAdapter;
+ private ArrayList mLayouts;
+ private TextView mHeaderCaption;
private int mId;
public CourseFragmentMarks() {
@@ -81,6 +91,7 @@ public class CourseFragmentMarks extends CourseFragment implements MarkClick, El
mHistory = new ArrayList<>();
mElements = new ArrayList<>();
mMarks = new ArrayList<>();
+ mLayouts = new ArrayList<>();
}
public static CourseFragmentMarks newInstance(@START_MODE_VALUES int startMode) {
@@ -93,20 +104,49 @@ public class CourseFragmentMarks extends CourseFragment implements MarkClick, El
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.race_schedule_course_marks, container, false);
+ View layout = inflater.inflate(R.layout.race_schedule_course_marks, container, false);
- LinearLayout headerText = ViewHelper.get(view, R.id.header_text);
- if (headerText != null) {
- headerText.setOnClickListener(new View.OnClickListener() {
+ mHeaderCaption = ViewHelper.get(layout, R.id.header_caption);
- @Override
- public void onClick(View v) {
- openMainScheduleFragment();
- }
- });
+ RelativeLayout selection = ViewHelper.get(layout, R.id.selection);
+ if (selection != null) {
+ mLayouts.add(selection);
+ RecyclerView chooser = ViewHelper.get(layout, R.id.chooser);
+ if (chooser != null) {
+ mItems = new ArrayList<>();
+ LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
+ layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
+ mAdapter = new SelectionAdapter(getActivity(), mItems, this);
+ chooser.setLayoutManager(layoutManager);
+ chooser.setOverScrollMode(View.OVER_SCROLL_IF_CONTENT_SCROLLS);
+ chooser.setAdapter(mAdapter);
+
+ Runnable prevRunnable = new Runnable() {
+ @Override
+ public void run() {
+ showCourseLayout(R.id.course_prev, R.string.prev_course);
+ }
+ };
+ SelectionItem prevCourse = new SelectionItem(getString(R.string.prev_course), null, null, prevRunnable);
+ mItems.add(prevCourse);
+
+ Runnable newRunnable = new Runnable() {
+ @Override
+ public void run() {
+ showCourseLayout(R.id.course_new, R.string.new_course);
+ }
+ };
+ SelectionItem newCourse = new SelectionItem(getString(R.string.new_course), null, null, newRunnable);
+ mItems.add(newCourse);
+ }
}
- mHistoryCourse = (RecyclerView) view.findViewById(R.id.previous_course);
+ RelativeLayout coursePrev = ViewHelper.get(layout, R.id.course_prev);
+ if (coursePrev != null) {
+ mLayouts.add(coursePrev);
+ }
+
+ mHistoryCourse = (RecyclerView) layout.findViewById(R.id.previous_course);
if (mHistoryCourse != null) {
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
mHistoryCourse.setLayoutManager(layoutManager);
@@ -115,7 +155,11 @@ public class CourseFragmentMarks extends CourseFragment implements MarkClick, El
mHistoryCourse.setAdapter(mHistoryAdapter);
}
- mCurrentCourse = (RecyclerView) view.findViewById(R.id.new_course);
+ RelativeLayout courseLayout = ViewHelper.get(layout, R.id.course_layout);
+ if (courseLayout != null) {
+ mLayouts.add(courseLayout);
+ }
+ mCurrentCourse = ViewHelper.get(layout, R.id.new_course);
if (mCurrentCourse != null) {
mGuardManager = new RecyclerViewTouchActionGuardManager();
mGuardManager.setInterceptVerticalScrollingWhileAnimationRunning(true);
@@ -133,12 +177,12 @@ public class CourseFragmentMarks extends CourseFragment implements MarkClick, El
adapter.setListener(this);
adapter.setEventListener(this);
- @SuppressWarnings("unchecked") RecyclerView.Adapter dragAdapter = mDragDropManager
- .createWrappedAdapter(adapter);
+ @SuppressWarnings("unchecked")
+ RecyclerView.Adapter dragAdapter = mDragDropManager.createWrappedAdapter(adapter);
mCourseAdapter = dragAdapter;
- @SuppressWarnings("unchecked") RecyclerView.Adapter swipeManager = mSwipeManager
- .createWrappedAdapter(mCourseAdapter);
+ @SuppressWarnings("unchecked")
+ RecyclerView.Adapter swipeManager = mSwipeManager.createWrappedAdapter(mCourseAdapter);
mCourseAdapter = swipeManager;
mCurrentCourse.setLayoutManager(layoutManager);
@@ -155,20 +199,30 @@ public class CourseFragmentMarks extends CourseFragment implements MarkClick, El
mDragDropManager.attachRecyclerView(mCurrentCourse);
}
- mMarkGrid = (RecyclerView) view.findViewById(R.id.assets);
+ RelativeLayout courseNew = ViewHelper.get(layout, R.id.course_new);
+ if (courseNew != null) {
+ mLayouts.add(courseNew);
+ }
+
+ mMarkGrid = (RecyclerView) layout.findViewById(R.id.assets);
if (mMarkGrid != null) {
GridLayoutManager layoutManager = new GridLayoutManager(getActivity(), 3);
mMarkGrid.setLayoutManager(layoutManager);
mMarkGrid
.addItemDecoration(new ItemStrokeDecoration(getActivity().getResources().getDimensionPixelSize(R.dimen.obesity_line), getActivity()
- .getResources().getDimensionPixelSize(R.dimen.thin_line), ThemeHelper.getColor(getActivity(), R.attr.sap_light_gray)));
+ .getResources().getDimensionPixelSize(R.dimen.thin_line), ThemeHelper.getColor(getActivity(), R.attr.sap_gray_white_20)));
mMarkAdapter = new CourseMarkAdapter(getActivity(), mMarks, ESSMarkImageHelper.getInstance(getActivity()));
mMarkAdapter.setListener(this);
mMarkGrid.setAdapter(mMarkAdapter);
}
- return view;
+ return layout;
+ }
+
+ private void showCourseLayout(@IdRes int layout, @StringRes int stringId) {
+ showLayout(layout);
+ setHeaderCaption(stringId);
}
@Override
@@ -185,8 +239,14 @@ public class CourseFragmentMarks extends CourseFragment implements MarkClick, El
fillPreviousCourseElementsWithLastPublishedCourseDesign();
if (getView() != null) {
- Button takePreviousButton = (Button) getView().findViewById(R.id.takeHistoryCourse);
- takePreviousButton.setOnClickListener(new View.OnClickListener() {
+ if (mHistory.isEmpty()) {
+ showCourseLayout(R.id.course_new, R.string.new_course);
+ } else {
+ showCourseLayout(R.id.selection, 0);
+ }
+
+ Button takePrevious = (Button) getView().findViewById(R.id.takeHistoryCourse);
+ takePrevious.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
@@ -203,8 +263,8 @@ public class CourseFragmentMarks extends CourseFragment implements MarkClick, El
}
});
- Button publishButton = (Button) getView().findViewById(R.id.publishCourse);
- publishButton.setOnClickListener(new View.OnClickListener() {
+ Button publish = (Button) getView().findViewById(R.id.publishCourse);
+ publish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
@@ -227,8 +287,8 @@ public class CourseFragmentMarks extends CourseFragment implements MarkClick, El
}
});
- Button unpublishButton = (Button) getView().findViewById(R.id.unpublishCourse);
- unpublishButton.setOnClickListener(new View.OnClickListener() {
+ Button unpublish = (Button) getView().findViewById(R.id.unpublishCourse);
+ unpublish.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
@@ -358,6 +418,9 @@ public class CourseFragmentMarks extends CourseFragment implements MarkClick, El
if (twoMarksCourseElement != null) {
twoMarksCourseElement.setRightMark(mark);
mCourseAdapter.notifyDataSetChanged();
+ if (mLayouts.size() != 0) {
+ showCourseLayout(R.id.course_layout, R.string.layout_course);
+ }
} else {
addNewCourseElementToList(mark);
}
@@ -389,6 +452,9 @@ public class CourseFragmentMarks extends CourseFragment implements MarkClick, El
public void onClick(DialogInterface dialog, int position) {
PassingInstruction pickedDirection = PassingInstruction.relevantValues()[position];
onPassingInstructionPicked(courseElement, pickedDirection);
+ if (mLayouts.size() != 0) {
+ showCourseLayout(R.id.course_layout, R.string.layout_course);
+ }
}
});
builder.create().show();
@@ -442,6 +508,9 @@ public class CourseFragmentMarks extends CourseFragment implements MarkClick, El
mElements.clear();
mElements.addAll(mHistory);
mCourseAdapter.notifyDataSetChanged();
+ if (mLayouts.size() != 0) {
+ showCourseLayout(R.id.course_layout, R.string.layout_course);
+ }
}
protected CourseBase convertCourseElementsToACourseData() throws IllegalStateException, IllegalArgumentException {
@@ -508,4 +577,73 @@ public class CourseFragmentMarks extends CourseFragment implements MarkClick, El
public void onItemRemoved(int position) {
// do nothing - later maybe show "undo" or something
}
+
+ @Override
+ public void onItemClick(Runnable runnable) {
+ if (runnable != null) {
+ Handler handler = new Handler();
+ handler.post(runnable);
+ }
+ }
+
+ @Override
+ protected void goHome() {
+ if (mLayouts.size() == 0) {
+ super.goHome();
+ } else {
+ switch (getCurrentFrame()) {
+ case R.id.course_prev:
+ showCourseLayout(R.id.selection, 0);
+ break;
+
+ case R.id.course_new:
+ if (mHistory.isEmpty()) {
+ super.goHome();
+ } else {
+ showCourseLayout(R.id.selection, 0);
+ }
+ break;
+
+ case R.id.course_layout:
+ showCourseLayout(R.id.course_new, R.string.new_course);
+ break;
+
+ default:
+ super.goHome();
+ break;
+ }
+ }
+ }
+
+ private void showLayout(@IdRes int id) {
+ for (View layout : mLayouts) {
+ layout.setVisibility(View.GONE);
+ if (layout.getId() == id) {
+ layout.setVisibility(View.VISIBLE);
+ }
+ }
+ }
+
+ private
+ @IdRes
+ int getCurrentFrame() {
+ int id = 0;
+ for (View layout : mLayouts) {
+ if (layout.getVisibility() == View.VISIBLE) {
+ id = layout.getId();
+ break;
+ }
+ }
+ return id;
+ }
+
+ private void setHeaderCaption(@StringRes int id) {
+ if (mHeaderCaption != null) {
+ if (id != 0) {
+ mHeaderCaption.setText(String.format("%s - %s", getString(R.string.course), getString(id)));
+ } else {
+ mHeaderCaption.setText(getString(R.string.course));
+ }
+ }
+ }
}
diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/MainScheduleFragment.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/MainScheduleFragment.java
index b19b5189bfd..6f2221ee252 100644
--- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/MainScheduleFragment.java
+++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/MainScheduleFragment.java
@@ -26,9 +26,9 @@ import com.sap.sailing.domain.common.racelog.RacingProcedureType;
import com.sap.sailing.racecommittee.app.R;
import com.sap.sailing.racecommittee.app.data.DataManager;
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
-import com.sap.sailing.racecommittee.app.domain.impl.MainScheduleItem;
+import com.sap.sailing.racecommittee.app.domain.impl.SelectionItem;
import com.sap.sailing.racecommittee.app.ui.activities.RacingActivity;
-import com.sap.sailing.racecommittee.app.ui.adapters.MainScheduleAdapter;
+import com.sap.sailing.racecommittee.app.ui.adapters.SelectionAdapter;
import com.sap.sailing.racecommittee.app.ui.fragments.RaceFragment;
import com.sap.sailing.racecommittee.app.ui.fragments.chooser.RaceInfoFragmentChooser;
import com.sap.sailing.racecommittee.app.ui.utils.FlagsResources;
@@ -38,7 +38,7 @@ import com.sap.sse.common.Duration;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.impl.MillisecondsTimePoint;
-public class MainScheduleFragment extends BaseFragment implements View.OnClickListener, MainScheduleAdapter.ItemClick {
+public class MainScheduleFragment extends BaseFragment implements View.OnClickListener, SelectionAdapter.ItemClick {
public static final String START_TIME = "startTime";
public static final String DEPENDENT_RACE = "dependentRace";
@@ -46,10 +46,10 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
private static final String TAG = MainScheduleFragment.class.getName();
- private MainScheduleAdapter mAdapter;
- private ArrayList mItems;
- private MainScheduleItem mItemStartTime;
- private MainScheduleItem mItemStartWind;
+ private SelectionAdapter mAdapter;
+ private ArrayList mItems;
+ private SelectionItem mItemStartTime;
+ private SelectionItem mItemStartWind;
private String mStartTimeString;
private SimpleRaceLogIdentifier mRaceId;
@@ -81,7 +81,7 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
RecyclerView raceData = ViewHelper.get(layout, R.id.race_data);
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
- mAdapter = new MainScheduleAdapter(getActivity(), mItems, this);
+ mAdapter = new SelectionAdapter(getActivity(), mItems, this);
raceData.setLayoutManager(layoutManager);
raceData.setOverScrollMode(View.OVER_SCROLL_IF_CONTENT_SCROLLS);
raceData.setAdapter(mAdapter);
@@ -123,7 +123,7 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
openFragment(CourseFragment.newInstance(START_MODE_PRESETUP, getRace()));
}
};
- MainScheduleItem courseItem = new MainScheduleItem(getString(R.string.course), null, null, runnable);
+ SelectionItem courseItem = new SelectionItem(getString(R.string.course), null, null, runnable);
if (getRaceState().getCourseDesign() != null) {
courseItem.setValue(getCourseName());
}
@@ -137,7 +137,7 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
openFragment(WindFragment.newInstance(START_MODE_PRESETUP));
}
};
- mItemStartWind = new MainScheduleItem(getString(R.string.wind), null, null, runnable);
+ mItemStartWind = new SelectionItem(getString(R.string.wind), null, null, runnable);
mItems.add(mItemStartWind);
}
@@ -150,7 +150,7 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
openFragment(StartProcedureFragment.newInstance(START_MODE_PRESETUP));
}
};
- mItems.add(new MainScheduleItem(getString(R.string.start_procedure), mRacingProcedureType.toString(), null, runnableProcedure));
+ mItems.add(new SelectionItem(getString(R.string.start_procedure), mRacingProcedureType.toString(), null, runnableProcedure));
if (RacingProcedureType.RRS26.equals(mRacingProcedureType)) {
// LineStart
RRS26RacingProcedure procedure = getRaceState().getTypedRacingProcedure();
@@ -162,7 +162,7 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
}
};
Drawable drawable = FlagsResources.getFlagDrawable(getActivity(), flag.name(), mFlagSize);
- mItems.add(new MainScheduleItem(getString(R.string.start_mode), flag.name(), drawable, runnableMode));
+ mItems.add(new SelectionItem(getString(R.string.start_mode), flag.name(), drawable, runnableMode));
} else if (RacingProcedureType.GateStart.equals(mRacingProcedureType)) {
// GateStart
GateStartRacingProcedure procedure = getRaceState().getTypedRacingProcedure();
@@ -173,7 +173,7 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
openFragment(GateStartPathFinderFragment.newInstance(START_MODE_PRESETUP));
}
};
- mItems.add(new MainScheduleItem(getString(R.string.gate_start_pathfinder), procedure.getPathfinder(), null, runnablePathfinder));
+ mItems.add(new SelectionItem(getString(R.string.gate_start_pathfinder), procedure.getPathfinder(), null, runnablePathfinder));
Runnable runnableTiming = new Runnable() {
@Override
@@ -181,7 +181,7 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
openFragment(GateStartTimingFragment.newInstance(START_MODE_PRESETUP));
}
};
- mItems.add(new MainScheduleItem(getString(R.string.gate_start_timing), RaceHelper
+ mItems.add(new SelectionItem(getString(R.string.gate_start_timing), RaceHelper
.getGateTiming(getActivity(), procedure), null, runnableTiming));
}
}
@@ -216,7 +216,7 @@ public class MainScheduleFragment extends BaseFragment implements View.OnClickLi
openFragment(StartTimeFragment.newInstance(getArguments()));
}
};
- mItemStartTime = new MainScheduleItem(getString(R.string.start_time), mStartTimeString, null, runnable);
+ mItemStartTime = new SelectionItem(getString(R.string.start_time), mStartTimeString, null, runnable);
mItems.add(mItemStartTime);
}