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