secret night mode switch

This commit is contained in:
y20k 2018-02-21 11:47:09 +01:00
parent 46699376d3
commit 50a21bf4ec
32 changed files with 314 additions and 101 deletions

View file

@ -2,9 +2,13 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.y20k.trackbook">
<!-- EXCLUDE NON-GPS DEVICES -->
<uses-feature android:name="android.hardware.location.gps" android:required="true" />
<!-- NORMAL PERMISSIONS, automatically granted -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.INTERNET" />
<!-- DANGEROUS PERMISSIONS, must request -->

View file

@ -29,6 +29,7 @@ import android.location.Location;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.Vibrator;
import android.preference.PreferenceManager;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@ -42,6 +43,7 @@ import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.content.ContextCompat;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.app.AppCompatDelegate;
import android.support.v7.widget.CardView;
import android.util.SparseArray;
import android.view.MenuItem;
@ -53,6 +55,7 @@ import android.widget.Toast;
import org.osmdroid.config.Configuration;
import org.y20k.trackbook.helpers.DialogHelper;
import org.y20k.trackbook.helpers.LogHelper;
import org.y20k.trackbook.helpers.NightModeHelper;
import org.y20k.trackbook.helpers.TrackbookKeys;
import org.y20k.trackbook.layout.NonSwipeableViewPager;
@ -91,6 +94,12 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
private int mSelectedTab;
/* Sets day / night mode */
static {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -447,6 +456,14 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
mainActivityMapFragment.handleShowMyLocation();
}
});
mFloatingActionButtonLocation.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
longPressFeedback(R.string.toastmessage_long_press_night_mode_switch);
NightModeHelper.switchToOpposite(MainActivity.this);
return true;
}
});
}
@ -608,6 +625,18 @@ public class MainActivity extends AppCompatActivity implements TrackbookKeys {
}
/* Inform user and give haptic feedback (vibration) */
private void longPressFeedback(int stringResource) {
// inform user
Toast.makeText(this, stringResource, Toast.LENGTH_LONG).show();
// vibrate 50 milliseconds
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
v.vibrate(50);
// v.vibrate(VibrationEffect.createOneShot(50, DEFAULT_AMPLITUDE)); // todo check if there is a support library vibrator
}
/* Check which permissions have been granted */
private List<String> checkPermissions() {
List<String> permissions = new ArrayList<>();

View file

@ -467,12 +467,12 @@ public class MainActivityTrackFragment extends Fragment implements AdapterView.O
case BottomSheetBehavior.STATE_EXPANDED:
// statistics sheet expanded
mTrackManagementLayout.setVisibility(View.INVISIBLE);
mStatisticsSheet.setBackgroundColor(ContextCompat.getColor(mActivity, R.color.trackbook_white_85percent));
mStatisticsSheet.setBackgroundColor(ContextCompat.getColor(mActivity, R.color.statistic_sheet_background_expanded));
break;
case BottomSheetBehavior.STATE_COLLAPSED:
// statistics sheet collapsed
mTrackManagementLayout.setVisibility(View.VISIBLE);
mStatisticsSheet.setBackgroundColor(ContextCompat.getColor(mActivity, R.color.trackbook_white));
mStatisticsSheet.setBackgroundColor(ContextCompat.getColor(mActivity, R.color.statistic_sheet_background_collapsed));
mStatisticsSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
break;
case BottomSheetBehavior.STATE_HIDDEN:
@ -492,9 +492,9 @@ public class MainActivityTrackFragment extends Fragment implements AdapterView.O
mTrackManagementLayout.setVisibility(View.INVISIBLE);
}
if (slideOffset < 0.125f) {
mStatisticsSheet.setBackgroundColor(ContextCompat.getColor(mActivity, R.color.trackbook_white));
mStatisticsSheet.setBackgroundColor(ContextCompat.getColor(mActivity, R.color.statistic_sheet_background_collapsed));
} else {
mStatisticsSheet.setBackgroundColor(ContextCompat.getColor(mActivity, R.color.trackbook_white_85percent));
mStatisticsSheet.setBackgroundColor(ContextCompat.getColor(mActivity, R.color.statistic_sheet_background_expanded));
}
}
};

View file

@ -0,0 +1,127 @@
/**
* NightModeHelper.java
* Implements the NightModeHelper class
* A NightModeHelper can toggle and restore the state of the theme's Night Mode
*
* This file is part of
* TRACKBOOK - Movement Recorder for Android
*
* Copyright (c) 2016-18 - Y20K.org
* Licensed under the MIT-License
* http://opensource.org/licenses/MIT
*
* Trackbook uses osmdroid - OpenStreetMap-Tools for Android
* https://github.com/osmdroid/osmdroid
*/
package org.y20k.trackbook.helpers;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.os.Build;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatDelegate;
import android.view.View;
/**
* NightModeHelper class
*/
public final class NightModeHelper implements TrackbookKeys {
/* Define log tag */
private static final String LOG_TAG = NightModeHelper.class.getSimpleName();
/* Switches to opposite theme */
public static void switchToOpposite(Activity activity) {
switch (getCurrentNightModeState(activity)) {
case Configuration.UI_MODE_NIGHT_NO:
// night mode is currently not active - turn on night mode
activateNightMode(activity);
break;
case Configuration.UI_MODE_NIGHT_YES:
// night mode is currently active - turn off night mode
deactivateNightMode(activity);
break;
case Configuration.UI_MODE_NIGHT_UNDEFINED:
// don't know what mode is active - turn off night mode
deactivateNightMode(activity);
break;
}
activity.recreate(); // todo check if necessary
}
/* Sets night mode / dark theme */
public static void restoreSavedState(Activity activity) {
int savedNightModeState = loadNightModeState(activity);
int currentNightModeState = getCurrentNightModeState(activity);
LogHelper.i(LOG_TAG, "Saved state of Night Mode = " + savedNightModeState + " || current state of Night Mode = " + currentNightModeState + " || NO=16 & YES=32"); // todo remove
if (savedNightModeState != -1 && savedNightModeState != currentNightModeState) {
// switch (savedNightModeState) {
// case Configuration.UI_MODE_NIGHT_NO:
// // turn off night mode
// deactivateNightMode(activity);
// break;
// case Configuration.UI_MODE_NIGHT_YES:
// // turn on night mode
// activateNightMode(activity);
// break;
// case Configuration.UI_MODE_NIGHT_UNDEFINED:
// // turn off night mode
// deactivateNightMode(activity);
// break;
// }
// activity.recreate(); // todo check if necessary
}
}
/* Returns state of night mode */
private static int getCurrentNightModeState(Context context) {
return context.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
}
/* Activates Night Mode */
private static void activateNightMode(Activity activity) {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
View decorView = activity.getWindow().getDecorView();
decorView.setSystemUiVisibility(0);
saveNightModeState(activity, Configuration.UI_MODE_NIGHT_NO);
}
/* Deactivates Night Mode */
private static void deactivateNightMode(Activity activity) {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
View decorView = activity.getWindow().getDecorView();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
} else {
decorView.setSystemUiVisibility(0);
}
saveNightModeState(activity, Configuration.UI_MODE_NIGHT_YES);
}
/* Save state of night mode */
private static void saveNightModeState(Context context, int currentState) {
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = settings.edit();
editor.putInt(PREF_NIGHT_MODE_STATE, currentState);
editor.apply();
}
/* Load state of Night Mode */
private static int loadNightModeState(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context).getInt(PREF_NIGHT_MODE_STATE, -1);
}
}

View file

@ -51,6 +51,7 @@ public interface TrackbookKeys {
String PREFS_FAB_STATE = "fabStatePrefs";
String PREFS_TRACKER_SERVICE_RUNNING = "trackerServiceRunning";
String PREFS_CURRENT_TRACK_DURATION = "currentTrackDuration";
String PREF_NIGHT_MODE_STATE = "prefNightModeState";
/* INSTANCE STATE */
String INSTANCE_FIRST_START = "firstStart";

View file

@ -5,5 +5,5 @@
android:viewportHeight="24.0">
<path
android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2L18,7L6,7v12zM8.46,11.88l1.41,-1.41L12,12.59l2.12,-2.12 1.41,1.41L13.41,14l2.12,2.12 -1.41,1.41L12,15.41l-2.12,2.12 -1.41,-1.41L10.59,14l-2.13,-2.12zM15.5,4l-1,-1h-5l-1,1L5,4v2h14L19,4z"
android:fillColor="@color/trackbook_grey" />
android:fillColor="@color/track_management_icons" />
</vector>

View file

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2L18,7L6,7v12zM8.46,11.88l1.41,-1.41L12,12.59l2.12,-2.12 1.41,1.41L13.41,14l2.12,2.12 -1.41,1.41L12,15.41l-2.12,2.12 -1.41,-1.41L10.59,14l-2.13,-2.12zM15.5,4l-1,-1h-5l-1,1L5,4v2h14L19,4z"
android:fillColor="@color/trackbook_white" />
</vector>

View file

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:pathData="M9,3L5,6.99h3L8,14h2L10,6.99h3L9,3zM16,17.01L16,10h-2v7.01h-3L15,21l4,-3.99h-3z"
android:fillColor="@color/trackbook_white" />
</vector>

View file

@ -5,5 +5,5 @@
android:viewportHeight="24.0">
<path
android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z"
android:fillColor="@color/trackbook_white" />
android:fillColor="@color/track_management_icons" />
</vector>

View file

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z"
android:fillColor="@color/trackbook_grey" />
</vector>

View file

@ -4,6 +4,6 @@
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/trackbook_grey"
android:pathData="M11,17h2v-6h-2v6zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM11,9h2L13,7h-2v2z"/>
android:pathData="M11,17h2v-6h-2v6zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM11,9h2L13,7h-2v2z"
android:fillColor="@color/statistic_sheet_icons" />
</vector>

View file

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/trackbook_white"
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z"/>
</vector>

View file

@ -4,6 +4,6 @@
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/trackbook_grey"
android:fillColor="@color/location_buttom_icon"
android:pathData="M12,8c-2.21,0 -4,1.79 -4,4s1.79,4 4,4 4,-1.79 4,-4 -1.79,-4 -4,-4zM20.94,11c-0.46,-4.17 -3.77,-7.48 -7.94,-7.94L13,1h-2v2.06C6.83,3.52 3.52,6.83 3.06,11L1,11v2h2.06c0.46,4.17 3.77,7.48 7.94,7.94L11,23h2v-2.06c4.17,-0.46 7.48,-3.77 7.94,-7.94L23,13v-2h-2.06zM12,19c-3.87,0 -7,-3.13 -7,-7s3.13,-7 7,-7 7,3.13 7,7 -3.13,7 -7,7z"/>
</vector>

View file

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/trackbook_white"
android:pathData="M9,11L7,11v2h2v-2zM13,11h-2v2h2v-2zM17,11h-2v2h2v-2zM19,4h-1L18,2h-2v2L8,4L8,2L6,2v2L5,4c-1.11,0 -1.99,0.9 -1.99,2L3,20c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,6c0,-1.1 -0.9,-2 -2,-2zM19,20L5,20L5,9h14v11z"/>
</vector>

View file

@ -23,12 +23,12 @@
android:clickable="true"
android:focusable="true"
android:contentDescription="@string/descr_fab_my_location"
app:backgroundTint="@color/trackbook_white"
app:backgroundTint="@color/location_buttom_background"
app:fabSize="mini"
app:layout_constraintBottom_toBottomOf="@+id/fabMainButton"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/fabMainButton"
app:srcCompat="@drawable/ic_my_location_grey_24dp" />
app:srcCompat="@drawable/ic_my_location_24dp" />
<!-- BUTTON SAVE AND CLEAR -->
@ -56,7 +56,7 @@
android:clickable="true"
android:focusable="true"
android:contentDescription="@string/descr_fab_sub_menu_label_1"
app:cardBackgroundColor="@color/trackbook_white"
app:cardBackgroundColor="@color/fab_button_card_background"
app:cardCornerRadius="4dp"
app:cardElevation="4dp"
app:cardUseCompatPadding="true"
@ -72,7 +72,8 @@
android:paddingRight="6dp"
android:paddingTop="2dp"
android:text="@string/fab_sub_menu_save"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/fab_button_card_text"
android:textStyle="bold"
tools:layout_editor_absoluteX="110dp"
tools:layout_editor_absoluteY="239dp" />
@ -103,7 +104,7 @@
android:clickable="true"
android:focusable="true"
android:contentDescription="@string/descr_fab_sub_menu_label_2"
app:cardBackgroundColor="@color/trackbook_white"
app:cardBackgroundColor="@color/fab_button_card_background"
app:cardCornerRadius="4dp"
app:cardElevation="4dp"
app:cardUseCompatPadding="true"
@ -119,7 +120,8 @@
android:paddingRight="6dp"
android:paddingTop="2dp"
android:text="@string/fab_sub_menu_clear"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/fab_button_card_text"
android:textStyle="bold"
tools:layout_editor_absoluteX="124dp"
tools:layout_editor_absoluteY="447dp" />
@ -148,7 +150,7 @@
android:id="@+id/navigation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@color/trackbook_red"
android:background="@color/bottom_navigation_background"
android:clickable="true"
android:focusable="true"
app:itemIconTint="@drawable/selector_bottom_navigation"

View file

@ -7,6 +7,7 @@
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingStart="@dimen/activity_horizontal_margin"
android:paddingEnd="@dimen/activity_horizontal_margin"
android:textColor="@color/trackbook_grey"
android:textColor="@color/track_management_text"
android:background="@color/track_management_background"
android:ellipsize="marquee"
android:singleLine="true" />

View file

@ -7,7 +7,7 @@
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingStart="@dimen/activity_horizontal_margin"
android:paddingEnd="@dimen/activity_horizontal_margin"
android:textColor="@color/trackbook_grey"
android:background="@color/trackbook_white"
android:textColor="@color/track_management_text"
android:background="@color/track_management_background"
android:ellipsize="marquee"
android:singleLine="true" />

View file

@ -34,7 +34,7 @@
android:layout_width="@dimen/bottom_sheet_width"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:background="@color/trackbook_white"
android:background="@color/statistic_sheet_background_expanded"
app:behavior_hideable="false"
app:behavior_peekHeight="54dp"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior">

View file

@ -5,7 +5,7 @@
android:layout_width="@dimen/bottom_sheet_width"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="@color/trackbook_white">
android:background="@color/track_management_background">
<Spinner
android:id="@+id/track_selector"
@ -31,7 +31,7 @@
app:layout_constraintBottom_toBottomOf="@+id/track_selector"
app:layout_constraintEnd_toStartOf="@+id/delete_button"
app:layout_constraintTop_toTopOf="@+id/track_selector"
app:srcCompat="@drawable/ic_file_download_grey_24dp" />
app:srcCompat="@drawable/ic_file_download_24dp" />
<ImageButton
android:id="@+id/delete_button"
@ -43,6 +43,6 @@
app:layout_constraintBottom_toBottomOf="@+id/export_button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/export_button"
app:srcCompat="@drawable/ic_delete_forever_grey_24dp" />
app:srcCompat="@drawable/ic_delete_forever_24dp" />
</android.support.constraint.ConstraintLayout>

View file

@ -22,6 +22,7 @@
android:text="@string/statistics_sheet_h1_statistics"
android:textAllCaps="true"
android:textAppearance="@android:style/TextAppearance.Medium"
android:textColor="@color/statistic_sheet_text"
android:textStyle="bold"
app:layout_constraintEnd_toStartOf="@+id/statistics_icon"
app:layout_constraintStart_toStartOf="parent"
@ -37,7 +38,7 @@
app:layout_constraintBottom_toBottomOf="@+id/statistics_headline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/statistics_headline"
app:srcCompat="@drawable/ic_info_grey_24dp" />
app:srcCompat="@drawable/ic_info_24dp" />
<TextView
android:id="@+id/statistics_p_distance"
@ -46,7 +47,8 @@
android:layout_marginTop="24dp"
android:contentDescription="@string/descr_statistics_sheet_p_distance"
android:text="@string/statistics_sheet_p_distance"
android:textAppearance="@android:style/TextAppearance.Material.Small"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/statistic_sheet_text"
app:layout_constraintStart_toStartOf="@+id/statistics_headline"
app:layout_constraintTop_toBottomOf="@+id/statistics_headline" />
@ -57,7 +59,8 @@
android:layout_marginStart="16dp"
android:contentDescription="@string/descr_statistics_sheet_p_distance_value"
android:text="@string/statistics_sheet_p_default_data"
android:textAppearance="@android:style/TextAppearance.Material.Medium"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="@color/statistic_sheet_text"
app:layout_constraintBottom_toBottomOf="@+id/statistics_p_distance"
app:layout_constraintStart_toEndOf="@+id/statistics_p_distance"
app:layout_constraintTop_toTopOf="@+id/statistics_p_distance" />
@ -68,6 +71,8 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:contentDescription="@string/descr_statistics_sheet_p_steps"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/statistic_sheet_text"
android:text="@string/statistics_sheet_p_steps"
app:layout_constraintStart_toStartOf="@+id/statistics_p_distance"
app:layout_constraintTop_toBottomOf="@+id/statistics_p_distance" />
@ -79,7 +84,8 @@
android:layout_marginStart="16dp"
android:contentDescription="@string/descr_statistics_sheet_p_steps_value"
android:text="@string/statistics_sheet_p_default_data"
android:textAppearance="@android:style/TextAppearance.Material.Medium"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="@color/statistic_sheet_text"
app:layout_constraintBottom_toBottomOf="@+id/statistics_p_steps"
app:layout_constraintStart_toEndOf="@+id/statistics_p_steps"
app:layout_constraintTop_toTopOf="@+id/statistics_p_steps" />
@ -90,6 +96,8 @@
android:layout_height="0dp"
android:layout_marginTop="16dp"
android:contentDescription="@string/descr_statistics_sheet_p_waypoints"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/statistic_sheet_text"
android:text="@string/statistics_sheet_p_waypoints"
app:layout_constraintStart_toStartOf="@+id/statistics_p_steps"
app:layout_constraintTop_toBottomOf="@+id/statistics_p_steps" />
@ -101,7 +109,8 @@
android:layout_marginStart="16dp"
android:contentDescription="@string/descr_statistics_sheet_p_waypoints_value"
android:text="@string/statistics_sheet_p_default_data"
android:textAppearance="@android:style/TextAppearance.Material.Medium"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="@color/statistic_sheet_text"
app:layout_constraintBottom_toBottomOf="@+id/statistics_p_waypoints"
app:layout_constraintStart_toEndOf="@+id/statistics_p_waypoints"
app:layout_constraintTop_toTopOf="@+id/statistics_p_waypoints" />
@ -112,6 +121,8 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:contentDescription="@string/descr_statistics_sheet_p_duration"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/statistic_sheet_text"
android:text="@string/statistics_sheet_p_duration"
app:layout_constraintStart_toStartOf="@+id/statistics_p_waypoints"
app:layout_constraintTop_toBottomOf="@+id/statistics_p_waypoints" />
@ -123,7 +134,8 @@
android:layout_marginStart="16dp"
android:contentDescription="@string/descr_statistics_sheet_p_duration_value"
android:text="@string/statistics_sheet_p_default_data"
android:textAppearance="@android:style/TextAppearance.Material.Medium"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="@color/statistic_sheet_text"
app:layout_constraintBottom_toBottomOf="@+id/statistics_p_duration"
app:layout_constraintStart_toEndOf="@+id/statistics_p_duration"
app:layout_constraintTop_toTopOf="@+id/statistics_p_duration" />
@ -134,6 +146,8 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:contentDescription="@string/descr_statistics_sheet_p_recording_start"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/statistic_sheet_text"
android:text="@string/statistics_sheet_p_recording_start"
app:layout_constraintStart_toStartOf="@+id/statistics_p_duration"
app:layout_constraintTop_toBottomOf="@+id/statistics_p_duration" />
@ -145,7 +159,8 @@
android:layout_marginStart="16dp"
android:contentDescription="@string/descr_statistics_sheet_p_recording_start_value"
android:text="@string/statistics_sheet_p_default_data"
android:textAppearance="@android:style/TextAppearance.Material.Medium"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="@color/statistic_sheet_text"
app:layout_constraintBottom_toBottomOf="@+id/statistics_p_recording_start"
app:layout_constraintStart_toEndOf="@+id/statistics_p_recording_start"
app:layout_constraintTop_toTopOf="@+id/statistics_p_recording_start" />
@ -156,6 +171,8 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:contentDescription="@string/descr_statistics_sheet_p_recording_end"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/statistic_sheet_text"
android:text="@string/statistics_sheet_p_recording_stop"
app:layout_constraintStart_toStartOf="@+id/statistics_p_recording_start"
app:layout_constraintTop_toBottomOf="@+id/statistics_p_recording_start" />
@ -167,7 +184,8 @@
android:layout_marginStart="16dp"
android:contentDescription="@string/descr_statistics_sheet_p_recording_end_value"
android:text="@string/statistics_sheet_p_default_data"
android:textAppearance="@android:style/TextAppearance.Material.Medium"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="@color/statistic_sheet_text"
app:layout_constraintBottom_toBottomOf="@+id/statistics_p_recording_stop"
app:layout_constraintStart_toEndOf="@+id/statistics_p_recording_stop"
app:layout_constraintTop_toTopOf="@+id/statistics_p_recording_stop" />
@ -178,6 +196,8 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:contentDescription="@string/descr_statistics_sheet_p_positive_elevation"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/statistic_sheet_text"
android:text="@string/statistics_sheet_p_positive_elevation"
app:layout_constraintStart_toStartOf="@+id/statistics_p_recording_stop"
app:layout_constraintTop_toBottomOf="@+id/statistics_p_recording_stop" />
@ -187,8 +207,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="@color/statistic_sheet_text"
android:text="@string/statistics_sheet_p_default_data"
android:textAppearance="@android:style/TextAppearance.Material.Medium"
app:layout_constraintBottom_toBottomOf="@+id/statistics_p_positive_elevation"
app:layout_constraintStart_toEndOf="@+id/statistics_p_positive_elevation"
app:layout_constraintTop_toTopOf="@+id/statistics_p_positive_elevation" />
@ -199,6 +220,8 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:contentDescription="@string/descr_statistics_sheet_p_negative_elevation"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/statistic_sheet_text"
android:text="@string/statistics_sheet_p_negative_elevation"
app:layout_constraintStart_toStartOf="@+id/statistics_p_positive_elevation"
app:layout_constraintTop_toBottomOf="@+id/statistics_p_positive_elevation" />
@ -208,8 +231,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="@color/statistic_sheet_text"
android:text="@string/statistics_sheet_p_default_data"
android:textAppearance="@android:style/TextAppearance.Material.Medium"
app:layout_constraintBottom_toBottomOf="@+id/statistics_p_negative_elevation"
app:layout_constraintStart_toEndOf="@+id/statistics_p_negative_elevation"
app:layout_constraintTop_toTopOf="@+id/statistics_p_negative_elevation" />
@ -220,6 +244,8 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:contentDescription="@string/descr_statistics_sheet_p_max_altitude"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/statistic_sheet_text"
android:text="@string/statistics_sheet_p_max_altitude"
app:layout_constraintStart_toStartOf="@+id/statistics_p_negative_elevation"
app:layout_constraintTop_toBottomOf="@+id/statistics_p_negative_elevation" />
@ -229,8 +255,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="@color/statistic_sheet_text"
android:text="@string/statistics_sheet_p_default_data"
android:textAppearance="@android:style/TextAppearance.Material.Medium"
app:layout_constraintBottom_toBottomOf="@+id/statistics_p_max_altitude"
app:layout_constraintStart_toEndOf="@+id/statistics_p_max_altitude"
app:layout_constraintTop_toTopOf="@+id/statistics_p_max_altitude" />
@ -242,6 +269,8 @@
android:layout_marginBottom="16dp"
android:layout_marginTop="16dp"
android:contentDescription="@string/descr_statistics_sheet_p_min_altitude"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/statistic_sheet_text"
android:text="@string/statistics_sheet_p_min_altitude"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/statistics_p_max_altitude"
@ -252,8 +281,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:textColor="@color/statistic_sheet_text"
android:text="@string/statistics_sheet_p_default_data"
android:textAppearance="@android:style/TextAppearance.Material.Medium"
app:layout_constraintBottom_toBottomOf="@+id/statistics_p_min_altitude"
app:layout_constraintStart_toEndOf="@+id/statistics_p_min_altitude"
app:layout_constraintTop_toTopOf="@+id/statistics_p_min_altitude" />

View file

@ -53,6 +53,7 @@
<string name="toast_message_export_success">GPX-Export erfolgreich:</string>
<string name="toast_message_export_fail">GPX-Export fehlgeschlagen:</string>
<string name="toast_message_elevation_info">Hinweis: Die Genauogkeit der Höhenmeter-Werte ist geräteabhängig. Gemessen werden die Steigungen und Gefälle der Gesamtstrecke.</string>
<string name="toastmessage_long_press_night_mode_switch">Schalter für Nachtmodus (Längeres Drücken erkannt)</string>
<!-- map markers -->
<string name="marker_description_source">Quelle</string>

View file

@ -53,6 +53,7 @@
<string name="toast_message_export_success">GPX export successful:</string>
<string name="toast_message_export_fail">GPX export failed:</string>
<string name="toast_message_elevation_info">Hint: The accuracy of elevation data depends on your device. The uphill and downhill elevation of the whole route is measured.</string>
<string name="toastmessage_long_press_night_mode_switch">Night mode switch (long press detected)</string>
<!-- map markers -->
<string name="marker_description_source">Source</string>

View file

@ -53,6 +53,7 @@
<string name="toast_message_export_success">L\'esportazione GPX è riuscita:</string>
<string name="toast_message_export_fail">L\'esportazione GPX non è riuscita:</string>
<string name="toast_message_elevation_info">Hint: The accuracy of elevation data depends on your device. The uphill and downhill elevation of the whole route is measured.</string>
<string name="toastmessage_long_press_night_mode_switch">Night mode switch (long press detected)</string>
<!-- map markers -->
<string name="marker_description_source">Fonte</string>

View file

@ -53,6 +53,7 @@
<string name="toast_message_export_success">GPX のエクスポートが完了しました:</string>
<string name="toast_message_export_fail">GPX のエクスポートに失敗しました:</string>
<string name="toast_message_elevation_info">ヒント: 標高データの精度は、お使いのデバイスによって異なります。ルート全体の上り坂と下り坂の標高を測定します。</string>
<string name="toastmessage_long_press_night_mode_switch">Night mode switch (long press detected)</string>
<!-- map markers -->
<string name="marker_description_source">ソース</string>

View file

@ -53,6 +53,7 @@
<string name="toast_message_export_success">GPX-eksportering vellykket:</string>
<string name="toast_message_export_fail">GPX-eksportering mislyktes:</string>
<string name="toast_message_elevation_info">Hint: Høydedataens nøyaktighet avhenger av enheten din. Opp og ned-stigningen for hele ruten måles.</string>
<string name="toastmessage_long_press_night_mode_switch">Night mode switch (long press detected)</string>
<!-- map markers -->
<string name="marker_description_source">Kilde</string>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Base application theme. -->
<style name="TrackbookAppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Set AppCompats colors -->
<item name="colorPrimary">@color/trackbook_red</item>
<item name="colorPrimaryDark">@color/trackbook_white</item>
<item name="colorAccent">@color/trackbook_blue</item>
<!-- Don't show white status bar -->
<item name="android:windowLightStatusBar">false</item>
<item name="android:statusBarColor">@color/status_bar_background</item>
</style>
<!-- Drop down theme -->
<style name="TrackbookAppTheme.PopupOverlay" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="android:colorControlNormal">@color/track_management_text</item>
<item name="android:popupBackground">@color/track_management_background</item>
</style>
</resources>

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- DAY THEME COLORS -->
<color name="status_bar_background">@color/trackbook_black</color>
<color name="bottom_navigation_background">@color/trackbook_black</color>
<color name="fab_button_card_text">@color/trackbook_white</color>
<color name="fab_button_card_background">@color/trackbook_grey_dark</color>
<color name="location_buttom_icon">@color/trackbook_white</color>
<color name="location_buttom_background">@color/trackbook_grey_dark</color>
<color name="track_management_text">@color/trackbook_white</color>
<color name="track_management_icons">@color/trackbook_white</color>
<color name="track_management_background">@color/trackbook_black</color>
<color name="statistic_sheet_text">@color/trackbook_white</color>
<color name="statistic_sheet_icons">@color/trackbook_white</color>
<color name="statistic_sheet_background_expanded">@color/trackbook_black_85percent</color>
<color name="statistic_sheet_background_collapsed">@color/trackbook_black</color>
</resources>

View file

@ -53,6 +53,7 @@
<string name="toast_message_export_success">GPX export successful:</string>
<string name="toast_message_export_fail">GPX export failed:</string>
<string name="toast_message_elevation_info">Hint: The accuracy of elevation data depends on your device. The uphill and downhill elevation of the whole route is measured.</string>
<string name="toastmessage_long_press_night_mode_switch">Night mode switch (long press detected)</string>
<!-- map markers -->
<string name="marker_description_source">Bron</string>

View file

@ -2,28 +2,23 @@
<resources>
<!-- Base application theme. -->
<style name="TrackbookAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<style name="TrackbookAppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Set AppCompats colors -->
<item name="colorPrimary">@color/trackbook_red</item>
<item name="colorPrimaryDark">@color/trackbook_white</item>
<item name="colorPrimaryDark">@color/trackbook_red_dark</item>
<item name="colorAccent">@color/trackbook_blue</item>
<!-- Show white status bar -->
<item name="android:windowLightStatusBar">true</item>
<item name="android:statusBarColor">@color/status_bar_background</item>
</style>
<!--<style name="TrackbookAppTheme.NoActionBar">-->
<!--<item name="windowActionBar">false</item>-->
<!--<item name="windowNoTitle">true</item>-->
<!--</style>-->
<!--<style name="TrackbookAppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />-->
<!-- Drop down theme -->
<style name="TrackbookAppTheme.PopupOverlay" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:colorControlNormal">@color/trackbook_grey</item>
<style name="TrackbookAppTheme.PopupOverlay" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="android:colorControlNormal">@color/track_management_text</item>
</style>
</resources>

View file

@ -1,6 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- DAY THEME COLORS -->
<color name="status_bar_background">@color/trackbook_white</color>
<color name="bottom_navigation_background">@color/trackbook_red</color>
<color name="fab_button_card_text">@color/trackbook_grey_dark</color>
<color name="fab_button_card_background">@color/trackbook_white</color>
<color name="location_buttom_icon">@color/trackbook_grey</color>
<color name="location_buttom_background">@color/trackbook_white</color>
<color name="track_management_text">@color/trackbook_grey_dark</color>
<color name="track_management_icons">@color/trackbook_grey_dark</color>
<color name="track_management_background">@color/trackbook_white</color>
<color name="statistic_sheet_text">@color/trackbook_grey_dark</color>
<color name="statistic_sheet_icons">@color/trackbook_grey_dark</color>
<color name="statistic_sheet_background_expanded">@color/trackbook_white_85percent</color>
<color name="statistic_sheet_background_collapsed">@color/trackbook_white</color>
<!-- COLOR NAMES -->
<color name="trackbook_red">#FFD93025</color>
<color name="trackbook_red_dark">#FFB31412</color>
<color name="trackbook_red_85percent">#D9D93025</color>
@ -16,6 +37,7 @@
<color name="trackbook_white">#FFFFFFFF</color>
<color name="trackbook_white_85percent">#D9FFFFFF</color>
<color name="trackbook_black">#FF000000</color>
<color name="trackbook_black_85percent">#D9000000</color>
<color name="trackbook_grey_lighter">#FFD2D6DA</color>
<color name="trackbook_grey_light">#FFBDC1C6</color>

View file

@ -53,6 +53,7 @@
<string name="toast_message_export_success">GPX export successful:</string>
<string name="toast_message_export_fail">GPX export failed:</string>
<string name="toast_message_elevation_info">Hint: The accuracy of elevation data depends on your device. The uphill and downhill elevation of the whole route is measured.</string>
<string name="toastmessage_long_press_night_mode_switch">Night mode switch (long press detected)</string>
<!-- map markers -->
<string name="marker_description_source">Source</string>

View file

@ -2,25 +2,18 @@
<resources>
<!-- Base application theme. -->
<style name="TrackbookAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<style name="TrackbookAppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Set AppCompats colors -->
<item name="colorPrimary">@color/trackbook_red</item>
<item name="colorPrimaryDark">@color/trackbook_grey_darker</item>
<item name="colorPrimaryDark">@color/trackbook_grey_dark</item>
<item name="colorAccent">@color/trackbook_blue</item>
</style>
<!--<style name="TrackbookAppTheme.NoActionBar">-->
<!--<item name="windowActionBar">false</item>-->
<!--<item name="windowNoTitle">true</item>-->
<!--</style>-->
<!--<style name="TrackbookAppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />-->
<!-- Drop down theme -->
<style name="TrackbookAppTheme.PopupOverlay" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:colorControlNormal">@color/trackbook_grey</item>
<style name="TrackbookAppTheme.PopupOverlay" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="android:colorControlNormal">@color/track_management_text</item>
</style>
</resources>