Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/Ktlint update #906

Draft
wants to merge 3 commits into
base: development
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[*]
indent_size = 4
tab_width = 4
max_line_length = 120

[*.{kt,kts}]
disabled_rules=import-ordering,package-name,no-multi-spaces,final-newline
max_line_length=off
7 changes: 6 additions & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ apply from: '../code_quality_tools/jacoco.gradle'
//apply from: '../code_quality_tools/findbugs.gradle'
apply from: '../code_quality_tools/checkstyle.gradle'
apply from: '../code_quality_tools/pmd.gradle'
apply from: '../code_quality_tools/ktlint.gradle'

android {
compileSdkVersion versions.compileSdk
Expand Down Expand Up @@ -259,6 +258,12 @@ dependencies {

stageImplementation libraries.flipperNoop
releaseImplementation libraries.flipperNoop

ktlintRuleset libraries.ktlintRules
}

ktlint {
android = true
}

apply plugin: 'com.google.gms.google-services'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ constructor(
EndpointConfig.RELEASE ->
ENDPOINT_RELEASE_CONFIG
}
return context.assets.open("configs/${fileName}").use {
return context.assets.open("configs/$fileName").use {
gson.fromJson(InputStreamReader(it, Charset.defaultCharset()), EndpointInfo::class.java)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import androidx.fragment.app.Fragment
interface DebugMenu {
companion object {
const val TAG = "DebugFragment"
fun newInstance(): Fragment = DebugFragment.newInstance()
fun newInstance(): Fragment =
DebugFragment.newInstance()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@ package org.stepik.android.view.injection.debug
import dagger.Subcomponent
import org.stepik.android.view.debug.ui.fragment.DebugFragment

@Subcomponent(modules = [
DebugPresentationModule::class
])
@Subcomponent(
modules = [
DebugPresentationModule::class
]
)
interface DebugComponent {
@Subcomponent.Builder
interface Builder {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@ package org.stepik.android.view.injection.debug
import dagger.Subcomponent
import org.stepik.android.view.debug.ui.dialog.SplitTestsDialogFragment

@Subcomponent(modules = [
SplitTestsPresentationModule::class
])
@Subcomponent(
modules = [
SplitTestsPresentationModule::class
]
)
interface SplitTestsComponent {
@Subcomponent.Builder
interface Builder {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,29 +8,29 @@ import org.stepik.android.presentation.step_quiz.StepQuizFeature
object StepQuizFormResolver {
fun isQuizEnabled(state: StepQuizFeature.State.AttemptLoaded): Boolean =
state.submissionState is StepQuizFeature.SubmissionState.Empty ||
state.submissionState is StepQuizFeature.SubmissionState.Loaded &&
state.submissionState.submission.status == Submission.Status.LOCAL
state.submissionState is StepQuizFeature.SubmissionState.Loaded &&
state.submissionState.submission.status == Submission.Status.LOCAL

fun isQuizActionEnabled(state: StepQuizFeature.State.AttemptLoaded): Boolean =
isQuizEnabled(state) ||
isSubmissionInTerminalState(state) &&
with(state.restrictions) { maxSubmissionCount < 0 || maxSubmissionCount > submissionCount }
isSubmissionInTerminalState(state) &&
with(state.restrictions) { maxSubmissionCount < 0 || maxSubmissionCount > submissionCount }

fun canMoveToNextStep(step: Step, stepQuizLessonData: StepQuizLessonData, state: StepQuizFeature.State.AttemptLoaded): Boolean =
isQuizActionEnabled(state) &&
isCorrect((state.submissionState as? StepQuizFeature.SubmissionState.Loaded)?.submission?.status) &&
step.position < stepQuizLessonData.stepCount
isCorrect((state.submissionState as? StepQuizFeature.SubmissionState.Loaded)?.submission?.status) &&
step.position < stepQuizLessonData.stepCount

fun canOnlyRetry(step: Step, stepQuizLessonData: StepQuizLessonData, state: StepQuizFeature.State.AttemptLoaded): Boolean =
isSubmissionInTerminalState(state) &&
!canMoveToNextStep(step, stepQuizLessonData, state) &&
with(state.restrictions) { maxSubmissionCount < 0 || maxSubmissionCount > submissionCount }
!canMoveToNextStep(step, stepQuizLessonData, state) &&
with(state.restrictions) { maxSubmissionCount < 0 || maxSubmissionCount > submissionCount }

fun isSubmissionInTerminalState(state: StepQuizFeature.State.AttemptLoaded): Boolean =
state.submissionState is StepQuizFeature.SubmissionState.Loaded &&
state.submissionState.submission.status.let { it == Submission.Status.CORRECT || it == Submission.Status.PARTIALLY_CORRECT || it == Submission.Status.WRONG }
state.submissionState.submission.status.let { it == Submission.Status.CORRECT || it == Submission.Status.PARTIALLY_CORRECT || it == Submission.Status.WRONG }

private fun isCorrect(submissionStatus: Submission.Status?) =
submissionStatus == Submission.Status.PARTIALLY_CORRECT ||
submissionStatus == Submission.Status.CORRECT
submissionStatus == Submission.Status.CORRECT
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,16 @@ import androidx.sqlite.db.SupportSQLiteDatabase
import com.google.gson.Gson
import org.stepic.droid.storage.migration.MigrationFrom68To69
import org.stepic.droid.storage.structure.DbStructureCourse
import org.stepic.droid.util.*
import org.stepic.droid.util.DbParseHelper
import org.stepic.droid.util.getLong
import org.stepic.droid.util.getBoolean
import org.stepic.droid.util.getString
import org.stepic.droid.util.getDouble
import org.stepic.droid.util.getDate
import org.stepic.droid.util.toObject
import org.stepik.android.model.Course
import org.stepik.android.model.Video
import java.util.*
import java.util.Date

class MigrationWrapperFrom68To69(migration: MigrationFrom68To69) : MigrationWrapper(migration) {

Expand All @@ -26,8 +32,6 @@ class MigrationWrapperFrom68To69(migration: MigrationFrom68To69) : MigrationWrap
val cursor = db.query("SELECT * FROM ${DbStructureCourse.TABLE_NAME}")
cursor.moveToFirst()
val retrievedCourse = parsePersistentObject(cursor)
println("Before: $beforeCourse")
println("After: $retrievedCourse")
assert(beforeCourse == retrievedCourse) { "Objects not equal" }
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
package org.stepik.android.migration_wrapper

import org.stepic.droid.storage.migration.*
import org.stepic.droid.storage.migration.Migrations
import org.stepic.droid.storage.migration.MigrationFrom62To63
import org.stepic.droid.storage.migration.MigrationFrom63To64
import org.stepic.droid.storage.migration.MigrationFrom64To65
import org.stepic.droid.storage.migration.MigrationFrom65To66
import org.stepic.droid.storage.migration.MigrationFrom66To67
import org.stepic.droid.storage.migration.MigrationFrom67To68
import org.stepic.droid.storage.migration.MigrationFrom68To69
import org.stepic.droid.storage.migration.MigrationFrom69To70
import org.stepic.droid.storage.migration.MigrationFrom70To71
import org.stepic.droid.storage.migration.MigrationFrom71To72
import org.stepic.droid.storage.migration.MigrationFrom72To73

object MigrationWrappers {
private const val LAST_TESTED_DATABASE_VERSION = 63
Expand All @@ -10,19 +21,18 @@ object MigrationWrappers {
.slice(0 until LAST_TESTED_DATABASE_VERSION - 1)
.map { object : MigrationWrapper(it) {} } as List<MigrationWrapper>


val allMigration = oldMigrations + MigrationWrapperFrom62To63(MigrationFrom62To63) +
listOf(
object : MigrationWrapper(MigrationFrom63To64) {},
object : MigrationWrapper(MigrationFrom64To65) {},
object : MigrationWrapper(MigrationFrom65To66) {},
object : MigrationWrapper(MigrationFrom66To67) {},
object : MigrationWrapper(MigrationFrom67To68) {},
MigrationWrapperFrom68To69(MigrationFrom68To69),
object : MigrationWrapper(MigrationFrom69To70) {},
// TODO Multiple tests on a single table fail, must research
object : MigrationWrapper(MigrationFrom70To71) {},
object : MigrationWrapper(MigrationFrom71To72) {},
object : MigrationWrapper(MigrationFrom72To73) {}
)
listOf(
object : MigrationWrapper(MigrationFrom63To64) {},
object : MigrationWrapper(MigrationFrom64To65) {},
object : MigrationWrapper(MigrationFrom65To66) {},
object : MigrationWrapper(MigrationFrom66To67) {},
object : MigrationWrapper(MigrationFrom67To68) {},
MigrationWrapperFrom68To69(MigrationFrom68To69),
object : MigrationWrapper(MigrationFrom69To70) {},
// TODO Multiple tests on a single table fail, must research
object : MigrationWrapper(MigrationFrom70To71) {},
object : MigrationWrapper(MigrationFrom71To72) {},
object : MigrationWrapper(MigrationFrom72To73) {}
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ constructor(
EndpointConfig.RELEASE ->
ENDPOINT_RELEASE_CONFIG
}
return context.assets.open("configs/${fileName}").use {
return context.assets.open("configs/$fileName").use {
gson.fromJson(InputStreamReader(it, Charset.defaultCharset()), EndpointInfo::class.java)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ class SplitTestsDialogFragment : DialogFragment(R.layout.dialog_split_tests), Re
super.onViewCreated(view, savedInstanceState)
splitTestsBinding.appBarLayoutBinding.viewCenteredToolbarBinding.centeredToolbarTitle.setText(R.string.debug_ab_group_subtitle)
splitTestsViewModel.onNewMessage(SplitTestsFeature.Message.InitMessage)
splitTestGroupsAdapter += SplitTestDataAdapterDelegate{ splitTestName, splitTestGroupName, groups ->
splitTestGroupsAdapter += SplitTestDataAdapterDelegate { splitTestName, splitTestGroupName, groups ->
val chosenPosition = groups.indexOf(splitTestGroupName)
MaterialAlertDialogBuilder(requireContext())
.setTitle(R.string.debug_choose_ab_test)
Expand All @@ -82,9 +82,11 @@ class SplitTestsDialogFragment : DialogFragment(R.layout.dialog_split_tests), Re
with(splitTestsBinding.splitTestsRecycler) {
adapter = splitTestGroupsAdapter
layoutManager = LinearLayoutManager(requireContext())
addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.VERTICAL).apply {
AppCompatResources.getDrawable(context, R.drawable.bg_divider_vertical)?.let(::setDrawable)
})
addItemDecoration(
DividerItemDecoration(context, DividerItemDecoration.VERTICAL).apply {
AppCompatResources.getDrawable(context, R.drawable.bg_divider_vertical)?.let(::setDrawable)
}
)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,23 @@ import org.solovyev.android.checkout.UiCheckout

fun UiCheckout.startPurchaseFlowRx(sku: Sku, payload: String?): Single<Purchase> =
Single.create { emitter ->
startPurchaseFlow(sku, payload, object : RequestListener<Purchase> {
override fun onSuccess(purchase: Purchase) {
if (!emitter.isDisposed) {
emitter.onSuccess(purchase)
startPurchaseFlow(
sku,
payload,
object : RequestListener<Purchase> {
override fun onSuccess(purchase: Purchase) {
if (!emitter.isDisposed) {
emitter.onSuccess(purchase)
}
}
}

override fun onError(response: Int, exception: Exception) {
if (!emitter.isDisposed) {
emitter.onError(exception)
override fun onError(response: Int, exception: Exception) {
if (!emitter.isDisposed) {
emitter.onError(exception)
}
}
}
})
)
}

fun Checkout.onReady(): Single<BillingRequests> =
Expand All @@ -39,17 +43,20 @@ fun Checkout.onReady(): Single<BillingRequests> =

fun BillingRequests.consumeRx(token: String): Completable =
Completable.create { emitter ->
consume(token, object : RequestListener<Any> {
override fun onSuccess(result: Any) {
if (!emitter.isDisposed) {
emitter.onComplete()
consume(
token,
object : RequestListener<Any> {
override fun onSuccess(result: Any) {
if (!emitter.isDisposed) {
emitter.onComplete()
}
}
}

override fun onError(response: Int, exception: Exception) {
if (!emitter.isDisposed) {
emitter.onError(exception)
override fun onError(response: Int, exception: Exception) {
if (!emitter.isDisposed) {
emitter.onError(exception)
}
}
}
})
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ constructor(
billing
.newRequestsBuilder()
.create()
.getAllPurchases(productType, object : RequestListener<Purchases> {
.getAllPurchases(
productType, object : RequestListener<Purchases> {
override fun onSuccess(purchases: Purchases) {
if (!emitter.isDisposed) {
emitter.onSuccess(purchases.list)
Expand All @@ -63,7 +64,8 @@ constructor(
emitter.onError(e)
}
}
})
}
)
}

override fun consumePurchase(purchase: Purchase): Completable =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,13 @@ class BillingModule {
@PublicLicenseKey
appPublicLicenseKey: String
): Billing =
Billing(context, object : Billing.DefaultConfiguration() {
override fun getPublicKey(): String =
appPublicLicenseKey
})
Billing(
context,
object : Billing.DefaultConfiguration() {
override fun getPublicKey(): String =
appPublicLicenseKey
}
)

/**
* Provides system checkout that can be used for querying inventory & etc.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ class SkuSerializableWrapperTest {
Sku.Price(0, "USD"),
"title", "description", "introductoryPrice",
Sku.Price(0, "USD"),
"subscriptionPeriod", "freeTrialPeriod", "introductoryPricePeriod", 0)
"subscriptionPeriod", "freeTrialPeriod", "introductoryPricePeriod", 0
)

outputStream.writeObject(
SkuSerializableWrapper(
Expand Down
6 changes: 6 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ buildscript {
google()
jcenter()
maven { url "https://jitpack.io" }
gradlePluginPortal()
}
dependencies {
classpath gradlePlugins.android
Expand All @@ -19,9 +20,14 @@ buildscript {
classpath gradlePlugins.firebasePerfPlugin
classpath gradlePlugins.kotlin
classpath gradlePlugins.dexcount
classpath gradlePlugins.ktlint
}
}

subprojects {
apply plugin: 'org.jlleitschuh.gradle.ktlint'
}

allprojects {
repositories {
google()
Expand Down
Loading