show competitor panel button next to time panel
|
After Width: | Height: | Size: 126 B |
|
After Width: | Height: | Size: 138 B |
|
After Width: | Height: | Size: 126 B |
|
After Width: | Height: | Size: 138 B |
|
After Width: | Height: | Size: 205 B |
|
After Width: | Height: | Size: 126 B |
|
After Width: | Height: | Size: 205 B |
|
After Width: | Height: | Size: 126 B |
|
After Width: | Height: | Size: 217 B |
|
After Width: | Height: | Size: 141 B |
|
After Width: | Height: | Size: 217 B |
|
After Width: | Height: | Size: 141 B |
|
After Width: | Height: | Size: 141 B |
|
After Width: | Height: | Size: 169 B |
|
After Width: | Height: | Size: 141 B |
|
After Width: | Height: | Size: 169 B |
|
After Width: | Height: | Size: 239 B |
|
After Width: | Height: | Size: 200 B |
|
After Width: | Height: | Size: 239 B |
|
After Width: | Height: | Size: 200 B |
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<RelativeLayout
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
@@ -11,100 +11,125 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="?attr/sap_gray">
|
android:background="?attr/sap_gray">
|
||||||
|
|
||||||
<TextView
|
<LinearLayout
|
||||||
android:id="@+id/timer_text"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginLeft="@dimen/side_padding"
|
android:orientation="horizontal">
|
||||||
android:layout_marginRight="@dimen/side_padding"
|
|
||||||
android:layout_marginTop="@dimen/header_margin_top"
|
|
||||||
android:gravity="center"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:textColor="?attr/white"
|
|
||||||
android:textSize="@dimen/panel_button_header_size"
|
|
||||||
tools:text="@string/time"/>
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/time_marker"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="@dimen/thin_line"
|
|
||||||
android:layout_alignParentBottom="true"
|
|
||||||
android:src="?attr/marker"/>
|
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_above="@id/time_marker"
|
|
||||||
android:layout_centerHorizontal="true"
|
|
||||||
android:layout_marginBottom="@dimen/side_padding"
|
|
||||||
android:baselineAligned="false">
|
|
||||||
|
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:id="@+id/start_time_container"
|
android:id="@+id/time_layer"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_centerVertical="true">
|
android:layout_weight="25">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/time_start"
|
android:id="@+id/timer_text"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_centerVertical="true"
|
android:layout_marginLeft="@dimen/side_padding"
|
||||||
android:layout_toRightOf="@+id/linked_locked_area"
|
android:layout_marginRight="@dimen/side_padding"
|
||||||
android:textColor="?attr/white"
|
android:layout_marginTop="@dimen/header_margin_top"
|
||||||
android:textSize="@dimen/panel_button_caption_size"
|
|
||||||
tools:text="@string/time_start"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/linked_locked_area"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_centerVertical="true"
|
|
||||||
android:layout_marginRight="6dp"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/time_start_lock"
|
|
||||||
android:layout_width="@dimen/side_button_lockSize"
|
|
||||||
android:layout_height="@dimen/side_button_lockSize"
|
|
||||||
android:src="?attr/lock_outline"
|
|
||||||
android:visibility="gone"
|
|
||||||
tools:visibility="visible"/>
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/linked_race"
|
|
||||||
android:layout_width="@dimen/side_button_lockSize"
|
|
||||||
android:layout_height="@dimen/side_button_lockSize"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:src="?attr/link_24dp"
|
|
||||||
android:visibility="gone"
|
|
||||||
tools:visibility="visible"/>
|
|
||||||
</LinearLayout>
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_centerVertical="true"
|
|
||||||
android:layout_marginLeft="@dimen/side_padding"
|
|
||||||
android:layout_toRightOf="@+id/start_time_container">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/current_time"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_centerInParent="true"
|
|
||||||
android:layout_centerVertical="true"
|
|
||||||
android:drawableLeft="?attr/access_time_18dp"
|
|
||||||
android:drawablePadding="6dp"
|
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
|
android:singleLine="true"
|
||||||
android:textColor="?attr/white"
|
android:textColor="?attr/white"
|
||||||
android:textSize="@dimen/panel_button_caption_size"
|
android:textSize="@dimen/panel_button_header_size"
|
||||||
android:visibility="invisible"
|
tools:text="@string/time" />
|
||||||
tools:text="@string/time"
|
|
||||||
tools:visibility="visible"/>
|
<ImageView
|
||||||
|
android:id="@+id/time_marker"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/thin_line"
|
||||||
|
android:layout_alignParentBottom="true"
|
||||||
|
android:src="?attr/marker" />
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_above="@id/time_marker"
|
||||||
|
android:layout_centerHorizontal="true"
|
||||||
|
android:layout_marginBottom="@dimen/side_padding"
|
||||||
|
android:baselineAligned="false">
|
||||||
|
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/start_time_container"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_centerVertical="true">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/time_start"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:layout_toRightOf="@+id/linked_locked_area"
|
||||||
|
android:textColor="?attr/white"
|
||||||
|
android:textSize="@dimen/panel_button_caption_size"
|
||||||
|
tools:text="@string/time_start" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/linked_locked_area"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:layout_marginRight="6dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/time_start_lock"
|
||||||
|
android:layout_width="@dimen/side_button_lockSize"
|
||||||
|
android:layout_height="@dimen/side_button_lockSize"
|
||||||
|
android:src="?attr/lock_outline"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/linked_race"
|
||||||
|
android:layout_width="@dimen/side_button_lockSize"
|
||||||
|
android:layout_height="@dimen/side_button_lockSize"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:src="?attr/link_24dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible" />
|
||||||
|
</LinearLayout>
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:layout_marginLeft="@dimen/side_padding"
|
||||||
|
android:layout_toRightOf="@+id/start_time_container">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/current_time"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_centerInParent="true"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:drawableLeft="?attr/access_time_18dp"
|
||||||
|
android:drawablePadding="6dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:textColor="?attr/white"
|
||||||
|
android:textSize="@dimen/panel_button_caption_size"
|
||||||
|
android:visibility="invisible"
|
||||||
|
tools:text="@string/time"
|
||||||
|
tools:visibility="visible" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
</RelativeLayout>
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
</RelativeLayout>
|
|
||||||
|
<com.sap.sailing.racecommittee.app.ui.views.PanelButton
|
||||||
|
android:id="@+id/button_competitor"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_weight="10"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
app:buttonCaption="@string/competitor_list"
|
||||||
|
app:buttonImage="?attr/competitor_list"
|
||||||
|
app:buttonType="typeImage"
|
||||||
|
app:captionPosition="bottom"
|
||||||
|
app:linePosition="left" />
|
||||||
|
</LinearLayout>
|
||||||
</com.sap.sailing.racecommittee.app.ui.layouts.TimePanelHeaderLayout>
|
</com.sap.sailing.racecommittee.app.ui.layouts.TimePanelHeaderLayout>
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
@@ -1,101 +1,127 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<com.sap.sailing.racecommittee.app.ui.layouts.TimePanelHeaderLayout
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:id="@+id/race_content_header"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent">
|
||||||
android:background="?attr/sap_gray">
|
|
||||||
|
|
||||||
<TextView
|
<com.sap.sailing.racecommittee.app.ui.layouts.TimePanelHeaderLayout
|
||||||
android:id="@+id/timer_text"
|
android:id="@+id/race_content_header"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginTop="@dimen/default_margin"
|
android:background="?attr/sap_gray">
|
||||||
android:gravity="center"
|
|
||||||
android:textColor="?attr/white"
|
|
||||||
android:textSize="@dimen/textSize_40"
|
|
||||||
tools:text="@string/time"/>
|
|
||||||
|
|
||||||
<ImageView
|
<LinearLayout
|
||||||
android:id="@+id/time_marker"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_height="@dimen/thin_line"
|
android:orientation="horizontal">
|
||||||
android:layout_alignParentBottom="true"
|
|
||||||
android:src="?attr/marker"/>
|
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_above="@id/time_marker"
|
android:layout_weight="3">
|
||||||
android:layout_centerHorizontal="true"
|
|
||||||
android:baselineAligned="false"
|
|
||||||
android:layout_marginBottom="@dimen/side_padding">
|
|
||||||
|
|
||||||
|
<TextView
|
||||||
<RelativeLayout
|
android:id="@+id/timer_text"
|
||||||
android:id="@+id/start_time_container"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_marginTop="@dimen/default_margin"
|
||||||
android:layout_centerVertical="true">
|
android:gravity="center"
|
||||||
|
android:textColor="?attr/white"
|
||||||
<TextView
|
android:textSize="@dimen/textSize_40"
|
||||||
android:id="@+id/time_start"
|
tools:text="@string/time" />
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_centerVertical="true"
|
|
||||||
android:textAppearance="?attr/textSmall"
|
|
||||||
android:layout_toRightOf="@+id/linked_locked_area"
|
|
||||||
tools:text="@string/time_start"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/linked_locked_area"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_centerVertical="true"
|
|
||||||
android:layout_marginRight="6dp"
|
|
||||||
android:orientation="horizontal">
|
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/time_start_lock"
|
android:id="@+id/time_marker"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/thin_line"
|
||||||
|
android:layout_alignParentBottom="true"
|
||||||
|
android:src="?attr/marker" />
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:src="?attr/lock_outline"
|
android:layout_above="@id/time_marker"
|
||||||
android:visibility="gone"
|
android:layout_centerHorizontal="true"
|
||||||
tools:visibility="visible"/>
|
android:layout_marginBottom="@dimen/side_padding"
|
||||||
|
android:baselineAligned="false">
|
||||||
|
|
||||||
<ImageView
|
<RelativeLayout
|
||||||
android:id="@+id/linked_race"
|
android:id="@+id/start_time_container"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_centerVertical="true">
|
||||||
android:src="?attr/link_24dp"
|
|
||||||
android:visibility="gone"
|
|
||||||
tools:visibility="visible"/>
|
|
||||||
</LinearLayout>
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
<RelativeLayout
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:id="@+id/time_start"
|
||||||
android:layout_height="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_toRightOf="@+id/start_time_container"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginLeft="@dimen/side_padding"
|
android:layout_centerVertical="true"
|
||||||
android:layout_centerVertical="true">
|
android:layout_toRightOf="@+id/linked_locked_area"
|
||||||
|
android:textAppearance="?attr/textSmall"
|
||||||
|
tools:text="@string/time_start" />
|
||||||
|
|
||||||
<TextView
|
<LinearLayout
|
||||||
android:id="@+id/current_time"
|
android:id="@+id/linked_locked_area"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_centerInParent="true"
|
android:layout_centerVertical="true"
|
||||||
android:layout_centerVertical="true"
|
android:layout_marginRight="6dp"
|
||||||
android:drawableLeft="?attr/access_time_24dp"
|
android:orientation="horizontal">
|
||||||
android:drawablePadding="6dp"
|
|
||||||
android:gravity="center"
|
|
||||||
android:textAppearance="?attr/textSmall"
|
|
||||||
android:visibility="invisible"
|
|
||||||
tools:text="@string/time"
|
|
||||||
tools:visibility="visible"/>
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
</RelativeLayout>
|
<ImageView
|
||||||
</com.sap.sailing.racecommittee.app.ui.layouts.TimePanelHeaderLayout>
|
android:id="@+id/time_start_lock"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:src="?attr/lock_outline"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/linked_race"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:src="?attr/link_24dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible" />
|
||||||
|
</LinearLayout>
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:layout_marginLeft="@dimen/side_padding"
|
||||||
|
android:layout_toRightOf="@+id/start_time_container">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/current_time"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_centerInParent="true"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:drawableLeft="?attr/access_time_24dp"
|
||||||
|
android:drawablePadding="6dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:textAppearance="?attr/textSmall"
|
||||||
|
android:visibility="invisible"
|
||||||
|
tools:text="@string/time"
|
||||||
|
tools:visibility="visible" />
|
||||||
|
</RelativeLayout>
|
||||||
|
</RelativeLayout>
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<com.sap.sailing.racecommittee.app.ui.views.PanelButton
|
||||||
|
android:id="@+id/button_competitor"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
app:buttonCaption="@string/competitor_list"
|
||||||
|
app:buttonImage="?attr/competitor_list"
|
||||||
|
app:buttonType="typeImage"
|
||||||
|
app:captionPosition="bottom"
|
||||||
|
app:linePosition="left" />
|
||||||
|
</LinearLayout>
|
||||||
|
</com.sap.sailing.racecommittee.app.ui.layouts.TimePanelHeaderLayout>
|
||||||
|
</RelativeLayout>
|
||||||
@@ -517,5 +517,6 @@
|
|||||||
<string name="set_factor_error">Beim Setzen des Faktors ist ein Fehler aufgetreten: %s</string>
|
<string name="set_factor_error">Beim Setzen des Faktors ist ein Fehler aufgetreten: %s</string>
|
||||||
<string name="sync_to_minute">Sync zur Minute</string>
|
<string name="sync_to_minute">Sync zur Minute</string>
|
||||||
<string name="non_public_changed_title">Nicht öffentliche Events</string>
|
<string name="non_public_changed_title">Nicht öffentliche Events</string>
|
||||||
|
<string name="competitor_list">Teilnehmerliste</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
@@ -4,6 +4,7 @@
|
|||||||
<style name="AppTheme.Dark.Custom" parent="Theme.AppCompat.NoActionBar">
|
<style name="AppTheme.Dark.Custom" parent="Theme.AppCompat.NoActionBar">
|
||||||
<item name="chevron_left">@drawable/ic_chevron_left_white_36dp</item>
|
<item name="chevron_left">@drawable/ic_chevron_left_white_36dp</item>
|
||||||
<item name="chevron_right">@drawable/ic_chevron_right_white_36dp</item>
|
<item name="chevron_right">@drawable/ic_chevron_right_white_36dp</item>
|
||||||
|
<item name="competitor_list">@drawable/ic_competitor_list_white_48dp</item>
|
||||||
|
|
||||||
<item name="flag_blue_first">@drawable/flag_blue_first_32dp_dark</item>
|
<item name="flag_blue_first">@drawable/flag_blue_first_32dp_dark</item>
|
||||||
<item name="flag_blue_last">@drawable/flag_blue_last_32dp_dark</item>
|
<item name="flag_blue_last">@drawable/flag_blue_last_32dp_dark</item>
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
<style name="AppTheme.Light.Custom" parent="Theme.AppCompat.NoActionBar">
|
<style name="AppTheme.Light.Custom" parent="Theme.AppCompat.NoActionBar">
|
||||||
<item name="chevron_left">@drawable/ic_chevron_left_black_36dp</item>
|
<item name="chevron_left">@drawable/ic_chevron_left_black_36dp</item>
|
||||||
<item name="chevron_right">@drawable/ic_chevron_right_black_36dp</item>
|
<item name="chevron_right">@drawable/ic_chevron_right_black_36dp</item>
|
||||||
|
<item name="competitor_list">@drawable/ic_competitor_list_black_48dp</item>
|
||||||
|
|
||||||
<item name="flag_blue_first">@drawable/flag_blue_first_32dp_light</item>
|
<item name="flag_blue_first">@drawable/flag_blue_first_32dp_light</item>
|
||||||
<item name="flag_blue_last">@drawable/flag_blue_last_32dp_light</item>
|
<item name="flag_blue_last">@drawable/flag_blue_last_32dp_light</item>
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
<style name="AppTheme.Dark.Custom" parent="Theme.AppCompat.NoActionBar">
|
<style name="AppTheme.Dark.Custom" parent="Theme.AppCompat.NoActionBar">
|
||||||
<item name="chevron_left">@drawable/ic_chevron_left_white_36dp</item>
|
<item name="chevron_left">@drawable/ic_chevron_left_white_36dp</item>
|
||||||
<item name="chevron_right">@drawable/ic_chevron_right_white_36dp</item>
|
<item name="chevron_right">@drawable/ic_chevron_right_white_36dp</item>
|
||||||
|
<item name="competitor_list">@drawable/ic_competitor_list_white_48dp</item>
|
||||||
|
|
||||||
<item name="flag_blue_first">@drawable/flag_blue_first_48dp_dark</item>
|
<item name="flag_blue_first">@drawable/flag_blue_first_48dp_dark</item>
|
||||||
<item name="flag_blue_last">@drawable/flag_blue_last_48dp_dark</item>
|
<item name="flag_blue_last">@drawable/flag_blue_last_48dp_dark</item>
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
<style name="AppTheme.Light.Custom" parent="Theme.AppCompat.NoActionBar">
|
<style name="AppTheme.Light.Custom" parent="Theme.AppCompat.NoActionBar">
|
||||||
<item name="chevron_left">@drawable/ic_chevron_left_black_36dp</item>
|
<item name="chevron_left">@drawable/ic_chevron_left_black_36dp</item>
|
||||||
<item name="chevron_right">@drawable/ic_chevron_right_black_36dp</item>
|
<item name="chevron_right">@drawable/ic_chevron_right_black_36dp</item>
|
||||||
|
<item name="competitor_list">@drawable/ic_competitor_list_black_48dp</item>
|
||||||
|
|
||||||
<item name="flag_blue_first">@drawable/flag_blue_first_48dp_light</item>
|
<item name="flag_blue_first">@drawable/flag_blue_first_48dp_light</item>
|
||||||
<item name="flag_blue_last">@drawable/flag_blue_last_48dp_light</item>
|
<item name="flag_blue_last">@drawable/flag_blue_last_48dp_light</item>
|
||||||
|
|||||||
@@ -64,6 +64,7 @@
|
|||||||
<attr name="create" format="reference"/>
|
<attr name="create" format="reference"/>
|
||||||
<attr name="compass_back" format="reference"/>
|
<attr name="compass_back" format="reference"/>
|
||||||
<attr name="compass_needle" format="reference"/>
|
<attr name="compass_needle" format="reference"/>
|
||||||
|
<attr name="competitor_list" format="reference"/>
|
||||||
<attr name="course_triangle_48dp" format="reference"/>
|
<attr name="course_triangle_48dp" format="reference"/>
|
||||||
<attr name="course_triangle_64dp" format="reference"/>
|
<attr name="course_triangle_64dp" format="reference"/>
|
||||||
<attr name="course_updown_48dp" format="reference"/>
|
<attr name="course_updown_48dp" format="reference"/>
|
||||||
|
|||||||
@@ -545,5 +545,6 @@
|
|||||||
<string name="set_factor_error">There was an error while setting the factor: %s</string>
|
<string name="set_factor_error">There was an error while setting the factor: %s</string>
|
||||||
<string name="sync_to_minute">Sync to minute</string>
|
<string name="sync_to_minute">Sync to minute</string>
|
||||||
<string name="non_public_changed_title">Non-Public Events</string>
|
<string name="non_public_changed_title">Non-Public Events</string>
|
||||||
|
<string name="competitor_list">Competitor List</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
@@ -109,6 +109,7 @@
|
|||||||
<style name="AppTheme.Dark.Custom" parent="Theme.AppCompat.NoActionBar">
|
<style name="AppTheme.Dark.Custom" parent="Theme.AppCompat.NoActionBar">
|
||||||
<item name="chevron_left">@drawable/ic_chevron_left_white_24dp</item>
|
<item name="chevron_left">@drawable/ic_chevron_left_white_24dp</item>
|
||||||
<item name="chevron_right">@drawable/ic_chevron_right_white_24dp</item>
|
<item name="chevron_right">@drawable/ic_chevron_right_white_24dp</item>
|
||||||
|
<item name="competitor_list">@drawable/ic_competitor_list_white_32dp</item>
|
||||||
|
|
||||||
<item name="flag_blue_first">@drawable/flag_blue_first_32dp_dark</item>
|
<item name="flag_blue_first">@drawable/flag_blue_first_32dp_dark</item>
|
||||||
<item name="flag_blue_last">@drawable/flag_blue_last_32dp_dark</item>
|
<item name="flag_blue_last">@drawable/flag_blue_last_32dp_dark</item>
|
||||||
|
|||||||
@@ -118,6 +118,7 @@
|
|||||||
<style name="AppTheme.Light.Custom" parent="Theme.AppCompat.NoActionBar">
|
<style name="AppTheme.Light.Custom" parent="Theme.AppCompat.NoActionBar">
|
||||||
<item name="chevron_left">@drawable/ic_chevron_left_black_24dp</item>
|
<item name="chevron_left">@drawable/ic_chevron_left_black_24dp</item>
|
||||||
<item name="chevron_right">@drawable/ic_chevron_right_black_24dp</item>
|
<item name="chevron_right">@drawable/ic_chevron_right_black_24dp</item>
|
||||||
|
<item name="competitor_list">@drawable/ic_competitor_list_black_32dp</item>
|
||||||
|
|
||||||
<item name="flag_blue_first">@drawable/flag_blue_first_32dp_light</item>
|
<item name="flag_blue_first">@drawable/flag_blue_first_32dp_light</item>
|
||||||
<item name="flag_blue_last">@drawable/flag_blue_last_32dp_light</item>
|
<item name="flag_blue_last">@drawable/flag_blue_last_32dp_light</item>
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ public class AppConstants {
|
|||||||
public final static String INTENT_ACTION_TOGGLE_RECALL = "recall";
|
public final static String INTENT_ACTION_TOGGLE_RECALL = "recall";
|
||||||
public final static String INTENT_ACTION_TOGGLE_BLUE_FIRST = "more";
|
public final static String INTENT_ACTION_TOGGLE_BLUE_FIRST = "more";
|
||||||
public final static String INTENT_ACTION_TOGGLE_BLUE_LAST = "blue_last";
|
public final static String INTENT_ACTION_TOGGLE_BLUE_LAST = "blue_last";
|
||||||
|
public final static String INTENT_ACTION_TOGGLE_COMPETITOR = "competitor";
|
||||||
|
|
||||||
public final static String INTENT_ACTION_TOGGLE_REPLAY = "replay";
|
public final static String INTENT_ACTION_TOGGLE_REPLAY = "replay";
|
||||||
public final static String INTENT_ACTION_TOGGLE_PHOTOS = "photos";
|
public final static String INTENT_ACTION_TOGGLE_PHOTOS = "photos";
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import com.sap.sailing.racecommittee.app.data.DataManager;
|
|||||||
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
|
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
|
||||||
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.StartTimeFragment;
|
import com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.StartTimeFragment;
|
||||||
import com.sap.sailing.racecommittee.app.ui.layouts.TimePanelHeaderLayout;
|
import com.sap.sailing.racecommittee.app.ui.layouts.TimePanelHeaderLayout;
|
||||||
|
import com.sap.sailing.racecommittee.app.ui.views.PanelButton;
|
||||||
import com.sap.sailing.racecommittee.app.utils.RaceHelper;
|
import com.sap.sailing.racecommittee.app.utils.RaceHelper;
|
||||||
import com.sap.sailing.racecommittee.app.utils.TickSingleton;
|
import com.sap.sailing.racecommittee.app.utils.TickSingleton;
|
||||||
import com.sap.sailing.racecommittee.app.utils.TimeUtils;
|
import com.sap.sailing.racecommittee.app.utils.TimeUtils;
|
||||||
@@ -45,6 +46,8 @@ public class TimePanelFragment extends BasePanelFragment {
|
|||||||
private SimpleDateFormat dateFormat;
|
private SimpleDateFormat dateFormat;
|
||||||
|
|
||||||
private TimePanelHeaderLayout mRaceHeader;
|
private TimePanelHeaderLayout mRaceHeader;
|
||||||
|
private PanelButton mCompetitorList;
|
||||||
|
|
||||||
private View mTimeLock;
|
private View mTimeLock;
|
||||||
private TextView mCurrentTime;
|
private TextView mCurrentTime;
|
||||||
private TextView mHeaderTime;
|
private TextView mHeaderTime;
|
||||||
@@ -77,6 +80,9 @@ public class TimePanelFragment extends BasePanelFragment {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mCompetitorList = ViewHelper.get(layout, R.id.button_competitor);
|
||||||
|
mCompetitorList.setListener(new CompetitorPanelClick());
|
||||||
|
|
||||||
mTimeLock = ViewHelper.get(layout, R.id.time_start_lock);
|
mTimeLock = ViewHelper.get(layout, R.id.time_start_lock);
|
||||||
mCurrentTime = ViewHelper.get(layout, R.id.current_time);
|
mCurrentTime = ViewHelper.get(layout, R.id.current_time);
|
||||||
mHeaderTime = ViewHelper.get(layout, R.id.timer_text);
|
mHeaderTime = ViewHelper.get(layout, R.id.timer_text);
|
||||||
@@ -172,10 +178,14 @@ public class TimePanelFragment extends BasePanelFragment {
|
|||||||
|
|
||||||
private void uncheckMarker(View view) {
|
private void uncheckMarker(View view) {
|
||||||
if (isAdded() && view != null) {
|
if (isAdded() && view != null) {
|
||||||
if (!view.equals(mRaceHeader)) {
|
if (!view.equals(mRaceHeader) && !isNormal(mRaceHeader, R.id.time_marker)) {
|
||||||
resetFragment(mTimeLock, getFrameId(getActivity(), R.id.race_edit, R.id.race_content, false), StartTimeFragment.class);
|
resetFragment(mTimeLock, getFrameId(getActivity(), R.id.race_edit, R.id.race_content, false), StartTimeFragment.class);
|
||||||
setMarkerLevel(mRaceHeader, R.id.time_marker, LEVEL_NORMAL);
|
setMarkerLevel(mRaceHeader, R.id.time_marker, LEVEL_NORMAL);
|
||||||
}
|
}
|
||||||
|
if (!view.equals(mCompetitorList)) {
|
||||||
|
resetFragment(mCompetitorList.isLocked(), getFrameId(getActivity(), R.id.race_edit, R.id.race_content, false), StartTimeFragment.class);
|
||||||
|
mCompetitorList.setMarkerLevel(PanelButton.LEVEL_NORMAL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -215,6 +225,30 @@ public class TimePanelFragment extends BasePanelFragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class RaceStateChangedListener extends BaseRaceStateChangedListener {
|
||||||
|
|
||||||
|
private View mView;
|
||||||
|
|
||||||
|
public RaceStateChangedListener() {
|
||||||
|
mView = new View(getActivity());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStatusChanged(ReadonlyRaceState state) {
|
||||||
|
super.onStatusChanged(state);
|
||||||
|
|
||||||
|
checkStatus();
|
||||||
|
uncheckMarker(mView);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStartTimeChanged(ReadonlyRaceState state) {
|
||||||
|
super.onStartTimeChanged(state);
|
||||||
|
|
||||||
|
mLinkedRace = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private class RaceHeaderClick implements View.OnClickListener, DialogInterface.OnClickListener {
|
private class RaceHeaderClick implements View.OnClickListener, DialogInterface.OnClickListener {
|
||||||
|
|
||||||
private final String TAG = RaceHeaderClick.class.getName();
|
private final String TAG = RaceHeaderClick.class.getName();
|
||||||
@@ -255,6 +289,35 @@ public class TimePanelFragment extends BasePanelFragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class CompetitorPanelClick implements PanelButton.PanelButtonClick {
|
||||||
|
|
||||||
|
private final String TAG = CompetitorPanelClick.class.getName();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(PanelButton view) {
|
||||||
|
sendIntent(AppConstants.INTENT_ACTION_TOGGLE, AppConstants.INTENT_ACTION_EXTRA, AppConstants.INTENT_ACTION_TOGGLE_COMPETITOR);
|
||||||
|
switch (view.toggleMarker()) {
|
||||||
|
case PanelButton.LEVEL_NORMAL:
|
||||||
|
sendIntent(AppConstants.INTENT_ACTION_SHOW_MAIN_CONTENT);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PanelButton.LEVEL_TOGGLED:
|
||||||
|
replaceFragment(StartTimeFragment.newInstance(StartTimeFragment.MODE_TIME_PANEL));
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
ExLog.i(getActivity(), TAG, "Unknown return value");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
view.disableToggle();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onChangedSwitch(PanelButton view, boolean isChecked) {
|
||||||
|
// no-op
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private class IntentReceiver extends BroadcastReceiver {
|
private class IntentReceiver extends BroadcastReceiver {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -270,6 +333,8 @@ public class TimePanelFragment extends BasePanelFragment {
|
|||||||
String data = intent.getExtras().getString(AppConstants.INTENT_ACTION_EXTRA);
|
String data = intent.getExtras().getString(AppConstants.INTENT_ACTION_EXTRA);
|
||||||
if (AppConstants.INTENT_ACTION_TOGGLE_TIME.equals(data)) {
|
if (AppConstants.INTENT_ACTION_TOGGLE_TIME.equals(data)) {
|
||||||
uncheckMarker(mRaceHeader);
|
uncheckMarker(mRaceHeader);
|
||||||
|
} else if (AppConstants.INTENT_ACTION_TOGGLE_COMPETITOR.equals(data)) {
|
||||||
|
uncheckMarker(mCompetitorList);
|
||||||
} else {
|
} else {
|
||||||
uncheckMarker(view);
|
uncheckMarker(view);
|
||||||
}
|
}
|
||||||
@@ -289,28 +354,4 @@ public class TimePanelFragment extends BasePanelFragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class RaceStateChangedListener extends BaseRaceStateChangedListener {
|
|
||||||
|
|
||||||
private View mView;
|
|
||||||
|
|
||||||
public RaceStateChangedListener() {
|
|
||||||
mView = new View(getActivity());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStatusChanged(ReadonlyRaceState state) {
|
|
||||||
super.onStatusChanged(state);
|
|
||||||
|
|
||||||
checkStatus();
|
|
||||||
uncheckMarker(mView);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStartTimeChanged(ReadonlyRaceState state) {
|
|
||||||
super.onStartTimeChanged(state);
|
|
||||||
|
|
||||||
mLinkedRace = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ package com.sap.sailing.racecommittee.app.ui.layouts;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.widget.RelativeLayout;
|
import android.widget.FrameLayout;
|
||||||
|
|
||||||
import com.sap.sailing.racecommittee.app.ui.utils.TouchEventListener;
|
import com.sap.sailing.racecommittee.app.ui.utils.TouchEventListener;
|
||||||
|
|
||||||
public class TimePanelHeaderLayout extends RelativeLayout {
|
public class TimePanelHeaderLayout extends FrameLayout {
|
||||||
|
|
||||||
private TouchEventListener mTouchEventListener;
|
private TouchEventListener mTouchEventListener;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="32dp"
|
||||||
|
android:height="32dp"
|
||||||
|
android:viewportHeight="24.0"
|
||||||
|
android:viewportWidth="24.0">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="M3,13h2v-2L3,11v2zM3,17h2v-2L3,15v2zM3,9h2L5,7L3,7v2zM7,13h14v-2L7,11v2zM7,17h14v-2L7,15v2zM7,7v2h14L21,7L7,7z" />
|
||||||
|
</vector>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="48dp"
|
||||||
|
android:height="48dp"
|
||||||
|
android:viewportHeight="24.0"
|
||||||
|
android:viewportWidth="24.0">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
android:pathData="M3,13h2v-2L3,11v2zM3,17h2v-2L3,15v2zM3,9h2L5,7L3,7v2zM7,13h14v-2L7,11v2zM7,17h14v-2L7,15v2zM7,7v2h14L21,7L7,7z" />
|
||||||
|
</vector>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="32dp"
|
||||||
|
android:height="32dp"
|
||||||
|
android:viewportHeight="24.0"
|
||||||
|
android:viewportWidth="24.0">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FFFFFFFF"
|
||||||
|
android:pathData="M3,13h2v-2L3,11v2zM3,17h2v-2L3,15v2zM3,9h2L5,7L3,7v2zM7,13h14v-2L7,11v2zM7,17h14v-2L7,15v2zM7,7v2h14L21,7L7,7z" />
|
||||||
|
</vector>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="48dp"
|
||||||
|
android:height="48dp"
|
||||||
|
android:viewportHeight="24.0"
|
||||||
|
android:viewportWidth="24.0">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FFFFFFFF"
|
||||||
|
android:pathData="M3,13h2v-2L3,11v2zM3,17h2v-2L3,15v2zM3,9h2L5,7L3,7v2zM7,13h14v-2L7,11v2zM7,17h14v-2L7,15v2zM7,7v2h14L21,7L7,7z" />
|
||||||
|
</vector>
|
||||||