Commit Graph

414 Commits

Author SHA1 Message Date
Rafael Caetano
0339a8b5af Drop old achievement set when a game set is updated
This guarantees that if any achievement is removed from a game, we don't keep it locally
2023-02-15 11:06:08 +00:00
Rafael Caetano
67535de672 Schedule achievement resubmission when an achievement submission fails 2023-02-15 10:52:13 +00:00
Rafael Caetano
55d8bbda4b Award achievement when one is triggered 2023-02-13 22:45:16 +00:00
Rafael Caetano
3d06335e2b Fix API request failures crashing the app
Improve colors and text in RetroAchievements login popup
2023-02-12 16:41:35 +00:00
Rafael Caetano
db1f5b95f9 Implement achievement loading and handle RetroAchievement callbacks 2023-02-12 16:26:16 +00:00
Rafael Caetano
93b323242b Allow RetroAchievements hash library to be invalidated 2023-02-12 14:58:58 +00:00
Rafael Caetano
4e7bc68e4b Add UI for error and empty states in RetroAchievements screen 2023-02-12 13:18:46 +00:00
Rafael Caetano
e22bfd686a Extract RetroAchievements game ID from game file 2023-02-12 12:05:23 +00:00
Rafael Caetano
0eb2bdfea9 Cache achievement data to reduce the number of requests 2023-02-11 18:00:57 +00:00
Rafael Caetano
f334cf39be Add RetroAchievement list UI for user achievements 2023-02-08 19:43:20 +00:00
Rafael Caetano
c26daac1d4 Add support for autofill in RetroAchievements login form 2023-02-07 18:53:38 +00:00
Rafael Caetano
f170d39a9e Allow user to login with RetroAchievements from ROM details screen 2023-02-05 23:32:56 +00:00
Rafael Caetano
929afc6f8d Merge branch 'master' into retro-achievements 2023-02-05 16:20:12 +00:00
Rafael Caetano
18932cc50f Prevent DSiWare titles from being launched directly 2023-01-26 19:29:29 +00:00
Rafael Caetano
a0a0e0048e
Merge pull request #1033 from Bardock88/patch-1
Add Portuguese Brazilian translation
2023-01-26 18:57:11 +00:00
Rafael Caetano
ea438c2336 Fix use of ampersand in spanish translation 2023-01-24 00:02:04 +00:00
Rafael Caetano
b51c21b4de
Merge pull request #1023 from BackpackXl/patch-1
Add Spanish translation
2023-01-23 23:57:19 +00:00
Rafael Caetano
1b305e3127 Redesign ROM configuration screen 2023-01-22 23:39:21 +00:00
BackpackXl
b677dc38e0
Fix Strings 2023-01-21 00:29:02 -06:00
Lendary Sayajin
d890278c40
Update strings.xml 2023-01-19 09:53:01 -03:00
Lendary Sayajin
f39f1bc8dd
Update strings.xml 2023-01-16 00:29:59 -03:00
Lendary Sayajin
d4d36751c5
Update strings.xml 2023-01-07 22:58:49 -03:00
Lendary Sayajin
9e007a7dc8
strings.xml 2023-01-07 22:46:36 -03:00
Rafael Caetano
4cb82f83eb Update to latest melonDS lib version 2023-01-02 23:10:29 +00:00
Rafael Caetano
d2f1b76323 Merge branch 'master' of https://github.com/rafaelvcaetano/melonDS-android 2022-12-29 15:23:34 +00:00
wordmage
abc4105458 Exclude DSiWareTitle from ProGuard
When compiling melonDS with minify enabled and with the release ProGuard set,
it's possible to run into a crash when loading the titles from DSiWare Manager:

JNI DETECTED ERROR IN APPLICATION: JNI NewStringUTF called with pending exception java.lang.NoSuchMethodError: no non-static method "Lme/magnum/melonds/domain/model/DSiWareTitle;.<init>(Ljava/lang/String;Ljava/lang/String;J[B)V"

Upon further inspection, it seems that a ProGuard rule hasn't yet been made for this model,
causing it to be stripped from ProGuard. Exclude this class to ensure the JNI can find it.

Test:
	1. Compile melonDS using the release configuration
	2. Run melonDS, configure the DSi BIOS with a preexisting NAND with at least one DSiWare game installed
	3. No crash in DSiWare Manager is observed
2022-12-28 01:14:36 +00:00
Rafael Caetano
21ac5a7317 Handle errors on DSiWare metadata download 2022-12-27 17:16:53 +00:00
wordmage
0b6d072a38 Explicitly declare cleartext URL
DSiWare Manager throws an IOException whenever an installation of DSiWare games is initiated:

Process: me.magnum.melonds.dev, PID: 14629
  java.io.IOException: Cleartext HTTP traffic to nus.cdn.t.shop.nintendowifi.net not permitted
  	at com.android.okhttp.HttpHandler$CleartextURLFilter.checkURLPermitted(HttpHandler.java:127)
  	at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:462)
  	at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411)
  	at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:248)
  	at me.magnum.melonds.impl.NusDSiWareMetadataRepository$getDSiWareTitleMetadata$2.invokeSuspend(NusDSiWareMetadataRepository.kt:20)
  	at me.magnum.melonds.impl.NusDSiWareMetadataRepository$getDSiWareTitleMetadata$2.invoke(Unknown Source:8)
  	at me.magnum.melonds.impl.NusDSiWareMetadataRepository$getDSiWareTitleMetadata$2.invoke(Unknown Source:4)
  	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
  	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:169)
  	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
  	at me.magnum.melonds.impl.NusDSiWareMetadataRepository.getDSiWareTitleMetadata-t3GQkyU(NusDSiWareMetadataRepository.kt:10)
  	at me.magnum.melonds.impl.AndroidDSiNandManager$importTitle$2.invokeSuspend(AndroidDSiNandManager.kt:71)
  	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
  	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
  	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
  	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
  	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)

This can be reproduced by running a fresh installation of melonDS, then
attempting to run an installation of a DSiWare game through the DSiWare Manager on an empty NAND image, which will always result in a crash,
assuming the user is running a platform that prohibits cleartext URL.

Possibly fixes #959 and #1026, but both tickets lacked necessary logs for this to be certain.

Test:
	1. Open DSiWare Manager, attempt to install a DSiWare game (either from ROM list or from file)
	2. The game appears in the list of installed DSiWare games without a crash
2022-12-27 13:46:21 +00:00
BackpackXl
aba02d374d
Fix strings 2022-12-20 23:04:26 -06:00
BackpackXl
e43f2146cf
Fix strings 2022-12-20 23:00:13 -06:00
BackpackXl
b46a9f91f7
Fix strings 2022-12-14 22:42:29 -06:00
BackpackXl
0cb55e5b1f
fix strings 2022-12-14 22:32:13 -06:00
BackpackXl
3342fe3136
Fix strings 2022-12-14 22:15:17 -06:00
Lendary Sayajin
f7f91de7ca
Add Portuguese Brazilian translation
Here goes the addition of Brazilian Portuguese localization to the port project. And again @rafaelvcaetano all the best in your goals and may 2023 achieve many achievements, peace and health.✌️
2022-12-13 01:10:14 -03:00
BackpackXl
b6af9b6a6a
Update strings.xml 2022-12-11 12:21:34 -06:00
BackpackXl
bff5168550
Update strings.xml 2022-12-11 12:03:51 -06:00
BackpackXl
e4b240f3d6
Update strings.xml 2022-12-11 11:26:56 -06:00
BackpackXl
d28e913460
Update strings.xml 2022-12-10 18:18:57 -06:00
SombrAbsol
f219fc482f
French translation: misc. fixes 2022-12-08 12:52:00 +01:00
SombrAbsol
2ba8044595
French translation: useless file 2022-12-08 12:49:45 +01:00
SombrAbsol
7406d9af2e
Merge branch 'rafaelvcaetano:master' into master 2022-12-08 12:49:14 +01:00
Rafael Caetano
906c5a2507 Move theme options string array to different files to make internationalization easier 2022-12-08 11:09:58 +00:00
SombrAbsol
1539004c15
French translation: misc. fixes 2022-12-07 11:57:02 +01:00
SombrAbsol
2a8111b033
French translation: strings.xml in values-fr-v29 2022-12-06 20:52:44 +01:00
BackpackXl
5efacd6333
Update strings.xml 2022-12-06 13:49:36 -06:00
BackpackXl
202ca9501f
Update strings.xml 2022-12-06 12:01:52 -06:00
SombrAbsol
f24ee28c19
French translation 2022-12-06 10:52:36 +01:00
SombrAbsol
aa8d21834d
French translation: misc. fix 2022-12-06 10:46:03 +01:00
SombrAbsol
280d51b402
French translation: more translations for DSiWare 2022-12-06 10:45:03 +01:00
SombrAbsol
b983725aab
French translation: translating size values 2022-12-06 10:36:23 +01:00