瀏覽代碼

Point to GitHub releases for stable changelogs

arkon 4 年之前
父節點
當前提交
68df2f4ce7

+ 0 - 3
app/build.gradle

@@ -192,9 +192,6 @@ dependencies {
     // HTML parser
     implementation 'org.jsoup:jsoup:1.13.1'
 
-    // Changelog
-    implementation 'com.github.gabrielemariotti.changeloglib:changelog:2.1.0'
-
     // Database
     implementation 'androidx.sqlite:sqlite:2.1.0'
     implementation 'com.github.inorichi.storio:storio-common:8be19de@aar'

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/Migrations.kt

@@ -89,7 +89,7 @@ object Migrations {
                     preferences.librarySortingMode().set(LibrarySort.ALPHA)
                 }
             }
-            return !BuildConfig.DEBUG
+            return true
         }
         return false
     }

+ 0 - 31
app/src/main/java/eu/kanade/tachiyomi/ui/main/ChangelogDialogController.kt

@@ -1,31 +0,0 @@
-package eu.kanade.tachiyomi.ui.main
-
-import android.app.Dialog
-import android.content.Context
-import android.os.Bundle
-import android.util.AttributeSet
-import com.afollestad.materialdialogs.MaterialDialog
-import com.afollestad.materialdialogs.customview.customView
-import eu.kanade.tachiyomi.R
-import eu.kanade.tachiyomi.ui.base.controller.DialogController
-import it.gmariotti.changelibs.library.view.ChangeLogRecyclerView
-
-class ChangelogDialogController : DialogController() {
-
-    override fun onCreateDialog(savedViewState: Bundle?): Dialog {
-        val activity = activity!!
-        val view = WhatsNewRecyclerView(activity)
-        return MaterialDialog(activity)
-            .title(R.string.changelog)
-            .customView(view = view)
-            .positiveButton(R.string.action_close)
-    }
-
-    class WhatsNewRecyclerView(context: Context) : ChangeLogRecyclerView(context) {
-        override fun initAttrs(attrs: AttributeSet?, defStyle: Int) {
-            mRowLayoutId = R.layout.changelog_row_layout
-            mRowHeaderLayoutId = R.layout.changelog_header_layout
-            mChangeLogFileResourceId = R.raw.changelog_release
-        }
-    }
-}

+ 21 - 3
app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt

@@ -3,7 +3,9 @@ package eu.kanade.tachiyomi.ui.main
 import android.app.Activity
 import android.app.SearchManager
 import android.content.Intent
+import android.net.Uri
 import android.os.Bundle
+import android.view.Gravity
 import android.view.View
 import android.view.ViewGroup
 import android.widget.Toast
@@ -15,7 +17,9 @@ import com.bluelinelabs.conductor.Router
 import com.bluelinelabs.conductor.RouterTransaction
 import com.google.android.material.appbar.AppBarLayout
 import com.google.android.material.behavior.HideBottomViewOnScrollBehavior
+import com.google.android.material.snackbar.Snackbar
 import com.google.android.material.tabs.TabLayout
+import eu.kanade.tachiyomi.BuildConfig
 import eu.kanade.tachiyomi.Migrations
 import eu.kanade.tachiyomi.R
 import eu.kanade.tachiyomi.data.notification.NotificationReceiver
@@ -38,6 +42,7 @@ import eu.kanade.tachiyomi.ui.recent.updates.UpdatesController
 import eu.kanade.tachiyomi.util.lang.launchIO
 import eu.kanade.tachiyomi.util.lang.launchUI
 import eu.kanade.tachiyomi.util.system.toast
+import eu.kanade.tachiyomi.util.view.snack
 import java.util.Date
 import java.util.concurrent.TimeUnit
 import kotlinx.coroutines.delay
@@ -144,9 +149,22 @@ class MainActivity : BaseActivity<MainActivityBinding>() {
         syncActivityViewWithController(router.backstack.lastOrNull()?.controller())
 
         if (savedInstanceState == null) {
-            // Show changelog if needed
-            if (Migrations.upgrade(preferences)) {
-                ChangelogDialogController().showDialog(router)
+            // Show changelog prompt on update
+            if (Migrations.upgrade(preferences) && !BuildConfig.DEBUG) {
+                binding.controllerContainer.snack(getString(R.string.updated_version, BuildConfig.VERSION_NAME), Snackbar.LENGTH_INDEFINITE) {
+                    setAction(R.string.whats_new) {
+                        val url = "https://github.com/inorichi/tachiyomi/releases/tag/v${BuildConfig.VERSION_NAME}"
+                        val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
+                        startActivity(intent)
+                    }
+
+                    // Ensure the snackbar sits above the bottom nav
+                    val layoutParams = view.layoutParams as CoordinatorLayout.LayoutParams
+                    layoutParams.anchorId = binding.bottomNav.id
+                    layoutParams.anchorGravity = Gravity.TOP
+                    layoutParams.gravity = Gravity.TOP
+                    view.layoutParams = layoutParams
+                }
             }
         }
 

+ 7 - 6
app/src/main/java/eu/kanade/tachiyomi/ui/more/AboutController.kt

@@ -14,7 +14,6 @@ import eu.kanade.tachiyomi.data.updater.UpdateChecker
 import eu.kanade.tachiyomi.data.updater.UpdateResult
 import eu.kanade.tachiyomi.data.updater.UpdaterService
 import eu.kanade.tachiyomi.ui.base.controller.DialogController
-import eu.kanade.tachiyomi.ui.main.ChangelogDialogController
 import eu.kanade.tachiyomi.ui.setting.SettingsController
 import eu.kanade.tachiyomi.util.lang.launchNow
 import eu.kanade.tachiyomi.util.lang.toDateTimestampString
@@ -67,15 +66,17 @@ class AboutController : SettingsController() {
             }
         }
         preference {
-            titleRes = R.string.changelog
+            titleRes = R.string.whats_new
 
             onClick {
-                if (BuildConfig.DEBUG) {
-                    val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/inorichi/tachiyomi/commits/dev"))
-                    startActivity(intent)
+                val url = if (BuildConfig.DEBUG) {
+                    "https://github.com/inorichi/tachiyomi/commits/dev"
                 } else {
-                    ChangelogDialogController().showDialog(router)
+                    "https://github.com/inorichi/tachiyomi/releases/tag/v${BuildConfig.VERSION_NAME}"
                 }
+
+                val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
+                startActivity(intent)
             }
         }
         if (BuildConfig.DEBUG) {

+ 0 - 25
app/src/main/res/layout/changelog_header_layout.xml

@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/chg_rowheader"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:gravity="center_vertical"
-    android:minHeight="@dimen/chglib_material_minHeight"
-    android:orientation="horizontal"
-    android:paddingStart="@dimen/chglib_material_keyline1"
-    android:paddingEnd="@dimen/chglib_material_keyline1">
-
-    <!-- ChangeLog Header [Version] You have to use the id="chg_headerVersion" -->
-    <TextView
-        android:id="@+id/chg_headerVersion"
-        style="?android:attr/listSeparatorTextViewStyle"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:gravity="center_vertical"
-        android:paddingTop="@dimen/chglib_material_keyline1"
-        android:paddingBottom="@dimen/chglib_material_keyline1"
-        android:textAllCaps="false"
-        android:textAppearance="@style/TextAppearance.Medium.Body2"
-        android:textColor="?attr/colorAccent" />
-
-</LinearLayout>

+ 0 - 35
app/src/main/res/layout/changelog_row_layout.xml

@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:id="@+id/chg_row"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:minHeight="@dimen/listPreferredItemHeightSmall"
-    android:orientation="horizontal">
-
-    <!-- ChangeLog Row [Bullet Point] You have to use the id="chg_textbullet" -->
-    <TextView
-        android:id="@+id/chg_textbullet"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
-        android:gravity="center_vertical"
-        android:paddingStart="@dimen/chglib_material_keyline1"
-        android:paddingEnd="0dp"
-        android:text="@string/changelog_row_bulletpoint"
-        android:textAppearance="@style/TextAppearance.Medium.Title" />
-
-    <!-- ChangeLog Row [Text] You have to use the id="chg_text" -->
-    <TextView
-        android:id="@+id/chg_text"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:gravity="center_vertical"
-        android:minHeight="@dimen/listPreferredItemHeightSmall"
-        android:paddingStart="@dimen/chglib_material_keyline1"
-        android:paddingTop="8dp"
-        android:paddingEnd="@dimen/chglib_material_keyline1"
-        android:paddingBottom="8dp"
-        android:textAppearance="@style/TextAppearance.Regular.Body1"
-        tools:text="Use DashClock with Android 4.2's Daydream feature; great for use with desktop docks!" />
-
-</LinearLayout>

+ 0 - 136
app/src/main/res/raw/changelog_release.xml

@@ -1,136 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<changelog bulletedList="true">
-    <changelogversion versionName="v0.9.2" changeDate="">
-        <changelogtext>Mostly minor fixes on top of v0.9.0 / v0.9.1.</changelogtext>
-        <changelogtext>Fix: backup failing when a source isn't installed</changelogtext>
-        <changelogtext>Fix: local manga page sorting</changelogtext>
-        <changelogtext>Fix: 32-bit color setting not showing up in reader settings (Android 8+)</changelogtext>
-        <changelogtext>Enhancement: collapse top and bottom toolbars on scroll</changelogtext>
-    </changelogversion>
-
-    <changelogversion versionName="v0.9.1" changeDate="">
-        <changelogtext>Mostly minor fixes on top of v0.9.0.</changelogtext>
-        <changelogtext>Fix: sources tab not updating after installing an extension</changelogtext>
-        <changelogtext>Fix: disabled Proguard, which was causing issues with some extensions (e.g. Komga)</changelogtext>
-        <changelogtext>Fix: inverted selection in chapters list re-inverting after performing an action</changelogtext>
-        <changelogtext>Fix: manga info being cut off on smaller screens</changelogtext>
-        <changelogtext>Enhancement: removed notification sound when backup or restore is complete</changelogtext>
-        <changelogtext>Enhancement: move start/pause button in download queue to a Floating Action Button</changelogtext>
-        <changelogtext>Enhancement: remove extra confirmation step for passive biometric unlock (e.g. iris scan or face unlock)</changelogtext>
-        <changelogtext>New: Gray reader background</changelogtext>
-    </changelogversion>
-
-    <changelogversion versionName="v0.9.0" changeDate="">
-        <changelogtext>This is a huge release! Please see [a href="https://github.com/inorichi/tachiyomi/releases/tag/v0.9.0"]the changelog on GitHub[/a].</changelogtext>
-    </changelogversion>
-
-    <changelogversion versionName="v0.8.5" changeDate="">
-        <changelogtext>[b]Future releases will only support Android 5+[/b]</changelogtext>
-        <changelogtext>New: open in browser/webview from catalogue</changelogtext>
-        <changelogtext>New: reader color filter blend modes</changelogtext>
-        <changelogtext>New: link to help website in sidebar</changelogtext>
-        <changelogtext>New: long press bookmark icon in manga info to change categories</changelogtext>
-        <changelogtext>New: update prioritization setting</changelogtext>
-        <changelogtext>New: Bangumi tracker</changelogtext>
-        <changelogtext>New: extension search</changelogtext>
-        <changelogtext>New: see changelog by pressing Settings > About > Build time</changelogtext>
-        <changelogtext>Enhancement: ignore case when sorting library</changelogtext>
-        <changelogtext>Enhancement: available extensions grouped by languages</changelogtext>
-        <changelogtext>Enhancement: webview navigation</changelogtext>
-        <changelogtext>Enhancement: improved loading speed when skipping pages in a chapter</changelogtext>
-        <changelogtext>Fix: Cloudflare issues</changelogtext>
-        <changelogtext>Fix: sharing issues when filename is long</changelogtext>
-        <changelogtext>Fix: handle errors during global search</changelogtext>
-        <changelogtext>Fix: looping GIFs now loop</changelogtext>
-        <changelogtext>Fix: .nomedia files generated to avoid pages appearing in gallery apps</changelogtext>
-        <changelogtext>Fix: download queue won't autostart if it was previously paused</changelogtext>
-        <changelogtext>Fix: remove DOWNLOADED text after marking chapter as read (if setting is enabled)</changelogtext>
-        <changelogtext>Fix: backup dialog showing "null" when saving to cloud storage</changelogtext>
-        <changelogtext>Fix: MAL and Shikimori tracker issues</changelogtext>
-    </changelogversion>
-
-    <changelogversion versionName="v0.8.4" changeDate="">
-        <changelogtext>All the internal sources have been removed. They now need to be
-            installed as an extension.</changelogtext>
-        <changelogtext>Cloudflare is now resolved with a WebView in background which should put
-            an end to the recent updates to adapt to their changes.</changelogtext>
-        <changelogtext>Added an option to open manga details in a WebView. This
-            should also help when receiving a captcha confirmation page (usually 403 errors).
-            It can also be used to login with the website, as the app now shares cookies.</changelogtext>
-        <changelogtext>Added a deep link handler that extensions can use to perform
-            a search within the app.</changelogtext>
-        <changelogtext>Added an option to decode images in ARGB8888 format for
-            devices running Oreo or later.</changelogtext>
-        <changelogtext>Added Shikimori tracker.</changelogtext>
-        <changelogtext>Updated translations.</changelogtext>
-    </changelogversion>
-
-    <changelogversion versionName="v0.8.2" changeDate="">
-        <changelogtext>Updated Cloudflare.</changelogtext>
-        <changelogtext>Fixed crashes with some translations.</changelogtext>
-    </changelogversion>
-
-    <changelogversion versionName="v0.8.1" changeDate="">
-        <changelogtext>Fixed latest Cloudflare changes.</changelogtext>
-        <changelogtext>Bundled SQLite for better performance and new features.</changelogtext>
-        <changelogtext>Restored dark blue theme.</changelogtext>
-        <changelogtext>Added a MAL API workaround.</changelogtext>
-        <changelogtext>Fixed search issues on Kitsu and AniList.</changelogtext>
-        <changelogtext>Fixed an issue where the image was centered when using the vertical reader.</changelogtext>
-        <changelogtext>Updated translations.</changelogtext>
-    </changelogversion>
-
-    <changelogversion versionName="v0.8.0" changeDate="">
-        <changelogtext>Added a new reader with many fixes.</changelogtext>
-        <changelogtext>Added GIF support.</changelogtext>
-        <changelogtext>Fixed loading errors with local compressed files.</changelogtext>
-        <changelogtext>Fixed an issue where images couldn't be shared.</changelogtext>
-        <changelogtext>Removed image decoders setting because it's not needed anymore.</changelogtext>
-        <changelogtext>Updated translations.</changelogtext>
-        <changelogtext>Show all entries in library even if their extensions are not installed</changelogtext>
-        <changelogtext>Fixed search issues on Kitsu and AniList.</changelogtext>
-        <changelogtext>Other minor bugfixes.</changelogtext>
-    </changelogversion>
-
-    <changelogversion versionName="v0.7.4" changeDate="">
-        <changelogtext>Updated Anilist's API to v2.</changelogtext>
-        <changelogtext>Added Github link to about.</changelogtext>
-        <changelogtext>Fixed indonesian language not working.</changelogtext>
-        <changelogtext>Fixed an issue on KitKat that crashed the app when scheduling updates.</changelogtext>
-        <changelogtext>Fixed a few more issues introduced on the previous release.</changelogtext>
-    </changelogversion>
-
-    <changelogversion versionName="v0.7.3" changeDate="">
-        <changelogtext>Fixed the tracking search layout when there are many results.</changelogtext>
-        <changelogtext>Separate english language into american and british so that dates are formatted according to that locale.</changelogtext>
-        <changelogtext>Added Firebase analytics, for Android API distribution.</changelogtext>
-        <changelogtext>Crop borders for webtoons now has a separate setting.</changelogtext>
-        <changelogtext>The downloader now runs in a foreground service to prevent it from being killed.</changelogtext>
-        <changelogtext>Fixed a few weird crashes.</changelogtext>
-    </changelogversion>
-
-    <changelogversion versionName="v0.7.2" changeDate="">
-        <changelogtext>Fixed missing downloaded label in chapters screen.</changelogtext>
-        <changelogtext>Fixed updater in KitKat and lower due to TLS.</changelogtext>
-    </changelogversion>
-
-    <changelogversion versionName="v0.7.1" changeDate="">
-        <changelogtext>Updated Cloudflare bypass.</changelogtext>
-        <changelogtext>Enabled TLS 1.1 and TLS 1.2 on Android KitKat and lower.</changelogtext>
-        <changelogtext>Minor UI changes.</changelogtext>
-    </changelogversion>
-
-    <changelogversion versionName="v0.7.0" changeDate="">
-        <changelogtext>Added extensions support. You can now install and update extensions within the app.
-            If you installed any extension previously through F-Droid, you'll have to uninstall them first.</changelogtext>
-        <changelogtext>Added a custom download option to download N chapters.</changelogtext>
-        <changelogtext>Updated manga info layout, with clickable components to copy to clipboard or perform a global search.</changelogtext>
-        <changelogtext>Added an option to change the animation speed of a double tap in the reader.</changelogtext>
-        <changelogtext>Improved tracking results UI with covers.</changelogtext>
-        <changelogtext>Dropped support for simultaneous downloads.</changelogtext>
-        <changelogtext>Batoto is now a legacy source, you can only use it to migrate.</changelogtext>
-        <changelogtext>Updated dark theme and reader theme.</changelogtext>
-        <changelogtext>Bugfixes and minor UI/UX improvements.</changelogtext>
-    </changelogversion>
-
-</changelog>

+ 2 - 1
app/src/main/res/values/strings.xml

@@ -390,10 +390,11 @@
     <string name="website">Website</string>
     <string name="version">Version</string>
     <string name="build_time">Build time</string>
-    <string name="changelog">Changelog</string>
+    <string name="whats_new">What\'s new</string>
     <string name="notices">Preview build notices</string>
     <string name="licenses">Open source licenses</string>
     <string name="check_for_updates">Check for updates</string>
+    <string name="updated_version">Updated to v%1$s</string>
 
     <!-- ACRA -->
     <string name="pref_enable_acra">Send crash reports</string>