Taiwan Social Distancing App - Android

Overview

social-distancing-android

臺灣社交距離 App 由衛生福利部疾病管制署與台灣人工智慧實驗室共同研發,提供臺灣地區用戶接收 COVID-19 接觸通知,並提醒收到接觸通知的用戶連繫當地衛生局,以減少傳染風險。

● 保障個人隱私

利用手機藍牙功能來估計社交互動,資料以匿名方式儲存在個人手機設備中,確保個人隱私。

● 透過減少互動數量,降低暴露風險

模擬社交互動數量,做為民眾旅遊、通勤、購物的決策參考。

● 在自願的基礎上使用

可以依個人意願安裝或移除 App。

● 減少經濟衝擊

不僅民眾降低互動次數,企業也以降低社交互動的方式營運,可以減少政府發佈強制暫停經濟活動措施的風險。

● 降低傳染風險

鼓勵民眾繼續日常生活,並減少不必要的身體接觸。

● 拯救生命

確診患者可以在匿名的情況下,與有接觸他的人分享接觸資訊。在兼顧隱私保護的情形下,拯救其他生命。

● Stay Safe, Keep Your Family Safe

The Taiwan Social Distancing App was developed by the Taiwan AI Labs in cooperation with the Executive Yuan and the Taiwan Centers for Disease Control in order to reduce the likelihood of disease transmission and keep people safe.

● Privacy and Data Protection

Taiwan Social Distancing App use is anonymous - users do not need to register and no user data will be collected. The only form of data transmission involved is the observation of Bluetooth signals between handheld devices to calculate the distance between each user. \n\nUser privacy will be ensured via decentralized storage of anonymous IDs for individual devices; contact data will be compiled by each respective device.

● Reduce the Spread of Pandemic

Users who have tested positive can choose to anonymously publish their device's anonymous IDs. When users with a positive test publish their results, people who have been in proximity to this device and maintained contact for a certain period of time will receive a notification. This process guarantees the anonymity and personal privacy of those who share their positive test results while contributing to keeping our communities informed and diligent in taking preventative and cautionary measures.

Comments
  • Please consider adding configuration option that only notifies when

    Please consider adding configuration option that only notifies when "necessary"

    We're don't really care about "No exposure detected", right? How about only notifies users when "Exposure detected", instead of pop-up "No exposure detected" every day at a random time?

    enhancement 
    opened by stevencch99 4
  • I'm trying to understand how the app works internally. Could you provide documentation of these APIs?

    I'm trying to understand how the app works internally. Could you provide documentation of these APIs?

    https://github.com/ailabstw/social-distancing-android/blob/aee80856ae1b19cc3f961d1f929944ff2300030e/SocialDistance/src/main/java/tw/gov/cdc/exposurenotifications/Secrets.kt#L1:L43

    Could you provide documentation of these "secret" functions? Thanks.

    opened by 25077667 2
  • Add github action to build on CI

    Add github action to build on CI

    For releasing the source code to everyone, it would be better to have continues integration to ensure every pull request can be build successfully. implement it in github action should be a good solution.

    the patch file is in below which can be applied by git am command:

    $ git am github-action-build.patch
    

    it would be easier if I can submit pull request :D

    github-action-build.patch

    From bd768a10257763847b7825444cd37032577a0243 Mon Sep 17 00:00:00 2001
    From: "Yuren Ju (yurenju)" <[email protected]>
    Date: Sun, 27 Jun 2021 21:50:39 +0800
    Subject: [PATCH 1/2] feat: support github action build
    
    ---
     .github/workflows/build.yaml | 19 +++++++++++++++++++
     1 file changed, 19 insertions(+)
     create mode 100644 .github/workflows/build.yaml
    
    diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
    new file mode 100644
    index 0000000..2693c37
    --- /dev/null
    +++ b/.github/workflows/build.yaml
    @@ -0,0 +1,19 @@
    +name: Build
    +
    +on: [pull_request]
    +
    +jobs:
    +  build:
    +    runs-on: ubuntu-latest
    +
    +    steps:
    +      - uses: actions/checkout@v2
    +      - name: Set up JDK 11
    +        uses: actions/setup-java@v2
    +        with:
    +          java-version: '11'
    +          distribution: 'adopt'
    +      - name: Validate Gradle wrapper
    +        uses: gradle/wrapper-validation-action@v1
    +      - name: Build with Gradle
    +        run: ./gradlew build -x test
    
    From 8c10dea6c409e28250a44721ce2953e6bc9cb9cd Mon Sep 17 00:00:00 2001
    From: "Yuren Ju (yurenju)" <[email protected]>
    Date: Sun, 27 Jun 2021 22:00:44 +0800
    Subject: [PATCH 2/2] fix: disable lint for build process
    
    ---
     SocialDistance/build.gradle | 4 ++++
     1 file changed, 4 insertions(+)
    
    diff --git a/SocialDistance/build.gradle b/SocialDistance/build.gradle
    index 790f26c..4128cac 100644
    --- a/SocialDistance/build.gradle
    +++ b/SocialDistance/build.gradle
    @@ -57,6 +57,10 @@ android {
                 path "src/main/cpp/CMakeLists.txt"
             }
         }
    +
    +    lintOptions {
    +        abortOnError false
    +    }
     }
     
     repositories {
    
    
    enhancement 
    opened by yurenju 2
  • After scanning a QR Code, the message field in an SMS app is empty

    After scanning a QR Code, the message field in an SMS app is empty

    Several users report the message field in an SMS app is empty after scanning a QR Code. Some users indicate that the message field is NOT EMPTY at the very beginning then disappeared immediately.

    We received 11 reports during 6/15~10/11. We have been receiving more than 20 reports since 11/28. We did not change relative behavior since 6/15.

    e82ccb373dedda130f3de8201a261b7fe42f5f55

    bug help wanted 
    opened by catcutecat 1
  • Package name part should not start with an uppercase letter

    Package name part should not start with an uppercase letter

    https://github.com/ailabstw/social-distancing-android/blob/8e4e761dc681a0a71a48c609f58c8b199c41c84f/SocialDistance/src/main/java/tw/gov/cdc/exposurenotifications/activity/DailySummaryAdapter.kt#L1

    https://github.com/ailabstw/social-distancing-android/blob/8e4e761dc681a0a71a48c609f58c8b199c41c84f/SocialDistance/src/main/java/tw/gov/cdc/exposurenotifications/activity/DailySummaryViewModel.kt#L1

    The package name didn't match the folder structure also.

    bug 
    opened by seventhmoon 0
  • Double Splash Screen on Android 12

    Double Splash Screen on Android 12

    https://developer.android.com/about/versions/12/features/splash-screen

    Android 12 adds the SplashScreen API, which enables a new app launch animation for all apps.

    However, Social Distancing app already implemented a custom Splash Screen. Which caused double Splash Screen on Android 12.

    The current implementation is a wait of 600ms https://github.com/ailabstw/social-distancing-android/blob/4aaa3e3e10d49ecc2b9abe0379c332b86f9b6b72/SocialDistance/src/main/java/tw/gov/cdc/exposurenotifications/activity/SplashActivity.kt#L14-L17

    It will be better if migrate to SplashScreen Compat Library

    opened by seventhmoon 3
  • Please consider adding android:exported to true for BarcodeScanningActivity

    Please consider adding android:exported to true for BarcodeScanningActivity

    BarcodeScanningActivity is very userful. Hope it can support other automation applications. in shortcuts.xml add exported to true. Help the elders reduce more steps.

    thanks

    opened by twjazzhuang 2
  • Setting requestedOrientation to ActivityInfo.SCREEN_ORIENTATION_PORTRAIT may cause incompatibility on large screen devices

    Setting requestedOrientation to ActivityInfo.SCREEN_ORIENTATION_PORTRAIT may cause incompatibility on large screen devices

    https://github.com/ailabstw/social-distancing-android/blob/c7179d943bc242a8eca2fd1cc4eda0f62523e7b3/SocialDistance/src/main/java/tw/gov/cdc/exposurenotifications/activity/BaseActivity.kt#L25

    Any reason of forcing portrait mode? It is possible that if a foldable device unfold, the screen will be in landscape mode.

    Ref: https://developer.android.com/guide/topics/ui/foldables

    enhancement 
    opened by seventhmoon 1
  • Private property naming convention

    Private property naming convention

    https://github.com/ailabstw/social-distancing-android/blob/develop/SocialDistance/src/main/java/tw/gov/cdc/exposurenotifications/activity/UploadActivity.kt

    • Private property name 'SUPPORTED_TEST_TYPES' should not contain underscores in the middle or the end
    • Private property name 'COMMAS' doesn't match regex '_?[a-z][A-Za-z\d]*'
    • Private property name 'BASE64' doesn't match regex '_?[a-z][A-Za-z\d]*'
    • Private property name 'HASH_ALGO' should not contain underscores in the middle or the end
    good first issue 
    opened by seventhmoon 3
  • Removing network security config which has no use

    Removing network security config which has no use

    the following network security config has no use and should be removed

        <domain-config cleartextTrafficPermitted="false">
            <domain includeSubdomains="true">secure.example.com</domain>
        </domain-config>
    
    opened by seventhmoon 5
✨ Social network app made with Android Compose, full Kotlin, Firebase Authentication, Storage and Firestore 🚀

Your friends, for real. Share daily random moments with your friends and discover who they really are. ✨ Instant Instant is a social media actually un

Vincent Guillebaud 58 Dec 23, 2022
A fully functional social media app built with Kotlin (Android Studio) with multiple features

A social media app built with Kotlin (Android Studio) with multiple features ?? If you like this repo, give it a star ✨ and share ????‍?? it to your f

ThanhPhong 9 Dec 13, 2022
Social media app but with new features like translate messages and posts , support video & images as posts , chat and notifications , etc...

social-media-app Social media app but with new features like translate messages and posts , support video & images as posts , chat and notifications ,

Kareem Aboelatta 15 Dec 13, 2022
Is a new version of code for my (Social media app) with Clean Architecture

Is a new version of code for my Social media app with Clean Architecture. I used most of Clean code tips with android, SOLID principles and design-patterns..

Kareem Aboelatta 20 Dec 13, 2022
Modern Social Profile Layout For Android

Social Profile Layout Modern Simple Social Profile Layout for your Android App Project Installation Just run this project on your Android Studio Proje

Yogi Prasetyawan 4 Dec 21, 2022
A messaging social platform based on Discord for Desktop and Android.

AP-FinalProject A secure messaging social platform based on Discord for Desktop and Android. This is my final project for Advanced-Programming (AP) in

AmirHosseinAghajari 10 Oct 1, 2022
🐦 Loritta's Social media relayer via Discord Webhooks micro-service

?? SocialRelayer ?? SocialRelayer is a social media relayer to Discord via webhooks, pulling Loritta's guild configurations to automatically register

Loritta 6 Jun 2, 2022
A cryptocurrency data aggregator that tracks price, volume, social stats.

CryptoMania A cryptocurrency data aggregator that tracks price, volume, social stats. Challenge description Design & implement an Android application

Gabriel TEKOMBO 23 Aug 6, 2022
A minimalist clone of the popular Social Media Platform "Instagram"

InstaLocal A minimalist clone of the popular Social Media Platform "Instagram" powered by Firebase and written in Kotlin. The app allows users to sign

Raktim Bhuyan 1 Nov 7, 2021
H4SGTAG MANAGER - CRUD that saves hashtags for social media

H4SGTAG_MANAGER CRUD that saves hashtags for social media made using android stu

Aldo Malacara 0 Jan 13, 2022
Food Recipe App is an app for collecting most of food recipe in one app

Food Recipe App is an app for collecting most of food recipe in one app

Heba Elsaid 10 Dec 25, 2022
Arjun Naik 1 Apr 16, 2022
Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks

Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks

MindOrks 1.2k Dec 29, 2022
Android-basics-kotlin-tip-time-app - Tip Time app from Android Basics in Kotlin

Tip Time Tip Time app from Android Basics in Kotlin at developers.google.com. It

Ramon Lima e Meira 0 Jan 2, 2022
Environmental-Monitoring-Android-App - This Android App is used to monitor environmental parameters data from remote sensors

Environmental-Monitoring-Android-App - This Android App is used to monitor environmental parameters data from remote sensors. Parameters includes but not limited to temperature, humidity, air quality, level of Ionizing radiation, ...

Francisco Pascal Elias TAMBASAFIDY 0 Jan 4, 2022
Library to change Android launcher App Icon and App Name programmatically !

AppIconNameChanger Change Android App launcher Icon and App Name programmatically ! Download Demo APK from HERE Kindly use the following links to use

Prabhakar Thota 587 Dec 29, 2022
HideDroid is an Android app that allows the per-app anonymization of collected personal data according to a privacy level chosen by the user.

HideDroid An Android App for preserving user privacy HideDroid is an Android app that allows the per-app anonymization of collected personal data acco

null 100 Dec 12, 2022
Water tracker app helps you with daily reminder to drink water. This app is just a trial to test and improve my android development skills.

?? About Me I am a self-thaught developer learning web and android development. This app is just a trial to test and improve my android development sk

Sinan Sonmez (Chaush) 28 Dec 17, 2022
Visual Studio App Center Sample App for Android

Visual Studio App Center Sample App for Android The Android application in this repository and its corresponding tutorials will help you quickly and e

Yourhomeplan 1 Oct 13, 2021