aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/build.gradle16
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt26
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt11
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt10
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt6
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt33
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt27
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/settings/Feed.kt17
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/utils/Downloader.kt12
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt4
-rw-r--r--buildSrc/build.gradle.kts2
-rw-r--r--buildSrc/src/main/kotlin/Versions.kt2
12 files changed, 88 insertions, 78 deletions
diff --git a/app/build.gradle b/app/build.gradle
index 7dfb7a5e..c8ee5c5f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -188,21 +188,21 @@ dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:${KOTLIN}"
//noinspection GradleDependency
- implementation "ca.allanwang.kau:adapter:$KAU"
+ implementation "ca.allanwang.kau:adapter:${Versions.kau}"
//noinspection GradleDependency
- implementation "ca.allanwang.kau:about:$KAU"
+ implementation "ca.allanwang.kau:about:${Versions.kau}"
//noinspection GradleDependency
- implementation "ca.allanwang.kau:colorpicker:$KAU"
+ implementation "ca.allanwang.kau:colorpicker:${Versions.kau}"
//noinspection GradleDependency
- implementation "ca.allanwang.kau:mediapicker:$KAU"
+ implementation "ca.allanwang.kau:mediapicker:${Versions.kau}"
//noinspection GradleDependency
- implementation "ca.allanwang.kau:kpref-activity:$KAU"
+ implementation "ca.allanwang.kau:kpref-activity:${Versions.kau}"
//noinspection GradleDependency
- implementation "ca.allanwang.kau:searchview:$KAU"
+ implementation "ca.allanwang.kau:searchview:${Versions.kau}"
//noinspection GradleDependency
- implementation "ca.allanwang.kau:core:$KAU"
+ implementation "ca.allanwang.kau:core:${Versions.kau}"
//noinspection GradleDependency
- implementation "ca.allanwang.kau:core-ui:$KAU"
+ implementation "ca.allanwang.kau:core-ui:${Versions.kau}"
implementation "androidx.core:core-ktx:${KTX}"
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt
index 49d5f8bf..b2946852 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt
@@ -40,6 +40,7 @@ import ca.allanwang.kau.searchview.SearchViewHolder
import ca.allanwang.kau.searchview.bindSearchView
import ca.allanwang.kau.utils.bindView
import ca.allanwang.kau.utils.fadeScaleTransition
+import ca.allanwang.kau.utils.materialDialog
import ca.allanwang.kau.utils.restart
import ca.allanwang.kau.utils.setIcon
import ca.allanwang.kau.utils.setMenuIcons
@@ -56,6 +57,7 @@ import co.zsmb.materialdrawerkt.draweritems.badgeable.secondaryItem
import co.zsmb.materialdrawerkt.draweritems.divider
import co.zsmb.materialdrawerkt.draweritems.profile.profile
import co.zsmb.materialdrawerkt.draweritems.profile.profileSetting
+import com.afollestad.materialdialogs.checkbox.checkBoxPrompt
import com.google.android.material.appbar.AppBarLayout
import com.google.android.material.tabs.TabLayout
import com.mikepenz.google_material_typeface_library.GoogleMaterial
@@ -99,7 +101,6 @@ import com.pitchedapps.frost.utils.frostNavigationBar
import com.pitchedapps.frost.utils.launchLogin
import com.pitchedapps.frost.utils.launchNewTask
import com.pitchedapps.frost.utils.launchWebOverlay
-import com.pitchedapps.frost.utils.materialDialogThemed
import com.pitchedapps.frost.utils.setFrostColors
import com.pitchedapps.frost.views.BadgedIcon
import com.pitchedapps.frost.views.FrostVideoViewer
@@ -293,21 +294,21 @@ abstract class BaseMainActivity : BaseActivity(), MainActivityContract,
FbCookie.reset()
launchLogin(cookies(), true)
} else {
- materialDialogThemed {
+ materialDialog {
title(R.string.kau_logout)
- content(
+ message(
+ text =
String.format(
string(R.string.kau_logout_confirm_as_x),
currentCookie.name ?: Prefs.userId.toString()
)
)
- positiveText(R.string.kau_yes)
- negativeText(R.string.kau_no)
- onPositive { _, _ ->
+ positiveButton(R.string.kau_yes) {
this@BaseMainActivity.launch {
FbCookie.logout(this@BaseMainActivity)
}
}
+ negativeButton(R.string.kau_no)
}
}
}
@@ -518,13 +519,14 @@ abstract class BaseMainActivity : BaseActivity(), MainActivityContract,
}
if (currentFragment.onBackPressed()) return true
if (Prefs.exitConfirmation) {
- materialDialogThemed {
+ materialDialog {
title(R.string.kau_exit)
- content(R.string.kau_exit_confirmation)
- positiveText(R.string.kau_yes)
- negativeText(R.string.kau_no)
- onPositive { _, _ -> finish() }
- checkBoxPromptRes(R.string.kau_do_not_show_again, false) { _, b -> Prefs.exitConfirmation = !b }
+ message(R.string.kau_exit_confirmation)
+ positiveButton(R.string.kau_yes) { finish() }
+ negativeButton(R.string.kau_no)
+ checkBoxPrompt(R.string.kau_do_not_show_again, isCheckedDefault = false) {
+ Prefs.exitConfirmation = !it
+ }
}
return true
}
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt
index b94acb63..6b031a03 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/ImageActivity.kt
@@ -33,6 +33,7 @@ import ca.allanwang.kau.utils.copyFromInputStream
import ca.allanwang.kau.utils.fadeOut
import ca.allanwang.kau.utils.isHidden
import ca.allanwang.kau.utils.isVisible
+import ca.allanwang.kau.utils.materialDialog
import ca.allanwang.kau.utils.scaleXY
import ca.allanwang.kau.utils.setIcon
import ca.allanwang.kau.utils.tint
@@ -58,7 +59,6 @@ import com.pitchedapps.frost.utils.frostSnackbar
import com.pitchedapps.frost.utils.frostUriFromFile
import com.pitchedapps.frost.utils.isIndirectImageUrl
import com.pitchedapps.frost.utils.logFrostEvent
-import com.pitchedapps.frost.utils.materialDialogThemed
import com.pitchedapps.frost.utils.sendFrostEmail
import com.pitchedapps.frost.utils.setFrostColors
import com.sothree.slidinguppanel.SlidingUpPanelLayout
@@ -297,18 +297,17 @@ internal enum class FabStates(
val err =
activity.errorRef?.takeIf { it !is FileNotFoundException && it.message != "Image failed to decode using JPEG decoder" }
?: return
- activity.materialDialogThemed {
+ activity.materialDialog {
title(R.string.kau_error)
- content(R.string.bad_image_overlay)
- positiveText(R.string.kau_yes)
- onPositive { _, _ ->
+ message(R.string.bad_image_overlay)
+ positiveButton(R.string.kau_yes) {
activity.sendFrostEmail(R.string.debug_image_link_subject) {
addItem("Url", activity.imageUrl)
addItem("Type", err.javaClass.name)
addItem("Message", err.message ?: "Null")
}
}
- negativeText(R.string.kau_no)
+ negativeButton(R.string.kau_no)
}
}
},
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt
index bc20aa2d..3007933c 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt
@@ -29,12 +29,14 @@ import ca.allanwang.kau.kpref.activity.KPrefActivity
import ca.allanwang.kau.kpref.activity.KPrefAdapterBuilder
import ca.allanwang.kau.ui.views.RippleCanvas
import ca.allanwang.kau.utils.finishSlideOut
+import ca.allanwang.kau.utils.materialDialog
import ca.allanwang.kau.utils.setMenuIcons
import ca.allanwang.kau.utils.startActivityForResult
import ca.allanwang.kau.utils.startLink
import ca.allanwang.kau.utils.string
import ca.allanwang.kau.utils.tint
import ca.allanwang.kau.utils.withSceneTransitionAnimation
+import com.afollestad.materialdialogs.list.listItems
import com.mikepenz.community_material_typeface_library.CommunityMaterial
import com.mikepenz.google_material_typeface_library.GoogleMaterial
import com.pitchedapps.frost.R
@@ -55,7 +57,6 @@ import com.pitchedapps.frost.utils.frostChangelog
import com.pitchedapps.frost.utils.frostNavigationBar
import com.pitchedapps.frost.utils.launchNewTask
import com.pitchedapps.frost.utils.loadAssets
-import com.pitchedapps.frost.utils.materialDialogThemed
import com.pitchedapps.frost.utils.setFrostTheme
import kotlinx.coroutines.NonCancellable
import kotlinx.coroutines.launch
@@ -235,10 +236,11 @@ class SettingsActivity : KPrefActivity() {
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
- R.id.action_email -> materialDialogThemed {
+ R.id.action_email -> materialDialog {
title(R.string.subject)
- items(Support.values().map { string(it.title) })
- itemsCallback { _, _, which, _ -> Support.values()[which].sendEmail(this@SettingsActivity) }
+ listItems(items = Support.values().map { string(it.title) }) { _, index, _ ->
+ Support.values()[index].sendEmail(this@SettingsActivity)
+ }
}
R.id.action_changelog -> frostChangelog()
else -> return super.onOptionsItemSelected(item)
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt
index ec4ff9dd..9a1e7308 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt
@@ -36,6 +36,7 @@ import ca.allanwang.kau.utils.copyToClipboard
import ca.allanwang.kau.utils.darken
import ca.allanwang.kau.utils.dpToPx
import ca.allanwang.kau.utils.finishSlideOut
+import ca.allanwang.kau.utils.materialDialog
import ca.allanwang.kau.utils.navigationBarColor
import ca.allanwang.kau.utils.setMenuIcons
import ca.allanwang.kau.utils.shareText
@@ -69,7 +70,6 @@ import com.pitchedapps.frost.utils.L
import com.pitchedapps.frost.utils.Prefs
import com.pitchedapps.frost.utils.Showcase
import com.pitchedapps.frost.utils.frostSnackbar
-import com.pitchedapps.frost.utils.materialDialogThemed
import com.pitchedapps.frost.utils.setFrostColors
import com.pitchedapps.frost.views.FrostContentWeb
import com.pitchedapps.frost.views.FrostVideoViewer
@@ -109,9 +109,9 @@ class FrostWebActivity : WebOverlayActivityBase(false) {
refreshReceiver.receive()
refreshReceiver.cancel()
withMainContext {
- materialDialogThemed {
+ materialDialog {
title(R.string.invalid_share_url)
- content(R.string.invalid_share_url_desc)
+ message(R.string.invalid_share_url_desc)
}
}
}
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt
index a6437123..718b2dbb 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt
@@ -20,7 +20,9 @@ import ca.allanwang.kau.kpref.activity.KPrefAdapterBuilder
import ca.allanwang.kau.kpref.activity.items.KPrefColorPicker
import ca.allanwang.kau.kpref.activity.items.KPrefSeekbar
import ca.allanwang.kau.ui.views.RippleCanvas
+import ca.allanwang.kau.utils.materialDialog
import ca.allanwang.kau.utils.string
+import com.afollestad.materialdialogs.list.listItemsSingleChoice
import com.pitchedapps.frost.R
import com.pitchedapps.frost.activities.SettingsActivity
import com.pitchedapps.frost.enums.MainActivityLayout
@@ -33,7 +35,6 @@ import com.pitchedapps.frost.utils.frostEvent
import com.pitchedapps.frost.utils.frostNavigationBar
import com.pitchedapps.frost.utils.frostSnackbar
import com.pitchedapps.frost.utils.launchTabCustomizerActivity
-import com.pitchedapps.frost.utils.materialDialogThemed
import com.pitchedapps.frost.utils.setFrostTheme
import com.pitchedapps.frost.views.KPrefTextSeekbar
@@ -46,20 +47,21 @@ fun SettingsActivity.getAppearancePrefs(): KPrefAdapterBuilder.() -> Unit = {
text(R.string.theme, Prefs::theme, { Prefs.theme = it }) {
onClick = {
- materialDialogThemed {
+ materialDialog {
title(R.string.theme)
- items(Theme.values().map { string(it.textRes) })
- itemsCallbackSingleChoice(item.pref) { _, _, which, _ ->
- if (item.pref != which) {
- item.pref = which
+ listItemsSingleChoice(
+ items = Theme.values().map { string(it.textRes) },
+ initialSelection = item.pref
+ ) { _, index, _ ->
+ if (item.pref != index) {
+ item.pref = index
shouldRestartMain()
reload()
setFrostTheme(true)
themeExterior()
invalidateOptionsMenu()
- frostEvent("Theme", "Count" to Theme(which).name)
+ frostEvent("Theme", "Count" to Theme(index).name)
}
- true
}
}
}
@@ -134,16 +136,17 @@ fun SettingsActivity.getAppearancePrefs(): KPrefAdapterBuilder.() -> Unit = {
text(R.string.main_activity_layout, Prefs::mainActivityLayoutType, { Prefs.mainActivityLayoutType = it }) {
textGetter = { string(Prefs.mainActivityLayout.titleRes) }
onClick = {
- materialDialogThemed {
+ materialDialog {
title(R.string.main_activity_layout_desc)
- items(MainActivityLayout.values.map { string(it.titleRes) })
- itemsCallbackSingleChoice(item.pref) { _, _, which, _ ->
- if (item.pref != which) {
- item.pref = which
+ listItemsSingleChoice(
+ items = MainActivityLayout.values.map { string(it.titleRes) },
+ initialSelection = item.pref
+ ) { _, index, _ ->
+ if (item.pref != index) {
+ item.pref = index
shouldRestartMain()
- frostEvent("Main Layout", "Type" to MainActivityLayout(which).name)
+ frostEvent("Main Layout", "Type" to MainActivityLayout(index).name)
}
- true
}
}
}
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt
index 1ee06464..ea50a57b 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt
@@ -24,6 +24,8 @@ import ca.allanwang.kau.utils.startActivityForResult
import ca.allanwang.kau.utils.string
import ca.allanwang.kau.utils.toast
import ca.allanwang.kau.utils.withMainContext
+import com.afollestad.materialdialogs.callbacks.onDismiss
+import com.afollestad.materialdialogs.list.listItems
import com.pitchedapps.frost.R
import com.pitchedapps.frost.activities.DebugActivity
import com.pitchedapps.frost.activities.SettingsActivity
@@ -68,20 +70,18 @@ fun SettingsActivity.getDebugPrefs(): KPrefAdapterBuilder.() -> Unit = {
val parsers = arrayOf(NotifParser, MessageParser, SearchParser)
materialDialog {
- items(parsers.map { string(it.nameRes) })
- itemsCallback { dialog, _, position, _ ->
+ listItems(items = parsers.map { string(it.nameRes) }) { dialog, position, _ ->
dialog.dismiss()
val parser = parsers[position]
var attempt: Job? = null
val loading = materialDialog {
- content(parser.nameRes)
- progress(true, 100)
- negativeText(R.string.kau_cancel)
- onNegative { dialog, _ ->
+ message(parser.nameRes)
+ // TODO change dialog? No more progress view
+ negativeButton(R.string.kau_cancel) {
attempt?.cancel()
- dialog.dismiss()
+ it.dismiss()
}
- canceledOnTouchOutside(false)
+ cancelOnTouchOutside(false)
}
attempt = launch(Dispatchers.IO) {
@@ -122,18 +122,17 @@ fun SettingsActivity.sendDebug(url: String, html: String?) {
val md = materialDialog {
title(R.string.parsing_data)
- progress(false, 100)
- negativeText(R.string.kau_cancel)
- onNegative { dialog, _ -> dialog.dismiss() }
- canceledOnTouchOutside(false)
- dismissListener { job.cancel() }
+ // TODO remove dialog? No progress ui
+ negativeButton(R.string.kau_cancel) { it.dismiss() }
+ cancelOnTouchOutside(false)
+ onDismiss { job.cancel() }
}
val progressChannel = Channel<Int>(10)
launchMain {
for (p in progressChannel) {
- md.setProgress(p)
+// md.setProgress(p)
}
}
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Feed.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Feed.kt
index baf68634..f7cf3ee3 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Feed.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Feed.kt
@@ -17,13 +17,14 @@
package com.pitchedapps.frost.settings
import ca.allanwang.kau.kpref.activity.KPrefAdapterBuilder
+import ca.allanwang.kau.utils.materialDialog
import ca.allanwang.kau.utils.string
+import com.afollestad.materialdialogs.list.listItemsSingleChoice
import com.pitchedapps.frost.R
import com.pitchedapps.frost.activities.SettingsActivity
import com.pitchedapps.frost.enums.FeedSort
import com.pitchedapps.frost.utils.Prefs
import com.pitchedapps.frost.utils.REQUEST_REFRESH
-import com.pitchedapps.frost.utils.materialDialogThemed
/**
* Created by Allan Wang on 2017-06-29.
@@ -33,15 +34,17 @@ fun SettingsActivity.getFeedPrefs(): KPrefAdapterBuilder.() -> Unit = {
text(R.string.newsfeed_sort, Prefs::feedSort, { Prefs.feedSort = it }) {
descRes = R.string.newsfeed_sort_desc
onClick = {
- materialDialogThemed {
+ materialDialog {
title(R.string.newsfeed_sort)
- items(FeedSort.values().map { string(it.textRes) })
- itemsCallbackSingleChoice(item.pref) { _, _, which, _ ->
- if (item.pref != which) {
- item.pref = which
+ listItemsSingleChoice(
+ items = FeedSort.values().map { string(it.textRes) },
+ initialSelection = item.pref
+ ) { _, index, _ ->
+ if (item.pref != index) {
+ item.pref = index
shouldRestartMain()
}
- true
+
}
}
}
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Downloader.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Downloader.kt
index 50863e10..b0012b0d 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Downloader.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Downloader.kt
@@ -25,6 +25,7 @@ import android.webkit.URLUtil
import ca.allanwang.kau.permissions.PERMISSION_WRITE_EXTERNAL_STORAGE
import ca.allanwang.kau.permissions.kauRequestPermissions
import ca.allanwang.kau.utils.isAppEnabled
+import ca.allanwang.kau.utils.materialDialog
import ca.allanwang.kau.utils.showAppInfo
import ca.allanwang.kau.utils.string
import ca.allanwang.kau.utils.toast
@@ -64,12 +65,13 @@ fun Context.frostDownload(
return L.e { "Invalid download $uri" }
}
if (!isAppEnabled(DOWNLOAD_MANAGER_PACKAGE)) {
- materialDialogThemed {
+ materialDialog {
title(R.string.no_download_manager)
- content(R.string.no_download_manager_desc)
- positiveText(R.string.kau_yes)
- onPositive { _, _ -> showAppInfo(DOWNLOAD_MANAGER_PACKAGE) }
- negativeText(R.string.kau_no)
+ message(R.string.no_download_manager_desc)
+ positiveButton(R.string.kau_yes) {
+ showAppInfo(DOWNLOAD_MANAGER_PACKAGE)
+ }
+ negativeButton(R.string.kau_no)
}
return
}
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt
index a479cb83..a6a9e721 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt
@@ -342,9 +342,7 @@ val dependentSegments = arrayOf(
inline val String?.isExplicitIntent
get() = this != null && (startsWith("intent://") || startsWith("market://"))
-fun Context.frostChangelog() = showChangelog(R.xml.frost_changelog, Prefs.textColor) {
- theme()
-}
+fun Context.frostChangelog() = showChangelog(R.xml.frost_changelog)
fun Context.frostUriFromFile(file: File): Uri =
FileProvider.getUriForFile(
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
index e361a8f3..50603069 100644
--- a/buildSrc/build.gradle.kts
+++ b/buildSrc/build.gradle.kts
@@ -9,7 +9,7 @@ repositories {
maven("https://jitpack.io")
}
-val KAU: String = "df94b2f"
+val KAU: String = "db3b6c0"
dependencies {
implementation("ca.allanwang.kau:gradle-plugin:$KAU")
diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt
index bc82b27a..6ed886e4 100644
--- a/buildSrc/src/main/kotlin/Versions.kt
+++ b/buildSrc/src/main/kotlin/Versions.kt
@@ -1,3 +1,5 @@
object Versions {
+ const val kau = "db3b6c0"
+
} \ No newline at end of file