Add `ValidationUtils` and update ProGuard rules

This commit introduces a new `ValidationUtils.kt` file with email validation logic.
It also updates the ProGuard rules in `consumer-rules.pro` to keep runtime visible annotations and fields for `EventBus`.
Additionally, a `.gitignore` file is added to the `mylibrary` module to ignore the `build` directory, and the release build type in `app/build.gradle.kts` is now debuggable.
ajesh/r8-usecases
Ajesh R 3 weeks ago
parent 4233caa2d5
commit 4b1ee7540c

@ -43,6 +43,7 @@ android {
applicationIdSuffix = NiaBuildType.DEBUG.applicationIdSuffix
}
release {
isDebuggable = true
isMinifyEnabled = true
applicationIdSuffix = NiaBuildType.RELEASE.applicationIdSuffix
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")

@ -8,7 +8,7 @@
}
-keepattributes *Annotation*
-keepattributes RuntimeVisibleAnnotations
-keep @interface com.example.mylibrary.OnEvent
@ -23,6 +23,7 @@
-whyareyoukeeping class com.example.mylibrary.EventBus {
<methods>;
<fields>;
}

@ -31,4 +31,3 @@ object WorkerLoader {
worker.doWork()
}
}

@ -103,6 +103,8 @@ class MainActivity : ComponentActivity() {
runner.process(task1) // This will be executed.
isEmailValid("ajeshr@google.com")
// We keep this as a mutable state, so that we can track changes inside the composition.
// This allows us to react to dark/light mode changes.
@ -234,4 +236,4 @@ class ImportantBackgroundTask {
fun execute() {
Log.e("ImportantBackgroundTask", "✅ Executing the important background task... ✅")
}
}
}

@ -0,0 +1,33 @@
/*
* Copyright 2025 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.samples.apps.nowinandroid
import android.util.Log
// A top-level function not inside a class
fun isEmailValid(email: String): Boolean {
Log.e("crash", "nothing to crash")
return email.contains("@")
}
fun isSomethingElse(email: String): Boolean {
Log.e("crash", "nothing to crash")
return email.contains("@")
}
Loading…
Cancel
Save