diff --git a/build.gradle b/build.gradle index 1045a4526e0..2837d4f37e8 100644 --- a/build.gradle +++ b/build.gradle @@ -34,7 +34,7 @@ ext { support = "22.2.1" play_services = "7.3.0" - license_dialog = "1.7.0" + license_dialog = "1.8.0" // testing - jvm junit = "4.12" diff --git a/mobile/com.sap.sailing.android.shared/res/values-de/strings.xml b/mobile/com.sap.sailing.android.shared/res/values-de/strings.xml index 31697c24644..ec9146f6399 100644 --- a/mobile/com.sap.sailing.android.shared/res/values-de/strings.xml +++ b/mobile/com.sap.sailing.android.shared/res/values-de/strings.xml @@ -36,7 +36,6 @@ Datenschutzbestimmungen Mit der Verwendung dieser App stimmen Sie den Datenschutzbestimmungen der SAP SE zu. Die Datenschutzbestimmungen finden Sie hier. Zustimmen - Überspringen hier diff --git a/mobile/com.sap.sailing.android.shared/res/values/strings.xml b/mobile/com.sap.sailing.android.shared/res/values/strings.xml index 22ad7645e3e..d99764d0e89 100644 --- a/mobile/com.sap.sailing.android.shared/res/values/strings.xml +++ b/mobile/com.sap.sailing.android.shared/res/values/strings.xml @@ -52,7 +52,6 @@ EULA By using this App you confirm to accept the SAP SE end user license agreement. Please read this EULA here. Confirm - Skip here diff --git a/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/ui/activities/ResilientActivity.java b/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/ui/activities/ResilientActivity.java index 86d836964e0..45a807888ca 100644 --- a/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/ui/activities/ResilientActivity.java +++ b/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/ui/activities/ResilientActivity.java @@ -35,5 +35,6 @@ public class ResilientActivity extends LoggableActivity { protected void fadeActivity(Intent intent) { startActivity(intent); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out); + finish(); } } diff --git a/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/util/EulaHelper.java b/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/util/EulaHelper.java index 1182622fa4f..a897b56f2c2 100644 --- a/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/util/EulaHelper.java +++ b/mobile/com.sap.sailing.android.shared/src/com/sap/sailing/android/shared/util/EulaHelper.java @@ -17,78 +17,76 @@ import android.widget.TextView; import com.sap.sailing.android.shared.R; public class EulaHelper { - private static final String EULA_PREFERENCES = "eula.preferences"; - private static final String EULA_CONFIRMED = "eula.confirmed"; + private static final String EULA_CONFIRMED = "confirmed"; + + private static final int NO_THEME = 0; + + private Context mContext; + + private EulaHelper(Context context) { + mContext = context; + } + + public static EulaHelper with(Context context) { + return new EulaHelper(context); + } + + public void showEulaDialog() { + showEulaDialog(NO_THEME); + } + + public void showEulaDialog(@StyleRes int theme) { + AlertDialog.Builder builder; + switch (theme) { + case NO_THEME: + builder = new AlertDialog.Builder(mContext); + break; + + default: + builder = new AlertDialog.Builder(mContext, theme); + } - public static void showTrackingEulaDialog(final Context context) { - AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle(R.string.eula_title); - builder.setMessage(getSpannableMessage(context)); + builder.setMessage(getSpannableMessage()); builder.setCancelable(false); builder.setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - storeEulaAccepted(context); + storeEulaAccepted(); } }); AlertDialog alertDialog = builder.show(); ((TextView)alertDialog.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance()); } - - public static void showEulaDialog(final Context context, @StyleRes int theme) { - AlertDialog.Builder builder = new AlertDialog.Builder(context, theme); - builder.setTitle(R.string.eula_title); - builder.setMessage(getSpannableMessage(context)); - builder.setCancelable(false); - builder.setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - storeEulaAccepted(context); - } - }); - builder.setNegativeButton(R.string.skip, null); - AlertDialog alertDialog = builder.show(); - ((TextView)alertDialog.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance()); - } - - private static void storeEulaAccepted(Context context) { - SharedPreferences preferences = context.getApplicationContext().getSharedPreferences(EULA_PREFERENCES, Context.MODE_PRIVATE); + private void storeEulaAccepted() { + SharedPreferences preferences = mContext.getSharedPreferences(EULA_PREFERENCES, Context.MODE_PRIVATE); SharedPreferences.Editor editor = preferences.edit(); editor.putBoolean(EULA_CONFIRMED, true); - editor.apply(); + editor.commit(); } - public static boolean isEulaAccepted(Context context) { - boolean accepted = false; - SharedPreferences preferences = context.getApplicationContext().getSharedPreferences(EULA_PREFERENCES, Context.MODE_PRIVATE); - if (preferences.contains(EULA_CONFIRMED)) { - accepted = preferences.getBoolean(EULA_CONFIRMED, false); - } - return accepted; + public boolean isEulaAccepted() { + SharedPreferences preferences = mContext.getSharedPreferences(EULA_PREFERENCES, Context.MODE_PRIVATE); + return preferences.getBoolean(EULA_CONFIRMED, false); } - public static void openEulaPage(Context context) { - String url = context.getString(R.string.eula_url); + public void openEulaPage() { + String url = mContext.getString(R.string.eula_url); Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); - context.startActivity(browserIntent); + mContext.startActivity(browserIntent); } - /** - * Prepare text for dialog with clickable text part. - * @param context - * @return - */ - private static SpannableString getSpannableMessage(final Context context) { - String message = context.getString(R.string.eula_message); - String clickableText = context.getString(R.string.linked_eula_message_part); + private SpannableString getSpannableMessage() { + String message = mContext.getString(R.string.eula_message); + String clickableText = mContext.getString(R.string.linked_eula_message_part); SpannableString spannableString = new SpannableString(message); ClickableSpan clickableSpan = new ClickableSpan() { @Override public void onClick(View widget) { - openEulaPage(context); + openEulaPage(); } }; diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/activities/StartActivity.java b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/activities/StartActivity.java index 10b88e73454..1e4963ff1f2 100644 --- a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/activities/StartActivity.java +++ b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/activities/StartActivity.java @@ -51,8 +51,8 @@ public class StartActivity extends AbstractStartActivity { @Override protected void onResume() { super.onResume(); - if (!EulaHelper.isEulaAccepted(this)) { - EulaHelper.showTrackingEulaDialog(this); + if (!EulaHelper.with(this).isEulaAccepted()) { + EulaHelper.with(this).showEulaDialog(); } } diff --git a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/AboutFragment.java b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/AboutFragment.java index ba3b73f24bc..7d6f5906003 100644 --- a/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/AboutFragment.java +++ b/mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/ui/fragments/AboutFragment.java @@ -37,7 +37,7 @@ public class AboutFragment extends com.sap.sailing.android.ui.fragments.BaseFrag view.findViewById(R.id.eula_button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - EulaHelper.openEulaPage(getActivity()); + EulaHelper.with(getActivity()).openEulaPage(); } }); OpenSansTextView versionTextView = (OpenSansTextView) view.findViewById(R.id.system_information_application_version); diff --git a/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/activities/StartActivity.java b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/activities/StartActivity.java index 43c685403f6..b66c8205299 100644 --- a/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/activities/StartActivity.java +++ b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/activities/StartActivity.java @@ -24,13 +24,9 @@ public class StartActivity extends AbstractStartActivity { getSupportActionBar().setHomeButtonEnabled(false); } replaceFragment(R.id.content_frame, new HomeFragment()); - } - @Override - protected void onResume() { - super.onResume(); - if (!EulaHelper.isEulaAccepted(this)) { - EulaHelper.showEulaDialog(this, R.style.Base_Theme_AppCompat_Dialog_Alert); + if (!EulaHelper.with(this).isEulaAccepted()) { + EulaHelper.with(this).showEulaDialog(R.style.Base_Theme_AppCompat_Dialog_Alert); } } diff --git a/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/fragments/AboutFragment.java b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/fragments/AboutFragment.java index 80259c8be9b..0c9e56c2652 100644 --- a/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/fragments/AboutFragment.java +++ b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/fragments/AboutFragment.java @@ -38,7 +38,7 @@ public class AboutFragment extends BaseFragment { view.findViewById(R.id.eula_button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - EulaHelper.openEulaPage(getActivity()); + EulaHelper.with(getActivity()).openEulaPage(); } }); OpenSansTextView versionTextView = (OpenSansTextView) view.findViewById(R.id.system_information_application_version); diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable-hdpi/ic_add_42dp_dark.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable-hdpi/ic_add_42dp_dark.png new file mode 100644 index 00000000000..89bee0d0863 Binary files /dev/null and b/mobile/com.sap.sailing.racecommittee.app/res/drawable-hdpi/ic_add_42dp_dark.png differ diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable-hdpi/ic_add_42dp_light.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable-hdpi/ic_add_42dp_light.png new file mode 100644 index 00000000000..8758e50ffc4 Binary files /dev/null and b/mobile/com.sap.sailing.racecommittee.app/res/drawable-hdpi/ic_add_42dp_light.png differ diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable-hdpi/ic_add_42dp_yellow.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable-hdpi/ic_add_42dp_yellow.png new file mode 100644 index 00000000000..e2012073925 Binary files /dev/null and b/mobile/com.sap.sailing.racecommittee.app/res/drawable-hdpi/ic_add_42dp_yellow.png differ diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable-mdpi/ic_add_42dp_dark.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable-mdpi/ic_add_42dp_dark.png new file mode 100644 index 00000000000..3a05ccbed4d Binary files /dev/null and b/mobile/com.sap.sailing.racecommittee.app/res/drawable-mdpi/ic_add_42dp_dark.png differ diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable-mdpi/ic_add_42dp_light.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable-mdpi/ic_add_42dp_light.png new file mode 100644 index 00000000000..4e1fda2e4dc Binary files /dev/null and b/mobile/com.sap.sailing.racecommittee.app/res/drawable-mdpi/ic_add_42dp_light.png differ diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable-mdpi/ic_add_42dp_yellow.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable-mdpi/ic_add_42dp_yellow.png new file mode 100644 index 00000000000..a52474b76a2 Binary files /dev/null and b/mobile/com.sap.sailing.racecommittee.app/res/drawable-mdpi/ic_add_42dp_yellow.png differ diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable-xhdpi/ic_add_42dp_dark.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xhdpi/ic_add_42dp_dark.png new file mode 100644 index 00000000000..463a0f75eaf Binary files /dev/null and b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xhdpi/ic_add_42dp_dark.png differ diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable-xhdpi/ic_add_42dp_light.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xhdpi/ic_add_42dp_light.png new file mode 100644 index 00000000000..91325caba06 Binary files /dev/null and b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xhdpi/ic_add_42dp_light.png differ diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable-xhdpi/ic_add_42dp_yellow.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xhdpi/ic_add_42dp_yellow.png new file mode 100644 index 00000000000..d1294f47029 Binary files /dev/null and b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xhdpi/ic_add_42dp_yellow.png differ diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxhdpi/ic_add_42dp_dark.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxhdpi/ic_add_42dp_dark.png new file mode 100644 index 00000000000..06c8db51a97 Binary files /dev/null and b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxhdpi/ic_add_42dp_dark.png differ diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxhdpi/ic_add_42dp_light.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxhdpi/ic_add_42dp_light.png new file mode 100644 index 00000000000..61380ee345a Binary files /dev/null and b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxhdpi/ic_add_42dp_light.png differ diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxhdpi/ic_add_42dp_yellow.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxhdpi/ic_add_42dp_yellow.png new file mode 100644 index 00000000000..f2f86ba3dae Binary files /dev/null and b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxhdpi/ic_add_42dp_yellow.png differ diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxxhdpi/ic_add_42dp_dark.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxxhdpi/ic_add_42dp_dark.png new file mode 100644 index 00000000000..f0505bdf75a Binary files /dev/null and b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxxhdpi/ic_add_42dp_dark.png differ diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxxhdpi/ic_add_42dp_light.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxxhdpi/ic_add_42dp_light.png new file mode 100644 index 00000000000..24c6aed30cb Binary files /dev/null and b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxxhdpi/ic_add_42dp_light.png differ diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxxhdpi/ic_add_42dp_yellow.png b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxxhdpi/ic_add_42dp_yellow.png new file mode 100644 index 00000000000..3a0fe2ca235 Binary files /dev/null and b/mobile/com.sap.sailing.racecommittee.app/res/drawable-xxxhdpi/ic_add_42dp_yellow.png differ diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable/ic_add_dark.xml b/mobile/com.sap.sailing.racecommittee.app/res/drawable/ic_add_dark.xml new file mode 100644 index 00000000000..d80a53ee7fd --- /dev/null +++ b/mobile/com.sap.sailing.racecommittee.app/res/drawable/ic_add_dark.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/mobile/com.sap.sailing.racecommittee.app/res/drawable/ic_add_light.xml b/mobile/com.sap.sailing.racecommittee.app/res/drawable/ic_add_light.xml new file mode 100644 index 00000000000..c2859eadf74 --- /dev/null +++ b/mobile/com.sap.sailing.racecommittee.app/res/drawable/ic_add_light.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/mobile/com.sap.sailing.racecommittee.app/res/layout/course_marks_waypoint_item.xml b/mobile/com.sap.sailing.racecommittee.app/res/layout/course_marks_waypoint_item.xml index 2a02ee6da4f..cd610757ec4 100644 --- a/mobile/com.sap.sailing.racecommittee.app/res/layout/course_marks_waypoint_item.xml +++ b/mobile/com.sap.sailing.racecommittee.app/res/layout/course_marks_waypoint_item.xml @@ -96,7 +96,7 @@ android:id="@+id/add_item" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/ic_add_42dp" /> + android:src="?attr/add" /> - - + android:orientation="horizontal"> - - + android:layout_weight="1"> - + + - + + + + + - - - \ No newline at end of file + android:layout_centerInParent="true" + android:layout_gravity="center_vertical" + android:layout_marginLeft="42dp" + android:text="@string/add_waypoint" + android:textAppearance="?attr/textXSmall" + android:textColor="?attr/white" /> + \ No newline at end of file diff --git a/mobile/com.sap.sailing.racecommittee.app/res/layout/race_main_normal.xml b/mobile/com.sap.sailing.racecommittee.app/res/layout/race_main_normal.xml index 34c95c6c121..7b7fbbaa60e 100644 --- a/mobile/com.sap.sailing.racecommittee.app/res/layout/race_main_normal.xml +++ b/mobile/com.sap.sailing.racecommittee.app/res/layout/race_main_normal.xml @@ -41,6 +41,22 @@ android:layout_below="@id/panels_pager" android:background="?attr/sap_gray"> + + + + - + layout="@layout/race_schedule_course_header" /> - - - - - - - - - -