diff --git a/.circleci/config.yml b/.circleci/config.yml index 16ad564b..f55c7ec8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -31,9 +31,18 @@ jobs: - run: name: Setup environment command: ./gradlew dependencies --no-daemon --stacktrace --console=plain -PdisablePreDex || true + - run: + name: Decrypt keys + command: | + openssl aes-256-cbc -d -in ./app/key-encrypted.p12 -k $ENCRYPT_KEY >> ./app/key.p12 + openssl aes-256-cbc -d -in ./app/upload-key-encrypted.jks -k $ENCRYPT_KEY >> ./app/upload-key.jks - run: name: Initial build command: ./gradlew build assembleDebug -x test -x lint -x fabricGenerateResourcesRelease --no-daemon --stacktrace --console=plain -PdisablePreDex + - run: + name: Clear keys + command: | + rm ./app/key.p12 ./app/upload-key.jks - store_artifacts: path: ./app/build/outputs/apk/ destination: apks/ @@ -172,6 +181,21 @@ jobs: name: Run sonarqube runner command: ./gradlew -x test -x lint sonarqube -Dsonar.host.url=$SONAR_HOST -Dsonar.organization=$SONAR_ORG -Dsonar.login=$SONAR_KEY -Dsonar.branch.name=$CIRCLE_BRANCH --no-daemon --stacktrace --console=plain -PdisablePreDex + deploy: + <<: *container_config + steps: + - *attach_workspace + - restore_cache: + <<: *general_cache_key + - run: + name: Decrypt keys + command: | + openssl aes-256-cbc -d -in ./app/key-encrypted.p12 -k $ENCRYPT_KEY >> ./app/key.p12 + openssl aes-256-cbc -d -in ./app/upload-key-encrypted.jks -k $ENCRYPT_KEY >> ./app/upload-key.jks + - run: + name: Publish release + command: ./gradlew publishRelease --no-daemon --stacktrace --console=plain -PdisablePreDex + workflows: version: 2 @@ -199,3 +223,9 @@ workflows: - app-test - api-test - instrumented + - deploy: + requires: + - instrumented + filters: + tags: + only: /.*/ diff --git a/.gitignore b/.gitignore index e7068153..8ad04ebf 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,5 @@ ehthumbs.db Thumbs.db .idea/codeStyles/ .idea/caches/ +./app/key.p12 +./app/upload-key.jks diff --git a/app/build.gradle b/app/build.gradle index d5233697..58ab01d5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,6 +9,7 @@ buildscript { classpath "org.greenrobot:greendao-gradle-plugin:$greenDaoGradle" classpath "io.fabric.tools:gradle:$fabricGradle" classpath "com.google.gms:oss-licenses:0.9.2" + classpath 'com.github.triplet.gradle:play-publisher:1.2.0' } } @@ -22,28 +23,48 @@ apply plugin: 'io.fabric' apply from: '../jacoco.gradle' apply from: '../android-sonarqube.gradle' apply plugin: 'com.google.gms.oss.licenses.plugin' +apply plugin: 'com.github.triplet.play' android { compileSdkVersion 26 buildToolsVersion '27.0.3' + + playAccountConfigs { + defaultAccountConfig { + serviceAccountEmail = System.getenv("PLAY_SERVICE_ACCOUNT_EMAIL") + pk12File = file('key.p12') + } + } + defaultConfig { applicationId "io.github.wulkanowy" testApplicationId "io.github.tests.wulkanowy" minSdkVersion 15 targetSdkVersion 26 - versionCode 7 - versionName "0.3.1" + versionCode 8 + versionName "0.4.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawables.useSupportLibrary = true + playAccountConfig = playAccountConfigs.defaultAccountConfig manifestPlaceholders = [ fabricApiKey: System.getenv("FABRIC_API_KEY") ?: "null" ] } + signingConfigs { + release { + storeFile file("upload-key.jks") + storePassword System.getenv("PLAY_STORE_PASSWORD") + keyAlias System.getenv("PLAY_KEY_ALIAS") + keyPassword System.getenv("PLAY_KEY_PASSWORD") + } + } + buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + signingConfig signingConfigs.release } debug { applicationIdSuffix ".dev" @@ -64,6 +85,11 @@ android { } } +play { + track = 'alpha' + uploadImages = true +} + greendao { schemaVersion 26 generateTests = true diff --git a/app/key-encrypted.p12 b/app/key-encrypted.p12 new file mode 100644 index 00000000..d9811213 Binary files /dev/null and b/app/key-encrypted.p12 differ diff --git a/app/src/main/play/contactEmail b/app/src/main/play/contactEmail new file mode 100644 index 00000000..851521eb --- /dev/null +++ b/app/src/main/play/contactEmail @@ -0,0 +1 @@ +wulkanowyinc@gmail.com diff --git a/app/src/main/play/contactPhone b/app/src/main/play/contactPhone new file mode 100644 index 00000000..552e53a5 --- /dev/null +++ b/app/src/main/play/contactPhone @@ -0,0 +1 @@ ++48733393622 diff --git a/app/src/main/play/contactWebsite b/app/src/main/play/contactWebsite new file mode 100644 index 00000000..53f7bee6 --- /dev/null +++ b/app/src/main/play/contactWebsite @@ -0,0 +1 @@ +https://wulkanowy.github.io/ diff --git a/app/src/main/play/defaultLanguage b/app/src/main/play/defaultLanguage new file mode 100644 index 00000000..1134c4d5 --- /dev/null +++ b/app/src/main/play/defaultLanguage @@ -0,0 +1 @@ +pl-PL diff --git a/app/src/main/play/pl-PL/listing/featureGraphic/feature.png b/app/src/main/play/pl-PL/listing/featureGraphic/feature.png new file mode 100644 index 00000000..15e6ebbf Binary files /dev/null and b/app/src/main/play/pl-PL/listing/featureGraphic/feature.png differ diff --git a/app/src/main/play/pl-PL/listing/fulldescription b/app/src/main/play/pl-PL/listing/fulldescription new file mode 100644 index 00000000..e334a82b --- /dev/null +++ b/app/src/main/play/pl-PL/listing/fulldescription @@ -0,0 +1,8 @@ +Wyróżnione cechy i funkcje: +- Całkowicie darmowa i otwarta (brak jakichkolwiek reklam i mikropłatności) +- Powiadomienia +- Tryb offline +- Aktywne wsparcie i rozwój + +GitHub: https://github.com/wulkanowy/wulkanowy +Discord: https://discord.gg/JMG2rhJ diff --git a/app/src/main/play/pl-PL/listing/icon/icon.png b/app/src/main/play/pl-PL/listing/icon/icon.png new file mode 100644 index 00000000..7cad5c2f Binary files /dev/null and b/app/src/main/play/pl-PL/listing/icon/icon.png differ diff --git a/app/src/main/play/pl-PL/listing/phoneScreenshots/attendance-dialog.png b/app/src/main/play/pl-PL/listing/phoneScreenshots/attendance-dialog.png new file mode 100644 index 00000000..3f4ceb7e Binary files /dev/null and b/app/src/main/play/pl-PL/listing/phoneScreenshots/attendance-dialog.png differ diff --git a/app/src/main/play/pl-PL/listing/phoneScreenshots/exams.png b/app/src/main/play/pl-PL/listing/phoneScreenshots/exams.png new file mode 100644 index 00000000..5a055ff4 Binary files /dev/null and b/app/src/main/play/pl-PL/listing/phoneScreenshots/exams.png differ diff --git a/app/src/main/play/pl-PL/listing/phoneScreenshots/grades.png b/app/src/main/play/pl-PL/listing/phoneScreenshots/grades.png new file mode 100644 index 00000000..58c22c51 Binary files /dev/null and b/app/src/main/play/pl-PL/listing/phoneScreenshots/grades.png differ diff --git a/app/src/main/play/pl-PL/listing/phoneScreenshots/timetable-widget.png b/app/src/main/play/pl-PL/listing/phoneScreenshots/timetable-widget.png new file mode 100644 index 00000000..832db0b6 Binary files /dev/null and b/app/src/main/play/pl-PL/listing/phoneScreenshots/timetable-widget.png differ diff --git a/app/src/main/play/pl-PL/listing/phoneScreenshots/timetable.png b/app/src/main/play/pl-PL/listing/phoneScreenshots/timetable.png new file mode 100644 index 00000000..e9e66bbb Binary files /dev/null and b/app/src/main/play/pl-PL/listing/phoneScreenshots/timetable.png differ diff --git a/app/src/main/play/pl-PL/listing/shortdescription b/app/src/main/play/pl-PL/listing/shortdescription new file mode 100644 index 00000000..b5fc7491 --- /dev/null +++ b/app/src/main/play/pl-PL/listing/shortdescription @@ -0,0 +1 @@ +Nieoficjalna aplikacja dla dziennika VULCAN UONET+. diff --git a/app/src/main/play/pl-PL/listing/title b/app/src/main/play/pl-PL/listing/title new file mode 100644 index 00000000..e5160837 --- /dev/null +++ b/app/src/main/play/pl-PL/listing/title @@ -0,0 +1 @@ +Wulkanowy Dziennik UONET+ diff --git a/app/src/main/play/pl-PL/listing/video b/app/src/main/play/pl-PL/listing/video new file mode 100644 index 00000000..e69de29b diff --git a/app/src/main/play/pl-PL/whatsnew b/app/src/main/play/pl-PL/whatsnew new file mode 100644 index 00000000..8c1807ab --- /dev/null +++ b/app/src/main/play/pl-PL/whatsnew @@ -0,0 +1,11 @@ +Wersja 0.4.0: +- dodano widget planu lekcji +- dodano widok sprawdzianów +- dodano informacje o końcowych ocenach z przedmiotu +- dodano przełącznik semestru w ocenach +- dodano opcję ukrycia obecności +- dodano wyróżnik aktualnego tygodnia +- dodano podstawową obsługę niestandardowych dzienników Vulcan (np. Opolska eSzkoła) +- naprawiono animacje w ocenach +- naprawiono wyświetlanie oceny w szczególnych przypadkach +- optymalizacja aplikacji diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 942dc431..38169d81 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -30,7 +30,7 @@ Brak koloru Aktywność dashboard - Exams + Sprawdziany Oceny Frekwencja Plan lekcji diff --git a/app/upload-key-encrypted.jks b/app/upload-key-encrypted.jks new file mode 100644 index 00000000..6ad925d8 Binary files /dev/null and b/app/upload-key-encrypted.jks differ