diff --git a/app/src/main/java/com/github/libretube/util/Constants.kt b/app/src/main/java/com/github/libretube/Constants.kt similarity index 56% rename from app/src/main/java/com/github/libretube/util/Constants.kt rename to app/src/main/java/com/github/libretube/Constants.kt index 8b120a006..ca6ffa026 100644 --- a/app/src/main/java/com/github/libretube/util/Constants.kt +++ b/app/src/main/java/com/github/libretube/Constants.kt @@ -1,7 +1,22 @@ -package com.github.libretube.util +package com.github.libretube +/** + * API link for the update checker + */ const val GITHUB_API_URL = "https://api.github.com/repos/libre-tube/LibreTube/releases/latest" + +/** + * Links for the about fragment + */ const val WEBSITE_URL = "https://libre-tube.github.io/" 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" + +/** + * Social media links for the community fragment + */ +const val TELEGRAM_URL = "" +const val MATRIX_URL = "" +const val DISCORD_URL = "" +const val REDDIT_URL = "" \ No newline at end of file diff --git a/app/src/main/java/com/github/libretube/preferences/AboutFragment.kt b/app/src/main/java/com/github/libretube/preferences/AboutFragment.kt index 24db4013c..0605e6707 100644 --- a/app/src/main/java/com/github/libretube/preferences/AboutFragment.kt +++ b/app/src/main/java/com/github/libretube/preferences/AboutFragment.kt @@ -9,14 +9,14 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import com.github.libretube.DONATE_URL +import com.github.libretube.GITHUB_URL +import com.github.libretube.PIPED_GITHUB_URL import com.github.libretube.R +import com.github.libretube.WEBSITE_URL import com.github.libretube.activities.SettingsActivity import com.github.libretube.databinding.FragmentAboutBinding -import com.github.libretube.util.DONATE_URL -import com.github.libretube.util.GITHUB_URL -import com.github.libretube.util.PIPED_GITHUB_URL import com.github.libretube.util.ThemeHelper.getThemeColor -import com.github.libretube.util.WEBSITE_URL import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.snackbar.Snackbar diff --git a/app/src/main/java/com/github/libretube/preferences/CommunityFragment.kt b/app/src/main/java/com/github/libretube/preferences/CommunityFragment.kt new file mode 100644 index 000000000..1e7b8f8be --- /dev/null +++ b/app/src/main/java/com/github/libretube/preferences/CommunityFragment.kt @@ -0,0 +1,58 @@ +package com.github.libretube.preferences + +import android.content.Intent +import android.net.Uri +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import com.github.libretube.DISCORD_URL +import com.github.libretube.MATRIX_URL +import com.github.libretube.R +import com.github.libretube.REDDIT_URL +import com.github.libretube.TELEGRAM_URL +import com.github.libretube.activities.SettingsActivity +import com.github.libretube.databinding.FragmentCommunityBinding + +class CommunityFragment : Fragment() { + private lateinit var binding: FragmentCommunityBinding + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + binding = FragmentCommunityBinding.inflate(layoutInflater) + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + val settingsActivity = activity as SettingsActivity + settingsActivity.changeTopBarText(getString(R.string.community)) + + binding.telegram.setOnClickListener { + openLinkFromHref(TELEGRAM_URL) + } + + binding.matrix.setOnClickListener { + openLinkFromHref(MATRIX_URL) + } + + binding.discord.setOnClickListener { + openLinkFromHref(DISCORD_URL) + } + + binding.reddit.setOnClickListener { + openLinkFromHref(REDDIT_URL) + } + } + + private fun openLinkFromHref(link: String) { + val uri = Uri.parse(link) + val intent = Intent(Intent.ACTION_VIEW).setData(uri) + startActivity(intent) + } +} diff --git a/app/src/main/java/com/github/libretube/preferences/MainSettings.kt b/app/src/main/java/com/github/libretube/preferences/MainSettings.kt index 075b35643..52ee90b8f 100644 --- a/app/src/main/java/com/github/libretube/preferences/MainSettings.kt +++ b/app/src/main/java/com/github/libretube/preferences/MainSettings.kt @@ -38,35 +38,35 @@ class MainSettings : PreferenceFragmentCompat() { val instance = findPreference("instance") instance?.setOnPreferenceClickListener { val newFragment = InstanceSettings() - navigateSettings(newFragment) + navigateToSettingsFragment(newFragment) true } val appearance = findPreference("appearance") appearance?.setOnPreferenceClickListener { val newFragment = AppearanceSettings() - navigateSettings(newFragment) + navigateToSettingsFragment(newFragment) true } val sponsorBlock = findPreference("sponsorblock") sponsorBlock?.setOnPreferenceClickListener { val newFragment = SponsorBlockSettings() - navigateSettings(newFragment) + navigateToSettingsFragment(newFragment) true } val player = findPreference("player") player?.setOnPreferenceClickListener { val newFragment = PlayerSettings() - navigateSettings(newFragment) + navigateToSettingsFragment(newFragment) true } val advanced = findPreference("advanced") advanced?.setOnPreferenceClickListener { val newFragment = AdvancedSettings() - navigateSettings(newFragment) + navigateToSettingsFragment(newFragment) true } @@ -80,12 +80,19 @@ class MainSettings : PreferenceFragmentCompat() { val about = findPreference("about") about?.setOnPreferenceClickListener { val newFragment = AboutFragment() - navigateSettings(newFragment) + navigateToSettingsFragment(newFragment) + true + } + + val community = findPreference("community") + community?.setOnPreferenceClickListener { + val newFragment = CommunityFragment() + navigateToSettingsFragment(newFragment) true } } - private fun navigateSettings(newFragment: Fragment) { + private fun navigateToSettingsFragment(newFragment: Fragment) { isCurrentViewMainSettings = false parentFragmentManager.beginTransaction() .replace(R.id.settings, newFragment) diff --git a/app/src/main/java/com/github/libretube/util/UpdateChecker.kt b/app/src/main/java/com/github/libretube/util/UpdateChecker.kt index 4fa20c45e..3513a636d 100644 --- a/app/src/main/java/com/github/libretube/util/UpdateChecker.kt +++ b/app/src/main/java/com/github/libretube/util/UpdateChecker.kt @@ -3,6 +3,7 @@ package com.github.libretube.util import android.util.Log import androidx.fragment.app.FragmentManager import com.github.libretube.BuildConfig +import com.github.libretube.GITHUB_API_URL import com.github.libretube.dialogs.NoUpdateAvailableDialog import com.github.libretube.dialogs.UpdateAvailableDialog import com.github.libretube.obj.UpdateInfo diff --git a/app/src/main/res/drawable/ic_community.xml b/app/src/main/res/drawable/ic_community.xml new file mode 100644 index 000000000..53b474fd6 --- /dev/null +++ b/app/src/main/res/drawable/ic_community.xml @@ -0,0 +1,15 @@ + + + + diff --git a/app/src/main/res/drawable/ic_discord.xml b/app/src/main/res/drawable/ic_discord.xml new file mode 100644 index 000000000..1f9e2f420 --- /dev/null +++ b/app/src/main/res/drawable/ic_discord.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_matrix.xml b/app/src/main/res/drawable/ic_matrix.xml new file mode 100644 index 000000000..e06da1bef --- /dev/null +++ b/app/src/main/res/drawable/ic_matrix.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_reddit.xml b/app/src/main/res/drawable/ic_reddit.xml new file mode 100644 index 000000000..d7480cdb2 --- /dev/null +++ b/app/src/main/res/drawable/ic_reddit.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_telegram.xml b/app/src/main/res/drawable/ic_telegram.xml new file mode 100644 index 000000000..154dda875 --- /dev/null +++ b/app/src/main/res/drawable/ic_telegram.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/fragment_community.xml b/app/src/main/res/layout/fragment_community.xml new file mode 100644 index 000000000..2ac874fde --- /dev/null +++ b/app/src/main/res/layout/fragment_community.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0cc5687a2..c08963f15 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -221,4 +221,9 @@ Auto rotation Landscape Portrait + Community + Discord + Matrix + Telegram + Reddit \ No newline at end of file diff --git a/app/src/main/res/xml/settings.xml b/app/src/main/res/xml/settings.xml index c474c2472..44067df2c 100644 --- a/app/src/main/res/xml/settings.xml +++ b/app/src/main/res/xml/settings.xml @@ -69,9 +69,13 @@ + +