("clean") {
delete(buildDir)
}
\ No newline at end of file
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
new file mode 100644
index 00000000..f55cb6b1
--- /dev/null
+++ b/buildSrc/build.gradle.kts
@@ -0,0 +1,7 @@
+plugins {
+ `kotlin-dsl`
+}
+
+repositories {
+ mavenCentral()
+}
\ No newline at end of file
diff --git a/buildSrc/src/main/kotlin/Deps.kt b/buildSrc/src/main/kotlin/Deps.kt
new file mode 100644
index 00000000..edd1378e
--- /dev/null
+++ b/buildSrc/src/main/kotlin/Deps.kt
@@ -0,0 +1,34 @@
+object Deps {
+
+ object AndroidX {
+ const val appcompat = "androidx.appcompat:appcompat:${Versions.appcompat}"
+ const val core = "androidx.core:core-ktx:${Versions.core}"
+ const val activity = "androidx.activity:activity:${Versions.activity}"
+ const val fragment = "androidx.fragment:fragment:${Versions.fragment}"
+ const val lifecycle = "androidx.lifecycle:lifecycle-runtime-ktx:${Versions.lifecycle}"
+ const val recyclerView = "androidx.recyclerview:recyclerview:${Versions.recyclerView}"
+ const val constraintLayout = "androidx.constraintlayout:constraintlayout:${Versions.constraintLayout}"
+ const val vectorDrawable = "androidx.vectordrawable:vectordrawable:${Versions.vectorDrawable}"
+ }
+
+ object Kotlin {
+ const val coroutines = "org.jetbrains.kotlinx:kotlinx-coroutines-android:${Versions.coroutines}"
+ }
+
+ object UI {
+ const val materialDesign = "com.google.android.material:material:${Versions.materialDesign}"
+ }
+
+ object Misc {
+ const val timber = "com.jakewharton.timber:timber:${Versions.timber}"
+ const val versionCompare = "io.github.g00fy2:versioncompare:${Versions.versionCompare}"
+ }
+
+ object Dagger {
+ const val dagger = "com.google.dagger:dagger:${Versions.dagger}"
+ const val daggerCompiler = "com.google.dagger:dagger-compiler:${Versions.dagger}"
+ const val daggerAndroid = "com.google.dagger:dagger-android:${Versions.dagger}"
+ const val daggerAndroidSupport = "com.google.dagger:dagger-android-support:${Versions.dagger}"
+ const val daggerAndroidProcessor = "com.google.dagger:dagger-android-processor:${Versions.dagger}"
+ }
+}
\ No newline at end of file
diff --git a/buildSrc/src/main/kotlin/Plugins.kt b/buildSrc/src/main/kotlin/Plugins.kt
new file mode 100644
index 00000000..7035eed1
--- /dev/null
+++ b/buildSrc/src/main/kotlin/Plugins.kt
@@ -0,0 +1,17 @@
+object Plugins {
+
+ object Android {
+ const val application = "com.android.application"
+ }
+
+ object Kotlin {
+ const val androidGradle = "android"
+ const val android = "kotlin-android"
+ const val kapt = "kotlin-kapt"
+ }
+
+ object Misc {
+ const val androidVersioning = "de.nanogiants.android-versioning"
+ const val gradleVersions = "com.github.ben-manes.versions"
+ }
+}
\ No newline at end of file
diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt
new file mode 100644
index 00000000..a71e1f33
--- /dev/null
+++ b/buildSrc/src/main/kotlin/Versions.kt
@@ -0,0 +1,39 @@
+object Versions {
+
+ const val androidMinSdk = 14
+ const val androidCompileSdk = 29
+ const val androidTargetSdk = 29
+
+ const val androidBuildTools = "31.0.0"
+ const val androidGradle = "7.0.0-rc01"
+ const val kotlin = "1.5.21"
+
+ const val gradleVersions = "0.39.0"
+ const val androidVersioning = "2.4.0"
+
+ const val coroutines = "1.5.1"
+
+ const val appcompat = "1.3.1"
+ const val core = "1.6.0"
+ const val activity = "1.2.4"
+ const val fragment = "1.3.6"
+ const val lifecycle = "2.3.1"
+ const val recyclerView = "1.2.1"
+ const val constraintLayout = "2.1.0-rc01"
+ const val vectorDrawable = "1.1.0"
+
+ const val materialDesign = "1.4.0"
+
+ const val timber = "4.7.1"
+ const val versionCompare = "1.4.1"
+
+ const val dagger = "2.38"
+
+ fun maturityLevel(version: String): Int {
+ val levels = listOf("alpha", "beta", "m", "rc")
+ levels.forEachIndexed { index, s ->
+ if (version.matches(".*[.\\-]$s[.\\-\\d]*".toRegex(RegexOption.IGNORE_CASE))) return index
+ }
+ return levels.size
+ }
+}
\ No newline at end of file
diff --git a/fastlane/metadata/android/de/full_description.txt b/fastlane/metadata/android/de/full_description.txt
new file mode 100644
index 00000000..e6d7e364
--- /dev/null
+++ b/fastlane/metadata/android/de/full_description.txt
@@ -0,0 +1,8 @@
+Developer Widget ist eine schlanke Android-Anwendung. Sie bietet ein Widget zur Anzeige von Gerätedaten, zum Verwalten installierter Apps sowie zur Auflistung lokal gespeicherter APK-Dateien.
+Die App wurde von einem Entwickler für Entwickler erstellt. Vielleicht kennen Sie den Ärger, wenn auf mehreren physischen Geräten unterschiedliche Software läuft. Diese App hilft, wichtige Gerätedaten im Auge zu behalten und ermöglicht es, Apps und lokale APK-Dateien zu verwalten. Sie werden nie wieder Schwierigkeiten haben, APK-Dateien mit einem Dateibrowser zu finden oder auf einer benutzerdefinierten Hersteller-Benutzeroberfläche nach dem Menü für die Anwendungseinstellungen zu suchen.
+Das Hauptmerkmal der App ist ein 4x1 (horizontal größenveränderbares) Homescreen-Widget, das dynamisch abgerufene Gerätedaten anzeigt und es ermöglicht, installierte Apps und lokale gespeicherte APK-Dateien zu durchsuchen.
+
Features:
+- Homescreen-Widget mit anpassbarem Gerätenamen
+- Durchsuchen aller installierten (Nicht-System-)Apps und filtern nach Paketnamen
+- Verwalten lokale gespeicherter APK-Dateien
+- und mehr
diff --git a/fastlane/metadata/android/de/short_description.txt b/fastlane/metadata/android/de/short_description.txt
new file mode 100644
index 00000000..516ee1b0
--- /dev/null
+++ b/fastlane/metadata/android/de/short_description.txt
@@ -0,0 +1 @@
+ein Open-Source-Toolset in modernem Design für Android-Entwickler
\ No newline at end of file
diff --git a/fastlane/metadata/android/de/title.txt b/fastlane/metadata/android/de/title.txt
new file mode 100644
index 00000000..3d78fa39
--- /dev/null
+++ b/fastlane/metadata/android/de/title.txt
@@ -0,0 +1 @@
+Developer Widget - Tools für Android-Entwickler
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt
new file mode 100644
index 00000000..de9e9928
--- /dev/null
+++ b/fastlane/metadata/android/en-US/full_description.txt
@@ -0,0 +1,8 @@
+Developer Widget is a lightweight Android app that offers a widget to show device data, manage installed apps and list locally stored APK files.
+The app was built from a developer for developers. You may know the hassle of having multiple physical devices running different software. This app will help you keep track of important device information and allows you to organize your apps and local APK files. You will never again struggle to find APK files using a file browser or search for the app settings menu on a custom manufacturer UI.
+The main feature of the app is an 4x1 (horizontally resizable) homescreen widget that shows dynamically fetched device data and allows you to browse your installed apps and local APK files.
+
Features include:
+- Homescreen widget with customizable device name
+- Browse all installed (non system) apps and filter them by package name
+- Manage local APK files
+- and more
diff --git a/fastlane/metadata/android/en-US/images/icon.png b/fastlane/metadata/android/en-US/images/icon.png
new file mode 100644
index 00000000..bd243a5a
Binary files /dev/null and b/fastlane/metadata/android/en-US/images/icon.png differ
diff --git a/fastlane/metadata/android/en-US/short_description.txt b/fastlane/metadata/android/en-US/short_description.txt
new file mode 100644
index 00000000..a0226446
--- /dev/null
+++ b/fastlane/metadata/android/en-US/short_description.txt
@@ -0,0 +1 @@
+modern design, open source toolset for Android Developers
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/title.txt b/fastlane/metadata/android/en-US/title.txt
new file mode 100644
index 00000000..5024a378
--- /dev/null
+++ b/fastlane/metadata/android/en-US/title.txt
@@ -0,0 +1 @@
+Developer Widget - a toolset for Android Developers
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index a375ce61..819eed90 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,9 +1,3 @@
-# Versions used for dependency resolution in settings.gradle.kts
-kotlinVersion=1.4.10
-androidGradlePluginVersion=4.2.0-alpha13
-nanogiantsVersioning=2.4.0
-gradleEnterpriseVersion=3.4.1
-
# Allow usage of AndroidX instead of the old support libraries.
android.useAndroidX=true
# Use R8 in full mode instead of ProGuard compatibility mode.
@@ -12,9 +6,7 @@ android.enableR8.fullMode=true
# instead of declarations plus all transitive dependency references.
android.nonTransitiveRClass=true
# Generate the compile time only R class using the app's local resources
-android.enableAppCompileTimeRClass=true
-# Enable supported AAPT2 optimize suboperations (ResourceObfuscation, SparseResourceEncoding, ResourcePathShortening) as
-# an effort to reduce APK size.
-android.enableResourceOptimizations=true
+# Currently not working: https://issuetracker.google.com/issues/182198793
+# android.enableAppCompileTimeRClass=true
# Set the build VMs heap size.
org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index e708b1c0..7454180f 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 8c6ce341..af7be50b 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-rc-4-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index 4f906e0c..744e882e 100755
--- a/gradlew
+++ b/gradlew
@@ -72,7 +72,7 @@ case "`uname`" in
Darwin* )
darwin=true
;;
- MINGW* )
+ MSYS* | MINGW* )
msys=true
;;
NONSTOP* )
diff --git a/settings.gradle.kts b/settings.gradle.kts
index d910d6c7..08408a59 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -1,29 +1,28 @@
include("app")
pluginManagement {
- val kotlinVersion: String by settings
- val androidGradlePluginVersion: String by settings
- val nanogiantsVersioning: String by settings
- val gradleEnterpriseVersion: String by settings
repositories {
google()
gradlePluginPortal()
- mavenCentral()
}
resolutionStrategy {
eachPlugin {
- when (requested.id.id) {
- "com.android.application" -> useModule("com.android.tools.build:gradle:$androidGradlePluginVersion")
- "de.nanogiants.android-versioning" -> useVersion(nanogiantsVersioning)
- "com.gradle.enterprise" -> useVersion(gradleEnterpriseVersion)
- }
- if (requested.id.namespace == "org.jetbrains.kotlin") useVersion(kotlinVersion)
+ if (requested.id.namespace == "com.android") useModule("com.android.tools.build:gradle:${requested.version}")
}
}
}
+@Suppress("UnstableApiUsage")
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
plugins {
- id("com.gradle.enterprise")
+ id("com.gradle.enterprise") version "3.6.3"
}
gradleEnterprise {