Skip to content

Instantly share code, notes, and snippets.

View maxirosson's full-sized avatar

Maxi Rosson maxirosson

View GitHub Profile
repositories {
// This repository will not be searched for artifacts with group "my.company"
// despite being declared first
mavenCentral()
exclusiveContent {
forRepository {
maven {
url = uri("https://repo.mycompany.com/maven2")
}
}
def tasksToNotCache = [
"compile.*JavaWithJavac",
"compile.*LibraryResources",
"package.*Resources",
"strip.*DebugSymbols",
"mergeDebugAndroidTestNativeLibs",
"generateDebugRFile",
"dataBindingMergeDependencyArtifacts.*",
"dataBindingMergeGenClasses.*",
"bundleLibRuntimeToJarDebug",
cd gradle/wrapper
gradleVersion=$(grep "distributionUrl" gradle-wrapper.properties | grep -Po "(\d+\.)+\d+")
curl --location --output gradle-wrapper.jar.sha256 https://services.gradle.org/distributions/gradle-${gradleVersion}-wrapper.jar.sha256
echo " gradle-wrapper.jar" >> gradle-wrapper.jar.sha256
sha256sum --check gradle-wrapper.jar.sha256
plugins {
id("com.dipien.byebyejetifier") version "1.1.2" apply false
}
ext {
propertyResolver = new PropertyResolver(project)
}
if (propertyResolver.getBooleanProp(GradleProperty.BYE_BYE_JETIFIER_ENABLED)) {
apply plugin: "com.dipien.byebyejetifier"
object AppUtils {
// The package name of the application
const val manifestPackageName = "com.example.myapp"
// The application id of the application
val applicationId: String
get() {
val context = ...
// You could receive the context as parameter here
@maxirosson
maxirosson / fail_on_kotlin_warning.gradle.kts
Last active May 31, 2022 17:09
Fail every time a Kotlin warning is found, except for "is deprecated" warnings. https://medium.com/dipien/fail-your-build-on-kotlin-warnings-96c4d9b3fd33
import org.gradle.api.Project
import org.gradle.api.internal.GradleInternal
import org.gradle.configurationcache.extensions.serviceOf
import org.gradle.internal.logging.events.operations.LogEventBuildOperationProgressDetails
import org.gradle.internal.operations.BuildOperationDescriptor
import org.gradle.internal.operations.BuildOperationListener
import org.gradle.internal.operations.BuildOperationListenerManager
import org.gradle.internal.operations.OperationFinishEvent
import org.gradle.internal.operations.OperationIdentifier
import org.gradle.internal.operations.OperationProgressEvent
object CrashlyticsHelper {
fun sendCustomKeys(context: Context) {
val builder = CustomKeysAndValues.Builder()
builder.putString("abi", Build.SUPPORTED_ABIS[0])
builder.putString("locale", getLocale(context).toString())
builder.putBoolean("isGooglePlayServicesAvailable", isGooglePlayServicesAvailable(context))
getInstallSource(context)?.let {
builder.putString("installSource", it)
}
apply plugin: 'com.android.application'
ext.versionMajor = 1
ext.versionMinor = 2
ext.versionPatch = 3
ext.versionClassifier = null
ext.isSnapshot = true
android {
defaultConfig {
class MyApplication : Application() {
override fun onCreate() {
...
registerActivityLifecycleCallbacks(StartUpTimeActivityLifecycleCallbacks)
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.dipien">
<application>
<!-- StartupTimeProvider is already initializing Firebase.
https://firebase.googleblog.com/2017/03/take-control-of-your-firebase-init-on.html -->
<provider