Linting fixes

This commit is contained in:
arkon
2020-04-25 14:24:45 -04:00
parent 4da760d614
commit 3f63b320c4
272 changed files with 4167 additions and 3602 deletions
@@ -117,39 +117,39 @@ class SettingsAdvancedController : SettingsController() {
var deletedFiles = 0
Observable.defer { Observable.from(files) }
.doOnNext { file ->
if (chapterCache.removeFileFromCache(file.name)) {
deletedFiles++
}
.doOnNext { file ->
if (chapterCache.removeFileFromCache(file.name)) {
deletedFiles++
}
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnError {
activity?.toast(R.string.cache_delete_error)
}
.doOnCompleted {
activity?.toast(resources?.getString(R.string.cache_deleted, deletedFiles))
findPreference(CLEAR_CACHE_KEY)?.summary =
resources?.getString(R.string.used_cache, chapterCache.readableSize)
}
.subscribe()
}
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnError {
activity?.toast(R.string.cache_delete_error)
}
.doOnCompleted {
activity?.toast(resources?.getString(R.string.cache_deleted, deletedFiles))
findPreference(CLEAR_CACHE_KEY)?.summary =
resources?.getString(R.string.used_cache, chapterCache.readableSize)
}
.subscribe()
}
class ClearDatabaseDialogController : DialogController() {
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
return MaterialDialog(activity!!)
.message(R.string.clear_database_confirmation)
.positiveButton(android.R.string.ok) {
(targetController as? SettingsAdvancedController)?.clearDatabase()
}
.negativeButton(android.R.string.cancel)
.message(R.string.clear_database_confirmation)
.positiveButton(android.R.string.ok) {
(targetController as? SettingsAdvancedController)?.clearDatabase()
}
.negativeButton(android.R.string.cancel)
}
}
private fun clearDatabase() {
// Avoid weird behavior by going back to the library.
val newBackstack = listOf(RouterTransaction.with(LibraryController())) +
router.backstack.drop(1)
router.backstack.drop(1)
router.setBackstack(newBackstack, FadeChangeHandler())
@@ -106,9 +106,11 @@ class SettingsBackupController : SettingsController() {
intListPreference {
key = Keys.backupInterval
titleRes = R.string.pref_backup_interval
entriesRes = arrayOf(R.string.update_never, R.string.update_6hour,
R.string.update_12hour, R.string.update_24hour,
R.string.update_48hour, R.string.update_weekly)
entriesRes = arrayOf(
R.string.update_never, R.string.update_6hour,
R.string.update_12hour, R.string.update_24hour,
R.string.update_48hour, R.string.update_weekly
)
entryValues = arrayOf("0", "6", "12", "24", "48", "168")
defaultValue = "0"
summary = "%s"
@@ -168,7 +170,7 @@ class SettingsBackupController : SettingsController() {
// Get UriPermission so it's possible to write files
val flags = Intent.FLAG_GRANT_READ_URI_PERMISSION or
Intent.FLAG_GRANT_WRITE_URI_PERMISSION
Intent.FLAG_GRANT_WRITE_URI_PERMISSION
if (uri != null) {
activity.contentResolver.takePersistableUriPermission(uri, flags)
@@ -182,7 +184,7 @@ class SettingsBackupController : SettingsController() {
val uri = data.data
val flags = Intent.FLAG_GRANT_READ_URI_PERMISSION or
Intent.FLAG_GRANT_WRITE_URI_PERMISSION
Intent.FLAG_GRANT_WRITE_URI_PERMISSION
if (uri != null) {
activity.contentResolver.takePersistableUriPermission(uri, flags)
@@ -215,9 +217,9 @@ class SettingsBackupController : SettingsController() {
try {
// Use Android's built-in file creator
val intent = Intent(Intent.ACTION_CREATE_DOCUMENT)
.addCategory(Intent.CATEGORY_OPENABLE)
.setType("application/*")
.putExtra(Intent.EXTRA_TITLE, Backup.getDefaultFilename())
.addCategory(Intent.CATEGORY_OPENABLE)
.setType("application/*")
.putExtra(Intent.EXTRA_TITLE, Backup.getDefaultFilename())
startActivityForResult(intent, CODE_BACKUP_CREATE)
} catch (e: ActivityNotFoundException) {
@@ -229,51 +231,55 @@ class SettingsBackupController : SettingsController() {
class CreateBackupDialog : DialogController() {
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
val activity = activity!!
val options = arrayOf(R.string.manga, R.string.categories, R.string.chapters,
R.string.track, R.string.history)
.map { activity.getString(it) }
val options = arrayOf(
R.string.manga, R.string.categories, R.string.chapters,
R.string.track, R.string.history
)
.map { activity.getString(it) }
return MaterialDialog(activity)
.title(R.string.pref_create_backup)
.message(R.string.backup_choice)
.listItemsMultiChoice(
items = options,
disabledIndices = intArrayOf(0),
initialSelection = intArrayOf(0, 1, 2, 3, 4)
) { _, positions, _ ->
var flags = 0
for (i in 1 until positions.size) {
when (positions[i]) {
1 -> flags = flags or BackupCreateService.BACKUP_CATEGORY
2 -> flags = flags or BackupCreateService.BACKUP_CHAPTER
3 -> flags = flags or BackupCreateService.BACKUP_TRACK
4 -> flags = flags or BackupCreateService.BACKUP_HISTORY
}
.title(R.string.pref_create_backup)
.message(R.string.backup_choice)
.listItemsMultiChoice(
items = options,
disabledIndices = intArrayOf(0),
initialSelection = intArrayOf(0, 1, 2, 3, 4)
) { _, positions, _ ->
var flags = 0
for (i in 1 until positions.size) {
when (positions[i]) {
1 -> flags = flags or BackupCreateService.BACKUP_CATEGORY
2 -> flags = flags or BackupCreateService.BACKUP_CHAPTER
3 -> flags = flags or BackupCreateService.BACKUP_TRACK
4 -> flags = flags or BackupCreateService.BACKUP_HISTORY
}
(targetController as? SettingsBackupController)?.createBackup(flags)
}
.positiveButton(R.string.action_create)
.negativeButton(android.R.string.cancel)
(targetController as? SettingsBackupController)?.createBackup(flags)
}
.positiveButton(R.string.action_create)
.negativeButton(android.R.string.cancel)
}
}
class RestoreBackupDialog(bundle: Bundle? = null) : DialogController(bundle) {
constructor(uri: Uri) : this(Bundle().apply {
putParcelable(KEY_URI, uri)
})
constructor(uri: Uri) : this(
Bundle().apply {
putParcelable(KEY_URI, uri)
}
)
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
return MaterialDialog(activity!!)
.title(R.string.pref_restore_backup)
.message(R.string.backup_restore_content)
.positiveButton(R.string.action_restore) {
val context = applicationContext
if (context != null) {
BackupRestoreService.start(context, args.getParcelable(KEY_URI)!!)
isRestoreStarted = true
}
.title(R.string.pref_restore_backup)
.message(R.string.backup_restore_content)
.positiveButton(R.string.action_restore) {
val context = applicationContext
if (context != null) {
BackupRestoreService.start(context, args.getParcelable(KEY_URI)!!)
isRestoreStarted = true
}
}
}
private companion object {
@@ -74,9 +74,11 @@ class SettingsDownloadController : SettingsController() {
intListPreference {
key = Keys.removeAfterReadSlots
titleRes = R.string.pref_remove_after_read
entriesRes = arrayOf(R.string.disabled, R.string.last_read_chapter,
R.string.second_to_last, R.string.third_to_last, R.string.fourth_to_last,
R.string.fifth_to_last)
entriesRes = arrayOf(
R.string.disabled, R.string.last_read_chapter,
R.string.second_to_last, R.string.third_to_last, R.string.fourth_to_last,
R.string.fifth_to_last
)
entryValues = arrayOf("-1", "0", "1", "2", "3", "4")
defaultValue = "-1"
summary = "%s"
@@ -107,13 +109,14 @@ class SettingsDownloadController : SettingsController() {
preferences.downloadNewCategories().asFlow()
.onEach { mutableSet ->
val selectedCategories = mutableSet
.mapNotNull { id -> categories.find { it.id == id.toInt() } }
.sortedBy { it.order }
.mapNotNull { id -> categories.find { it.id == id.toInt() } }
.sortedBy { it.order }
summary = if (selectedCategories.isEmpty())
summary = if (selectedCategories.isEmpty()) {
resources?.getString(R.string.all)
else
} else {
selectedCategories.joinToString { it.name }
}
}
.launchIn(scope)
}
@@ -126,7 +129,7 @@ class SettingsDownloadController : SettingsController() {
val context = applicationContext ?: return
val uri = data.data
val flags = Intent.FLAG_GRANT_READ_URI_PERMISSION or
Intent.FLAG_GRANT_WRITE_URI_PERMISSION
Intent.FLAG_GRANT_WRITE_URI_PERMISSION
if (uri != null) {
@Suppress("NewApi")
@@ -164,26 +167,26 @@ class SettingsDownloadController : SettingsController() {
val selectedIndex = externalDirs.indexOfFirst { it in currentDir }
return MaterialDialog(activity)
.listItemsSingleChoice(
items = externalDirs,
initialSelection = selectedIndex
) { _, position, text ->
val target = targetController as? SettingsDownloadController
if (position == externalDirs.lastIndex) {
target?.customDirectorySelected(currentDir)
} else {
target?.predefinedDirectorySelected(text.toString())
}
.listItemsSingleChoice(
items = externalDirs,
initialSelection = selectedIndex
) { _, position, text ->
val target = targetController as? SettingsDownloadController
if (position == externalDirs.lastIndex) {
target?.customDirectorySelected(currentDir)
} else {
target?.predefinedDirectorySelected(text.toString())
}
}
}
private fun getExternalDirs(): List<File> {
val defaultDir = Environment.getExternalStorageDirectory().absolutePath +
File.separator + resources?.getString(R.string.app_name) +
File.separator + "downloads"
File.separator + resources?.getString(R.string.app_name) +
File.separator + "downloads"
return mutableListOf(File(defaultDir)) +
ContextCompat.getExternalFilesDirs(activity!!, "").filterNotNull()
ContextCompat.getExternalFilesDirs(activity!!, "").filterNotNull()
}
}
@@ -30,9 +30,10 @@ class SettingsGeneralController : SettingsController() {
key = Keys.startScreen
titleRes = R.string.pref_start_screen
entriesRes = arrayOf(
R.string.label_library,
R.string.label_recent_updates,
R.string.label_recent_manga)
R.string.label_library,
R.string.label_recent_updates,
R.string.label_recent_manga
)
entryValues = arrayOf("1", "3", "2")
defaultValue = "1"
summary = "%s"
@@ -107,21 +108,25 @@ class SettingsGeneralController : SettingsController() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
entriesRes = arrayOf(
R.string.theme_system,
R.string.theme_light,
R.string.theme_dark)
R.string.theme_system,
R.string.theme_light,
R.string.theme_dark
)
entryValues = arrayOf(
Values.THEME_MODE_SYSTEM,
Values.THEME_MODE_LIGHT,
Values.THEME_MODE_DARK)
Values.THEME_MODE_SYSTEM,
Values.THEME_MODE_LIGHT,
Values.THEME_MODE_DARK
)
defaultValue = Values.THEME_MODE_SYSTEM
} else {
entriesRes = arrayOf(
R.string.theme_light,
R.string.theme_dark)
R.string.theme_light,
R.string.theme_dark
)
entryValues = arrayOf(
Values.THEME_MODE_LIGHT,
Values.THEME_MODE_DARK)
Values.THEME_MODE_LIGHT,
Values.THEME_MODE_DARK
)
defaultValue = Values.THEME_MODE_LIGHT
}
@@ -136,11 +141,13 @@ class SettingsGeneralController : SettingsController() {
key = Keys.themeLight
titleRes = R.string.pref_theme_light
entriesRes = arrayOf(
R.string.theme_light_default,
R.string.theme_light_blue)
R.string.theme_light_default,
R.string.theme_light_blue
)
entryValues = arrayOf(
Values.THEME_LIGHT_DEFAULT,
Values.THEME_LIGHT_BLUE)
Values.THEME_LIGHT_DEFAULT,
Values.THEME_LIGHT_BLUE
)
defaultValue = Values.THEME_LIGHT_DEFAULT
summary = "%s"
@@ -160,13 +167,15 @@ class SettingsGeneralController : SettingsController() {
key = Keys.themeDark
titleRes = R.string.pref_theme_dark
entriesRes = arrayOf(
R.string.theme_dark_default,
R.string.theme_dark_blue,
R.string.theme_dark_amoled)
R.string.theme_dark_default,
R.string.theme_dark_blue,
R.string.theme_dark_amoled
)
entryValues = arrayOf(
Values.THEME_DARK_DEFAULT,
Values.THEME_DARK_BLUE,
Values.THEME_DARK_AMOLED)
Values.THEME_DARK_DEFAULT,
Values.THEME_DARK_BLUE,
Values.THEME_DARK_AMOLED
)
defaultValue = Values.THEME_DARK_DEFAULT
summary = "%s"
@@ -53,22 +53,23 @@ class SettingsLibraryController : SettingsController() {
}
fun getColumnValue(value: Int): String {
return if (value == 0)
return if (value == 0) {
context.getString(R.string.default_columns)
else
} else {
value.toString()
}
}
Observable.combineLatest(
preferences.portraitColumns().asObservable(),
preferences.landscapeColumns().asObservable()
preferences.portraitColumns().asObservable(),
preferences.landscapeColumns().asObservable()
) { portraitCols, landscapeCols -> Pair(portraitCols, landscapeCols) }
.subscribeUntilDestroy { (portraitCols, landscapeCols) ->
val portrait = getColumnValue(portraitCols)
val landscape = getColumnValue(landscapeCols)
summary = "${context.getString(R.string.portrait)}: $portrait, " +
"${context.getString(R.string.landscape)}: $landscape"
}
.subscribeUntilDestroy { (portraitCols, landscapeCols) ->
val portrait = getColumnValue(portraitCols)
val landscape = getColumnValue(landscapeCols)
summary = "${context.getString(R.string.portrait)}: $portrait, " +
"${context.getString(R.string.landscape)}: $landscape"
}
}
}
@@ -81,9 +82,11 @@ class SettingsLibraryController : SettingsController() {
intListPreference {
key = Keys.libraryUpdateInterval
titleRes = R.string.pref_library_update_interval
entriesRes = arrayOf(R.string.update_never, R.string.update_1hour,
R.string.update_2hour, R.string.update_3hour, R.string.update_6hour,
R.string.update_12hour, R.string.update_24hour, R.string.update_48hour)
entriesRes = arrayOf(
R.string.update_never, R.string.update_1hour,
R.string.update_2hour, R.string.update_3hour, R.string.update_6hour,
R.string.update_12hour, R.string.update_24hour, R.string.update_48hour
)
entryValues = arrayOf("0", "1", "2", "3", "6", "12", "24", "48")
defaultValue = "0"
summary = "%s"
@@ -124,13 +127,14 @@ class SettingsLibraryController : SettingsController() {
preferences.libraryUpdateCategories().asFlow()
.onEach { mutableSet ->
val selectedCategories = mutableSet
.mapNotNull { id -> categories.find { it.id == id.toInt() } }
.sortedBy { it.order }
.mapNotNull { id -> categories.find { it.id == id.toInt() } }
.sortedBy { it.order }
summary = if (selectedCategories.isEmpty())
summary = if (selectedCategories.isEmpty()) {
context.getString(R.string.all)
else
} else {
selectedCategories.joinToString { it.name }
}
}
.launchIn(scope)
}
@@ -141,8 +145,8 @@ class SettingsLibraryController : SettingsController() {
// The following array lines up with the list rankingScheme in:
// ../../data/library/LibraryUpdateRanker.kt
val priorities = arrayOf(
Pair("0", R.string.action_sort_alpha),
Pair("1", R.string.action_sort_last_checked)
Pair("0", R.string.action_sort_alpha),
Pair("1", R.string.action_sort_last_checked)
)
val defaultPriority = priorities[0]
@@ -176,13 +180,13 @@ class SettingsLibraryController : SettingsController() {
titleRes = R.string.default_category
entries = arrayOf(context.getString(R.string.default_category_summary)) +
categories.map { it.name }.toTypedArray()
categories.map { it.name }.toTypedArray()
entryValues = arrayOf("-1") + categories.map { it.id.toString() }.toTypedArray()
defaultValue = "-1"
val selectedCategory = categories.find { it.id == preferences.defaultCategory() }
summary = selectedCategory?.name
?: context.getString(R.string.default_category_summary)
?: context.getString(R.string.default_category_summary)
onChange { newValue ->
summary = categories.find {
it.id == (newValue as String).toInt()
@@ -202,13 +206,13 @@ class SettingsLibraryController : SettingsController() {
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
val dialog = MaterialDialog(activity!!)
.title(R.string.pref_library_columns)
.customView(R.layout.pref_library_columns)
.positiveButton(android.R.string.ok) {
preferences.portraitColumns().set(portrait)
preferences.landscapeColumns().set(landscape)
}
.negativeButton(android.R.string.cancel)
.title(R.string.pref_library_columns)
.customView(R.layout.pref_library_columns)
.positiveButton(android.R.string.ok) {
preferences.portraitColumns().set(portrait)
preferences.landscapeColumns().set(landscape)
}
.negativeButton(android.R.string.cancel)
onViewCreated(dialog.view)
return dialog
@@ -217,7 +221,7 @@ class SettingsLibraryController : SettingsController() {
fun onViewCreated(view: View) {
with(view.portrait_columns) {
displayedValues = arrayOf(context.getString(R.string.default_columns)) +
IntRange(1, 10).map(Int::toString)
IntRange(1, 10).map(Int::toString)
value = portrait
setOnValueChangedListener { _, _, newValue ->
@@ -226,7 +230,7 @@ class SettingsLibraryController : SettingsController() {
}
with(view.landscape_columns) {
displayedValues = arrayOf(context.getString(R.string.default_columns)) +
IntRange(1, 10).map(Int::toString)
IntRange(1, 10).map(Int::toString)
value = landscape
setOnValueChangedListener { _, _, newValue ->
@@ -22,8 +22,10 @@ class SettingsReaderController : SettingsController() {
intListPreference {
key = Keys.defaultViewer
titleRes = R.string.pref_viewer_type
entriesRes = arrayOf(R.string.left_to_right_viewer, R.string.right_to_left_viewer,
R.string.vertical_viewer, R.string.webtoon_viewer, R.string.vertical_plus_viewer)
entriesRes = arrayOf(
R.string.left_to_right_viewer, R.string.right_to_left_viewer,
R.string.vertical_viewer, R.string.webtoon_viewer, R.string.vertical_plus_viewer
)
entryValues = arrayOf("1", "2", "3", "4", "5")
defaultValue = "1"
summary = "%s"
@@ -31,9 +33,11 @@ class SettingsReaderController : SettingsController() {
intListPreference {
key = Keys.imageScaleType
titleRes = R.string.pref_image_scale_type
entriesRes = arrayOf(R.string.scale_type_fit_screen, R.string.scale_type_stretch,
R.string.scale_type_fit_width, R.string.scale_type_fit_height,
R.string.scale_type_original_size, R.string.scale_type_smart_fit)
entriesRes = arrayOf(
R.string.scale_type_fit_screen, R.string.scale_type_stretch,
R.string.scale_type_fit_width, R.string.scale_type_fit_height,
R.string.scale_type_original_size, R.string.scale_type_smart_fit
)
entryValues = arrayOf("1", "2", "3", "4", "5", "6")
defaultValue = "1"
summary = "%s"
@@ -41,8 +45,10 @@ class SettingsReaderController : SettingsController() {
intListPreference {
key = Keys.zoomStart
titleRes = R.string.pref_zoom_start
entriesRes = arrayOf(R.string.zoom_start_automatic, R.string.zoom_start_left,
R.string.zoom_start_right, R.string.zoom_start_center)
entriesRes = arrayOf(
R.string.zoom_start_automatic, R.string.zoom_start_left,
R.string.zoom_start_right, R.string.zoom_start_center
)
entryValues = arrayOf("1", "2", "3", "4")
defaultValue = "1"
summary = "%s"
@@ -50,8 +56,10 @@ class SettingsReaderController : SettingsController() {
intListPreference {
key = Keys.rotation
titleRes = R.string.pref_rotation_type
entriesRes = arrayOf(R.string.rotation_free, R.string.rotation_lock,
R.string.rotation_force_portrait, R.string.rotation_force_landscape)
entriesRes = arrayOf(
R.string.rotation_free, R.string.rotation_lock,
R.string.rotation_force_portrait, R.string.rotation_force_landscape
)
entryValues = arrayOf("1", "2", "3", "4")
defaultValue = "1"
summary = "%s"
@@ -159,7 +167,8 @@ class SettingsReaderController : SettingsController() {
R.string.webtoon_side_padding_10,
R.string.webtoon_side_padding_15,
R.string.webtoon_side_padding_20,
R.string.webtoon_side_padding_25)
R.string.webtoon_side_padding_25
)
entryValues = arrayOf("0", "10", "15", "20", "25")
defaultValue = "0"
summary = "%s"
@@ -31,7 +31,7 @@ class SettingsSourcesController : SettingsController() {
// Order first by active languages, then inactive ones
val orderedLangs = sourcesByLang.keys.filter { it in activeLangsCodes } +
sourcesByLang.keys.filterNot { it in activeLangsCodes }
sourcesByLang.keys.filterNot { it in activeLangsCodes }
orderedLangs.forEach { lang ->
val sources = sourcesByLang[lang].orEmpty().sortedBy { it.name }
@@ -91,10 +91,13 @@ class SettingsSourcesController : SettingsController() {
val checked = newValue as Boolean
val current = preferences.hiddenCatalogues().get()
preferences.hiddenCatalogues().set(if (checked)
current - id
else
current + id)
preferences.hiddenCatalogues().set(
if (checked) {
current - id
} else {
current + id
}
)
true
}
@@ -23,9 +23,10 @@ import eu.kanade.tachiyomi.widget.preference.TrackLoginDialog
import eu.kanade.tachiyomi.widget.preference.TrackLogoutDialog
import uy.kohesive.injekt.injectLazy
class SettingsTrackingController : SettingsController(),
TrackLoginDialog.Listener,
TrackLogoutDialog.Listener {
class SettingsTrackingController :
SettingsController(),
TrackLoginDialog.Listener,
TrackLogoutDialog.Listener {
private val trackManager: TrackManager by injectLazy()
@@ -47,8 +48,8 @@ class SettingsTrackingController : SettingsController(),
}
trackPreference(trackManager.aniList) {
val tabsIntent = CustomTabsIntent.Builder()
.setToolbarColor(context.getResourceColor(R.attr.colorPrimary))
.build()
.setToolbarColor(context.getResourceColor(R.attr.colorPrimary))
.build()
tabsIntent.intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)
tabsIntent.launchUrl(activity!!, AnilistApi.authUrl())
}
@@ -59,15 +60,15 @@ class SettingsTrackingController : SettingsController(),
}
trackPreference(trackManager.shikimori) {
val tabsIntent = CustomTabsIntent.Builder()
.setToolbarColor(context.getResourceColor(R.attr.colorPrimary))
.build()
.setToolbarColor(context.getResourceColor(R.attr.colorPrimary))
.build()
tabsIntent.intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)
tabsIntent.launchUrl(activity!!, ShikimoriApi.authUrl())
}
trackPreference(trackManager.bangumi) {
val tabsIntent = CustomTabsIntent.Builder()
.setToolbarColor(context.getResourceColor(R.attr.colorPrimary))
.build()
.setToolbarColor(context.getResourceColor(R.attr.colorPrimary))
.build()
tabsIntent.intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)
tabsIntent.launchUrl(activity!!, BangumiApi.authUrl())
}
@@ -78,20 +79,23 @@ class SettingsTrackingController : SettingsController(),
service: TrackService,
crossinline login: () -> Unit
): LoginPreference {
return initThenAdd(LoginPreference(context).apply {
key = Keys.trackUsername(service.id)
title = service.name
}, {
onClick {
if (service.isLogged) {
val dialog = TrackLogoutDialog(service)
dialog.targetController = this@SettingsTrackingController
dialog.showDialog(router)
} else {
login()
return initThenAdd(
LoginPreference(context).apply {
key = Keys.trackUsername(service.id)
title = service.name
},
{
onClick {
if (service.isLogged) {
val dialog = TrackLogoutDialog(service)
dialog.targetController = this@SettingsTrackingController
dialog.showDialog(router)
} else {
login()
}
}
}
})
)
}
override fun onActivityResumed(activity: Activity) {
@@ -64,9 +64,11 @@ internal class BackupNotifier(private val context: Context) {
mActions.clear()
}
addAction(R.drawable.ic_share_24dp,
addAction(
R.drawable.ic_share_24dp,
context.getString(R.string.action_share),
NotificationReceiver.shareBackupPendingBroadcast(context, unifile.uri, Notifications.ID_BACKUP))
NotificationReceiver.shareBackupPendingBroadcast(context, unifile.uri, Notifications.ID_BACKUP)
)
}
notificationBuilder.show(Notifications.ID_BACKUP)
@@ -84,9 +86,11 @@ internal class BackupNotifier(private val context: Context) {
mActions.clear()
}
addAction(R.drawable.ic_close_24dp,
addAction(
R.drawable.ic_close_24dp,
context.getString(R.string.action_stop),
NotificationReceiver.cancelRestorePendingBroadcast(context, Notifications.ID_RESTORE))
NotificationReceiver.cancelRestorePendingBroadcast(context, Notifications.ID_RESTORE)
)
}
builder.show(Notifications.ID_RESTORE)
@@ -107,10 +111,12 @@ internal class BackupNotifier(private val context: Context) {
}
fun showRestoreComplete(time: Long, errorCount: Int, path: String?, file: String?) {
val timeString = String.format("%02d min, %02d sec",
val timeString = String.format(
"%02d min, %02d sec",
TimeUnit.MILLISECONDS.toMinutes(time),
TimeUnit.MILLISECONDS.toSeconds(time) - TimeUnit.MINUTES.toSeconds(
TimeUnit.MILLISECONDS.toMinutes(time))
TimeUnit.MILLISECONDS.toMinutes(time)
)
)
with(notificationBuilder) {
@@ -132,9 +138,11 @@ internal class BackupNotifier(private val context: Context) {
val destFile = File(path, file)
val uri = destFile.getUriCompat(context)
addAction(R.drawable.nnf_ic_file_folder,
addAction(
R.drawable.nnf_ic_file_folder,
context.getString(R.string.action_open_log),
NotificationReceiver.openErrorLogPendingActivity(context, uri))
NotificationReceiver.openErrorLogPendingActivity(context, uri)
)
}
}
@@ -27,13 +27,16 @@ class AnilistLoginActivity : AppCompatActivity() {
val matchResult = regex.find(intent.data?.fragment.toString())
if (matchResult?.groups?.get(1) != null) {
trackManager.aniList.login(matchResult.groups[1]!!.value)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
returnToSettings()
}, {
},
{
returnToSettings()
})
}
)
} else {
trackManager.aniList.logout()
returnToSettings()
@@ -26,13 +26,16 @@ class BangumiLoginActivity : AppCompatActivity() {
val code = intent.data?.getQueryParameter("code")
if (code != null) {
trackManager.bangumi.login(code)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
returnToSettings()
}, {
},
{
returnToSettings()
})
}
)
} else {
trackManager.bangumi.logout()
returnToSettings()
@@ -26,13 +26,16 @@ class ShikimoriLoginActivity : AppCompatActivity() {
val code = intent.data?.getQueryParameter("code")
if (code != null) {
trackManager.shikimori.login(code)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{
returnToSettings()
}, {
},
{
returnToSettings()
})
}
)
} else {
trackManager.shikimori.logout()
returnToSettings()