Skip to content

Commit

Permalink
Merge pull request #58 from ChilliBits/beta
Browse files Browse the repository at this point in the history
Release to version 3.5.0
  • Loading branch information
marcauberer committed Feb 12, 2020
2 parents d9562e1 + ce4e403 commit e75b6e8
Show file tree
Hide file tree
Showing 185 changed files with 2,585 additions and 963 deletions.
2 changes: 1 addition & 1 deletion .idea/copyright/Marc_Auberer.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 17 additions & 1 deletion README.md
Expand Up @@ -28,7 +28,23 @@ You can contribute to this project by doing following things:

- If you want to contribute new features, please fork this repository to your own GitHub account. Then build your awesome feature and post a pull request back to this repo. We will check your changes and merge your contribution asap.
- If you want to add a new translation language or improve an existing translation, please write an email to: [contact@chillibits.com](mailto:contact@chillibits.com&subject=Add%20translation)
- If you want to submit a request for a new feature, please also write an email to: [contact@chillibits.com](mailto:contact@chillibits.com&subject=Feature%20request)
- If you want to submit a request for a new feature, please [open an issue](https://github.com/ChilliBits/particulate-matter-app/issues/new?labels=feature%20request&template=feature_request.md) on GitHub write an email to: [contact@chillibits.com](mailto:contact@chillibits.com&subject=Feature%20request)

## Our translators

Our app is available in many different languages, thank to our translators:

- English: *ChilliBits*
- German: *ChilliBits*
- Spanish: *ChilliBits*
- French: *Jose Goffinet*
- Italian: *Andrea Rossi*
- Polish: *Melo Melo*
- Russian: *Sergei Sokolov*
- Bulgarian: *Sashu Night*
- Dutch: *Jesse Swart*
- Romanian: *Dan D*
- Hungarian: *Artúr Szilágyi*

## Used third party libraries

Expand Down
82 changes: 55 additions & 27 deletions app/build.gradle
@@ -1,5 +1,5 @@
/*
* Copyright © Marc Auberer 2020. All rights reserved
* Copyright © Marc Auberer 2017 - 2020. All rights reserved
*/

apply plugin: 'com.android.application'
Expand All @@ -14,8 +14,8 @@ android {
applicationId "com.mrgames13.jimdo.feinstaubapp"
minSdkVersion 21
targetSdkVersion 29
versionCode 3406
versionName "3.4.6"
versionCode 3500
versionName "3.5.0"
vectorDrawables.useSupportLibrary = true
multiDexEnabled true
}
Expand Down Expand Up @@ -53,7 +53,7 @@ dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.14.0'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3'
implementation 'androidx.core:core-ktx:1.2.0-rc01'
implementation 'androidx.core:core-ktx:1.3.0-alpha01'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.preference:preference:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta4'
Expand All @@ -62,12 +62,12 @@ dependencies {
implementation 'androidx.palette:palette:1.0.0'
implementation 'androidx.vectordrawable:vectordrawable:1.1.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'com.google.android.material:material:1.2.0-alpha03'
implementation 'com.google.android.material:material:1.2.0-alpha04'
implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.libraries.places:places:2.1.0'
implementation 'com.google.android.libraries.places:places:2.2.0'
implementation 'com.google.maps.android:android-maps-utils:0.6.2'
implementation 'com.google.zxing:core:3.4.0'
implementation 'com.google.firebase:firebase-database-ktx:19.2.0'
implementation 'com.google.firebase:firebase-database-ktx:19.2.1'

// Ktor dependencies
implementation "io.ktor:ktor-client-android:$ktor_version"
Expand All @@ -87,6 +87,7 @@ dependencies {
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.19'
implementation 'com.github.TutorialsAndroid:FilePicker:v7.0.19'
implementation 'com.stephentuso:welcome:1.4.1'
}

apply plugin: 'com.google.gms.google-services'
Expand All @@ -99,55 +100,82 @@ task downloadTranslations {
ext.apiKey1 = '7qUo-LUKd4VIHSwRYB5005T7QQbaFCGw'
ext.apiKey2 = 'mg24uL96-mSwhchnk4LnJAzeyBtOsYy3'

//English
// English
doLast {
def f = new File("${project.projectDir}/src/main/res/values/strings.xml")
new URL("https://localise.biz/api/export/locale/en.xml?format=android&key=${apiKey1}").withInputStream{ i -> f.withOutputStream{ it << i }}
new URL("https://localise.biz/api/export/locale/en.xml?format=android&key=${apiKey1}").withInputStream { i ->
f.withOutputStream { it << i }
}
}
//Bulgarian
// Bulgarian
doLast {
def f = new File("${project.projectDir}/src/main/res/values-bg/strings.xml")
new URL("https://localise.biz/api/export/locale/bg.xml?format=android&key=${apiKey1}").withInputStream{ i -> f.withOutputStream{ it << i }}
new URL("https://localise.biz/api/export/locale/bg.xml?format=android&key=${apiKey1}").withInputStream { i ->
f.withOutputStream { it << i }
}
}
//Dutch
// Dutch
doLast {
def f = new File("${project.projectDir}/src/main/res/values-nl/strings.xml")
new URL("https://localise.biz/api/export/locale/nl.xml?format=android&key=${apiKey1}").withInputStream{ i -> f.withOutputStream{ it << i }}
new URL("https://localise.biz/api/export/locale/nl.xml?format=android&key=${apiKey1}").withInputStream { i ->
f.withOutputStream { it << i }
}
}
//French
// French
doLast {
def f = new File("${project.projectDir}/src/main/res/values-fr/strings.xml")
new URL("https://localise.biz/api/export/locale/fr.xml?format=android&key=${apiKey1}").withInputStream{ i -> f.withOutputStream{ it << i }}
new URL("https://localise.biz/api/export/locale/fr.xml?format=android&key=${apiKey1}").withInputStream { i ->
f.withOutputStream { it << i }
}
}
//Italian
// Italian
doLast {
def f = new File("${project.projectDir}/src/main/res/values-it/strings.xml")
new URL("https://localise.biz/api/export/locale/it.xml?format=android&key=${apiKey1}").withInputStream{ i -> f.withOutputStream{ it << i }}
new URL("https://localise.biz/api/export/locale/it.xml?format=android&key=${apiKey1}").withInputStream { i ->
f.withOutputStream { it << i }
}
}
//Polish
// Polish
doLast {
def f = new File("${project.projectDir}/src/main/res/values-pl/strings.xml")
new URL("https://localise.biz/api/export/locale/pl.xml?format=android&key=${apiKey1}").withInputStream{ i -> f.withOutputStream{ it << i }}
new URL("https://localise.biz/api/export/locale/pl.xml?format=android&key=${apiKey1}").withInputStream { i ->
f.withOutputStream { it << i }
}
}
//Romanian
// Romanian
doLast {
def f = new File("${project.projectDir}/src/main/res/values-ro/strings.xml")
new URL("https://localise.biz/api/export/locale/ro.xml?format=android&key=${apiKey1}").withInputStream{ i -> f.withOutputStream{ it << i }}
new URL("https://localise.biz/api/export/locale/ro.xml?format=android&key=${apiKey1}").withInputStream { i ->
f.withOutputStream { it << i }
}
}
//Russian
// Russian
doLast {
def f = new File("${project.projectDir}/src/main/res/values-ru/strings.xml")
new URL("https://localise.biz/api/export/locale/ru.xml?format=android&key=${apiKey1}").withInputStream{ i -> f.withOutputStream{ it << i }}
new URL("https://localise.biz/api/export/locale/ru.xml?format=android&key=${apiKey1}").withInputStream { i ->
f.withOutputStream { it << i }
}
}
//German
// German
doLast {
def f = new File("${project.projectDir}/src/main/res/values-de/strings.xml")
new URL("https://localise.biz/api/export/locale/de.xml?format=android&key=${apiKey2}").withInputStream{ i -> f.withOutputStream{ it << i }}
new URL("https://localise.biz/api/export/locale/de.xml?format=android&key=${apiKey2}").withInputStream { i ->
f.withOutputStream { it << i }
}
}
//Spanish
// Spanish
doLast {
def f = new File("${project.projectDir}/src/main/res/values-es/strings.xml")
new URL("https://localise.biz/api/export/locale/es.xml?format=android&key=${apiKey2}").withInputStream{ i -> f.withOutputStream{ it << i }}
new URL("https://localise.biz/api/export/locale/es.xml?format=android&key=${apiKey2}").withInputStream { i ->
f.withOutputStream { it << i }
}
}
// Hungarian
doLast {
def f = new File("${project.projectDir}/src/main/res/values-hu/strings.xml")
new URL("https://localise.biz/api/export/locale/hu.xml?format=android&key=${apiKey2}").withInputStream { i ->
f.withOutputStream { it << i }
}
}
}

Expand Down
94 changes: 58 additions & 36 deletions app/src/main/AndroidManifest.xml
@@ -1,13 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright © Marc Auberer 2020. All rights reserved
~ Copyright © Marc Auberer 2017 - 2020. All rights reserved
-->

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.mrgames13.jimdo.feinstaubapp"
android:installLocation="auto">

<uses-sdk tools:overrideLibrary="com.google.zxing.client.android" />

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
Expand All @@ -22,18 +24,17 @@
android:glEsVersion="0x00020000"
android:required="true" />

<uses-sdk tools:overrideLibrary="com.google.zxing.client.android" />

<application
android:allowBackup="true"
android:fullBackupContent="@xml/backup_content"
android:requestLegacyExternalStorage="true"
android:hardwareAccelerated="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:requestLegacyExternalStorage="true"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
tools:targetApi="q">

<meta-data
Expand Down Expand Up @@ -62,10 +63,10 @@
<!-- MainActivity -->
<activity
android:name="com.chillibits.pmapp.ui.activity.MainActivity"
android:configChanges="uiMode"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="adjustPan"
android:configChanges="uiMode">
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
</intent-filter>
Expand All @@ -92,18 +93,20 @@
android:scheme="https" />
</intent-filter>
</activity>
<!-- WelcomeActivity -->
<activity
android:name="com.chillibits.pmapp.ui.activity.WelcomeActivity"
android:theme="@style/WelcomeScreenTheme"/>
<!-- SettingsActivity -->
<activity
android:name="com.chillibits.pmapp.ui.activity.SettingsActivity"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="adjustPan" />
<!-- DiagramActivity -->
android:windowSoftInputMode="adjustPan" /> <!-- DiagramActivity -->
<activity
android:name="com.chillibits.pmapp.ui.activity.DiagramActivity"
android:screenOrientation="landscape"
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar.Fullscreen"
android:windowSoftInputMode="adjustPan" />
<!-- SensorActivity -->
android:windowSoftInputMode="adjustPan" /> <!-- SensorActivity -->
<activity
android:name="com.chillibits.pmapp.ui.activity.SensorActivity"
android:screenOrientation="portrait"
Expand All @@ -117,8 +120,8 @@

<data
android:host="feinstaub.chillibits.com"
android:scheme="https"
android:pathPattern="/sensor" />
android:pathPattern="/sensor"
android:scheme="https" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
Expand All @@ -128,54 +131,62 @@

<data
android:host="pm.chillibits.com"
android:scheme="https"
android:pathPattern="/sensor" />
android:pathPattern="/sensor"
android:scheme="https" />
</intent-filter>
</activity>
<!-- AddSensorActivity -->
</activity> <!-- LocalNetworkActivity -->
<activity
android:name="com.chillibits.pmapp.ui.activity.LocalNetworkActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="adjustPan" /> <!-- AddSensorActivity -->
<activity
android:name="com.chillibits.pmapp.ui.activity.AddSensorActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="adjustPan" />
<!-- CompareActivity -->
android:windowSoftInputMode="adjustPan" /> <!-- CompareActivity -->
<activity
android:name="com.chillibits.pmapp.ui.activity.CompareActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="adjustPan" />
<!-- QR-Code Scanner -->
android:windowSoftInputMode="adjustPan" /> <!-- QR-Code Scanner -->
<activity
android:name="com.journeyapps.barcodescanner.CaptureActivity"
android:screenOrientation="fullSensor"
tools:replace="android:screenOrientation" />
<!-- WidgetConfigurationActivity -->
tools:replace="android:screenOrientation" /> <!-- WidgetLargeConfigurationActivity -->
<activity
android:name="com.chillibits.pmapp.ui.activity.WidgetConfigurationActivity"
android:name="com.chillibits.pmapp.ui.activity.WidgetLargeConfigurationActivity"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
</intent-filter>
</activity>
<!-- SyncService -->
</activity> <!-- WidgetSmallConfigurationActivity -->
<activity
android:name="com.chillibits.pmapp.ui.activity.WidgetSmallConfigurationActivity"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
</intent-filter>
</activity> <!-- SyncJobService -->
<service
android:name="com.chillibits.pmapp.service.SyncJobService"
android:enabled="true"
android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE" />
<!-- WebRealtimeSyncService -->
<service android:name="com.chillibits.pmapp.service.WebRealtimeSyncService" />
<!-- BootCompletedReceiver -->
android:permission="android.permission.BIND_JOB_SERVICE" /> <!-- SyncService -->
<service
android:name="com.chillibits.pmapp.service.SyncService"
android:enabled="true" /> <!-- WebRealtimeSyncService -->
<service android:name="com.chillibits.pmapp.service.WebRealtimeSyncService" /> <!-- BootCompletedReceiver -->
<receiver android:name="com.chillibits.pmapp.tool.BootCompletedReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<!-- For HTC devices -->
<action android:name="com.htc.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>
<!-- ContentProviderExport -->
</receiver> <!-- ContentProviderExport -->
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.chillibits.pmapp"
Expand All @@ -184,18 +195,29 @@
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<!-- HomeScreen Widget -->
</provider> <!-- HomeScreen Widget large -->
<receiver
android:name="com.chillibits.pmapp.widget.WidgetProvider"
android:label="@string/widget_label">
android:name="com.chillibits.pmapp.widget.WidgetProviderLarge"
android:label="@string/widget_label_large">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>

<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_info" />
android:resource="@xml/widget_info_large" />
</receiver> <!-- HomeScreen Widget small -->
<receiver
android:name="com.chillibits.pmapp.widget.WidgetProviderSmall"
android:label="@string/widget_label_small">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>

<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_info_small" />
</receiver>
</application>

</manifest>
2 changes: 1 addition & 1 deletion app/src/main/java/com/chillibits/pmapp/model/DataRecord.kt
@@ -1,5 +1,5 @@
/*
* Copyright © Marc Auberer 2020. All rights reserved
* Copyright © Marc Auberer 2017 - 2020. All rights reserved
*/

package com.chillibits.pmapp.model
Expand Down

0 comments on commit e75b6e8

Please sign in to comment.