summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Wildemann <metalstrolch@users.noreply.github.com>2019-08-16 21:32:39 +0200
committerGitHub <noreply@github.com>2019-08-16 21:32:39 +0200
commit352b84220834ea937f4bd8b64ab69ed6d1639bda (patch)
tree36334433cfe861b973f9ea8435cd8e6a8c71585e
parent16d118f35262304553eba6978994426c9b18c6a5 (diff)
parentc2f9838f07a52cc64cb05e9cf95bb378261946d9 (diff)
downloadnavit-352b84220834ea937f4bd8b64ab69ed6d1639bda.tar.gz
Merge branch 'trunk' into multipolygon
-rw-r--r--.circleci/config.yml11
-rw-r--r--build.gradle2
-rw-r--r--gradle/wrapper/gradle-wrapper.properties2
-rw-r--r--navit/CMakeLists.txt11
-rw-r--r--navit/android/build.gradle14
-rw-r--r--navit/android/src/org/navitproject/navit/Navit.java2
-rw-r--r--navit/main.c4
-rw-r--r--navit/main.h1
-rw-r--r--navit/navit.c22
-rw-r--r--navit/start_real.c1
-rwxr-xr-xscripts/build_android.sh9
11 files changed, 52 insertions, 27 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 823ca54d0..273406c54 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -68,7 +68,7 @@ jobs:
build_android:
working_directory: ~/code
docker:
- - image: circleci/android:api-28-ndk
+ - image: circleci/android:api-29
environment:
JVM_OPTS: -Xmx3200m
GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"'
@@ -78,14 +78,19 @@ jobs:
name: Id
command: cat /etc/*release
- run:
- name: Install cmake gettext libsaxonb-java librsvg2-bin pkg-config libprotobuf-c-dev protobuf-c-compiler
+ name: Install cmake gettext libsaxonb-java librsvg2-bin pkg-config rename
command: |
sudo apt-get update
- sudo apt-get install -y cmake gettext libsaxonb-java librsvg2-bin pkg-config libprotobuf-c-dev protobuf-c-compiler
+ sudo apt-get install -y cmake gettext libsaxonb-java librsvg2-bin pkg-config rename
- run:
name: Install Android SDK components
command: sdkmanager "cmake;3.6.4111459"
- run:
+ name: Install ndk
+ command: |
+ echo y | sdkmanager --licenses
+ echo y | sdkmanager ndk-bundle
+ - run:
name: Build for Android
command: bash scripts/build_android.sh
- run:
diff --git a/build.gradle b/build.gradle
index 5d598ab8b..8fe92d2f1 100644
--- a/build.gradle
+++ b/build.gradle
@@ -10,7 +10,7 @@ buildscript {
}
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.1.2'
+ classpath 'com.android.tools.build:gradle:3.4.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 73bb13d55..25f587d12 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.6-all.zip
diff --git a/navit/CMakeLists.txt b/navit/CMakeLists.txt
index 0c4d4243d..1234bd0cb 100644
--- a/navit/CMakeLists.txt
+++ b/navit/CMakeLists.txt
@@ -95,13 +95,12 @@ if(NOT ANDROID)
endif()
endif()
-#if (SHARED_LIBNAVIT)
-# add_library (${NAVIT_LIBNAME} SHARED ${NAVIT_SRC} )
-#else(SHARED_LIBNAVIT)
-# add_library (${NAVIT_LIBNAME} STATIC ${NAVIT_SRC} )
-#endif(SHARED_LIBNAVIT)
+if (SHARED_LIBNAVIT)
+ add_library (${NAVIT_LIBNAME} SHARED ${NAVIT_SRC} )
+else(SHARED_LIBNAVIT)
+ add_library (${NAVIT_LIBNAME} STATIC ${NAVIT_SRC} )
+endif(SHARED_LIBNAVIT)
-add_library (${NAVIT_LIBNAME} ${NAVIT_SRC} )
if(NOT MSVC)
SET(NAVIT_LIBS ${NAVIT_LIBS} m)
endif(NOT MSVC)
diff --git a/navit/android/build.gradle b/navit/android/build.gradle
index 1385336bf..faf5acc03 100644
--- a/navit/android/build.gradle
+++ b/navit/android/build.gradle
@@ -3,17 +3,17 @@ apply from: "$project.rootDir/gradle/scripts/git-scm-version.gradle"
apply plugin: 'checkstyle'
android {
- compileSdkVersion 27
- buildToolsVersion "27.0.3"
+ compileSdkVersion 28
+ buildToolsVersion "29.0.1"
defaultConfig {
applicationId "org.navitproject.navit"
minSdkVersion 9
- targetSdkVersion 27
+ targetSdkVersion 28
versionCode gitVersionCode
versionName gitVersionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
- ndk { // need for now for 'x86_64' and , 'armeabi' and , 'arm64-v8a'
- abiFilters 'x86', 'armeabi-v7a'
+ ndk { // need for now for 'x86_64' and 'armeabi'
+ abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a'
}
externalNativeBuild {
cmake {
@@ -61,10 +61,10 @@ android {
xml.enabled = true
html.enabled = true
xml {
- destination "checkstyle/checkstyleMain.xml"
+ destination file("checkstyle/checkstyleMain.xml")
}
html {
- destination "checkstyle/checkstyleMain.html"
+ destination file("checkstyle/checkstyleMain.html")
}
}
diff --git a/navit/android/src/org/navitproject/navit/Navit.java b/navit/android/src/org/navitproject/navit/Navit.java
index bc2af1632..a2c1a4ff1 100644
--- a/navit/android/src/org/navitproject/navit/Navit.java
+++ b/navit/android/src/org/navitproject/navit/Navit.java
@@ -444,7 +444,7 @@ public class Navit extends Activity {
ActivityResults = new NavitActivityResult[16];
setVolumeControlStream(AudioManager.STREAM_MUSIC);
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
- wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE,"NavitDoNotDimScreen");
+ wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE,"navit:DoNotDimScreen");
if (!extractRes(langc, NAVIT_DATA_DIR + "/locale/" + langc + "/LC_MESSAGES/navit.mo")) {
Log.e(TAG, "Failed to extract language resource " + langc);
diff --git a/navit/main.c b/navit/main.c
index 986947f0d..f4a59970d 100644
--- a/navit/main.c
+++ b/navit/main.c
@@ -328,10 +328,6 @@ static void win_set_nls(void) {
}
#endif
-void main_update_default_layout(struct navit *navit) {
- navit_update_current_layout(navit, NULL);
-}
-
void main_init(const char *program) {
char *s;
#ifdef _UNICODE /* currently for wince */
diff --git a/navit/main.h b/navit/main.h
index 910d56200..47f275c09 100644
--- a/navit/main.h
+++ b/navit/main.h
@@ -35,7 +35,6 @@ void main_add_navit(struct navit *nav);
void main_remove_navit(struct navit *nav);
int main_add_attr(struct attr *attr);
int main_remove_attr(struct attr *attr);
-void main_update_default_layout(struct navit *navit);
void main_init(const char *program);
void main_init_nls(void);
int main(int argc, char **argv);
diff --git a/navit/navit.c b/navit/navit.c
index 1d1b8e664..ae39aca59 100644
--- a/navit/navit.c
+++ b/navit/navit.c
@@ -2551,6 +2551,7 @@ static int navit_set_attr_do(struct navit *this_, struct attr *attr, int init) {
case attr_layout:
if(!attr->u.layout)
return 0;
+ dbg(lvl_debug,"setting attr_layout to %s", attr->u.layout->name);
if(this_->layout_current!=attr->u.layout) {
navit_update_current_layout(this_, attr->u.layout);
graphics_font_destroy_all(this_->gra);
@@ -2563,6 +2564,7 @@ static int navit_set_attr_do(struct navit *this_, struct attr *attr, int init) {
case attr_layout_name:
if(!attr->u.str)
return 0;
+ dbg(lvl_debug,"setting attr_layout_name to %s", attr->u.str);
l=this_->layouts;
while (l) {
lay=l->data;
@@ -3000,9 +3002,27 @@ static int navit_add_log(struct navit *this_, struct log *log) {
static int navit_add_layout(struct navit *this_, struct layout *layout) {
struct attr active;
+ int is_default=0;
+ int is_active=0;
this_->layouts = g_list_append(this_->layouts, layout);
+ /** check if we want to immediately activate this layout.
+ * Unfortunately we have concurring conditions about when to activate
+ * a layout:
+ * - A layout could bear the "active" property
+ * - A layout's name could match this_->default_layout_name
+ * This cannot be fully resolved, as we cannot predict the future, so
+ * lets set the last parsed layout active, which either matches default_layout_name or
+ * bears the "active" tag, or is the first layout ever parsed.
+ */
+ if((layout->name != NULL) && (this_->default_layout_name != NULL)) {
+ if (strcmp(layout->name, this_->default_layout_name) == 0)
+ is_default = 1;
+ }
layout_get_attr(layout, attr_active, &active, NULL);
- if(active.u.num || !this_->layout_current) {
+ if(active.u.num)
+ is_active = 1;
+ dbg(lvl_debug, "add layout '%s' is_default %d, is_active %d", layout->name, is_default, is_active);
+ if(is_default || is_active || !this_->layout_current) {
this_->layout_current=layout;
return 1;
}
diff --git a/navit/start_real.c b/navit/start_real.c
index ad990d874..a29d558bf 100644
--- a/navit/start_real.c
+++ b/navit/start_real.c
@@ -207,7 +207,6 @@ int main_real(int argc, char * const* argv) {
dbg(lvl_error, "%s", _("Internal initialization failed, exiting. Check previous error messages."));
exit(5);
}
- main_update_default_layout(navit.u.navit);
conf.type=attr_config;
conf.u.config=config;
if (startup_file) {
diff --git a/scripts/build_android.sh b/scripts/build_android.sh
index 4b915f35e..3f2738451 100755
--- a/scripts/build_android.sh
+++ b/scripts/build_android.sh
@@ -22,8 +22,13 @@ export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin
export JVM_OPTS="-Xmx3200m"
export GRADLE_OPTS='-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"'
+# processing xml is messed up a bit after the original introduction of gradle
+# so a useless install of ant here even if using gradle/ninja
+
+sudo apt-get install -y ant
+
echo Run CMake
-cmake ./ -Dvehicle/gpsd_dbus:BOOL=FALSE -Dsvg2png_scaling:STRING=-1,24,32,48,64,96,128,192,256 -Dsvg2png_scaling_nav:STRING=-1,24,32,48,64,96,128,192,256 -Dsvg2png_scaling_flag:STRING=-1,24,32,64,96 -DUSE_PLUGINS=n -DBUILD_MAPTOOL=n -DXSL_PROCESSING=y -DXSLTS=android -DANDROID=y -DSAMPLE_MAP=n || exit 1
+cmake ./ -Dvehicle/gpsd_dbus:BOOL=FALSE -Dsvg2png_scaling:STRING=-1,24,32,48,64,96,128,192,256 -Dsvg2png_scaling_nav:STRING=-1,24,32,48,64,96,128,192,256 -Dsvg2png_scaling_flag:STRING=-1,24,32,64,96 -DXSL_PROCESSING=y -DXSLTS=android -DANDROID=y || exit 1
echo Process icons
pushd navit/icons
@@ -45,6 +50,8 @@ rename 'y/A-Z/a-z/' ./*.mo
popd
popd
+
+
echo Process xml config files
make navit_config_xml || exit 96
pushd navit