Skip to content

Commit

Permalink
Merge pull request #371 from rokwire/release/v2.8.11+811
Browse files Browse the repository at this point in the history
Release/v2.8.11+811
  • Loading branch information
sandeep-ps authored Nov 5, 2020
2 parents 1a1c8f4 + ef15f17 commit bc3aa87
Show file tree
Hide file tree
Showing 102 changed files with 5,381 additions and 3,143 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ xcuserdata
/.travis.yml
/secrets.tar.enc

/assets/configs.json.enc
/assets/organizations.json.enc
/assets/organizations.hook.json.enc

/ios/Runner/GoogleService-Info-Dev.plist
/ios/Runner/GoogleService-Info-Prod.plist
Expand Down
123 changes: 123 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,129 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## Unreleased

## [2.8.11] - 2020-11-05
### Added
- Pass application id as header field in FCM API calls from sports service [#364](https://github.com/rokwire/safer-illinois-app/issues/364).

### Fixed
- Fixed various string entry translations [#364](https://github.com/rokwire/safer-illinois-app/issues/364).
- Fixed Initial loading screen [#366](https://github.com/rokwire/safer-illinois-app/issues/366).
- CareTeamPanel: update link urls [#269](https://github.com/rokwire/safer-illinois-app/issues/269).
- User is not able to Sign out successfully by tapping the Sign-out button on Personal Info screen [#303](https://github.com/rokwire/safer-illinois-app/issues/303).

## [2.8.10] - 2020-11-04
### Added
- Added ability to enable/disable capitol stuff from app config settings [#353](https://github.com/rokwire/safer-illinois-app/issues/353).
- Check if Capitol staff user has a roster UIN on app resume [#355](https://github.com/rokwire/safer-illinois-app/issues/355).

### Changed
- Acknowledge exposure log url from app config.
- Various strings updated [#357](https://github.com/rokwire/safer-illinois-app/issues/357), [#359](https://github.com/rokwire/safer-illinois-app/issues/359).

### Fixed
- Unable to save qr code during the onboarding process after fresh install [#361](https://github.com/rokwire/safer-illinois-app/issues/361).

## [2.8.9] - 2020-11-03
### Added
- Send additional exposure stats with processed test result analytics event [#332](https://github.com/rokwire/safer-illinois-app/issues/332).
- Implemented exclusive selection by group in role selection panels [#347](https://github.com/rokwire/safer-illinois-app/issues/347).
- More precise adjusting phone numbers with "+1" prefix [#350](https://github.com/rokwire/safer-illinois-app/issues/350).

## [2.8.8] - 2020-11-02
### Fixed
- Do not ignore unknown user roles [#343](https://github.com/rokwire/safer-illinois-app/issues/343).

## [2.8.7] - 2020-10-30
### Added
- Capitol Staff [#342](https://github.com/rokwire/safer-illinois-app/issues/342).
- Added FCM topics subscription support from health status [#339](https://github.com/rokwire/safer-illinois-app/issues/339).

## [2.8.6] - 2020-10-28
### Changed
- Prepare app for flexable health status codes, health status strings cleanup.

## [2.8.5] - 2020-10-27
### Fixed
- Home panel is not refreshing after successful login and/or private key entrance [#333](https://github.com/rokwire/safer-illinois-app/issues/333).

## [2.8.4] - 2020-10-23
### Added
- Added ability to refer local strings from rules and action texts.

### Fixed
- Fixed "force-test" rule behavior, step texts updated either.

## [2.8.3] - 2020-10-22
### Added
- Enable again Talent Chooser for Safer app [#306](https://github.com/rokwire/safer-illinois-app/issues/306).
- Multilanguage support in Health rules and action events [#308](https://github.com/rokwire/safer-illinois-app/issues/308).

### Fixed
- Fixed miscellaneous strings translation, display dates localized [#308](https://github.com/rokwire/safer-illinois-app/issues/308).


## [2.8.2] - 2020-10-21
### Added
- Added "force-test" rule status and action. [#319](https://github.com/rokwire/safer-illinois-app/issues/319).
- Added "referenceDate" origin when evaluating status. [#319](https://github.com/rokwire/safer-illinois-app/issues/319).

### Changed
- Apply rule status priority on status downgrade. [#319](https://github.com/rokwire/safer-illinois-app/issues/319).

### Fixed
- Unable to log in with iOS Default Browser changed [#315](https://github.com/rokwire/safer-illinois-app/issues/315).

## [2.8.1] - 2020-10-20
### Added
- Added ability to turn off multiple organizations support and build single organization app.
- Added backward support for single organization app upgrade.
- Log "exposure_score" in "check_exposures" analytics event [#309](https://github.com/rokwire/safer-illinois-app/issues/309).

### Changed
- Multiple organizations support - cleanup.

## [2.8.0] - 2020-10-19
### Added
- Multiple organizations support - first round.

## [2.7.9] - 2020-10-16
### Changed
- Covid19TestLocations panel: update unavailable waith time text [#279](https://github.com/rokwire/safer-illinois-app/issues/279)

## [2.7.8] - 2020-10-15
### Added
- Added encryption support to storage.

### Changed
- Log user UUID un-anonymously when launching RootPanel [#296](https://github.com/rokwire/safer-illinois-app/issues/296)
- Covid19TestLocations Update Wait time text [#279](https://github.com/rokwire/safer-illinois-app/issues/279)
- Store RSA private key separately for organization and environment (Android).

## [2.7.7] - 2020-10-14
### Changed
- Add external link icon for SettingsHomePanel buttons [#241](https://github.com/rokwire/safer-illinois-app/issues/241)
- Remove private params from the url. Additional fix [#110](https://github.com/rokwire/safer-illinois-app/issues/110).
- Add external link icon for SettingsHomePanel buttons [241](https://github.com/rokwire/safer-illinois-app/issues/241).
- Add building access status to the Home Status widget [#243](https://github.com/rokwire/safer-illinois-app/issues/243)
- Add building access status to the Home Status widget [#269](https://github.com/rokwire/safer-illinois-app/issues/269)
- Store RSA private key separately for organization and environment (iOS only for now).
- Show authorization panels in onboarding only when needed.

## [2.7.6] - 2020-10-13
### Changed
- Upgrade Flutter to v1.22.1 [#283](https://github.com/rokwire/safer-illinois-app/issues/283).
- Fixed environmnets switching from Debug panel.
- Internal cleanup.
- Updated rules [#281](https://github.com/rokwire/safer-illinois-app/issues/281).

## [2.7.5] - 2020-10-09
### Added
- Added "INCONCLUSIVE" and "REJECTED" results to "COVID-19 PCR" test [#271](https://github.com/rokwire/safer-illinois-app/issues/271).
- StatusPanel content improvement for Accessibility Large Text [275](https://github.com/rokwire/safer-illinois-app/issues/275).

### Changed
- Updated "PCR.positive-NIP" status rule [#273](https://github.com/rokwire/safer-illinois-app/issues/273).

## [2.7.4] - 2020-10-08
### Added
- Added boolean getters for config environment [#266](https://github.com/rokwire/safer-illinois-app/issues/266).
Expand Down
60 changes: 60 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,66 @@ The official COVID-19 app of the University of Illinois. Powered by the [Rokwire

Alternatively, you can use AESCrypt.encode from /lib/utils/Crypt.dart to generate content of /assets/configs.json.enc.

NB: For versions prior to 2.8.

#### • /assets/organizations.hook.json.enc
1. JSON data with the following format:
```
{
"url": "https://api-dev.rokwire.illinois.edu/assets/buckets/items/organizations",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX"
}
```
2. Generate random 16-bytes AES128 key.
3. AES encrypt the JSON string, CBC mode, PKCS7 padding, using the AES.
4. Create a data blob contains the AES key at the beginning followed by the encrypted data.
5. Get a base64 encoded string of the data blob and save it as /assets/organizations.hook.json.enc.

Alternatively, you can use AESCrypt.encode from /lib/utils/Crypt.dart to generate content of /assets/organizations.hook.json.enc.

NB: For version 2.8 and later.

#### • /assets/organizations.json.enc
1. JSON data with the following format:
```
[
{
"id": "uiuc",
"name": "UIUC",
"icon_url": "https://upload.wikimedia.org/wikipedia/commons/7/7c/Illinois_Block_I.png",
"default": true,
"environments": {
"production": {
"url": "https://api.rokwire.illinois.edu/covid/app/configs",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX",
"default": "release"
},
"dev": {
"url": "https://api-dev.rokwire.illinois.edu/covid/app/configs",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX",
"default": "debug"
},
"test": {
"url": "https://api-test.rokwire.illinois.edu/covid/app/configs",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX"
}
}
},
...
]
```
2. Generate random 16-bytes AES128 key.
3. AES encrypt the JSON string, CBC mode, PKCS7 padding, using the AES.
4. Create a data blob contains the AES key at the beginning followed by the encrypted data.
5. Get a base64 encoded string of the data blob and save it as /assets/organizations.json.enc.

Alternatively, you can use AESCrypt.encode from /lib/utils/Crypt.dart to generate content of /assets/organizations.json.enc.

NB: Optional way to supply statically embeded organizations in appication bundle. If the list contains single organization definition the application switches to single organization mode. "/assets/organizations.hook.json.enc" must be omited from application assets in order to "/assets/organizations.json.enc" to take efect.

NB: For version 2.8 and later.


#### • /ios/Runner/GoogleService-Info-Debug.plist
#### • /ios/Runner/GoogleService-Info-Release.plist

Expand Down
10 changes: 7 additions & 3 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,11 @@
tools:ignore="GoogleAppIndexingWarning"
tools:replace="android:allowBackup"
android:usesCleartextTraffic="true">

<meta-data
android:name="flutterEmbedding"
android:value="2" />

<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="${mapsApiKey}"/>
Expand All @@ -71,10 +76,9 @@
android:hardwareAccelerated="true"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize">

<meta-data
android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
android:value="true" />
android:name="io.flutter.embedding.android.SplashScreenDrawable"
android:resource="@drawable/splash_image" />
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
Expand Down
15 changes: 3 additions & 12 deletions android/app/src/main/java/edu/illinois/covid/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,36 +16,27 @@

package edu.illinois.covid;

import android.app.Application;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.Intent;

import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat;

import io.flutter.app.FlutterApplication;

import io.flutter.plugin.common.PluginRegistry;
import io.flutter.plugins.GeneratedPluginRegistrant;
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService;

public class App extends FlutterApplication implements PluginRegistry.PluginRegistrantCallback {
public class App extends Application {

private static final String NOTIFICATIONS_CHANNEL_ID = "Notifications_Channel_ID";

@Override
public void onCreate() {
super.onCreate();
init();
}

private void init() {
FlutterFirebaseMessagingService.setPluginRegistrant(this);
}

@Override
public void registerWith(PluginRegistry pluginRegistry) {
GeneratedPluginRegistrant.registerWith(pluginRegistry);
}

public void showNotification(String title, String contentText) {
Intent intent = new Intent(this, MainActivity.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ public void onCreate() {
SharedPreferencesBackupHelper healthHelper = new SharedPreferencesBackupHelper(this, Constants.HEALTH_SHARED_PREFS_FILE_NAME);
addHelper(PREFS_BACKUP_KEY, healthHelper);

SharedPreferencesBackupHelper encryptionHelper = new SharedPreferencesBackupHelper(this, Constants.ENCRYPTION_SHARED_PREFS_FILE_NAME);
addHelper(PREFS_BACKUP_KEY, encryptionHelper);

SharedPreferencesBackupHelper exposureTeksHelper = new SharedPreferencesBackupHelper(this, Constants.EXPOSURE_TEKS_SHARED_PREFS_FILE_NAME);
addHelper(PREFS_BACKUP_KEY, exposureTeksHelper);
}
Expand Down
6 changes: 5 additions & 1 deletion android/app/src/main/java/edu/illinois/covid/Constants.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ public class Constants {
static final String APP_BLUETOOTH_AUTHORIZATION = "bluetooth_authorization";
static final String FIREBASE_INFO = "firebaseInfo";
static final String DEVICE_ID_KEY = "deviceId";
static final String HEALTH_RSI_PRIVATE_KEY = "healthRSAPrivateKey";
static final String HEALTH_RSA_PRIVATE_KEY = "healthRSAPrivateKey";
static final String ENCRYPTION_KEY_KEY = "encryptionKey";
static final String BARCODE_KEY = "barcode";

//Maps
Expand All @@ -56,6 +57,9 @@ public class Constants {
//Health
static final String HEALTH_SHARED_PREFS_FILE_NAME = "health_shared_prefs";

//Encryption Key
static final String ENCRYPTION_SHARED_PREFS_FILE_NAME = "encryption_shared_prefs";

//Exposure
public static final String EXPOSURE_PLUGIN_METHOD_NAME_START = "start";
public static final String EXPOSURE_PLUGIN_METHOD_NAME_STOP = "stop";
Expand Down
Loading

0 comments on commit bc3aa87

Please sign in to comment.