From db262e95779e0a17275bdb94be2b0ac12819178e Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Mon, 11 Dec 2017 17:52:24 -0500 Subject: Feature/tab customization (#522) * Add initial tab customizing view * Add rest of content for now * Delete project file backups * Stash * Support full tab customization * Test activity animations * Update kau and fix sound uri * Try catch download, resolves #523 --- .../kotlin/com/pitchedapps/frost/settings/Appearance.kt | 17 ++++++++++------- .../main/kotlin/com/pitchedapps/frost/settings/Debug.kt | 2 +- .../com/pitchedapps/frost/settings/Experimental.kt | 3 +-- .../main/kotlin/com/pitchedapps/frost/settings/Feed.kt | 4 +--- .../com/pitchedapps/frost/settings/Notifications.kt | 12 ++++-------- 5 files changed, 17 insertions(+), 21 deletions(-) (limited to 'app/src/main/kotlin/com/pitchedapps/frost/settings') 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 382b2dad..2c229830 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt @@ -23,7 +23,7 @@ fun SettingsActivity.getAppearancePrefs(): KPrefAdapterBuilder.() -> Unit = { header(R.string.theme_customization) text(R.string.theme, { Prefs.theme }, { Prefs.theme = it }) { - onClick = { _, _, item -> + onClick = { materialDialogThemed { title(R.string.theme) items(Theme.values() @@ -46,7 +46,6 @@ fun SettingsActivity.getAppearancePrefs(): KPrefAdapterBuilder.() -> Unit = { true } } - true } textGetter = { string(Theme(it).textRes) @@ -55,12 +54,12 @@ fun SettingsActivity.getAppearancePrefs(): KPrefAdapterBuilder.() -> Unit = { fun KPrefColorPicker.KPrefColorContract.dependsOnCustom() { enabler = { Prefs.isCustomTheme } - onDisabledClick = { _, _, _ -> frostSnackbar(R.string.requires_custom_theme); true } + onDisabledClick = { frostSnackbar(R.string.requires_custom_theme) } allowCustom = true } fun invalidateCustomTheme() { - CssAssets.CUSTOM.injector = null + CssAssets.CUSTOM.injector.invalidate() } colorPicker(R.string.text_color, { Prefs.customTextColor }, { @@ -119,9 +118,9 @@ fun SettingsActivity.getAppearancePrefs(): KPrefAdapterBuilder.() -> Unit = { text(R.string.main_activity_layout, { Prefs.mainActivityLayoutType }, { Prefs.mainActivityLayoutType = it }) { textGetter = { string(Prefs.mainActivityLayout.titleRes) } - onClick = { _, _, item -> + onClick = { materialDialogThemed { - title(R.string.set_main_activity_layout) + title(R.string.main_activity_layout_desc) items(MainActivityLayout.values.map { string(it.titleRes) }) itemsCallbackSingleChoice(item.pref) { _, _, which, _ -> if (item.pref != which) { @@ -132,10 +131,14 @@ fun SettingsActivity.getAppearancePrefs(): KPrefAdapterBuilder.() -> Unit = { true } } - true } } + plainText(R.string.main_tabs) { + descRes = R.string.main_tabs_desc + onClick = { launchTabCustomizerActivity() } + } + checkbox(R.string.rounded_icons, { Prefs.showRoundedIcons }, { Prefs.showRoundedIcons = it setFrostResult(MainActivity.REQUEST_REFRESH) 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 fc008765..60397158 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Debug.kt @@ -36,7 +36,7 @@ fun SettingsActivity.getDebugPrefs(): KPrefAdapterBuilder.() -> Unit = { Debugger.values().forEach { plainText(it.data.titleId) { iicon = it.data.icon - onClick = { itemView, _, _ -> it.debug(itemView.context); true } + onClick = { it.debug(itemView.context) } } } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt index aad2fe9a..ed011af9 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt @@ -39,10 +39,9 @@ fun SettingsActivity.getExperimentalPrefs(): KPrefAdapterBuilder.() -> Unit = { plainText(R.string.restart_frost) { descRes = R.string.restart_frost_desc - onClick = { _, _, _ -> + onClick = { setFrostResult(MainActivity.REQUEST_RESTART_APPLICATION) finish() - true } } } \ No newline at end of file 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 e3a0872a..2a0f913c 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Feed.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Feed.kt @@ -7,7 +7,6 @@ import com.pitchedapps.frost.activities.MainActivity import com.pitchedapps.frost.activities.SettingsActivity import com.pitchedapps.frost.enums.FeedSort import com.pitchedapps.frost.utils.Prefs -import com.pitchedapps.frost.utils.launchWebOverlay import com.pitchedapps.frost.utils.materialDialogThemed /** @@ -17,7 +16,7 @@ fun SettingsActivity.getFeedPrefs(): KPrefAdapterBuilder.() -> Unit = { text(R.string.newsfeed_sort, { Prefs.feedSort }, { Prefs.feedSort = it }) { descRes = R.string.newsfeed_sort_desc - onClick = { _, _, item -> + onClick = { materialDialogThemed { title(R.string.newsfeed_sort) items(FeedSort.values().map { string(it.textRes) }) @@ -29,7 +28,6 @@ fun SettingsActivity.getFeedPrefs(): KPrefAdapterBuilder.() -> Unit = { true }) } - true } textGetter = { string(FeedSort(it).textRes) } } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Notifications.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Notifications.kt index f46517ac..4bd41802 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Notifications.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Notifications.kt @@ -25,7 +25,7 @@ fun SettingsActivity.getNotificationPrefs(): KPrefAdapterBuilder.() -> Unit = { text(R.string.notification_frequency, { Prefs.notificationFreq }, { Prefs.notificationFreq = it }) { val options = longArrayOf(-1, 15, 30, 60, 120, 180, 300, 1440, 2880) val texts = options.map { if (it <= 0) string(R.string.no_notifications) else minuteToText(it) } - onClick = { _, _, item -> + onClick = { materialDialogThemed { title(R.string.notification_frequency) items(texts) @@ -35,14 +35,13 @@ fun SettingsActivity.getNotificationPrefs(): KPrefAdapterBuilder.() -> Unit = { true }) } - true } textGetter = { minuteToText(it) } } plainText(R.string.notification_keywords) { descRes = R.string.notification_keywords_desc - onClick = { _, _, _ -> + onClick = { val keywordView = Keywords(this@getNotificationPrefs) materialDialogThemed { title(R.string.notification_keywords) @@ -50,7 +49,6 @@ fun SettingsActivity.getNotificationPrefs(): KPrefAdapterBuilder.() -> Unit = { dismissListener { keywordView.save() } positiveText(R.string.kau_done) } - true } } @@ -76,7 +74,7 @@ fun SettingsActivity.getNotificationPrefs(): KPrefAdapterBuilder.() -> Unit = { else RingtoneManager.getRingtone(this@getNotificationPrefs, Uri.parse(it)) ?.getTitle(this@getNotificationPrefs) ?: "---" //todo figure out why this happens } - onClick = { _, _, item -> + onClick = { val intent = Intent(RingtoneManager.ACTION_RINGTONE_PICKER).apply { putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, string(R.string.select_ringtone)) putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false) @@ -86,7 +84,6 @@ fun SettingsActivity.getNotificationPrefs(): KPrefAdapterBuilder.() -> Unit = { putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, Uri.parse(item.pref)) } startActivityForResult(intent, code) - true } } @@ -104,10 +101,9 @@ fun SettingsActivity.getNotificationPrefs(): KPrefAdapterBuilder.() -> Unit = { plainText(R.string.notification_fetch_now) { descRes = R.string.notification_fetch_now_desc - onClick = { _, _, _ -> + onClick = { val text = if (fetchNotifications()) R.string.notification_fetch_success else R.string.notification_fetch_fail frostSnackbar(text) - true } } -- cgit v1.2.3