mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-27 23:40:33 +05:30
improve about snackbar
This commit is contained in:
parent
777edca2ac
commit
8817a8ab43
@ -13,6 +13,7 @@ const val DONATE_URL = "https://github.com/libre-tube/LibreTube#donate"
|
||||
const val GITHUB_URL = "https://github.com/libre-tube/LibreTube"
|
||||
const val PIPED_GITHUB_URL = "https://github.com/TeamPiped/Piped"
|
||||
const val WEBLATE_URL = "https://hosted.weblate.org/projects/libretube/libretube/"
|
||||
const val LICENSE_URL = "https://gnu.org/"
|
||||
|
||||
/**
|
||||
* Social media links for the community fragment
|
||||
|
@ -1,5 +1,8 @@
|
||||
package com.github.libretube.activities
|
||||
|
||||
import android.content.ClipData
|
||||
import android.content.ClipboardManager
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
@ -7,14 +10,16 @@ import android.os.Bundle
|
||||
import android.text.Html
|
||||
import com.github.libretube.DONATE_URL
|
||||
import com.github.libretube.GITHUB_URL
|
||||
import com.github.libretube.LICENSE_URL
|
||||
import com.github.libretube.PIPED_GITHUB_URL
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.WEBLATE_URL
|
||||
import com.github.libretube.WEBSITE_URL
|
||||
import com.github.libretube.databinding.ActivityAboutBinding
|
||||
import com.github.libretube.extensions.BaseActivity
|
||||
import com.github.libretube.extensions.showSnackBar
|
||||
import com.github.libretube.extensions.getStyledSnackBar
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
|
||||
class AboutActivity : BaseActivity() {
|
||||
private lateinit var binding: ActivityAboutBinding
|
||||
@ -29,7 +34,7 @@ class AboutActivity : BaseActivity() {
|
||||
openLinkFromHref(WEBSITE_URL)
|
||||
}
|
||||
binding.website.setOnLongClickListener {
|
||||
binding.root.showSnackBar(R.string.website_summary)
|
||||
onLongClick(WEBSITE_URL)
|
||||
true
|
||||
}
|
||||
|
||||
@ -37,7 +42,7 @@ class AboutActivity : BaseActivity() {
|
||||
openLinkFromHref(PIPED_GITHUB_URL)
|
||||
}
|
||||
binding.piped.setOnLongClickListener {
|
||||
binding.root.showSnackBar(R.string.piped_summary)
|
||||
onLongClick(PIPED_GITHUB_URL)
|
||||
true
|
||||
}
|
||||
|
||||
@ -45,7 +50,7 @@ class AboutActivity : BaseActivity() {
|
||||
openLinkFromHref(WEBLATE_URL)
|
||||
}
|
||||
binding.translate.setOnLongClickListener {
|
||||
binding.root.showSnackBar(R.string.translate_summary)
|
||||
onLongClick(WEBLATE_URL)
|
||||
true
|
||||
}
|
||||
|
||||
@ -53,7 +58,7 @@ class AboutActivity : BaseActivity() {
|
||||
openLinkFromHref(DONATE_URL)
|
||||
}
|
||||
binding.donate.setOnLongClickListener {
|
||||
binding.root.showSnackBar(R.string.donate_summary)
|
||||
onLongClick(DONATE_URL)
|
||||
true
|
||||
}
|
||||
|
||||
@ -61,7 +66,7 @@ class AboutActivity : BaseActivity() {
|
||||
openLinkFromHref(GITHUB_URL)
|
||||
}
|
||||
binding.github.setOnLongClickListener {
|
||||
binding.root.showSnackBar(R.string.contributing_summary)
|
||||
onLongClick(GITHUB_URL)
|
||||
true
|
||||
}
|
||||
|
||||
@ -69,7 +74,7 @@ class AboutActivity : BaseActivity() {
|
||||
showLicense()
|
||||
}
|
||||
binding.license.setOnLongClickListener {
|
||||
binding.root.showSnackBar(R.string.license_summary)
|
||||
onLongClick(LICENSE_URL)
|
||||
true
|
||||
}
|
||||
}
|
||||
@ -80,6 +85,21 @@ class AboutActivity : BaseActivity() {
|
||||
startActivity(intent)
|
||||
}
|
||||
|
||||
private fun onLongClick(href: String) {
|
||||
// copy the link to the clipboard
|
||||
val clipboard: ClipboardManager =
|
||||
getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
val clip = ClipData.newPlainText(getString(R.string.copied), href)
|
||||
clipboard.setPrimaryClip(clip)
|
||||
// show the snackBar with open action
|
||||
val snackBar = binding.root.getStyledSnackBar(R.string.copied_to_clipboard)
|
||||
snackBar.setAction(R.string.open_copied) {
|
||||
openLinkFromHref(href)
|
||||
}
|
||||
snackBar.animationMode = Snackbar.ANIMATION_MODE_FADE
|
||||
snackBar.show()
|
||||
}
|
||||
|
||||
private fun showLicense() {
|
||||
val licenseString = assets
|
||||
?.open("gpl3.html")
|
||||
|
@ -5,7 +5,7 @@ import android.os.Bundle
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.databinding.ActivityNointernetBinding
|
||||
import com.github.libretube.extensions.BaseActivity
|
||||
import com.github.libretube.extensions.showSnackBar
|
||||
import com.github.libretube.extensions.getStyledSnackBar
|
||||
import com.github.libretube.util.NetworkHelper
|
||||
import com.github.libretube.util.ThemeHelper
|
||||
|
||||
@ -21,7 +21,7 @@ class NoInternetActivity : BaseActivity() {
|
||||
if (NetworkHelper.isNetworkAvailable(this)) {
|
||||
ThemeHelper.restartMainActivity(this)
|
||||
} else {
|
||||
binding.root.showSnackBar(R.string.turnInternetOn)
|
||||
binding.root.getStyledSnackBar(R.string.turnInternetOn).show()
|
||||
}
|
||||
}
|
||||
binding.noInternetSettingsImageView.setOnClickListener {
|
||||
|
@ -5,7 +5,7 @@ import android.widget.FrameLayout
|
||||
import com.github.libretube.R
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
|
||||
fun View.showSnackBar(text: Int) {
|
||||
fun View.getStyledSnackBar(text: Int): Snackbar {
|
||||
val snackBar = Snackbar.make(this, text, Snackbar.LENGTH_SHORT)
|
||||
snackBar.setTextMaxLines(3)
|
||||
snackBar.animationMode = Snackbar.ANIMATION_MODE_SLIDE
|
||||
@ -22,5 +22,5 @@ fun View.showSnackBar(text: Int) {
|
||||
snackBar.view.layoutParams = params
|
||||
|
||||
snackBar.view.background = resources.getDrawable(R.drawable.snackbar_shape, null)
|
||||
snackBar.show()
|
||||
return snackBar
|
||||
}
|
@ -7,7 +7,7 @@ import com.github.libretube.BuildConfig
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.activities.SettingsActivity
|
||||
import com.github.libretube.dialogs.UpdateDialog
|
||||
import com.github.libretube.extensions.showSnackBar
|
||||
import com.github.libretube.extensions.getStyledSnackBar
|
||||
import com.github.libretube.update.UpdateChecker
|
||||
import com.github.libretube.util.NetworkHelper
|
||||
import com.github.libretube.views.MaterialPreferenceFragment
|
||||
@ -87,14 +87,14 @@ class MainSettings : MaterialPreferenceFragment() {
|
||||
update?.setOnPreferenceClickListener {
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
if (!NetworkHelper.isNetworkAvailable(requireContext())) {
|
||||
(activity as SettingsActivity).binding.root.showSnackBar(R.string.unknown_error)
|
||||
(activity as SettingsActivity).binding.root.getStyledSnackBar(R.string.unknown_error).show()
|
||||
return@launch
|
||||
}
|
||||
// check for update
|
||||
val updateInfo = UpdateChecker.getLatestReleaseInfo()
|
||||
if (updateInfo?.name == null) {
|
||||
// request failed
|
||||
(activity as SettingsActivity).binding.root.showSnackBar(R.string.unknown_error)
|
||||
(activity as SettingsActivity).binding.root.getStyledSnackBar(R.string.unknown_error).show()
|
||||
} else if (BuildConfig.VERSION_NAME != updateInfo.name) {
|
||||
// show the UpdateAvailableDialog if there's an update available
|
||||
val updateAvailableDialog = UpdateDialog(updateInfo)
|
||||
@ -104,7 +104,7 @@ class MainSettings : MaterialPreferenceFragment() {
|
||||
)
|
||||
} else {
|
||||
// otherwise show the no update available snackBar
|
||||
(activity as SettingsActivity).binding.root.showSnackBar(R.string.app_uptodate)
|
||||
(activity as SettingsActivity).binding.root.getStyledSnackBar(R.string.app_uptodate).show()
|
||||
}
|
||||
}
|
||||
true
|
||||
|
@ -315,4 +315,6 @@
|
||||
<string name="picture_in_picture">Picture in Picture</string>
|
||||
<string name="player_resize_mode">Resize mode</string>
|
||||
<string name="maximum_image_cache">Max image cache size</string>
|
||||
<string name="copied_to_clipboard">Copied to clipboard</string>
|
||||
<string name="open_copied">Open</string>
|
||||
</resources>
|
||||
|
Loading…
x
Reference in New Issue
Block a user