Skip to content

Commit ee0f0a1

Browse files
Added open source libraries licensing (eu-digital-green-certificates#59)
1 parent c089c69 commit ee0f0a1

File tree

9 files changed

+77
-6
lines changed

9 files changed

+77
-6
lines changed

app/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ plugins {
55
id 'androidx.navigation.safeargs.kotlin'
66
id 'kotlin-kapt'
77
id 'dagger.hilt.android.plugin'
8+
id 'com.google.android.gms.oss-licenses-plugin'
89
}
910

1011
android {
@@ -84,5 +85,7 @@ dependencies {
8485

8586
implementation Deps.timber
8687

88+
implementation Deps.google_licenses
89+
8790
testImplementation Deps.test_junit
8891
}

app/src/main/AndroidManifest.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,13 @@
2222
</intent-filter>
2323
</activity>
2424

25+
<activity
26+
android:name="com.google.android.gms.oss.licenses.OssLicensesMenuActivity"
27+
android:theme="@style/Theme.DgcaVerifierAppAndroid.Licensing" />
28+
<activity
29+
android:name="com.google.android.gms.oss.licenses.OssLicensesActivity"
30+
android:theme="@style/Theme.DgcaVerifierAppAndroid.Licensing" />
31+
2532
<provider
2633
android:name="androidx.work.impl.WorkManagerInitializer"
2734
android:authorities="${applicationId}.workmanager-init"

app/src/main/java/dgca/verifier/app/android/settings/SettingsFragment.kt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import android.view.ViewGroup
3232
import androidx.fragment.app.Fragment
3333
import androidx.fragment.app.viewModels
3434
import androidx.navigation.fragment.findNavController
35+
import com.google.android.gms.oss.licenses.OssLicensesMenuActivity
3536
import dagger.hilt.android.AndroidEntryPoint
3637
import dgca.verifier.app.android.BuildConfig
3738
import dgca.verifier.app.android.MainActivity
@@ -64,12 +65,14 @@ class SettingsFragment : Fragment() {
6465
super.onViewCreated(view, savedInstanceState)
6566
setHasOptionsMenu(true)
6667
(requireActivity() as MainActivity).setSupportActionBar(binding.toolbar)
67-
binding.privacyPolicy.setOnClickListener { launchWebIntent() }
68+
binding.privacyInformation.setOnClickListener { launchWebIntent() }
69+
binding.licenses.setOnClickListener { openLicenses() }
6870
binding.syncPublicKeys.setOnClickListener { viewModel.syncPublicKeys() }
6971
binding.version.text = getString(R.string.version, BuildConfig.VERSION_NAME)
7072

7173
viewModel.inProgress.observe(viewLifecycleOwner, {
72-
binding.privacyPolicy.isClickable = it != true
74+
binding.privacyInformation.isClickable = it != true
75+
binding.licenses.isClickable = it != true
7376
binding.syncPublicKeys.isClickable = it != true
7477
binding.progressBar.visibility = if (it == true) View.VISIBLE else View.GONE
7578
})
@@ -94,4 +97,11 @@ class SettingsFragment : Fragment() {
9497
}
9598
requireContext().startActivity(intent)
9699
}
100+
101+
private fun openLicenses() {
102+
OssLicensesMenuActivity.setActivityTitle(getString(R.string.licenses))
103+
requireContext().apply {
104+
startActivity(Intent(this, OssLicensesMenuActivity::class.java))
105+
}
106+
}
97107
}

app/src/main/res/layout/fragment_settings.xml

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
app:layout_constraintTop_toBottomOf="@+id/toolbar" />
5454

5555
<com.google.android.material.button.MaterialButton
56-
android:id="@+id/privacyPolicy"
56+
android:id="@+id/privacyInformation"
5757
style="@style/Widget.MaterialComponents.Button.TextButton"
5858
android:layout_width="match_parent"
5959
android:layout_height="wrap_content"
@@ -64,12 +64,30 @@
6464
android:letterSpacing="0"
6565
android:minHeight="48dp"
6666
android:paddingHorizontal="@dimen/default_padding"
67-
android:text="@string/privacy_policy"
67+
android:text="@string/privacy_information"
6868
android:textAllCaps="false"
6969
android:textColor="@color/black"
7070
android:textSize="18sp"
7171
app:layout_constraintTop_toBottomOf="@+id/about_title" />
7272

73+
<com.google.android.material.button.MaterialButton
74+
android:id="@+id/licenses"
75+
style="@style/Widget.MaterialComponents.Button.TextButton"
76+
android:layout_width="match_parent"
77+
android:layout_height="wrap_content"
78+
android:drawableEnd="@drawable/ic_baseline_arrow_forward_24"
79+
android:gravity="start|center"
80+
android:insetTop="0dp"
81+
android:insetBottom="0dp"
82+
android:letterSpacing="0"
83+
android:minHeight="48dp"
84+
android:paddingHorizontal="@dimen/default_padding"
85+
android:text="@string/licenses"
86+
android:textAllCaps="false"
87+
android:textColor="@color/black"
88+
android:textSize="18sp"
89+
app:layout_constraintTop_toBottomOf="@+id/privacyInformation" />
90+
7391
<com.google.android.material.button.MaterialButton
7492
android:id="@+id/syncPublicKeys"
7593
style="@style/Widget.MaterialComponents.Button.TextButton"
@@ -86,7 +104,7 @@
86104
android:textAllCaps="false"
87105
android:textColor="@color/black"
88106
android:textSize="18sp"
89-
app:layout_constraintTop_toBottomOf="@+id/privacyPolicy" />
107+
app:layout_constraintTop_toBottomOf="@+id/licenses" />
90108

91109
<com.google.android.material.textview.MaterialTextView
92110
android:id="@+id/materialTextView"

app/src/main/res/values/strings.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@
4848
<string name="date_of_positive_title">Date of First Positive Test</string>
4949

5050
<string name="settings">Settings</string>
51-
<string name="privacy_policy">Privacy</string>
51+
<string name="privacy_information">Privacy information</string>
52+
<string name="licenses">Licenses</string>
5253
<string name="sync_public_keys">Sync Public Keys</string>
5354
<string name="version">Version: %1$s</string>
5455
<string name="about">About</string>

app/src/main/res/values/themes.xml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,32 @@
4343
<item name="android:windowBackground">@drawable/splash_bg</item>
4444
</style>
4545

46+
<style name="Theme.DgcaVerifierAppAndroid.Licensing" parent="Theme.MaterialComponents.Light">
47+
<!-- Primary brand color. -->
48+
<item name="colorPrimary">@color/blue</item>
49+
<item name="colorPrimaryVariant">@color/blue_dark</item>
50+
<item name="colorSurface">@color/white</item>
51+
<item name="colorOnPrimary">@color/white</item>
52+
<item name="colorOnSecondary">@color/white</item>
53+
<item name="colorOnBackground">@color/black</item>
54+
<item name="colorOnSurface">@color/black</item>
55+
56+
<!-- Status bar color. -->
57+
<item name="android:statusBarColor">@color/blue_dark</item>
58+
<item name="android:windowLightStatusBar">false</item>
59+
60+
<item name="android:textColorPrimary">@color/grey_100</item>
61+
<item name="android:textColorSecondary">@color/grey_75</item>
62+
<item name="android:textColorTertiary">@color/grey_50</item>
63+
64+
<item name="actionBarTheme">@style/DgcaVerifierAppAndroid.Toolbar</item>
65+
</style>
66+
4667
<style name="DgcaVerifierAppAndroid.Toolbar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
68+
<item name="android:textColorPrimary">@color/white</item>
69+
<item name="android:textColorSecondary">@color/white</item>
70+
<item name="actionMenuTextColor">@color/white</item>
71+
4772
<!-- color used by navigation icon and overflow icon -->
4873
<item name="colorOnPrimary">@color/white</item>
4974
</style>

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ buildscript {
1212
classpath Deps.tools_kotlin
1313
classpath Deps.androidx_navigation
1414
classpath Deps.hilt_plugin
15+
classpath Deps.google_licenses_plugin
1516

1617
// NOTE: Do not place your application dependencies here; they belong
1718
// in the individual module build.gradle files

buildSrc/src/main/java/Dependencies.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ object Deps {
4747
const val hilt_viewmodel = "androidx.hilt:hilt-lifecycle-viewmodel:${Versions.androidx_hilt_viewmodel}"
4848
const val hilt_work = "androidx.hilt:hilt-work:${Versions.androidx_hilt_work}"
4949

50+
const val google_licenses_plugin = "com.google.android.gms:oss-licenses-plugin:${Versions.google_licenses_version}"
51+
5052
const val zxing = "com.journeyapps:zxing-android-embedded:${Versions.zxing}"
5153
const val guava_conflict_resolver = "com.google.guava:listenablefuture:${Versions.guave_conflict_resolver_version}"
5254
const val kotlin_reflect = "org.jetbrains.kotlin:kotlin-reflect:${Versions.kotlin_reflect}"
@@ -57,6 +59,8 @@ object Deps {
5759

5860
const val timber = "com.jakewharton.timber:timber:${Versions.timber}"
5961

62+
const val google_licenses = "com.google.android.gms:play-services-oss-licenses:${Versions.google_licenses}"
63+
6064
const val test_junit = "junit:junit:${Versions.junit}"
6165
const val test_junit_jupiter_api = "org.junit.jupiter:junit-jupiter-api:${Versions.junit_jupiter}"
6266
const val test_junit_jupiter_params = "org.junit.jupiter:junit-jupiter-params:${Versions.junit_jupiter}"

buildSrc/src/main/java/Versions.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,12 @@ object Versions {
3838
const val androidx_room = "2.3.0"
3939
const val androidx_worker_ktx = "2.5.0"
4040
const val hilt_version = "2.33-beta"
41+
const val google_licenses_version = "0.10.4"
4142
const val retrofit = "2.9.0"
4243
const val logging_interceptor = "4.0.1"
4344
const val gson_converter = "2.6.0"
4445
const val timber = "4.7.1"
46+
const val google_licenses = "17.0.0"
4547

4648
// QR
4749
const val zxing = "4.2.0"

0 commit comments

Comments
 (0)