Commit f6d67326 authored by Matyáš Latner's avatar Matyáš Latner

Merge branch 'V3.2.1' into 'devel'

V3.2.1



See merge request !403
parents 6e8a75aa 6068c5d7
......@@ -30,6 +30,7 @@ android/gen/
*.iml
out/
com_crashlytics_export_strings.xml
captures
## Eclipse
.classpath
......
......@@ -60,8 +60,8 @@ game_averagescore_error=Durchschnittliche Fehlerzahl:
game_averagescore_duration=Durchschnittliche Spieldauer:
game_quit_question=Möchtest du wirklich das Spiel beenden?
sound_muted_question=[DE]Pro pokračování je zapotřebí mít zapnutý zvuk. Přeješ si nyní zvuk zapnout a pokračovat?[DE]
sound_muted_game_question=[DE]Pro pokračování ve hře je zapotřebí mít zapnutý zvuk. Přeješ si nyní zvuk zapnout a pokračovat?[DE]
sound_muted_question=Um fortzufahren ist es notwendig, dass der Ton eingeschalten ist. Möchtest du jetzt den Ton einschalten und fortfahren?
sound_muted_game_question=Um das Spiel fortzusetzen ist es notwendig, dass der Ton eingeschalten ist. Möchtest du jetzt den Ton einschalten und fortsetzen?
game_robbery_title=Einbrecher
game_robbery_description=Training des Arbeitsgedächtnisses
......@@ -185,5 +185,5 @@ user_rank_9=Kleiner Kommissar
user_rank_10=Besserwisser
user_rank_11=Oberrat
sync_request_dialog_text=Trage deine Ausweisnummer ein:
sync_request_dialog_text=Trage deine Ausweisnummer ein\:
sync_request_button=Account synchronisieren
......@@ -6,24 +6,24 @@ mouse_0_1=Kde nic, tu nic. Medaile, ani salám.\r\nRadši mazej do práce, chyta
mouse_0_2=Tak co tu ještě okouníš?
mouse_0_3=Tobě přijde divný, že myš mluví?
mouse_0_4=To budou asi přeludy z toho prázdna tady.
mouse_4_1=Žádný bohatství tu ještě nemáš, ale aspoň něco.
mouse_5_1=Prostě pár trofejí... údivem z toho teda nepadám.
mouse_6_1=Bejt tebou, jdu lovit další, ať se máš čím chlubit.
mouse_4_1=Žádný bohatství tu ještě nemáš,\r\nale aspoň něco.
mouse_5_1=Prostě pár trofejí...\r\núdivem z toho teda nepadám.
mouse_6_1=Bejt tebou, jdu lovit další,\r\nať se máš čím chlubit.
mouse_9_1=Je vidět, že jsi na sobě pracoval, ale dobří\r\ndetektivové mají trofejí ještě víc.
mouse_13_1=Tak se pokochej a zase do práce.
mouse_14_1=Tak ještě chvili pokoukat, pohladit,\r\npřeleštit, ale neusínej na vavřínech.
mouse_16_1=Možná, že to dotáhneš daleko.
mouse_17_1=Ty mě překvapuješ! Vypadá to, že to myslíš vážně.
mouse_19_1=Je vidět, že jsi na svou sbírku trofejí pyšný. Taky už máš na co.
mouse_17_1=Ty mě překvapuješ! Vypadá to,\r\nže to myslíš vážně.
mouse_19_1=Je vidět, že jsi na svou sbírku trofejí pyšný.\r\nTaky už máš na co.
mouse_21_1=Možná, že o tobě ještě uslyšíme.
mouse_21_2=Možná taky ne, to záleží na tom,\r\njak na sobě ještě zapracuješ.
mouse_21_3=Když tu budeš ještě okounět, tak o tobě\r\nspíš už neuslyšíme.
mouse_25_1=Zas tolik se nenaparuj, ještě ti jich pár chybí.
mouse_28_1=Že zbylé trofeje za chvíli posbíráš? To říkal každý detektiv.
mouse_29_1=Pro mě za mě, klidně si je prohlížej, ale ty zbylé trofeje se samy neposbírají.
mouse_25_1=Zas tolik se nenaparuj,\r\nještě ti jich pár chybí.
mouse_28_1=Že zbylé trofeje za chvíli posbíráš?\r\nTo říkal každý detektiv.
mouse_29_1=Pro mě za mě, klidně si je prohlížej,\r\nale ty zbylé trofeje se samy neposbírají.
mouse_30_1=Ó jistě, detektiv tvého formátu má na všechno dost času.
mouse_31_1=To vypadá, že je tu\r\nněkdo hodně ambiciózní.
mouse_32_1=To není samo sebou sesbírat skoro všechny trofeje.
mouse_31_1=To vypadá, že je tu někdo hodně ambiciózní.
mouse_32_1=To není samo sebou sesbírat skoro\r\nvšechny trofeje.
mouse_33_1=Vsadím svůj ocas, že ty zbylé už neposbíráš.
mouse_34_1=Tolik trofejí. Úctyhodný výkon.
mouse_36_1=Tak to tu ještě nebylo!
......
......@@ -6,31 +6,31 @@ mouse_0_1=Von nichts kommt nichts. Hier ist noch keine Medaille.\r\nMach dich li
mouse_0_2=Na was stehst du hier noch rum?
mouse_0_3=Du wunderst dich, dass eine Maus sprechen kann?
mouse_0_4=Das ist wohl eine Fata Morgana von der Leere hier.
mouse_4_1=Du hast hier noch keinen Reichtum, aber wenigstens etwas.
mouse_5_1=Nur ein paar Trophäen ... also vor Staunen fall ich noch nicht um.
mouse_6_1=An deiner Stelle würde ich noch weitere ergattern, dann kannst du damit prahlen.
mouse_9_1=Man sieht, dass du an dir gearbeitet hast, aber gute\r\nDetektive haben noch mehr Trophäen.
mouse_4_1=Du hast hier noch keinen Reichtum,\r\naber wenigstens etwas.
mouse_5_1=Nur ein paar Trophäen...\r\nalso vor Staunen fall ich noch nicht um.
mouse_6_1=An deiner Stelle würde ich noch weitere ergattern,\r\ndann kannst du damit prahlen.
mouse_9_1=Man sieht, dass du an dir gearbeitet hast,\r\naber gute Detektive haben noch mehr Trophäen.
mouse_13_1=Dann schau dich kurz um und wieder an die Arbeit.
mouse_14_1=Noch ein wenig schauen, streicheln,\r\npolieren, aber ruh dich nicht auf deinen Lorbeeren aus.
mouse_14_1=Noch ein wenig schauen, streicheln, polieren,\r\naber ruh dich nicht auf deinen Lorbeeren aus.
mouse_16_1=Vielleicht bringst du es weit.
mouse_17_1=Du überraschst mich! Es sieht aus, als würdest du es ernst meinen.
mouse_19_1=Man sieht, dass du auf deine Trophäensammlung stolz bist. Du hast auch allen Grund.
mouse_17_1=Du überraschst mich! Es sieht aus,\r\nals würdest du es ernst meinen.
mouse_19_1=Man sieht, dass du auf deine Trophäensammlung\r\nstolz bist. Du hast auch allen Grund.
mouse_21_1=Vielleicht hören wir noch etwas von dir.
mouse_21_2=Vielleicht auch nicht, das hängt davon ab,\r\nwie sehr du noch an dir arbeitest.
mouse_21_3=Wenn du dir hier nur die Trophäen anschaust, dann wird man von dir\r\neher nichts mehr hören.
mouse_25_1=Gib aber nicht so viel damit an, dir fehlen noch ein paar Trophäen.
mouse_28_1=Die fehlenden Trophäen sammelst du\r\nsicher in einer Weile, richtig? Das hat jeder Detektiv/jede Detektivin gesagt.
mouse_21_3=Wenn du dir hier nur die Trophäen anschaust,\r\ndann wird man von dir\r\neher nichts mehr hören.
mouse_25_1=Gib aber nicht so viel damit an,\r\ndir fehlen noch ein paar Trophäen.
mouse_28_1=Die fehlenden Trophäen sammelst\r\ndu sicher in einer Weile, richtig?\r\nDas hat jeder Detektiv/jede Detektivin gesagt.
mouse_29_1=Meinetwegen, schau sie dir ruhig\r\nan, aber die fehlenden\r\nTrophäen sammeln sich nicht von allein.
mouse_30_1=Na sicher, ein Detektiv/eine Detektivin von deinem Format hat für alles genügend Zeit.
mouse_30_1=Na sicher, ein Detektiv/eine Detektivin\r\nvon deinem Format hat für alles genügend Zeit.
mouse_31_1=Es sieht so aus, dass hier\r\njemand große Ambitionen hat.
mouse_32_1=Das geht nicht von allein, fast alle Trophäen zu sammeln.
mouse_33_1=Ich verwette meine Schneidezähne, dass du die übrigen nicht mehr einsammelst.
mouse_32_1=Das geht nicht von allein,\r\nfast alle Trophäen zu sammeln.
mouse_33_1=Ich verwette meine Schneidezähne,\r\ndass du die übrigen nicht mehr einsammelst.
mouse_34_1=So viele Trophäen. Respektable Leistung.
mouse_36_1=Na das hat es hier noch nicht gegeben!
mouse_36_2=Alle Ehre, das habe ich noch nicht gesehen.\r\nUnd ich wohne hier schon ganz schön lange.
mouse_36_3=Davon werden sich noch meine Enkel erzählen.
mouse_rankup=Herzlichen Glückwunsch zur Beförderung! Mach weiter so!
mouse_rankup=Herzlichen Glückwunsch zur Beförderung!\r\nMach weiter so!
# <!-- Skrin s hodnostmi -->
badge_cabinet_list=Dienstgradliste
......
......@@ -2,32 +2,32 @@ count_sum=Celkom
mouse_bubble=Čože to myška povedala?
# <!-- Myška -->
mouse_0_1=Kde nič, tu nič. Ani medaile, ani saláma. Radšej utekaj do práce chytať lupičov.
mouse_0_1=Kde nič, tu nič. Ani medaile, ani saláma.\r\nRadšej utekaj do práce chytať lupičov.
mouse_0_2=Tak čo tu ešte okúňaš?
mouse_0_3=Tebe príde divné, že myš hovorí?
mouse_0_4=To budú asi preľudy z tohto prázdna.
mouse_4_1=Žiadne bohatstvo tu ešte nemáš, ale aspoň niečo.
mouse_5_1=Proste pár trofejí...údivom z toho teda nepadám.
mouse_6_1=Na tvojom mieste idem loviť ďalšie, nech sa máš čím pochváliť.
mouse_9_1=Je vidieť, že si na sebe pracoval, ale dobrí detektívovia majú trofejí ešte viac.
mouse_4_1=Žiadne bohatstvo tu ešte nemáš,\r\nale aspoň niečo.
mouse_5_1=Proste pár trofejí...\r\núdivom z toho teda nepadám.
mouse_6_1=Na tvojom mieste idem loviť ďalšie,\r\nnech sa máš čím pochváliť.
mouse_9_1=Je vidieť, že si na sebe pracoval,\r\nale dobrí detektívovia majú trofejí ešte viac.
mouse_13_1=Tak sa pokochaj a zase do práce.
mouse_14_1=Tak ešte chvíľu popozerať, pohladiť, preleštiť, ale nespí na vavrínoch.
mouse_14_1=Tak ešte chvíľu popozerať, pohladiť,\r\npreleštiť, ale nespí na vavrínoch.
mouse_16_1=Možno to ešte dotiahneš ďaleko.
mouse_17_1=Ty ma prekvapuješ! Vyzerá to tak, že to myslíš vážne.
mouse_19_1=Je vidieť, že si na svoju zbierku trofejí pyšný. Tiež už máš na čo.
mouse_17_1=Ty ma prekvapuješ!\r\nVyzerá to tak, že to myslíš vážne.
mouse_19_1=Je vidieť, že si na svoju zbierku trofejí pyšný.\r\nTiež už máš na čo.
mouse_21_1=Možno o tebe budeme ešte počuť.
mouse_21_2=Možno tiež nie, to záleží na tom, ako na sebe ešte zapracuješ.
mouse_21_3=Keď tu budeš ešte okúňať, tak o tebe skôr už nebudeme počuť.
mouse_25_1=Zas toľko sa nenaparuj, ešte ti pár Trofejí chýba.
mouse_28_1=Že zvyšné trofeje za chvíľu pozbieraš? To hovoril každý detektív.
mouse_29_1=Pre mňa za mňa, kľudne si ich prezeraj, ale tie zvyšné trofeje sa samé nepozbierajú.
mouse_30_1=Ó určite, detektív tvojho formátu má na všetko dosť času.
mouse_31_1=Vyzerá to tak, že je tu niekto veľmi ambiciózny.
mouse_32_1=To nieje len tak, vyzbierať skoro všetky trofeje.
mouse_21_2=Možno tiež nie, to záleží na tom,\r\nako na sebe ešte zapracuješ.
mouse_21_3=Keď tu budeš ešte okúňať,\r\ntak o tebe skôr už nebudeme počuť.
mouse_25_1=Zas toľko sa nenaparuj,\r\nešte ti pár Trofejí chýba.
mouse_28_1=Že zvyšné trofeje za chvíľu pozbieraš?\r\nTo hovoril každý detektív.
mouse_29_1=Pre mňa za mňa, kľudne si ich prezeraj,\r\nale tie zvyšné trofeje sa samé nepozbierajú.
mouse_30_1=Ó určite, detektív tvojho formátu\r\nmá na všetko dosť času.
mouse_31_1=Vyzerá to tak, že je tu niekto\r\nveľmi ambiciózny.
mouse_32_1=To nieje len tak, vyzbierať skoro\r\nvšetky trofeje.
mouse_33_1=Vsadím sa, že tie ostatné už nepozbieraš.
mouse_34_1=Toľko trofejí. Úctyhodný výkon.
mouse_36_1=Tak to tu ešte nebolo!
mouse_36_2=Všetká česť, toto som ešte nevidela. A to tu bývam už celkom dlho.
mouse_36_2=Všetká česť, toto som ešte nevidela.\r\nA to tu bývam už celkom dlho.
mouse_36_3=O tom si budú rozprávať ešte moje vnúčatá.
mouse_rankup=Gratulujem k povýšenie. Len tak ďalej!
......
......@@ -29,18 +29,21 @@ android {
applicationIdSuffix rootProject.applicationIdBranch + rootProject.applicationIdDebugSuffix
buildConfigField ASSETS_CHECKSUM_FIELD_TYPE, ASSETS_CHECKSUM_FIELD_NAME, rootProject.ext.assetsChecksumPattern
resValue "string", "app_name", "${tablexiaAppName}"
resValue "string", "sentry_dsn", project.hasProperty('TABLEXIA_SENTRY_DSN_DEBUG') ? "$TABLEXIA_SENTRY_DSN_DEBUG" : "$project.sentryDSNFallbackValue";
}
release {
debuggable false
applicationIdSuffix rootProject.applicationIdBranch
buildConfigField ASSETS_CHECKSUM_FIELD_TYPE, ASSETS_CHECKSUM_FIELD_NAME, rootProject.ext.assetsChecksumPattern
resValue "string", "app_name", "${tablexiaAppName}"
resValue "string", "sentry_dsn", project.hasProperty('TABLEXIA_SENTRY_DSN_RELEASE') ? "$TABLEXIA_SENTRY_DSN_RELEASE" : "$project.sentryDSNFallbackValue";
}
devel.initWith(buildTypes.debug)
devel {
applicationIdSuffix rootProject.applicationIdDevelSuffix
buildConfigField ASSETS_CHECKSUM_FIELD_TYPE, ASSETS_CHECKSUM_FIELD_NAME, rootProject.ext.assetsChecksumPattern
resValue "string", "app_name", "${tablexiaAppName}"
resValue "string", "sentry_dsn", "$project.sentryDSNFallbackValue";
}
}
......
......@@ -4,6 +4,7 @@ import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.net.ConnectivityManager;
import android.os.Build;
import android.os.Bundle;
import com.badlogic.gdx.Gdx;
......@@ -18,6 +19,7 @@ import cz.nic.tablexia.Tablexia;
import cz.nic.tablexia.TablexiaBuildConfig;
import cz.nic.tablexia.TablexiaSettings;
import cz.nic.tablexia.debug.BuildConfig;
import cz.nic.tablexia.debug.R;
import cz.nic.tablexia.screen.loader.IConnectionManager;
import cz.nic.tablexia.util.Log;
......@@ -41,8 +43,10 @@ public class AndroidLauncher extends AndroidApplication {
getResources().getConfiguration().locale,
SQL_CONNECTION_TYPE,
new AndroidConnectionManager(getContext()),
getResources().getString(R.string.sentry_dsn),
HAS_SOFT_BACK_BUTTON,
savedInstanceState == null), config);
savedInstanceState == null,
Build.SERIAL), config);
if (TablexiaSettings.getInstance().getBuildType().isBugReport() && TablexiaBuildConfig.FLURRY_KEY != null) {
FlurryAgent.setLogEnabled(false);
......@@ -95,23 +99,34 @@ public class AndroidLauncher extends AndroidApplication {
@Override
public boolean isUsingMobileData() {
return getConnectionType() == ConnectionType.Mobile;
}
@Override
public ConnectionType getConnectionType() {
ConnectivityManager conMan = (ConnectivityManager) androidContext.getSystemService(Context.CONNECTIVITY_SERVICE);
//We are not connected to the internet at all...
//We are not connected to the internet at all...
if(conMan == null || conMan.getActiveNetworkInfo() == null)
return false;
return ConnectionType.Unknown;
//Is user using any of mobile internet types ? Hope I didn't miss any...
//Is user using any of mobile internet types ? Hope I didn't miss any...
switch (conMan.getActiveNetworkInfo().getType()) {
case ConnectivityManager.TYPE_MOBILE:
case ConnectivityManager.TYPE_MOBILE_DUN:
case ConnectivityManager.TYPE_MOBILE_HIPRI:
case ConnectivityManager.TYPE_MOBILE_MMS:
case ConnectivityManager.TYPE_MOBILE_SUPL:
return true;
return ConnectionType.Mobile;
case ConnectivityManager.TYPE_ETHERNET:
return ConnectionType.Ethernet;
case ConnectivityManager.TYPE_WIFI:
return ConnectionType.Wifi;
default:
return false;
return ConnectionType.Unknown;
}
}
}
......
......@@ -3,9 +3,9 @@ import com.badlogic.gdx.tools.texturepacker.TexturePacker
buildscript {
repositories {
// mavenCentral()
maven { url 'https://jitpack.io' }
jcenter{ url "http://jcenter.bintray.com/" }
maven { url "http://repo1.maven.org/maven2" }
maven { url "https://jitpack.io" }
jcenter { url "http://jcenter.bintray.com/" }
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
......@@ -13,7 +13,7 @@ buildscript {
classpath 'de.felixschulze.gradle:gradle-spoon-plugin:2.1'
classpath 'com.github.JakeWharton:sdk-manager-plugin:220bf7a88a7072df3ed16dc8466fb144f2817070'
classpath 'com.novoda:gradle-android-command-plugin:1.3.0'
classpath "com.badlogicgames.gdx:gdx-tools:1.6.1"
classpath 'com.badlogicgames.gdx:gdx-tools:1.6.1'
}
}
......@@ -26,6 +26,9 @@ final assetsGameGlobalDirectory = "_global"
final assetsGameCommonDifficultyDirectory = "common"
final assetsGameExcludedDirectory = "excluded"
final String TABLEXIA_GIT_PATH = './'
final String MODEL_GIT_PATH = 'core/external/'
System.setProperty("javax.net.ssl.trustStore", new File("${project(":android").projectDir.absolutePath}/assets/keystore/tablexiaTrustKeystore").getAbsolutePath());
System.setProperty("javax.net.ssl.trustStorePassword", "tablexia");
......@@ -45,8 +48,10 @@ allprojects {
masterBranch = 'master'
applicationBaseId = 'cz.nic.tablexia'
tablexiaAppName = getTablexiaAppName()
tablexiaVersionName = getVersionNameFromGit()
tablexiaVersionCode = getVersionCodeFromGit()
tablexiaVersionName = getVersionNameFromGit(TABLEXIA_GIT_PATH)
tablexiaVersionCode = getVersionCodeFromGit(TABLEXIA_GIT_PATH)
tablexiaModelVersionName = getVersionNameFromGit(MODEL_GIT_PATH)
tablexiaModelVersionCode = getVersionCodeFromGit(MODEL_GIT_PATH)
applicationIdBranch = getTablexiaAppId()
applicationIdRelease = applicationBaseId + applicationIdBranch
applicationIdDebugSuffix = '.debug'
......@@ -54,6 +59,9 @@ allprojects {
applicationIdDevelSuffix = '.devel'
applicationIdDevel = applicationBaseId + applicationIdDevelSuffix
//Fallback value if sentry DSN is not defined (gradle parameter SENTRY_DSN_DEBUG or SENTRY_DSN_RELEASE)
sentryDSNFallbackValue = "None"
gdxVersion = '1.9.2'
gdxUtilsVersion = '0.13.2'
mbassadorVersion = '1.2.0'
......@@ -64,17 +72,18 @@ allprojects {
roboPodsVersion = '1.13.0'
androidSupportV4Version = '22.0.0'
googlePlayServicesVersion = '8.3.+'
servletApiVersion = '5.5.23'
ravenVersion = '7.5.0'
}
version = getVersionNameFromGit()
version = getVersionNameFromGit(TABLEXIA_GIT_PATH)
repositories {
mavenCentral()
jcenter {
url "http://jcenter.bintray.com/"
}
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "https://oss.sonatype.org/content/repositories/releases/" }
maven { url "http://repo1.maven.org/maven2" }
jcenter { url "http://jcenter.bintray.com/" }
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "https://oss.sonatype.org/content/repositories/releases/" }
}
}
......@@ -266,12 +275,13 @@ def getTablexiaAppId() {
}
}
def getVersionNameFromGit() {
def getVersionNameFromGit(String relativePath) {
def stdout = new ByteArrayOutputStream()
String branchName = getBranchNameFromGit()
// get last tag in current branch
exec {
workingDir relativePath
commandLine 'git', 'describe', '--abbrev=0', '--tags'
standardOutput = stdout
}
......@@ -281,6 +291,7 @@ def getVersionNameFromGit() {
if (!project.masterBranch.equals(branchName)) {
stdout = new ByteArrayOutputStream()
exec {
workingDir relativePath
commandLine 'git', 'rev-list', "${result}..HEAD", '--count'
standardOutput = stdout
}
......@@ -294,9 +305,10 @@ def getVersionNameFromGit() {
return result
}
def getVersionCodeFromGit() {
def getVersionCodeFromGit(String relativePath) {
def stdout = new ByteArrayOutputStream()
exec {
workingDir relativePath
commandLine 'git', 'log', '-1', '--format=%at'
standardOutput = stdout
}
......@@ -400,6 +412,8 @@ project(":core") {
compile "com.badlogicgames.gdx:gdx-freetype:$gdxVersion"
compile "com.google.guava:guava:$guavaVersion"
compile "tomcat:servlet-api:$servletApiVersion"
compile "com.getsentry.raven:raven:$ravenVersion"
testCompile "junit:junit:4.11"
testCompile "com.badlogicgames.gdx:gdx-backend-headless:$gdxVersion"
......
......@@ -35,7 +35,10 @@ task writeTablexiaBuildConfig {
"public class TablexiaBuildConfig {\n" +
"\n" +
" public final static String APP_NAME = \"${tablexiaAppName}\";\n" +
" public final static String VERSION_NAME = \"${tablexiaVersionName}\";\n" +
" public final static String APPLICATION_VERSION_NAME = \"${tablexiaVersionName}\";\n" +
" public final static Integer APPLICATION_VERSION_CODE = ${tablexiaVersionCode};\n" +
" public final static String MODEL_VERSION_NAME = \"${tablexiaModelVersionName}\";\n" +
" public final static Integer MODEL_VERSION_CODE = ${tablexiaModelVersionCode};\n" +
" public final static String ASSETS_CHECKSUM = \"${getMapConvertedToString(rootProject.ext.assetsChecksum)}\";\n" +
" public final static String TABLEXIA_ASSETS_URL = ${project.hasProperty('TABLEXIA_ASSETS_DOWNLOAD_URL') ? "\"$TABLEXIA_ASSETS_DOWNLOAD_URL\"" : "null"};\n" +
" public final static String TABLEXIA_SERVER_PROTOCOL = ${project.hasProperty('TABLEXIA_SERVER_PROTOCOL') ? "\"$TABLEXIA_SERVER_PROTOCOL\"" : "null"};\n" +
......@@ -43,6 +46,7 @@ task writeTablexiaBuildConfig {
" public final static Integer TABLEXIA_SERVER_PORT = ${project.hasProperty('TABLEXIA_SERVER_PORT') ? "$TABLEXIA_SERVER_PORT" : "null"};\n" +
" public final static String TABLEXIA_SERVER_SECRET = ${project.hasProperty('TABLEXIA_SERVER_SECRET') ? "\"$TABLEXIA_SERVER_SECRET\"" : "null"};\n" +
" public final static String FLURRY_KEY = ${project.hasProperty('TABLEXIA_FLURRY_KEY') ? "\"$TABLEXIA_FLURRY_KEY\"" : "null"};\n" +
" public final static String SENTRY_DSN_FALLBACK = \"${project.sentryDSNFallbackValue}\";\n" +
"\n" +
"}", BUILD_CONFIG_FILE_ENCODING)
}
......
external @ f1e82e39
Subproject commit d8cb4a89e64ceec83718fc478f76a5eb31d8fb3e
Subproject commit f1e82e392f631c1e0b9002e41413ddad12b4d4d2
......@@ -26,6 +26,7 @@ import cz.nic.tablexia.loader.application.ApplicationInternalTextureManager;
import cz.nic.tablexia.loader.application.ApplicationTextManager;
import cz.nic.tablexia.loader.zip.ZipAssetLoader;
import cz.nic.tablexia.menu.MenuController;
import cz.nic.tablexia.model.DatabaseManager;
import cz.nic.tablexia.screen.AbstractTablexiaScreen;
import cz.nic.tablexia.screen.loader.IConnectionManager;
import cz.nic.tablexia.util.Log;
......@@ -97,12 +98,12 @@ public class Tablexia extends TablexiaApplication {
}
}
public Tablexia(String buildType, Locale systemLocale, SQLConnectionType sqlConnectionType, IConnectionManager connManager, boolean hasSoftBackButton, boolean reset) {
public Tablexia(String buildType, Locale systemLocale, SQLConnectionType sqlConnectionType, IConnectionManager connManager, String sentryDSN, boolean hasSoftBackButton, boolean reset, String hwSerial) {
this.reset = reset;
connectionManager = validateConnectionManager(connManager);
this.sqlConnectionType = sqlConnectionType;
TablexiaSettings.init(buildType, systemLocale, hasSoftBackButton);
TablexiaSettings.init(buildType, systemLocale, hasSoftBackButton, hwSerial);
// register error handler for exceptions in event bus handler methods
ApplicationBus.getInstance().addErrorHandler(new IPublicationErrorHandler() {
......@@ -111,6 +112,12 @@ public class Tablexia extends TablexiaApplication {
Log.err(ApplicationBus.class, error.getMessage(), error.getCause());
}
});
if(TablexiaSettings.getInstance().getBuildType().isBugReport()) {
@SuppressWarnings("ConstantConditions")
String DSN = (TablexiaBuildConfig.SENTRY_DSN_FALLBACK == null || sentryDSN == null || TablexiaBuildConfig.SENTRY_DSN_FALLBACK.equals(sentryDSN)) ? null : sentryDSN;
TablexiaRaven.start(DSN);
}
}
private void loadingComplete() {
......@@ -302,9 +309,14 @@ public class Tablexia extends TablexiaApplication {
public void create() {
super.create();
TablexiaRaven.sendSavedReports();
// init data storage
TablexiaStorage.init(sqlConnectionType, reset);
// init database
DatabaseManager.initializeDatabase();
// init dialog factory
TablexiaComponentDialogFactory.init(getStage());
......
This diff is collapsed.
......@@ -51,12 +51,17 @@ public class TablexiaSettings {
//Interval <start month; end month>
private static final int WINTER_MODE_START_MONTH = 10;
private static final int WINTER_MODE_END_MONTH = 2;
private static boolean winterMode = false;
private static final String APP_NAME = TablexiaBuildConfig.APP_NAME;
private final String VERSION_NAME = TablexiaBuildConfig.VERSION_NAME;
private static boolean winterMode = false;
private static final String APP_NAME = TablexiaBuildConfig.APP_NAME;
private final String APPLICATION_VERSION_NAME = TablexiaBuildConfig.APPLICATION_VERSION_NAME;
private final int APPLICATION_VERSION_CODE = TablexiaBuildConfig.APPLICATION_VERSION_CODE;
private final String MODEL_VERSION_NAME = TablexiaBuildConfig.MODEL_VERSION_NAME;
private final int MODEL_VERSION_CODE = TablexiaBuildConfig.MODEL_VERSION_CODE;
private Platform PLATFORM;
private final BuildType BUILD_TYPE;
private final boolean HAS_SOFT_BACK_BUTTON;
private static String HW_SERIAL_NUMBER;
private Preferences preferences;
private LocaleDefinition systemLocale;
......@@ -67,15 +72,47 @@ public class TablexiaSettings {
private boolean soundMuted = false;
public enum Platform {
UNKNOWN (-1, null),
DESKTOP (1, Application.ApplicationType.Desktop),
ANDROID (2, Application.ApplicationType.Android),
iOS (3, Application.ApplicationType.iOS);
private static Platform FALLBACK_PLATFORM = UNKNOWN;
private final int id;
private final Application.ApplicationType applicationType;
Platform(int id, Application.ApplicationType applicationType) {
this.id = id;
this.applicationType = applicationType;
}
public int getId() {
return id;
}
public static Platform getPlatformForApplicationType(Application.ApplicationType applicationType) {
for (Platform platform : values()) {
if (platform.applicationType != null && platform.applicationType.equals(applicationType)) {
return platform;
}
}
return FALLBACK_PLATFORM;
}
}
public enum BuildType {
// boxes aInfo sInfo dMenu btName bReport debugBtn
RELEASE ("release", false, false, false, false, false, true, false, Log.TablexiaLogLevel.ERROR),
DEBUG ("debug", false, true, true, true, true, true, true, Log.TablexiaLogLevel.DEBUG),
DEVEL ("devel", true, true, true, true, true, false, true, Log.TablexiaLogLevel.DEBUG);
RELEASE (1, "release", false, false, false, false, false, true, false, Log.TablexiaLogLevel.ERROR),
DEBUG (2, "debug", false, true, true, true, true, true, true, Log.TablexiaLogLevel.DEBUG),
DEVEL (3, "devel", true, true, true, true, true, false, true, Log.TablexiaLogLevel.DEBUG);
private final static BuildType FALLBACK_VARIANT = BuildType.DEVEL;
private int id;
private final String key;
private boolean boundingBoxes;
private boolean applicationInfo;
......@@ -86,7 +123,8 @@ public class TablexiaSettings {
private boolean showDebugButtons;
private final Log.TablexiaLogLevel logLevel;
BuildType(String key, boolean boundingBoxes, boolean applicationInfo, boolean screenInfo, boolean debugMenu, boolean showBuildTypeInName, boolean bugReport, boolean showDebugButtons, Log.TablexiaLogLevel logLevel) {
BuildType(int id, String key, boolean boundingBoxes, boolean applicationInfo, boolean screenInfo, boolean debugMenu, boolean showBuildTypeInName, boolean bugReport, boolean showDebugButtons, Log.TablexiaLogLevel logLevel) {
this.id = id;
this.key = key;
this.boundingBoxes = boundingBoxes;
this.applicationInfo = applicationInfo;
......@@ -98,6 +136,10 @@ public class TablexiaSettings {
this.logLevel = logLevel;
}
public int getId() {
return id;
}
public String getKey() {
return key;
}
......@@ -164,11 +206,11 @@ public class TablexiaSettings {
return instance;
}
static void init(String buildTypeKey, Locale systemLocale, boolean hasSoftBackButton) {
TablexiaSettings.init(BuildType.getBuildTypeForKey(buildTypeKey), systemLocale, hasSoftBackButton);
static void init(String buildTypeKey, Locale systemLocale, boolean hasSoftBackButton, String hwSerial) {
TablexiaSettings.init(BuildType.getBuildTypeForKey(buildTypeKey), systemLocale, hasSoftBackButton, hwSerial);
}
static void init(BuildType buildType, Locale systemLocale, boolean hasSoftBackButton) {
static void init(BuildType buildType, Locale systemLocale, boolean hasSoftBackButton, String hwSerialNumber) {
if (instance != null) {
String exceptionMessage = "Tablexia settings already initialized!";
Log.err(TablexiaSettings.class, exceptionMessage);
......@@ -176,6 +218,7 @@ public class TablexiaSettings {
}
instance = new TablexiaSettings(buildType, systemLocale, hasSoftBackButton);
TablexiaSettings.HW_SERIAL_NUMBER = hwSerialNumber;
}
void dispose() {
......@@ -199,21 +242,44 @@ public class TablexiaSettings {
//////////////////////////// SETTINGS ACCESS
public String getFullName() {
return getAppName() + " " + getVersionName();
return getAppName() + " " + getApplicationVersionName();
}
public String getAppName() {
return getBuildType().getAppName();
}
public String getVersionName() {
return VERSION_NAME;
public String getApplicationVersionName() {
return APPLICATION_VERSION_NAME;
}
public int getApplicationVersionCode() {
return APPLICATION_VERSION_CODE;
}
public String getModelVersionName() {
return MODEL_VERSION_NAME;
}
public int getModelVersionCode() {
return MODEL_VERSION_CODE;
}
public Platform getPlatform() {
if (PLATFORM == null) {
PLATFORM = Platform.getPlatformForApplicationType(Gdx.app.getType());
}
return PLATFORM;
}
public boolean hasSoftBackButton() {
return HAS_SOFT_BACK_BUTTON;
}
public String getHwSerialNumber() {
return HW_SERIAL_NUMBER;
}
public boolean isWinterMode() { return winterMode; }
public boolean isShowBoundingBoxes() {
......@@ -347,25 +413,26 @@ public class TablexiaSettings {
}
public enum LocaleDefinition {
SYSTEM (null, "system", ApplicationTextManager.ApplicationTextsAssets.LANGUAGE_SYSTEM, true),
cs_CZ (new Locale("cs", "CZ"), "cs_CZ", ApplicationTextManager.ApplicationTextsAssets.LANGUAGE_CZECH, true),
sk_SK (new Locale("sk", "SK"), "sk_SK", ApplicationTextManager.ApplicationTextsAssets.LANGUAGE_SLOVAK, true),
de_DE (new Locale("de", "DE"), "de_DE", ApplicationTextManager.ApplicationTextsAssets.LANGUAGE_GERMAN, true);
SYSTEM (null, "system", 0, ApplicationTextManager.ApplicationTextsAssets.LANGUAGE_SYSTEM, true),
cs_CZ (new Locale("cs", "CZ"), "cs_CZ", 1, ApplicationTextManager.ApplicationTextsAssets.LANGUAGE_CZECH, true),
sk_SK (new Locale("sk", "SK"), "sk_SK", 2, ApplicationTextManager.ApplicationTextsAssets.LANGUAGE_SLOVAK, true),
de_DE (new Locale("de", "DE"), "de_DE", 3, ApplicationTextManager.ApplicationTextsAssets.LANGUAGE_GERMAN, true);
public final static LocaleDefinition DEFAULT_LOCALE = LocaleDefinition.cs_CZ;
private final static LocaleDefinition FALLBACK_VARIANT = LocaleDefinition.SYSTEM;
private final Locale locale;
private final String localeKey;
private final int localeNumber;
private final String descriptionKey;
private boolean enabled;
private static List<LocaleDefinition> enabledLocaleDefinitions;
LocaleDefinition(Locale locale, String localeKey, String descriptionKey, boolean enabled) {
LocaleDefinition(Locale locale, String localeKey, int localeNumber, String descriptionKey, boolean enabled) {
this.locale = locale;
this.localeKey = localeKey;
this.localeNumber = localeNumber;
this.descriptionKey = descriptionKey;
this.enabled = enabled;
}
......@@ -374,6 +441,10 @@ public class TablexiaSettings {
return localeKey;
}
public int getLocaleNumber() {
return localeNumber;
}
public String getDescriptionKey() {
return descriptionKey;
}
......
......@@ -62,7 +62,7 @@ public class TablexiaStorage {
Log.err(TablexiaStorage.class, "Cannot create database connection!", e);
}
} else {
throw new IllegalStateException("Data storage already initialized!");
Log.info(TablexiaStorage.class, "Data storage has already been initialized! Skipping initialization...");
}
}
......
......@@ -210,7 +210,7 @@ public class KidnappingGame extends AbstractTablexiaGame<GameState> {
ruleMessageShown = true;
}