浏览代码

code improvements

milan jurkulák 2 年之前
父节点
当前提交
e5f26f5dab

+ 1 - 1
.gitignore

@@ -49,5 +49,5 @@ google-services.json
 
 # Android Profiling
 *.hprof!/release.zip
-!/documentation/release-notes-1.0.0.md
+!/documentation/release-notes-*.md
 /reports/

+ 18 - 3
app/src/main/kotlin/org/mjdev/tvapp/sync/SyncService.kt

@@ -22,6 +22,7 @@ import android.os.IBinder
 import androidx.annotation.Keep
 import dagger.hilt.android.AndroidEntryPoint
 import org.mjdev.tvapp.BuildConfig
+import org.mjdev.tvapp.R
 import org.mjdev.tvapp.database.DAO
 import org.mjdev.tvapp.repository.ApiService
 import timber.log.Timber
@@ -77,18 +78,32 @@ class SyncService : Service() {
                             setIsSyncable(account, AUTHORITY, 1)
                             setSyncAutomatically(account, AUTHORITY, true)
                         } else {
-                            Timber.e("Can not create sync account")
+                            printError("Can not create sync account")
                         }
                     } else {
-                        Timber.d("Account already exists.")
+//                        printError("Account already exists.")
                     }
                 }
             } catch (e: Throwable) {
-                Timber.e(e)
+                printError(e)
                 null
             }
         }
 
+        fun Context.printError(e: Throwable) {
+            Timber.e(e)
+            Timber.e("Sync details:")
+            Timber.e("Sync account name : $ACCOUNT_NAME")
+            Timber.e("Sync account type : $ACCOUNT_TYPE")
+            Timber.e("Sync authority : $AUTHORITY")
+            Timber.e("Sync build config : ${BuildConfig.SYNC_AUTH}")
+            Timber.e("Sync resources : ${getString(R.string.sync_auth)}")
+        }
+
+        fun Context.printError(message:String) {
+            printError(Exception(message))
+        }
+
         fun requestSync(account: Account) {
             ContentResolver.requestSync(
                 account,

+ 14 - 0
buildSrc/src/main/kotlin/org/mjdev/gradle/extensions/ProjectExt.kt

@@ -36,6 +36,8 @@ import org.jetbrains.dokka.gradle.DokkaTask
 import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
 import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
 import java.io.File
+import java.io.FileInputStream
+import java.util.Properties
 import kotlin.reflect.KClass
 
 private const val VERSION_TAG_MAJOR = "majorVersion"
@@ -205,6 +207,18 @@ val Project.log: Logger
 //    })
 //}
 
+fun Project.loadPropertiesFile(path:String) {
+    val propertiesFile = project.rootDir.resolve(path)
+    val props = Properties()
+    props.load(FileInputStream(propertiesFile))
+    props.forEach { prop ->
+        project.rootProject.extra.set(
+            prop.key.toString(),
+            prop.value.toString()
+        )
+    }
+}
+
 inline fun <reified T> Project.extension(name: String? = null): T = runCatching {
     var cfg: T? = project.extensions.findByType(T::class.java)
     if (cfg == null && name != null) {

+ 10 - 4
buildSrc/src/main/kotlin/org/mjdev/gradle/extensions/VariantDimension.kt

@@ -33,7 +33,11 @@ fun ApplicationVariantDimension.buildConfigStringWithPackageName(
     vararg fields: Pair<String, String>
 ) {
     fields.forEach { pair ->
-        buildConfigField("String", pair.first, "APPLICATION_ID + \"${pair.second}\"")
+        buildConfigField(
+            "String",
+            pair.first,
+            "APPLICATION_ID + " + "\".${pair.second}\""
+        )
     }
 }
 
@@ -53,19 +57,21 @@ fun ApplicationVariantDimension.stringRes(
 }
 
 fun ApplicationVariantDimension.stringResWithPackageName(
+    applicationId: String,
     vararg fields: Pair<String, String>
 ) {
     fields.forEach { pair ->
-        resValue("string", pair.first, "\${applicationId}" + pair.second)
+        resValue("string", pair.first, "$applicationId.${pair.second}")
     }
 }
 
 fun ApplicationVariantDimension.addSyncProviderAuthString(
+    applicationId: String,
     name: String = "sync_auth",
-    suffix: String = ".sync"
+    suffix: String = "sync"
 ) {
     buildConfigStringWithPackageName(name.uppercase() to suffix)
-    stringResWithPackageName(name to suffix)
+    stringResWithPackageName(applicationId, name to suffix)
 }
 
 //fun ApplicationVariantDimension.createSuffixedStringRes(

+ 20 - 3
buildSrc/src/main/kotlin/org/mjdev/gradle/plugin/AppPlugin.kt

@@ -36,6 +36,7 @@ import org.mjdev.gradle.extensions.debugImplementation
 import org.mjdev.gradle.extensions.kapt
 import org.mjdev.gradle.extensions.testImplementation
 import org.mjdev.gradle.extensions.androidTestImplementation
+import org.mjdev.gradle.extensions.applicationId
 import org.mjdev.gradle.extensions.ksp
 import org.mjdev.gradle.extensions.setSigningConfigs
 import org.mjdev.gradle.extensions.stringRes
@@ -46,16 +47,20 @@ import org.mjdev.gradle.extensions.detektTask
 import org.mjdev.gradle.extensions.dokkaTask
 import org.mjdev.gradle.extensions.apply
 import org.mjdev.gradle.extensions.projectName
+import org.mjdev.gradle.extensions.loadPropertiesFile
 import org.mjdev.gradle.plugin.config.AppConfig
 import org.mjdev.gradle.tasks.ReleaseNotesCleanTask
 import org.mjdev.gradle.tasks.ReleaseNotesCreateTask
 import org.mjdev.gradle.tasks.ZipReleaseClearTask
 import org.mjdev.gradle.tasks.ZipReleaseCreateTask
+
 @Suppress("UnstableApiUsage")
 class AppPlugin : BasePlugin() {
     private val configFieldName = "appConfig"
+
     // todo : move
     private val projectJavaVersion = JavaVersion.VERSION_17
+
     // todo : move
     private val projectExcludes = listOf(
         "META-INF/",
@@ -71,8 +76,12 @@ class AppPlugin : BasePlugin() {
     private val projectProguardFile = "proguard-android-optimize.txt"
     private val projectProguardRulesFile = "proguard-rules.pro"
 
+    // todo : move
+    private val versionPropertiesFile = "config/version.prop"
+
     override fun Project.work() {
         extension<AppConfig>(configFieldName)
+        loadPropertiesFile(versionPropertiesFile)
         apply(plugin = "version-catalog")
         apply(plugin = "kotlin-android")
         apply(plugin = "com.android.application")
@@ -157,7 +166,11 @@ class AppPlugin : BasePlugin() {
 //                  isZipAlignEnabled = false
                     signingConfig = signingConfigs[name]
                     stringRes("app_name", "TVApp-Debug")
-                    addSyncProviderAuthString("sync_auth", ".sync")
+                    addSyncProviderAuthString(
+                        "$applicationId$applicationIdSuffix",
+                        "sync_auth",
+                        "sync"
+                    )
                     proguardFiles(
                         getDefaultProguardFile(projectProguardFile),
                         projectProguardRulesFile
@@ -180,7 +193,11 @@ class AppPlugin : BasePlugin() {
                     // todo : move
                     stringRes("app_name", "TVApp")
                     // todo : move
-                    addSyncProviderAuthString("sync_auth", ".sync")
+                    addSyncProviderAuthString(
+                        "$applicationId$applicationIdSuffix",
+                        "sync_auth",
+                        "sync"
+                    )
                     proguardFiles(
                         getDefaultProguardFile(projectProguardFile),
                         projectProguardRulesFile
@@ -245,7 +262,7 @@ class AppPlugin : BasePlugin() {
                     runAfterAssembleTask()
             }
             registerTask<ZipReleaseCreateTask> {
-                if(appConfig.createReleaseNotes)
+                if (appConfig.createReleaseNotes)
                     mustRunAfter(rnTask)
                 if (appConfig.createZipRelease)
                     runAfterAssembleTask()

+ 1 - 1
config/signing.prop

@@ -1,5 +1,5 @@
 #
-# Copyright (c) Milan Jurkulák 2023.
+# Copyright (c) Milan Jurkulák 2023.
 # Contact:
 # e: mimoccc@gmail.com
 # e: mj@mjdev.org

+ 1 - 1
config/version.prop

@@ -1,5 +1,5 @@
 #
-#  Copyright (c) Milan Jurkul�k 2024.
+#  Copyright (c) Milan Jurkulák 2024.
 #  Contact:
 #  e: mimoccc@gmail.com
 #  e: mj@mjdev.org

+ 1 - 0
documentation/app/app/org.mjdev.tvapp.activity/-i-p-t-v-activity/index.md

@@ -282,6 +282,7 @@ class [IPTVActivity](index.md) : TvActivity
 | [peekAvailableContext](../-web-activity/index.md#151152734%2FFunctions%2F-912451524) | [androidJvm]<br>open override fun [peekAvailableContext](../-web-activity/index.md#151152734%2FFunctions%2F-912451524)(): [Context](https://developer.android.com/reference/kotlin/android/content/Context.html)? |
 | [peekWallpaper](../../org.mjdev.tvapp.sync.auth/-authenticator-service/index.md#-1166010676%2FFunctions%2F-912451524) | [androidJvm]<br>open override fun [~~peekWallpaper~~](../../org.mjdev.tvapp.sync.auth/-authenticator-service/index.md#-1166010676%2FFunctions%2F-912451524)(): [Drawable](https://developer.android.com/reference/kotlin/android/graphics/drawable/Drawable.html) |
 | [postponeEnterTransition](../-web-activity/index.md#1864516089%2FFunctions%2F-912451524) | [androidJvm]<br>open fun [postponeEnterTransition](../-web-activity/index.md#1864516089%2FFunctions%2F-912451524)() |
+| [printError](../../org.mjdev.tvapp.sync/-sync-service/-companion/print-error.md) | [androidJvm]<br>fun [Context](https://developer.android.com/reference/kotlin/android/content/Context.html).[printError](../../org.mjdev.tvapp.sync/-sync-service/-companion/print-error.md)(message: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html))<br>fun [Context](https://developer.android.com/reference/kotlin/android/content/Context.html).[printError](../../org.mjdev.tvapp.sync/-sync-service/-companion/print-error.md)(e: [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)) |
 | [putExtraData](../-web-activity/index.md#665992618%2FFunctions%2F-912451524) | [androidJvm]<br>open fun [~~putExtraData~~](../-web-activity/index.md#665992618%2FFunctions%2F-912451524)(extraData: [ComponentActivity.ExtraData](https://developer.android.com/reference/kotlin/androidx/core/app/ComponentActivity.ExtraData.html)) |
 | [recreate](../-web-activity/index.md#-2032215845%2FFunctions%2F-912451524) | [androidJvm]<br>open fun [recreate](../-web-activity/index.md#-2032215845%2FFunctions%2F-912451524)() |
 | [registerActivityLifecycleCallbacks](../-web-activity/index.md#1746376759%2FFunctions%2F-912451524) | [androidJvm]<br>open fun [registerActivityLifecycleCallbacks](../-web-activity/index.md#1746376759%2FFunctions%2F-912451524)(p0: [Application.ActivityLifecycleCallbacks](https://developer.android.com/reference/kotlin/android/app/Application.ActivityLifecycleCallbacks.html)) |

+ 1 - 0
documentation/app/app/org.mjdev.tvapp.activity/-main-activity/index.md

@@ -276,6 +276,7 @@ class [MainActivity](index.md) : TvActivity
 | [peekAvailableContext](../-web-activity/index.md#151152734%2FFunctions%2F-912451524) | [androidJvm]<br>open override fun [peekAvailableContext](../-web-activity/index.md#151152734%2FFunctions%2F-912451524)(): [Context](https://developer.android.com/reference/kotlin/android/content/Context.html)? |
 | [peekWallpaper](../../org.mjdev.tvapp.sync.auth/-authenticator-service/index.md#-1166010676%2FFunctions%2F-912451524) | [androidJvm]<br>open override fun [~~peekWallpaper~~](../../org.mjdev.tvapp.sync.auth/-authenticator-service/index.md#-1166010676%2FFunctions%2F-912451524)(): [Drawable](https://developer.android.com/reference/kotlin/android/graphics/drawable/Drawable.html) |
 | [postponeEnterTransition](../-web-activity/index.md#1864516089%2FFunctions%2F-912451524) | [androidJvm]<br>open fun [postponeEnterTransition](../-web-activity/index.md#1864516089%2FFunctions%2F-912451524)() |
+| [printError](../../org.mjdev.tvapp.sync/-sync-service/-companion/print-error.md) | [androidJvm]<br>fun [Context](https://developer.android.com/reference/kotlin/android/content/Context.html).[printError](../../org.mjdev.tvapp.sync/-sync-service/-companion/print-error.md)(message: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html))<br>fun [Context](https://developer.android.com/reference/kotlin/android/content/Context.html).[printError](../../org.mjdev.tvapp.sync/-sync-service/-companion/print-error.md)(e: [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)) |
 | [putExtraData](../-web-activity/index.md#665992618%2FFunctions%2F-912451524) | [androidJvm]<br>open fun [~~putExtraData~~](../-web-activity/index.md#665992618%2FFunctions%2F-912451524)(extraData: [ComponentActivity.ExtraData](https://developer.android.com/reference/kotlin/androidx/core/app/ComponentActivity.ExtraData.html)) |
 | [recreate](../-web-activity/index.md#-2032215845%2FFunctions%2F-912451524) | [androidJvm]<br>open fun [recreate](../-web-activity/index.md#-2032215845%2FFunctions%2F-912451524)() |
 | [registerActivityLifecycleCallbacks](../-web-activity/index.md#1746376759%2FFunctions%2F-912451524) | [androidJvm]<br>open fun [registerActivityLifecycleCallbacks](../-web-activity/index.md#1746376759%2FFunctions%2F-912451524)(p0: [Application.ActivityLifecycleCallbacks](https://developer.android.com/reference/kotlin/android/app/Application.ActivityLifecycleCallbacks.html)) |

+ 1 - 0
documentation/app/app/org.mjdev.tvapp.activity/-web-activity/index.md

@@ -276,6 +276,7 @@ class [WebActivity](index.md) : TvActivity
 | [peekAvailableContext](index.md#151152734%2FFunctions%2F-912451524) | [androidJvm]<br>open override fun [peekAvailableContext](index.md#151152734%2FFunctions%2F-912451524)(): [Context](https://developer.android.com/reference/kotlin/android/content/Context.html)? |
 | [peekWallpaper](../../org.mjdev.tvapp.sync.auth/-authenticator-service/index.md#-1166010676%2FFunctions%2F-912451524) | [androidJvm]<br>open override fun [~~peekWallpaper~~](../../org.mjdev.tvapp.sync.auth/-authenticator-service/index.md#-1166010676%2FFunctions%2F-912451524)(): [Drawable](https://developer.android.com/reference/kotlin/android/graphics/drawable/Drawable.html) |
 | [postponeEnterTransition](index.md#1864516089%2FFunctions%2F-912451524) | [androidJvm]<br>open fun [postponeEnterTransition](index.md#1864516089%2FFunctions%2F-912451524)() |
+| [printError](../../org.mjdev.tvapp.sync/-sync-service/-companion/print-error.md) | [androidJvm]<br>fun [Context](https://developer.android.com/reference/kotlin/android/content/Context.html).[printError](../../org.mjdev.tvapp.sync/-sync-service/-companion/print-error.md)(message: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html))<br>fun [Context](https://developer.android.com/reference/kotlin/android/content/Context.html).[printError](../../org.mjdev.tvapp.sync/-sync-service/-companion/print-error.md)(e: [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)) |
 | [putExtraData](index.md#665992618%2FFunctions%2F-912451524) | [androidJvm]<br>open fun [~~putExtraData~~](index.md#665992618%2FFunctions%2F-912451524)(extraData: [ComponentActivity.ExtraData](https://developer.android.com/reference/kotlin/androidx/core/app/ComponentActivity.ExtraData.html)) |
 | [recreate](index.md#-2032215845%2FFunctions%2F-912451524) | [androidJvm]<br>open fun [recreate](index.md#-2032215845%2FFunctions%2F-912451524)() |
 | [registerActivityLifecycleCallbacks](index.md#1746376759%2FFunctions%2F-912451524) | [androidJvm]<br>open fun [registerActivityLifecycleCallbacks](index.md#1746376759%2FFunctions%2F-912451524)(p0: [Application.ActivityLifecycleCallbacks](https://developer.android.com/reference/kotlin/android/app/Application.ActivityLifecycleCallbacks.html)) |

+ 1 - 0
documentation/app/app/org.mjdev.tvapp.app/-application/index.md

@@ -115,6 +115,7 @@ class [Application](index.md) : TvApplication
 | [openFileOutput](../../org.mjdev.tvapp.sync.auth/-authenticator-service/index.md#-1288028519%2FFunctions%2F-912451524) | [androidJvm]<br>open override fun [openFileOutput](../../org.mjdev.tvapp.sync.auth/-authenticator-service/index.md#-1288028519%2FFunctions%2F-912451524)(p0: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), p1: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)): [FileOutputStream](https://developer.android.com/reference/kotlin/java/io/FileOutputStream.html) |
 | [openOrCreateDatabase](../../org.mjdev.tvapp.sync.auth/-authenticator-service/index.md#-352848248%2FFunctions%2F-912451524) | [androidJvm]<br>open override fun [openOrCreateDatabase](../../org.mjdev.tvapp.sync.auth/-authenticator-service/index.md#-352848248%2FFunctions%2F-912451524)(p0: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), p1: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), p2: [SQLiteDatabase.CursorFactory](https://developer.android.com/reference/kotlin/android/database/sqlite/SQLiteDatabase.CursorFactory.html)): [SQLiteDatabase](https://developer.android.com/reference/kotlin/android/database/sqlite/SQLiteDatabase.html)<br>open override fun [openOrCreateDatabase](../../org.mjdev.tvapp.sync.auth/-authenticator-service/index.md#1846808329%2FFunctions%2F-912451524)(p0: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html), p1: [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html), p2: [SQLiteDatabase.CursorFactory](https://developer.android.com/reference/kotlin/android/database/sqlite/SQLiteDatabase.CursorFactory.html), p3: [DatabaseErrorHandler](https://developer.android.com/reference/kotlin/android/database/DatabaseErrorHandler.html)?): [SQLiteDatabase](https://developer.android.com/reference/kotlin/android/database/sqlite/SQLiteDatabase.html) |
 | [peekWallpaper](../../org.mjdev.tvapp.sync.auth/-authenticator-service/index.md#-1166010676%2FFunctions%2F-912451524) | [androidJvm]<br>open override fun [~~peekWallpaper~~](../../org.mjdev.tvapp.sync.auth/-authenticator-service/index.md#-1166010676%2FFunctions%2F-912451524)(): [Drawable](https://developer.android.com/reference/kotlin/android/graphics/drawable/Drawable.html) |
+| [printError](../../org.mjdev.tvapp.sync/-sync-service/-companion/print-error.md) | [androidJvm]<br>fun [Context](https://developer.android.com/reference/kotlin/android/content/Context.html).[printError](../../org.mjdev.tvapp.sync/-sync-service/-companion/print-error.md)(message: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html))<br>fun [Context](https://developer.android.com/reference/kotlin/android/content/Context.html).[printError](../../org.mjdev.tvapp.sync/-sync-service/-companion/print-error.md)(e: [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)) |
 | [registerActivityLifecycleCallbacks](index.md#-1368197058%2FFunctions%2F-912451524) | [androidJvm]<br>open fun [registerActivityLifecycleCallbacks](index.md#-1368197058%2FFunctions%2F-912451524)(p0: [Application.ActivityLifecycleCallbacks](https://developer.android.com/reference/kotlin/android/app/Application.ActivityLifecycleCallbacks.html)) |
 | [registerComponentCallbacks](index.md#-2101686504%2FFunctions%2F-912451524) | [androidJvm]<br>open override fun [registerComponentCallbacks](index.md#-2101686504%2FFunctions%2F-912451524)(p0: [ComponentCallbacks](https://developer.android.com/reference/kotlin/android/content/ComponentCallbacks.html)) |
 | [registerDeviceIdChangeListener](../../org.mjdev.tvapp.sync.auth/-authenticator-service/index.md#221277319%2FFunctions%2F-912451524) | [androidJvm]<br>open override fun [registerDeviceIdChangeListener](../../org.mjdev.tvapp.sync.auth/-authenticator-service/index.md#221277319%2FFunctions%2F-912451524)(p0: [Executor](https://developer.android.com/reference/kotlin/java/util/concurrent/Executor.html), p1: [IntConsumer](https://developer.android.com/reference/kotlin/java/util/function/IntConsumer.html)) |

文件差异内容过多而无法显示
+ 1 - 0
documentation/app/app/org.mjdev.tvapp.cast/-cast-service/index.md


文件差异内容过多而无法显示
+ 1 - 0
documentation/app/app/org.mjdev.tvapp.sync.auth/-authenticator-service/index.md


+ 1 - 0
documentation/app/app/org.mjdev.tvapp.sync/-sync-service/-companion/index.md

@@ -13,5 +13,6 @@ object [Companion](index.md)
 | [createSyncAccount](create-sync-account.md) | [androidJvm]<br>fun [Context](https://developer.android.com/reference/kotlin/android/content/Context.html).[createSyncAccount](create-sync-account.md)(): [Account](https://developer.android.com/reference/kotlin/android/accounts/Account.html)? |
 | [equals](../../../org.mjdev.tvapp.widget/-refresh-action/index.md#585090901%2FFunctions%2F-912451524) | [androidJvm]<br>open operator fun [equals](../../../org.mjdev.tvapp.widget/-refresh-action/index.md#585090901%2FFunctions%2F-912451524)(other: [Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)?): [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) |
 | [hashCode](../../../org.mjdev.tvapp.widget/-refresh-action/index.md#1794629105%2FFunctions%2F-912451524) | [androidJvm]<br>open fun [hashCode](../../../org.mjdev.tvapp.widget/-refresh-action/index.md#1794629105%2FFunctions%2F-912451524)(): [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) |
+| [printError](print-error.md) | [androidJvm]<br>fun [Context](https://developer.android.com/reference/kotlin/android/content/Context.html).[printError](print-error.md)(message: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html))<br>fun [Context](https://developer.android.com/reference/kotlin/android/content/Context.html).[printError](print-error.md)(e: [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)) |
 | [requestSync](request-sync.md) | [androidJvm]<br>fun [requestSync](request-sync.md)(account: [Account](https://developer.android.com/reference/kotlin/android/accounts/Account.html)) |
 | [toString](../../../org.mjdev.tvapp.widget/-refresh-action/index.md#1616463040%2FFunctions%2F-912451524) | [androidJvm]<br>open fun [toString](../../../org.mjdev.tvapp.widget/-refresh-action/index.md#1616463040%2FFunctions%2F-912451524)(): [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |

+ 8 - 0
documentation/app/app/org.mjdev.tvapp.sync/-sync-service/-companion/print-error.md

@@ -0,0 +1,8 @@
+//[app](../../../../index.md)/[org.mjdev.tvapp.sync](../../index.md)/[SyncService](../index.md)/[Companion](index.md)/[printError](print-error.md)
+
+# printError
+
+[androidJvm]\
+fun [Context](https://developer.android.com/reference/kotlin/android/content/Context.html).[printError](print-error.md)(e: [Throwable](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html))
+
+fun [Context](https://developer.android.com/reference/kotlin/android/content/Context.html).[printError](print-error.md)(message: [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html))

文件差异内容过多而无法显示
+ 1 - 0
documentation/app/app/org.mjdev.tvapp.sync/-sync-service/index.md


+ 2 - 0
documentation/app/app/package-list

@@ -333,6 +333,8 @@ $dokka.location:org.mjdev.tvapp.sync/SyncAdapter/onPerformSync/#android.accounts
 $dokka.location:org.mjdev.tvapp.sync/SyncService.Companion///PointingToDeclaration/app/org.mjdev.tvapp.sync/-sync-service/-companion/index.md
 $dokka.location:org.mjdev.tvapp.sync/SyncService.Companion/createAccountAndSync/android.content.Context#/PointingToDeclaration/app/org.mjdev.tvapp.sync/-sync-service/-companion/create-account-and-sync.md
 $dokka.location:org.mjdev.tvapp.sync/SyncService.Companion/createSyncAccount/android.content.Context#/PointingToDeclaration/app/org.mjdev.tvapp.sync/-sync-service/-companion/create-sync-account.md
+$dokka.location:org.mjdev.tvapp.sync/SyncService.Companion/printError/android.content.Context#kotlin.String/PointingToDeclaration/app/org.mjdev.tvapp.sync/-sync-service/-companion/print-error.md
+$dokka.location:org.mjdev.tvapp.sync/SyncService.Companion/printError/android.content.Context#kotlin.Throwable/PointingToDeclaration/app/org.mjdev.tvapp.sync/-sync-service/-companion/print-error.md
 $dokka.location:org.mjdev.tvapp.sync/SyncService.Companion/requestSync/#android.accounts.Account/PointingToDeclaration/app/org.mjdev.tvapp.sync/-sync-service/-companion/request-sync.md
 $dokka.location:org.mjdev.tvapp.sync/SyncService///PointingToDeclaration/app/org.mjdev.tvapp.sync/-sync-service/index.md
 $dokka.location:org.mjdev.tvapp.sync/SyncService/SyncService/#/PointingToDeclaration/app/org.mjdev.tvapp.sync/-sync-service/-sync-service.md

部分文件因为文件数量过多而无法显示