Skip to content

Commit

Permalink
feat: open profile links
Browse files Browse the repository at this point in the history
  • Loading branch information
rebelonion committed May 23, 2024
1 parent 3d187a0 commit 94ffc25
Show file tree
Hide file tree
Showing 5 changed files with 90 additions and 52 deletions.
6 changes: 3 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ android {
minSdk 21
targetSdk 34
versionCode((System.currentTimeMillis() / 60000).toInteger())
versionName "3.0.0"
versionCode 300000000
versionName "3.1.0"
versionCode 300100000
signingConfig signingConfigs.debug

}
Expand Down Expand Up @@ -51,7 +51,7 @@ android {
}
debug {
applicationIdSuffix ".beta"
versionNameSuffix "-beta04"
versionNameSuffix "-beta01"
manifestPlaceholders.icon_placeholder = "@mipmap/ic_launcher_beta"
manifestPlaceholders.icon_placeholder_round = "@mipmap/ic_launcher_beta_round"
debuggable false
Expand Down
74 changes: 44 additions & 30 deletions app/src/main/java/ani/dantotsu/Functions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -1409,6 +1409,49 @@ fun ImageView.openImage(title: String, image: String) {
}
}

/**
* Attempts to open the link in the app, otherwise copies it to the clipboard
* @param link the link to open
*/
fun openOrCopyAnilistLink(link: String) {
if (link.startsWith("https://anilist.co/anime/") || link.startsWith("https://anilist.co/manga/")) {
val mangaAnime = link.substringAfter("https://anilist.co/").substringBefore("/")
val id =
link.substringAfter("https://anilist.co/$mangaAnime/").substringBefore("/")
.toIntOrNull()
if (id != null && currContext() != null) {
ContextCompat.startActivity(
currContext()!!,
Intent(currContext()!!, MediaDetailsActivity::class.java)
.putExtra("mediaId", id),
null
)
} else {
copyToClipboard(link, true)
}
} else if (link.startsWith("https://anilist.co/user/")) {
val username = link.substringAfter("https://anilist.co/user/").substringBefore("/")
val id = username.toIntOrNull()
if (currContext() != null) {
val intent = Intent(currContext()!!, ProfileActivity::class.java)
if (id != null) {
intent.putExtra("userId", id)
} else {
intent.putExtra("username", username)
}
ContextCompat.startActivity(
currContext()!!,
intent,
null
)
} else {
copyToClipboard(link, true)
}
} else {
copyToClipboard(link, true)
}
}

/**
* Builds the markwon instance with all the plugins
* @return the markwon instance
Expand All @@ -1424,36 +1467,7 @@ fun buildMarkwon(
.usePlugin(object : AbstractMarkwonPlugin() {
override fun configureConfiguration(builder: MarkwonConfiguration.Builder) {
builder.linkResolver { _, link ->
if (link.startsWith("https://anilist.co/anime/") || link.startsWith("https://anilist.co/manga/")) {
val mangaAnime = link.substringAfter("https://anilist.co/").substringBefore("/")
val id =
link.substringAfter("https://anilist.co/$mangaAnime/").substringBefore("/")
.toIntOrNull()
if (id != null && currContext() != null) {
ContextCompat.startActivity(
currContext()!!,
Intent(currContext()!!, MediaDetailsActivity::class.java)
.putExtra("mediaId", id),
null
)
} else {
copyToClipboard(link, true)
}
} else if (link.startsWith("https://anilist.co/user/")) {
val username = link.substringAfter("https://anilist.co/user/").substringBefore("/")
if (currContext() != null) {
ContextCompat.startActivity(
currContext()!!,
Intent(currContext()!!, ProfileActivity::class.java)
.putExtra("username", username),
null
)
} else {
copyToClipboard(link, true)
}
} else {
copyToClipboard(link, true)
}
openOrCopyAnilistLink(link)
}
}
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,6 @@ interface DownloadAddonApiV2 {
fun getStackTrace(sessionId: Long): String?

fun hadError(sessionId: Long): Boolean

fun getFileExtension(): Pair<String, String> = Pair("mkv", "video/x-matroska")
}
2 changes: 2 additions & 0 deletions app/src/main/java/ani/dantotsu/profile/ProfileFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import ani.dantotsu.media.Character
import ani.dantotsu.media.CharacterAdapter
import ani.dantotsu.media.Media
import ani.dantotsu.media.MediaAdaptor
import ani.dantotsu.openOrCopyAnilistLink
import ani.dantotsu.setBaseline
import ani.dantotsu.setSlideIn
import ani.dantotsu.setSlideUp
Expand Down Expand Up @@ -97,6 +98,7 @@ class ProfileFragment : Fragment() {
view: WebView?,
request: WebResourceRequest?
): Boolean {
openOrCopyAnilistLink(request?.url.toString())
return true
}
}
Expand Down
58 changes: 40 additions & 18 deletions stable.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,51 @@
# 2.2.0

- **Important:**
- All settings will be reset due to the new settings system. Sorry for the inconvenience!
# 3.1.0

- **New Features:**
- Import/Export settings
- New source organization system in extension settings
- Filter sources by language
- Defaulting to the external casting system (internal cast can be enabled in settings)
- sub/dub toggle for some sources (requires source settings page to be opened at least once)
- SoftSub downloads (when available)
- Addons
- Torrent support addon
- Anime downloading addon (mkv files pog)
- Available in app settings
- Anilist reviews in app
- Media subscriptions added to notification tab
- Notification filtering
- Ability to post activitys
- Ability to reply to activities
- Extension tester
- Media subscription Viewer
- Instagram-style stories
- More audio options for some extensions
- Ability to hide items on the home screen
- Ability to set a downloads directory
- 2 functioning widgets
- App lock ( ͡° ͜ʖ ͡°)
- More manga and anime feeds on the home page
- Settings page redesign
- New app crash notifier
- Voice actors
- Additional repo support
- Various UI uplifts
- Many small features (see beta changelogs)
- New easter egg :3

- **Bugfixes:**
- Many source fixes
- Better information on Anilist rate limiting
- User will get a notification when rate limited
- Rate limiting less likely to occur (especially on app startup)
- Scanlator/language not saving after leaving app
- notification red dot not hiding on home pages
- comment/activity scrolling not working on some parts of the screen
- comment notifications falling to the bottom of the list
- Fixed some sources without audio
- Initial app loading time reduced
- activity text more visible
- novel extensions not installing
- Many sources not working
- Subscription notifications not using the correct source
- Notification red dot showing with no new notifications
- Various bug/crash fixes
- General theme tweaks
- Popups will now follow OLED mode
- Fixed some network-related crashes
- Subscription notifications not working for some people
- Fix for file permissions on older Android versions
- Many small bug fixes (see beta changelogs)
- Search list view not working
- Media page opening twice on notification click

- A Special Thanks to all those who contributed :heart:

- **Like what you see?**
- Consider supporting me on [Github](https://github.com/sponsors/rebelonion) or [Buy Me a Coffee](https://www.buymeacoffee.com/rebelonion)!

0 comments on commit 94ffc25

Please sign in to comment.