Add link to official subreddit

This commit is contained in:
arkon 2021-05-25 18:33:56 -04:00
parent a1a4916abf
commit 8af8c57bb4
5 changed files with 143 additions and 107 deletions

View File

@ -21,7 +21,6 @@ import eu.kanade.tachiyomi.util.lang.toDateTimestampString
import eu.kanade.tachiyomi.util.preference.add import eu.kanade.tachiyomi.util.preference.add
import eu.kanade.tachiyomi.util.preference.onClick import eu.kanade.tachiyomi.util.preference.onClick
import eu.kanade.tachiyomi.util.preference.preference import eu.kanade.tachiyomi.util.preference.preference
import eu.kanade.tachiyomi.util.preference.preferenceCategory
import eu.kanade.tachiyomi.util.preference.titleRes import eu.kanade.tachiyomi.util.preference.titleRes
import eu.kanade.tachiyomi.util.system.copyToClipboard import eu.kanade.tachiyomi.util.system.copyToClipboard
import eu.kanade.tachiyomi.util.system.openInBrowser import eu.kanade.tachiyomi.util.system.openInBrowser
@ -46,60 +45,58 @@ class AboutController : SettingsController(), NoToolbarElevationController {
add(MoreHeaderPreference(context)) add(MoreHeaderPreference(context))
add(AboutLinksPreference(context)) preference {
key = "pref_about_version"
preferenceCategory { titleRes = R.string.version
preference { summary = if (BuildConfig.DEBUG) {
key = "pref_about_version" "Preview r${BuildConfig.COMMIT_COUNT} (${BuildConfig.COMMIT_SHA}, ${getFormattedBuildTime()})"
titleRes = R.string.version } else {
summary = if (BuildConfig.DEBUG) { "Stable ${BuildConfig.VERSION_NAME} (${getFormattedBuildTime()})"
"Preview r${BuildConfig.COMMIT_COUNT} (${BuildConfig.COMMIT_SHA}, ${getFormattedBuildTime()})"
} else {
"Stable ${BuildConfig.VERSION_NAME} (${getFormattedBuildTime()})"
}
onClick {
activity?.let {
val deviceInfo = CrashLogUtil(it).getDebugInfo()
it.copyToClipboard("Debug information", deviceInfo)
}
}
} }
if (isUpdaterEnabled) {
preference {
key = "pref_about_check_for_updates"
titleRes = R.string.check_for_updates
onClick { checkVersion() } onClick {
} activity?.let {
} val deviceInfo = CrashLogUtil(it).getDebugInfo()
preference { it.copyToClipboard("Debug information", deviceInfo)
key = "pref_about_whats_new"
titleRes = R.string.whats_new
onClick {
val url = if (BuildConfig.DEBUG) {
"https://github.com/tachiyomiorg/tachiyomi-preview/releases/tag/r${BuildConfig.COMMIT_COUNT}"
} else {
"https://github.com/tachiyomiorg/tachiyomi/releases/tag/v${BuildConfig.VERSION_NAME}"
}
openInBrowser(url)
}
}
preference {
key = "pref_about_licenses"
titleRes = R.string.licenses
onClick {
LibsBuilder()
.withActivityTitle(activity!!.getString(R.string.licenses))
.withAboutIconShown(false)
.withAboutVersionShown(false)
.withLicenseShown(true)
.withEdgeToEdge(true)
.start(activity!!)
} }
} }
} }
if (isUpdaterEnabled) {
preference {
key = "pref_about_check_for_updates"
titleRes = R.string.check_for_updates
onClick { checkVersion() }
}
}
preference {
key = "pref_about_whats_new"
titleRes = R.string.whats_new
onClick {
val url = if (BuildConfig.DEBUG) {
"https://github.com/tachiyomiorg/tachiyomi-preview/releases/tag/r${BuildConfig.COMMIT_COUNT}"
} else {
"https://github.com/tachiyomiorg/tachiyomi/releases/tag/v${BuildConfig.VERSION_NAME}"
}
openInBrowser(url)
}
}
preference {
key = "pref_about_licenses"
titleRes = R.string.licenses
onClick {
LibsBuilder()
.withActivityTitle(activity!!.getString(R.string.licenses))
.withAboutIconShown(false)
.withAboutVersionShown(false)
.withLicenseShown(true)
.withEdgeToEdge(true)
.start(activity!!)
}
}
add(AboutLinksPreference(context))
} }
/** /**

View File

@ -6,6 +6,7 @@ import androidx.preference.Preference
import androidx.preference.PreferenceViewHolder import androidx.preference.PreferenceViewHolder
import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.util.system.openInBrowser import eu.kanade.tachiyomi.util.system.openInBrowser
import eu.kanade.tachiyomi.util.view.setTooltip
class AboutLinksPreference @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : class AboutLinksPreference @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
Preference(context, attrs) { Preference(context, attrs) {
@ -18,10 +19,29 @@ class AboutLinksPreference @JvmOverloads constructor(context: Context, attrs: At
override fun onBindViewHolder(holder: PreferenceViewHolder) { override fun onBindViewHolder(holder: PreferenceViewHolder) {
super.onBindViewHolder(holder) super.onBindViewHolder(holder)
holder.findViewById(R.id.btn_website).setOnClickListener { context.openInBrowser("https://tachiyomi.org") } holder.findViewById(R.id.btn_website).apply {
holder.findViewById(R.id.btn_discord).setOnClickListener { context.openInBrowser("https://discord.gg/tachiyomi") } setTooltip(contentDescription.toString())
holder.findViewById(R.id.btn_twitter).setOnClickListener { context.openInBrowser("https://twitter.com/tachiyomiorg") } setOnClickListener { context.openInBrowser("https://tachiyomi.org") }
holder.findViewById(R.id.btn_facebook).setOnClickListener { context.openInBrowser("https://facebook.com/tachiyomiorg") } }
holder.findViewById(R.id.btn_github).setOnClickListener { context.openInBrowser("https://github.com/tachiyomiorg") } holder.findViewById(R.id.btn_discord).apply {
setTooltip(contentDescription.toString())
setOnClickListener { context.openInBrowser("https://discord.gg/tachiyomi") }
}
holder.findViewById(R.id.btn_twitter).apply {
setTooltip(contentDescription.toString())
setOnClickListener { context.openInBrowser("https://twitter.com/tachiyomiorg") }
}
holder.findViewById(R.id.btn_facebook).apply {
setTooltip(contentDescription.toString())
setOnClickListener { context.openInBrowser("https://facebook.com/tachiyomiorg") }
}
holder.findViewById(R.id.btn_reddit).apply {
setTooltip(contentDescription.toString())
setOnClickListener { context.openInBrowser("https://www.reddit.com/r/Tachiyomi") }
}
holder.findViewById(R.id.btn_github).apply {
setTooltip(contentDescription.toString())
setOnClickListener { context.openInBrowser("https://github.com/tachiyomiorg") }
}
} }
} }

View File

@ -55,7 +55,16 @@ inline fun View.snack(
* @param stringRes String resource for tooltip. * @param stringRes String resource for tooltip.
*/ */
inline fun View.setTooltip(@StringRes stringRes: Int) { inline fun View.setTooltip(@StringRes stringRes: Int) {
TooltipCompat.setTooltipText(this, context.getString(stringRes)) setTooltip(context.getString(stringRes))
}
/**
* Adds a tooltip shown on long press.
*
* @param text Text for tooltip.
*/
inline fun View.setTooltip(text: String) {
TooltipCompat.setTooltipText(this, text)
} }
/** /**

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/black"
android:pathData="M14.5 15.41C14.58 15.5 14.58 15.69 14.5 15.8C13.77 16.5 12.41 16.56 12 16.56C11.61 16.56 10.25 16.5 9.54 15.8C9.44 15.69 9.44 15.5 9.54 15.41C9.65 15.31 9.82 15.31 9.92 15.41C10.38 15.87 11.33 16 12 16C12.69 16 13.66 15.87 14.1 15.41C14.21 15.31 14.38 15.31 14.5 15.41M10.75 13.04C10.75 12.47 10.28 12 9.71 12C9.14 12 8.67 12.47 8.67 13.04C8.67 13.61 9.14 14.09 9.71 14.08C10.28 14.08 10.75 13.61 10.75 13.04M14.29 12C13.72 12 13.25 12.5 13.25 13.05S13.72 14.09 14.29 14.09C14.86 14.09 15.33 13.61 15.33 13.05C15.33 12.5 14.86 12 14.29 12M22 12C22 17.5 17.5 22 12 22S2 17.5 2 12C2 6.5 6.5 2 12 2S22 6.5 22 12M18.67 12C18.67 11.19 18 10.54 17.22 10.54C16.82 10.54 16.46 10.7 16.2 10.95C15.2 10.23 13.83 9.77 12.3 9.71L12.97 6.58L15.14 7.05C15.16 7.6 15.62 8.04 16.18 8.04C16.75 8.04 17.22 7.57 17.22 7C17.22 6.43 16.75 5.96 16.18 5.96C15.77 5.96 15.41 6.2 15.25 6.55L12.82 6.03C12.75 6 12.68 6.03 12.63 6.07C12.57 6.11 12.54 6.17 12.53 6.24L11.79 9.72C10.24 9.77 8.84 10.23 7.82 10.96C7.56 10.71 7.2 10.56 6.81 10.56C6 10.56 5.35 11.21 5.35 12C5.35 12.61 5.71 13.11 6.21 13.34C6.19 13.5 6.18 13.62 6.18 13.78C6.18 16 8.79 17.85 12 17.85C15.23 17.85 17.85 16.03 17.85 13.78C17.85 13.64 17.84 13.5 17.81 13.34C18.31 13.11 18.67 12.6 18.67 12Z" />
</vector>

View File

@ -4,70 +4,71 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="8dp"> android:gravity="center">
<com.google.android.material.button.MaterialButton <ImageButton
android:id="@+id/btn_website" android:id="@+id/btn_website"
style="@style/Theme.Widget.Button.Action" android:layout_width="wrap_content"
android:layout_width="0dp" android:layout_height="wrap_content"
android:layout_height="match_parent" android:background="?attr/selectableItemBackgroundBorderless"
android:layout_weight="1" android:contentDescription="@string/website"
android:ellipsize="end" android:padding="16dp"
android:maxLines="1" android:src="@drawable/ic_public_24dp"
android:text="@string/website" app:tint="?attr/colorAccent" />
app:icon="@drawable/ic_public_24dp"
app:iconTint="?attr/colorAccent" />
<com.google.android.material.button.MaterialButton <ImageButton
android:id="@+id/btn_discord" android:id="@+id/btn_discord"
style="@style/Theme.Widget.Button.Action" android:layout_width="wrap_content"
android:layout_width="0dp" android:layout_height="wrap_content"
android:layout_height="match_parent" android:background="?attr/selectableItemBackgroundBorderless"
android:layout_weight="1" android:contentDescription="Discord"
android:ellipsize="end" android:padding="16dp"
android:maxLines="1" android:src="@drawable/ic_discord_24dp"
android:text="Discord" app:tint="?attr/colorAccent"
app:icon="@drawable/ic_discord_24dp"
app:iconTint="?attr/colorAccent"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
<com.google.android.material.button.MaterialButton <ImageButton
android:id="@+id/btn_twitter" android:id="@+id/btn_twitter"
style="@style/Theme.Widget.Button.Action" android:layout_width="wrap_content"
android:layout_width="0dp" android:layout_height="wrap_content"
android:layout_height="match_parent" android:background="?attr/selectableItemBackgroundBorderless"
android:layout_weight="1" android:contentDescription="Twitter"
android:ellipsize="end" android:padding="16dp"
android:maxLines="1" android:src="@drawable/ic_twitter_24dp"
android:text="Twitter" app:tint="?attr/colorAccent"
app:icon="@drawable/ic_twitter_24dp"
app:iconTint="?attr/colorAccent"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
<com.google.android.material.button.MaterialButton <ImageButton
android:id="@+id/btn_facebook" android:id="@+id/btn_facebook"
style="@style/Theme.Widget.Button.Action" android:layout_width="wrap_content"
android:layout_width="0dp" android:layout_height="wrap_content"
android:layout_height="match_parent" android:background="?attr/selectableItemBackgroundBorderless"
android:layout_weight="1" android:contentDescription="Facebook"
android:ellipsize="end" android:padding="16dp"
android:maxLines="1" android:src="@drawable/ic_facebook_24dp"
android:text="Facebook" app:tint="?attr/colorAccent"
app:icon="@drawable/ic_facebook_24dp"
app:iconTint="?attr/colorAccent"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
<com.google.android.material.button.MaterialButton <ImageButton
android:id="@+id/btn_reddit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="Reddit"
android:padding="16dp"
android:src="@drawable/ic_reddit_24dp"
app:tint="?attr/colorAccent"
tools:ignore="HardcodedText" />
<ImageButton
android:id="@+id/btn_github" android:id="@+id/btn_github"
style="@style/Theme.Widget.Button.Action" android:layout_width="wrap_content"
android:layout_width="0dp" android:layout_height="wrap_content"
android:layout_height="match_parent" android:background="?attr/selectableItemBackgroundBorderless"
android:layout_weight="1" android:contentDescription="GitHub"
android:ellipsize="end" android:padding="16dp"
android:maxLines="1" android:src="@drawable/ic_github_24dp"
android:text="GitHub" app:tint="?attr/colorAccent"
app:icon="@drawable/ic_github_24dp"
app:iconTint="?attr/colorAccent"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
</LinearLayout> </LinearLayout>