Skip to content

Commit

Permalink
COVIDSafe code from version 2.6 (#50)
Browse files Browse the repository at this point in the history
  • Loading branch information
covidsafe-support committed May 13, 2021
1 parent a63cc33 commit 2406cc2
Show file tree
Hide file tree
Showing 8 changed files with 65 additions and 5 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Expand Up @@ -29,8 +29,8 @@ android {
applicationId "au.gov.health.covidsafe"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 125
versionName "2.5"
versionCode 128
versionName "2.6"
buildConfigField "String", "GITHASH", "\"${getGitHash()}\""
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

Expand Down
5 changes: 5 additions & 0 deletions app/src/main/java/au/gov/health/covidsafe/HomeActivity.kt
Expand Up @@ -31,6 +31,7 @@ import kotlinx.android.synthetic.main.activity_home.*
private const val TAG = "HomeActivity"
private const val UNAUTHORIZED = "Unauthorized"
private const val UNAUTHENTICATED = "unauthenticated"
private const val CLOUDFRONT = "CloudFront"

class HomeActivity : FragmentActivity(), NetworkConnectionCheck.NetworkConnectionListener, SensorDelegate {

Expand All @@ -39,6 +40,7 @@ class HomeActivity : FragmentActivity(), NetworkConnectionCheck.NetworkConnectio
var isWindowFocusChangeLiveData = MutableLiveData<Boolean>()
var isJWTCorrupted = MutableLiveData<Boolean>()
var isJWTExpired = MutableLiveData<Boolean>()
var cloudFrontIssue = MutableLiveData<Boolean>()

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand Down Expand Up @@ -117,6 +119,9 @@ class HomeActivity : FragmentActivity(), NetworkConnectionCheck.NetworkConnectio
if (it.errorBodyMessage.equals(UNAUTHORIZED) || it.errorBodyMessage.equals(UNAUTHENTICATED)) {
isJWTCorrupted.postValue(true)
isJWTExpired.postValue(true)
} else if (it.errorBodyMessage.equals(CLOUDFRONT)) {
isJWTExpired.postValue(true)
cloudFrontIssue.postValue(true)
} else {
Log.d("LEE", "Authenticate")
isJWTCorrupted.postValue(false)
Expand Down
Expand Up @@ -6,6 +6,7 @@ import android.app.job.JobScheduler
import android.app.job.JobService
import android.content.ComponentName
import android.content.Context
import android.util.Log
import au.gov.health.covidsafe.BuildConfig
import au.gov.health.covidsafe.app.TracerApp
import au.gov.health.covidsafe.extensions.isBatteryOptimizationDisabled
Expand All @@ -26,6 +27,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import okhttp3.internal.toHeaderList
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
Expand Down Expand Up @@ -174,7 +176,6 @@ object GetMessagesScheduler {
messagesCall.enqueue(object : Callback<MessagesResponse> {
override fun onResponse(call: Call<MessagesResponse>, response: Response<MessagesResponse>) {
val responseCode = response.code()

if (responseCode == 200) {
CentralLog.d(TAG, "onResponse() got 200 response.")

Expand All @@ -188,6 +189,12 @@ object GetMessagesScheduler {
val messageResponse = MessagesResponse(emptyList(), null, false, errorMessage.message)
messagesResponseCallback?.invoke(messageResponse)
}
} else if (responseCode == 403) {
val server = response.headers()["server"]
if (!server.isNullOrEmpty() && server == "CloudFront") {
val messageResponse = MessagesResponse(emptyList(), null, false, "CloudFront")
messagesResponseCallback?.invoke(messageResponse)
}
} else {
CentralLog.w(TAG, "onResponse() got error response code = $responseCode.")
}
Expand Down
15 changes: 15 additions & 0 deletions app/src/main/java/au/gov/health/covidsafe/ui/home/HomeFragment.kt
Expand Up @@ -73,6 +73,7 @@ class HomeFragment : BaseFragment(), EasyPermissions.PermissionCallbacks, Networ

private var counter: Int = 0
private var jwtExpired: Boolean = false
private var cloudFront: Boolean = false

private var checkIsInternetConnected = false
private var isAppWithLatestVersion = false
Expand Down Expand Up @@ -159,6 +160,7 @@ class HomeFragment : BaseFragment(), EasyPermissions.PermissionCallbacks, Networ
isJWTExpired.observe(this@HomeFragment, isJwtExpired)
isAppUpdateAvailableLiveData.observe(this@HomeFragment, latestAppAvailable)
isWindowFocusChangeLiveData.observe(this@HomeFragment, refreshUiObserver)
cloudFrontIssue.observe(this@HomeFragment, isCloudFrontIssue)
}

homeFragmentViewModel.turnCaseNumber.observe(this, Observer { turnOn ->
Expand Down Expand Up @@ -205,6 +207,15 @@ class HomeFragment : BaseFragment(), EasyPermissions.PermissionCallbacks, Networ
}
permissions_card_subtitle.visibility = GONE
registration_layout.visibility = VISIBLE
if (cloudFront) {
re_register.visibility = GONE
register_body.visibility = GONE
geoblock_error_message.visibility = VISIBLE
} else {
re_register.visibility = VISIBLE
register_body.visibility = VISIBLE
geoblock_error_message.visibility = GONE
}
}
}
})
Expand Down Expand Up @@ -237,6 +248,10 @@ class HomeFragment : BaseFragment(), EasyPermissions.PermissionCallbacks, Networ
jwtExpired = expired
}

private val isCloudFrontIssue = Observer<Boolean> {
cloudFront = it
}

override fun onResume() {
super.onResume()

Expand Down
Expand Up @@ -3,6 +3,7 @@ package au.gov.health.covidsafe.ui.onboarding.fragment.enternumber
import android.annotation.SuppressLint
import android.app.AlertDialog
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.view.KeyEvent
import android.view.LayoutInflater
Expand All @@ -16,9 +17,9 @@ import androidx.annotation.NavigationRes
import androidx.core.content.ContextCompat
import androidx.core.os.bundleOf
import androidx.core.widget.addTextChangedListener
import au.gov.health.covidsafe.preference.Preference
import au.gov.health.covidsafe.R
import au.gov.health.covidsafe.app.TracerApp
import au.gov.health.covidsafe.preference.Preference
import au.gov.health.covidsafe.talkback.setHeading
import au.gov.health.covidsafe.ui.base.PagerChildFragment
import au.gov.health.covidsafe.ui.base.UploadButtonLayout
Expand Down Expand Up @@ -157,6 +158,18 @@ class EnterNumberFragment : PagerChildFragment() {
.setPositiveButton(android.R.string.yes, null).show()
}

fun showPhoneNumberWrong() {
alertDialog?.dismiss()
alertDialog = AlertDialog.Builder(activity)
.setMessage(R.string.max_registrations)
.setIcon(android.R.drawable.ic_dialog_alert)
.setNegativeButton(R.string.max_registration_button2, null)
.setPositiveButton(R.string.max_registrations_button1) { _,_ ->
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://covidsafe-form.service.gov.au/")))
}
.show()
}

fun navigateToOTPPage(
session: String,
challengeName: String,
Expand Down
Expand Up @@ -71,9 +71,11 @@ class EnterNumberPresenter(private val enterNumberFragment: EnterNumberFragment)
when {
it is GetOnboardingOtpException.GetOtpInvalidNumberException -> {
enterNumberFragment.showInvalidPhoneNumberPrompt(R.string.invalid_phone_number)
enterNumberFragment.showPhoneNumberWrong()
}
context.isInternetAvailable() -> {
enterNumberFragment.showGenericError()
enterNumberFragment.showPhoneNumberWrong()
// enterNumberFragment.showGenericError()
}
else -> {
enterNumberFragment.showCheckInternetError()
Expand Down
13 changes: 13 additions & 0 deletions app/src/main/res/layout/view_home_setup_incomplete.xml
Expand Up @@ -148,6 +148,19 @@
tools:visibility="visible"
android:text="@string/jwt_expired_description" />

<TextView
android:id="@+id/geoblock_error_message"
style="@style/fontRobotoRegular16"
android:layout_width="0dp"
android:paddingEnd="12dp"
android:layout_height="wrap_content"
android:gravity="start"
android:textColor="@color/error_red"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/permission_icon"
app:layout_constraintTop_toTopOf="parent"
android:text="@string/geoblock_error_message" />

</androidx.constraintlayout.widget.ConstraintLayout>

</FrameLayout>
Expand Down
5 changes: 5 additions & 0 deletions app/src/main/res/values/strings.xml
Expand Up @@ -296,6 +296,8 @@
<!-- for production -->
<string name="generic_error">Please try again later</string>
<string name="generic_internet_error">Please check your internet connection</string>
<!-- Error message for when a user tries to signup outside of Australia. -->
<string name="geoblock_error_message">You may be connected using an internet provider from outside Australia. This could happen when using international data roaming on a non-Australian SIM card.\n\nPlease connect to an Australian network or use a local Wi-Fi internet connection to continue.</string>
<string name="global_OK">OK</string>
<string name="heading">Heading</string>
<string name="hide">Hide</string>
Expand Down Expand Up @@ -398,6 +400,9 @@
<string name="loading_numbers">Loading latest numbers</string>
<string name="locally_acquired">%@ locally acquired</string>
<string name="main_restrictions">Main restrictions</string>
<string name="max_registration_button2">Cancel</string>
<string name="max_registrations">You\'ve reached the limit to register using the same mobile number.\n\nTo use the same mobile number to register again, you must request to delete your current registration information.</string>
<string name="max_registrations_button1">Request deletion</string>
<!-- Splash Screen -->
<string name="migration_in_progress"> COVIDSafe update in progress. \n\n Please make sure you phone is not switched off until the update is complete.</string>
<string name="minute">Minute</string>
Expand Down

0 comments on commit 2406cc2

Please sign in to comment.