Skip to content
This repository has been archived by the owner on Jun 20, 2023. It is now read-only.

Commit

Permalink
Merge pull request #268 from corona-warn-app/dev
Browse files Browse the repository at this point in the history
0.8.7 Hotfix Release
  • Loading branch information
jakobmoellerdev authored Jun 8, 2020
2 parents 1aaa718 + 4dc73f1 commit 360f581
Show file tree
Hide file tree
Showing 18 changed files with 24 additions and 379 deletions.
6 changes: 0 additions & 6 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,6 @@ jobs:
environment:
JVM_OPTS: -Xmx2048m
GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false
- run:
name: JaCoCo report
command: ./gradlew :Corona-Warn-App:jacocoTestReportDeviceRelease
environment:
JVM_OPTS: -Xmx2048m
GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false
- scan-sonar
- save-build-cache
- save_cache:
Expand Down
5 changes: 2 additions & 3 deletions Corona-Warn-App/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ android {
applicationId 'de.rki.coronawarnapp'
minSdkVersion 23
targetSdkVersion 29
versionCode 13
versionName "0.8.6"
versionCode 14
versionName "0.8.7"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

buildConfigField "String", "DOWNLOAD_CDN_URL", "\"$DOWNLOAD_CDN_URL\""
Expand Down Expand Up @@ -82,7 +82,6 @@ android {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
testCoverageEnabled true
buildConfigField "String", "EXPORT_SIGNATURE_ID", "\"de.rki.coronawarnapp-dev\""
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Transformations
import androidx.lifecycle.ViewModel
import de.rki.coronawarnapp.storage.SubmissionRepository
import de.rki.coronawarnapp.util.TanHelper

class SubmissionTanViewModel : ViewModel() {

Expand All @@ -17,21 +16,7 @@ class SubmissionTanViewModel : ViewModel() {

val isValidTanFormat =
Transformations.map(tan) {
it != null &&
it.length == TanConstants.MAX_LENGTH &&
TanHelper.isChecksumValid(it) &&
TanHelper.allCharactersValid(it)
}

val tanChecksumValid =
Transformations.map(tan) {
((it !== null && it.trim().length == TanConstants.MAX_LENGTH) &&
TanHelper.isChecksumValid(it).not()).not()
}

val tanCharactersValid =
Transformations.map(tan) {
!((it != null) && TanHelper.allCharactersValid(it).not())
it != null && it.length == TanConstants.MAX_LENGTH
}

fun storeTeletan() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package de.rki.coronawarnapp.ui.submission

object TanConstants {
const val MAX_LENGTH = 10
const val MAX_LENGTH = 7
val ALPHA_NUMERIC_CHARS = ('a'..'z').plus('A'..'Z').plus('0'..'9')
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@ import android.view.inputmethod.InputMethodManager
import android.widget.FrameLayout
import androidx.core.widget.doOnTextChanged
import de.rki.coronawarnapp.R
import de.rki.coronawarnapp.ui.submission.TanConstants.MAX_LENGTH
import de.rki.coronawarnapp.util.TanHelper
import java.util.Locale
import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_edittext
import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_1
import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_2
Expand All @@ -19,11 +16,6 @@ import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_4
import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_5
import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_6
import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_7
import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_8
import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_9
import kotlinx.android.synthetic.main.view_tan_input.view.tan_input_textview_10
import kotlinx.android.synthetic.main.view_tan_input.view.dash_view_1
import kotlinx.android.synthetic.main.view_tan_input.view.dash_view_2

class TanInput(context: Context, attrs: AttributeSet) : FrameLayout(context, attrs) {

Expand All @@ -38,7 +30,7 @@ class TanInput(context: Context, attrs: AttributeSet) : FrameLayout(context, att
TanConstants.ALPHA_NUMERIC_CHARS.contains(it)
}
}
private var lengthFilter = InputFilter.LengthFilter(MAX_LENGTH)
private val lengthFilter = InputFilter.LengthFilter(TanConstants.MAX_LENGTH)

var listener: ((String?) -> Unit)? = null

Expand All @@ -49,9 +41,6 @@ class TanInput(context: Context, attrs: AttributeSet) : FrameLayout(context, att

tan_input_edittext.filters = arrayOf(whitespaceFilter, alphaNumericFilter, lengthFilter)

dash_view_1.text = "-"
dash_view_2.text = "-"

// register listener
tan_input_edittext.doOnTextChanged { text, _, _, _ -> updateTan(text) }
setOnClickListener { showKeyboard() }
Expand All @@ -67,20 +56,9 @@ class TanInput(context: Context, attrs: AttributeSet) : FrameLayout(context, att
}
}

private fun limitLength(length: Int?) {
lengthFilter = InputFilter.LengthFilter(if (length != null) length else MAX_LENGTH)
tan_input_edittext.filters = arrayOf(whitespaceFilter, alphaNumericFilter, lengthFilter)
}

private fun updateTan(text: CharSequence?) {
this.tan = text?.toString()?.toUpperCase(Locale.getDefault())
this.tan = text?.toString()
updateDigits()
tan?.let {
limitLength(
if (TanHelper.allCharactersValid(it)) null
else it.length
)
}
notifyListener()
}

Expand All @@ -93,24 +71,9 @@ class TanInput(context: Context, attrs: AttributeSet) : FrameLayout(context, att
tan_input_textview_4,
tan_input_textview_5,
tan_input_textview_6,
tan_input_textview_7,
tan_input_textview_8,
tan_input_textview_9,
tan_input_textview_10
tan_input_textview_7
).forEachIndexed { i, tanDigit ->
tanDigit.text = digitAtIndex(i)
tanDigit.background =
if (digitAtIndex(i) == "")
resources.getDrawable(R.drawable.tan_input_digit, null)
else if (TanHelper.isTanCharacterValid(digitAtIndex(i)))
resources.getDrawable(R.drawable.tan_input_digit_entered, null)
else resources.getDrawable(R.drawable.tan_input_digit_error, null)

tanDigit.setTextColor(
if (TanHelper.isTanCharacterValid(digitAtIndex(i)))
resources.getColor(R.color.colorTextSemanticNeutral, null)
else resources.getColor(R.color.colorTextSemanticRed, null)
)
}

private fun digitAtIndex(index: Int): String = tan?.getOrNull(index)?.toString() ?: ""
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,3 @@ fun formatShowRiskStatusCard(deviceUiState: DeviceUIState?): Int =
deviceUiState != DeviceUIState.PAIRED_POSITIVE_TELETAN &&
deviceUiState != DeviceUIState.SUBMITTED_FINAL
)

fun formatShowTanCharacterError(
charactersValid: Boolean,
checksumValid: Boolean
): Int = formatVisibility(checksumValid && !charactersValid)
29 changes: 10 additions & 19 deletions Corona-Warn-App/src/main/res/drawable/tan_input_digit.xml
Original file line number Diff line number Diff line change
@@ -1,20 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/submission_tan_input_digit_radius" />
<solid android:color="@color/colorSurface2" />
</shape>
</item>
<item
android:height="1.5dp"
android:gravity="bottom">
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:bottomLeftRadius="@dimen/submission_tan_input_digit_radius" />
<corners android:bottomRightRadius="@dimen/submission_tan_input_digit_radius" />
<solid android:color="@color/colorTextSemanticNeutral" />
</shape>
</item>
</layer-list>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/submission_tan_input_digit_radius" />
<gradient
android:angle="90"
android:centerColor="@color/colorSurface2"
android:centerX="0.02"
android:endColor="@color/colorSurface2"
android:startColor="@color/colorTextSemanticNeutral" />
</shape>

This file was deleted.

20 changes: 0 additions & 20 deletions Corona-Warn-App/src/main/res/drawable/tan_input_digit_error.xml

This file was deleted.

28 changes: 0 additions & 28 deletions Corona-Warn-App/src/main/res/layout/fragment_submission_tan.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

<data>

<import type="de.rki.coronawarnapp.util.formatter.FormatterHelper" />
<import type="de.rki.coronawarnapp.util.formatter.FormatterSubmissionHelper" />

<variable
Expand Down Expand Up @@ -55,33 +54,6 @@
app:layout_constraintStart_toStartOf="@+id/guideline_start"
app:layout_constraintTop_toBottomOf="@+id/submission_tan_body" />

<TextView
android:id="@+id/submission_tan_character_error"
style="@style/subtitle"
android:layout_width="@dimen/match_constraint"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_small"
android:visibility="@{FormatterSubmissionHelper.formatShowTanCharacterError(viewmodel.tanCharactersValid, viewmodel.tanChecksumValid)}"
android:text="@string/submission_tan_character_error"
android:textColor="@color/colorTextSemanticRed"
app:layout_constraintEnd_toStartOf="@+id/guideline_end"
app:layout_constraintStart_toStartOf="@+id/guideline_start"
app:layout_constraintTop_toBottomOf="@id/submission_tan_input" />

<TextView
android:id="@+id/submission_tan_error"
style="@style/subtitle"
android:layout_width="@dimen/match_constraint"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_small"
android:visibility="@{FormatterHelper.formatVisibility(!viewmodel.tanChecksumValid)}"
android:text="@string/submission_tan_error"
android:textColor="@color/colorTextSemanticRed"
app:layout_constraintEnd_toStartOf="@+id/guideline_end"
app:layout_constraintStart_toStartOf="@+id/guideline_start"
app:layout_constraintTop_toBottomOf="@id/submission_tan_input" />


<Button
android:id="@+id/submission_tan_button_enter"
style="@style/buttonPrimary"
Expand Down
52 changes: 4 additions & 48 deletions Corona-Warn-App/src/main/res/layout/view_tan_input.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,26 +36,17 @@
android:id="@+id/tan_input_textview_3"
style="@style/tanInputDigit"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toStartOf="@+id/dash_view_1"
app:layout_constraintEnd_toStartOf="@+id/tan_input_textview_4"
app:layout_constraintStart_toEndOf="@+id/tan_input_textview_2"
app:layout_constraintTop_toTopOf="parent"
tools:text="X" />

<TextView
android:id="@+id/dash_view_1"
style="@style/tanInputDash"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toStartOf="@+id/tan_input_textview_4"
app:layout_constraintStart_toEndOf="@+id/tan_input_textview_3"
app:layout_constraintTop_toTopOf="parent"
tools:text="-" />

<TextView
android:id="@+id/tan_input_textview_4"
style="@style/tanInputDigit"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toStartOf="@+id/tan_input_textview_5"
app:layout_constraintStart_toEndOf="@+id/dash_view_1"
app:layout_constraintStart_toEndOf="@+id/tan_input_textview_3"
app:layout_constraintTop_toTopOf="parent"
tools:text="X" />

Expand All @@ -72,54 +63,19 @@
android:id="@+id/tan_input_textview_6"
style="@style/tanInputDigit"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toStartOf="@+id/dash_view_2"
app:layout_constraintEnd_toStartOf="@+id/tan_input_textview_7"
app:layout_constraintStart_toEndOf="@+id/tan_input_textview_5"
app:layout_constraintTop_toTopOf="parent"
tools:text="X" />

<TextView
android:id="@+id/dash_view_2"
style="@style/tanInputDash"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toStartOf="@+id/tan_input_textview_7"
app:layout_constraintStart_toEndOf="@+id/tan_input_textview_6"
app:layout_constraintTop_toTopOf="parent"
tools:text="-" />

<TextView
android:id="@+id/tan_input_textview_7"
style="@style/tanInputDigit"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toStartOf="@+id/tan_input_textview_8"
app:layout_constraintStart_toEndOf="@+id/dash_view_2"
app:layout_constraintTop_toTopOf="parent"
tools:text="X" />

<TextView
android:id="@+id/tan_input_textview_8"
style="@style/tanInputDigit"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toStartOf="@+id/tan_input_textview_9"
app:layout_constraintStart_toEndOf="@+id/tan_input_textview_7"
app:layout_constraintTop_toTopOf="parent"
tools:text="X" />

<TextView
android:id="@+id/tan_input_textview_9"
style="@style/tanInputDigit"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toStartOf="@+id/tan_input_textview_10"
app:layout_constraintStart_toEndOf="@+id/tan_input_textview_8"
app:layout_constraintStart_toEndOf="@+id/tan_input_textview_6"
app:layout_constraintTop_toTopOf="parent"
tools:text="X" />

<TextView
android:id="@+id/tan_input_textview_10"
style="@style/tanInputDigit"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/tan_input_textview_9"
app:layout_constraintTop_toTopOf="parent"
tools:text="X" />
</androidx.constraintlayout.widget.ConstraintLayout>

</layout>
Loading

0 comments on commit 360f581

Please sign in to comment.