Skip to content

feat: Detect GitHub repo renames#2742

Open
hdcodedev wants to merge 4 commits intoImranR98:mainfrom
hdcodedev:feat/2637-repo-rename-detection
Open

feat: Detect GitHub repo renames#2742
hdcodedev wants to merge 4 commits intoImranR98:mainfrom
hdcodedev:feat/2637-repo-rename-detection

Conversation

@hdcodedev
Copy link
Contributor

@hdcodedev hdcodedev commented Jan 20, 2026

Fixes #2637

Summary

  • Highlight apps with 'Repository moved' in the apps list.
  • Show a warning on the app details screen with actions to dismiss or update the URL.
  • Save the pending new URL so the state survives restarts and blocks updates until the user resolves it (dismisses or updates the URL).

Screenshots

image image image image

Notes

  • Rename handling is currently GitHub-only; other sources would need explicit API-level signals (e.g., GitLab/Gitea/Forgejo/SourceHut) before enabling similar behavior.
  • Notifications are not supported for this case

Testing

This has only been tested locally using mocks and needs real testing before merging.

@hdcodedev
Copy link
Contributor Author

We could introduce notification handling for this case as well, but we wanted to keep this PR minimal, so it can be addressed in a follow-up PR.

@hdcodedev
Copy link
Contributor Author

hdcodedev commented Jan 20, 2026

The UI isn't the best 🙂, but this is the first version and we can work on improvements. I was mostly focused on the functionality part.

@hdcodedev hdcodedev marked this pull request as ready for review January 20, 2026 14:57
@deminearchiver
Copy link
Contributor

deminearchiver commented Jan 20, 2026

I'd suggest using ColorScheme.fromSeed to generate a color scheme from Colors.amber, and then use some colors from it, such as primaryContainer and onPrimaryContainer, etc.

Please see:

@hdcodedev
Copy link
Contributor Author

@deminearchiver thank you for the suggestions! I have refined the UI to make it cleaner and less visually heavy

@deminearchiver
Copy link
Contributor

deminearchiver commented Jan 21, 2026

Hello again! Can we consider making this more expressive (that is, following Material 3 Expressive design system specs)?

I've been fiddling in DartPad since I'm too lazy to clone the code.

But here is a design I quickly put together in Figma, for both light and dark themes:

Frame 222 Frame 221

Let me know what you think about this!

@hdcodedev
Copy link
Contributor Author

@deminearchiver thanks a lot, this looks great! I'll apply the changes today.

@deminearchiver
Copy link
Contributor

I've submitted a review suggesting design changes. Please review them, I can't promise everything still works since I did them in DartPad, but all should be fine. I recommend double-checking that all buttons still work as expected and there are no build errors.

@hdcodedev
Copy link
Contributor Author

@deminearchiver sounds good, thanks! I’ll review the changes and double check everything.

@hdcodedev hdcodedev marked this pull request as draft January 22, 2026 09:20
@hdcodedev
Copy link
Contributor Author

@deminearchiver Thank you for the suggestions. Nothing is broken and everything looks good. Before applying the changes, I wanted to check with @ImranR98 which version we want to go with.

Current version

imageimage

New version

Suggested by @deminearchiver using custom design based on an expressive list from Material 3 Expressive.

imageimage

@deminearchiver
Copy link
Contributor

That's nice! I remembered that the horizontal margin must probably be 8 instead of 16. That's how it is in the official examples. Because 16 + 16 is too much and 8 + 16 is fine.

@hdcodedev
Copy link
Contributor Author

Should we maybe modify it further to better match the initial Figma design?>#2742 (comment)

@deminearchiver
Copy link
Contributor

deminearchiver commented Jan 22, 2026

Should we maybe modify it further to better match the initial Figma design?>#2742 (comment)

I think it matches already, no?

There are two things that can't be implemented without major theme changes:

  1. Google Sans Flex font for with ROND 100 for md.sys.typescale.emphasized.* type scale. (I simulated the change by only changing the weight of the TextStyle in my suggested code)
  2. Material Symbols (the next generation of Material Icons) (I replaced it with an old version of the icon in my suggested code)

The code I suggested implements the Figma design as closely as possible.

@hdcodedev
Copy link
Contributor Author

hdcodedev commented Jan 22, 2026

@deminearchiver I was referring more to the colors. The Figma version has higher contrast and a stronger highlight, but I think your suggested version aligns better with the app theme.

Let's wait for @ImranR98's opinion on #2742 (comment), then we'll proceed.

@deminearchiver
Copy link
Contributor

@deminearchiver I was referring more to the colors. The Figma version has higher contrast and a stronger highlight, but I think your suggested version aligns better with the app theme.

Let's wait for @ImranR98's opinion on #2742 (comment), then we'll proceed.

The Figma version uses the new color generation spec which is supported in Android 16 when using dynamic color.

@ImranR98
Copy link
Owner

I think the new version suggested by @deminearchiver looks nicer. It just sucks that we need so much custom UI code -- would be nice if Flutter just had M3E components already (apparently that's unlikely to happen until late this year at the earliest).

@deminearchiver
Copy link
Contributor

I think the new version suggested by @deminearchiver looks nicer. It just sucks that we need so much custom UI code -- would be nice if Flutter just had M3E components already (apparently that's unlikely to happen until late this year at the earliest).

I have a hard fork of Obtainium, called Materium. The aim is to integrate it with the new Material 3 Expressive update by building my own component library. I'm also looking to completely rewrite the actual logic behind the app, but the code is really big and messy (as I have mentioned in some other issue), so I'm not optimistic about doing it now.

If you don't like the amount of code needed to create the design (it's not like I do either), I could make it less expressive and use default Flutter components to build something a bit more compact.

@ImranR98
Copy link
Owner

Nah we can keep your version even if it's more verbose.

@ImranR98
Copy link
Owner

Also unrelated to this issue, if you're going to rewrite much of the app, have you considered doing it in native Kotlin? (I regret not doing so tbh, but Flutter was just easier to learn and I already had some experience with it)

@deminearchiver
Copy link
Contributor

deminearchiver commented Jan 30, 2026

Nah we can keep your version even if it's more verbose.

Alright, but I had a thought that making a sudden Material 3 Expressive jumpscare in the app would scare off users.

Also unrelated to this issue, if you're going to rewrite much of the app, have you considered doing it in native Kotlin? (I regret not doing so tbh, but Flutter was just easier to learn and I already had some experience with it)

I regret to inform you that I'm not a Kotlin developer 🤣. Placing all bets on Flutter because I love it.

At this point, I'm basically doing what Flutter has yet to implement - a fully custom-made Material 3 Expressive design library.

Here's a screenshot of the home page by the way:
Screenshot_20260130-203857

hdcodedev and others added 2 commits February 1, 2026 12:11
Co-authored-by: deminearchiver <83916788+deminearchiver@users.noreply.github.com>
Co-authored-by: deminearchiver <83916788+deminearchiver@users.noreply.github.com>
@hdcodedev hdcodedev marked this pull request as ready for review February 1, 2026 11:33
@hdcodedev
Copy link
Contributor Author

Thank you both for the help.
I have moved the PR to review, but it hasn't been fully tested by me, so it will need testing before merging. I don't have time to do it today, but if someone could help, that would be great.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Don't automatically follow Github renamed repo

3 participants

Comments