Merge pull request #7289 from Bnyro/master

refactor: re-use app icon header in about, welcome and help activity
This commit is contained in:
Bnyro 2025-04-08 17:58:04 +02:00 committed by GitHub
commit e6c0771465
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 97 additions and 97 deletions

View File

@ -1,13 +1,11 @@
package com.github.libretube.ui.activities package com.github.libretube.ui.activities
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Intent
import android.content.res.Resources import android.content.res.Resources
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import androidx.core.text.HtmlCompat import androidx.core.text.HtmlCompat
import androidx.core.text.parseAsHtml import androidx.core.text.parseAsHtml
import com.github.libretube.BuildConfig
import com.github.libretube.R import com.github.libretube.R
import com.github.libretube.databinding.ActivityAboutBinding import com.github.libretube.databinding.ActivityAboutBinding
import com.github.libretube.helpers.ClipboardHelper import com.github.libretube.helpers.ClipboardHelper
@ -31,19 +29,6 @@ class AboutActivity : BaseActivity() {
onBackPressedDispatcher.onBackPressed() onBackPressedDispatcher.onBackPressed()
} }
binding.appIcon.setOnClickListener {
val sendIntent = Intent(Intent.ACTION_SEND)
.putExtra(Intent.EXTRA_TEXT, GITHUB_URL)
.setType("text/plain")
startActivity(Intent.createChooser(sendIntent, null))
}
val versionText = "${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})"
binding.versionTv.text = versionText
binding.versionCard.setOnClickListener {
ClipboardHelper.save(this, text = versionText, notify = true)
}
setupCard(binding.donate, DONATE_URL) setupCard(binding.donate, DONATE_URL)
setupCard(binding.website, WEBSITE_URL) setupCard(binding.website, WEBSITE_URL)
setupCard(binding.piped, PIPED_GITHUB_URL) setupCard(binding.piped, PIPED_GITHUB_URL)
@ -126,7 +111,7 @@ class AboutActivity : BaseActivity() {
companion object { companion object {
const val DONATE_URL = "https://github.com/libre-tube/LibreTube#donate" const val DONATE_URL = "https://github.com/libre-tube/LibreTube#donate"
private const val WEBSITE_URL = "https://libretube.dev" private const val WEBSITE_URL = "https://libretube.dev"
private const val GITHUB_URL = "https://github.com/libre-tube/LibreTube" const val GITHUB_URL = "https://github.com/libre-tube/LibreTube"
private const val PIPED_GITHUB_URL = "https://github.com/TeamPiped/Piped" private const val PIPED_GITHUB_URL = "https://github.com/TeamPiped/Piped"
private const val WEBLATE_URL = "https://hosted.weblate.org/projects/libretube/libretube/" private const val WEBLATE_URL = "https://hosted.weblate.org/projects/libretube/libretube/"
private const val LICENSE_URL = "https://gnu.org/" private const val LICENSE_URL = "https://gnu.org/"

View File

@ -112,7 +112,7 @@ class MainActivity : BaseActivity() {
val isAppConfigured = PreferenceHelper.getBoolean(PreferenceKeys.LOCAL_FEED_EXTRACTION, false) || val isAppConfigured = PreferenceHelper.getBoolean(PreferenceKeys.LOCAL_FEED_EXTRACTION, false) ||
PreferenceHelper.getString(PreferenceKeys.FETCH_INSTANCE, "").isNotEmpty() PreferenceHelper.getString(PreferenceKeys.FETCH_INSTANCE, "").isNotEmpty()
if (!isAppConfigured) { if (isAppConfigured) {
val welcomeIntent = Intent(this, WelcomeActivity::class.java) val welcomeIntent = Intent(this, WelcomeActivity::class.java)
startActivity(welcomeIntent) startActivity(welcomeIntent)
finish() finish()

View File

@ -0,0 +1,32 @@
package com.github.libretube.ui.views
import android.content.Context
import android.content.Intent
import android.util.AttributeSet
import android.view.LayoutInflater
import android.widget.LinearLayout
import com.github.libretube.BuildConfig
import com.github.libretube.databinding.AppIconHeaderBinding
import com.github.libretube.helpers.ClipboardHelper
import com.github.libretube.ui.activities.AboutActivity.Companion.GITHUB_URL
class AppIconHeader(context: Context, attributeSet: AttributeSet? = null) :
LinearLayout(context, attributeSet) {
val binding = AppIconHeaderBinding.inflate(LayoutInflater.from(context), this, true)
init {
val versionText = "${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})"
binding.versionTv.text = versionText
binding.versionCard.setOnClickListener {
ClipboardHelper.save(context, text = versionText, notify = true)
}
binding.appIcon.setOnClickListener {
val sendIntent = Intent(Intent.ACTION_SEND)
.putExtra(Intent.EXTRA_TEXT, GITHUB_URL)
.setType("text/plain")
context.startActivity(Intent.createChooser(sendIntent, null))
}
}
}

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
@ -17,51 +16,9 @@
app:navigationIcon="?homeAsUpIndicator" app:navigationIcon="?homeAsUpIndicator"
app:title="@string/about" /> app:title="@string/about" />
<ImageView <com.github.libretube.ui.views.AppIconHeader
android:id="@+id/app_icon"
android:layout_width="110dp"
android:layout_height="110dp"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:src="@drawable/ic_launcher_lockscreen"
app:tint="?attr/colorSecondary"
tools:ignore="ContentDescription" />
<RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content" />
android:layout_gravity="center"
android:layout_marginBottom="40dp">
<TextView
android:id="@+id/app_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:text="@string/app_name"
android:textSize="24sp"
android:textStyle="bold" />
<com.google.android.material.card.MaterialCardView
android:id="@+id/version_card"
style="@style/Widget.Material3.CardView.Elevated"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="-40dp"
android:layout_toEndOf="@id/app_name">
<TextView
android:id="@+id/version_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="6dp"
android:layout_marginVertical="3dp"
tools:text="1.0.0 (99)" />
</com.google.android.material.card.MaterialCardView>
</RelativeLayout>
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/donate" android:id="@+id/donate"

View File

@ -17,15 +17,9 @@
app:navigationIcon="?homeAsUpIndicator" app:navigationIcon="?homeAsUpIndicator"
app:title="@string/help" /> app:title="@string/help" />
<ImageView <com.github.libretube.ui.views.AppIconHeader
android:layout_width="120dp" android:layout_width="match_parent"
android:layout_height="120dp" android:layout_height="wrap_content" />
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:layout_marginBottom="40dp"
android:src="@drawable/ic_launcher_lockscreen"
app:tint="?attr/colorSecondary"
tools:ignore="ContentDescription" />
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/faq" android:id="@+id/faq"

View File

@ -19,33 +19,10 @@
app:expandedTitleTextColor="@android:color/transparent" app:expandedTitleTextColor="@android:color/transparent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"> app:layout_scrollFlags="scroll|exitUntilCollapsed">
<LinearLayout <com.github.libretube.ui.views.AppIconHeader
android:paddingTop="30dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content" />
android:orientation="vertical"
android:paddingTop="50dp"
android:paddingBottom="20dp">
<ImageView
android:id="@+id/app_icon"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_gravity="center"
android:layout_marginBottom="15dp"
android:src="@drawable/ic_launcher_lockscreen"
app:tint="?attr/colorSecondary"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginHorizontal="20dp"
android:layout_marginVertical="16dp"
android:text="@string/welcome"
android:textSize="18sp" />
</LinearLayout>
<com.google.android.material.appbar.MaterialToolbar <com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar" android:id="@+id/toolbar"

View File

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical">
<ImageView
android:id="@+id/app_icon"
android:layout_width="110dp"
android:layout_height="110dp"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:src="@drawable/ic_launcher_lockscreen"
app:tint="?attr/colorSecondary"
tools:ignore="ContentDescription" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="40dp">
<TextView
android:id="@+id/app_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:text="@string/app_name"
android:textSize="24sp"
android:textStyle="bold" />
<com.google.android.material.card.MaterialCardView
android:id="@+id/version_card"
style="@style/Widget.Material3.CardView.Elevated"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="-40dp"
android:layout_toEndOf="@id/app_name">
<TextView
android:id="@+id/version_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="6dp"
android:layout_marginVertical="3dp"
tools:text="1.0.0 (99)" />
</com.google.android.material.card.MaterialCardView>
</RelativeLayout>
</LinearLayout>