diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 58e8551..b53a8cd 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -48,5 +48,6 @@ dependencies { implementation("androidx.navigation:navigation-ui-ktx:2.7.7") implementation("com.google.code.gson:gson:2.11.0") implementation("androidx.recyclerview:recyclerview:1.3.2") - implementation("androidx.preference:preference:1.2.1") + implementation("androidx.preference:preference-ktx:1.2.1") + implementation ("androidx.activity:activity-ktx:1.9.1") } \ No newline at end of file diff --git a/app/src/main/java/eu/ottop/yamlauncher/AboutFragment.kt b/app/src/main/java/eu/ottop/yamlauncher/AboutFragment.kt new file mode 100644 index 0000000..2a53772 --- /dev/null +++ b/app/src/main/java/eu/ottop/yamlauncher/AboutFragment.kt @@ -0,0 +1,34 @@ +package eu.ottop.yamlauncher + +import android.os.Bundle +import android.text.Html +import android.text.method.LinkMovementMethod +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView + +class AboutFragment : Fragment() { + + private val stringUtils = StringUtils() + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_about, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + stringUtils.setLink(requireActivity().findViewById(R.id.codebergLink), getString(R.string.codeberg_link)) + stringUtils.setLink(requireActivity().findViewById(R.id.githubLink), getString(R.string.github_link)) + stringUtils.setLink(requireActivity().findViewById(R.id.stripeLink), getString(R.string.stripe_link)) + stringUtils.setLink(requireActivity().findViewById(R.id.liberaLink), getString(R.string.libera_link)) + stringUtils.setLink(requireActivity().findViewById(R.id.weatherLink), getString(R.string.weather_link)) + } + + +} \ No newline at end of file diff --git a/app/src/main/java/eu/ottop/yamlauncher/LocationFragment.kt b/app/src/main/java/eu/ottop/yamlauncher/LocationFragment.kt index 2b92fa1..cf73c7d 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/LocationFragment.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/LocationFragment.kt @@ -22,6 +22,7 @@ class LocationFragment : Fragment(), LocationListAdapter.OnItemClickListener { private var adapter: LocationListAdapter? = null private val weatherSystem = WeatherSystem() private val sharedPreferenceManager = SharedPreferenceManager() + private val stringUtils = StringUtils() override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -38,6 +39,8 @@ class LocationFragment : Fragment(), LocationListAdapter.OnItemClickListener { var locationList = mutableListOf>() + stringUtils.setLink(requireActivity().findViewById(R.id.locationLink), getString(R.string.location_link)) + CoroutineScope(Dispatchers.IO).launch { locationList = weatherSystem.getSearchedLocations( searchView.text.toString() diff --git a/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt b/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt index 686b3f0..452e17e 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt @@ -302,7 +302,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh } } - override fun onNewIntent(intent: Intent?) { + override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) backToHome() } diff --git a/app/src/main/java/eu/ottop/yamlauncher/SettingsFragment.kt b/app/src/main/java/eu/ottop/yamlauncher/SettingsFragment.kt index 4e1f3cd..918fdcb 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/SettingsFragment.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/SettingsFragment.kt @@ -22,6 +22,7 @@ class SettingsFragment : PreferenceFragmentCompat() { manualLocationPref = findPreference("manual_location") val leftSwipePref = findPreference("leftSwipeApp") val rightSwipePref = findPreference("rightSwipeApp") + val aboutPref = findPreference("about_page") manualLocationPref?.summary = sharedPreferenceManager.getWeatherRegion(requireContext()) leftSwipePref?.summary = sharedPreferenceManager.getGestureName(requireContext(), "left") @@ -105,6 +106,15 @@ class SettingsFragment : PreferenceFragmentCompat() { rightSwipePref?.summary = appName } true } + + aboutPref?.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + requireActivity().supportFragmentManager + .beginTransaction() + .replace(R.id.settings_layout, AboutFragment()) + .addToBackStack(null) + .commit() + true } } override fun onResume() { diff --git a/app/src/main/java/eu/ottop/yamlauncher/StringUtils.kt b/app/src/main/java/eu/ottop/yamlauncher/StringUtils.kt index 8ff5493..3484f41 100644 --- a/app/src/main/java/eu/ottop/yamlauncher/StringUtils.kt +++ b/app/src/main/java/eu/ottop/yamlauncher/StringUtils.kt @@ -1,5 +1,9 @@ package eu.ottop.yamlauncher +import android.text.Html +import android.text.method.LinkMovementMethod +import android.widget.TextView + class StringUtils { fun addEndTextIfNotEmpty(value: String, addition: String): String { @@ -14,4 +18,9 @@ class StringUtils { return string?.replace("[^a-zA-Z0-9]".toRegex(), "") } + fun setLink(view: TextView, link: String) { + view.text = Html.fromHtml(link, Html.FROM_HTML_MODE_LEGACY) + view.movementMethod = LinkMovementMethod.getInstance() + } + } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_about.xml b/app/src/main/res/layout/fragment_about.xml new file mode 100644 index 0000000..e34d32c --- /dev/null +++ b/app/src/main/res/layout/fragment_about.xml @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_location.xml b/app/src/main/res/layout/fragment_location.xml index 037c18d..b5291ba 100644 --- a/app/src/main/res/layout/fragment_location.xml +++ b/app/src/main/res/layout/fragment_location.xml @@ -49,7 +49,7 @@ android:layout_gravity="center_vertical" android:layout_marginHorizontal="32dp" android:layout_marginTop="5dp" - android:layout_marginBottom="10dp" + android:layout_marginBottom="0dp" android:layout_weight="0.1" android:background="@android:color/transparent" android:cursorVisible="true" @@ -63,5 +63,21 @@ android:textSize="25sp" tools:ignore="RtlCompat" /> + + \ 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 599b501..bafcd6e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -65,4 +65,13 @@ Only download attachments when manually requested + Codeberg]]> + GitHub]]> + + Stripe]]> + Liberapay]]> + + Open-Meteo.com
(CC BY 4.0)]]>
+ Open-Meteo.com (CC BY 4.0)]]> + \ No newline at end of file diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml index e83b888..97ef659 100644 --- a/app/src/main/res/xml/root_preferences.xml +++ b/app/src/main/res/xml/root_preferences.xml @@ -207,5 +207,17 @@ app:selectable="true" app:title="Manage Hidden Apps" /> + + + \ No newline at end of file