diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..127a6ed --- /dev/null +++ b/.editorconfig @@ -0,0 +1,5 @@ +[*.{kt,kts}] +indent_size=4 +insert_final_newline=true +max_line_length=120 +ktlint_disabled_rules = no-wildcard-imports, import-ordering 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)* 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 4e3844e..0000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 9422e84..e348eb1 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,19 @@ + + + + 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/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 b/app/build.gradle deleted file mode 100644 index 967f82a..0000000 --- a/app/build.gradle +++ /dev/null @@ -1,43 +0,0 @@ -plugins { - id 'com.android.application' - id 'kotlin-android' -} - -android { - compileSdk 30 - - defaultConfig { - applicationId "com.sun.structure_android" - minSdk 21 - targetSdk 30 - versionCode 1 - versionName "1.0" - - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - } - - 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 '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' - 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 diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 0000000..c36cb5d --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,193 @@ +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 +} + +buildscript { + apply(from = "ktlint.gradle.kts") + apply(from = "autodimension.gradle.kts") +} + +android { + compileSdk = AppConfigs.compile_sdk_version + + defaultConfig { + applicationId = AppConfigs.application_id + minSdk = AppConfigs.min_sdk_version + 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") + 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 + } + getByName("release") { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + kotlinOptions { + jvmTarget = "11" + } +} + +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 + } +} + +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) + } + } + } +} + +tasks { + check { + dependsOn("ktlintCheck") + dependsOn("ktlintFormat") + } + clean { + dependsOn("createDimen") + mustRunAfter("createDimen") + } +} + +dependencies { + implementation(Deps.core_ktx) + implementation(Deps.appcompat) + 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/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/proguard-rules.pro b/app/proguard-rules.pro index 481bb43..ff59496 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -1,6 +1,6 @@ # Add project specific ProGuard rules here. # You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. +# proguardFiles setting in build.gradle.kts. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html 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..b9889dc 100644 --- a/app/src/androidTest/java/com/sun/structure_android/ExampleInstrumentedTest.kt +++ b/app/src/androidTest/java/com/sun/mvp/ExampleInstrumentedTest.kt @@ -1,13 +1,11 @@ -package com.sun.structure_android +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. * @@ -21,4 +19,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..464a745 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,8 @@ + package="com.sun.mvp"> + + + android:name="com.sun.mvp.screen.MainActivity" + android:exported="true" + android:screenOrientation="portrait"> @@ -20,4 +23,4 @@ - \ No newline at end of file + 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 new file mode 100644 index 0000000..1a3b4da --- /dev/null +++ b/app/src/main/java/com/sun/mvp/data/model/Movie.kt @@ -0,0 +1,26 @@ +package com.sun.mvp.data.model + +import android.os.Parcelable +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 + +object MovieEntry { + const val OVERVIEW = "overview" + const val BACKDROP_IMAGE = "backdrop_path" + const val MOVIES = "results" + const val VOTE = "vote_average" + const val TITLE = "title" + const val VOTE_COUNT = "vote_count" + const val URL_IMAGE = "poster_path" + const val ORIGINAL_TITLE = "original_title" +} 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 new file mode 100644 index 0000000..edbf40a --- /dev/null +++ b/app/src/main/java/com/sun/mvp/data/repository/MovieRepository.kt @@ -0,0 +1,26 @@ +package com.sun.mvp.data.repository + +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 MovieRepository private constructor( + private val remote: MovieDataSource.Remote, + private val local: MovieDataSource.Local +) : MovieDataSource.Local, MovieDataSource.Remote { + override fun getMoviesLocal(listener: OnResultListener>) { + TODO("Not yet implemented") + } + + override fun getMovies(listener: OnResultListener>) { + remote.getMovies(listener) + } + + companion object { + private var instance: MovieRepository? = null + + 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/MovieDataSource.kt b/app/src/main/java/com/sun/mvp/data/repository/source/MovieDataSource.kt new file mode 100644 index 0000000..5490aa9 --- /dev/null +++ b/app/src/main/java/com/sun/mvp/data/repository/source/MovieDataSource.kt @@ -0,0 +1,20 @@ +package com.sun.mvp.data.repository.source + +import com.sun.mvp.data.model.Movie +import com.sun.mvp.data.repository.source.remote.OnResultListener + +interface MovieDataSource { + /** + * Local + */ + interface Local { + fun getMoviesLocal(listener: OnResultListener>) + } + + /** + * Remote + */ + interface Remote { + fun getMovies(listener: OnResultListener>) + } +} 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 new file mode 100644 index 0000000..70db68f --- /dev/null +++ b/app/src/main/java/com/sun/mvp/data/repository/source/local/MovieLocalDataSource.kt @@ -0,0 +1,20 @@ +package com.sun.mvp.data.repository.source.local + +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 { + + override fun getMoviesLocal(listener: OnResultListener>) { + TODO("Not yet implemented") + } + + companion object { + private var instance: MovieLocalDataSource? = null + + fun getInstance() = synchronized(this) { + instance ?: MovieLocalDataSource().also { instance = it } + } + } +} diff --git a/app/src/main/java/com/sun/mvp/data/repository/source/remote/MovieRemoteDataSource.kt b/app/src/main/java/com/sun/mvp/data/repository/source/remote/MovieRemoteDataSource.kt new file mode 100644 index 0000000..3fc4f8c --- /dev/null +++ b/app/src/main/java/com/sun/mvp/data/repository/source/remote/MovieRemoteDataSource.kt @@ -0,0 +1,25 @@ +package com.sun.mvp.data.repository.source.remote + +import com.sun.mvp.data.model.Movie +import com.sun.mvp.data.model.MovieEntry +import com.sun.mvp.data.repository.source.MovieDataSource +import com.sun.mvp.data.repository.source.remote.fetchjson.GetJsonFromUrl +import com.sun.mvp.utils.Constant + +class MovieRemoteDataSource : MovieDataSource.Remote { + override fun getMovies(listener: OnResultListener>) { + GetJsonFromUrl( + urlString = Constant.BASE_URL + Constant.BASE_PAGE, + keyEntity = MovieEntry.MOVIES, + listener = listener + ) + } + + companion object { + private var instance: MovieRemoteDataSource? = null + + fun getInstance() = synchronized(this) { + instance ?: MovieRemoteDataSource().also { instance = it } + } + } +} diff --git a/app/src/main/java/com/sun/mvp/data/repository/source/remote/OnResultListener.kt b/app/src/main/java/com/sun/mvp/data/repository/source/remote/OnResultListener.kt new file mode 100644 index 0000000..4d99dd2 --- /dev/null +++ b/app/src/main/java/com/sun/mvp/data/repository/source/remote/OnResultListener.kt @@ -0,0 +1,8 @@ +package com.sun.mvp.data.repository.source.remote + +import java.lang.Exception + +interface OnResultListener { + fun onSuccess(data: T) + fun onError(exception: Exception?) +} 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 new file mode 100644 index 0000000..0935853 --- /dev/null +++ b/app/src/main/java/com/sun/mvp/data/repository/source/remote/fetchjson/GetJsonFromUrl.kt @@ -0,0 +1,67 @@ +package com.sun.mvp.data.repository.source.remote.fetchjson + +import android.os.Handler +import android.os.Looper +import com.sun.mvp.data.repository.source.remote.OnResultListener +import com.sun.mvp.utils.Constant +import org.json.JSONObject +import java.io.BufferedReader +import java.io.InputStreamReader +import java.lang.StringBuilder +import java.net.HttpURLConnection +import java.net.URL +import java.util.concurrent.Executor +import java.util.concurrent.Executors + +class GetJsonFromUrl constructor( + private val urlString: String, + private val keyEntity: String, + private val listener: OnResultListener +) { + + private val mExecutor: Executor = Executors.newSingleThreadExecutor() + private val mHandler = Handler(Looper.getMainLooper()) + private var data: T? = null + + init { + callAPI() + } + + private fun callAPI() { + mExecutor.execute { + val responseJson = + getJsonStringFromUrl(urlString + Constant.BASE_API_KEY + Constant.BASE_LANGUAGE) + data = ParseDataWithJson().parseJsonToData(JSONObject(responseJson), keyEntity) as? T + mHandler.post { + data?.let { listener.onSuccess(it) } + } + } + } + + private fun getJsonStringFromUrl(urlString: String): String { + val url = URL(urlString) + val httpURLConnection = url.openConnection() as? HttpURLConnection + httpURLConnection?.run { + connectTimeout = TIME_OUT + readTimeout = TIME_OUT + requestMethod = METHOD_GET + doOutput = true + connect() + } + + val bufferedReader = BufferedReader(InputStreamReader(url.openStream())) + val stringBuilder = StringBuilder() + var line: String? + while (bufferedReader.readLine().also { line = it } != null) { + stringBuilder.append(line) + } + bufferedReader.close() + httpURLConnection?.disconnect() + return stringBuilder.toString() + } + + companion object { + private const val TIME_OUT = 15000 + 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 new file mode 100644 index 0000000..25ac5de --- /dev/null +++ b/app/src/main/java/com/sun/mvp/data/repository/source/remote/fetchjson/ParseDataWithJson.kt @@ -0,0 +1,39 @@ +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 +import org.json.JSONObject + +class ParseDataWithJson { + fun parseJsonToData(jsonObject: JSONObject?, keyEntity: String): Any { + val data = mutableListOf() + try { + val jsonArray = jsonObject?.getJSONArray(keyEntity) + for (i in 0 until (jsonArray?.length() ?: 0)) { + val item = parseJsonToObject(jsonArray?.getJSONObject(i), keyEntity) + item.notNull { + data.add(it) + } + } + } catch (e: JSONException) { + Log.e("ParseDataWithJson", "parseJsonToData: ", e) + } + return data + } + + private fun parseJsonToObject(jsonObject: JSONObject?, keyEntity: String): Any? { + try { + jsonObject?.notNull { + return when (keyEntity) { + MovieEntry.MOVIES -> ParseJson().movieParseJson(it) + else -> null + } + } + } catch (e: JSONException) { + Log.e("ParseDataWithJson", "parseJsonToData: ", e) + } + return null + } +} diff --git a/app/src/main/java/com/sun/mvp/data/repository/source/remote/fetchjson/ParseJson.kt b/app/src/main/java/com/sun/mvp/data/repository/source/remote/fetchjson/ParseJson.kt new file mode 100644 index 0000000..0172e61 --- /dev/null +++ b/app/src/main/java/com/sun/mvp/data/repository/source/remote/fetchjson/ParseJson.kt @@ -0,0 +1,20 @@ +package com.sun.mvp.data.repository.source.remote.fetchjson + +import com.sun.mvp.data.model.Movie +import com.sun.mvp.data.model.MovieEntry +import org.json.JSONObject + +class ParseJson { + + fun movieParseJson(jsonObject: JSONObject) = Movie().apply { + jsonObject.let { + vote = it.getInt(MovieEntry.VOTE) + title = it.getString(MovieEntry.TITLE) + urlImage = it.getString(MovieEntry.URL_IMAGE) + originalTitle = it.getString(MovieEntry.ORIGINAL_TITLE) + voteCount = it.getInt(MovieEntry.VOTE_COUNT) + backDropImage = it.getString(MovieEntry.BACKDROP_IMAGE) + overView = it.getString(MovieEntry.OVERVIEW) + } + } +} diff --git a/app/src/main/java/com/sun/mvp/screen/MainActivity.kt b/app/src/main/java/com/sun/mvp/screen/MainActivity.kt new file mode 100644 index 0000000..55ed14c --- /dev/null +++ b/app/src/main/java/com/sun/mvp/screen/MainActivity.kt @@ -0,0 +1,20 @@ +package com.sun.mvp.screen + +import com.sun.mvp.R +import com.sun.mvp.screen.listmovie.MoviesFragment +import com.sun.mvp.utils.base.BaseActivity + +class MainActivity : BaseActivity() { + + override fun getLayoutResourceId(): Int { + return R.layout.activity_main + } + + override fun initView() { + supportFragmentManager + .beginTransaction() + .addToBackStack(MoviesFragment::javaClass.name) + .replace(R.id.layoutContainer, MoviesFragment.newInstance()) + .commit() + } +} 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 new file mode 100644 index 0000000..421bd1b --- /dev/null +++ b/app/src/main/java/com/sun/mvp/screen/detail/DetailFragment.kt @@ -0,0 +1,53 @@ +package com.sun.mvp.screen.detail + +import android.view.LayoutInflater +import android.view.View +import androidx.core.os.bundleOf +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 + +class DetailFragment : BaseFragment() { + + private var mMovie: Movie? = null + + override fun inflateViewBinding(inflater: LayoutInflater): FragmentDetailBinding { + return FragmentDetailBinding.inflate(inflater) + } + + override fun initData() { + arguments?.run { + mMovie = getParcelable(ARGUMENT_MOVIE) + } + mMovie?.notNull { + 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" + + fun newInstance(movie: Movie?) = DetailFragment().apply { + arguments = bundleOf(ARGUMENT_MOVIE to movie) + } + } +} diff --git a/app/src/main/java/com/sun/mvp/screen/listmovie/MoviesContract.kt b/app/src/main/java/com/sun/mvp/screen/listmovie/MoviesContract.kt new file mode 100644 index 0000000..4cb4404 --- /dev/null +++ b/app/src/main/java/com/sun/mvp/screen/listmovie/MoviesContract.kt @@ -0,0 +1,22 @@ +package com.sun.mvp.screen.listmovie + +import com.sun.mvp.data.model.Movie +import com.sun.mvp.utils.base.BasePresenter +import java.lang.Exception + +class MoviesContract { + /** + * View + */ + interface View { + fun onGetMoviesSuccess(movies: MutableList) + fun onError(exception: Exception?) + } + + /** + * Presenter + */ + interface Presenter : BasePresenter { + fun getMovies() + } +} 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 new file mode 100644 index 0000000..0d3eb55 --- /dev/null +++ b/app/src/main/java/com/sun/mvp/screen/listmovie/MoviesFragment.kt @@ -0,0 +1,63 @@ +package com.sun.mvp.screen.listmovie + +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 java.lang.Exception + +class MoviesFragment : + BaseFragment(), + MoviesContract.View, + OnItemRecyclerViewClickListener { + + private lateinit var mMoviesPresenter: MoviesPresenter + private val mMovieAdapter: MoviesAdapter by lazy { MoviesAdapter() } + + override fun inflateViewBinding(inflater: LayoutInflater): FragmentMoviesBinding { + return FragmentMoviesBinding.inflate(inflater) + } + + override fun initView() { + viewBinding.recyclerViewMovie.apply { + adapter = mMovieAdapter + } + mMovieAdapter.registerItemRecyclerViewClickListener(this) + } + + override fun initData() { + mMoviesPresenter = MoviesPresenter( + MovieRepository.getInstance( + MovieRemoteDataSource.getInstance(), + MovieLocalDataSource.getInstance() + ) + ) + mMoviesPresenter.setView(this) + mMoviesPresenter.getMovies() + } + + override fun onGetMoviesSuccess(movies: MutableList) { + mMovieAdapter.updateData(movies) + } + + override fun onError(exception: Exception?) { + Toast.makeText(context, exception?.message, Toast.LENGTH_SHORT).show() + } + + override fun onItemClick(item: Movie?) { + addFragment(R.id.layoutContainer, DetailFragment.newInstance(item), true) + } + + companion object { + fun newInstance() = MoviesFragment() + } +} 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 new file mode 100644 index 0000000..e92ee58 --- /dev/null +++ b/app/src/main/java/com/sun/mvp/screen/listmovie/MoviesPresenter.kt @@ -0,0 +1,36 @@ +package com.sun.mvp.screen.listmovie + +import com.sun.mvp.data.model.Movie +import com.sun.mvp.data.repository.MovieRepository +import com.sun.mvp.data.repository.source.remote.OnResultListener +import java.lang.Exception + +class MoviesPresenter internal constructor(private val movieRepository: MovieRepository?) : + MoviesContract.Presenter { + + private var mView: MoviesContract.View? = null + + override fun onStart() { + // No-op + } + + override fun onStop() { + // No-op + } + + override fun setView(view: MoviesContract.View?) { + this.mView = view + } + + override fun getMovies() { + movieRepository?.getMovies(object : OnResultListener> { + override fun onSuccess(data: MutableList) { + mView?.onGetMoviesSuccess(data) + } + + override fun onError(exception: Exception?) { + mView?.onError(exception) + } + }) + } +} 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 new file mode 100644 index 0000000..4f78535 --- /dev/null +++ b/app/src/main/java/com/sun/mvp/screen/listmovie/adapter/MoviesAdapter.kt @@ -0,0 +1,83 @@ +package com.sun.mvp.screen.listmovie.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.sun.mvp.R +import com.sun.mvp.data.model.Movie +import com.sun.mvp.utils.OnItemRecyclerViewClickListener +import com.sun.mvp.utils.ext.loadImageCircleWithUrl +import com.sun.mvp.utils.ext.notNull + +class MoviesAdapter : RecyclerView.Adapter() { + + private val movies = mutableListOf() + private var onItemClickListener: OnItemRecyclerViewClickListener? = null + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val view = + LayoutInflater.from(parent.context).inflate(R.layout.item_layout_movie, parent, false) + return ViewHolder(view, onItemClickListener) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + holder.bindViewData(movies[position]) + } + + override fun getItemCount(): Int { + return movies.size + } + + fun registerItemRecyclerViewClickListener( + onItemRecyclerViewClickListener: OnItemRecyclerViewClickListener? + ) { + onItemClickListener = onItemRecyclerViewClickListener + } + + fun updateData(movies: MutableList?) { + movies.notNull { + this.movies.clear() + this.movies.addAll(it) + notifyDataSetChanged() + } + } + + class ViewHolder( + itemView: View, + private val itemClickListener: OnItemRecyclerViewClickListener? + ) : RecyclerView.ViewHolder(itemView), View.OnClickListener { + private var mTextViewTitle: TextView? = null + private var mTextViewRatting: TextView? = null + private var mTextViewContent: TextView? = null + private var mImageViewIconMovie: ImageView? = null + + private var movieData: Movie? = null + private var listener: OnItemRecyclerViewClickListener? = null + + init { + mTextViewTitle = itemView.findViewById(R.id.textViewTitle) + mTextViewRatting = itemView.findViewById(R.id.textViewRatting) + mTextViewContent = itemView.findViewById(R.id.textViewContent) + mImageViewIconMovie = itemView.findViewById(R.id.imageMovie) + itemView.setOnClickListener(this) + listener = itemClickListener + } + + fun bindViewData(movie: Movie) { + movie.let { + mTextViewTitle?.text = it.title + mTextViewRatting?.text = it.vote.toString() + mTextViewContent?.text = it.originalTitle + mImageViewIconMovie?.loadImageCircleWithUrl(it.urlImage) + movieData = it + } + } + + override fun onClick(view: View?) { + listener?.onItemClick(movieData) + } + } +} diff --git a/app/src/main/java/com/sun/mvp/utils/Constant.kt b/app/src/main/java/com/sun/mvp/utils/Constant.kt new file mode 100644 index 0000000..a711f2e --- /dev/null +++ b/app/src/main/java/com/sun/mvp/utils/Constant.kt @@ -0,0 +1,11 @@ +package com.sun.mvp.utils + +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" + 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/OnItemRecyclerViewClickListener.kt b/app/src/main/java/com/sun/mvp/utils/OnItemRecyclerViewClickListener.kt new file mode 100644 index 0000000..a9f9de5 --- /dev/null +++ b/app/src/main/java/com/sun/mvp/utils/OnItemRecyclerViewClickListener.kt @@ -0,0 +1,5 @@ +package com.sun.mvp.utils + +interface OnItemRecyclerViewClickListener { + fun onItemClick(item: T?) +} 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 new file mode 100644 index 0000000..663c8cf --- /dev/null +++ b/app/src/main/java/com/sun/mvp/utils/base/BaseActivity.kt @@ -0,0 +1,15 @@ +package com.sun.mvp.utils.base + +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity + +abstract class BaseActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(getLayoutResourceId()) + initView() + } + + abstract fun getLayoutResourceId(): Int + abstract fun initView() +} 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 new file mode 100644 index 0000000..8ff8bb2 --- /dev/null +++ b/app/src/main/java/com/sun/mvp/utils/base/BaseFragment.kt @@ -0,0 +1,31 @@ +package com.sun.mvp.utils.base + +import android.os.Bundle +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() { + + 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() + } +} diff --git a/app/src/main/java/com/sun/mvp/utils/base/BasePresenter.kt b/app/src/main/java/com/sun/mvp/utils/base/BasePresenter.kt new file mode 100644 index 0000000..ffadddd --- /dev/null +++ b/app/src/main/java/com/sun/mvp/utils/base/BasePresenter.kt @@ -0,0 +1,7 @@ +package com.sun.mvp.utils.base + +interface BasePresenter { + fun onStart() + fun onStop() + fun setView(view: T?) +} diff --git a/app/src/main/java/com/sun/mvp/utils/ext/AnyExt.kt b/app/src/main/java/com/sun/mvp/utils/ext/AnyExt.kt new file mode 100644 index 0000000..1f7f3b1 --- /dev/null +++ b/app/src/main/java/com/sun/mvp/utils/ext/AnyExt.kt @@ -0,0 +1,9 @@ +package com.sun.mvp.utils.ext + +inline fun T?.notNull(f: (it: T) -> Unit) { + if (this != null) f(this) +} + +inline fun T?.isNull(f: () -> Unit) { + if (this == null) f() +} diff --git a/app/src/main/java/com/sun/mvp/utils/ext/FragmentExt.kt b/app/src/main/java/com/sun/mvp/utils/ext/FragmentExt.kt new file mode 100644 index 0000000..bb2023a --- /dev/null +++ b/app/src/main/java/com/sun/mvp/utils/ext/FragmentExt.kt @@ -0,0 +1,54 @@ +package com.sun.mvp.utils.ext + +import androidx.annotation.IdRes +import androidx.fragment.app.Fragment +import com.sun.mvp.R + +fun Fragment.addFragment( + @IdRes containerId: Int, + fragment: Fragment, + addToBackStack: Boolean = false, + tag: String? = fragment::class.java.simpleName +) { + activity?.supportFragmentManager?.apply { + beginTransaction().apply { + if (addToBackStack) { + addToBackStack(tag) + } + setCustomAnimations( + R.anim.slide_in_right, + R.anim.slide_in_right, + R.anim.slide_out_right, + R.anim.slide_out_right + ) + add(containerId, fragment, tag) + }.commit() + } +} + +fun Fragment.replaceFragment( + @IdRes containerId: Int, + fragment: Fragment, + addToBackStack: Boolean, + tag: String? = fragment::class.java.simpleName +) { + activity?.supportFragmentManager?.apply { + beginTransaction().apply { + if (addToBackStack) { + addToBackStack(tag) + } + replace(containerId, fragment, tag) + }.commit() + } +} + +fun Fragment.goBackFragment(): Boolean { + activity?.supportFragmentManager?.notNull { + val isShowPreviousPage = it.backStackEntryCount > 0 + if (isShowPreviousPage) { + it.popBackStackImmediate() + } + return isShowPreviousPage + } + return false +} diff --git a/app/src/main/java/com/sun/mvp/utils/ext/ImageViewExt.kt b/app/src/main/java/com/sun/mvp/utils/ext/ImageViewExt.kt new file mode 100644 index 0000000..9d1952e --- /dev/null +++ b/app/src/main/java/com/sun/mvp/utils/ext/ImageViewExt.kt @@ -0,0 +1,18 @@ +package com.sun.mvp.utils.ext + +import android.widget.ImageView +import com.bumptech.glide.Glide +import com.sun.mvp.utils.Constant + +fun ImageView.loadImageCircleWithUrl(url: String) { + Glide.with(this) + .load(Constant.BASE_URL_IMAGE + url) + .circleCrop() + .into(this) +} + +fun ImageView.loadImageWithUrl(url: String) { + Glide.with(this) + .load(Constant.BASE_URL_IMAGE + url) + .into(this) +} diff --git a/app/src/main/java/com/sun/structure_android/MainActivity.kt b/app/src/main/java/com/sun/structure_android/MainActivity.kt deleted file mode 100644 index e708c5d..0000000 --- a/app/src/main/java/com/sun/structure_android/MainActivity.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.sun.structure_android - -import androidx.appcompat.app.AppCompatActivity -import android.os.Bundle - -class MainActivity : AppCompatActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_main) - } -} \ No newline at end of file diff --git a/app/src/main/res/anim/slide_in_right.xml b/app/src/main/res/anim/slide_in_right.xml new file mode 100644 index 0000000..294128c --- /dev/null +++ b/app/src/main/res/anim/slide_in_right.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/app/src/main/res/anim/slide_out_right.xml b/app/src/main/res/anim/slide_out_right.xml new file mode 100644 index 0000000..1ab787f --- /dev/null +++ b/app/src/main/res/anim/slide_out_right.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 0000000..3ddbf6b --- /dev/null +++ b/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/ic_corona.xml b/app/src/main/res/drawable/ic_corona.xml new file mode 100644 index 0000000..40627fe --- /dev/null +++ b/app/src/main/res/drawable/ic_corona.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_star.xml b/app/src/main/res/drawable/ic_star.xml new file mode 100644 index 0000000..d28d8a9 --- /dev/null +++ b/app/src/main/res/drawable/ic_star.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4fc2444..0e1491b 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,18 +1,7 @@ - - - - - \ No newline at end of file + tools:context=".screen.MainActivity"/> diff --git a/app/src/main/res/layout/fragment_detail.xml b/app/src/main/res/layout/fragment_detail.xml new file mode 100644 index 0000000..422d951 --- /dev/null +++ b/app/src/main/res/layout/fragment_detail.xml @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_movies.xml b/app/src/main/res/layout/fragment_movies.xml new file mode 100644 index 0000000..f6a3796 --- /dev/null +++ b/app/src/main/res/layout/fragment_movies.xml @@ -0,0 +1,16 @@ + + + + + + diff --git a/app/src/main/res/layout/item_layout_movie.xml b/app/src/main/res/layout/item_layout_movie.xml new file mode 100644 index 0000000..aa4fc76 --- /dev/null +++ b/app/src/main/res/layout/item_layout_movie.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + 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 + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index f8c6127..8eb1cb2 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,10 +1,14 @@ + #FF000000 + #FFFFFFFF #FFBB86FC #FF6200EE #FF3700B3 #FF03DAC5 #FF018786 - #FF000000 - #FFFFFFFF + #E64A19 + #D50000 + #5C6BC0 + #F5F5F5 \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000..b929783 --- /dev/null +++ b/app/src/main/res/values/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/strings.xml b/app/src/main/res/values/strings.xml index 005f230..be81403 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,4 @@ - - Structure_Android + + Ratting: + Total reviews \ 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..921fcba 100644 --- a/app/src/test/java/com/sun/structure_android/ExampleUnitTest.kt +++ b/app/src/test/java/com/sun/mvp/ExampleUnitTest.kt @@ -1,8 +1,7 @@ -package com.sun.structure_android - -import org.junit.Test +package com.sun.mvp import org.junit.Assert.* +import org.junit.Test /** * Example local unit test, which will execute on the development machine (host). @@ -14,4 +13,4 @@ class ExampleUnitTest { fun addition_isCorrect() { assertEquals(4, 2 + 2) } -} \ No newline at end of file +} diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 9988a75..0000000 --- a/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. -buildscript { - repositories { - google() - mavenCentral() - } - dependencies { - classpath "com.android.tools.build:gradle:7.0.4" - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10" - - // 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/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..1f8f99d --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,27 @@ +// 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() + } + dependencies { + classpath (ClassPath.gradle_build_tools) + classpath (ClassPath.kotlin_gradle_plugin) + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.build.gradle.kts files + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +tasks.register("clean", Delete::class) { + delete(rootProject.buildDir) +} diff --git a/buildSrc/.gitignore b/buildSrc/.gitignore new file mode 100644 index 0000000..91ea741 --- /dev/null +++ b/buildSrc/.gitignore @@ -0,0 +1,2 @@ +build +.gradle diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 0000000..181a987 --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,9 @@ +import org.gradle.kotlin.dsl.`kotlin-dsl` + +plugins { + `kotlin-dsl` +} + +repositories { + mavenCentral() +} diff --git a/buildSrc/src/main/kotlin/Config.kt b/buildSrc/src/main/kotlin/Config.kt new file mode 100644 index 0000000..df76c29 --- /dev/null +++ b/buildSrc/src/main/kotlin/Config.kt @@ -0,0 +1,82 @@ + +object Versions { + + const val gradlePlugin = "7.4.2" + const val kotlin = "1.7.20" + + 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.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.47.0" + const val detekt = "1.22.0" +} + +object AppConfigs { + const val application_id = "com.sun.structure_android" + const val compile_sdk_version = 33 + const val min_sdk_version = 23 + 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 + const val version_name_release = "1.0" +} + +object ClassPath { + const val gradle_build_tools = "com.android.tools.build:gradle:${Versions.gradlePlugin}" + const val kotlin_gradle_plugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}" +} + +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 { + const val core_ktx = "androidx.core:core-ktx:${Versions.coreKtx}" + const val appcompat = "androidx.appcompat:appcompat:${Versions.appCompat}" + const val material = "com.google.android.material:material:${Versions.material}" + const val constraint_layout = "androidx.constraintlayout:constraintlayout:${Versions.constraintLayout}" + + // Splash screen + const val splash_screen = "androidx.core:core-splashscreen:${Versions.coreSplashScreen}" + + // lifecycle + const val lifecycle_livedata_ktx = "androidx.lifecycle:lifecycle-livedata-ktx:${Versions.lifecycle}" + const val lifecycle_viewmodel_ktx = "androidx.lifecycle:lifecycle-viewmodel-ktx:${Versions.lifecycle}" + + // navigation + 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}" + const val koin_test = "io.insert-koin:koin-test:${Versions.koin}" + + // 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..621fa68 --- /dev/null +++ b/config/detekt/detekt.yml @@ -0,0 +1,713 @@ +build: + maxIssues: 0 + excludeCorrectable: false + weights: + # 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: '' + +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' + # - 'LiteFindingsReport' + +output-reports: + active: true + exclude: + # - 'TxtOutputReport' + # - 'XmlOutputReport' + # - 'HtmlOutputReport' + # - 'MdOutputReport' + # - 'SarifOutputReport' + +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<])|([.?!:]$)' + 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 + ComplexInterface: + active: false + threshold: 10 + includeStaticDeclarations: false + includePrivateDeclarations: false + ignoreOverloaded: false + CyclomaticComplexMethod: + 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 + LongParameterList: + active: true + functionThreshold: 6 + constructorThreshold: 7 + ignoreDefaultParameters: false + ignoreDataClasses: true + 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/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] + threshold: 3 + ignoreAnnotation: true + excludeStringsWithLessThan5Characters: true + ignoreStringsRegex: '$^' + TooManyFunctions: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] + thresholdInFiles: 11 + thresholdInClasses: 11 + thresholdInInterfaces: 11 + thresholdInObjects: 11 + thresholdInEnums: 11 + ignoreDeprecated: false + ignorePrivate: false + ignoreOverridden: false + +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 + 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: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/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/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] + exceptions: + - 'ArrayIndexOutOfBoundsException' + - 'Exception' + - 'IllegalArgumentException' + - 'IllegalMonitorStateException' + - 'IllegalStateException' + - 'IndexOutOfBoundsException' + - 'NullPointerException' + - 'RuntimeException' + - 'Throwable' + ThrowingNewInstanceOfSameException: + active: true + TooGenericExceptionCaught: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] + exceptionNames: + - 'ArrayIndexOutOfBoundsException' + - 'Error' + - 'Exception' + - 'IllegalMonitorStateException' + - 'IndexOutOfBoundsException' + - 'NullPointerException' + - 'RuntimeException' + - 'Throwable' + allowedExceptionNameRegex: '_|(ignore|expected).*' + TooGenericExceptionThrown: + active: true + exceptionNames: + - 'Error' + - 'Exception' + - 'RuntimeException' + - 'Throwable' + +naming: + active: true + BooleanPropertyNaming: + active: false + allowedPattern: '^(is|has|are)' + ClassNaming: + active: true + classPattern: '[A-Z][a-zA-Z0-9]*' + ConstructorParameterNaming: + active: true + parameterPattern: '[a-z][A-Za-z0-9]*' + privateParameterPattern: '[a-z][A-Za-z0-9]*' + excludeClassPattern: '$^' + EnumNaming: + active: true + enumEntryPattern: '[A-Z][_a-zA-Z0-9]*' + ForbiddenClassName: + active: false + forbiddenName: [] + FunctionMaxLength: + active: false + maximumFunctionNameLength: 30 + FunctionMinLength: + active: false + minimumFunctionNameLength: 3 + FunctionNaming: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] + functionPattern: '[a-z][a-zA-Z0-9]*' + excludeClassPattern: '$^' + FunctionParameterNaming: + active: true + parameterPattern: '[a-z][A-Za-z0-9]*' + excludeClassPattern: '$^' + InvalidPackageDeclaration: + 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 + 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 + packagePattern: '[a-z]+(\.[a-z][A-Za-z0-9]*)*' + TopLevelPropertyNaming: + active: true + 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 + maximumVariableNameLength: 64 + VariableMinLength: + active: false + minimumVariableNameLength: 1 + VariableNaming: + active: true + variablePattern: '[a-z][A-Za-z0-9]*' + privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*' + excludeClassPattern: '$^' + +performance: + active: true + ArrayPrimitive: + active: true + CouldBeSequence: + active: false + threshold: 3 + ForEachOnRange: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] + SpreadOperator: + active: true + 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 + 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: 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: + active: true + IteratorNotThrowingNoSuchElementException: + active: true + LateinitUsage: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] + ignoreOnClassesPattern: '' + MapGetWithNotNullAssertionOperator: + active: true + MissingPackageDeclaration: + active: false + excludes: ['**/*.kts'] + NullCheckOnMutableProperty: + active: false + NullableToStringCall: + active: false + UnconditionalJumpStatementInLoop: + active: false + UnnecessaryNotNullCheck: + active: false + UnnecessaryNotNullOperator: + active: true + UnnecessarySafeCall: + active: true + UnreachableCatchBlock: + active: true + UnreachableCode: + active: true + UnsafeCallOnNullableType: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**'] + UnsafeCast: + active: true + UnusedUnaryOperator: + active: true + UselessPostfixExpression: + active: true + WrongEqualsTypeParameter: + active: true + +style: + active: true + AlsoCouldBeApply: + active: false + CanBeNonNullable: + active: false + CascadingCallWrapping: + active: false + includeElvis: true + ClassOrdering: + active: false + CollapsibleIfStatements: + active: false + DataClassShouldBeImmutable: + active: false + DestructuringDeclarationWithTooManyEntries: + active: true + maxDestructuringEntries: 3 + EqualsNullCall: + active: true + EqualsOnSignatureLine: + active: false + ExplicitCollectionElementAccessMethod: + active: false + ExplicitItLambdaParameter: + active: true + ExpressionBodySyntax: + active: false + includeLineWrapping: false + ForbiddenComment: + active: true + values: + - 'FIXME:' + - 'STOPSHIP:' + - 'TODO:' + allowedPatterns: '' + customMessage: '' + ForbiddenImport: + active: false + imports: [] + forbiddenPatterns: '' + ForbiddenMethodCall: + active: false + 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 + rules: [] + ForbiddenVoid: + active: true + ignoreOverridden: false + ignoreUsageInGenerics: false + FunctionOnlyReturningConstant: + active: true + ignoreOverridableFunction: true + ignoreActualFunction: true + excludedFunctions: [] + LoopWithTooManyJumpStatements: + active: true + maxJumpCount: 1 + MagicNumber: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/androidUnitTest/**', '**/androidInstrumentedTest/**', '**/jsTest/**', '**/iosTest/**', '**/*.kts'] + 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 + 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 + 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: + active: false + OptionalWhenBraces: + active: false + PreferToOverPairSyntax: + active: false + ProtectedMemberInFinalClass: + active: true + RedundantExplicitType: + active: false + RedundantHigherOrderMapUsage: + active: true + 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 + TrimMultilineRawString: + active: false + UnderscoresInNumericLiterals: + active: false + acceptableLength: 4 + allowNonStandardGrouping: false + UnnecessaryAbstractClass: + active: true + 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: + active: false + UnusedPrivateClass: + active: true + UnusedPrivateMember: + active: true + allowedNames: '' + UseAnyOrNoneInsteadOfFind: + active: true + UseArrayLiteralsInAnnotations: + active: true + UseCheckNotNull: + active: true + UseCheckOrError: + active: true + UseDataClass: + active: false + allowVars: false + 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: true + ignoreLateinitVar: false + WildcardImport: + active: true + excludeImports: + - 'java.util.*' + - diff --git a/gradle.properties b/gradle.properties index 98bed16..b781b1f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,4 +18,5 @@ android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=true # Kotlin code style for this project: "official" or "obsolete": -kotlin.code.style=official \ No newline at end of file +kotlin.code.style=official +API_KEY=608dc3a0e4c39fe0b691a89554ec2b1f 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 diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index af468c6..0000000 --- a/settings.gradle +++ /dev/null @@ -1,10 +0,0 @@ -dependencyResolutionManagement { - repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) - repositories { - google() - mavenCentral() - jcenter() // Warning: this repository is going to shut down soon - } -} -rootProject.name = "Structure_Android" -include ':app' diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..208a440 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,2 @@ +rootProject.name = "Structure_Android" +include (":app") 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..d315212 --- /dev/null +++ b/team-props/git-hooks/linux/pre-commit.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash +echo "Running static analysis..." + +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 testDevDebugUnitTestCoverage --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..72f68a5 --- /dev/null +++ b/team-props/git-hooks/mac/pre-commit.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash +echo "Running static analysis..." + +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 testDevDebugUnitTestCoverage --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 .