From db5b2a43bad039de4e942d749733ff1c394d714f Mon Sep 17 00:00:00 2001 From: daolq3012 Date: Tue, 8 Feb 2022 14:20:08 +0700 Subject: [PATCH 01/20] rename package and upgrade library --- .idea/misc.xml | 7 +++++++ app/build.gradle | 14 +++++++------- .../ExampleInstrumentedTest.kt | 4 ++-- app/src/main/AndroidManifest.xml | 6 +++--- .../sun/{structure_android => mvp}/MainActivity.kt | 4 ++-- app/src/main/res/layout/activity_main.xml | 2 +- .../{structure_android => mvp}/ExampleUnitTest.kt | 4 ++-- 7 files changed, 24 insertions(+), 17 deletions(-) rename app/src/androidTest/java/com/sun/{structure_android => mvp}/ExampleInstrumentedTest.kt (94%) rename app/src/main/java/com/sun/{structure_android => mvp}/MainActivity.kt (88%) rename app/src/test/java/com/sun/{structure_android => mvp}/ExampleUnitTest.kt (89%) diff --git a/.idea/misc.xml b/.idea/misc.xml index 9422e84..89d8c05 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,12 @@ + + + diff --git a/app/build.gradle b/app/build.gradle index 967f82a..e828cac 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -33,11 +33,11 @@ android { dependencies { - implementation 'androidx.core:core-ktx:1.3.2' - implementation 'androidx.appcompat:appcompat:1.2.0' - implementation 'com.google.android.material:material:1.3.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.core:core-ktx:1.7.0' + implementation 'androidx.appcompat:appcompat:1.4.1' + implementation 'com.google.android.material:material:1.5.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.3' testImplementation 'junit:junit:4.+' - androidTestImplementation 'androidx.test.ext:junit:1.1.2' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' -} \ No newline at end of file + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' +} diff --git a/app/src/androidTest/java/com/sun/structure_android/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/sun/mvp/ExampleInstrumentedTest.kt similarity index 94% rename from app/src/androidTest/java/com/sun/structure_android/ExampleInstrumentedTest.kt rename to app/src/androidTest/java/com/sun/mvp/ExampleInstrumentedTest.kt index a855c53..9de119e 100644 --- a/app/src/androidTest/java/com/sun/structure_android/ExampleInstrumentedTest.kt +++ b/app/src/androidTest/java/com/sun/mvp/ExampleInstrumentedTest.kt @@ -1,4 +1,4 @@ -package com.sun.structure_android +package com.sun.mvp import androidx.test.platform.app.InstrumentationRegistry import androidx.test.ext.junit.runners.AndroidJUnit4 @@ -21,4 +21,4 @@ class ExampleInstrumentedTest { val appContext = InstrumentationRegistry.getInstrumentation().targetContext assertEquals("com.sun.structure_android", appContext.packageName) } -} \ No newline at end of file +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c2b6fdb..c984ae0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ + package="com.sun.mvp"> @@ -20,4 +20,4 @@ - \ No newline at end of file + diff --git a/app/src/main/java/com/sun/structure_android/MainActivity.kt b/app/src/main/java/com/sun/mvp/MainActivity.kt similarity index 88% rename from app/src/main/java/com/sun/structure_android/MainActivity.kt rename to app/src/main/java/com/sun/mvp/MainActivity.kt index e708c5d..076daff 100644 --- a/app/src/main/java/com/sun/structure_android/MainActivity.kt +++ b/app/src/main/java/com/sun/mvp/MainActivity.kt @@ -1,4 +1,4 @@ -package com.sun.structure_android +package com.sun.mvp import androidx.appcompat.app.AppCompatActivity import android.os.Bundle @@ -8,4 +8,4 @@ class MainActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } -} \ No newline at end of file +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4fc2444..4fa45b0 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -15,4 +15,4 @@ app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> - \ No newline at end of file + diff --git a/app/src/test/java/com/sun/structure_android/ExampleUnitTest.kt b/app/src/test/java/com/sun/mvp/ExampleUnitTest.kt similarity index 89% rename from app/src/test/java/com/sun/structure_android/ExampleUnitTest.kt rename to app/src/test/java/com/sun/mvp/ExampleUnitTest.kt index 3522634..09b7bb2 100644 --- a/app/src/test/java/com/sun/structure_android/ExampleUnitTest.kt +++ b/app/src/test/java/com/sun/mvp/ExampleUnitTest.kt @@ -1,4 +1,4 @@ -package com.sun.structure_android +package com.sun.mvp import org.junit.Test @@ -14,4 +14,4 @@ class ExampleUnitTest { fun addition_isCorrect() { assertEquals(4, 2 + 2) } -} \ No newline at end of file +} From b82baaed9434e4686dcd2cfacc7a2e7351abc096 Mon Sep 17 00:00:00 2001 From: daolq3012 Date: Tue, 8 Feb 2022 15:19:17 +0700 Subject: [PATCH 02/20] Config common --- .idea/gradle.xml | 1 + .../main/java/com/sun/mvp/utils/Constant.kt | 5 ++ .../utils/OnItemRecyclerViewClickListener.kt | 5 ++ .../com/sun/mvp/utils/base/BaseActivity.kt | 17 ++++++ .../com/sun/mvp/utils/base/BaseFragment.kt | 29 ++++++++++ .../com/sun/mvp/utils/base/BasePresenter.kt | 7 +++ .../main/java/com/sun/mvp/utils/ext/AnyExt.kt | 9 ++++ .../java/com/sun/mvp/utils/ext/FragmentExt.kt | 54 +++++++++++++++++++ app/src/main/res/anim/slide_in_right.xml | 10 ++++ app/src/main/res/anim/slide_out_right.xml | 10 ++++ 10 files changed, 147 insertions(+) create mode 100644 app/src/main/java/com/sun/mvp/utils/Constant.kt create mode 100644 app/src/main/java/com/sun/mvp/utils/OnItemRecyclerViewClickListener.kt create mode 100644 app/src/main/java/com/sun/mvp/utils/base/BaseActivity.kt create mode 100644 app/src/main/java/com/sun/mvp/utils/base/BaseFragment.kt create mode 100644 app/src/main/java/com/sun/mvp/utils/base/BasePresenter.kt create mode 100644 app/src/main/java/com/sun/mvp/utils/ext/AnyExt.kt create mode 100644 app/src/main/java/com/sun/mvp/utils/ext/FragmentExt.kt create mode 100644 app/src/main/res/anim/slide_in_right.xml create mode 100644 app/src/main/res/anim/slide_out_right.xml diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 4e3844e..526b4c2 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -1,5 +1,6 @@ + \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 21c6dcf..5db4d70 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -3,6 +3,10 @@ plugins { kotlin(Plugin.kotlin_android) } +buildscript { + apply(from = "ktlint.gradle.kts") +} + android { compileSdk = AppConfigs.compile_sdk_version @@ -35,6 +39,8 @@ android { } } + + dependencies { implementation(Deps.core_ktx) implementation(Deps.appcompat) diff --git a/app/ktlint.gradle.kts b/app/ktlint.gradle.kts new file mode 100644 index 0000000..cc27b97 --- /dev/null +++ b/app/ktlint.gradle.kts @@ -0,0 +1,24 @@ +repositories { + jcenter() +} + +val ktlint by configurations.creating +val ktlintCheck by tasks.creating(JavaExec::class) { + group = "verification" + description = "Check Kotlin code style." + classpath = configurations.getByName("ktlint") + main = "com.pinterest.ktlint.Main" + args = listOf("src/**/*.kt", "--reporter=html,output=$buildDir/reports/ktlint/ktlint.html") +} + +val ktlintFormat by tasks.creating(JavaExec::class) { + group = "formatting" + description = "Fix Kotlin code style deviations." + classpath = configurations.getByName("ktlint") + main = "com.pinterest.ktlint.Main" + args = listOf("-F", "src/**/*.kt") +} + +dependencies { + ktlint(Deps.ktlint) +} diff --git a/app/src/test/java/com/sun/mvp/ExampleUnitTest.kt b/app/src/test/java/com/sun/mvp/ExampleUnitTest.kt index 09b7bb2..921fcba 100644 --- a/app/src/test/java/com/sun/mvp/ExampleUnitTest.kt +++ b/app/src/test/java/com/sun/mvp/ExampleUnitTest.kt @@ -1,8 +1,7 @@ package com.sun.mvp -import org.junit.Test - import org.junit.Assert.* +import org.junit.Test /** * Example local unit test, which will execute on the development machine (host). diff --git a/buildSrc/src/main/kotlin/Config.kt b/buildSrc/src/main/kotlin/Config.kt index 4150ae6..6ad69e3 100644 --- a/buildSrc/src/main/kotlin/Config.kt +++ b/buildSrc/src/main/kotlin/Config.kt @@ -16,6 +16,8 @@ object Versions { const val jUnit = "4.13.2" const val mockk = "1.12.0" + + const val ktlint = "0.36.0" } object AppConfigs { @@ -62,4 +64,7 @@ object Deps { // Testing const val junit = "junit:junit:${Versions.jUnit}" const val mockk = "io.mockk:mockk:${Versions.mockk}" + + // Ktlint + const val ktlint = "com.pinterest:ktlint:${Versions.ktlint}" } diff --git a/config/detekt/detekt.yml b/config/detekt/detekt.yml new file mode 100644 index 0000000..27f3f44 --- /dev/null +++ b/config/detekt/detekt.yml @@ -0,0 +1,800 @@ +# To generate the default config detekt.yml file +# ./gradlew detektGenerateConfig +build: + maxIssues: 10 + excludeCorrectable: false + weights: + # complexity: 2 + # LongParameterList: 1 + # style: 1 + # comments: 1 + +config: + validation: true + warningsAsErrors: false + # when writing own rules with new properties, exclude the property path e.g.: 'my_rule_set,.*>.*>[my_property]' + excludes: '' + +processors: + active: true + exclude: + - 'DetektProgressListener' + # - 'KtFileCountProcessor' + # - 'PackageCountProcessor' + # - 'ClassCountProcessor' + # - 'FunctionCountProcessor' + # - 'PropertyCountProcessor' + # - 'ProjectComplexityProcessor' + # - 'ProjectCognitiveComplexityProcessor' + # - 'ProjectLLOCProcessor' + # - 'ProjectCLOCProcessor' + # - 'ProjectLOCProcessor' + # - 'ProjectSLOCProcessor' + # - 'LicenseHeaderLoaderExtension' + +console-reports: + active: true + exclude: + - 'ProjectStatisticsReport' + - 'ComplexityReport' + - 'NotificationReport' + # - 'FindingsReport' + - 'FileBasedFindingsReport' + +output-reports: + active: true + exclude: + # - 'TxtOutputReport' + # - 'XmlOutputReport' + # - 'HtmlOutputReport' + +comments: + active: true + AbsentOrWrongFileLicense: + active: false + licenseTemplateFile: 'license.template' + licenseTemplateIsRegex: false + CommentOverPrivateFunction: + active: false + CommentOverPrivateProperty: + active: false + DeprecatedBlockTag: + active: false + EndOfSentenceFormat: + active: false + endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)' + UndocumentedPublicClass: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + searchInNestedClass: true + searchInInnerClass: true + searchInInnerObject: true + searchInInnerInterface: true + UndocumentedPublicFunction: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + UndocumentedPublicProperty: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + +complexity: + active: true + ComplexCondition: + active: true + threshold: 4 + ComplexInterface: + active: false + threshold: 10 + includeStaticDeclarations: false + includePrivateDeclarations: false + ComplexMethod: + active: true + threshold: 15 + ignoreSingleWhenExpression: false + ignoreSimpleWhenEntries: false + ignoreNestingFunctions: false + nestingFunctions: + - 'also' + - 'apply' + - 'forEach' + - 'isNotNull' + - 'ifNull' + - 'let' + - 'run' + - 'use' + - 'with' + LabeledExpression: + active: false + ignoredLabels: [] + LargeClass: + active: true + threshold: 600 + LongMethod: + active: true + threshold: 60 + ignoreAnnotated: [] + LongParameterList: + active: true + functionThreshold: 6 + constructorThreshold: 7 + ignoreDefaultParameters: false + ignoreDataClasses: true + ignoreAnnotated: [] + MethodOverloading: + active: false + threshold: 6 + NamedArguments: + active: false + threshold: 3 + NestedBlockDepth: + active: true + threshold: 4 + ReplaceSafeCallChainWithRun: + active: false + StringLiteralDuplication: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + threshold: 3 + ignoreAnnotation: true + excludeStringsWithLessThan5Characters: true + ignoreStringsRegex: '$^' + TooManyFunctions: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + thresholdInFiles: 11 + thresholdInClasses: 11 + thresholdInInterfaces: 11 + thresholdInObjects: 11 + thresholdInEnums: 11 + ignoreDeprecated: false + ignorePrivate: false + ignoreOverridden: false + +coroutines: + active: true + GlobalCoroutineUsage: + active: false + RedundantSuspendModifier: + active: false + SleepInsteadOfDelay: + active: false + SuspendFunWithFlowReturnType: + active: false + +empty-blocks: + active: true + EmptyCatchBlock: + active: true + allowedExceptionNameRegex: '_|(ignore|expected).*' + EmptyClassBlock: + active: true + EmptyDefaultConstructor: + active: true + EmptyDoWhileBlock: + active: true + EmptyElseBlock: + active: true + EmptyFinallyBlock: + active: true + EmptyForBlock: + active: true + EmptyFunctionBlock: + active: true + ignoreOverridden: false + EmptyIfBlock: + active: true + EmptyInitBlock: + active: true + EmptyKtFile: + active: true + EmptySecondaryConstructor: + active: true + EmptyTryBlock: + active: true + EmptyWhenBlock: + active: true + EmptyWhileBlock: + active: true + +exceptions: + active: true + ExceptionRaisedInUnexpectedLocation: + active: true + methodNames: + - 'equals' + - 'finalize' + - 'hashCode' + - 'toString' + InstanceOfCheckForException: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + NotImplementedDeclaration: + active: false + ObjectExtendsThrowable: + active: false + PrintStackTrace: + active: true + RethrowCaughtException: + active: true + ReturnFromFinally: + active: true + ignoreLabeled: false + SwallowedException: + active: true + ignoredExceptionTypes: + - 'InterruptedException' + - 'MalformedURLException' + - 'NumberFormatException' + - 'ParseException' + allowedExceptionNameRegex: '_|(ignore|expected).*' + ThrowingExceptionFromFinally: + active: true + ThrowingExceptionInMain: + active: false + ThrowingExceptionsWithoutMessageOrCause: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + exceptions: + - 'ArrayIndexOutOfBoundsException' + - 'Error' + - 'Exception' + - 'IllegalArgumentException' + - 'IllegalMonitorStateException' + - 'IllegalStateException' + - 'IndexOutOfBoundsException' + - 'NullPointerException' + - 'RuntimeException' + - 'Throwable' + ThrowingNewInstanceOfSameException: + active: true + TooGenericExceptionCaught: + active: false #changed true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + exceptionNames: + - 'ArrayIndexOutOfBoundsException' + - 'Error' + - 'Exception' + - 'IllegalMonitorStateException' + - 'IndexOutOfBoundsException' + - 'NullPointerException' + - 'RuntimeException' + - 'Throwable' + allowedExceptionNameRegex: '_|(ignore|expected).*' + TooGenericExceptionThrown: + active: true + exceptionNames: + - 'Error' + - 'Exception' + - 'RuntimeException' + - 'Throwable' + +formatting: + active: true + android: false + autoCorrect: true + AnnotationOnSeparateLine: + active: false + autoCorrect: true + AnnotationSpacing: + active: false + autoCorrect: true + ArgumentListWrapping: + active: false + autoCorrect: true + indentSize: 4 + maxLineLength: 120 + ChainWrapping: + active: true + autoCorrect: true + CommentSpacing: + active: true + autoCorrect: true + EnumEntryNameCase: + active: false + autoCorrect: true + Filename: + active: true + FinalNewline: + active: true + autoCorrect: true + insertFinalNewLine: true + ImportOrdering: + active: false + autoCorrect: true + layout: '*,java.**,javax.**,kotlin.**,^' + Indentation: + active: false + autoCorrect: true + indentSize: 4 + continuationIndentSize: 4 + MaximumLineLength: + active: true + maxLineLength: 120 + ignoreBackTickedIdentifier: false + ModifierOrdering: + active: true + autoCorrect: true + MultiLineIfElse: + active: true + autoCorrect: true + NoBlankLineBeforeRbrace: + active: true + autoCorrect: true + NoConsecutiveBlankLines: + active: true + autoCorrect: true + NoEmptyClassBody: + active: true + autoCorrect: true + NoEmptyFirstLineInMethodBlock: + active: false + autoCorrect: true + NoLineBreakAfterElse: + active: true + autoCorrect: true + NoLineBreakBeforeAssignment: + active: true + autoCorrect: true + NoMultipleSpaces: + active: true + autoCorrect: true + NoSemicolons: + active: true + autoCorrect: true + NoTrailingSpaces: + active: true + autoCorrect: true + NoUnitReturn: + active: true + autoCorrect: true + NoUnusedImports: + active: true + autoCorrect: true + NoWildcardImports: + active: false #changed: true + PackageName: + active: true + autoCorrect: true + ParameterListWrapping: + active: true + autoCorrect: true + indentSize: 4 + maxLineLength: 120 + SpacingAroundAngleBrackets: + active: false + autoCorrect: true + SpacingAroundColon: + active: true + autoCorrect: true + SpacingAroundComma: + active: true + autoCorrect: true + SpacingAroundCurly: + active: true + autoCorrect: true + SpacingAroundDot: + active: true + autoCorrect: true + SpacingAroundDoubleColon: + active: false + autoCorrect: true + SpacingAroundKeyword: + active: true + autoCorrect: true + SpacingAroundOperators: + active: true + autoCorrect: true + SpacingAroundParens: + active: true + autoCorrect: true + SpacingAroundRangeOperator: + active: true + autoCorrect: true + SpacingAroundUnaryOperator: + active: false + autoCorrect: true + SpacingBetweenDeclarationsWithAnnotations: + active: false + autoCorrect: true + SpacingBetweenDeclarationsWithComments: + active: false + autoCorrect: true + StringTemplate: + active: true + autoCorrect: true + +naming: + active: true + BooleanPropertyNaming: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + allowedPattern: '^(is|has|are)' + ClassNaming: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + classPattern: '[A-Z][a-zA-Z0-9]*' + ConstructorParameterNaming: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + parameterPattern: '[a-z][A-Za-z0-9]*' + privateParameterPattern: '[a-z][A-Za-z0-9]*' + excludeClassPattern: '$^' + ignoreOverridden: true + EnumNaming: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + enumEntryPattern: '[A-Z][_a-zA-Z0-9]*' + ForbiddenClassName: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + forbiddenName: [] + FunctionMaxLength: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + maximumFunctionNameLength: 30 + FunctionMinLength: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + minimumFunctionNameLength: 3 + FunctionNaming: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + functionPattern: '([a-z][a-zA-Z0-9]*)|(`.*`)' + excludeClassPattern: '$^' + ignoreOverridden: true + ignoreAnnotated: + - 'Composable' + FunctionParameterNaming: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + parameterPattern: '[a-z][A-Za-z0-9]*' + excludeClassPattern: '$^' + ignoreOverridden: true + InvalidPackageDeclaration: + active: false + excludes: ['**/*.kts'] + rootPackage: '' + MatchingDeclarationName: + active: true + mustBeFirst: true + MemberNameEqualsClassName: + active: true + ignoreOverridden: true + NoNameShadowing: + active: false + NonBooleanPropertyPrefixedWithIs: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + ObjectPropertyNaming: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + constantPattern: '[A-Za-z][_A-Za-z0-9]*' + propertyPattern: '[A-Za-z][_A-Za-z0-9]*' + privatePropertyPattern: '(_)?[A-Za-z][_A-Za-z0-9]*' + PackageNaming: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + packagePattern: '[a-z]+(\.[a-z][A-Za-z0-9]*)*' + TopLevelPropertyNaming: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + constantPattern: '[A-Z][_A-Z0-9]*' + propertyPattern: '[A-Za-z][_A-Za-z0-9]*' + privatePropertyPattern: '_?[A-Za-z][_A-Za-z0-9]*' + VariableMaxLength: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + maximumVariableNameLength: 64 + VariableMinLength: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + minimumVariableNameLength: 1 + VariableNaming: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + variablePattern: '[a-z][A-Za-z0-9]*' + privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*' + excludeClassPattern: '$^' + ignoreOverridden: true + +performance: + active: true + ArrayPrimitive: + active: true + ForEachOnRange: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + SpreadOperator: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + UnnecessaryTemporaryInstantiation: + active: true + +potential-bugs: + active: true + AvoidReferentialEquality: + active: false + forbiddenTypePatterns: + - 'kotlin.String' + CastToNullableType: + active: false + Deprecation: + active: false + DontDowncastCollectionTypes: + active: false + DoubleMutabilityForCollection: + active: false + DuplicateCaseInWhenExpression: + active: true + EqualsAlwaysReturnsTrueOrFalse: + active: true + EqualsWithHashCodeExist: + active: true + ExitOutsideMain: + active: false + ExplicitGarbageCollectionCall: + active: true + HasPlatformType: + active: false + IgnoredReturnValue: + active: false + restrictToAnnotatedMethods: true + returnValueAnnotations: + - '*.CheckResult' + - '*.CheckReturnValue' + ignoreReturnValueAnnotations: + - '*.CanIgnoreReturnValue' + ImplicitDefaultLocale: + active: true + ImplicitUnitReturnType: + active: false + allowExplicitReturnType: true + InvalidRange: + active: true + IteratorHasNextCallsNextMethod: + active: true + IteratorNotThrowingNoSuchElementException: + active: true + LateinitUsage: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludeAnnotatedProperties: [] + ignoreOnClassesPattern: '' + MapGetWithNotNullAssertionOperator: + active: false + MissingWhenCase: + active: true + allowElseExpression: true + NullableToStringCall: + active: false + RedundantElseInWhen: + active: true + UnconditionalJumpStatementInLoop: + active: false + UnnecessaryNotNullOperator: + active: true + UnnecessarySafeCall: + active: true + UnreachableCatchBlock: + active: false + UnreachableCode: + active: true + UnsafeCallOnNullableType: + active: true + UnsafeCast: + active: true + UnusedUnaryOperator: + active: false + UselessPostfixExpression: + active: false + WrongEqualsTypeParameter: + active: true + +style: + active: true + ClassOrdering: + active: false + CollapsibleIfStatements: + active: false + DataClassContainsFunctions: + active: false + conversionFunctionPrefix: 'to' + DataClassShouldBeImmutable: + active: false + DestructuringDeclarationWithTooManyEntries: + active: false + maxDestructuringEntries: 3 + EqualsNullCall: + active: true + EqualsOnSignatureLine: + active: false + ExplicitCollectionElementAccessMethod: + active: false + ExplicitItLambdaParameter: + active: false + ExpressionBodySyntax: + active: false + includeLineWrapping: false + ForbiddenComment: + active: true + values: + - 'FIXME:' + - 'STOPSHIP:' + - 'TODO:' + allowedPatterns: '' + ForbiddenImport: + active: false + imports: [] + forbiddenPatterns: '' + ForbiddenMethodCall: + active: false + methods: + - 'kotlin.io.print' + - 'kotlin.io.println' + ForbiddenPublicDataClass: + active: true + excludes: ['**'] + ignorePackages: + - '*.internal' + - '*.internal.*' + ForbiddenVoid: + active: false + ignoreOverridden: false + ignoreUsageInGenerics: false + FunctionOnlyReturningConstant: + active: true + ignoreOverridableFunction: true + ignoreActualFunction: true + excludedFunctions: '' + excludeAnnotatedFunction: + - 'dagger.Provides' + LibraryCodeMustSpecifyReturnType: + active: true + excludes: ['**'] + LibraryEntitiesShouldNotBePublic: + active: true + excludes: ['**'] + LoopWithTooManyJumpStatements: + active: true + maxJumpCount: 1 + MagicNumber: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + ignoreNumbers: + - '-1' + - '0' + - '1' + - '2' + ignoreHashCodeFunction: true + ignorePropertyDeclaration: false + ignoreLocalVariableDeclaration: false + ignoreConstantDeclaration: true + ignoreCompanionObjectPropertyDeclaration: true + ignoreAnnotation: false + ignoreNamedArgument: true + ignoreEnums: false + ignoreRanges: false + ignoreExtensionFunctions: true + MandatoryBracesIfStatements: + active: false + MandatoryBracesLoops: + active: false + MaxLineLength: + active: true + maxLineLength: 120 + excludePackageStatements: true + excludeImportStatements: true + excludeCommentStatements: false + MayBeConst: + active: true + ModifierOrder: + active: true + MultilineLambdaItParameter: + active: false + NestedClassesVisibility: + active: true + NewLineAtEndOfFile: + active: true + NoTabs: + active: false + ObjectLiteralToLambda: + active: false + OptionalAbstractKeyword: + active: true + OptionalUnit: + active: false + OptionalWhenBraces: + active: false + PreferToOverPairSyntax: + active: false + ProtectedMemberInFinalClass: + active: true + RedundantExplicitType: + active: false + RedundantHigherOrderMapUsage: + active: false + RedundantVisibilityModifierRule: + active: false + ReturnCount: + active: true + max: 2 + excludedFunctions: 'equals' + excludeLabeled: false + excludeReturnFromLambda: true + excludeGuardClauses: false + SafeCast: + active: true + SerialVersionUIDInSerializableClass: + active: true + SpacingBetweenPackageAndImports: + active: false + ThrowsCount: + active: true + max: 2 + excludeGuardClauses: false + TrailingWhitespace: + active: false + UnderscoresInNumericLiterals: + active: false + acceptableDecimalLength: 5 + UnnecessaryAbstractClass: + active: true + excludeAnnotatedClasses: + - 'dagger.Module' + UnnecessaryAnnotationUseSiteTarget: + active: false + UnnecessaryApply: + active: true + UnnecessaryFilter: + active: false + UnnecessaryInheritance: + active: true + UnnecessaryLet: + active: false + UnnecessaryParentheses: + active: false + UntilInsteadOfRangeTo: + active: false + UnusedImports: + active: false + UnusedPrivateClass: + active: true + UnusedPrivateMember: + active: true + allowedNames: '(_|ignored|expected|serialVersionUID)' + UseArrayLiteralsInAnnotations: + active: false + UseCheckNotNull: + active: false + UseCheckOrError: + active: false + UseDataClass: + active: false + excludeAnnotatedClasses: [] + allowVars: false + UseEmptyCounterpart: + active: false + UseIfEmptyOrIfBlank: + active: false + UseIfInsteadOfWhen: + active: false + UseIsNullOrEmpty: + active: false + UseOrEmpty: + active: false + UseRequire: + active: false + UseRequireNotNull: + active: false + UselessCallOnNotNull: + active: true + UtilityClassWithPublicConstructor: + active: true + VarCouldBeVal: + active: true + WildcardImport: + active: false #changed true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludeImports: + - 'java.util.*' + - 'kotlinx.android.synthetic.*' From bffb8c936e46ca2384aa9f81fc121fef0688733f Mon Sep 17 00:00:00 2001 From: daolq3012 Date: Wed, 16 Feb 2022 08:38:15 +0700 Subject: [PATCH 10/20] Config detekt --- app/build.gradle.kts | 15 +- .../test/java/com/sun/mvp/ExampleUnitTest.kt | 4 + buildSrc/src/main/kotlin/Config.kt | 4 +- config/detekt/detekt.yml | 271 ++++-------------- 4 files changed, 70 insertions(+), 224 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5db4d70..1108fa5 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,12 +1,23 @@ plugins { - id(Plugin.android_application) - kotlin(Plugin.kotlin_android) + id(Plugins.android_application) + kotlin(Plugins.kotlin_android) + id(Plugins.detekt).version(Versions.detekt) } buildscript { apply(from = "ktlint.gradle.kts") } +detekt { + config = files("$rootDir/config/detekt/detekt.yml") // config rules file + input = files("src/main/java") + reports { + html.enabled = true // observe findings in your browser with structure and code snippets + xml.enabled = false // checkstyle like format mainly for integrations like Jenkins + txt.enabled = false // similar to the console output, contains issue signature to manually edit baseline files + } +} + android { compileSdk = AppConfigs.compile_sdk_version diff --git a/app/src/test/java/com/sun/mvp/ExampleUnitTest.kt b/app/src/test/java/com/sun/mvp/ExampleUnitTest.kt index 921fcba..00bbd55 100644 --- a/app/src/test/java/com/sun/mvp/ExampleUnitTest.kt +++ b/app/src/test/java/com/sun/mvp/ExampleUnitTest.kt @@ -1,4 +1,8 @@ +<<<<<<<< HEAD:app/src/test/java/com/sun/mvp/ExampleUnitTest.kt package com.sun.mvp +======== +package com.sun.android +>>>>>>>> d05dca1 (Config detekt):app/src/test/java/com/sun/android/ExampleUnitTest.kt import org.junit.Assert.* import org.junit.Test diff --git a/buildSrc/src/main/kotlin/Config.kt b/buildSrc/src/main/kotlin/Config.kt index 6ad69e3..8cb5f53 100644 --- a/buildSrc/src/main/kotlin/Config.kt +++ b/buildSrc/src/main/kotlin/Config.kt @@ -18,6 +18,7 @@ object Versions { const val mockk = "1.12.0" const val ktlint = "0.36.0" + const val detekt = "1.9.1" } object AppConfigs { @@ -34,9 +35,10 @@ object ClassPath { const val kotlin_gradle_plugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}" } -object Plugin { +object Plugins { const val android_application = "com.android.application" const val kotlin_android = "android" + const val detekt = "io.gitlab.arturbosch.detekt" } object Deps { diff --git a/config/detekt/detekt.yml b/config/detekt/detekt.yml index 27f3f44..9c4a43e 100644 --- a/config/detekt/detekt.yml +++ b/config/detekt/detekt.yml @@ -1,5 +1,3 @@ -# To generate the default config detekt.yml file -# ./gradlew detektGenerateConfig build: maxIssues: 10 excludeCorrectable: false @@ -11,7 +9,6 @@ build: config: validation: true - warningsAsErrors: false # when writing own rules with new properties, exclude the property path e.g.: 'my_rule_set,.*>.*>[my_property]' excludes: '' @@ -19,18 +16,11 @@ processors: active: true exclude: - 'DetektProgressListener' - # - 'KtFileCountProcessor' - # - 'PackageCountProcessor' - # - 'ClassCountProcessor' # - 'FunctionCountProcessor' # - 'PropertyCountProcessor' - # - 'ProjectComplexityProcessor' - # - 'ProjectCognitiveComplexityProcessor' - # - 'ProjectLLOCProcessor' - # - 'ProjectCLOCProcessor' - # - 'ProjectLOCProcessor' - # - 'ProjectSLOCProcessor' - # - 'LicenseHeaderLoaderExtension' + # - 'ClassCountProcessor' + # - 'PackageCountProcessor' + # - 'KtFileCountProcessor' console-reports: active: true @@ -41,41 +31,29 @@ console-reports: # - 'FindingsReport' - 'FileBasedFindingsReport' -output-reports: - active: true - exclude: - # - 'TxtOutputReport' - # - 'XmlOutputReport' - # - 'HtmlOutputReport' - comments: active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] AbsentOrWrongFileLicense: active: false licenseTemplateFile: 'license.template' - licenseTemplateIsRegex: false CommentOverPrivateFunction: active: false CommentOverPrivateProperty: active: false - DeprecatedBlockTag: - active: false EndOfSentenceFormat: active: false endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)' UndocumentedPublicClass: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] searchInNestedClass: true searchInInnerClass: true searchInInnerObject: true searchInInnerInterface: true UndocumentedPublicFunction: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] UndocumentedPublicProperty: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] complexity: active: true @@ -93,16 +71,7 @@ complexity: ignoreSingleWhenExpression: false ignoreSimpleWhenEntries: false ignoreNestingFunctions: false - nestingFunctions: - - 'also' - - 'apply' - - 'forEach' - - 'isNotNull' - - 'ifNull' - - 'let' - - 'run' - - 'use' - - 'with' + nestingFunctions: [run, let, apply, with, also, use, forEach, isNotNull, ifNull] LabeledExpression: active: false ignoredLabels: [] @@ -112,7 +81,6 @@ complexity: LongMethod: active: true threshold: 60 - ignoreAnnotated: [] LongParameterList: active: true functionThreshold: 6 @@ -123,14 +91,9 @@ complexity: MethodOverloading: active: false threshold: 6 - NamedArguments: - active: false - threshold: 3 NestedBlockDepth: active: true threshold: 4 - ReplaceSafeCallChainWithRun: - active: false StringLiteralDuplication: active: false excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] @@ -156,10 +119,6 @@ coroutines: active: false RedundantSuspendModifier: active: false - SleepInsteadOfDelay: - active: false - SuspendFunWithFlowReturnType: - active: false empty-blocks: active: true @@ -199,74 +158,60 @@ empty-blocks: exceptions: active: true ExceptionRaisedInUnexpectedLocation: - active: true - methodNames: - - 'equals' - - 'finalize' - - 'hashCode' - - 'toString' + active: false + methodNames: [toString, hashCode, equals, finalize] InstanceOfCheckForException: active: false excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] NotImplementedDeclaration: active: false - ObjectExtendsThrowable: - active: false PrintStackTrace: - active: true + active: false RethrowCaughtException: - active: true + active: false ReturnFromFinally: - active: true + active: false ignoreLabeled: false SwallowedException: - active: true + active: false ignoredExceptionTypes: - - 'InterruptedException' - - 'MalformedURLException' - - 'NumberFormatException' - - 'ParseException' + - InterruptedException + - NumberFormatException + - ParseException + - MalformedURLException allowedExceptionNameRegex: '_|(ignore|expected).*' ThrowingExceptionFromFinally: - active: true + active: false ThrowingExceptionInMain: active: false ThrowingExceptionsWithoutMessageOrCause: - active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + active: false exceptions: - - 'ArrayIndexOutOfBoundsException' - - 'Error' - - 'Exception' - - 'IllegalArgumentException' - - 'IllegalMonitorStateException' - - 'IllegalStateException' - - 'IndexOutOfBoundsException' - - 'NullPointerException' - - 'RuntimeException' - - 'Throwable' + - IllegalArgumentException + - IllegalStateException + - IOException ThrowingNewInstanceOfSameException: - active: true + active: false TooGenericExceptionCaught: - active: false #changed true + active: true excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] exceptionNames: - - 'ArrayIndexOutOfBoundsException' - - 'Error' - - 'Exception' - - 'IllegalMonitorStateException' - - 'IndexOutOfBoundsException' - - 'NullPointerException' - - 'RuntimeException' - - 'Throwable' + - ArrayIndexOutOfBoundsException + - Error + - Exception + - IllegalMonitorStateException + - NullPointerException + - IndexOutOfBoundsException + - RuntimeException + - Throwable allowedExceptionNameRegex: '_|(ignore|expected).*' TooGenericExceptionThrown: active: true exceptionNames: - - 'Error' - - 'Exception' - - 'RuntimeException' - - 'Throwable' + - Error + - Exception + - Throwable + - RuntimeException formatting: active: true @@ -275,14 +220,6 @@ formatting: AnnotationOnSeparateLine: active: false autoCorrect: true - AnnotationSpacing: - active: false - autoCorrect: true - ArgumentListWrapping: - active: false - autoCorrect: true - indentSize: 4 - maxLineLength: 120 ChainWrapping: active: true autoCorrect: true @@ -301,7 +238,6 @@ formatting: ImportOrdering: active: false autoCorrect: true - layout: '*,java.**,javax.**,kotlin.**,^' Indentation: active: false autoCorrect: true @@ -310,7 +246,6 @@ formatting: MaximumLineLength: active: true maxLineLength: 120 - ignoreBackTickedIdentifier: false ModifierOrdering: active: true autoCorrect: true @@ -351,7 +286,7 @@ formatting: active: true autoCorrect: true NoWildcardImports: - active: false #changed: true + active: true PackageName: active: true autoCorrect: true @@ -359,10 +294,6 @@ formatting: active: true autoCorrect: true indentSize: 4 - maxLineLength: 120 - SpacingAroundAngleBrackets: - active: false - autoCorrect: true SpacingAroundColon: active: true autoCorrect: true @@ -375,9 +306,6 @@ formatting: SpacingAroundDot: active: true autoCorrect: true - SpacingAroundDoubleColon: - active: false - autoCorrect: true SpacingAroundKeyword: active: true autoCorrect: true @@ -390,25 +318,12 @@ formatting: SpacingAroundRangeOperator: active: true autoCorrect: true - SpacingAroundUnaryOperator: - active: false - autoCorrect: true - SpacingBetweenDeclarationsWithAnnotations: - active: false - autoCorrect: true - SpacingBetweenDeclarationsWithComments: - active: false - autoCorrect: true StringTemplate: active: true autoCorrect: true naming: active: true - BooleanPropertyNaming: - active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] - allowedPattern: '^(is|has|are)' ClassNaming: active: true excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] @@ -442,8 +357,6 @@ naming: functionPattern: '([a-z][a-zA-Z0-9]*)|(`.*`)' excludeClassPattern: '$^' ignoreOverridden: true - ignoreAnnotated: - - 'Composable' FunctionParameterNaming: active: true excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] @@ -452,7 +365,6 @@ naming: ignoreOverridden: true InvalidPackageDeclaration: active: false - excludes: ['**/*.kts'] rootPackage: '' MatchingDeclarationName: active: true @@ -460,11 +372,6 @@ naming: MemberNameEqualsClassName: active: true ignoreOverridden: true - NoNameShadowing: - active: false - NonBooleanPropertyPrefixedWithIs: - active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] ObjectPropertyNaming: active: true excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] @@ -512,43 +419,20 @@ performance: potential-bugs: active: true - AvoidReferentialEquality: - active: false - forbiddenTypePatterns: - - 'kotlin.String' - CastToNullableType: - active: false Deprecation: active: false - DontDowncastCollectionTypes: - active: false - DoubleMutabilityForCollection: - active: false DuplicateCaseInWhenExpression: active: true EqualsAlwaysReturnsTrueOrFalse: active: true EqualsWithHashCodeExist: active: true - ExitOutsideMain: - active: false ExplicitGarbageCollectionCall: active: true HasPlatformType: active: false - IgnoredReturnValue: - active: false - restrictToAnnotatedMethods: true - returnValueAnnotations: - - '*.CheckResult' - - '*.CheckReturnValue' - ignoreReturnValueAnnotations: - - '*.CanIgnoreReturnValue' ImplicitDefaultLocale: - active: true - ImplicitUnitReturnType: active: false - allowExplicitReturnType: true InvalidRange: active: true IteratorHasNextCallsNextMethod: @@ -564,26 +448,19 @@ potential-bugs: active: false MissingWhenCase: active: true - allowElseExpression: true - NullableToStringCall: - active: false RedundantElseInWhen: active: true UnconditionalJumpStatementInLoop: active: false UnnecessaryNotNullOperator: - active: true + active: false UnnecessarySafeCall: - active: true - UnreachableCatchBlock: active: false UnreachableCode: active: true UnsafeCallOnNullableType: active: true UnsafeCast: - active: true - UnusedUnaryOperator: active: false UselessPostfixExpression: active: false @@ -592,8 +469,6 @@ potential-bugs: style: active: true - ClassOrdering: - active: false CollapsibleIfStatements: active: false DataClassContainsFunctions: @@ -601,9 +476,6 @@ style: conversionFunctionPrefix: 'to' DataClassShouldBeImmutable: active: false - DestructuringDeclarationWithTooManyEntries: - active: false - maxDestructuringEntries: 3 EqualsNullCall: active: true EqualsOnSignatureLine: @@ -617,10 +489,7 @@ style: includeLineWrapping: false ForbiddenComment: active: true - values: - - 'FIXME:' - - 'STOPSHIP:' - - 'TODO:' + values: ['TODO:', 'FIXME:', 'STOPSHIP:'] allowedPatterns: '' ForbiddenImport: active: false @@ -628,15 +497,10 @@ style: forbiddenPatterns: '' ForbiddenMethodCall: active: false - methods: - - 'kotlin.io.print' - - 'kotlin.io.println' + methods: [] ForbiddenPublicDataClass: - active: true - excludes: ['**'] - ignorePackages: - - '*.internal' - - '*.internal.*' + active: false + ignorePackages: ['*.internal', '*.internal.*'] ForbiddenVoid: active: false ignoreOverridden: false @@ -644,27 +508,17 @@ style: FunctionOnlyReturningConstant: active: true ignoreOverridableFunction: true - ignoreActualFunction: true - excludedFunctions: '' - excludeAnnotatedFunction: - - 'dagger.Provides' + excludedFunctions: 'describeContents' + excludeAnnotatedFunction: ['dagger.Provides'] LibraryCodeMustSpecifyReturnType: active: true - excludes: ['**'] - LibraryEntitiesShouldNotBePublic: - active: true - excludes: ['**'] LoopWithTooManyJumpStatements: active: true maxJumpCount: 1 MagicNumber: active: true excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] - ignoreNumbers: - - '-1' - - '0' - - '1' - - '2' + ignoreNumbers: ['-1', '0', '1', '2'] ignoreHashCodeFunction: true ignorePropertyDeclaration: false ignoreLocalVariableDeclaration: false @@ -674,7 +528,6 @@ style: ignoreNamedArgument: true ignoreEnums: false ignoreRanges: false - ignoreExtensionFunctions: true MandatoryBracesIfStatements: active: false MandatoryBracesLoops: @@ -689,16 +542,12 @@ style: active: true ModifierOrder: active: true - MultilineLambdaItParameter: - active: false NestedClassesVisibility: - active: true + active: false NewLineAtEndOfFile: active: true NoTabs: active: false - ObjectLiteralToLambda: - active: false OptionalAbstractKeyword: active: true OptionalUnit: @@ -711,8 +560,6 @@ style: active: true RedundantExplicitType: active: false - RedundantHigherOrderMapUsage: - active: false RedundantVisibilityModifierRule: active: false ReturnCount: @@ -725,13 +572,12 @@ style: SafeCast: active: true SerialVersionUIDInSerializableClass: - active: true + active: false SpacingBetweenPackageAndImports: active: false ThrowsCount: active: true max: 2 - excludeGuardClauses: false TrailingWhitespace: active: false UnderscoresInNumericLiterals: @@ -739,13 +585,10 @@ style: acceptableDecimalLength: 5 UnnecessaryAbstractClass: active: true - excludeAnnotatedClasses: - - 'dagger.Module' + excludeAnnotatedClasses: ['dagger.Module'] UnnecessaryAnnotationUseSiteTarget: active: false UnnecessaryApply: - active: true - UnnecessaryFilter: active: false UnnecessaryInheritance: active: true @@ -760,41 +603,27 @@ style: UnusedPrivateClass: active: true UnusedPrivateMember: - active: true + active: false allowedNames: '(_|ignored|expected|serialVersionUID)' UseArrayLiteralsInAnnotations: active: false - UseCheckNotNull: - active: false UseCheckOrError: active: false UseDataClass: active: false excludeAnnotatedClasses: [] allowVars: false - UseEmptyCounterpart: - active: false - UseIfEmptyOrIfBlank: - active: false UseIfInsteadOfWhen: active: false - UseIsNullOrEmpty: - active: false - UseOrEmpty: - active: false UseRequire: active: false - UseRequireNotNull: - active: false UselessCallOnNotNull: active: true UtilityClassWithPublicConstructor: active: true VarCouldBeVal: - active: true + active: false WildcardImport: - active: false #changed true + active: true excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] - excludeImports: - - 'java.util.*' - - 'kotlinx.android.synthetic.*' + excludeImports: ['java.util.*', 'kotlinx.android.synthetic.*'] From 2c8942ae593bfebde33bac0b20f9ab33811aed45 Mon Sep 17 00:00:00 2001 From: daolq3012 Date: Wed, 16 Feb 2022 09:18:50 +0700 Subject: [PATCH 11/20] Test git --- .editorconfig | 2 +- team-props/git-hooks.gradle.kts | 41 +++++++++++++++ team-props/git-hooks/linux/commit-msg.sh | 17 ++++++ team-props/git-hooks/linux/pre-commit.sh | 67 ++++++++++++++++++++++++ team-props/git-hooks/mac/commit-msg.sh | 18 +++++++ team-props/git-hooks/mac/pre-commit.sh | 67 ++++++++++++++++++++++++ 6 files changed, 211 insertions(+), 1 deletion(-) create mode 100644 team-props/git-hooks.gradle.kts create mode 100644 team-props/git-hooks/linux/commit-msg.sh create mode 100644 team-props/git-hooks/linux/pre-commit.sh create mode 100644 team-props/git-hooks/mac/commit-msg.sh create mode 100644 team-props/git-hooks/mac/pre-commit.sh diff --git a/.editorconfig b/.editorconfig index 21dce16..7ae4b6e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,5 +1,5 @@ [*.{kt,kts}] indent_size=4 -# insert_final_newline=true +insert_final_newline=true max_line_length=120 disabled_rules=no-wildcard-imports,experimental:annotation diff --git a/team-props/git-hooks.gradle.kts b/team-props/git-hooks.gradle.kts new file mode 100644 index 0000000..b5fd495 --- /dev/null +++ b/team-props/git-hooks.gradle.kts @@ -0,0 +1,41 @@ +fun isLinuxOrMacOs(): Boolean { + return isMac() || isLinux() +} + +fun isLinux(): Boolean { + return System.getProperty("os.name").toLowerCase().contains("linux") +} + +fun isMac(): Boolean { + val osName = System.getProperty("os.name").toLowerCase() + return osName.contains("mac os") + || osName.contains("macos") +} + +tasks.register("copyGitHooks", Copy::class) { + description = "Copies the git hooks from team-props/git-hooks to the .git folder." + val path = if (isLinux()) "$rootDir/team-props/git-hooks/linux" + else "$rootDir/team-props/git-hooks/mac" + from(path) { + include("**/*.sh") + rename("(.*).sh", "$1") + } + into("$rootDir/.git/hooks") + onlyIf { isLinuxOrMacOs() } +} + +tasks.register("installGitHooks", Exec::class) { + description = "Installs the pre-commit git hooks from team-props/git-hooks." + group = "git hooks" + workingDir = rootDir + setCommandLine("chmod", "-R", "+x", ".git/hooks/") + dependsOn("copyGitHooks") + onlyIf { isLinuxOrMacOs() } + doLast { + logger.info("Git hook installed successfully!") + } +} + +afterEvaluate { + tasks["clean"].dependsOn("installGitHooks") +} diff --git a/team-props/git-hooks/linux/commit-msg.sh b/team-props/git-hooks/linux/commit-msg.sh new file mode 100644 index 0000000..ff2dc12 --- /dev/null +++ b/team-props/git-hooks/linux/commit-msg.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +echo "Checking your commit message" + +<&2 + exit 1 +fi diff --git a/team-props/git-hooks/linux/pre-commit.sh b/team-props/git-hooks/linux/pre-commit.sh new file mode 100644 index 0000000..6271bcc --- /dev/null +++ b/team-props/git-hooks/linux/pre-commit.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash +echo "Running static analysis..." + +echo "Checking dependency library's version" +./gradlew dependencyUpdate --daemon +status0=$? +if [[ "$status0" = 0 ]] ; then + echo "*******************************************************" + echo " Libraries Version checked " + echo " Please check and update your dependency if needed " + echo " Check report at \"build/reports/dependencies\" " + echo "*******************************************************" +else + echo "*******************************************************" + echo " Libraries Version failed " + echo " Please check and correct the error before commit. " + echo "*******************************************************" + exit status0 +fi + +echo "Start running ktlint" +./gradlew ktlintFormat ktlintCheck --daemon +status1=$? +if [[ "$status1" = 0 ]] ; then + echo "*******************************************************" + echo " Ktlint runs successfully " + echo "*******************************************************" +else + echo "*******************************************************" + echo " Ktlint failed " + echo " Please fix the reported issues before commit. " + echo "*******************************************************" + exit status1 +fi + +echo "Start running detektCheck" +./gradlew detekt --daemon +status2=$? +if [[ "$status2" = 0 ]] ; then + echo "*******************************************************" + echo " Detekt runs successfully " + echo "*******************************************************" +else + echo "*******************************************************" + echo " Detekt failed " + echo " Please fix the reported issues before committing " + echo "*******************************************************" + exit status2 +fi + +echo "Start running unit test" +./gradlew testDebugUnitTestCoverage --daemon +status3=$? +if [[ "$status3" = 0 ]] ; then + echo "*******************************************************" + echo " UnitTest successfully " + echo "*******************************************************" +else + echo "*******************************************************" + echo " UnitTest failed " + echo " Please fix the unit test issues before committing " + echo "*******************************************************" + exit status3 +fi + +# add changed files after run auto format +git add . \ No newline at end of file diff --git a/team-props/git-hooks/mac/commit-msg.sh b/team-props/git-hooks/mac/commit-msg.sh new file mode 100644 index 0000000..ced696c --- /dev/null +++ b/team-props/git-hooks/mac/commit-msg.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +echo "Checking your commit message" + +<&2 + exit 1 +fi diff --git a/team-props/git-hooks/mac/pre-commit.sh b/team-props/git-hooks/mac/pre-commit.sh new file mode 100644 index 0000000..01baa7c --- /dev/null +++ b/team-props/git-hooks/mac/pre-commit.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash +echo "Running static analysis..." + +echo "Checking dependency library's version" +./gradlew dependencyUpdate --daemon +status0=$? +if [[ "$status0" = 0 ]] ; then + echo "*******************************************************" + echo " Libraries Version checked " + echo " Please check and update your dependency if needed " + echo " Check report at \"build/reports/dependencies\" " + echo "*******************************************************" +else + echo "*******************************************************" + echo " Libraries Version failed " + echo " Please check and correct the error before commit. " + echo "*******************************************************" + exit status0 +fi + +echo "Start running ktlint" +./gradlew ktlintFormat ktlintCheck --daemon +status1=$? +if [[ "$status1" = 0 ]] ; then + echo "*******************************************************" + echo " Ktlint runs successfully " + echo "*******************************************************" +else + echo "*******************************************************" + echo " Ktlint failed " + echo " Please fix the reported issues before commit. " + echo "*******************************************************" + exit status1 +fi + +echo "Start running detektCheck" +./gradlew detekt --daemon +status2=$? +if [[ "$status2" = 0 ]] ; then + echo "*******************************************************" + echo " Detekt runs successfully " + echo "*******************************************************" +else + echo "*******************************************************" + echo " Detekt failed " + echo " Please fix the reported issues before committing " + echo "*******************************************************" + exit status2 +fi + +echo "Start running unit test" +./gradlew testDebugUnitTestCoverage --daemon +status3=$? +if [[ "$status3" = 0 ]] ; then + echo "*******************************************************" + echo " UnitTest successfully " + echo "*******************************************************" +else + echo "*******************************************************" + echo " UnitTest failed " + echo " Please fix the unit test issues before committing " + echo "*******************************************************" + exit status3 +fi + +# add changed files after run auto format +git add . From faf6a1572e00ff2c05fd06536a7d552f3acbfda6 Mon Sep 17 00:00:00 2001 From: daolq3012 Date: Wed, 16 Feb 2022 10:21:07 +0700 Subject: [PATCH 12/20] [add] Config git hooks local CI --- app/build.gradle.kts | 20 +++++------ build.gradle.kts | 2 ++ team-props/git-hooks/linux/pre-commit.sh | 45 ++++++++---------------- team-props/git-hooks/mac/pre-commit.sh | 45 ++++++++---------------- 4 files changed, 39 insertions(+), 73 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1108fa5..3d8ec1b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -8,16 +8,6 @@ buildscript { apply(from = "ktlint.gradle.kts") } -detekt { - config = files("$rootDir/config/detekt/detekt.yml") // config rules file - input = files("src/main/java") - reports { - html.enabled = true // observe findings in your browser with structure and code snippets - xml.enabled = false // checkstyle like format mainly for integrations like Jenkins - txt.enabled = false // similar to the console output, contains issue signature to manually edit baseline files - } -} - android { compileSdk = AppConfigs.compile_sdk_version @@ -50,7 +40,15 @@ android { } } - +detekt { + config = files("$rootDir/config/detekt/detekt.yml") // config rules file + input = files("src/main/java") + reports { + html.enabled = true // observe findings in your browser with structure and code snippets + xml.enabled = false // checkstyle like format mainly for integrations like Jenkins + txt.enabled = false // similar to the console output, contains issue signature to manually edit baseline files + } +} dependencies { implementation(Deps.core_ktx) diff --git a/build.gradle.kts b/build.gradle.kts index 4482ffa..1f8f99d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + apply(from = "$rootDir/team-props/git-hooks.gradle.kts") + repositories { google() mavenCentral() diff --git a/team-props/git-hooks/linux/pre-commit.sh b/team-props/git-hooks/linux/pre-commit.sh index 6271bcc..e88f589 100644 --- a/team-props/git-hooks/linux/pre-commit.sh +++ b/team-props/git-hooks/linux/pre-commit.sh @@ -1,23 +1,6 @@ #!/usr/bin/env bash echo "Running static analysis..." -echo "Checking dependency library's version" -./gradlew dependencyUpdate --daemon -status0=$? -if [[ "$status0" = 0 ]] ; then - echo "*******************************************************" - echo " Libraries Version checked " - echo " Please check and update your dependency if needed " - echo " Check report at \"build/reports/dependencies\" " - echo "*******************************************************" -else - echo "*******************************************************" - echo " Libraries Version failed " - echo " Please check and correct the error before commit. " - echo "*******************************************************" - exit status0 -fi - echo "Start running ktlint" ./gradlew ktlintFormat ktlintCheck --daemon status1=$? @@ -48,20 +31,20 @@ else exit status2 fi -echo "Start running unit test" -./gradlew testDebugUnitTestCoverage --daemon -status3=$? -if [[ "$status3" = 0 ]] ; then - echo "*******************************************************" - echo " UnitTest successfully " - echo "*******************************************************" -else - echo "*******************************************************" - echo " UnitTest failed " - echo " Please fix the unit test issues before committing " - echo "*******************************************************" - exit status3 -fi +#echo "Start running unit test" +#./gradlew testDebugUnitTestCoverage --daemon +#status3=$? +#if [[ "$status3" = 0 ]] ; then +# echo "*******************************************************" +# echo " UnitTest successfully " +# echo "*******************************************************" +#else +# echo "*******************************************************" +# echo " UnitTest failed " +# echo " Please fix the unit test issues before committing " +# echo "*******************************************************" +# exit status3 +#fi # add changed files after run auto format git add . \ No newline at end of file diff --git a/team-props/git-hooks/mac/pre-commit.sh b/team-props/git-hooks/mac/pre-commit.sh index 01baa7c..014aa6f 100644 --- a/team-props/git-hooks/mac/pre-commit.sh +++ b/team-props/git-hooks/mac/pre-commit.sh @@ -1,23 +1,6 @@ #!/usr/bin/env bash echo "Running static analysis..." -echo "Checking dependency library's version" -./gradlew dependencyUpdate --daemon -status0=$? -if [[ "$status0" = 0 ]] ; then - echo "*******************************************************" - echo " Libraries Version checked " - echo " Please check and update your dependency if needed " - echo " Check report at \"build/reports/dependencies\" " - echo "*******************************************************" -else - echo "*******************************************************" - echo " Libraries Version failed " - echo " Please check and correct the error before commit. " - echo "*******************************************************" - exit status0 -fi - echo "Start running ktlint" ./gradlew ktlintFormat ktlintCheck --daemon status1=$? @@ -48,20 +31,20 @@ else exit status2 fi -echo "Start running unit test" -./gradlew testDebugUnitTestCoverage --daemon -status3=$? -if [[ "$status3" = 0 ]] ; then - echo "*******************************************************" - echo " UnitTest successfully " - echo "*******************************************************" -else - echo "*******************************************************" - echo " UnitTest failed " - echo " Please fix the unit test issues before committing " - echo "*******************************************************" - exit status3 -fi +#echo "Start running unit test" +#./gradlew testDebugUnitTestCoverage --daemon +#status3=$? +#if [[ "$status3" = 0 ]] ; then +# echo "*******************************************************" +# echo " UnitTest successfully " +# echo "*******************************************************" +#else +# echo "*******************************************************" +# echo " UnitTest failed " +# echo " Please fix the unit test issues before committing " +# echo "*******************************************************" +# exit status3 +#fi # add changed files after run auto format git add . From c0f8c3e84ef60f52a57f5fdec78a6790fbea4fff Mon Sep 17 00:00:00 2001 From: daolq3012 Date: Wed, 16 Feb 2022 10:37:20 +0700 Subject: [PATCH 13/20] [Add] Config test coverage --- app/build.gradle.kts | 88 ++++++++++++++++++++++++ buildSrc/src/main/kotlin/Config.kt | 1 + team-props/git-hooks/linux/pre-commit.sh | 28 ++++---- team-props/git-hooks/mac/pre-commit.sh | 28 ++++---- 4 files changed, 117 insertions(+), 28 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3d8ec1b..e7268e4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -2,6 +2,7 @@ plugins { id(Plugins.android_application) kotlin(Plugins.kotlin_android) id(Plugins.detekt).version(Versions.detekt) + jacoco } buildscript { @@ -50,6 +51,93 @@ detekt { } } +jacoco { + toolVersion = Versions.jacoco +} + +project.afterEvaluate { + // Grab all build types and product flavors + val buildTypeNames: List = android.buildTypes.map { it.name } + val productFlavorNames: ArrayList = ArrayList(android.productFlavors.map { it.name }) + // When no product flavors defined, use empty + if (productFlavorNames.isEmpty()) productFlavorNames.add("") + productFlavorNames.forEach { productFlavorName -> + buildTypeNames.forEach { buildTypeName -> + val sourceName: String + val sourcePath: String + + if (productFlavorName.isEmpty()) { + sourcePath = buildTypeName + sourceName = buildTypeName + } else { + sourcePath = "$productFlavorName/$buildTypeName" + sourceName = "$productFlavorName${buildTypeName.capitalize()}" + } + val testTaskName = "test${sourceName.capitalize()}UnitTest" + // Create coverage task of form 'testFlavorTypeCoverage' depending on 'testFlavorTypeUnitTest' + // Ex: ./gradlew testDebugUnitTestCoverage + task("${testTaskName}Coverage") { + // where store all test to run follow second way above + group = "coverage" + description = "Generate Jacoco coverage reports on the ${sourceName.capitalize()} build." + val excludeFiles = setOf( + "androidx/**/*.class", + "**/BR.class", + "**/R.class", + "**/R$*.class", + "**/BuildConfig.*", + "**/Manifest*.*", + "**/*Test*.*", + "android/**/*.*", + "**/*Application*.*", + "**/*Activity*.*", + "**/*Fragment*.*", + "**/*Adapter*.*", + "**/*Dialog*.*", + "**/*Args*.*", + "**/*Companion*.*", + "**/Lambda*.*", + "**/*Lambda*.*", + "**/*Binder*.*", + ) + + //Explain to Jacoco where are you .class file java and kotlin + classDirectories.setFrom( + fileTree("build/intermediates/classes/$sourcePath").exclude(excludeFiles), + fileTree("build/tmp/kotlin-classes/$sourceName").exclude(excludeFiles) + ) + val coverageSourceDirs = arrayListOf( + "src/main/java", + "src/$productFlavorName/java", + "src/$buildTypeName/java" + ) + + additionalSourceDirs.setFrom(files(coverageSourceDirs)) + + //Explain to Jacoco where is your source code + sourceDirectories.setFrom(files(coverageSourceDirs)) + + //execute file .exec to generate data report + executionData.setFrom( + fileTree( + mapOf( + "dir" to layout.buildDirectory, + "includes" to listOf("**/*.exec") + ) + ) + ) + + reports { + xml.isEnabled = false + html.isEnabled = true + html.outputLocation.set(layout.buildDirectory.dir("reports/tests/coverage/${testTaskName}Report")) + } + dependsOn(testTaskName) + } + } + } +} + dependencies { implementation(Deps.core_ktx) implementation(Deps.appcompat) diff --git a/buildSrc/src/main/kotlin/Config.kt b/buildSrc/src/main/kotlin/Config.kt index 8cb5f53..4f6fcf1 100644 --- a/buildSrc/src/main/kotlin/Config.kt +++ b/buildSrc/src/main/kotlin/Config.kt @@ -14,6 +14,7 @@ object Versions { const val navigation = "2.3.5" const val koin = "3.1.2" + const val jacoco = "0.8.7" const val jUnit = "4.13.2" const val mockk = "1.12.0" diff --git a/team-props/git-hooks/linux/pre-commit.sh b/team-props/git-hooks/linux/pre-commit.sh index e88f589..b30dc42 100644 --- a/team-props/git-hooks/linux/pre-commit.sh +++ b/team-props/git-hooks/linux/pre-commit.sh @@ -31,20 +31,20 @@ else exit status2 fi -#echo "Start running unit test" -#./gradlew testDebugUnitTestCoverage --daemon -#status3=$? -#if [[ "$status3" = 0 ]] ; then -# echo "*******************************************************" -# echo " UnitTest successfully " -# echo "*******************************************************" -#else -# echo "*******************************************************" -# echo " UnitTest failed " -# echo " Please fix the unit test issues before committing " -# echo "*******************************************************" -# exit status3 -#fi +echo "Start running unit test" +./gradlew testDebugUnitTestCoverage --daemon +status3=$? +if [[ "$status3" = 0 ]] ; then + echo "*******************************************************" + echo " UnitTest successfully " + echo "*******************************************************" +else + echo "*******************************************************" + echo " UnitTest failed " + echo " Please fix the unit test issues before committing " + echo "*******************************************************" + exit status3 +fi # add changed files after run auto format git add . \ No newline at end of file diff --git a/team-props/git-hooks/mac/pre-commit.sh b/team-props/git-hooks/mac/pre-commit.sh index 014aa6f..290cd25 100644 --- a/team-props/git-hooks/mac/pre-commit.sh +++ b/team-props/git-hooks/mac/pre-commit.sh @@ -31,20 +31,20 @@ else exit status2 fi -#echo "Start running unit test" -#./gradlew testDebugUnitTestCoverage --daemon -#status3=$? -#if [[ "$status3" = 0 ]] ; then -# echo "*******************************************************" -# echo " UnitTest successfully " -# echo "*******************************************************" -#else -# echo "*******************************************************" -# echo " UnitTest failed " -# echo " Please fix the unit test issues before committing " -# echo "*******************************************************" -# exit status3 -#fi +echo "Start running unit test" +./gradlew testDebugUnitTestCoverage --daemon +status3=$? +if [[ "$status3" = 0 ]] ; then + echo "*******************************************************" + echo " UnitTest successfully " + echo "*******************************************************" +else + echo "*******************************************************" + echo " UnitTest failed " + echo " Please fix the unit test issues before committing " + echo "*******************************************************" + exit status3 +fi # add changed files after run auto format git add . From 2ada733c76ae769bd87680a2a01d50f51e3b2106 Mon Sep 17 00:00:00 2001 From: daolq3012 Date: Wed, 16 Feb 2022 10:57:21 +0700 Subject: [PATCH 14/20] [Add] create multi dimen for responsive --- app/autodimension.gradle.kts | 65 ++++++++++++++++++++++++++++++++++++ app/build.gradle.kts | 13 ++++++++ 2 files changed, 78 insertions(+) create mode 100644 app/autodimension.gradle.kts diff --git a/app/autodimension.gradle.kts b/app/autodimension.gradle.kts new file mode 100644 index 0000000..ac7f438 --- /dev/null +++ b/app/autodimension.gradle.kts @@ -0,0 +1,65 @@ +import java.io.PrintWriter + +open class DimenFactory : DefaultTask() { + private val dimens = intArrayOf( + 320, 360, 384, 411, 480, 540, 600, 720, 800, 960, 1024, 1080, 1280, 1440, 2560, 3840 + ) + private val fromDimen = 360f + private val positiveMaxDP = 400 + private val positiveMaxSP = 60 + private val negativeMaxDP = 60 + private val resFolder = project.projectDir.path + "/src/main/res/" + + @TaskAction + fun create() { + autoCreateDimen() + } + + private fun autoCreateDimen() { + // write dimen.xml + val defaultFolder = resFolder + "values" + val defaultDimensFile = "$defaultFolder/dimens.xml" + File(defaultFolder).mkdir() + File(defaultDimensFile).createNewFile() + writeAutoDimen(defaultDimensFile, 360) + + // write other auto_dimens.xml + for (dimen in dimens) { + val folder = resFolder + "values-sw" + dimen + "dp" + val fileName = "$folder/auto_dimens.xml" + File(folder).mkdir() + File(fileName).createNewFile() + writeAutoDimen(fileName, dimen) + } + } + + private fun writeAutoDimen(fileName: String, dimen: Int) { + println("Auto create dimension file and values $fileName") + val printWriter = PrintWriter(fileName) + printWriter.println("") + printWriter.println("") + for (i in 0..positiveMaxDP) { + val ratio = dimen / fromDimen + val dp = ratio * i + printWriter.printf("\t%.2fdp\r\n", i, dp) + } + printWriter.println() + for (i in 1..negativeMaxDP) { + val ratio = dimen / fromDimen + val dp = ratio * i + printWriter.printf("\t%.2fdp\r\n", i, -dp) + } + printWriter.println() + for (i in 1..positiveMaxSP) { + val ratio = dimen / fromDimen + val sp = ratio * i + printWriter.printf("\t%.2fsp\r\n", i, sp) + } + printWriter.println("") + printWriter.close() + } +} + +tasks.register("createDimen", DimenFactory::class) { + create() +} diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e7268e4..357f807 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -7,6 +7,7 @@ plugins { buildscript { apply(from = "ktlint.gradle.kts") + apply(from = "autodimension.gradle.kts") } android { @@ -138,6 +139,18 @@ project.afterEvaluate { } } + +tasks { + check { + dependsOn("ktlintCheck") + dependsOn("ktlintFormat") + } + clean { + dependsOn("createDimen") + mustRunAfter("createDimen") + } +} + dependencies { implementation(Deps.core_ktx) implementation(Deps.appcompat) From 0209d4627440ae1a1efb878ae686862fa49516ea Mon Sep 17 00:00:00 2001 From: daolq3012 Date: Wed, 16 Feb 2022 11:00:07 +0700 Subject: [PATCH 15/20] [ADD] run task clean to generate multi dimen --- .../main/res/values-sw1024dp/auto_dimens.xml | 526 ++++++++++++++++++ .../main/res/values-sw1080dp/auto_dimens.xml | 526 ++++++++++++++++++ .../main/res/values-sw1280dp/auto_dimens.xml | 526 ++++++++++++++++++ .../main/res/values-sw1440dp/auto_dimens.xml | 526 ++++++++++++++++++ .../main/res/values-sw2560dp/auto_dimens.xml | 526 ++++++++++++++++++ .../main/res/values-sw320dp/auto_dimens.xml | 526 ++++++++++++++++++ .../main/res/values-sw360dp/auto_dimens.xml | 526 ++++++++++++++++++ .../main/res/values-sw3840dp/auto_dimens.xml | 526 ++++++++++++++++++ .../main/res/values-sw384dp/auto_dimens.xml | 526 ++++++++++++++++++ .../main/res/values-sw411dp/auto_dimens.xml | 526 ++++++++++++++++++ .../main/res/values-sw480dp/auto_dimens.xml | 526 ++++++++++++++++++ .../main/res/values-sw540dp/auto_dimens.xml | 526 ++++++++++++++++++ .../main/res/values-sw600dp/auto_dimens.xml | 526 ++++++++++++++++++ .../main/res/values-sw720dp/auto_dimens.xml | 526 ++++++++++++++++++ .../main/res/values-sw800dp/auto_dimens.xml | 526 ++++++++++++++++++ .../main/res/values-sw960dp/auto_dimens.xml | 526 ++++++++++++++++++ 16 files changed, 8416 insertions(+) create mode 100644 app/src/main/res/values-sw1024dp/auto_dimens.xml create mode 100644 app/src/main/res/values-sw1080dp/auto_dimens.xml create mode 100644 app/src/main/res/values-sw1280dp/auto_dimens.xml create mode 100644 app/src/main/res/values-sw1440dp/auto_dimens.xml create mode 100644 app/src/main/res/values-sw2560dp/auto_dimens.xml create mode 100644 app/src/main/res/values-sw320dp/auto_dimens.xml create mode 100644 app/src/main/res/values-sw360dp/auto_dimens.xml create mode 100644 app/src/main/res/values-sw3840dp/auto_dimens.xml create mode 100644 app/src/main/res/values-sw384dp/auto_dimens.xml create mode 100644 app/src/main/res/values-sw411dp/auto_dimens.xml create mode 100644 app/src/main/res/values-sw480dp/auto_dimens.xml create mode 100644 app/src/main/res/values-sw540dp/auto_dimens.xml create mode 100644 app/src/main/res/values-sw600dp/auto_dimens.xml create mode 100644 app/src/main/res/values-sw720dp/auto_dimens.xml create mode 100644 app/src/main/res/values-sw800dp/auto_dimens.xml create mode 100644 app/src/main/res/values-sw960dp/auto_dimens.xml diff --git a/app/src/main/res/values-sw1024dp/auto_dimens.xml b/app/src/main/res/values-sw1024dp/auto_dimens.xml new file mode 100644 index 0000000..331336b --- /dev/null +++ b/app/src/main/res/values-sw1024dp/auto_dimens.xml @@ -0,0 +1,526 @@ + + + 0.00dp + 2.84dp + 5.69dp + 8.53dp + 11.38dp + 14.22dp + 17.07dp + 19.91dp + 22.76dp + 25.60dp + 28.44dp + 31.29dp + 34.13dp + 36.98dp + 39.82dp + 42.67dp + 45.51dp + 48.36dp + 51.20dp + 54.04dp + 56.89dp + 59.73dp + 62.58dp + 65.42dp + 68.27dp + 71.11dp + 73.96dp + 76.80dp + 79.64dp + 82.49dp + 85.33dp + 88.18dp + 91.02dp + 93.87dp + 96.71dp + 99.56dp + 102.40dp + 105.24dp + 108.09dp + 110.93dp + 113.78dp + 116.62dp + 119.47dp + 122.31dp + 125.16dp + 128.00dp + 130.84dp + 133.69dp + 136.53dp + 139.38dp + 142.22dp + 145.07dp + 147.91dp + 150.76dp + 153.60dp + 156.44dp + 159.29dp + 162.13dp + 164.98dp + 167.82dp + 170.67dp + 173.51dp + 176.36dp + 179.20dp + 182.04dp + 184.89dp + 187.73dp + 190.58dp + 193.42dp + 196.27dp + 199.11dp + 201.96dp + 204.80dp + 207.64dp + 210.49dp + 213.33dp + 216.18dp + 219.02dp + 221.87dp + 224.71dp + 227.56dp + 230.40dp + 233.24dp + 236.09dp + 238.93dp + 241.78dp + 244.62dp + 247.47dp + 250.31dp + 253.16dp + 256.00dp + 258.84dp + 261.69dp + 264.53dp + 267.38dp + 270.22dp + 273.07dp + 275.91dp + 278.76dp + 281.60dp + 284.44dp + 287.29dp + 290.13dp + 292.98dp + 295.82dp + 298.67dp + 301.51dp + 304.36dp + 307.20dp + 310.04dp + 312.89dp + 315.73dp + 318.58dp + 321.42dp + 324.27dp + 327.11dp + 329.96dp + 332.80dp + 335.64dp + 338.49dp + 341.33dp + 344.18dp + 347.02dp + 349.87dp + 352.71dp + 355.56dp + 358.40dp + 361.24dp + 364.09dp + 366.93dp + 369.78dp + 372.62dp + 375.47dp + 378.31dp + 381.16dp + 384.00dp + 386.84dp + 389.69dp + 392.53dp + 395.38dp + 398.22dp + 401.07dp + 403.91dp + 406.76dp + 409.60dp + 412.44dp + 415.29dp + 418.13dp + 420.98dp + 423.82dp + 426.67dp + 429.51dp + 432.36dp + 435.20dp + 438.04dp + 440.89dp + 443.73dp + 446.58dp + 449.42dp + 452.27dp + 455.11dp + 457.96dp + 460.80dp + 463.64dp + 466.49dp + 469.33dp + 472.18dp + 475.02dp + 477.87dp + 480.71dp + 483.56dp + 486.40dp + 489.24dp + 492.09dp + 494.93dp + 497.78dp + 500.62dp + 503.47dp + 506.31dp + 509.16dp + 512.00dp + 514.84dp + 517.69dp + 520.53dp + 523.38dp + 526.22dp + 529.07dp + 531.91dp + 534.76dp + 537.60dp + 540.44dp + 543.29dp + 546.13dp + 548.98dp + 551.82dp + 554.67dp + 557.51dp + 560.36dp + 563.20dp + 566.04dp + 568.89dp + 571.73dp + 574.58dp + 577.42dp + 580.27dp + 583.11dp + 585.96dp + 588.80dp + 591.64dp + 594.49dp + 597.33dp + 600.18dp + 603.02dp + 605.87dp + 608.71dp + 611.56dp + 614.40dp + 617.24dp + 620.09dp + 622.93dp + 625.78dp + 628.62dp + 631.47dp + 634.31dp + 637.16dp + 640.00dp + 642.84dp + 645.69dp + 648.53dp + 651.38dp + 654.22dp + 657.07dp + 659.91dp + 662.76dp + 665.60dp + 668.44dp + 671.29dp + 674.13dp + 676.98dp + 679.82dp + 682.67dp + 685.51dp + 688.36dp + 691.20dp + 694.04dp + 696.89dp + 699.73dp + 702.58dp + 705.42dp + 708.27dp + 711.11dp + 713.96dp + 716.80dp + 719.64dp + 722.49dp + 725.33dp + 728.18dp + 731.02dp + 733.87dp + 736.71dp + 739.56dp + 742.40dp + 745.24dp + 748.09dp + 750.93dp + 753.78dp + 756.62dp + 759.47dp + 762.31dp + 765.16dp + 768.00dp + 770.84dp + 773.69dp + 776.53dp + 779.38dp + 782.22dp + 785.07dp + 787.91dp + 790.76dp + 793.60dp + 796.44dp + 799.29dp + 802.13dp + 804.98dp + 807.82dp + 810.67dp + 813.51dp + 816.36dp + 819.20dp + 822.04dp + 824.89dp + 827.73dp + 830.58dp + 833.42dp + 836.27dp + 839.11dp + 841.96dp + 844.80dp + 847.64dp + 850.49dp + 853.33dp + 856.18dp + 859.02dp + 861.87dp + 864.71dp + 867.56dp + 870.40dp + 873.24dp + 876.09dp + 878.93dp + 881.78dp + 884.62dp + 887.47dp + 890.31dp + 893.16dp + 896.00dp + 898.84dp + 901.69dp + 904.53dp + 907.38dp + 910.22dp + 913.07dp + 915.91dp + 918.76dp + 921.60dp + 924.44dp + 927.29dp + 930.13dp + 932.98dp + 935.82dp + 938.67dp + 941.51dp + 944.36dp + 947.20dp + 950.04dp + 952.89dp + 955.73dp + 958.58dp + 961.42dp + 964.27dp + 967.11dp + 969.96dp + 972.80dp + 975.64dp + 978.49dp + 981.33dp + 984.18dp + 987.02dp + 989.87dp + 992.71dp + 995.56dp + 998.40dp + 1001.24dp + 1004.09dp + 1006.93dp + 1009.78dp + 1012.62dp + 1015.47dp + 1018.31dp + 1021.16dp + 1024.00dp + 1026.84dp + 1029.69dp + 1032.53dp + 1035.38dp + 1038.22dp + 1041.07dp + 1043.91dp + 1046.76dp + 1049.60dp + 1052.44dp + 1055.29dp + 1058.13dp + 1060.98dp + 1063.82dp + 1066.67dp + 1069.51dp + 1072.36dp + 1075.20dp + 1078.04dp + 1080.89dp + 1083.73dp + 1086.58dp + 1089.42dp + 1092.27dp + 1095.11dp + 1097.96dp + 1100.80dp + 1103.64dp + 1106.49dp + 1109.33dp + 1112.18dp + 1115.02dp + 1117.87dp + 1120.71dp + 1123.56dp + 1126.40dp + 1129.24dp + 1132.09dp + 1134.93dp + 1137.78dp + + -2.84dp + -5.69dp + -8.53dp + -11.38dp + -14.22dp + -17.07dp + -19.91dp + -22.76dp + -25.60dp + -28.44dp + -31.29dp + -34.13dp + -36.98dp + -39.82dp + -42.67dp + -45.51dp + -48.36dp + -51.20dp + -54.04dp + -56.89dp + -59.73dp + -62.58dp + -65.42dp + -68.27dp + -71.11dp + -73.96dp + -76.80dp + -79.64dp + -82.49dp + -85.33dp + -88.18dp + -91.02dp + -93.87dp + -96.71dp + -99.56dp + -102.40dp + -105.24dp + -108.09dp + -110.93dp + -113.78dp + -116.62dp + -119.47dp + -122.31dp + -125.16dp + -128.00dp + -130.84dp + -133.69dp + -136.53dp + -139.38dp + -142.22dp + -145.07dp + -147.91dp + -150.76dp + -153.60dp + -156.44dp + -159.29dp + -162.13dp + -164.98dp + -167.82dp + -170.67dp + + 2.84sp + 5.69sp + 8.53sp + 11.38sp + 14.22sp + 17.07sp + 19.91sp + 22.76sp + 25.60sp + 28.44sp + 31.29sp + 34.13sp + 36.98sp + 39.82sp + 42.67sp + 45.51sp + 48.36sp + 51.20sp + 54.04sp + 56.89sp + 59.73sp + 62.58sp + 65.42sp + 68.27sp + 71.11sp + 73.96sp + 76.80sp + 79.64sp + 82.49sp + 85.33sp + 88.18sp + 91.02sp + 93.87sp + 96.71sp + 99.56sp + 102.40sp + 105.24sp + 108.09sp + 110.93sp + 113.78sp + 116.62sp + 119.47sp + 122.31sp + 125.16sp + 128.00sp + 130.84sp + 133.69sp + 136.53sp + 139.38sp + 142.22sp + 145.07sp + 147.91sp + 150.76sp + 153.60sp + 156.44sp + 159.29sp + 162.13sp + 164.98sp + 167.82sp + 170.67sp + diff --git a/app/src/main/res/values-sw1080dp/auto_dimens.xml b/app/src/main/res/values-sw1080dp/auto_dimens.xml new file mode 100644 index 0000000..7cc3a45 --- /dev/null +++ b/app/src/main/res/values-sw1080dp/auto_dimens.xml @@ -0,0 +1,526 @@ + + + 0.00dp + 3.00dp + 6.00dp + 9.00dp + 12.00dp + 15.00dp + 18.00dp + 21.00dp + 24.00dp + 27.00dp + 30.00dp + 33.00dp + 36.00dp + 39.00dp + 42.00dp + 45.00dp + 48.00dp + 51.00dp + 54.00dp + 57.00dp + 60.00dp + 63.00dp + 66.00dp + 69.00dp + 72.00dp + 75.00dp + 78.00dp + 81.00dp + 84.00dp + 87.00dp + 90.00dp + 93.00dp + 96.00dp + 99.00dp + 102.00dp + 105.00dp + 108.00dp + 111.00dp + 114.00dp + 117.00dp + 120.00dp + 123.00dp + 126.00dp + 129.00dp + 132.00dp + 135.00dp + 138.00dp + 141.00dp + 144.00dp + 147.00dp + 150.00dp + 153.00dp + 156.00dp + 159.00dp + 162.00dp + 165.00dp + 168.00dp + 171.00dp + 174.00dp + 177.00dp + 180.00dp + 183.00dp + 186.00dp + 189.00dp + 192.00dp + 195.00dp + 198.00dp + 201.00dp + 204.00dp + 207.00dp + 210.00dp + 213.00dp + 216.00dp + 219.00dp + 222.00dp + 225.00dp + 228.00dp + 231.00dp + 234.00dp + 237.00dp + 240.00dp + 243.00dp + 246.00dp + 249.00dp + 252.00dp + 255.00dp + 258.00dp + 261.00dp + 264.00dp + 267.00dp + 270.00dp + 273.00dp + 276.00dp + 279.00dp + 282.00dp + 285.00dp + 288.00dp + 291.00dp + 294.00dp + 297.00dp + 300.00dp + 303.00dp + 306.00dp + 309.00dp + 312.00dp + 315.00dp + 318.00dp + 321.00dp + 324.00dp + 327.00dp + 330.00dp + 333.00dp + 336.00dp + 339.00dp + 342.00dp + 345.00dp + 348.00dp + 351.00dp + 354.00dp + 357.00dp + 360.00dp + 363.00dp + 366.00dp + 369.00dp + 372.00dp + 375.00dp + 378.00dp + 381.00dp + 384.00dp + 387.00dp + 390.00dp + 393.00dp + 396.00dp + 399.00dp + 402.00dp + 405.00dp + 408.00dp + 411.00dp + 414.00dp + 417.00dp + 420.00dp + 423.00dp + 426.00dp + 429.00dp + 432.00dp + 435.00dp + 438.00dp + 441.00dp + 444.00dp + 447.00dp + 450.00dp + 453.00dp + 456.00dp + 459.00dp + 462.00dp + 465.00dp + 468.00dp + 471.00dp + 474.00dp + 477.00dp + 480.00dp + 483.00dp + 486.00dp + 489.00dp + 492.00dp + 495.00dp + 498.00dp + 501.00dp + 504.00dp + 507.00dp + 510.00dp + 513.00dp + 516.00dp + 519.00dp + 522.00dp + 525.00dp + 528.00dp + 531.00dp + 534.00dp + 537.00dp + 540.00dp + 543.00dp + 546.00dp + 549.00dp + 552.00dp + 555.00dp + 558.00dp + 561.00dp + 564.00dp + 567.00dp + 570.00dp + 573.00dp + 576.00dp + 579.00dp + 582.00dp + 585.00dp + 588.00dp + 591.00dp + 594.00dp + 597.00dp + 600.00dp + 603.00dp + 606.00dp + 609.00dp + 612.00dp + 615.00dp + 618.00dp + 621.00dp + 624.00dp + 627.00dp + 630.00dp + 633.00dp + 636.00dp + 639.00dp + 642.00dp + 645.00dp + 648.00dp + 651.00dp + 654.00dp + 657.00dp + 660.00dp + 663.00dp + 666.00dp + 669.00dp + 672.00dp + 675.00dp + 678.00dp + 681.00dp + 684.00dp + 687.00dp + 690.00dp + 693.00dp + 696.00dp + 699.00dp + 702.00dp + 705.00dp + 708.00dp + 711.00dp + 714.00dp + 717.00dp + 720.00dp + 723.00dp + 726.00dp + 729.00dp + 732.00dp + 735.00dp + 738.00dp + 741.00dp + 744.00dp + 747.00dp + 750.00dp + 753.00dp + 756.00dp + 759.00dp + 762.00dp + 765.00dp + 768.00dp + 771.00dp + 774.00dp + 777.00dp + 780.00dp + 783.00dp + 786.00dp + 789.00dp + 792.00dp + 795.00dp + 798.00dp + 801.00dp + 804.00dp + 807.00dp + 810.00dp + 813.00dp + 816.00dp + 819.00dp + 822.00dp + 825.00dp + 828.00dp + 831.00dp + 834.00dp + 837.00dp + 840.00dp + 843.00dp + 846.00dp + 849.00dp + 852.00dp + 855.00dp + 858.00dp + 861.00dp + 864.00dp + 867.00dp + 870.00dp + 873.00dp + 876.00dp + 879.00dp + 882.00dp + 885.00dp + 888.00dp + 891.00dp + 894.00dp + 897.00dp + 900.00dp + 903.00dp + 906.00dp + 909.00dp + 912.00dp + 915.00dp + 918.00dp + 921.00dp + 924.00dp + 927.00dp + 930.00dp + 933.00dp + 936.00dp + 939.00dp + 942.00dp + 945.00dp + 948.00dp + 951.00dp + 954.00dp + 957.00dp + 960.00dp + 963.00dp + 966.00dp + 969.00dp + 972.00dp + 975.00dp + 978.00dp + 981.00dp + 984.00dp + 987.00dp + 990.00dp + 993.00dp + 996.00dp + 999.00dp + 1002.00dp + 1005.00dp + 1008.00dp + 1011.00dp + 1014.00dp + 1017.00dp + 1020.00dp + 1023.00dp + 1026.00dp + 1029.00dp + 1032.00dp + 1035.00dp + 1038.00dp + 1041.00dp + 1044.00dp + 1047.00dp + 1050.00dp + 1053.00dp + 1056.00dp + 1059.00dp + 1062.00dp + 1065.00dp + 1068.00dp + 1071.00dp + 1074.00dp + 1077.00dp + 1080.00dp + 1083.00dp + 1086.00dp + 1089.00dp + 1092.00dp + 1095.00dp + 1098.00dp + 1101.00dp + 1104.00dp + 1107.00dp + 1110.00dp + 1113.00dp + 1116.00dp + 1119.00dp + 1122.00dp + 1125.00dp + 1128.00dp + 1131.00dp + 1134.00dp + 1137.00dp + 1140.00dp + 1143.00dp + 1146.00dp + 1149.00dp + 1152.00dp + 1155.00dp + 1158.00dp + 1161.00dp + 1164.00dp + 1167.00dp + 1170.00dp + 1173.00dp + 1176.00dp + 1179.00dp + 1182.00dp + 1185.00dp + 1188.00dp + 1191.00dp + 1194.00dp + 1197.00dp + 1200.00dp + + -3.00dp + -6.00dp + -9.00dp + -12.00dp + -15.00dp + -18.00dp + -21.00dp + -24.00dp + -27.00dp + -30.00dp + -33.00dp + -36.00dp + -39.00dp + -42.00dp + -45.00dp + -48.00dp + -51.00dp + -54.00dp + -57.00dp + -60.00dp + -63.00dp + -66.00dp + -69.00dp + -72.00dp + -75.00dp + -78.00dp + -81.00dp + -84.00dp + -87.00dp + -90.00dp + -93.00dp + -96.00dp + -99.00dp + -102.00dp + -105.00dp + -108.00dp + -111.00dp + -114.00dp + -117.00dp + -120.00dp + -123.00dp + -126.00dp + -129.00dp + -132.00dp + -135.00dp + -138.00dp + -141.00dp + -144.00dp + -147.00dp + -150.00dp + -153.00dp + -156.00dp + -159.00dp + -162.00dp + -165.00dp + -168.00dp + -171.00dp + -174.00dp + -177.00dp + -180.00dp + + 3.00sp + 6.00sp + 9.00sp + 12.00sp + 15.00sp + 18.00sp + 21.00sp + 24.00sp + 27.00sp + 30.00sp + 33.00sp + 36.00sp + 39.00sp + 42.00sp + 45.00sp + 48.00sp + 51.00sp + 54.00sp + 57.00sp + 60.00sp + 63.00sp + 66.00sp + 69.00sp + 72.00sp + 75.00sp + 78.00sp + 81.00sp + 84.00sp + 87.00sp + 90.00sp + 93.00sp + 96.00sp + 99.00sp + 102.00sp + 105.00sp + 108.00sp + 111.00sp + 114.00sp + 117.00sp + 120.00sp + 123.00sp + 126.00sp + 129.00sp + 132.00sp + 135.00sp + 138.00sp + 141.00sp + 144.00sp + 147.00sp + 150.00sp + 153.00sp + 156.00sp + 159.00sp + 162.00sp + 165.00sp + 168.00sp + 171.00sp + 174.00sp + 177.00sp + 180.00sp + diff --git a/app/src/main/res/values-sw1280dp/auto_dimens.xml b/app/src/main/res/values-sw1280dp/auto_dimens.xml new file mode 100644 index 0000000..a2b81d7 --- /dev/null +++ b/app/src/main/res/values-sw1280dp/auto_dimens.xml @@ -0,0 +1,526 @@ + + + 0.00dp + 3.56dp + 7.11dp + 10.67dp + 14.22dp + 17.78dp + 21.33dp + 24.89dp + 28.44dp + 32.00dp + 35.56dp + 39.11dp + 42.67dp + 46.22dp + 49.78dp + 53.33dp + 56.89dp + 60.44dp + 64.00dp + 67.56dp + 71.11dp + 74.67dp + 78.22dp + 81.78dp + 85.33dp + 88.89dp + 92.44dp + 96.00dp + 99.56dp + 103.11dp + 106.67dp + 110.22dp + 113.78dp + 117.33dp + 120.89dp + 124.44dp + 128.00dp + 131.56dp + 135.11dp + 138.67dp + 142.22dp + 145.78dp + 149.33dp + 152.89dp + 156.44dp + 160.00dp + 163.56dp + 167.11dp + 170.67dp + 174.22dp + 177.78dp + 181.33dp + 184.89dp + 188.44dp + 192.00dp + 195.56dp + 199.11dp + 202.67dp + 206.22dp + 209.78dp + 213.33dp + 216.89dp + 220.44dp + 224.00dp + 227.56dp + 231.11dp + 234.67dp + 238.22dp + 241.78dp + 245.33dp + 248.89dp + 252.44dp + 256.00dp + 259.56dp + 263.11dp + 266.67dp + 270.22dp + 273.78dp + 277.33dp + 280.89dp + 284.44dp + 288.00dp + 291.56dp + 295.11dp + 298.67dp + 302.22dp + 305.78dp + 309.33dp + 312.89dp + 316.44dp + 320.00dp + 323.56dp + 327.11dp + 330.67dp + 334.22dp + 337.78dp + 341.33dp + 344.89dp + 348.44dp + 352.00dp + 355.56dp + 359.11dp + 362.67dp + 366.22dp + 369.78dp + 373.33dp + 376.89dp + 380.44dp + 384.00dp + 387.56dp + 391.11dp + 394.67dp + 398.22dp + 401.78dp + 405.33dp + 408.89dp + 412.44dp + 416.00dp + 419.56dp + 423.11dp + 426.67dp + 430.22dp + 433.78dp + 437.33dp + 440.89dp + 444.44dp + 448.00dp + 451.56dp + 455.11dp + 458.67dp + 462.22dp + 465.78dp + 469.33dp + 472.89dp + 476.44dp + 480.00dp + 483.56dp + 487.11dp + 490.67dp + 494.22dp + 497.78dp + 501.33dp + 504.89dp + 508.44dp + 512.00dp + 515.56dp + 519.11dp + 522.67dp + 526.22dp + 529.78dp + 533.33dp + 536.89dp + 540.44dp + 544.00dp + 547.56dp + 551.11dp + 554.67dp + 558.22dp + 561.78dp + 565.33dp + 568.89dp + 572.44dp + 576.00dp + 579.56dp + 583.11dp + 586.67dp + 590.22dp + 593.78dp + 597.33dp + 600.89dp + 604.44dp + 608.00dp + 611.56dp + 615.11dp + 618.67dp + 622.22dp + 625.78dp + 629.33dp + 632.89dp + 636.44dp + 640.00dp + 643.56dp + 647.11dp + 650.67dp + 654.22dp + 657.78dp + 661.33dp + 664.89dp + 668.44dp + 672.00dp + 675.56dp + 679.11dp + 682.67dp + 686.22dp + 689.78dp + 693.33dp + 696.89dp + 700.44dp + 704.00dp + 707.56dp + 711.11dp + 714.67dp + 718.22dp + 721.78dp + 725.33dp + 728.89dp + 732.44dp + 736.00dp + 739.56dp + 743.11dp + 746.67dp + 750.22dp + 753.78dp + 757.33dp + 760.89dp + 764.44dp + 768.00dp + 771.56dp + 775.11dp + 778.67dp + 782.22dp + 785.78dp + 789.33dp + 792.89dp + 796.44dp + 800.00dp + 803.56dp + 807.11dp + 810.67dp + 814.22dp + 817.78dp + 821.33dp + 824.89dp + 828.44dp + 832.00dp + 835.56dp + 839.11dp + 842.67dp + 846.22dp + 849.78dp + 853.33dp + 856.89dp + 860.44dp + 864.00dp + 867.56dp + 871.11dp + 874.67dp + 878.22dp + 881.78dp + 885.33dp + 888.89dp + 892.44dp + 896.00dp + 899.56dp + 903.11dp + 906.67dp + 910.22dp + 913.78dp + 917.33dp + 920.89dp + 924.44dp + 928.00dp + 931.56dp + 935.11dp + 938.67dp + 942.22dp + 945.78dp + 949.33dp + 952.89dp + 956.44dp + 960.00dp + 963.56dp + 967.11dp + 970.67dp + 974.22dp + 977.78dp + 981.33dp + 984.89dp + 988.44dp + 992.00dp + 995.56dp + 999.11dp + 1002.67dp + 1006.22dp + 1009.78dp + 1013.33dp + 1016.89dp + 1020.44dp + 1024.00dp + 1027.56dp + 1031.11dp + 1034.67dp + 1038.22dp + 1041.78dp + 1045.33dp + 1048.89dp + 1052.44dp + 1056.00dp + 1059.56dp + 1063.11dp + 1066.67dp + 1070.22dp + 1073.78dp + 1077.33dp + 1080.89dp + 1084.44dp + 1088.00dp + 1091.56dp + 1095.11dp + 1098.67dp + 1102.22dp + 1105.78dp + 1109.33dp + 1112.89dp + 1116.44dp + 1120.00dp + 1123.56dp + 1127.11dp + 1130.67dp + 1134.22dp + 1137.78dp + 1141.33dp + 1144.89dp + 1148.44dp + 1152.00dp + 1155.56dp + 1159.11dp + 1162.67dp + 1166.22dp + 1169.78dp + 1173.33dp + 1176.89dp + 1180.44dp + 1184.00dp + 1187.56dp + 1191.11dp + 1194.67dp + 1198.22dp + 1201.78dp + 1205.33dp + 1208.89dp + 1212.44dp + 1216.00dp + 1219.56dp + 1223.11dp + 1226.67dp + 1230.22dp + 1233.78dp + 1237.33dp + 1240.89dp + 1244.44dp + 1248.00dp + 1251.56dp + 1255.11dp + 1258.67dp + 1262.22dp + 1265.78dp + 1269.33dp + 1272.89dp + 1276.44dp + 1280.00dp + 1283.56dp + 1287.11dp + 1290.67dp + 1294.22dp + 1297.78dp + 1301.33dp + 1304.89dp + 1308.44dp + 1312.00dp + 1315.56dp + 1319.11dp + 1322.67dp + 1326.22dp + 1329.78dp + 1333.33dp + 1336.89dp + 1340.44dp + 1344.00dp + 1347.56dp + 1351.11dp + 1354.67dp + 1358.22dp + 1361.78dp + 1365.33dp + 1368.89dp + 1372.44dp + 1376.00dp + 1379.56dp + 1383.11dp + 1386.67dp + 1390.22dp + 1393.78dp + 1397.33dp + 1400.89dp + 1404.44dp + 1408.00dp + 1411.56dp + 1415.11dp + 1418.67dp + 1422.22dp + + -3.56dp + -7.11dp + -10.67dp + -14.22dp + -17.78dp + -21.33dp + -24.89dp + -28.44dp + -32.00dp + -35.56dp + -39.11dp + -42.67dp + -46.22dp + -49.78dp + -53.33dp + -56.89dp + -60.44dp + -64.00dp + -67.56dp + -71.11dp + -74.67dp + -78.22dp + -81.78dp + -85.33dp + -88.89dp + -92.44dp + -96.00dp + -99.56dp + -103.11dp + -106.67dp + -110.22dp + -113.78dp + -117.33dp + -120.89dp + -124.44dp + -128.00dp + -131.56dp + -135.11dp + -138.67dp + -142.22dp + -145.78dp + -149.33dp + -152.89dp + -156.44dp + -160.00dp + -163.56dp + -167.11dp + -170.67dp + -174.22dp + -177.78dp + -181.33dp + -184.89dp + -188.44dp + -192.00dp + -195.56dp + -199.11dp + -202.67dp + -206.22dp + -209.78dp + -213.33dp + + 3.56sp + 7.11sp + 10.67sp + 14.22sp + 17.78sp + 21.33sp + 24.89sp + 28.44sp + 32.00sp + 35.56sp + 39.11sp + 42.67sp + 46.22sp + 49.78sp + 53.33sp + 56.89sp + 60.44sp + 64.00sp + 67.56sp + 71.11sp + 74.67sp + 78.22sp + 81.78sp + 85.33sp + 88.89sp + 92.44sp + 96.00sp + 99.56sp + 103.11sp + 106.67sp + 110.22sp + 113.78sp + 117.33sp + 120.89sp + 124.44sp + 128.00sp + 131.56sp + 135.11sp + 138.67sp + 142.22sp + 145.78sp + 149.33sp + 152.89sp + 156.44sp + 160.00sp + 163.56sp + 167.11sp + 170.67sp + 174.22sp + 177.78sp + 181.33sp + 184.89sp + 188.44sp + 192.00sp + 195.56sp + 199.11sp + 202.67sp + 206.22sp + 209.78sp + 213.33sp + diff --git a/app/src/main/res/values-sw1440dp/auto_dimens.xml b/app/src/main/res/values-sw1440dp/auto_dimens.xml new file mode 100644 index 0000000..f63ca2c --- /dev/null +++ b/app/src/main/res/values-sw1440dp/auto_dimens.xml @@ -0,0 +1,526 @@ + + + 0.00dp + 4.00dp + 8.00dp + 12.00dp + 16.00dp + 20.00dp + 24.00dp + 28.00dp + 32.00dp + 36.00dp + 40.00dp + 44.00dp + 48.00dp + 52.00dp + 56.00dp + 60.00dp + 64.00dp + 68.00dp + 72.00dp + 76.00dp + 80.00dp + 84.00dp + 88.00dp + 92.00dp + 96.00dp + 100.00dp + 104.00dp + 108.00dp + 112.00dp + 116.00dp + 120.00dp + 124.00dp + 128.00dp + 132.00dp + 136.00dp + 140.00dp + 144.00dp + 148.00dp + 152.00dp + 156.00dp + 160.00dp + 164.00dp + 168.00dp + 172.00dp + 176.00dp + 180.00dp + 184.00dp + 188.00dp + 192.00dp + 196.00dp + 200.00dp + 204.00dp + 208.00dp + 212.00dp + 216.00dp + 220.00dp + 224.00dp + 228.00dp + 232.00dp + 236.00dp + 240.00dp + 244.00dp + 248.00dp + 252.00dp + 256.00dp + 260.00dp + 264.00dp + 268.00dp + 272.00dp + 276.00dp + 280.00dp + 284.00dp + 288.00dp + 292.00dp + 296.00dp + 300.00dp + 304.00dp + 308.00dp + 312.00dp + 316.00dp + 320.00dp + 324.00dp + 328.00dp + 332.00dp + 336.00dp + 340.00dp + 344.00dp + 348.00dp + 352.00dp + 356.00dp + 360.00dp + 364.00dp + 368.00dp + 372.00dp + 376.00dp + 380.00dp + 384.00dp + 388.00dp + 392.00dp + 396.00dp + 400.00dp + 404.00dp + 408.00dp + 412.00dp + 416.00dp + 420.00dp + 424.00dp + 428.00dp + 432.00dp + 436.00dp + 440.00dp + 444.00dp + 448.00dp + 452.00dp + 456.00dp + 460.00dp + 464.00dp + 468.00dp + 472.00dp + 476.00dp + 480.00dp + 484.00dp + 488.00dp + 492.00dp + 496.00dp + 500.00dp + 504.00dp + 508.00dp + 512.00dp + 516.00dp + 520.00dp + 524.00dp + 528.00dp + 532.00dp + 536.00dp + 540.00dp + 544.00dp + 548.00dp + 552.00dp + 556.00dp + 560.00dp + 564.00dp + 568.00dp + 572.00dp + 576.00dp + 580.00dp + 584.00dp + 588.00dp + 592.00dp + 596.00dp + 600.00dp + 604.00dp + 608.00dp + 612.00dp + 616.00dp + 620.00dp + 624.00dp + 628.00dp + 632.00dp + 636.00dp + 640.00dp + 644.00dp + 648.00dp + 652.00dp + 656.00dp + 660.00dp + 664.00dp + 668.00dp + 672.00dp + 676.00dp + 680.00dp + 684.00dp + 688.00dp + 692.00dp + 696.00dp + 700.00dp + 704.00dp + 708.00dp + 712.00dp + 716.00dp + 720.00dp + 724.00dp + 728.00dp + 732.00dp + 736.00dp + 740.00dp + 744.00dp + 748.00dp + 752.00dp + 756.00dp + 760.00dp + 764.00dp + 768.00dp + 772.00dp + 776.00dp + 780.00dp + 784.00dp + 788.00dp + 792.00dp + 796.00dp + 800.00dp + 804.00dp + 808.00dp + 812.00dp + 816.00dp + 820.00dp + 824.00dp + 828.00dp + 832.00dp + 836.00dp + 840.00dp + 844.00dp + 848.00dp + 852.00dp + 856.00dp + 860.00dp + 864.00dp + 868.00dp + 872.00dp + 876.00dp + 880.00dp + 884.00dp + 888.00dp + 892.00dp + 896.00dp + 900.00dp + 904.00dp + 908.00dp + 912.00dp + 916.00dp + 920.00dp + 924.00dp + 928.00dp + 932.00dp + 936.00dp + 940.00dp + 944.00dp + 948.00dp + 952.00dp + 956.00dp + 960.00dp + 964.00dp + 968.00dp + 972.00dp + 976.00dp + 980.00dp + 984.00dp + 988.00dp + 992.00dp + 996.00dp + 1000.00dp + 1004.00dp + 1008.00dp + 1012.00dp + 1016.00dp + 1020.00dp + 1024.00dp + 1028.00dp + 1032.00dp + 1036.00dp + 1040.00dp + 1044.00dp + 1048.00dp + 1052.00dp + 1056.00dp + 1060.00dp + 1064.00dp + 1068.00dp + 1072.00dp + 1076.00dp + 1080.00dp + 1084.00dp + 1088.00dp + 1092.00dp + 1096.00dp + 1100.00dp + 1104.00dp + 1108.00dp + 1112.00dp + 1116.00dp + 1120.00dp + 1124.00dp + 1128.00dp + 1132.00dp + 1136.00dp + 1140.00dp + 1144.00dp + 1148.00dp + 1152.00dp + 1156.00dp + 1160.00dp + 1164.00dp + 1168.00dp + 1172.00dp + 1176.00dp + 1180.00dp + 1184.00dp + 1188.00dp + 1192.00dp + 1196.00dp + 1200.00dp + 1204.00dp + 1208.00dp + 1212.00dp + 1216.00dp + 1220.00dp + 1224.00dp + 1228.00dp + 1232.00dp + 1236.00dp + 1240.00dp + 1244.00dp + 1248.00dp + 1252.00dp + 1256.00dp + 1260.00dp + 1264.00dp + 1268.00dp + 1272.00dp + 1276.00dp + 1280.00dp + 1284.00dp + 1288.00dp + 1292.00dp + 1296.00dp + 1300.00dp + 1304.00dp + 1308.00dp + 1312.00dp + 1316.00dp + 1320.00dp + 1324.00dp + 1328.00dp + 1332.00dp + 1336.00dp + 1340.00dp + 1344.00dp + 1348.00dp + 1352.00dp + 1356.00dp + 1360.00dp + 1364.00dp + 1368.00dp + 1372.00dp + 1376.00dp + 1380.00dp + 1384.00dp + 1388.00dp + 1392.00dp + 1396.00dp + 1400.00dp + 1404.00dp + 1408.00dp + 1412.00dp + 1416.00dp + 1420.00dp + 1424.00dp + 1428.00dp + 1432.00dp + 1436.00dp + 1440.00dp + 1444.00dp + 1448.00dp + 1452.00dp + 1456.00dp + 1460.00dp + 1464.00dp + 1468.00dp + 1472.00dp + 1476.00dp + 1480.00dp + 1484.00dp + 1488.00dp + 1492.00dp + 1496.00dp + 1500.00dp + 1504.00dp + 1508.00dp + 1512.00dp + 1516.00dp + 1520.00dp + 1524.00dp + 1528.00dp + 1532.00dp + 1536.00dp + 1540.00dp + 1544.00dp + 1548.00dp + 1552.00dp + 1556.00dp + 1560.00dp + 1564.00dp + 1568.00dp + 1572.00dp + 1576.00dp + 1580.00dp + 1584.00dp + 1588.00dp + 1592.00dp + 1596.00dp + 1600.00dp + + -4.00dp + -8.00dp + -12.00dp + -16.00dp + -20.00dp + -24.00dp + -28.00dp + -32.00dp + -36.00dp + -40.00dp + -44.00dp + -48.00dp + -52.00dp + -56.00dp + -60.00dp + -64.00dp + -68.00dp + -72.00dp + -76.00dp + -80.00dp + -84.00dp + -88.00dp + -92.00dp + -96.00dp + -100.00dp + -104.00dp + -108.00dp + -112.00dp + -116.00dp + -120.00dp + -124.00dp + -128.00dp + -132.00dp + -136.00dp + -140.00dp + -144.00dp + -148.00dp + -152.00dp + -156.00dp + -160.00dp + -164.00dp + -168.00dp + -172.00dp + -176.00dp + -180.00dp + -184.00dp + -188.00dp + -192.00dp + -196.00dp + -200.00dp + -204.00dp + -208.00dp + -212.00dp + -216.00dp + -220.00dp + -224.00dp + -228.00dp + -232.00dp + -236.00dp + -240.00dp + + 4.00sp + 8.00sp + 12.00sp + 16.00sp + 20.00sp + 24.00sp + 28.00sp + 32.00sp + 36.00sp + 40.00sp + 44.00sp + 48.00sp + 52.00sp + 56.00sp + 60.00sp + 64.00sp + 68.00sp + 72.00sp + 76.00sp + 80.00sp + 84.00sp + 88.00sp + 92.00sp + 96.00sp + 100.00sp + 104.00sp + 108.00sp + 112.00sp + 116.00sp + 120.00sp + 124.00sp + 128.00sp + 132.00sp + 136.00sp + 140.00sp + 144.00sp + 148.00sp + 152.00sp + 156.00sp + 160.00sp + 164.00sp + 168.00sp + 172.00sp + 176.00sp + 180.00sp + 184.00sp + 188.00sp + 192.00sp + 196.00sp + 200.00sp + 204.00sp + 208.00sp + 212.00sp + 216.00sp + 220.00sp + 224.00sp + 228.00sp + 232.00sp + 236.00sp + 240.00sp + diff --git a/app/src/main/res/values-sw2560dp/auto_dimens.xml b/app/src/main/res/values-sw2560dp/auto_dimens.xml new file mode 100644 index 0000000..adbdac0 --- /dev/null +++ b/app/src/main/res/values-sw2560dp/auto_dimens.xml @@ -0,0 +1,526 @@ + + + 0.00dp + 7.11dp + 14.22dp + 21.33dp + 28.44dp + 35.56dp + 42.67dp + 49.78dp + 56.89dp + 64.00dp + 71.11dp + 78.22dp + 85.33dp + 92.44dp + 99.56dp + 106.67dp + 113.78dp + 120.89dp + 128.00dp + 135.11dp + 142.22dp + 149.33dp + 156.44dp + 163.56dp + 170.67dp + 177.78dp + 184.89dp + 192.00dp + 199.11dp + 206.22dp + 213.33dp + 220.44dp + 227.56dp + 234.67dp + 241.78dp + 248.89dp + 256.00dp + 263.11dp + 270.22dp + 277.33dp + 284.44dp + 291.56dp + 298.67dp + 305.78dp + 312.89dp + 320.00dp + 327.11dp + 334.22dp + 341.33dp + 348.44dp + 355.56dp + 362.67dp + 369.78dp + 376.89dp + 384.00dp + 391.11dp + 398.22dp + 405.33dp + 412.44dp + 419.56dp + 426.67dp + 433.78dp + 440.89dp + 448.00dp + 455.11dp + 462.22dp + 469.33dp + 476.44dp + 483.56dp + 490.67dp + 497.78dp + 504.89dp + 512.00dp + 519.11dp + 526.22dp + 533.33dp + 540.44dp + 547.56dp + 554.67dp + 561.78dp + 568.89dp + 576.00dp + 583.11dp + 590.22dp + 597.33dp + 604.44dp + 611.56dp + 618.67dp + 625.78dp + 632.89dp + 640.00dp + 647.11dp + 654.22dp + 661.33dp + 668.44dp + 675.56dp + 682.67dp + 689.78dp + 696.89dp + 704.00dp + 711.11dp + 718.22dp + 725.33dp + 732.44dp + 739.56dp + 746.67dp + 753.78dp + 760.89dp + 768.00dp + 775.11dp + 782.22dp + 789.33dp + 796.44dp + 803.56dp + 810.67dp + 817.78dp + 824.89dp + 832.00dp + 839.11dp + 846.22dp + 853.33dp + 860.44dp + 867.56dp + 874.67dp + 881.78dp + 888.89dp + 896.00dp + 903.11dp + 910.22dp + 917.33dp + 924.44dp + 931.56dp + 938.67dp + 945.78dp + 952.89dp + 960.00dp + 967.11dp + 974.22dp + 981.33dp + 988.44dp + 995.56dp + 1002.67dp + 1009.78dp + 1016.89dp + 1024.00dp + 1031.11dp + 1038.22dp + 1045.33dp + 1052.44dp + 1059.56dp + 1066.67dp + 1073.78dp + 1080.89dp + 1088.00dp + 1095.11dp + 1102.22dp + 1109.33dp + 1116.44dp + 1123.56dp + 1130.67dp + 1137.78dp + 1144.89dp + 1152.00dp + 1159.11dp + 1166.22dp + 1173.33dp + 1180.44dp + 1187.56dp + 1194.67dp + 1201.78dp + 1208.89dp + 1216.00dp + 1223.11dp + 1230.22dp + 1237.33dp + 1244.44dp + 1251.56dp + 1258.67dp + 1265.78dp + 1272.89dp + 1280.00dp + 1287.11dp + 1294.22dp + 1301.33dp + 1308.44dp + 1315.56dp + 1322.67dp + 1329.78dp + 1336.89dp + 1344.00dp + 1351.11dp + 1358.22dp + 1365.33dp + 1372.44dp + 1379.56dp + 1386.67dp + 1393.78dp + 1400.89dp + 1408.00dp + 1415.11dp + 1422.22dp + 1429.33dp + 1436.44dp + 1443.56dp + 1450.67dp + 1457.78dp + 1464.89dp + 1472.00dp + 1479.11dp + 1486.22dp + 1493.33dp + 1500.44dp + 1507.56dp + 1514.67dp + 1521.78dp + 1528.89dp + 1536.00dp + 1543.11dp + 1550.22dp + 1557.33dp + 1564.44dp + 1571.56dp + 1578.67dp + 1585.78dp + 1592.89dp + 1600.00dp + 1607.11dp + 1614.22dp + 1621.33dp + 1628.44dp + 1635.56dp + 1642.67dp + 1649.78dp + 1656.89dp + 1664.00dp + 1671.11dp + 1678.22dp + 1685.33dp + 1692.44dp + 1699.56dp + 1706.67dp + 1713.78dp + 1720.89dp + 1728.00dp + 1735.11dp + 1742.22dp + 1749.33dp + 1756.44dp + 1763.56dp + 1770.67dp + 1777.78dp + 1784.89dp + 1792.00dp + 1799.11dp + 1806.22dp + 1813.33dp + 1820.44dp + 1827.56dp + 1834.67dp + 1841.78dp + 1848.89dp + 1856.00dp + 1863.11dp + 1870.22dp + 1877.33dp + 1884.44dp + 1891.56dp + 1898.67dp + 1905.78dp + 1912.89dp + 1920.00dp + 1927.11dp + 1934.22dp + 1941.33dp + 1948.44dp + 1955.56dp + 1962.67dp + 1969.78dp + 1976.89dp + 1984.00dp + 1991.11dp + 1998.22dp + 2005.33dp + 2012.44dp + 2019.56dp + 2026.67dp + 2033.78dp + 2040.89dp + 2048.00dp + 2055.11dp + 2062.22dp + 2069.33dp + 2076.44dp + 2083.56dp + 2090.67dp + 2097.78dp + 2104.89dp + 2112.00dp + 2119.11dp + 2126.22dp + 2133.33dp + 2140.44dp + 2147.56dp + 2154.67dp + 2161.78dp + 2168.89dp + 2176.00dp + 2183.11dp + 2190.22dp + 2197.33dp + 2204.44dp + 2211.56dp + 2218.67dp + 2225.78dp + 2232.89dp + 2240.00dp + 2247.11dp + 2254.22dp + 2261.33dp + 2268.44dp + 2275.56dp + 2282.67dp + 2289.78dp + 2296.89dp + 2304.00dp + 2311.11dp + 2318.22dp + 2325.33dp + 2332.44dp + 2339.56dp + 2346.67dp + 2353.78dp + 2360.89dp + 2368.00dp + 2375.11dp + 2382.22dp + 2389.33dp + 2396.44dp + 2403.56dp + 2410.67dp + 2417.78dp + 2424.89dp + 2432.00dp + 2439.11dp + 2446.22dp + 2453.33dp + 2460.44dp + 2467.56dp + 2474.67dp + 2481.78dp + 2488.89dp + 2496.00dp + 2503.11dp + 2510.22dp + 2517.33dp + 2524.44dp + 2531.56dp + 2538.67dp + 2545.78dp + 2552.89dp + 2560.00dp + 2567.11dp + 2574.22dp + 2581.33dp + 2588.44dp + 2595.56dp + 2602.67dp + 2609.78dp + 2616.89dp + 2624.00dp + 2631.11dp + 2638.22dp + 2645.33dp + 2652.44dp + 2659.56dp + 2666.67dp + 2673.78dp + 2680.89dp + 2688.00dp + 2695.11dp + 2702.22dp + 2709.33dp + 2716.44dp + 2723.56dp + 2730.67dp + 2737.78dp + 2744.89dp + 2752.00dp + 2759.11dp + 2766.22dp + 2773.33dp + 2780.44dp + 2787.56dp + 2794.67dp + 2801.78dp + 2808.89dp + 2816.00dp + 2823.11dp + 2830.22dp + 2837.33dp + 2844.44dp + + -7.11dp + -14.22dp + -21.33dp + -28.44dp + -35.56dp + -42.67dp + -49.78dp + -56.89dp + -64.00dp + -71.11dp + -78.22dp + -85.33dp + -92.44dp + -99.56dp + -106.67dp + -113.78dp + -120.89dp + -128.00dp + -135.11dp + -142.22dp + -149.33dp + -156.44dp + -163.56dp + -170.67dp + -177.78dp + -184.89dp + -192.00dp + -199.11dp + -206.22dp + -213.33dp + -220.44dp + -227.56dp + -234.67dp + -241.78dp + -248.89dp + -256.00dp + -263.11dp + -270.22dp + -277.33dp + -284.44dp + -291.56dp + -298.67dp + -305.78dp + -312.89dp + -320.00dp + -327.11dp + -334.22dp + -341.33dp + -348.44dp + -355.56dp + -362.67dp + -369.78dp + -376.89dp + -384.00dp + -391.11dp + -398.22dp + -405.33dp + -412.44dp + -419.56dp + -426.67dp + + 7.11sp + 14.22sp + 21.33sp + 28.44sp + 35.56sp + 42.67sp + 49.78sp + 56.89sp + 64.00sp + 71.11sp + 78.22sp + 85.33sp + 92.44sp + 99.56sp + 106.67sp + 113.78sp + 120.89sp + 128.00sp + 135.11sp + 142.22sp + 149.33sp + 156.44sp + 163.56sp + 170.67sp + 177.78sp + 184.89sp + 192.00sp + 199.11sp + 206.22sp + 213.33sp + 220.44sp + 227.56sp + 234.67sp + 241.78sp + 248.89sp + 256.00sp + 263.11sp + 270.22sp + 277.33sp + 284.44sp + 291.56sp + 298.67sp + 305.78sp + 312.89sp + 320.00sp + 327.11sp + 334.22sp + 341.33sp + 348.44sp + 355.56sp + 362.67sp + 369.78sp + 376.89sp + 384.00sp + 391.11sp + 398.22sp + 405.33sp + 412.44sp + 419.56sp + 426.67sp + diff --git a/app/src/main/res/values-sw320dp/auto_dimens.xml b/app/src/main/res/values-sw320dp/auto_dimens.xml new file mode 100644 index 0000000..311c825 --- /dev/null +++ b/app/src/main/res/values-sw320dp/auto_dimens.xml @@ -0,0 +1,526 @@ + + + 0.00dp + 0.89dp + 1.78dp + 2.67dp + 3.56dp + 4.44dp + 5.33dp + 6.22dp + 7.11dp + 8.00dp + 8.89dp + 9.78dp + 10.67dp + 11.56dp + 12.44dp + 13.33dp + 14.22dp + 15.11dp + 16.00dp + 16.89dp + 17.78dp + 18.67dp + 19.56dp + 20.44dp + 21.33dp + 22.22dp + 23.11dp + 24.00dp + 24.89dp + 25.78dp + 26.67dp + 27.56dp + 28.44dp + 29.33dp + 30.22dp + 31.11dp + 32.00dp + 32.89dp + 33.78dp + 34.67dp + 35.56dp + 36.44dp + 37.33dp + 38.22dp + 39.11dp + 40.00dp + 40.89dp + 41.78dp + 42.67dp + 43.56dp + 44.44dp + 45.33dp + 46.22dp + 47.11dp + 48.00dp + 48.89dp + 49.78dp + 50.67dp + 51.56dp + 52.44dp + 53.33dp + 54.22dp + 55.11dp + 56.00dp + 56.89dp + 57.78dp + 58.67dp + 59.56dp + 60.44dp + 61.33dp + 62.22dp + 63.11dp + 64.00dp + 64.89dp + 65.78dp + 66.67dp + 67.56dp + 68.44dp + 69.33dp + 70.22dp + 71.11dp + 72.00dp + 72.89dp + 73.78dp + 74.67dp + 75.56dp + 76.44dp + 77.33dp + 78.22dp + 79.11dp + 80.00dp + 80.89dp + 81.78dp + 82.67dp + 83.56dp + 84.44dp + 85.33dp + 86.22dp + 87.11dp + 88.00dp + 88.89dp + 89.78dp + 90.67dp + 91.56dp + 92.44dp + 93.33dp + 94.22dp + 95.11dp + 96.00dp + 96.89dp + 97.78dp + 98.67dp + 99.56dp + 100.44dp + 101.33dp + 102.22dp + 103.11dp + 104.00dp + 104.89dp + 105.78dp + 106.67dp + 107.56dp + 108.44dp + 109.33dp + 110.22dp + 111.11dp + 112.00dp + 112.89dp + 113.78dp + 114.67dp + 115.56dp + 116.44dp + 117.33dp + 118.22dp + 119.11dp + 120.00dp + 120.89dp + 121.78dp + 122.67dp + 123.56dp + 124.44dp + 125.33dp + 126.22dp + 127.11dp + 128.00dp + 128.89dp + 129.78dp + 130.67dp + 131.56dp + 132.44dp + 133.33dp + 134.22dp + 135.11dp + 136.00dp + 136.89dp + 137.78dp + 138.67dp + 139.56dp + 140.44dp + 141.33dp + 142.22dp + 143.11dp + 144.00dp + 144.89dp + 145.78dp + 146.67dp + 147.56dp + 148.44dp + 149.33dp + 150.22dp + 151.11dp + 152.00dp + 152.89dp + 153.78dp + 154.67dp + 155.56dp + 156.44dp + 157.33dp + 158.22dp + 159.11dp + 160.00dp + 160.89dp + 161.78dp + 162.67dp + 163.56dp + 164.44dp + 165.33dp + 166.22dp + 167.11dp + 168.00dp + 168.89dp + 169.78dp + 170.67dp + 171.56dp + 172.44dp + 173.33dp + 174.22dp + 175.11dp + 176.00dp + 176.89dp + 177.78dp + 178.67dp + 179.56dp + 180.44dp + 181.33dp + 182.22dp + 183.11dp + 184.00dp + 184.89dp + 185.78dp + 186.67dp + 187.56dp + 188.44dp + 189.33dp + 190.22dp + 191.11dp + 192.00dp + 192.89dp + 193.78dp + 194.67dp + 195.56dp + 196.44dp + 197.33dp + 198.22dp + 199.11dp + 200.00dp + 200.89dp + 201.78dp + 202.67dp + 203.56dp + 204.44dp + 205.33dp + 206.22dp + 207.11dp + 208.00dp + 208.89dp + 209.78dp + 210.67dp + 211.56dp + 212.44dp + 213.33dp + 214.22dp + 215.11dp + 216.00dp + 216.89dp + 217.78dp + 218.67dp + 219.56dp + 220.44dp + 221.33dp + 222.22dp + 223.11dp + 224.00dp + 224.89dp + 225.78dp + 226.67dp + 227.56dp + 228.44dp + 229.33dp + 230.22dp + 231.11dp + 232.00dp + 232.89dp + 233.78dp + 234.67dp + 235.56dp + 236.44dp + 237.33dp + 238.22dp + 239.11dp + 240.00dp + 240.89dp + 241.78dp + 242.67dp + 243.56dp + 244.44dp + 245.33dp + 246.22dp + 247.11dp + 248.00dp + 248.89dp + 249.78dp + 250.67dp + 251.56dp + 252.44dp + 253.33dp + 254.22dp + 255.11dp + 256.00dp + 256.89dp + 257.78dp + 258.67dp + 259.56dp + 260.44dp + 261.33dp + 262.22dp + 263.11dp + 264.00dp + 264.89dp + 265.78dp + 266.67dp + 267.56dp + 268.44dp + 269.33dp + 270.22dp + 271.11dp + 272.00dp + 272.89dp + 273.78dp + 274.67dp + 275.56dp + 276.44dp + 277.33dp + 278.22dp + 279.11dp + 280.00dp + 280.89dp + 281.78dp + 282.67dp + 283.56dp + 284.44dp + 285.33dp + 286.22dp + 287.11dp + 288.00dp + 288.89dp + 289.78dp + 290.67dp + 291.56dp + 292.44dp + 293.33dp + 294.22dp + 295.11dp + 296.00dp + 296.89dp + 297.78dp + 298.67dp + 299.56dp + 300.44dp + 301.33dp + 302.22dp + 303.11dp + 304.00dp + 304.89dp + 305.78dp + 306.67dp + 307.56dp + 308.44dp + 309.33dp + 310.22dp + 311.11dp + 312.00dp + 312.89dp + 313.78dp + 314.67dp + 315.56dp + 316.44dp + 317.33dp + 318.22dp + 319.11dp + 320.00dp + 320.89dp + 321.78dp + 322.67dp + 323.56dp + 324.44dp + 325.33dp + 326.22dp + 327.11dp + 328.00dp + 328.89dp + 329.78dp + 330.67dp + 331.56dp + 332.44dp + 333.33dp + 334.22dp + 335.11dp + 336.00dp + 336.89dp + 337.78dp + 338.67dp + 339.56dp + 340.44dp + 341.33dp + 342.22dp + 343.11dp + 344.00dp + 344.89dp + 345.78dp + 346.67dp + 347.56dp + 348.44dp + 349.33dp + 350.22dp + 351.11dp + 352.00dp + 352.89dp + 353.78dp + 354.67dp + 355.56dp + + -0.89dp + -1.78dp + -2.67dp + -3.56dp + -4.44dp + -5.33dp + -6.22dp + -7.11dp + -8.00dp + -8.89dp + -9.78dp + -10.67dp + -11.56dp + -12.44dp + -13.33dp + -14.22dp + -15.11dp + -16.00dp + -16.89dp + -17.78dp + -18.67dp + -19.56dp + -20.44dp + -21.33dp + -22.22dp + -23.11dp + -24.00dp + -24.89dp + -25.78dp + -26.67dp + -27.56dp + -28.44dp + -29.33dp + -30.22dp + -31.11dp + -32.00dp + -32.89dp + -33.78dp + -34.67dp + -35.56dp + -36.44dp + -37.33dp + -38.22dp + -39.11dp + -40.00dp + -40.89dp + -41.78dp + -42.67dp + -43.56dp + -44.44dp + -45.33dp + -46.22dp + -47.11dp + -48.00dp + -48.89dp + -49.78dp + -50.67dp + -51.56dp + -52.44dp + -53.33dp + + 0.89sp + 1.78sp + 2.67sp + 3.56sp + 4.44sp + 5.33sp + 6.22sp + 7.11sp + 8.00sp + 8.89sp + 9.78sp + 10.67sp + 11.56sp + 12.44sp + 13.33sp + 14.22sp + 15.11sp + 16.00sp + 16.89sp + 17.78sp + 18.67sp + 19.56sp + 20.44sp + 21.33sp + 22.22sp + 23.11sp + 24.00sp + 24.89sp + 25.78sp + 26.67sp + 27.56sp + 28.44sp + 29.33sp + 30.22sp + 31.11sp + 32.00sp + 32.89sp + 33.78sp + 34.67sp + 35.56sp + 36.44sp + 37.33sp + 38.22sp + 39.11sp + 40.00sp + 40.89sp + 41.78sp + 42.67sp + 43.56sp + 44.44sp + 45.33sp + 46.22sp + 47.11sp + 48.00sp + 48.89sp + 49.78sp + 50.67sp + 51.56sp + 52.44sp + 53.33sp + diff --git a/app/src/main/res/values-sw360dp/auto_dimens.xml b/app/src/main/res/values-sw360dp/auto_dimens.xml new file mode 100644 index 0000000..b929783 --- /dev/null +++ b/app/src/main/res/values-sw360dp/auto_dimens.xml @@ -0,0 +1,526 @@ + + + 0.00dp + 1.00dp + 2.00dp + 3.00dp + 4.00dp + 5.00dp + 6.00dp + 7.00dp + 8.00dp + 9.00dp + 10.00dp + 11.00dp + 12.00dp + 13.00dp + 14.00dp + 15.00dp + 16.00dp + 17.00dp + 18.00dp + 19.00dp + 20.00dp + 21.00dp + 22.00dp + 23.00dp + 24.00dp + 25.00dp + 26.00dp + 27.00dp + 28.00dp + 29.00dp + 30.00dp + 31.00dp + 32.00dp + 33.00dp + 34.00dp + 35.00dp + 36.00dp + 37.00dp + 38.00dp + 39.00dp + 40.00dp + 41.00dp + 42.00dp + 43.00dp + 44.00dp + 45.00dp + 46.00dp + 47.00dp + 48.00dp + 49.00dp + 50.00dp + 51.00dp + 52.00dp + 53.00dp + 54.00dp + 55.00dp + 56.00dp + 57.00dp + 58.00dp + 59.00dp + 60.00dp + 61.00dp + 62.00dp + 63.00dp + 64.00dp + 65.00dp + 66.00dp + 67.00dp + 68.00dp + 69.00dp + 70.00dp + 71.00dp + 72.00dp + 73.00dp + 74.00dp + 75.00dp + 76.00dp + 77.00dp + 78.00dp + 79.00dp + 80.00dp + 81.00dp + 82.00dp + 83.00dp + 84.00dp + 85.00dp + 86.00dp + 87.00dp + 88.00dp + 89.00dp + 90.00dp + 91.00dp + 92.00dp + 93.00dp + 94.00dp + 95.00dp + 96.00dp + 97.00dp + 98.00dp + 99.00dp + 100.00dp + 101.00dp + 102.00dp + 103.00dp + 104.00dp + 105.00dp + 106.00dp + 107.00dp + 108.00dp + 109.00dp + 110.00dp + 111.00dp + 112.00dp + 113.00dp + 114.00dp + 115.00dp + 116.00dp + 117.00dp + 118.00dp + 119.00dp + 120.00dp + 121.00dp + 122.00dp + 123.00dp + 124.00dp + 125.00dp + 126.00dp + 127.00dp + 128.00dp + 129.00dp + 130.00dp + 131.00dp + 132.00dp + 133.00dp + 134.00dp + 135.00dp + 136.00dp + 137.00dp + 138.00dp + 139.00dp + 140.00dp + 141.00dp + 142.00dp + 143.00dp + 144.00dp + 145.00dp + 146.00dp + 147.00dp + 148.00dp + 149.00dp + 150.00dp + 151.00dp + 152.00dp + 153.00dp + 154.00dp + 155.00dp + 156.00dp + 157.00dp + 158.00dp + 159.00dp + 160.00dp + 161.00dp + 162.00dp + 163.00dp + 164.00dp + 165.00dp + 166.00dp + 167.00dp + 168.00dp + 169.00dp + 170.00dp + 171.00dp + 172.00dp + 173.00dp + 174.00dp + 175.00dp + 176.00dp + 177.00dp + 178.00dp + 179.00dp + 180.00dp + 181.00dp + 182.00dp + 183.00dp + 184.00dp + 185.00dp + 186.00dp + 187.00dp + 188.00dp + 189.00dp + 190.00dp + 191.00dp + 192.00dp + 193.00dp + 194.00dp + 195.00dp + 196.00dp + 197.00dp + 198.00dp + 199.00dp + 200.00dp + 201.00dp + 202.00dp + 203.00dp + 204.00dp + 205.00dp + 206.00dp + 207.00dp + 208.00dp + 209.00dp + 210.00dp + 211.00dp + 212.00dp + 213.00dp + 214.00dp + 215.00dp + 216.00dp + 217.00dp + 218.00dp + 219.00dp + 220.00dp + 221.00dp + 222.00dp + 223.00dp + 224.00dp + 225.00dp + 226.00dp + 227.00dp + 228.00dp + 229.00dp + 230.00dp + 231.00dp + 232.00dp + 233.00dp + 234.00dp + 235.00dp + 236.00dp + 237.00dp + 238.00dp + 239.00dp + 240.00dp + 241.00dp + 242.00dp + 243.00dp + 244.00dp + 245.00dp + 246.00dp + 247.00dp + 248.00dp + 249.00dp + 250.00dp + 251.00dp + 252.00dp + 253.00dp + 254.00dp + 255.00dp + 256.00dp + 257.00dp + 258.00dp + 259.00dp + 260.00dp + 261.00dp + 262.00dp + 263.00dp + 264.00dp + 265.00dp + 266.00dp + 267.00dp + 268.00dp + 269.00dp + 270.00dp + 271.00dp + 272.00dp + 273.00dp + 274.00dp + 275.00dp + 276.00dp + 277.00dp + 278.00dp + 279.00dp + 280.00dp + 281.00dp + 282.00dp + 283.00dp + 284.00dp + 285.00dp + 286.00dp + 287.00dp + 288.00dp + 289.00dp + 290.00dp + 291.00dp + 292.00dp + 293.00dp + 294.00dp + 295.00dp + 296.00dp + 297.00dp + 298.00dp + 299.00dp + 300.00dp + 301.00dp + 302.00dp + 303.00dp + 304.00dp + 305.00dp + 306.00dp + 307.00dp + 308.00dp + 309.00dp + 310.00dp + 311.00dp + 312.00dp + 313.00dp + 314.00dp + 315.00dp + 316.00dp + 317.00dp + 318.00dp + 319.00dp + 320.00dp + 321.00dp + 322.00dp + 323.00dp + 324.00dp + 325.00dp + 326.00dp + 327.00dp + 328.00dp + 329.00dp + 330.00dp + 331.00dp + 332.00dp + 333.00dp + 334.00dp + 335.00dp + 336.00dp + 337.00dp + 338.00dp + 339.00dp + 340.00dp + 341.00dp + 342.00dp + 343.00dp + 344.00dp + 345.00dp + 346.00dp + 347.00dp + 348.00dp + 349.00dp + 350.00dp + 351.00dp + 352.00dp + 353.00dp + 354.00dp + 355.00dp + 356.00dp + 357.00dp + 358.00dp + 359.00dp + 360.00dp + 361.00dp + 362.00dp + 363.00dp + 364.00dp + 365.00dp + 366.00dp + 367.00dp + 368.00dp + 369.00dp + 370.00dp + 371.00dp + 372.00dp + 373.00dp + 374.00dp + 375.00dp + 376.00dp + 377.00dp + 378.00dp + 379.00dp + 380.00dp + 381.00dp + 382.00dp + 383.00dp + 384.00dp + 385.00dp + 386.00dp + 387.00dp + 388.00dp + 389.00dp + 390.00dp + 391.00dp + 392.00dp + 393.00dp + 394.00dp + 395.00dp + 396.00dp + 397.00dp + 398.00dp + 399.00dp + 400.00dp + + -1.00dp + -2.00dp + -3.00dp + -4.00dp + -5.00dp + -6.00dp + -7.00dp + -8.00dp + -9.00dp + -10.00dp + -11.00dp + -12.00dp + -13.00dp + -14.00dp + -15.00dp + -16.00dp + -17.00dp + -18.00dp + -19.00dp + -20.00dp + -21.00dp + -22.00dp + -23.00dp + -24.00dp + -25.00dp + -26.00dp + -27.00dp + -28.00dp + -29.00dp + -30.00dp + -31.00dp + -32.00dp + -33.00dp + -34.00dp + -35.00dp + -36.00dp + -37.00dp + -38.00dp + -39.00dp + -40.00dp + -41.00dp + -42.00dp + -43.00dp + -44.00dp + -45.00dp + -46.00dp + -47.00dp + -48.00dp + -49.00dp + -50.00dp + -51.00dp + -52.00dp + -53.00dp + -54.00dp + -55.00dp + -56.00dp + -57.00dp + -58.00dp + -59.00dp + -60.00dp + + 1.00sp + 2.00sp + 3.00sp + 4.00sp + 5.00sp + 6.00sp + 7.00sp + 8.00sp + 9.00sp + 10.00sp + 11.00sp + 12.00sp + 13.00sp + 14.00sp + 15.00sp + 16.00sp + 17.00sp + 18.00sp + 19.00sp + 20.00sp + 21.00sp + 22.00sp + 23.00sp + 24.00sp + 25.00sp + 26.00sp + 27.00sp + 28.00sp + 29.00sp + 30.00sp + 31.00sp + 32.00sp + 33.00sp + 34.00sp + 35.00sp + 36.00sp + 37.00sp + 38.00sp + 39.00sp + 40.00sp + 41.00sp + 42.00sp + 43.00sp + 44.00sp + 45.00sp + 46.00sp + 47.00sp + 48.00sp + 49.00sp + 50.00sp + 51.00sp + 52.00sp + 53.00sp + 54.00sp + 55.00sp + 56.00sp + 57.00sp + 58.00sp + 59.00sp + 60.00sp + diff --git a/app/src/main/res/values-sw3840dp/auto_dimens.xml b/app/src/main/res/values-sw3840dp/auto_dimens.xml new file mode 100644 index 0000000..6aa72e8 --- /dev/null +++ b/app/src/main/res/values-sw3840dp/auto_dimens.xml @@ -0,0 +1,526 @@ + + + 0.00dp + 10.67dp + 21.33dp + 32.00dp + 42.67dp + 53.33dp + 64.00dp + 74.67dp + 85.33dp + 96.00dp + 106.67dp + 117.33dp + 128.00dp + 138.67dp + 149.33dp + 160.00dp + 170.67dp + 181.33dp + 192.00dp + 202.67dp + 213.33dp + 224.00dp + 234.67dp + 245.33dp + 256.00dp + 266.67dp + 277.33dp + 288.00dp + 298.67dp + 309.33dp + 320.00dp + 330.67dp + 341.33dp + 352.00dp + 362.67dp + 373.33dp + 384.00dp + 394.67dp + 405.33dp + 416.00dp + 426.67dp + 437.33dp + 448.00dp + 458.67dp + 469.33dp + 480.00dp + 490.67dp + 501.33dp + 512.00dp + 522.67dp + 533.33dp + 544.00dp + 554.67dp + 565.33dp + 576.00dp + 586.67dp + 597.33dp + 608.00dp + 618.67dp + 629.33dp + 640.00dp + 650.67dp + 661.33dp + 672.00dp + 682.67dp + 693.33dp + 704.00dp + 714.67dp + 725.33dp + 736.00dp + 746.67dp + 757.33dp + 768.00dp + 778.67dp + 789.33dp + 800.00dp + 810.67dp + 821.33dp + 832.00dp + 842.67dp + 853.33dp + 864.00dp + 874.67dp + 885.33dp + 896.00dp + 906.67dp + 917.33dp + 928.00dp + 938.67dp + 949.33dp + 960.00dp + 970.67dp + 981.33dp + 992.00dp + 1002.67dp + 1013.33dp + 1024.00dp + 1034.67dp + 1045.33dp + 1056.00dp + 1066.67dp + 1077.33dp + 1088.00dp + 1098.67dp + 1109.33dp + 1120.00dp + 1130.67dp + 1141.33dp + 1152.00dp + 1162.67dp + 1173.33dp + 1184.00dp + 1194.67dp + 1205.33dp + 1216.00dp + 1226.67dp + 1237.33dp + 1248.00dp + 1258.67dp + 1269.33dp + 1280.00dp + 1290.67dp + 1301.33dp + 1312.00dp + 1322.67dp + 1333.33dp + 1344.00dp + 1354.67dp + 1365.33dp + 1376.00dp + 1386.67dp + 1397.33dp + 1408.00dp + 1418.67dp + 1429.33dp + 1440.00dp + 1450.67dp + 1461.33dp + 1472.00dp + 1482.67dp + 1493.33dp + 1504.00dp + 1514.67dp + 1525.33dp + 1536.00dp + 1546.67dp + 1557.33dp + 1568.00dp + 1578.67dp + 1589.33dp + 1600.00dp + 1610.67dp + 1621.33dp + 1632.00dp + 1642.67dp + 1653.33dp + 1664.00dp + 1674.67dp + 1685.33dp + 1696.00dp + 1706.67dp + 1717.33dp + 1728.00dp + 1738.67dp + 1749.33dp + 1760.00dp + 1770.67dp + 1781.33dp + 1792.00dp + 1802.67dp + 1813.33dp + 1824.00dp + 1834.67dp + 1845.33dp + 1856.00dp + 1866.67dp + 1877.33dp + 1888.00dp + 1898.67dp + 1909.33dp + 1920.00dp + 1930.67dp + 1941.33dp + 1952.00dp + 1962.67dp + 1973.33dp + 1984.00dp + 1994.67dp + 2005.33dp + 2016.00dp + 2026.67dp + 2037.33dp + 2048.00dp + 2058.67dp + 2069.33dp + 2080.00dp + 2090.67dp + 2101.33dp + 2112.00dp + 2122.67dp + 2133.33dp + 2144.00dp + 2154.67dp + 2165.33dp + 2176.00dp + 2186.67dp + 2197.33dp + 2208.00dp + 2218.67dp + 2229.33dp + 2240.00dp + 2250.67dp + 2261.33dp + 2272.00dp + 2282.67dp + 2293.33dp + 2304.00dp + 2314.67dp + 2325.33dp + 2336.00dp + 2346.67dp + 2357.33dp + 2368.00dp + 2378.67dp + 2389.33dp + 2400.00dp + 2410.67dp + 2421.33dp + 2432.00dp + 2442.67dp + 2453.33dp + 2464.00dp + 2474.67dp + 2485.33dp + 2496.00dp + 2506.67dp + 2517.33dp + 2528.00dp + 2538.67dp + 2549.33dp + 2560.00dp + 2570.67dp + 2581.33dp + 2592.00dp + 2602.67dp + 2613.33dp + 2624.00dp + 2634.67dp + 2645.33dp + 2656.00dp + 2666.67dp + 2677.33dp + 2688.00dp + 2698.67dp + 2709.33dp + 2720.00dp + 2730.67dp + 2741.33dp + 2752.00dp + 2762.67dp + 2773.33dp + 2784.00dp + 2794.67dp + 2805.33dp + 2816.00dp + 2826.67dp + 2837.33dp + 2848.00dp + 2858.67dp + 2869.33dp + 2880.00dp + 2890.67dp + 2901.33dp + 2912.00dp + 2922.67dp + 2933.33dp + 2944.00dp + 2954.67dp + 2965.33dp + 2976.00dp + 2986.67dp + 2997.33dp + 3008.00dp + 3018.67dp + 3029.33dp + 3040.00dp + 3050.67dp + 3061.33dp + 3072.00dp + 3082.67dp + 3093.33dp + 3104.00dp + 3114.67dp + 3125.33dp + 3136.00dp + 3146.67dp + 3157.33dp + 3168.00dp + 3178.67dp + 3189.33dp + 3200.00dp + 3210.67dp + 3221.33dp + 3232.00dp + 3242.67dp + 3253.33dp + 3264.00dp + 3274.67dp + 3285.33dp + 3296.00dp + 3306.67dp + 3317.33dp + 3328.00dp + 3338.67dp + 3349.33dp + 3360.00dp + 3370.67dp + 3381.33dp + 3392.00dp + 3402.67dp + 3413.33dp + 3424.00dp + 3434.67dp + 3445.33dp + 3456.00dp + 3466.67dp + 3477.33dp + 3488.00dp + 3498.67dp + 3509.33dp + 3520.00dp + 3530.67dp + 3541.33dp + 3552.00dp + 3562.67dp + 3573.33dp + 3584.00dp + 3594.67dp + 3605.33dp + 3616.00dp + 3626.67dp + 3637.33dp + 3648.00dp + 3658.67dp + 3669.33dp + 3680.00dp + 3690.67dp + 3701.33dp + 3712.00dp + 3722.67dp + 3733.33dp + 3744.00dp + 3754.67dp + 3765.33dp + 3776.00dp + 3786.67dp + 3797.33dp + 3808.00dp + 3818.67dp + 3829.33dp + 3840.00dp + 3850.67dp + 3861.33dp + 3872.00dp + 3882.67dp + 3893.33dp + 3904.00dp + 3914.67dp + 3925.33dp + 3936.00dp + 3946.67dp + 3957.33dp + 3968.00dp + 3978.67dp + 3989.33dp + 4000.00dp + 4010.67dp + 4021.33dp + 4032.00dp + 4042.67dp + 4053.33dp + 4064.00dp + 4074.67dp + 4085.33dp + 4096.00dp + 4106.67dp + 4117.33dp + 4128.00dp + 4138.67dp + 4149.33dp + 4160.00dp + 4170.67dp + 4181.33dp + 4192.00dp + 4202.67dp + 4213.33dp + 4224.00dp + 4234.67dp + 4245.33dp + 4256.00dp + 4266.67dp + + -10.67dp + -21.33dp + -32.00dp + -42.67dp + -53.33dp + -64.00dp + -74.67dp + -85.33dp + -96.00dp + -106.67dp + -117.33dp + -128.00dp + -138.67dp + -149.33dp + -160.00dp + -170.67dp + -181.33dp + -192.00dp + -202.67dp + -213.33dp + -224.00dp + -234.67dp + -245.33dp + -256.00dp + -266.67dp + -277.33dp + -288.00dp + -298.67dp + -309.33dp + -320.00dp + -330.67dp + -341.33dp + -352.00dp + -362.67dp + -373.33dp + -384.00dp + -394.67dp + -405.33dp + -416.00dp + -426.67dp + -437.33dp + -448.00dp + -458.67dp + -469.33dp + -480.00dp + -490.67dp + -501.33dp + -512.00dp + -522.67dp + -533.33dp + -544.00dp + -554.67dp + -565.33dp + -576.00dp + -586.67dp + -597.33dp + -608.00dp + -618.67dp + -629.33dp + -640.00dp + + 10.67sp + 21.33sp + 32.00sp + 42.67sp + 53.33sp + 64.00sp + 74.67sp + 85.33sp + 96.00sp + 106.67sp + 117.33sp + 128.00sp + 138.67sp + 149.33sp + 160.00sp + 170.67sp + 181.33sp + 192.00sp + 202.67sp + 213.33sp + 224.00sp + 234.67sp + 245.33sp + 256.00sp + 266.67sp + 277.33sp + 288.00sp + 298.67sp + 309.33sp + 320.00sp + 330.67sp + 341.33sp + 352.00sp + 362.67sp + 373.33sp + 384.00sp + 394.67sp + 405.33sp + 416.00sp + 426.67sp + 437.33sp + 448.00sp + 458.67sp + 469.33sp + 480.00sp + 490.67sp + 501.33sp + 512.00sp + 522.67sp + 533.33sp + 544.00sp + 554.67sp + 565.33sp + 576.00sp + 586.67sp + 597.33sp + 608.00sp + 618.67sp + 629.33sp + 640.00sp + diff --git a/app/src/main/res/values-sw384dp/auto_dimens.xml b/app/src/main/res/values-sw384dp/auto_dimens.xml new file mode 100644 index 0000000..b77a3ec --- /dev/null +++ b/app/src/main/res/values-sw384dp/auto_dimens.xml @@ -0,0 +1,526 @@ + + + 0.00dp + 1.07dp + 2.13dp + 3.20dp + 4.27dp + 5.33dp + 6.40dp + 7.47dp + 8.53dp + 9.60dp + 10.67dp + 11.73dp + 12.80dp + 13.87dp + 14.93dp + 16.00dp + 17.07dp + 18.13dp + 19.20dp + 20.27dp + 21.33dp + 22.40dp + 23.47dp + 24.53dp + 25.60dp + 26.67dp + 27.73dp + 28.80dp + 29.87dp + 30.93dp + 32.00dp + 33.07dp + 34.13dp + 35.20dp + 36.27dp + 37.33dp + 38.40dp + 39.47dp + 40.53dp + 41.60dp + 42.67dp + 43.73dp + 44.80dp + 45.87dp + 46.93dp + 48.00dp + 49.07dp + 50.13dp + 51.20dp + 52.27dp + 53.33dp + 54.40dp + 55.47dp + 56.53dp + 57.60dp + 58.67dp + 59.73dp + 60.80dp + 61.87dp + 62.93dp + 64.00dp + 65.07dp + 66.13dp + 67.20dp + 68.27dp + 69.33dp + 70.40dp + 71.47dp + 72.53dp + 73.60dp + 74.67dp + 75.73dp + 76.80dp + 77.87dp + 78.93dp + 80.00dp + 81.07dp + 82.13dp + 83.20dp + 84.27dp + 85.33dp + 86.40dp + 87.47dp + 88.53dp + 89.60dp + 90.67dp + 91.73dp + 92.80dp + 93.87dp + 94.93dp + 96.00dp + 97.07dp + 98.13dp + 99.20dp + 100.27dp + 101.33dp + 102.40dp + 103.47dp + 104.53dp + 105.60dp + 106.67dp + 107.73dp + 108.80dp + 109.87dp + 110.93dp + 112.00dp + 113.07dp + 114.13dp + 115.20dp + 116.27dp + 117.33dp + 118.40dp + 119.47dp + 120.53dp + 121.60dp + 122.67dp + 123.73dp + 124.80dp + 125.87dp + 126.93dp + 128.00dp + 129.07dp + 130.13dp + 131.20dp + 132.27dp + 133.33dp + 134.40dp + 135.47dp + 136.53dp + 137.60dp + 138.67dp + 139.73dp + 140.80dp + 141.87dp + 142.93dp + 144.00dp + 145.07dp + 146.13dp + 147.20dp + 148.27dp + 149.33dp + 150.40dp + 151.47dp + 152.53dp + 153.60dp + 154.67dp + 155.73dp + 156.80dp + 157.87dp + 158.93dp + 160.00dp + 161.07dp + 162.13dp + 163.20dp + 164.27dp + 165.33dp + 166.40dp + 167.47dp + 168.53dp + 169.60dp + 170.67dp + 171.73dp + 172.80dp + 173.87dp + 174.93dp + 176.00dp + 177.07dp + 178.13dp + 179.20dp + 180.27dp + 181.33dp + 182.40dp + 183.47dp + 184.53dp + 185.60dp + 186.67dp + 187.73dp + 188.80dp + 189.87dp + 190.93dp + 192.00dp + 193.07dp + 194.13dp + 195.20dp + 196.27dp + 197.33dp + 198.40dp + 199.47dp + 200.53dp + 201.60dp + 202.67dp + 203.73dp + 204.80dp + 205.87dp + 206.93dp + 208.00dp + 209.07dp + 210.13dp + 211.20dp + 212.27dp + 213.33dp + 214.40dp + 215.47dp + 216.53dp + 217.60dp + 218.67dp + 219.73dp + 220.80dp + 221.87dp + 222.93dp + 224.00dp + 225.07dp + 226.13dp + 227.20dp + 228.27dp + 229.33dp + 230.40dp + 231.47dp + 232.53dp + 233.60dp + 234.67dp + 235.73dp + 236.80dp + 237.87dp + 238.93dp + 240.00dp + 241.07dp + 242.13dp + 243.20dp + 244.27dp + 245.33dp + 246.40dp + 247.47dp + 248.53dp + 249.60dp + 250.67dp + 251.73dp + 252.80dp + 253.87dp + 254.93dp + 256.00dp + 257.07dp + 258.13dp + 259.20dp + 260.27dp + 261.33dp + 262.40dp + 263.47dp + 264.53dp + 265.60dp + 266.67dp + 267.73dp + 268.80dp + 269.87dp + 270.93dp + 272.00dp + 273.07dp + 274.13dp + 275.20dp + 276.27dp + 277.33dp + 278.40dp + 279.47dp + 280.53dp + 281.60dp + 282.67dp + 283.73dp + 284.80dp + 285.87dp + 286.93dp + 288.00dp + 289.07dp + 290.13dp + 291.20dp + 292.27dp + 293.33dp + 294.40dp + 295.47dp + 296.53dp + 297.60dp + 298.67dp + 299.73dp + 300.80dp + 301.87dp + 302.93dp + 304.00dp + 305.07dp + 306.13dp + 307.20dp + 308.27dp + 309.33dp + 310.40dp + 311.47dp + 312.53dp + 313.60dp + 314.67dp + 315.73dp + 316.80dp + 317.87dp + 318.93dp + 320.00dp + 321.07dp + 322.13dp + 323.20dp + 324.27dp + 325.33dp + 326.40dp + 327.47dp + 328.53dp + 329.60dp + 330.67dp + 331.73dp + 332.80dp + 333.87dp + 334.93dp + 336.00dp + 337.07dp + 338.13dp + 339.20dp + 340.27dp + 341.33dp + 342.40dp + 343.47dp + 344.53dp + 345.60dp + 346.67dp + 347.73dp + 348.80dp + 349.87dp + 350.93dp + 352.00dp + 353.07dp + 354.13dp + 355.20dp + 356.27dp + 357.33dp + 358.40dp + 359.47dp + 360.53dp + 361.60dp + 362.67dp + 363.73dp + 364.80dp + 365.87dp + 366.93dp + 368.00dp + 369.07dp + 370.13dp + 371.20dp + 372.27dp + 373.33dp + 374.40dp + 375.47dp + 376.53dp + 377.60dp + 378.67dp + 379.73dp + 380.80dp + 381.87dp + 382.93dp + 384.00dp + 385.07dp + 386.13dp + 387.20dp + 388.27dp + 389.33dp + 390.40dp + 391.47dp + 392.53dp + 393.60dp + 394.67dp + 395.73dp + 396.80dp + 397.87dp + 398.93dp + 400.00dp + 401.07dp + 402.13dp + 403.20dp + 404.27dp + 405.33dp + 406.40dp + 407.47dp + 408.53dp + 409.60dp + 410.67dp + 411.73dp + 412.80dp + 413.87dp + 414.93dp + 416.00dp + 417.07dp + 418.13dp + 419.20dp + 420.27dp + 421.33dp + 422.40dp + 423.47dp + 424.53dp + 425.60dp + 426.67dp + + -1.07dp + -2.13dp + -3.20dp + -4.27dp + -5.33dp + -6.40dp + -7.47dp + -8.53dp + -9.60dp + -10.67dp + -11.73dp + -12.80dp + -13.87dp + -14.93dp + -16.00dp + -17.07dp + -18.13dp + -19.20dp + -20.27dp + -21.33dp + -22.40dp + -23.47dp + -24.53dp + -25.60dp + -26.67dp + -27.73dp + -28.80dp + -29.87dp + -30.93dp + -32.00dp + -33.07dp + -34.13dp + -35.20dp + -36.27dp + -37.33dp + -38.40dp + -39.47dp + -40.53dp + -41.60dp + -42.67dp + -43.73dp + -44.80dp + -45.87dp + -46.93dp + -48.00dp + -49.07dp + -50.13dp + -51.20dp + -52.27dp + -53.33dp + -54.40dp + -55.47dp + -56.53dp + -57.60dp + -58.67dp + -59.73dp + -60.80dp + -61.87dp + -62.93dp + -64.00dp + + 1.07sp + 2.13sp + 3.20sp + 4.27sp + 5.33sp + 6.40sp + 7.47sp + 8.53sp + 9.60sp + 10.67sp + 11.73sp + 12.80sp + 13.87sp + 14.93sp + 16.00sp + 17.07sp + 18.13sp + 19.20sp + 20.27sp + 21.33sp + 22.40sp + 23.47sp + 24.53sp + 25.60sp + 26.67sp + 27.73sp + 28.80sp + 29.87sp + 30.93sp + 32.00sp + 33.07sp + 34.13sp + 35.20sp + 36.27sp + 37.33sp + 38.40sp + 39.47sp + 40.53sp + 41.60sp + 42.67sp + 43.73sp + 44.80sp + 45.87sp + 46.93sp + 48.00sp + 49.07sp + 50.13sp + 51.20sp + 52.27sp + 53.33sp + 54.40sp + 55.47sp + 56.53sp + 57.60sp + 58.67sp + 59.73sp + 60.80sp + 61.87sp + 62.93sp + 64.00sp + diff --git a/app/src/main/res/values-sw411dp/auto_dimens.xml b/app/src/main/res/values-sw411dp/auto_dimens.xml new file mode 100644 index 0000000..8c0ee2b --- /dev/null +++ b/app/src/main/res/values-sw411dp/auto_dimens.xml @@ -0,0 +1,526 @@ + + + 0.00dp + 1.14dp + 2.28dp + 3.42dp + 4.57dp + 5.71dp + 6.85dp + 7.99dp + 9.13dp + 10.27dp + 11.42dp + 12.56dp + 13.70dp + 14.84dp + 15.98dp + 17.13dp + 18.27dp + 19.41dp + 20.55dp + 21.69dp + 22.83dp + 23.98dp + 25.12dp + 26.26dp + 27.40dp + 28.54dp + 29.68dp + 30.82dp + 31.97dp + 33.11dp + 34.25dp + 35.39dp + 36.53dp + 37.67dp + 38.82dp + 39.96dp + 41.10dp + 42.24dp + 43.38dp + 44.52dp + 45.67dp + 46.81dp + 47.95dp + 49.09dp + 50.23dp + 51.38dp + 52.52dp + 53.66dp + 54.80dp + 55.94dp + 57.08dp + 58.22dp + 59.37dp + 60.51dp + 61.65dp + 62.79dp + 63.93dp + 65.07dp + 66.22dp + 67.36dp + 68.50dp + 69.64dp + 70.78dp + 71.92dp + 73.07dp + 74.21dp + 75.35dp + 76.49dp + 77.63dp + 78.78dp + 79.92dp + 81.06dp + 82.20dp + 83.34dp + 84.48dp + 85.63dp + 86.77dp + 87.91dp + 89.05dp + 90.19dp + 91.33dp + 92.47dp + 93.62dp + 94.76dp + 95.90dp + 97.04dp + 98.18dp + 99.32dp + 100.47dp + 101.61dp + 102.75dp + 103.89dp + 105.03dp + 106.17dp + 107.32dp + 108.46dp + 109.60dp + 110.74dp + 111.88dp + 113.03dp + 114.17dp + 115.31dp + 116.45dp + 117.59dp + 118.73dp + 119.88dp + 121.02dp + 122.16dp + 123.30dp + 124.44dp + 125.58dp + 126.72dp + 127.87dp + 129.01dp + 130.15dp + 131.29dp + 132.43dp + 133.57dp + 134.72dp + 135.86dp + 137.00dp + 138.14dp + 139.28dp + 140.43dp + 141.57dp + 142.71dp + 143.85dp + 144.99dp + 146.13dp + 147.27dp + 148.42dp + 149.56dp + 150.70dp + 151.84dp + 152.98dp + 154.13dp + 155.27dp + 156.41dp + 157.55dp + 158.69dp + 159.83dp + 160.97dp + 162.12dp + 163.26dp + 164.40dp + 165.54dp + 166.68dp + 167.82dp + 168.97dp + 170.11dp + 171.25dp + 172.39dp + 173.53dp + 174.68dp + 175.82dp + 176.96dp + 178.10dp + 179.24dp + 180.38dp + 181.52dp + 182.67dp + 183.81dp + 184.95dp + 186.09dp + 187.23dp + 188.38dp + 189.52dp + 190.66dp + 191.80dp + 192.94dp + 194.08dp + 195.22dp + 196.37dp + 197.51dp + 198.65dp + 199.79dp + 200.93dp + 202.07dp + 203.22dp + 204.36dp + 205.50dp + 206.64dp + 207.78dp + 208.93dp + 210.07dp + 211.21dp + 212.35dp + 213.49dp + 214.63dp + 215.77dp + 216.92dp + 218.06dp + 219.20dp + 220.34dp + 221.48dp + 222.63dp + 223.77dp + 224.91dp + 226.05dp + 227.19dp + 228.33dp + 229.47dp + 230.62dp + 231.76dp + 232.90dp + 234.04dp + 235.18dp + 236.32dp + 237.47dp + 238.61dp + 239.75dp + 240.89dp + 242.03dp + 243.18dp + 244.32dp + 245.46dp + 246.60dp + 247.74dp + 248.88dp + 250.02dp + 251.17dp + 252.31dp + 253.45dp + 254.59dp + 255.73dp + 256.88dp + 258.02dp + 259.16dp + 260.30dp + 261.44dp + 262.58dp + 263.73dp + 264.87dp + 266.01dp + 267.15dp + 268.29dp + 269.43dp + 270.57dp + 271.72dp + 272.86dp + 274.00dp + 275.14dp + 276.28dp + 277.42dp + 278.57dp + 279.71dp + 280.85dp + 281.99dp + 283.13dp + 284.27dp + 285.42dp + 286.56dp + 287.70dp + 288.84dp + 289.98dp + 291.13dp + 292.27dp + 293.41dp + 294.55dp + 295.69dp + 296.83dp + 297.98dp + 299.12dp + 300.26dp + 301.40dp + 302.54dp + 303.68dp + 304.82dp + 305.97dp + 307.11dp + 308.25dp + 309.39dp + 310.53dp + 311.67dp + 312.82dp + 313.96dp + 315.10dp + 316.24dp + 317.38dp + 318.52dp + 319.67dp + 320.81dp + 321.95dp + 323.09dp + 324.23dp + 325.38dp + 326.52dp + 327.66dp + 328.80dp + 329.94dp + 331.08dp + 332.23dp + 333.37dp + 334.51dp + 335.65dp + 336.79dp + 337.93dp + 339.07dp + 340.22dp + 341.36dp + 342.50dp + 343.64dp + 344.78dp + 345.92dp + 347.07dp + 348.21dp + 349.35dp + 350.49dp + 351.63dp + 352.77dp + 353.92dp + 355.06dp + 356.20dp + 357.34dp + 358.48dp + 359.63dp + 360.77dp + 361.91dp + 363.05dp + 364.19dp + 365.33dp + 366.48dp + 367.62dp + 368.76dp + 369.90dp + 371.04dp + 372.18dp + 373.32dp + 374.47dp + 375.61dp + 376.75dp + 377.89dp + 379.03dp + 380.17dp + 381.32dp + 382.46dp + 383.60dp + 384.74dp + 385.88dp + 387.02dp + 388.17dp + 389.31dp + 390.45dp + 391.59dp + 392.73dp + 393.88dp + 395.02dp + 396.16dp + 397.30dp + 398.44dp + 399.58dp + 400.73dp + 401.87dp + 403.01dp + 404.15dp + 405.29dp + 406.43dp + 407.57dp + 408.72dp + 409.86dp + 411.00dp + 412.14dp + 413.28dp + 414.42dp + 415.57dp + 416.71dp + 417.85dp + 418.99dp + 420.13dp + 421.27dp + 422.42dp + 423.56dp + 424.70dp + 425.84dp + 426.98dp + 428.13dp + 429.27dp + 430.41dp + 431.55dp + 432.69dp + 433.83dp + 434.98dp + 436.12dp + 437.26dp + 438.40dp + 439.54dp + 440.68dp + 441.82dp + 442.97dp + 444.11dp + 445.25dp + 446.39dp + 447.53dp + 448.67dp + 449.82dp + 450.96dp + 452.10dp + 453.24dp + 454.38dp + 455.52dp + 456.67dp + + -1.14dp + -2.28dp + -3.42dp + -4.57dp + -5.71dp + -6.85dp + -7.99dp + -9.13dp + -10.27dp + -11.42dp + -12.56dp + -13.70dp + -14.84dp + -15.98dp + -17.13dp + -18.27dp + -19.41dp + -20.55dp + -21.69dp + -22.83dp + -23.98dp + -25.12dp + -26.26dp + -27.40dp + -28.54dp + -29.68dp + -30.82dp + -31.97dp + -33.11dp + -34.25dp + -35.39dp + -36.53dp + -37.67dp + -38.82dp + -39.96dp + -41.10dp + -42.24dp + -43.38dp + -44.52dp + -45.67dp + -46.81dp + -47.95dp + -49.09dp + -50.23dp + -51.38dp + -52.52dp + -53.66dp + -54.80dp + -55.94dp + -57.08dp + -58.22dp + -59.37dp + -60.51dp + -61.65dp + -62.79dp + -63.93dp + -65.07dp + -66.22dp + -67.36dp + -68.50dp + + 1.14sp + 2.28sp + 3.42sp + 4.57sp + 5.71sp + 6.85sp + 7.99sp + 9.13sp + 10.27sp + 11.42sp + 12.56sp + 13.70sp + 14.84sp + 15.98sp + 17.13sp + 18.27sp + 19.41sp + 20.55sp + 21.69sp + 22.83sp + 23.98sp + 25.12sp + 26.26sp + 27.40sp + 28.54sp + 29.68sp + 30.82sp + 31.97sp + 33.11sp + 34.25sp + 35.39sp + 36.53sp + 37.67sp + 38.82sp + 39.96sp + 41.10sp + 42.24sp + 43.38sp + 44.52sp + 45.67sp + 46.81sp + 47.95sp + 49.09sp + 50.23sp + 51.38sp + 52.52sp + 53.66sp + 54.80sp + 55.94sp + 57.08sp + 58.22sp + 59.37sp + 60.51sp + 61.65sp + 62.79sp + 63.93sp + 65.07sp + 66.22sp + 67.36sp + 68.50sp + diff --git a/app/src/main/res/values-sw480dp/auto_dimens.xml b/app/src/main/res/values-sw480dp/auto_dimens.xml new file mode 100644 index 0000000..327a616 --- /dev/null +++ b/app/src/main/res/values-sw480dp/auto_dimens.xml @@ -0,0 +1,526 @@ + + + 0.00dp + 1.33dp + 2.67dp + 4.00dp + 5.33dp + 6.67dp + 8.00dp + 9.33dp + 10.67dp + 12.00dp + 13.33dp + 14.67dp + 16.00dp + 17.33dp + 18.67dp + 20.00dp + 21.33dp + 22.67dp + 24.00dp + 25.33dp + 26.67dp + 28.00dp + 29.33dp + 30.67dp + 32.00dp + 33.33dp + 34.67dp + 36.00dp + 37.33dp + 38.67dp + 40.00dp + 41.33dp + 42.67dp + 44.00dp + 45.33dp + 46.67dp + 48.00dp + 49.33dp + 50.67dp + 52.00dp + 53.33dp + 54.67dp + 56.00dp + 57.33dp + 58.67dp + 60.00dp + 61.33dp + 62.67dp + 64.00dp + 65.33dp + 66.67dp + 68.00dp + 69.33dp + 70.67dp + 72.00dp + 73.33dp + 74.67dp + 76.00dp + 77.33dp + 78.67dp + 80.00dp + 81.33dp + 82.67dp + 84.00dp + 85.33dp + 86.67dp + 88.00dp + 89.33dp + 90.67dp + 92.00dp + 93.33dp + 94.67dp + 96.00dp + 97.33dp + 98.67dp + 100.00dp + 101.33dp + 102.67dp + 104.00dp + 105.33dp + 106.67dp + 108.00dp + 109.33dp + 110.67dp + 112.00dp + 113.33dp + 114.67dp + 116.00dp + 117.33dp + 118.67dp + 120.00dp + 121.33dp + 122.67dp + 124.00dp + 125.33dp + 126.67dp + 128.00dp + 129.33dp + 130.67dp + 132.00dp + 133.33dp + 134.67dp + 136.00dp + 137.33dp + 138.67dp + 140.00dp + 141.33dp + 142.67dp + 144.00dp + 145.33dp + 146.67dp + 148.00dp + 149.33dp + 150.67dp + 152.00dp + 153.33dp + 154.67dp + 156.00dp + 157.33dp + 158.67dp + 160.00dp + 161.33dp + 162.67dp + 164.00dp + 165.33dp + 166.67dp + 168.00dp + 169.33dp + 170.67dp + 172.00dp + 173.33dp + 174.67dp + 176.00dp + 177.33dp + 178.67dp + 180.00dp + 181.33dp + 182.67dp + 184.00dp + 185.33dp + 186.67dp + 188.00dp + 189.33dp + 190.67dp + 192.00dp + 193.33dp + 194.67dp + 196.00dp + 197.33dp + 198.67dp + 200.00dp + 201.33dp + 202.67dp + 204.00dp + 205.33dp + 206.67dp + 208.00dp + 209.33dp + 210.67dp + 212.00dp + 213.33dp + 214.67dp + 216.00dp + 217.33dp + 218.67dp + 220.00dp + 221.33dp + 222.67dp + 224.00dp + 225.33dp + 226.67dp + 228.00dp + 229.33dp + 230.67dp + 232.00dp + 233.33dp + 234.67dp + 236.00dp + 237.33dp + 238.67dp + 240.00dp + 241.33dp + 242.67dp + 244.00dp + 245.33dp + 246.67dp + 248.00dp + 249.33dp + 250.67dp + 252.00dp + 253.33dp + 254.67dp + 256.00dp + 257.33dp + 258.67dp + 260.00dp + 261.33dp + 262.67dp + 264.00dp + 265.33dp + 266.67dp + 268.00dp + 269.33dp + 270.67dp + 272.00dp + 273.33dp + 274.67dp + 276.00dp + 277.33dp + 278.67dp + 280.00dp + 281.33dp + 282.67dp + 284.00dp + 285.33dp + 286.67dp + 288.00dp + 289.33dp + 290.67dp + 292.00dp + 293.33dp + 294.67dp + 296.00dp + 297.33dp + 298.67dp + 300.00dp + 301.33dp + 302.67dp + 304.00dp + 305.33dp + 306.67dp + 308.00dp + 309.33dp + 310.67dp + 312.00dp + 313.33dp + 314.67dp + 316.00dp + 317.33dp + 318.67dp + 320.00dp + 321.33dp + 322.67dp + 324.00dp + 325.33dp + 326.67dp + 328.00dp + 329.33dp + 330.67dp + 332.00dp + 333.33dp + 334.67dp + 336.00dp + 337.33dp + 338.67dp + 340.00dp + 341.33dp + 342.67dp + 344.00dp + 345.33dp + 346.67dp + 348.00dp + 349.33dp + 350.67dp + 352.00dp + 353.33dp + 354.67dp + 356.00dp + 357.33dp + 358.67dp + 360.00dp + 361.33dp + 362.67dp + 364.00dp + 365.33dp + 366.67dp + 368.00dp + 369.33dp + 370.67dp + 372.00dp + 373.33dp + 374.67dp + 376.00dp + 377.33dp + 378.67dp + 380.00dp + 381.33dp + 382.67dp + 384.00dp + 385.33dp + 386.67dp + 388.00dp + 389.33dp + 390.67dp + 392.00dp + 393.33dp + 394.67dp + 396.00dp + 397.33dp + 398.67dp + 400.00dp + 401.33dp + 402.67dp + 404.00dp + 405.33dp + 406.67dp + 408.00dp + 409.33dp + 410.67dp + 412.00dp + 413.33dp + 414.67dp + 416.00dp + 417.33dp + 418.67dp + 420.00dp + 421.33dp + 422.67dp + 424.00dp + 425.33dp + 426.67dp + 428.00dp + 429.33dp + 430.67dp + 432.00dp + 433.33dp + 434.67dp + 436.00dp + 437.33dp + 438.67dp + 440.00dp + 441.33dp + 442.67dp + 444.00dp + 445.33dp + 446.67dp + 448.00dp + 449.33dp + 450.67dp + 452.00dp + 453.33dp + 454.67dp + 456.00dp + 457.33dp + 458.67dp + 460.00dp + 461.33dp + 462.67dp + 464.00dp + 465.33dp + 466.67dp + 468.00dp + 469.33dp + 470.67dp + 472.00dp + 473.33dp + 474.67dp + 476.00dp + 477.33dp + 478.67dp + 480.00dp + 481.33dp + 482.67dp + 484.00dp + 485.33dp + 486.67dp + 488.00dp + 489.33dp + 490.67dp + 492.00dp + 493.33dp + 494.67dp + 496.00dp + 497.33dp + 498.67dp + 500.00dp + 501.33dp + 502.67dp + 504.00dp + 505.33dp + 506.67dp + 508.00dp + 509.33dp + 510.67dp + 512.00dp + 513.33dp + 514.67dp + 516.00dp + 517.33dp + 518.67dp + 520.00dp + 521.33dp + 522.67dp + 524.00dp + 525.33dp + 526.67dp + 528.00dp + 529.33dp + 530.67dp + 532.00dp + 533.33dp + + -1.33dp + -2.67dp + -4.00dp + -5.33dp + -6.67dp + -8.00dp + -9.33dp + -10.67dp + -12.00dp + -13.33dp + -14.67dp + -16.00dp + -17.33dp + -18.67dp + -20.00dp + -21.33dp + -22.67dp + -24.00dp + -25.33dp + -26.67dp + -28.00dp + -29.33dp + -30.67dp + -32.00dp + -33.33dp + -34.67dp + -36.00dp + -37.33dp + -38.67dp + -40.00dp + -41.33dp + -42.67dp + -44.00dp + -45.33dp + -46.67dp + -48.00dp + -49.33dp + -50.67dp + -52.00dp + -53.33dp + -54.67dp + -56.00dp + -57.33dp + -58.67dp + -60.00dp + -61.33dp + -62.67dp + -64.00dp + -65.33dp + -66.67dp + -68.00dp + -69.33dp + -70.67dp + -72.00dp + -73.33dp + -74.67dp + -76.00dp + -77.33dp + -78.67dp + -80.00dp + + 1.33sp + 2.67sp + 4.00sp + 5.33sp + 6.67sp + 8.00sp + 9.33sp + 10.67sp + 12.00sp + 13.33sp + 14.67sp + 16.00sp + 17.33sp + 18.67sp + 20.00sp + 21.33sp + 22.67sp + 24.00sp + 25.33sp + 26.67sp + 28.00sp + 29.33sp + 30.67sp + 32.00sp + 33.33sp + 34.67sp + 36.00sp + 37.33sp + 38.67sp + 40.00sp + 41.33sp + 42.67sp + 44.00sp + 45.33sp + 46.67sp + 48.00sp + 49.33sp + 50.67sp + 52.00sp + 53.33sp + 54.67sp + 56.00sp + 57.33sp + 58.67sp + 60.00sp + 61.33sp + 62.67sp + 64.00sp + 65.33sp + 66.67sp + 68.00sp + 69.33sp + 70.67sp + 72.00sp + 73.33sp + 74.67sp + 76.00sp + 77.33sp + 78.67sp + 80.00sp + diff --git a/app/src/main/res/values-sw540dp/auto_dimens.xml b/app/src/main/res/values-sw540dp/auto_dimens.xml new file mode 100644 index 0000000..c310ac3 --- /dev/null +++ b/app/src/main/res/values-sw540dp/auto_dimens.xml @@ -0,0 +1,526 @@ + + + 0.00dp + 1.50dp + 3.00dp + 4.50dp + 6.00dp + 7.50dp + 9.00dp + 10.50dp + 12.00dp + 13.50dp + 15.00dp + 16.50dp + 18.00dp + 19.50dp + 21.00dp + 22.50dp + 24.00dp + 25.50dp + 27.00dp + 28.50dp + 30.00dp + 31.50dp + 33.00dp + 34.50dp + 36.00dp + 37.50dp + 39.00dp + 40.50dp + 42.00dp + 43.50dp + 45.00dp + 46.50dp + 48.00dp + 49.50dp + 51.00dp + 52.50dp + 54.00dp + 55.50dp + 57.00dp + 58.50dp + 60.00dp + 61.50dp + 63.00dp + 64.50dp + 66.00dp + 67.50dp + 69.00dp + 70.50dp + 72.00dp + 73.50dp + 75.00dp + 76.50dp + 78.00dp + 79.50dp + 81.00dp + 82.50dp + 84.00dp + 85.50dp + 87.00dp + 88.50dp + 90.00dp + 91.50dp + 93.00dp + 94.50dp + 96.00dp + 97.50dp + 99.00dp + 100.50dp + 102.00dp + 103.50dp + 105.00dp + 106.50dp + 108.00dp + 109.50dp + 111.00dp + 112.50dp + 114.00dp + 115.50dp + 117.00dp + 118.50dp + 120.00dp + 121.50dp + 123.00dp + 124.50dp + 126.00dp + 127.50dp + 129.00dp + 130.50dp + 132.00dp + 133.50dp + 135.00dp + 136.50dp + 138.00dp + 139.50dp + 141.00dp + 142.50dp + 144.00dp + 145.50dp + 147.00dp + 148.50dp + 150.00dp + 151.50dp + 153.00dp + 154.50dp + 156.00dp + 157.50dp + 159.00dp + 160.50dp + 162.00dp + 163.50dp + 165.00dp + 166.50dp + 168.00dp + 169.50dp + 171.00dp + 172.50dp + 174.00dp + 175.50dp + 177.00dp + 178.50dp + 180.00dp + 181.50dp + 183.00dp + 184.50dp + 186.00dp + 187.50dp + 189.00dp + 190.50dp + 192.00dp + 193.50dp + 195.00dp + 196.50dp + 198.00dp + 199.50dp + 201.00dp + 202.50dp + 204.00dp + 205.50dp + 207.00dp + 208.50dp + 210.00dp + 211.50dp + 213.00dp + 214.50dp + 216.00dp + 217.50dp + 219.00dp + 220.50dp + 222.00dp + 223.50dp + 225.00dp + 226.50dp + 228.00dp + 229.50dp + 231.00dp + 232.50dp + 234.00dp + 235.50dp + 237.00dp + 238.50dp + 240.00dp + 241.50dp + 243.00dp + 244.50dp + 246.00dp + 247.50dp + 249.00dp + 250.50dp + 252.00dp + 253.50dp + 255.00dp + 256.50dp + 258.00dp + 259.50dp + 261.00dp + 262.50dp + 264.00dp + 265.50dp + 267.00dp + 268.50dp + 270.00dp + 271.50dp + 273.00dp + 274.50dp + 276.00dp + 277.50dp + 279.00dp + 280.50dp + 282.00dp + 283.50dp + 285.00dp + 286.50dp + 288.00dp + 289.50dp + 291.00dp + 292.50dp + 294.00dp + 295.50dp + 297.00dp + 298.50dp + 300.00dp + 301.50dp + 303.00dp + 304.50dp + 306.00dp + 307.50dp + 309.00dp + 310.50dp + 312.00dp + 313.50dp + 315.00dp + 316.50dp + 318.00dp + 319.50dp + 321.00dp + 322.50dp + 324.00dp + 325.50dp + 327.00dp + 328.50dp + 330.00dp + 331.50dp + 333.00dp + 334.50dp + 336.00dp + 337.50dp + 339.00dp + 340.50dp + 342.00dp + 343.50dp + 345.00dp + 346.50dp + 348.00dp + 349.50dp + 351.00dp + 352.50dp + 354.00dp + 355.50dp + 357.00dp + 358.50dp + 360.00dp + 361.50dp + 363.00dp + 364.50dp + 366.00dp + 367.50dp + 369.00dp + 370.50dp + 372.00dp + 373.50dp + 375.00dp + 376.50dp + 378.00dp + 379.50dp + 381.00dp + 382.50dp + 384.00dp + 385.50dp + 387.00dp + 388.50dp + 390.00dp + 391.50dp + 393.00dp + 394.50dp + 396.00dp + 397.50dp + 399.00dp + 400.50dp + 402.00dp + 403.50dp + 405.00dp + 406.50dp + 408.00dp + 409.50dp + 411.00dp + 412.50dp + 414.00dp + 415.50dp + 417.00dp + 418.50dp + 420.00dp + 421.50dp + 423.00dp + 424.50dp + 426.00dp + 427.50dp + 429.00dp + 430.50dp + 432.00dp + 433.50dp + 435.00dp + 436.50dp + 438.00dp + 439.50dp + 441.00dp + 442.50dp + 444.00dp + 445.50dp + 447.00dp + 448.50dp + 450.00dp + 451.50dp + 453.00dp + 454.50dp + 456.00dp + 457.50dp + 459.00dp + 460.50dp + 462.00dp + 463.50dp + 465.00dp + 466.50dp + 468.00dp + 469.50dp + 471.00dp + 472.50dp + 474.00dp + 475.50dp + 477.00dp + 478.50dp + 480.00dp + 481.50dp + 483.00dp + 484.50dp + 486.00dp + 487.50dp + 489.00dp + 490.50dp + 492.00dp + 493.50dp + 495.00dp + 496.50dp + 498.00dp + 499.50dp + 501.00dp + 502.50dp + 504.00dp + 505.50dp + 507.00dp + 508.50dp + 510.00dp + 511.50dp + 513.00dp + 514.50dp + 516.00dp + 517.50dp + 519.00dp + 520.50dp + 522.00dp + 523.50dp + 525.00dp + 526.50dp + 528.00dp + 529.50dp + 531.00dp + 532.50dp + 534.00dp + 535.50dp + 537.00dp + 538.50dp + 540.00dp + 541.50dp + 543.00dp + 544.50dp + 546.00dp + 547.50dp + 549.00dp + 550.50dp + 552.00dp + 553.50dp + 555.00dp + 556.50dp + 558.00dp + 559.50dp + 561.00dp + 562.50dp + 564.00dp + 565.50dp + 567.00dp + 568.50dp + 570.00dp + 571.50dp + 573.00dp + 574.50dp + 576.00dp + 577.50dp + 579.00dp + 580.50dp + 582.00dp + 583.50dp + 585.00dp + 586.50dp + 588.00dp + 589.50dp + 591.00dp + 592.50dp + 594.00dp + 595.50dp + 597.00dp + 598.50dp + 600.00dp + + -1.50dp + -3.00dp + -4.50dp + -6.00dp + -7.50dp + -9.00dp + -10.50dp + -12.00dp + -13.50dp + -15.00dp + -16.50dp + -18.00dp + -19.50dp + -21.00dp + -22.50dp + -24.00dp + -25.50dp + -27.00dp + -28.50dp + -30.00dp + -31.50dp + -33.00dp + -34.50dp + -36.00dp + -37.50dp + -39.00dp + -40.50dp + -42.00dp + -43.50dp + -45.00dp + -46.50dp + -48.00dp + -49.50dp + -51.00dp + -52.50dp + -54.00dp + -55.50dp + -57.00dp + -58.50dp + -60.00dp + -61.50dp + -63.00dp + -64.50dp + -66.00dp + -67.50dp + -69.00dp + -70.50dp + -72.00dp + -73.50dp + -75.00dp + -76.50dp + -78.00dp + -79.50dp + -81.00dp + -82.50dp + -84.00dp + -85.50dp + -87.00dp + -88.50dp + -90.00dp + + 1.50sp + 3.00sp + 4.50sp + 6.00sp + 7.50sp + 9.00sp + 10.50sp + 12.00sp + 13.50sp + 15.00sp + 16.50sp + 18.00sp + 19.50sp + 21.00sp + 22.50sp + 24.00sp + 25.50sp + 27.00sp + 28.50sp + 30.00sp + 31.50sp + 33.00sp + 34.50sp + 36.00sp + 37.50sp + 39.00sp + 40.50sp + 42.00sp + 43.50sp + 45.00sp + 46.50sp + 48.00sp + 49.50sp + 51.00sp + 52.50sp + 54.00sp + 55.50sp + 57.00sp + 58.50sp + 60.00sp + 61.50sp + 63.00sp + 64.50sp + 66.00sp + 67.50sp + 69.00sp + 70.50sp + 72.00sp + 73.50sp + 75.00sp + 76.50sp + 78.00sp + 79.50sp + 81.00sp + 82.50sp + 84.00sp + 85.50sp + 87.00sp + 88.50sp + 90.00sp + diff --git a/app/src/main/res/values-sw600dp/auto_dimens.xml b/app/src/main/res/values-sw600dp/auto_dimens.xml new file mode 100644 index 0000000..f0824cb --- /dev/null +++ b/app/src/main/res/values-sw600dp/auto_dimens.xml @@ -0,0 +1,526 @@ + + + 0.00dp + 1.67dp + 3.33dp + 5.00dp + 6.67dp + 8.33dp + 10.00dp + 11.67dp + 13.33dp + 15.00dp + 16.67dp + 18.33dp + 20.00dp + 21.67dp + 23.33dp + 25.00dp + 26.67dp + 28.33dp + 30.00dp + 31.67dp + 33.33dp + 35.00dp + 36.67dp + 38.33dp + 40.00dp + 41.67dp + 43.33dp + 45.00dp + 46.67dp + 48.33dp + 50.00dp + 51.67dp + 53.33dp + 55.00dp + 56.67dp + 58.33dp + 60.00dp + 61.67dp + 63.33dp + 65.00dp + 66.67dp + 68.33dp + 70.00dp + 71.67dp + 73.33dp + 75.00dp + 76.67dp + 78.33dp + 80.00dp + 81.67dp + 83.33dp + 85.00dp + 86.67dp + 88.33dp + 90.00dp + 91.67dp + 93.33dp + 95.00dp + 96.67dp + 98.33dp + 100.00dp + 101.67dp + 103.33dp + 105.00dp + 106.67dp + 108.33dp + 110.00dp + 111.67dp + 113.33dp + 115.00dp + 116.67dp + 118.33dp + 120.00dp + 121.67dp + 123.33dp + 125.00dp + 126.67dp + 128.33dp + 130.00dp + 131.67dp + 133.33dp + 135.00dp + 136.67dp + 138.33dp + 140.00dp + 141.67dp + 143.33dp + 145.00dp + 146.67dp + 148.33dp + 150.00dp + 151.67dp + 153.33dp + 155.00dp + 156.67dp + 158.33dp + 160.00dp + 161.67dp + 163.33dp + 165.00dp + 166.67dp + 168.33dp + 170.00dp + 171.67dp + 173.33dp + 175.00dp + 176.67dp + 178.33dp + 180.00dp + 181.67dp + 183.33dp + 185.00dp + 186.67dp + 188.33dp + 190.00dp + 191.67dp + 193.33dp + 195.00dp + 196.67dp + 198.33dp + 200.00dp + 201.67dp + 203.33dp + 205.00dp + 206.67dp + 208.33dp + 210.00dp + 211.67dp + 213.33dp + 215.00dp + 216.67dp + 218.33dp + 220.00dp + 221.67dp + 223.33dp + 225.00dp + 226.67dp + 228.33dp + 230.00dp + 231.67dp + 233.33dp + 235.00dp + 236.67dp + 238.33dp + 240.00dp + 241.67dp + 243.33dp + 245.00dp + 246.67dp + 248.33dp + 250.00dp + 251.67dp + 253.33dp + 255.00dp + 256.67dp + 258.33dp + 260.00dp + 261.67dp + 263.33dp + 265.00dp + 266.67dp + 268.33dp + 270.00dp + 271.67dp + 273.33dp + 275.00dp + 276.67dp + 278.33dp + 280.00dp + 281.67dp + 283.33dp + 285.00dp + 286.67dp + 288.33dp + 290.00dp + 291.67dp + 293.33dp + 295.00dp + 296.67dp + 298.33dp + 300.00dp + 301.67dp + 303.33dp + 305.00dp + 306.67dp + 308.33dp + 310.00dp + 311.67dp + 313.33dp + 315.00dp + 316.67dp + 318.33dp + 320.00dp + 321.67dp + 323.33dp + 325.00dp + 326.67dp + 328.33dp + 330.00dp + 331.67dp + 333.33dp + 335.00dp + 336.67dp + 338.33dp + 340.00dp + 341.67dp + 343.33dp + 345.00dp + 346.67dp + 348.33dp + 350.00dp + 351.67dp + 353.33dp + 355.00dp + 356.67dp + 358.33dp + 360.00dp + 361.67dp + 363.33dp + 365.00dp + 366.67dp + 368.33dp + 370.00dp + 371.67dp + 373.33dp + 375.00dp + 376.67dp + 378.33dp + 380.00dp + 381.67dp + 383.33dp + 385.00dp + 386.67dp + 388.33dp + 390.00dp + 391.67dp + 393.33dp + 395.00dp + 396.67dp + 398.33dp + 400.00dp + 401.67dp + 403.33dp + 405.00dp + 406.67dp + 408.33dp + 410.00dp + 411.67dp + 413.33dp + 415.00dp + 416.67dp + 418.33dp + 420.00dp + 421.67dp + 423.33dp + 425.00dp + 426.67dp + 428.33dp + 430.00dp + 431.67dp + 433.33dp + 435.00dp + 436.67dp + 438.33dp + 440.00dp + 441.67dp + 443.33dp + 445.00dp + 446.67dp + 448.33dp + 450.00dp + 451.67dp + 453.33dp + 455.00dp + 456.67dp + 458.33dp + 460.00dp + 461.67dp + 463.33dp + 465.00dp + 466.67dp + 468.33dp + 470.00dp + 471.67dp + 473.33dp + 475.00dp + 476.67dp + 478.33dp + 480.00dp + 481.67dp + 483.33dp + 485.00dp + 486.67dp + 488.33dp + 490.00dp + 491.67dp + 493.33dp + 495.00dp + 496.67dp + 498.33dp + 500.00dp + 501.67dp + 503.33dp + 505.00dp + 506.67dp + 508.33dp + 510.00dp + 511.67dp + 513.33dp + 515.00dp + 516.67dp + 518.33dp + 520.00dp + 521.67dp + 523.33dp + 525.00dp + 526.67dp + 528.33dp + 530.00dp + 531.67dp + 533.33dp + 535.00dp + 536.67dp + 538.33dp + 540.00dp + 541.67dp + 543.33dp + 545.00dp + 546.67dp + 548.33dp + 550.00dp + 551.67dp + 553.33dp + 555.00dp + 556.67dp + 558.33dp + 560.00dp + 561.67dp + 563.33dp + 565.00dp + 566.67dp + 568.33dp + 570.00dp + 571.67dp + 573.33dp + 575.00dp + 576.67dp + 578.33dp + 580.00dp + 581.67dp + 583.33dp + 585.00dp + 586.67dp + 588.33dp + 590.00dp + 591.67dp + 593.33dp + 595.00dp + 596.67dp + 598.33dp + 600.00dp + 601.67dp + 603.33dp + 605.00dp + 606.67dp + 608.33dp + 610.00dp + 611.67dp + 613.33dp + 615.00dp + 616.67dp + 618.33dp + 620.00dp + 621.67dp + 623.33dp + 625.00dp + 626.67dp + 628.33dp + 630.00dp + 631.67dp + 633.33dp + 635.00dp + 636.67dp + 638.33dp + 640.00dp + 641.67dp + 643.33dp + 645.00dp + 646.67dp + 648.33dp + 650.00dp + 651.67dp + 653.33dp + 655.00dp + 656.67dp + 658.33dp + 660.00dp + 661.67dp + 663.33dp + 665.00dp + 666.67dp + + -1.67dp + -3.33dp + -5.00dp + -6.67dp + -8.33dp + -10.00dp + -11.67dp + -13.33dp + -15.00dp + -16.67dp + -18.33dp + -20.00dp + -21.67dp + -23.33dp + -25.00dp + -26.67dp + -28.33dp + -30.00dp + -31.67dp + -33.33dp + -35.00dp + -36.67dp + -38.33dp + -40.00dp + -41.67dp + -43.33dp + -45.00dp + -46.67dp + -48.33dp + -50.00dp + -51.67dp + -53.33dp + -55.00dp + -56.67dp + -58.33dp + -60.00dp + -61.67dp + -63.33dp + -65.00dp + -66.67dp + -68.33dp + -70.00dp + -71.67dp + -73.33dp + -75.00dp + -76.67dp + -78.33dp + -80.00dp + -81.67dp + -83.33dp + -85.00dp + -86.67dp + -88.33dp + -90.00dp + -91.67dp + -93.33dp + -95.00dp + -96.67dp + -98.33dp + -100.00dp + + 1.67sp + 3.33sp + 5.00sp + 6.67sp + 8.33sp + 10.00sp + 11.67sp + 13.33sp + 15.00sp + 16.67sp + 18.33sp + 20.00sp + 21.67sp + 23.33sp + 25.00sp + 26.67sp + 28.33sp + 30.00sp + 31.67sp + 33.33sp + 35.00sp + 36.67sp + 38.33sp + 40.00sp + 41.67sp + 43.33sp + 45.00sp + 46.67sp + 48.33sp + 50.00sp + 51.67sp + 53.33sp + 55.00sp + 56.67sp + 58.33sp + 60.00sp + 61.67sp + 63.33sp + 65.00sp + 66.67sp + 68.33sp + 70.00sp + 71.67sp + 73.33sp + 75.00sp + 76.67sp + 78.33sp + 80.00sp + 81.67sp + 83.33sp + 85.00sp + 86.67sp + 88.33sp + 90.00sp + 91.67sp + 93.33sp + 95.00sp + 96.67sp + 98.33sp + 100.00sp + diff --git a/app/src/main/res/values-sw720dp/auto_dimens.xml b/app/src/main/res/values-sw720dp/auto_dimens.xml new file mode 100644 index 0000000..c818f28 --- /dev/null +++ b/app/src/main/res/values-sw720dp/auto_dimens.xml @@ -0,0 +1,526 @@ + + + 0.00dp + 2.00dp + 4.00dp + 6.00dp + 8.00dp + 10.00dp + 12.00dp + 14.00dp + 16.00dp + 18.00dp + 20.00dp + 22.00dp + 24.00dp + 26.00dp + 28.00dp + 30.00dp + 32.00dp + 34.00dp + 36.00dp + 38.00dp + 40.00dp + 42.00dp + 44.00dp + 46.00dp + 48.00dp + 50.00dp + 52.00dp + 54.00dp + 56.00dp + 58.00dp + 60.00dp + 62.00dp + 64.00dp + 66.00dp + 68.00dp + 70.00dp + 72.00dp + 74.00dp + 76.00dp + 78.00dp + 80.00dp + 82.00dp + 84.00dp + 86.00dp + 88.00dp + 90.00dp + 92.00dp + 94.00dp + 96.00dp + 98.00dp + 100.00dp + 102.00dp + 104.00dp + 106.00dp + 108.00dp + 110.00dp + 112.00dp + 114.00dp + 116.00dp + 118.00dp + 120.00dp + 122.00dp + 124.00dp + 126.00dp + 128.00dp + 130.00dp + 132.00dp + 134.00dp + 136.00dp + 138.00dp + 140.00dp + 142.00dp + 144.00dp + 146.00dp + 148.00dp + 150.00dp + 152.00dp + 154.00dp + 156.00dp + 158.00dp + 160.00dp + 162.00dp + 164.00dp + 166.00dp + 168.00dp + 170.00dp + 172.00dp + 174.00dp + 176.00dp + 178.00dp + 180.00dp + 182.00dp + 184.00dp + 186.00dp + 188.00dp + 190.00dp + 192.00dp + 194.00dp + 196.00dp + 198.00dp + 200.00dp + 202.00dp + 204.00dp + 206.00dp + 208.00dp + 210.00dp + 212.00dp + 214.00dp + 216.00dp + 218.00dp + 220.00dp + 222.00dp + 224.00dp + 226.00dp + 228.00dp + 230.00dp + 232.00dp + 234.00dp + 236.00dp + 238.00dp + 240.00dp + 242.00dp + 244.00dp + 246.00dp + 248.00dp + 250.00dp + 252.00dp + 254.00dp + 256.00dp + 258.00dp + 260.00dp + 262.00dp + 264.00dp + 266.00dp + 268.00dp + 270.00dp + 272.00dp + 274.00dp + 276.00dp + 278.00dp + 280.00dp + 282.00dp + 284.00dp + 286.00dp + 288.00dp + 290.00dp + 292.00dp + 294.00dp + 296.00dp + 298.00dp + 300.00dp + 302.00dp + 304.00dp + 306.00dp + 308.00dp + 310.00dp + 312.00dp + 314.00dp + 316.00dp + 318.00dp + 320.00dp + 322.00dp + 324.00dp + 326.00dp + 328.00dp + 330.00dp + 332.00dp + 334.00dp + 336.00dp + 338.00dp + 340.00dp + 342.00dp + 344.00dp + 346.00dp + 348.00dp + 350.00dp + 352.00dp + 354.00dp + 356.00dp + 358.00dp + 360.00dp + 362.00dp + 364.00dp + 366.00dp + 368.00dp + 370.00dp + 372.00dp + 374.00dp + 376.00dp + 378.00dp + 380.00dp + 382.00dp + 384.00dp + 386.00dp + 388.00dp + 390.00dp + 392.00dp + 394.00dp + 396.00dp + 398.00dp + 400.00dp + 402.00dp + 404.00dp + 406.00dp + 408.00dp + 410.00dp + 412.00dp + 414.00dp + 416.00dp + 418.00dp + 420.00dp + 422.00dp + 424.00dp + 426.00dp + 428.00dp + 430.00dp + 432.00dp + 434.00dp + 436.00dp + 438.00dp + 440.00dp + 442.00dp + 444.00dp + 446.00dp + 448.00dp + 450.00dp + 452.00dp + 454.00dp + 456.00dp + 458.00dp + 460.00dp + 462.00dp + 464.00dp + 466.00dp + 468.00dp + 470.00dp + 472.00dp + 474.00dp + 476.00dp + 478.00dp + 480.00dp + 482.00dp + 484.00dp + 486.00dp + 488.00dp + 490.00dp + 492.00dp + 494.00dp + 496.00dp + 498.00dp + 500.00dp + 502.00dp + 504.00dp + 506.00dp + 508.00dp + 510.00dp + 512.00dp + 514.00dp + 516.00dp + 518.00dp + 520.00dp + 522.00dp + 524.00dp + 526.00dp + 528.00dp + 530.00dp + 532.00dp + 534.00dp + 536.00dp + 538.00dp + 540.00dp + 542.00dp + 544.00dp + 546.00dp + 548.00dp + 550.00dp + 552.00dp + 554.00dp + 556.00dp + 558.00dp + 560.00dp + 562.00dp + 564.00dp + 566.00dp + 568.00dp + 570.00dp + 572.00dp + 574.00dp + 576.00dp + 578.00dp + 580.00dp + 582.00dp + 584.00dp + 586.00dp + 588.00dp + 590.00dp + 592.00dp + 594.00dp + 596.00dp + 598.00dp + 600.00dp + 602.00dp + 604.00dp + 606.00dp + 608.00dp + 610.00dp + 612.00dp + 614.00dp + 616.00dp + 618.00dp + 620.00dp + 622.00dp + 624.00dp + 626.00dp + 628.00dp + 630.00dp + 632.00dp + 634.00dp + 636.00dp + 638.00dp + 640.00dp + 642.00dp + 644.00dp + 646.00dp + 648.00dp + 650.00dp + 652.00dp + 654.00dp + 656.00dp + 658.00dp + 660.00dp + 662.00dp + 664.00dp + 666.00dp + 668.00dp + 670.00dp + 672.00dp + 674.00dp + 676.00dp + 678.00dp + 680.00dp + 682.00dp + 684.00dp + 686.00dp + 688.00dp + 690.00dp + 692.00dp + 694.00dp + 696.00dp + 698.00dp + 700.00dp + 702.00dp + 704.00dp + 706.00dp + 708.00dp + 710.00dp + 712.00dp + 714.00dp + 716.00dp + 718.00dp + 720.00dp + 722.00dp + 724.00dp + 726.00dp + 728.00dp + 730.00dp + 732.00dp + 734.00dp + 736.00dp + 738.00dp + 740.00dp + 742.00dp + 744.00dp + 746.00dp + 748.00dp + 750.00dp + 752.00dp + 754.00dp + 756.00dp + 758.00dp + 760.00dp + 762.00dp + 764.00dp + 766.00dp + 768.00dp + 770.00dp + 772.00dp + 774.00dp + 776.00dp + 778.00dp + 780.00dp + 782.00dp + 784.00dp + 786.00dp + 788.00dp + 790.00dp + 792.00dp + 794.00dp + 796.00dp + 798.00dp + 800.00dp + + -2.00dp + -4.00dp + -6.00dp + -8.00dp + -10.00dp + -12.00dp + -14.00dp + -16.00dp + -18.00dp + -20.00dp + -22.00dp + -24.00dp + -26.00dp + -28.00dp + -30.00dp + -32.00dp + -34.00dp + -36.00dp + -38.00dp + -40.00dp + -42.00dp + -44.00dp + -46.00dp + -48.00dp + -50.00dp + -52.00dp + -54.00dp + -56.00dp + -58.00dp + -60.00dp + -62.00dp + -64.00dp + -66.00dp + -68.00dp + -70.00dp + -72.00dp + -74.00dp + -76.00dp + -78.00dp + -80.00dp + -82.00dp + -84.00dp + -86.00dp + -88.00dp + -90.00dp + -92.00dp + -94.00dp + -96.00dp + -98.00dp + -100.00dp + -102.00dp + -104.00dp + -106.00dp + -108.00dp + -110.00dp + -112.00dp + -114.00dp + -116.00dp + -118.00dp + -120.00dp + + 2.00sp + 4.00sp + 6.00sp + 8.00sp + 10.00sp + 12.00sp + 14.00sp + 16.00sp + 18.00sp + 20.00sp + 22.00sp + 24.00sp + 26.00sp + 28.00sp + 30.00sp + 32.00sp + 34.00sp + 36.00sp + 38.00sp + 40.00sp + 42.00sp + 44.00sp + 46.00sp + 48.00sp + 50.00sp + 52.00sp + 54.00sp + 56.00sp + 58.00sp + 60.00sp + 62.00sp + 64.00sp + 66.00sp + 68.00sp + 70.00sp + 72.00sp + 74.00sp + 76.00sp + 78.00sp + 80.00sp + 82.00sp + 84.00sp + 86.00sp + 88.00sp + 90.00sp + 92.00sp + 94.00sp + 96.00sp + 98.00sp + 100.00sp + 102.00sp + 104.00sp + 106.00sp + 108.00sp + 110.00sp + 112.00sp + 114.00sp + 116.00sp + 118.00sp + 120.00sp + diff --git a/app/src/main/res/values-sw800dp/auto_dimens.xml b/app/src/main/res/values-sw800dp/auto_dimens.xml new file mode 100644 index 0000000..546c58e --- /dev/null +++ b/app/src/main/res/values-sw800dp/auto_dimens.xml @@ -0,0 +1,526 @@ + + + 0.00dp + 2.22dp + 4.44dp + 6.67dp + 8.89dp + 11.11dp + 13.33dp + 15.56dp + 17.78dp + 20.00dp + 22.22dp + 24.44dp + 26.67dp + 28.89dp + 31.11dp + 33.33dp + 35.56dp + 37.78dp + 40.00dp + 42.22dp + 44.44dp + 46.67dp + 48.89dp + 51.11dp + 53.33dp + 55.56dp + 57.78dp + 60.00dp + 62.22dp + 64.44dp + 66.67dp + 68.89dp + 71.11dp + 73.33dp + 75.56dp + 77.78dp + 80.00dp + 82.22dp + 84.44dp + 86.67dp + 88.89dp + 91.11dp + 93.33dp + 95.56dp + 97.78dp + 100.00dp + 102.22dp + 104.44dp + 106.67dp + 108.89dp + 111.11dp + 113.33dp + 115.56dp + 117.78dp + 120.00dp + 122.22dp + 124.44dp + 126.67dp + 128.89dp + 131.11dp + 133.33dp + 135.56dp + 137.78dp + 140.00dp + 142.22dp + 144.44dp + 146.67dp + 148.89dp + 151.11dp + 153.33dp + 155.56dp + 157.78dp + 160.00dp + 162.22dp + 164.44dp + 166.67dp + 168.89dp + 171.11dp + 173.33dp + 175.56dp + 177.78dp + 180.00dp + 182.22dp + 184.44dp + 186.67dp + 188.89dp + 191.11dp + 193.33dp + 195.56dp + 197.78dp + 200.00dp + 202.22dp + 204.44dp + 206.67dp + 208.89dp + 211.11dp + 213.33dp + 215.56dp + 217.78dp + 220.00dp + 222.22dp + 224.44dp + 226.67dp + 228.89dp + 231.11dp + 233.33dp + 235.56dp + 237.78dp + 240.00dp + 242.22dp + 244.44dp + 246.67dp + 248.89dp + 251.11dp + 253.33dp + 255.56dp + 257.78dp + 260.00dp + 262.22dp + 264.44dp + 266.67dp + 268.89dp + 271.11dp + 273.33dp + 275.56dp + 277.78dp + 280.00dp + 282.22dp + 284.44dp + 286.67dp + 288.89dp + 291.11dp + 293.33dp + 295.56dp + 297.78dp + 300.00dp + 302.22dp + 304.44dp + 306.67dp + 308.89dp + 311.11dp + 313.33dp + 315.56dp + 317.78dp + 320.00dp + 322.22dp + 324.44dp + 326.67dp + 328.89dp + 331.11dp + 333.33dp + 335.56dp + 337.78dp + 340.00dp + 342.22dp + 344.44dp + 346.67dp + 348.89dp + 351.11dp + 353.33dp + 355.56dp + 357.78dp + 360.00dp + 362.22dp + 364.44dp + 366.67dp + 368.89dp + 371.11dp + 373.33dp + 375.56dp + 377.78dp + 380.00dp + 382.22dp + 384.44dp + 386.67dp + 388.89dp + 391.11dp + 393.33dp + 395.56dp + 397.78dp + 400.00dp + 402.22dp + 404.44dp + 406.67dp + 408.89dp + 411.11dp + 413.33dp + 415.56dp + 417.78dp + 420.00dp + 422.22dp + 424.44dp + 426.67dp + 428.89dp + 431.11dp + 433.33dp + 435.56dp + 437.78dp + 440.00dp + 442.22dp + 444.44dp + 446.67dp + 448.89dp + 451.11dp + 453.33dp + 455.56dp + 457.78dp + 460.00dp + 462.22dp + 464.44dp + 466.67dp + 468.89dp + 471.11dp + 473.33dp + 475.56dp + 477.78dp + 480.00dp + 482.22dp + 484.44dp + 486.67dp + 488.89dp + 491.11dp + 493.33dp + 495.56dp + 497.78dp + 500.00dp + 502.22dp + 504.44dp + 506.67dp + 508.89dp + 511.11dp + 513.33dp + 515.56dp + 517.78dp + 520.00dp + 522.22dp + 524.44dp + 526.67dp + 528.89dp + 531.11dp + 533.33dp + 535.56dp + 537.78dp + 540.00dp + 542.22dp + 544.44dp + 546.67dp + 548.89dp + 551.11dp + 553.33dp + 555.56dp + 557.78dp + 560.00dp + 562.22dp + 564.44dp + 566.67dp + 568.89dp + 571.11dp + 573.33dp + 575.56dp + 577.78dp + 580.00dp + 582.22dp + 584.44dp + 586.67dp + 588.89dp + 591.11dp + 593.33dp + 595.56dp + 597.78dp + 600.00dp + 602.22dp + 604.44dp + 606.67dp + 608.89dp + 611.11dp + 613.33dp + 615.56dp + 617.78dp + 620.00dp + 622.22dp + 624.44dp + 626.67dp + 628.89dp + 631.11dp + 633.33dp + 635.56dp + 637.78dp + 640.00dp + 642.22dp + 644.44dp + 646.67dp + 648.89dp + 651.11dp + 653.33dp + 655.56dp + 657.78dp + 660.00dp + 662.22dp + 664.44dp + 666.67dp + 668.89dp + 671.11dp + 673.33dp + 675.56dp + 677.78dp + 680.00dp + 682.22dp + 684.44dp + 686.67dp + 688.89dp + 691.11dp + 693.33dp + 695.56dp + 697.78dp + 700.00dp + 702.22dp + 704.44dp + 706.67dp + 708.89dp + 711.11dp + 713.33dp + 715.56dp + 717.78dp + 720.00dp + 722.22dp + 724.44dp + 726.67dp + 728.89dp + 731.11dp + 733.33dp + 735.56dp + 737.78dp + 740.00dp + 742.22dp + 744.44dp + 746.67dp + 748.89dp + 751.11dp + 753.33dp + 755.56dp + 757.78dp + 760.00dp + 762.22dp + 764.44dp + 766.67dp + 768.89dp + 771.11dp + 773.33dp + 775.56dp + 777.78dp + 780.00dp + 782.22dp + 784.44dp + 786.67dp + 788.89dp + 791.11dp + 793.33dp + 795.56dp + 797.78dp + 800.00dp + 802.22dp + 804.44dp + 806.67dp + 808.89dp + 811.11dp + 813.33dp + 815.56dp + 817.78dp + 820.00dp + 822.22dp + 824.44dp + 826.67dp + 828.89dp + 831.11dp + 833.33dp + 835.56dp + 837.78dp + 840.00dp + 842.22dp + 844.44dp + 846.67dp + 848.89dp + 851.11dp + 853.33dp + 855.56dp + 857.78dp + 860.00dp + 862.22dp + 864.44dp + 866.67dp + 868.89dp + 871.11dp + 873.33dp + 875.56dp + 877.78dp + 880.00dp + 882.22dp + 884.44dp + 886.67dp + 888.89dp + + -2.22dp + -4.44dp + -6.67dp + -8.89dp + -11.11dp + -13.33dp + -15.56dp + -17.78dp + -20.00dp + -22.22dp + -24.44dp + -26.67dp + -28.89dp + -31.11dp + -33.33dp + -35.56dp + -37.78dp + -40.00dp + -42.22dp + -44.44dp + -46.67dp + -48.89dp + -51.11dp + -53.33dp + -55.56dp + -57.78dp + -60.00dp + -62.22dp + -64.44dp + -66.67dp + -68.89dp + -71.11dp + -73.33dp + -75.56dp + -77.78dp + -80.00dp + -82.22dp + -84.44dp + -86.67dp + -88.89dp + -91.11dp + -93.33dp + -95.56dp + -97.78dp + -100.00dp + -102.22dp + -104.44dp + -106.67dp + -108.89dp + -111.11dp + -113.33dp + -115.56dp + -117.78dp + -120.00dp + -122.22dp + -124.44dp + -126.67dp + -128.89dp + -131.11dp + -133.33dp + + 2.22sp + 4.44sp + 6.67sp + 8.89sp + 11.11sp + 13.33sp + 15.56sp + 17.78sp + 20.00sp + 22.22sp + 24.44sp + 26.67sp + 28.89sp + 31.11sp + 33.33sp + 35.56sp + 37.78sp + 40.00sp + 42.22sp + 44.44sp + 46.67sp + 48.89sp + 51.11sp + 53.33sp + 55.56sp + 57.78sp + 60.00sp + 62.22sp + 64.44sp + 66.67sp + 68.89sp + 71.11sp + 73.33sp + 75.56sp + 77.78sp + 80.00sp + 82.22sp + 84.44sp + 86.67sp + 88.89sp + 91.11sp + 93.33sp + 95.56sp + 97.78sp + 100.00sp + 102.22sp + 104.44sp + 106.67sp + 108.89sp + 111.11sp + 113.33sp + 115.56sp + 117.78sp + 120.00sp + 122.22sp + 124.44sp + 126.67sp + 128.89sp + 131.11sp + 133.33sp + diff --git a/app/src/main/res/values-sw960dp/auto_dimens.xml b/app/src/main/res/values-sw960dp/auto_dimens.xml new file mode 100644 index 0000000..9c817bb --- /dev/null +++ b/app/src/main/res/values-sw960dp/auto_dimens.xml @@ -0,0 +1,526 @@ + + + 0.00dp + 2.67dp + 5.33dp + 8.00dp + 10.67dp + 13.33dp + 16.00dp + 18.67dp + 21.33dp + 24.00dp + 26.67dp + 29.33dp + 32.00dp + 34.67dp + 37.33dp + 40.00dp + 42.67dp + 45.33dp + 48.00dp + 50.67dp + 53.33dp + 56.00dp + 58.67dp + 61.33dp + 64.00dp + 66.67dp + 69.33dp + 72.00dp + 74.67dp + 77.33dp + 80.00dp + 82.67dp + 85.33dp + 88.00dp + 90.67dp + 93.33dp + 96.00dp + 98.67dp + 101.33dp + 104.00dp + 106.67dp + 109.33dp + 112.00dp + 114.67dp + 117.33dp + 120.00dp + 122.67dp + 125.33dp + 128.00dp + 130.67dp + 133.33dp + 136.00dp + 138.67dp + 141.33dp + 144.00dp + 146.67dp + 149.33dp + 152.00dp + 154.67dp + 157.33dp + 160.00dp + 162.67dp + 165.33dp + 168.00dp + 170.67dp + 173.33dp + 176.00dp + 178.67dp + 181.33dp + 184.00dp + 186.67dp + 189.33dp + 192.00dp + 194.67dp + 197.33dp + 200.00dp + 202.67dp + 205.33dp + 208.00dp + 210.67dp + 213.33dp + 216.00dp + 218.67dp + 221.33dp + 224.00dp + 226.67dp + 229.33dp + 232.00dp + 234.67dp + 237.33dp + 240.00dp + 242.67dp + 245.33dp + 248.00dp + 250.67dp + 253.33dp + 256.00dp + 258.67dp + 261.33dp + 264.00dp + 266.67dp + 269.33dp + 272.00dp + 274.67dp + 277.33dp + 280.00dp + 282.67dp + 285.33dp + 288.00dp + 290.67dp + 293.33dp + 296.00dp + 298.67dp + 301.33dp + 304.00dp + 306.67dp + 309.33dp + 312.00dp + 314.67dp + 317.33dp + 320.00dp + 322.67dp + 325.33dp + 328.00dp + 330.67dp + 333.33dp + 336.00dp + 338.67dp + 341.33dp + 344.00dp + 346.67dp + 349.33dp + 352.00dp + 354.67dp + 357.33dp + 360.00dp + 362.67dp + 365.33dp + 368.00dp + 370.67dp + 373.33dp + 376.00dp + 378.67dp + 381.33dp + 384.00dp + 386.67dp + 389.33dp + 392.00dp + 394.67dp + 397.33dp + 400.00dp + 402.67dp + 405.33dp + 408.00dp + 410.67dp + 413.33dp + 416.00dp + 418.67dp + 421.33dp + 424.00dp + 426.67dp + 429.33dp + 432.00dp + 434.67dp + 437.33dp + 440.00dp + 442.67dp + 445.33dp + 448.00dp + 450.67dp + 453.33dp + 456.00dp + 458.67dp + 461.33dp + 464.00dp + 466.67dp + 469.33dp + 472.00dp + 474.67dp + 477.33dp + 480.00dp + 482.67dp + 485.33dp + 488.00dp + 490.67dp + 493.33dp + 496.00dp + 498.67dp + 501.33dp + 504.00dp + 506.67dp + 509.33dp + 512.00dp + 514.67dp + 517.33dp + 520.00dp + 522.67dp + 525.33dp + 528.00dp + 530.67dp + 533.33dp + 536.00dp + 538.67dp + 541.33dp + 544.00dp + 546.67dp + 549.33dp + 552.00dp + 554.67dp + 557.33dp + 560.00dp + 562.67dp + 565.33dp + 568.00dp + 570.67dp + 573.33dp + 576.00dp + 578.67dp + 581.33dp + 584.00dp + 586.67dp + 589.33dp + 592.00dp + 594.67dp + 597.33dp + 600.00dp + 602.67dp + 605.33dp + 608.00dp + 610.67dp + 613.33dp + 616.00dp + 618.67dp + 621.33dp + 624.00dp + 626.67dp + 629.33dp + 632.00dp + 634.67dp + 637.33dp + 640.00dp + 642.67dp + 645.33dp + 648.00dp + 650.67dp + 653.33dp + 656.00dp + 658.67dp + 661.33dp + 664.00dp + 666.67dp + 669.33dp + 672.00dp + 674.67dp + 677.33dp + 680.00dp + 682.67dp + 685.33dp + 688.00dp + 690.67dp + 693.33dp + 696.00dp + 698.67dp + 701.33dp + 704.00dp + 706.67dp + 709.33dp + 712.00dp + 714.67dp + 717.33dp + 720.00dp + 722.67dp + 725.33dp + 728.00dp + 730.67dp + 733.33dp + 736.00dp + 738.67dp + 741.33dp + 744.00dp + 746.67dp + 749.33dp + 752.00dp + 754.67dp + 757.33dp + 760.00dp + 762.67dp + 765.33dp + 768.00dp + 770.67dp + 773.33dp + 776.00dp + 778.67dp + 781.33dp + 784.00dp + 786.67dp + 789.33dp + 792.00dp + 794.67dp + 797.33dp + 800.00dp + 802.67dp + 805.33dp + 808.00dp + 810.67dp + 813.33dp + 816.00dp + 818.67dp + 821.33dp + 824.00dp + 826.67dp + 829.33dp + 832.00dp + 834.67dp + 837.33dp + 840.00dp + 842.67dp + 845.33dp + 848.00dp + 850.67dp + 853.33dp + 856.00dp + 858.67dp + 861.33dp + 864.00dp + 866.67dp + 869.33dp + 872.00dp + 874.67dp + 877.33dp + 880.00dp + 882.67dp + 885.33dp + 888.00dp + 890.67dp + 893.33dp + 896.00dp + 898.67dp + 901.33dp + 904.00dp + 906.67dp + 909.33dp + 912.00dp + 914.67dp + 917.33dp + 920.00dp + 922.67dp + 925.33dp + 928.00dp + 930.67dp + 933.33dp + 936.00dp + 938.67dp + 941.33dp + 944.00dp + 946.67dp + 949.33dp + 952.00dp + 954.67dp + 957.33dp + 960.00dp + 962.67dp + 965.33dp + 968.00dp + 970.67dp + 973.33dp + 976.00dp + 978.67dp + 981.33dp + 984.00dp + 986.67dp + 989.33dp + 992.00dp + 994.67dp + 997.33dp + 1000.00dp + 1002.67dp + 1005.33dp + 1008.00dp + 1010.67dp + 1013.33dp + 1016.00dp + 1018.67dp + 1021.33dp + 1024.00dp + 1026.67dp + 1029.33dp + 1032.00dp + 1034.67dp + 1037.33dp + 1040.00dp + 1042.67dp + 1045.33dp + 1048.00dp + 1050.67dp + 1053.33dp + 1056.00dp + 1058.67dp + 1061.33dp + 1064.00dp + 1066.67dp + + -2.67dp + -5.33dp + -8.00dp + -10.67dp + -13.33dp + -16.00dp + -18.67dp + -21.33dp + -24.00dp + -26.67dp + -29.33dp + -32.00dp + -34.67dp + -37.33dp + -40.00dp + -42.67dp + -45.33dp + -48.00dp + -50.67dp + -53.33dp + -56.00dp + -58.67dp + -61.33dp + -64.00dp + -66.67dp + -69.33dp + -72.00dp + -74.67dp + -77.33dp + -80.00dp + -82.67dp + -85.33dp + -88.00dp + -90.67dp + -93.33dp + -96.00dp + -98.67dp + -101.33dp + -104.00dp + -106.67dp + -109.33dp + -112.00dp + -114.67dp + -117.33dp + -120.00dp + -122.67dp + -125.33dp + -128.00dp + -130.67dp + -133.33dp + -136.00dp + -138.67dp + -141.33dp + -144.00dp + -146.67dp + -149.33dp + -152.00dp + -154.67dp + -157.33dp + -160.00dp + + 2.67sp + 5.33sp + 8.00sp + 10.67sp + 13.33sp + 16.00sp + 18.67sp + 21.33sp + 24.00sp + 26.67sp + 29.33sp + 32.00sp + 34.67sp + 37.33sp + 40.00sp + 42.67sp + 45.33sp + 48.00sp + 50.67sp + 53.33sp + 56.00sp + 58.67sp + 61.33sp + 64.00sp + 66.67sp + 69.33sp + 72.00sp + 74.67sp + 77.33sp + 80.00sp + 82.67sp + 85.33sp + 88.00sp + 90.67sp + 93.33sp + 96.00sp + 98.67sp + 101.33sp + 104.00sp + 106.67sp + 109.33sp + 112.00sp + 114.67sp + 117.33sp + 120.00sp + 122.67sp + 125.33sp + 128.00sp + 130.67sp + 133.33sp + 136.00sp + 138.67sp + 141.33sp + 144.00sp + 146.67sp + 149.33sp + 152.00sp + 154.67sp + 157.33sp + 160.00sp + From bd4c313279d738b6e641ee36c965287dda88c33f Mon Sep 17 00:00:00 2001 From: daolq3012 Date: Wed, 16 Feb 2022 12:57:58 +0700 Subject: [PATCH 16/20] [Add] config multi flavor --- app/build.gradle.kts | 16 +++++++++++++++- buildSrc/src/main/kotlin/Config.kt | 2 ++ team-props/git-hooks/linux/pre-commit.sh | 2 +- team-props/git-hooks/mac/pre-commit.sh | 2 +- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 357f807..0232363 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -21,6 +21,21 @@ android { versionName = AppConfigs.version_name } + flavorDimensions("appVariant") + productFlavors { + create("dev") { + setDimension("appVariant") + applicationIdSuffix = ".dev" + resValue("string", "app_name", "Structure-Dev") + } + create("prd") { + setDimension("appVariant") + resValue("string", "app_name", "Structure") + versionCode = AppConfigs.version_code_release + versionName = AppConfigs.version_name_release + } + } + buildTypes { getByName("debug") { isTestCoverageEnabled = true @@ -139,7 +154,6 @@ project.afterEvaluate { } } - tasks { check { dependsOn("ktlintCheck") diff --git a/buildSrc/src/main/kotlin/Config.kt b/buildSrc/src/main/kotlin/Config.kt index 4f6fcf1..4af336a 100644 --- a/buildSrc/src/main/kotlin/Config.kt +++ b/buildSrc/src/main/kotlin/Config.kt @@ -29,6 +29,8 @@ object AppConfigs { const val target_sdk_version = 30 // improve later const val version_code = 1 const val version_name = "1.0" + const val version_code_release = 1 + const val version_name_release = "1.0" } object ClassPath { diff --git a/team-props/git-hooks/linux/pre-commit.sh b/team-props/git-hooks/linux/pre-commit.sh index b30dc42..d315212 100644 --- a/team-props/git-hooks/linux/pre-commit.sh +++ b/team-props/git-hooks/linux/pre-commit.sh @@ -32,7 +32,7 @@ else fi echo "Start running unit test" -./gradlew testDebugUnitTestCoverage --daemon +./gradlew testDevDebugUnitTestCoverage --daemon status3=$? if [[ "$status3" = 0 ]] ; then echo "*******************************************************" diff --git a/team-props/git-hooks/mac/pre-commit.sh b/team-props/git-hooks/mac/pre-commit.sh index 290cd25..72f68a5 100644 --- a/team-props/git-hooks/mac/pre-commit.sh +++ b/team-props/git-hooks/mac/pre-commit.sh @@ -32,7 +32,7 @@ else fi echo "Start running unit test" -./gradlew testDebugUnitTestCoverage --daemon +./gradlew testDevDebugUnitTestCoverage --daemon status3=$? if [[ "$status3" = 0 ]] ; then echo "*******************************************************" From a379d87e2624a5ef4695457ec94b160fe6f5533c Mon Sep 17 00:00:00 2001 From: daolq3012 Date: Wed, 16 Feb 2022 13:24:54 +0700 Subject: [PATCH 17/20] [Add] PR template --- .github/pull_request_template.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..d1df2e6 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,17 @@ +## Related Tickets +- [#Task xxxxx: Content](https://edu-redmine.sun-asterisk.vn/issues/xxxx) +## WHAT +- +## Evidence (Screenshot or Video) + +## Review Checklist + +Category | View Point | Description | Expected Reviewer Answer | Self review | Reviewer2 (name) +--- | --- | --- | --- | --- | --- +Conventions | Does the code follow Sun* coding style and coding conventions? | https://github.com/framgia/coding-standards/blob/master/eng/android/coding_convention_android_kotlin.md | YES |
  • - [ ] yes
  • |
  • - [ ] yes
  • +Redmine | Does the ticket follow Sun* Redmine working process? | https://github.com/framgia/Training-Guideline/blob/master/WorkingProcess/redmine/redmine.md| YES |
  • - [ ] yes
  • |
  • - [ ] yes
  • +Documentation | Is there any incomplete code? If so, should it be removed or flagged with a suitable marker like ‘TODO’? | | YES |
  • - [ ] yes
  • |
  • - [ ] yes
  • +## Notes (Optional) +*(Impacted Areas in Application(List features, api, models or services that this PR will affect))* + +*(Other notes)* From 20508d95f8f9669659e0d92b1bf0770c4f250e45 Mon Sep 17 00:00:00 2001 From: "le.quang.dao" Date: Mon, 17 Apr 2023 14:21:07 +0700 Subject: [PATCH 18/20] [Modify] update library to latest version --- .idea/gradle.xml | 1 - buildSrc/src/main/kotlin/Config.kt | 32 +- config/detekt/detekt.yml | 532 +++++++++++++---------- gradle/wrapper/gradle-wrapper.properties | 4 +- 4 files changed, 326 insertions(+), 243 deletions(-) diff --git a/.idea/gradle.xml b/.idea/gradle.xml index a794362..f1727aa 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -15,7 +15,6 @@ - diff --git a/buildSrc/src/main/kotlin/Config.kt b/buildSrc/src/main/kotlin/Config.kt index 4af336a..43f198a 100644 --- a/buildSrc/src/main/kotlin/Config.kt +++ b/buildSrc/src/main/kotlin/Config.kt @@ -1,32 +1,32 @@ object Versions { - const val gradlePlugin = "7.0.4" - const val kotlin = "1.6.10" + const val gradlePlugin = "7.4.2" + const val kotlin = "1.7.20" - const val coreKtx = "1.6.0" - const val appCompat = "1.3.1" - const val material = "1.4.0" - const val constraintLayout = "2.1.0" - const val coreSplashScreen = "1.0.0-beta01" + const val coreKtx = "1.9.0" + const val appCompat = "1.6.1" + const val material = "1.8.0" + const val constraintLayout = "2.1.4" + const val coreSplashScreen = "1.0.0" - const val lifecycle = "2.3.1" - const val navigation = "2.3.5" - const val koin = "3.1.2" + const val lifecycle = "2.5" + const val navigation = "2.5.3" + const val koin = "3.4.0" - const val jacoco = "0.8.7" + const val jacoco = "0.8.9" const val jUnit = "4.13.2" - const val mockk = "1.12.0" + const val mockk = "1.13.2" - const val ktlint = "0.36.0" - const val detekt = "1.9.1" + const val ktlint = "0.48.1" + const val detekt = "1.22.0" } object AppConfigs { const val application_id = "com.sun.structure_android" - const val compile_sdk_version = 31 + const val compile_sdk_version = 33 const val min_sdk_version = 23 - const val target_sdk_version = 30 // improve later + const val target_sdk_version = 33 // improve later const val version_code = 1 const val version_name = "1.0" const val version_code_release = 1 diff --git a/config/detekt/detekt.yml b/config/detekt/detekt.yml index 9c4a43e..2ac043d 100644 --- a/config/detekt/detekt.yml +++ b/config/detekt/detekt.yml @@ -1,14 +1,16 @@ build: - maxIssues: 10 + maxIssues: 0 excludeCorrectable: false weights: - # complexity: 2 - # LongParameterList: 1 - # style: 1 - # comments: 1 + # complexity: 2 + # LongParameterList: 1 + # style: 1 + # comments: 1 config: validation: true + warningsAsErrors: false + checkExhaustiveness: false # when writing own rules with new properties, exclude the property path e.g.: 'my_rule_set,.*>.*>[my_property]' excludes: '' @@ -16,47 +18,83 @@ processors: active: true exclude: - 'DetektProgressListener' + # - 'KtFileCountProcessor' + # - 'PackageCountProcessor' + # - 'ClassCountProcessor' # - 'FunctionCountProcessor' # - 'PropertyCountProcessor' - # - 'ClassCountProcessor' - # - 'PackageCountProcessor' - # - 'KtFileCountProcessor' + # - 'ProjectComplexityProcessor' + # - 'ProjectCognitiveComplexityProcessor' + # - 'ProjectLLOCProcessor' + # - 'ProjectCLOCProcessor' + # - 'ProjectLOCProcessor' + # - 'ProjectSLOCProcessor' + # - 'LicenseHeaderLoaderExtension' console-reports: active: true exclude: - - 'ProjectStatisticsReport' - - 'ComplexityReport' - - 'NotificationReport' - # - 'FindingsReport' - - 'FileBasedFindingsReport' + - 'ProjectStatisticsReport' + - 'ComplexityReport' + - 'NotificationReport' + - 'FindingsReport' + - 'FileBasedFindingsReport' + # - 'LiteFindingsReport' + +output-reports: + active: true + exclude: + # - 'TxtOutputReport' + # - 'XmlOutputReport' + # - 'HtmlOutputReport' + # - 'MdOutputReport' + # - 'SarifOutputReport' comments: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] AbsentOrWrongFileLicense: active: false licenseTemplateFile: 'license.template' + licenseTemplateIsRegex: false CommentOverPrivateFunction: active: false CommentOverPrivateProperty: active: false + DeprecatedBlockTag: + active: false EndOfSentenceFormat: active: false endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)' + KDocReferencesNonPublicProperty: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] + OutdatedDocumentation: + active: false + matchTypeParameters: true + matchDeclarationsOrder: true + allowParamOnConstructorProperties: false UndocumentedPublicClass: active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] searchInNestedClass: true searchInInnerClass: true searchInInnerObject: true searchInInnerInterface: true + searchInProtectedClass: false UndocumentedPublicFunction: active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] + searchProtectedFunction: false UndocumentedPublicProperty: active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] + searchProtectedProperty: false complexity: active: true + CognitiveComplexMethod: + active: false + threshold: 15 ComplexCondition: active: true threshold: 4 @@ -65,13 +103,23 @@ complexity: threshold: 10 includeStaticDeclarations: false includePrivateDeclarations: false - ComplexMethod: + ignoreOverloaded: false + CyclomaticComplexMethod: active: true threshold: 15 ignoreSingleWhenExpression: false ignoreSimpleWhenEntries: false ignoreNestingFunctions: false - nestingFunctions: [run, let, apply, with, also, use, forEach, isNotNull, ifNull] + nestingFunctions: + - 'also' + - 'apply' + - 'forEach' + - 'isNotNull' + - 'ifNull' + - 'let' + - 'run' + - 'use' + - 'with' LabeledExpression: active: false ignoredLabels: [] @@ -87,23 +135,38 @@ complexity: constructorThreshold: 7 ignoreDefaultParameters: false ignoreDataClasses: true - ignoreAnnotated: [] + ignoreAnnotatedParameter: [] MethodOverloading: active: false threshold: 6 + NamedArguments: + active: false + threshold: 3 + ignoreArgumentsMatchingNames: false NestedBlockDepth: active: true threshold: 4 + NestedScopeFunctions: + active: false + threshold: 1 + functions: + - 'kotlin.apply' + - 'kotlin.run' + - 'kotlin.with' + - 'kotlin.let' + - 'kotlin.also' + ReplaceSafeCallChainWithRun: + active: false StringLiteralDuplication: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] threshold: 3 ignoreAnnotation: true excludeStringsWithLessThan5Characters: true ignoreStringsRegex: '$^' TooManyFunctions: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] thresholdInFiles: 11 thresholdInClasses: 11 thresholdInInterfaces: 11 @@ -117,8 +180,20 @@ coroutines: active: true GlobalCoroutineUsage: active: false + InjectDispatcher: + active: true + dispatcherNames: + - 'IO' + - 'Default' + - 'Unconfined' RedundantSuspendModifier: + active: true + SleepInsteadOfDelay: + active: true + SuspendFunWithCoroutineScopeReceiver: active: false + SuspendFunWithFlowReturnType: + active: true empty-blocks: active: true @@ -158,281 +233,222 @@ empty-blocks: exceptions: active: true ExceptionRaisedInUnexpectedLocation: - active: false - methodNames: [toString, hashCode, equals, finalize] + active: true + methodNames: + - 'equals' + - 'finalize' + - 'hashCode' + - 'toString' InstanceOfCheckForException: - active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] NotImplementedDeclaration: active: false - PrintStackTrace: + ObjectExtendsThrowable: active: false + PrintStackTrace: + active: true RethrowCaughtException: - active: false + active: true ReturnFromFinally: - active: false + active: true ignoreLabeled: false SwallowedException: - active: false + active: true ignoredExceptionTypes: - - InterruptedException - - NumberFormatException - - ParseException - - MalformedURLException + - 'InterruptedException' + - 'MalformedURLException' + - 'NumberFormatException' + - 'ParseException' allowedExceptionNameRegex: '_|(ignore|expected).*' ThrowingExceptionFromFinally: - active: false + active: true ThrowingExceptionInMain: active: false ThrowingExceptionsWithoutMessageOrCause: - active: false + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] exceptions: - - IllegalArgumentException - - IllegalStateException - - IOException + - 'ArrayIndexOutOfBoundsException' + - 'Exception' + - 'IllegalArgumentException' + - 'IllegalMonitorStateException' + - 'IllegalStateException' + - 'IndexOutOfBoundsException' + - 'NullPointerException' + - 'RuntimeException' + - 'Throwable' ThrowingNewInstanceOfSameException: - active: false + active: true TooGenericExceptionCaught: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] exceptionNames: - - ArrayIndexOutOfBoundsException - - Error - - Exception - - IllegalMonitorStateException - - NullPointerException - - IndexOutOfBoundsException - - RuntimeException - - Throwable + - 'ArrayIndexOutOfBoundsException' + - 'Error' + - 'Exception' + - 'IllegalMonitorStateException' + - 'IndexOutOfBoundsException' + - 'NullPointerException' + - 'RuntimeException' + - 'Throwable' allowedExceptionNameRegex: '_|(ignore|expected).*' TooGenericExceptionThrown: active: true exceptionNames: - - Error - - Exception - - Throwable - - RuntimeException - -formatting: - active: true - android: false - autoCorrect: true - AnnotationOnSeparateLine: - active: false - autoCorrect: true - ChainWrapping: - active: true - autoCorrect: true - CommentSpacing: - active: true - autoCorrect: true - EnumEntryNameCase: - active: false - autoCorrect: true - Filename: - active: true - FinalNewline: - active: true - autoCorrect: true - insertFinalNewLine: true - ImportOrdering: - active: false - autoCorrect: true - Indentation: - active: false - autoCorrect: true - indentSize: 4 - continuationIndentSize: 4 - MaximumLineLength: - active: true - maxLineLength: 120 - ModifierOrdering: - active: true - autoCorrect: true - MultiLineIfElse: - active: true - autoCorrect: true - NoBlankLineBeforeRbrace: - active: true - autoCorrect: true - NoConsecutiveBlankLines: - active: true - autoCorrect: true - NoEmptyClassBody: - active: true - autoCorrect: true - NoEmptyFirstLineInMethodBlock: - active: false - autoCorrect: true - NoLineBreakAfterElse: - active: true - autoCorrect: true - NoLineBreakBeforeAssignment: - active: true - autoCorrect: true - NoMultipleSpaces: - active: true - autoCorrect: true - NoSemicolons: - active: true - autoCorrect: true - NoTrailingSpaces: - active: true - autoCorrect: true - NoUnitReturn: - active: true - autoCorrect: true - NoUnusedImports: - active: true - autoCorrect: true - NoWildcardImports: - active: true - PackageName: - active: true - autoCorrect: true - ParameterListWrapping: - active: true - autoCorrect: true - indentSize: 4 - SpacingAroundColon: - active: true - autoCorrect: true - SpacingAroundComma: - active: true - autoCorrect: true - SpacingAroundCurly: - active: true - autoCorrect: true - SpacingAroundDot: - active: true - autoCorrect: true - SpacingAroundKeyword: - active: true - autoCorrect: true - SpacingAroundOperators: - active: true - autoCorrect: true - SpacingAroundParens: - active: true - autoCorrect: true - SpacingAroundRangeOperator: - active: true - autoCorrect: true - StringTemplate: - active: true - autoCorrect: true + - 'Error' + - 'Exception' + - 'RuntimeException' + - 'Throwable' naming: active: true + BooleanPropertyNaming: + active: false + allowedPattern: '^(is|has|are)' ClassNaming: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] classPattern: '[A-Z][a-zA-Z0-9]*' ConstructorParameterNaming: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] parameterPattern: '[a-z][A-Za-z0-9]*' privateParameterPattern: '[a-z][A-Za-z0-9]*' excludeClassPattern: '$^' - ignoreOverridden: true EnumNaming: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] enumEntryPattern: '[A-Z][_a-zA-Z0-9]*' ForbiddenClassName: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] forbiddenName: [] FunctionMaxLength: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] maximumFunctionNameLength: 30 FunctionMinLength: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] minimumFunctionNameLength: 3 FunctionNaming: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] - functionPattern: '([a-z][a-zA-Z0-9]*)|(`.*`)' + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] + functionPattern: '[a-z][a-zA-Z0-9]*' excludeClassPattern: '$^' - ignoreOverridden: true FunctionParameterNaming: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] parameterPattern: '[a-z][A-Za-z0-9]*' excludeClassPattern: '$^' - ignoreOverridden: true InvalidPackageDeclaration: - active: false + active: true rootPackage: '' + requireRootInDeclaration: false + LambdaParameterNaming: + active: false + parameterPattern: '[a-z][A-Za-z0-9]*|_' MatchingDeclarationName: active: true mustBeFirst: true MemberNameEqualsClassName: active: true ignoreOverridden: true + NoNameShadowing: + active: true + NonBooleanPropertyPrefixedWithIs: + active: false ObjectPropertyNaming: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] constantPattern: '[A-Za-z][_A-Za-z0-9]*' propertyPattern: '[A-Za-z][_A-Za-z0-9]*' privatePropertyPattern: '(_)?[A-Za-z][_A-Za-z0-9]*' PackageNaming: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] packagePattern: '[a-z]+(\.[a-z][A-Za-z0-9]*)*' TopLevelPropertyNaming: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] constantPattern: '[A-Z][_A-Z0-9]*' propertyPattern: '[A-Za-z][_A-Za-z0-9]*' privatePropertyPattern: '_?[A-Za-z][_A-Za-z0-9]*' VariableMaxLength: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] maximumVariableNameLength: 64 VariableMinLength: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] minimumVariableNameLength: 1 VariableNaming: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] variablePattern: '[a-z][A-Za-z0-9]*' privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*' excludeClassPattern: '$^' - ignoreOverridden: true performance: active: true ArrayPrimitive: active: true + CouldBeSequence: + active: false + threshold: 3 ForEachOnRange: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] SpreadOperator: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] + UnnecessaryPartOfBinaryExpression: + active: false UnnecessaryTemporaryInstantiation: active: true potential-bugs: active: true + AvoidReferentialEquality: + active: true + forbiddenTypePatterns: + - 'kotlin.String' + CastToNullableType: + active: false Deprecation: active: false - DuplicateCaseInWhenExpression: + DontDowncastCollectionTypes: + active: false + DoubleMutabilityForCollection: active: true + mutableTypes: + - 'kotlin.collections.MutableList' + - 'kotlin.collections.MutableMap' + - 'kotlin.collections.MutableSet' + - 'java.util.ArrayList' + - 'java.util.LinkedHashSet' + - 'java.util.HashSet' + - 'java.util.LinkedHashMap' + - 'java.util.HashMap' EqualsAlwaysReturnsTrueOrFalse: active: true EqualsWithHashCodeExist: active: true + ExitOutsideMain: + active: false ExplicitGarbageCollectionCall: active: true HasPlatformType: - active: false + active: true + IgnoredReturnValue: + active: true + restrictToConfig: true + returnValueAnnotations: + - 'CheckResult' + - '*.CheckResult' + - 'CheckReturnValue' + - '*.CheckReturnValue' + ignoreReturnValueAnnotations: + - 'CanIgnoreReturnValue' + - '*.CanIgnoreReturnValue' + returnValueTypes: + - 'kotlin.sequences.Sequence' + - 'kotlinx.coroutines.flow.*Flow' + - 'java.util.stream.*Stream' + ignoreFunctionCall: [] ImplicitDefaultLocale: + active: true + ImplicitUnitReturnType: active: false + allowExplicitReturnType: true InvalidRange: active: true IteratorHasNextCallsNextMethod: @@ -441,41 +457,59 @@ potential-bugs: active: true LateinitUsage: active: false - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] - excludeAnnotatedProperties: [] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] ignoreOnClassesPattern: '' MapGetWithNotNullAssertionOperator: - active: false - MissingWhenCase: - active: true - RedundantElseInWhen: active: true + MissingPackageDeclaration: + active: false + excludes: ['**/*.kts'] + NullCheckOnMutableProperty: + active: false + NullableToStringCall: + active: false UnconditionalJumpStatementInLoop: active: false - UnnecessaryNotNullOperator: + UnnecessaryNotNullCheck: active: false + UnnecessaryNotNullOperator: + active: true UnnecessarySafeCall: - active: false + active: true + UnreachableCatchBlock: + active: true UnreachableCode: active: true UnsafeCallOnNullableType: active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] UnsafeCast: - active: false + active: true + UnusedUnaryOperator: + active: true UselessPostfixExpression: - active: false + active: true WrongEqualsTypeParameter: active: true style: active: true - CollapsibleIfStatements: + AlsoCouldBeApply: + active: false + CanBeNonNullable: active: false - DataClassContainsFunctions: + CascadingCallWrapping: + active: false + includeElvis: true + ClassOrdering: + active: false + CollapsibleIfStatements: active: false - conversionFunctionPrefix: 'to' DataClassShouldBeImmutable: active: false + DestructuringDeclarationWithTooManyEntries: + active: true + maxDestructuringEntries: 3 EqualsNullCall: active: true EqualsOnSignatureLine: @@ -483,42 +517,52 @@ style: ExplicitCollectionElementAccessMethod: active: false ExplicitItLambdaParameter: - active: false + active: true ExpressionBodySyntax: active: false includeLineWrapping: false ForbiddenComment: active: true - values: ['TODO:', 'FIXME:', 'STOPSHIP:'] + values: + - 'FIXME:' + - 'STOPSHIP:' + - 'TODO:' allowedPatterns: '' + customMessage: '' ForbiddenImport: active: false imports: [] forbiddenPatterns: '' ForbiddenMethodCall: active: false - methods: [] - ForbiddenPublicDataClass: + methods: + - reason: 'print does not allow you to configure the output stream. Use a logger instead.' + value: 'kotlin.io.print' + - reason: 'println does not allow you to configure the output stream. Use a logger instead.' + value: 'kotlin.io.println' + ForbiddenSuppress: active: false - ignorePackages: ['*.internal', '*.internal.*'] + rules: [] ForbiddenVoid: - active: false + active: true ignoreOverridden: false ignoreUsageInGenerics: false FunctionOnlyReturningConstant: active: true ignoreOverridableFunction: true - excludedFunctions: 'describeContents' - excludeAnnotatedFunction: ['dagger.Provides'] - LibraryCodeMustSpecifyReturnType: - active: true + ignoreActualFunction: true + excludedFunctions: [] LoopWithTooManyJumpStatements: active: true maxJumpCount: 1 MagicNumber: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] - ignoreNumbers: ['-1', '0', '1', '2'] + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/*.kts'] + ignoreNumbers: + - '-1' + - '0' + - '1' + - '2' ignoreHashCodeFunction: true ignorePropertyDeclaration: false ignoreLocalVariableDeclaration: false @@ -528,26 +572,38 @@ style: ignoreNamedArgument: true ignoreEnums: false ignoreRanges: false - MandatoryBracesIfStatements: - active: false + ignoreExtensionFunctions: true MandatoryBracesLoops: active: false + MaxChainedCallsOnSameLine: + active: false + maxChainedCalls: 5 MaxLineLength: active: true maxLineLength: 120 excludePackageStatements: true excludeImportStatements: true excludeCommentStatements: false + excludeRawStrings: true MayBeConst: active: true ModifierOrder: active: true - NestedClassesVisibility: + MultilineLambdaItParameter: active: false + MultilineRawStringIndentation: + active: false + indentSize: 4 + NestedClassesVisibility: + active: true NewLineAtEndOfFile: active: true NoTabs: active: false + NullableBooleanCheck: + active: false + ObjectLiteralToLambda: + active: true OptionalAbstractKeyword: active: true OptionalUnit: @@ -560,42 +616,55 @@ style: active: true RedundantExplicitType: active: false + RedundantHigherOrderMapUsage: + active: true RedundantVisibilityModifierRule: active: false ReturnCount: active: true max: 2 - excludedFunctions: 'equals' + excludedFunctions: + - 'equals' excludeLabeled: false excludeReturnFromLambda: true excludeGuardClauses: false SafeCast: active: true SerialVersionUIDInSerializableClass: - active: false + active: true SpacingBetweenPackageAndImports: active: false ThrowsCount: active: true max: 2 + excludeGuardClauses: false TrailingWhitespace: active: false + TrimMultilineRawString: + active: false UnderscoresInNumericLiterals: active: false - acceptableDecimalLength: 5 + acceptableLength: 4 + allowNonStandardGrouping: false UnnecessaryAbstractClass: active: true - excludeAnnotatedClasses: ['dagger.Module'] UnnecessaryAnnotationUseSiteTarget: active: false UnnecessaryApply: + active: true + UnnecessaryBackticks: active: false + UnnecessaryFilter: + active: true UnnecessaryInheritance: active: true + UnnecessaryInnerClass: + active: false UnnecessaryLet: active: false UnnecessaryParentheses: active: false + allowForUnclearPrecedence: false UntilInsteadOfRangeTo: active: false UnusedImports: @@ -603,27 +672,42 @@ style: UnusedPrivateClass: active: true UnusedPrivateMember: - active: false - allowedNames: '(_|ignored|expected|serialVersionUID)' + active: true + allowedNames: '' + UseAnyOrNoneInsteadOfFind: + active: true UseArrayLiteralsInAnnotations: - active: false + active: true + UseCheckNotNull: + active: true UseCheckOrError: - active: false + active: true UseDataClass: active: false - excludeAnnotatedClasses: [] allowVars: false - UseIfInsteadOfWhen: + UseEmptyCounterpart: + active: false + UseIfEmptyOrIfBlank: active: false + UseIsNullOrEmpty: + active: true + UseOrEmpty: + active: true UseRequire: + active: true + UseRequireNotNull: + active: true + UseSumOfInsteadOfFlatMapSize: active: false UselessCallOnNotNull: active: true UtilityClassWithPublicConstructor: active: true VarCouldBeVal: - active: false + active: true + ignoreLateinitVar: false WildcardImport: active: true - excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] - excludeImports: ['java.util.*', 'kotlinx.android.synthetic.*'] + excludeImports: + - 'java.util.*' + - \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d50249a..aa9073a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Feb 08 12:59:44 ICT 2022 +#Mon Apr 17 11:19:20 ICT 2023 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME From 8149d830b03883f583231f69fe7e2bfbbe59501a Mon Sep 17 00:00:00 2001 From: "le.quang.dao" Date: Mon, 17 Apr 2023 14:24:43 +0700 Subject: [PATCH 19/20] [Modify] update .gitignore --- .editorconfig | 2 +- .gitignore | 7 +- .idea/.gitignore | 3 - .idea/compiler.xml | 6 - .idea/gradle.xml | 21 - .idea/jarRepositories.xml | 40 -- .idea/misc.xml | 1 + .idea/vcs.xml | 6 - app/build.gradle | 48 -- app/build.gradle.kts | 31 +- .../com/sun/mvp/ExampleInstrumentedTest.kt | 6 +- .../main/java/com/sun/mvp/data/model/Movie.kt | 18 +- .../mvp/data/repository/MovieRepository.kt | 7 +- .../source/local/MovieLocalDataSource.kt | 4 +- .../source/remote/fetchjson/GetJsonFromUrl.kt | 13 +- .../remote/fetchjson/ParseDataWithJson.kt | 7 +- .../java/com/sun/mvp/screen/MainActivity.kt | 3 - .../sun/mvp/screen/detail/DetailFragment.kt | 41 +- .../mvp/screen/listmovie/MoviesFragment.kt | 17 +- .../mvp/screen/listmovie/MoviesPresenter.kt | 2 + .../screen/listmovie/adapter/MoviesAdapter.kt | 2 +- .../main/java/com/sun/mvp/utils/Constant.kt | 2 +- .../com/sun/mvp/utils/base/BaseActivity.kt | 2 - .../com/sun/mvp/utils/base/BaseFragment.kt | 28 +- app/src/main/res/values/dimens.xml | 532 +++++++++++++++++- app/src/main/res/values/strings.xml | 1 - .../test/java/com/sun/mvp/ExampleUnitTest.kt | 4 - build.gradle | 20 - buildSrc/src/main/kotlin/Config.kt | 9 +- config/detekt/detekt.yml | 2 +- 30 files changed, 634 insertions(+), 251 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/compiler.xml delete mode 100644 .idea/gradle.xml delete mode 100644 .idea/jarRepositories.xml delete mode 100644 .idea/vcs.xml delete mode 100644 app/build.gradle delete mode 100644 build.gradle diff --git a/.editorconfig b/.editorconfig index 7ae4b6e..127a6ed 100644 --- a/.editorconfig +++ b/.editorconfig @@ -2,4 +2,4 @@ indent_size=4 insert_final_newline=true max_line_length=120 -disabled_rules=no-wildcard-imports,experimental:annotation +ktlint_disabled_rules = no-wildcard-imports, import-ordering diff --git a/.gitignore b/.gitignore index aa724b7..10cfdbf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,7 @@ *.iml .gradle /local.properties -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml +/.idea .DS_Store /build /captures diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 26d3352..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index fb7f4a8..0000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index f1727aa..0000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml deleted file mode 100644 index cd8c1da..0000000 --- a/.idea/jarRepositories.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index b2dfecd..e348eb1 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -13,6 +13,7 @@ + diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle deleted file mode 100644 index 9c34c27..0000000 --- a/app/build.gradle +++ /dev/null @@ -1,48 +0,0 @@ -plugins { - id 'com.android.application' - id 'kotlin-android' - id 'kotlin-android-extensions' -} - -android { - compileSdk 31 - - defaultConfig { - applicationId "com.sun.structure_android" - minSdk 21 - targetSdk 31 - versionCode 1 - versionName "1.0" - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - buildConfigField "String", "API_KEY", "\"${API_KEY}\"" - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - kotlinOptions { - jvmTarget = '1.8' - } -} - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - implementation 'androidx.core:core-ktx:1.7.0' - implementation 'androidx.appcompat:appcompat:1.4.1' - implementation 'com.google.android.material:material:1.5.0' - implementation 'androidx.constraintlayout:constraintlayout:2.1.3' - implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation 'com.github.bumptech.glide:glide:4.13.0' - annotationProcessor 'com.github.bumptech.glide:compiler:4.13.0' - testImplementation 'junit:junit:4.+' - androidTestImplementation 'androidx.test.ext:junit:1.1.3' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' -} diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 0232363..c36cb5d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,6 +1,10 @@ +import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties + plugins { id(Plugins.android_application) kotlin(Plugins.kotlin_android) + kotlin(Plugins.kotlinApt) + id(Plugins.kotlinParcelize) id(Plugins.detekt).version(Versions.detekt) jacoco } @@ -19,6 +23,19 @@ android { targetSdk = AppConfigs.target_sdk_version versionCode = AppConfigs.version_code versionName = AppConfigs.version_name + + buildConfigField( + "String", "API_KEY", gradleLocalProperties(rootDir).getProperty("api_key") + ) + } + + buildFeatures { + viewBinding = true + } + + kapt { + generateStubs = true + useBuildCache = true } flavorDimensions("appVariant") @@ -43,8 +60,7 @@ android { getByName("release") { isMinifyEnabled = false proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" + getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } @@ -123,9 +139,7 @@ project.afterEvaluate { fileTree("build/tmp/kotlin-classes/$sourceName").exclude(excludeFiles) ) val coverageSourceDirs = arrayListOf( - "src/main/java", - "src/$productFlavorName/java", - "src/$buildTypeName/java" + "src/main/java", "src/$productFlavorName/java", "src/$buildTypeName/java" ) additionalSourceDirs.setFrom(files(coverageSourceDirs)) @@ -137,8 +151,7 @@ project.afterEvaluate { executionData.setFrom( fileTree( mapOf( - "dir" to layout.buildDirectory, - "includes" to listOf("**/*.exec") + "dir" to layout.buildDirectory, "includes" to listOf("**/*.exec") ) ) ) @@ -171,6 +184,10 @@ dependencies { implementation(Deps.material) implementation(Deps.constraint_layout) + // Glide + implementation(Deps.glide_runtime) + kapt(Deps.glide_compiler) + testImplementation(Deps.junit) testImplementation(Deps.mockk) } diff --git a/app/src/androidTest/java/com/sun/mvp/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/sun/mvp/ExampleInstrumentedTest.kt index 9de119e..b9889dc 100644 --- a/app/src/androidTest/java/com/sun/mvp/ExampleInstrumentedTest.kt +++ b/app/src/androidTest/java/com/sun/mvp/ExampleInstrumentedTest.kt @@ -1,13 +1,11 @@ package com.sun.mvp -import androidx.test.platform.app.InstrumentationRegistry import androidx.test.ext.junit.runners.AndroidJUnit4 - +import androidx.test.platform.app.InstrumentationRegistry +import org.junit.Assert.* import org.junit.Test import org.junit.runner.RunWith -import org.junit.Assert.* - /** * Instrumented test, which will execute on an Android device. * diff --git a/app/src/main/java/com/sun/mvp/data/model/Movie.kt b/app/src/main/java/com/sun/mvp/data/model/Movie.kt index 742af79..1a3b4da 100644 --- a/app/src/main/java/com/sun/mvp/data/model/Movie.kt +++ b/app/src/main/java/com/sun/mvp/data/model/Movie.kt @@ -1,16 +1,18 @@ package com.sun.mvp.data.model import android.os.Parcelable -import kotlinx.android.parcel.Parcelize +import kotlinx.parcelize.Parcelize @Parcelize -data class Movie(var backDropImage: String = "", - var overView: String = "", - var vote: Int = 0, - var voteCount: Int = 0, - var title: String = "", - var urlImage: String = "", - var originalTitle: String = "") : Parcelable +data class Movie( + var backDropImage: String = "", + var overView: String = "", + var vote: Int = 0, + var voteCount: Int = 0, + var title: String = "", + var urlImage: String = "", + var originalTitle: String = "" +) : Parcelable object MovieEntry { const val OVERVIEW = "overview" diff --git a/app/src/main/java/com/sun/mvp/data/repository/MovieRepository.kt b/app/src/main/java/com/sun/mvp/data/repository/MovieRepository.kt index b65bcf1..edbf40a 100644 --- a/app/src/main/java/com/sun/mvp/data/repository/MovieRepository.kt +++ b/app/src/main/java/com/sun/mvp/data/repository/MovieRepository.kt @@ -19,9 +19,8 @@ class MovieRepository private constructor( companion object { private var instance: MovieRepository? = null - fun getInstance(remote: MovieDataSource.Remote, local: MovieDataSource.Local) = - synchronized(this) { - instance ?: MovieRepository(remote, local).also { instance = it } - } + fun getInstance(remote: MovieDataSource.Remote, local: MovieDataSource.Local) = synchronized(this) { + instance ?: MovieRepository(remote, local).also { instance = it } + } } } diff --git a/app/src/main/java/com/sun/mvp/data/repository/source/local/MovieLocalDataSource.kt b/app/src/main/java/com/sun/mvp/data/repository/source/local/MovieLocalDataSource.kt index 9595d16..70db68f 100644 --- a/app/src/main/java/com/sun/mvp/data/repository/source/local/MovieLocalDataSource.kt +++ b/app/src/main/java/com/sun/mvp/data/repository/source/local/MovieLocalDataSource.kt @@ -4,7 +4,7 @@ import com.sun.mvp.data.model.Movie import com.sun.mvp.data.repository.source.MovieDataSource import com.sun.mvp.data.repository.source.remote.OnResultListener -class MovieLocalDataSource: MovieDataSource.Local { +class MovieLocalDataSource : MovieDataSource.Local { override fun getMoviesLocal(listener: OnResultListener>) { TODO("Not yet implemented") @@ -17,4 +17,4 @@ class MovieLocalDataSource: MovieDataSource.Local { instance ?: MovieLocalDataSource().also { instance = it } } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/sun/mvp/data/repository/source/remote/fetchjson/GetJsonFromUrl.kt b/app/src/main/java/com/sun/mvp/data/repository/source/remote/fetchjson/GetJsonFromUrl.kt index 062425c..0935853 100644 --- a/app/src/main/java/com/sun/mvp/data/repository/source/remote/fetchjson/GetJsonFromUrl.kt +++ b/app/src/main/java/com/sun/mvp/data/repository/source/remote/fetchjson/GetJsonFromUrl.kt @@ -21,7 +21,6 @@ class GetJsonFromUrl constructor( private val mExecutor: Executor = Executors.newSingleThreadExecutor() private val mHandler = Handler(Looper.getMainLooper()) - private var exception: Exception? = null private var data: T? = null init { @@ -31,19 +30,15 @@ class GetJsonFromUrl constructor( private fun callAPI() { mExecutor.execute { val responseJson = - getJsonFromUrl(urlString + Constant.BASE_API_KEY + Constant.BASE_LANGUAGE) + getJsonStringFromUrl(urlString + Constant.BASE_API_KEY + Constant.BASE_LANGUAGE) data = ParseDataWithJson().parseJsonToData(JSONObject(responseJson), keyEntity) as? T mHandler.post { - try { - data?.let { listener.onSuccess(it) } - } catch (e: Exception) { - listener.onError(exception) - } + data?.let { listener.onSuccess(it) } } } } - private fun getJsonFromUrl(urlString: String): String { + private fun getJsonStringFromUrl(urlString: String): String { val url = URL(urlString) val httpURLConnection = url.openConnection() as? HttpURLConnection httpURLConnection?.run { @@ -70,5 +65,3 @@ class GetJsonFromUrl constructor( private const val METHOD_GET = "GET" } } - - diff --git a/app/src/main/java/com/sun/mvp/data/repository/source/remote/fetchjson/ParseDataWithJson.kt b/app/src/main/java/com/sun/mvp/data/repository/source/remote/fetchjson/ParseDataWithJson.kt index 97c9b9c..25ac5de 100644 --- a/app/src/main/java/com/sun/mvp/data/repository/source/remote/fetchjson/ParseDataWithJson.kt +++ b/app/src/main/java/com/sun/mvp/data/repository/source/remote/fetchjson/ParseDataWithJson.kt @@ -1,5 +1,6 @@ package com.sun.mvp.data.repository.source.remote.fetchjson +import android.util.Log import com.sun.mvp.data.model.MovieEntry import com.sun.mvp.utils.ext.notNull import org.json.JSONException @@ -17,7 +18,7 @@ class ParseDataWithJson { } } } catch (e: JSONException) { - e.printStackTrace() + Log.e("ParseDataWithJson", "parseJsonToData: ", e) } return data } @@ -25,13 +26,13 @@ class ParseDataWithJson { private fun parseJsonToObject(jsonObject: JSONObject?, keyEntity: String): Any? { try { jsonObject?.notNull { - return when(keyEntity) { + return when (keyEntity) { MovieEntry.MOVIES -> ParseJson().movieParseJson(it) else -> null } } } catch (e: JSONException) { - e.printStackTrace() + Log.e("ParseDataWithJson", "parseJsonToData: ", e) } return null } diff --git a/app/src/main/java/com/sun/mvp/screen/MainActivity.kt b/app/src/main/java/com/sun/mvp/screen/MainActivity.kt index 39b0ddb..55ed14c 100644 --- a/app/src/main/java/com/sun/mvp/screen/MainActivity.kt +++ b/app/src/main/java/com/sun/mvp/screen/MainActivity.kt @@ -17,7 +17,4 @@ class MainActivity : BaseActivity() { .replace(R.id.layoutContainer, MoviesFragment.newInstance()) .commit() } - - override fun initData() { - } } diff --git a/app/src/main/java/com/sun/mvp/screen/detail/DetailFragment.kt b/app/src/main/java/com/sun/mvp/screen/detail/DetailFragment.kt index 2c40faf..421bd1b 100644 --- a/app/src/main/java/com/sun/mvp/screen/detail/DetailFragment.kt +++ b/app/src/main/java/com/sun/mvp/screen/detail/DetailFragment.kt @@ -1,31 +1,22 @@ package com.sun.mvp.screen.detail +import android.view.LayoutInflater import android.view.View import androidx.core.os.bundleOf -import com.sun.mvp.R import com.sun.mvp.data.model.Movie +import com.sun.mvp.databinding.FragmentDetailBinding import com.sun.mvp.utils.base.BaseFragment import com.sun.mvp.utils.ext.goBackFragment import com.sun.mvp.utils.ext.loadImageCircleWithUrl import com.sun.mvp.utils.ext.loadImageWithUrl import com.sun.mvp.utils.ext.notNull -import kotlinx.android.synthetic.main.fragment_detail.* -import kotlinx.android.synthetic.main.fragment_detail.imageMovie -import kotlinx.android.synthetic.main.fragment_detail.view.* -class DetailFragment : BaseFragment() { +class DetailFragment : BaseFragment() { private var mMovie: Movie? = null - override fun getLayoutResourceId() = R.layout.fragment_detail - - - override fun initView(view: View) { - view.buttonImageBack.setOnClickListener(object : View.OnClickListener { - override fun onClick(view: View?) { - goBackFragment() - } - }) + override fun inflateViewBinding(inflater: LayoutInflater): FragmentDetailBinding { + return FragmentDetailBinding.inflate(inflater) } override fun initData() { @@ -33,15 +24,25 @@ class DetailFragment : BaseFragment() { mMovie = getParcelable(ARGUMENT_MOVIE) } mMovie?.notNull { - imageBackDrop.loadImageWithUrl(it.backDropImage) - imageMovie.loadImageCircleWithUrl(it.urlImage) - textTitle.text = it.title - textDescription.text = it.overView - textRatting.text = it.vote.toString() - textTotalReview.text = it.voteCount.toString() + viewBinding.apply { + imageBackDrop.loadImageWithUrl(it.backDropImage) + imageMovie.loadImageCircleWithUrl(it.urlImage) + textTitle.text = it.title + textDescription.text = it.overView + textRatting.text = it.vote.toString() + textTotalReview.text = it.voteCount.toString() + } } } + override fun initView() { + viewBinding.buttonImageBack.setOnClickListener(object : View.OnClickListener { + override fun onClick(view: View?) { + goBackFragment() + } + }) + } + companion object { private const val ARGUMENT_MOVIE = "ARGUMENT_MOVIE" diff --git a/app/src/main/java/com/sun/mvp/screen/listmovie/MoviesFragment.kt b/app/src/main/java/com/sun/mvp/screen/listmovie/MoviesFragment.kt index a830896..0d3eb55 100644 --- a/app/src/main/java/com/sun/mvp/screen/listmovie/MoviesFragment.kt +++ b/app/src/main/java/com/sun/mvp/screen/listmovie/MoviesFragment.kt @@ -1,29 +1,34 @@ package com.sun.mvp.screen.listmovie -import android.view.View +import android.view.LayoutInflater import android.widget.Toast import com.sun.mvp.R import com.sun.mvp.data.model.Movie import com.sun.mvp.data.repository.MovieRepository import com.sun.mvp.data.repository.source.local.MovieLocalDataSource import com.sun.mvp.data.repository.source.remote.MovieRemoteDataSource +import com.sun.mvp.databinding.FragmentMoviesBinding import com.sun.mvp.screen.detail.DetailFragment import com.sun.mvp.screen.listmovie.adapter.MoviesAdapter import com.sun.mvp.utils.OnItemRecyclerViewClickListener import com.sun.mvp.utils.base.BaseFragment import com.sun.mvp.utils.ext.addFragment -import kotlinx.android.synthetic.main.fragment_movies.view.* import java.lang.Exception -class MoviesFragment : BaseFragment(), MoviesContract.View, OnItemRecyclerViewClickListener { +class MoviesFragment : + BaseFragment(), + MoviesContract.View, + OnItemRecyclerViewClickListener { private lateinit var mMoviesPresenter: MoviesPresenter private val mMovieAdapter: MoviesAdapter by lazy { MoviesAdapter() } - override fun getLayoutResourceId() = R.layout.fragment_movies + override fun inflateViewBinding(inflater: LayoutInflater): FragmentMoviesBinding { + return FragmentMoviesBinding.inflate(inflater) + } - override fun initView(view: View) { - view.recyclerViewMovie.apply { + override fun initView() { + viewBinding.recyclerViewMovie.apply { adapter = mMovieAdapter } mMovieAdapter.registerItemRecyclerViewClickListener(this) diff --git a/app/src/main/java/com/sun/mvp/screen/listmovie/MoviesPresenter.kt b/app/src/main/java/com/sun/mvp/screen/listmovie/MoviesPresenter.kt index b5e6daf..e92ee58 100644 --- a/app/src/main/java/com/sun/mvp/screen/listmovie/MoviesPresenter.kt +++ b/app/src/main/java/com/sun/mvp/screen/listmovie/MoviesPresenter.kt @@ -11,9 +11,11 @@ class MoviesPresenter internal constructor(private val movieRepository: MovieRep private var mView: MoviesContract.View? = null override fun onStart() { + // No-op } override fun onStop() { + // No-op } override fun setView(view: MoviesContract.View?) { diff --git a/app/src/main/java/com/sun/mvp/screen/listmovie/adapter/MoviesAdapter.kt b/app/src/main/java/com/sun/mvp/screen/listmovie/adapter/MoviesAdapter.kt index 1aa1fdd..4f78535 100644 --- a/app/src/main/java/com/sun/mvp/screen/listmovie/adapter/MoviesAdapter.kt +++ b/app/src/main/java/com/sun/mvp/screen/listmovie/adapter/MoviesAdapter.kt @@ -80,4 +80,4 @@ class MoviesAdapter : RecyclerView.Adapter() { listener?.onItemClick(movieData) } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/sun/mvp/utils/Constant.kt b/app/src/main/java/com/sun/mvp/utils/Constant.kt index 9f934d5..a711f2e 100644 --- a/app/src/main/java/com/sun/mvp/utils/Constant.kt +++ b/app/src/main/java/com/sun/mvp/utils/Constant.kt @@ -5,7 +5,7 @@ import com.sun.mvp.BuildConfig object Constant { const val BASE_URL = "https://api.themoviedb.org/3/movie/top_rated?" const val BASE_URL_IMAGE = "https://image.tmdb.org/t/p/w500" - const val BASE_API_KEY = "&api_key=" + BuildConfig.API_KEY + var BASE_API_KEY = "&api_key=" + BuildConfig.API_KEY const val BASE_LANGUAGE = "&language=en-US" const val BASE_PAGE = "page=1" } diff --git a/app/src/main/java/com/sun/mvp/utils/base/BaseActivity.kt b/app/src/main/java/com/sun/mvp/utils/base/BaseActivity.kt index 1b0aee8..663c8cf 100644 --- a/app/src/main/java/com/sun/mvp/utils/base/BaseActivity.kt +++ b/app/src/main/java/com/sun/mvp/utils/base/BaseActivity.kt @@ -8,10 +8,8 @@ abstract class BaseActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(getLayoutResourceId()) initView() - initData() } abstract fun getLayoutResourceId(): Int abstract fun initView() - abstract fun initData() } diff --git a/app/src/main/java/com/sun/mvp/utils/base/BaseFragment.kt b/app/src/main/java/com/sun/mvp/utils/base/BaseFragment.kt index 3fa4ca6..8ff8bb2 100644 --- a/app/src/main/java/com/sun/mvp/utils/base/BaseFragment.kt +++ b/app/src/main/java/com/sun/mvp/utils/base/BaseFragment.kt @@ -5,25 +5,27 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import androidx.viewbinding.ViewBinding -abstract class BaseFragment : Fragment() { +abstract class BaseFragment : Fragment() { - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - val view = inflater.inflate(getLayoutResourceId(), container, false) - initView(view) - return view.rootView + private lateinit var _viewBinding: viewBinding + protected val viewBinding get() = _viewBinding + + abstract fun inflateViewBinding(inflater: LayoutInflater): viewBinding + + abstract fun initData() + + abstract fun initView() + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + _viewBinding = inflateViewBinding(inflater) + initView() + return viewBinding.root } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) initData() } - - abstract fun getLayoutResourceId(): Int - abstract fun initView(view: View) - abstract fun initData() } diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index c2155f0..b929783 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -1,12 +1,526 @@ - 60dp - 3dp - 1dp - 17sp - 4dp - 8dp - 16dp - 18sp - 14sp + 0.00dp + 1.00dp + 2.00dp + 3.00dp + 4.00dp + 5.00dp + 6.00dp + 7.00dp + 8.00dp + 9.00dp + 10.00dp + 11.00dp + 12.00dp + 13.00dp + 14.00dp + 15.00dp + 16.00dp + 17.00dp + 18.00dp + 19.00dp + 20.00dp + 21.00dp + 22.00dp + 23.00dp + 24.00dp + 25.00dp + 26.00dp + 27.00dp + 28.00dp + 29.00dp + 30.00dp + 31.00dp + 32.00dp + 33.00dp + 34.00dp + 35.00dp + 36.00dp + 37.00dp + 38.00dp + 39.00dp + 40.00dp + 41.00dp + 42.00dp + 43.00dp + 44.00dp + 45.00dp + 46.00dp + 47.00dp + 48.00dp + 49.00dp + 50.00dp + 51.00dp + 52.00dp + 53.00dp + 54.00dp + 55.00dp + 56.00dp + 57.00dp + 58.00dp + 59.00dp + 60.00dp + 61.00dp + 62.00dp + 63.00dp + 64.00dp + 65.00dp + 66.00dp + 67.00dp + 68.00dp + 69.00dp + 70.00dp + 71.00dp + 72.00dp + 73.00dp + 74.00dp + 75.00dp + 76.00dp + 77.00dp + 78.00dp + 79.00dp + 80.00dp + 81.00dp + 82.00dp + 83.00dp + 84.00dp + 85.00dp + 86.00dp + 87.00dp + 88.00dp + 89.00dp + 90.00dp + 91.00dp + 92.00dp + 93.00dp + 94.00dp + 95.00dp + 96.00dp + 97.00dp + 98.00dp + 99.00dp + 100.00dp + 101.00dp + 102.00dp + 103.00dp + 104.00dp + 105.00dp + 106.00dp + 107.00dp + 108.00dp + 109.00dp + 110.00dp + 111.00dp + 112.00dp + 113.00dp + 114.00dp + 115.00dp + 116.00dp + 117.00dp + 118.00dp + 119.00dp + 120.00dp + 121.00dp + 122.00dp + 123.00dp + 124.00dp + 125.00dp + 126.00dp + 127.00dp + 128.00dp + 129.00dp + 130.00dp + 131.00dp + 132.00dp + 133.00dp + 134.00dp + 135.00dp + 136.00dp + 137.00dp + 138.00dp + 139.00dp + 140.00dp + 141.00dp + 142.00dp + 143.00dp + 144.00dp + 145.00dp + 146.00dp + 147.00dp + 148.00dp + 149.00dp + 150.00dp + 151.00dp + 152.00dp + 153.00dp + 154.00dp + 155.00dp + 156.00dp + 157.00dp + 158.00dp + 159.00dp + 160.00dp + 161.00dp + 162.00dp + 163.00dp + 164.00dp + 165.00dp + 166.00dp + 167.00dp + 168.00dp + 169.00dp + 170.00dp + 171.00dp + 172.00dp + 173.00dp + 174.00dp + 175.00dp + 176.00dp + 177.00dp + 178.00dp + 179.00dp + 180.00dp + 181.00dp + 182.00dp + 183.00dp + 184.00dp + 185.00dp + 186.00dp + 187.00dp + 188.00dp + 189.00dp + 190.00dp + 191.00dp + 192.00dp + 193.00dp + 194.00dp + 195.00dp + 196.00dp + 197.00dp + 198.00dp + 199.00dp + 200.00dp + 201.00dp + 202.00dp + 203.00dp + 204.00dp + 205.00dp + 206.00dp + 207.00dp + 208.00dp + 209.00dp + 210.00dp + 211.00dp + 212.00dp + 213.00dp + 214.00dp + 215.00dp + 216.00dp + 217.00dp + 218.00dp + 219.00dp + 220.00dp + 221.00dp + 222.00dp + 223.00dp + 224.00dp + 225.00dp + 226.00dp + 227.00dp + 228.00dp + 229.00dp + 230.00dp + 231.00dp + 232.00dp + 233.00dp + 234.00dp + 235.00dp + 236.00dp + 237.00dp + 238.00dp + 239.00dp + 240.00dp + 241.00dp + 242.00dp + 243.00dp + 244.00dp + 245.00dp + 246.00dp + 247.00dp + 248.00dp + 249.00dp + 250.00dp + 251.00dp + 252.00dp + 253.00dp + 254.00dp + 255.00dp + 256.00dp + 257.00dp + 258.00dp + 259.00dp + 260.00dp + 261.00dp + 262.00dp + 263.00dp + 264.00dp + 265.00dp + 266.00dp + 267.00dp + 268.00dp + 269.00dp + 270.00dp + 271.00dp + 272.00dp + 273.00dp + 274.00dp + 275.00dp + 276.00dp + 277.00dp + 278.00dp + 279.00dp + 280.00dp + 281.00dp + 282.00dp + 283.00dp + 284.00dp + 285.00dp + 286.00dp + 287.00dp + 288.00dp + 289.00dp + 290.00dp + 291.00dp + 292.00dp + 293.00dp + 294.00dp + 295.00dp + 296.00dp + 297.00dp + 298.00dp + 299.00dp + 300.00dp + 301.00dp + 302.00dp + 303.00dp + 304.00dp + 305.00dp + 306.00dp + 307.00dp + 308.00dp + 309.00dp + 310.00dp + 311.00dp + 312.00dp + 313.00dp + 314.00dp + 315.00dp + 316.00dp + 317.00dp + 318.00dp + 319.00dp + 320.00dp + 321.00dp + 322.00dp + 323.00dp + 324.00dp + 325.00dp + 326.00dp + 327.00dp + 328.00dp + 329.00dp + 330.00dp + 331.00dp + 332.00dp + 333.00dp + 334.00dp + 335.00dp + 336.00dp + 337.00dp + 338.00dp + 339.00dp + 340.00dp + 341.00dp + 342.00dp + 343.00dp + 344.00dp + 345.00dp + 346.00dp + 347.00dp + 348.00dp + 349.00dp + 350.00dp + 351.00dp + 352.00dp + 353.00dp + 354.00dp + 355.00dp + 356.00dp + 357.00dp + 358.00dp + 359.00dp + 360.00dp + 361.00dp + 362.00dp + 363.00dp + 364.00dp + 365.00dp + 366.00dp + 367.00dp + 368.00dp + 369.00dp + 370.00dp + 371.00dp + 372.00dp + 373.00dp + 374.00dp + 375.00dp + 376.00dp + 377.00dp + 378.00dp + 379.00dp + 380.00dp + 381.00dp + 382.00dp + 383.00dp + 384.00dp + 385.00dp + 386.00dp + 387.00dp + 388.00dp + 389.00dp + 390.00dp + 391.00dp + 392.00dp + 393.00dp + 394.00dp + 395.00dp + 396.00dp + 397.00dp + 398.00dp + 399.00dp + 400.00dp + + -1.00dp + -2.00dp + -3.00dp + -4.00dp + -5.00dp + -6.00dp + -7.00dp + -8.00dp + -9.00dp + -10.00dp + -11.00dp + -12.00dp + -13.00dp + -14.00dp + -15.00dp + -16.00dp + -17.00dp + -18.00dp + -19.00dp + -20.00dp + -21.00dp + -22.00dp + -23.00dp + -24.00dp + -25.00dp + -26.00dp + -27.00dp + -28.00dp + -29.00dp + -30.00dp + -31.00dp + -32.00dp + -33.00dp + -34.00dp + -35.00dp + -36.00dp + -37.00dp + -38.00dp + -39.00dp + -40.00dp + -41.00dp + -42.00dp + -43.00dp + -44.00dp + -45.00dp + -46.00dp + -47.00dp + -48.00dp + -49.00dp + -50.00dp + -51.00dp + -52.00dp + -53.00dp + -54.00dp + -55.00dp + -56.00dp + -57.00dp + -58.00dp + -59.00dp + -60.00dp + + 1.00sp + 2.00sp + 3.00sp + 4.00sp + 5.00sp + 6.00sp + 7.00sp + 8.00sp + 9.00sp + 10.00sp + 11.00sp + 12.00sp + 13.00sp + 14.00sp + 15.00sp + 16.00sp + 17.00sp + 18.00sp + 19.00sp + 20.00sp + 21.00sp + 22.00sp + 23.00sp + 24.00sp + 25.00sp + 26.00sp + 27.00sp + 28.00sp + 29.00sp + 30.00sp + 31.00sp + 32.00sp + 33.00sp + 34.00sp + 35.00sp + 36.00sp + 37.00sp + 38.00sp + 39.00sp + 40.00sp + 41.00sp + 42.00sp + 43.00sp + 44.00sp + 45.00sp + 46.00sp + 47.00sp + 48.00sp + 49.00sp + 50.00sp + 51.00sp + 52.00sp + 53.00sp + 54.00sp + 55.00sp + 56.00sp + 57.00sp + 58.00sp + 59.00sp + 60.00sp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 953d0ce..be81403 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,4 @@ - Structure_Android Ratting: Total reviews \ No newline at end of file diff --git a/app/src/test/java/com/sun/mvp/ExampleUnitTest.kt b/app/src/test/java/com/sun/mvp/ExampleUnitTest.kt index 00bbd55..921fcba 100644 --- a/app/src/test/java/com/sun/mvp/ExampleUnitTest.kt +++ b/app/src/test/java/com/sun/mvp/ExampleUnitTest.kt @@ -1,8 +1,4 @@ -<<<<<<<< HEAD:app/src/test/java/com/sun/mvp/ExampleUnitTest.kt package com.sun.mvp -======== -package com.sun.android ->>>>>>>> d05dca1 (Config detekt):app/src/test/java/com/sun/android/ExampleUnitTest.kt import org.junit.Assert.* import org.junit.Test diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 562a24e..0000000 --- a/build.gradle +++ /dev/null @@ -1,20 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. -buildscript { - ext.kotlin_version = '1.6.10' - - repositories { - google() - mavenCentral() - } - dependencies { - classpath "com.android.tools.build:gradle:7.0.4" - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files - } -} - -task clean(type: Delete) { - delete rootProject.buildDir -} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/Config.kt b/buildSrc/src/main/kotlin/Config.kt index 43f198a..df76c29 100644 --- a/buildSrc/src/main/kotlin/Config.kt +++ b/buildSrc/src/main/kotlin/Config.kt @@ -12,13 +12,14 @@ object Versions { const val lifecycle = "2.5" const val navigation = "2.5.3" + const val glide = "4.11.0" const val koin = "3.4.0" const val jacoco = "0.8.9" const val jUnit = "4.13.2" const val mockk = "1.13.2" - const val ktlint = "0.48.1" + const val ktlint = "0.47.0" const val detekt = "1.22.0" } @@ -41,7 +42,9 @@ object ClassPath { object Plugins { const val android_application = "com.android.application" const val kotlin_android = "android" + const val kotlinApt = "kapt" const val detekt = "io.gitlab.arturbosch.detekt" + const val kotlinParcelize = "kotlin-parcelize" } object Deps { @@ -61,6 +64,10 @@ object Deps { const val navigation_fragment_ktx = "androidx.navigation:navigation-fragment-ktx:${Versions.navigation}" const val navigation_ui_ktx = "androidx.navigation:navigation-ui-ktx:${Versions.navigation}" + // Glide + const val glide_runtime = "com.github.bumptech.glide:glide:${Versions.glide}" + const val glide_compiler = "com.github.bumptech.glide:compiler:${Versions.glide}" + // koin const val koin_core = "io.insert-koin:koin-core:${Versions.koin}" const val koin_android = "io.insert-koin:koin-android:${Versions.koin}" diff --git a/config/detekt/detekt.yml b/config/detekt/detekt.yml index 2ac043d..621fa68 100644 --- a/config/detekt/detekt.yml +++ b/config/detekt/detekt.yml @@ -710,4 +710,4 @@ style: active: true excludeImports: - 'java.util.*' - - \ No newline at end of file + - From 2fc773243c2631dd56f4f9daa832349904f4b0d8 Mon Sep 17 00:00:00 2001 From: Company Date: Fri, 26 Jan 2024 11:08:58 +0700 Subject: [PATCH 20/20] Fix broken layout --- app/src/main/res/layout/activity_main.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 3429a14..0e1491b 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,5 +1,5 @@ -