diff --git a/.gitignore b/.gitignore index ee450a2..a1ef96d 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ compile_commands.json /src/util.o /src/action_cc.o /src/nickelmenu.o +test.syms diff --git a/res/doc b/res/doc index cfbca08..b17195e 100644 --- a/res/doc +++ b/res/doc @@ -125,6 +125,7 @@ # library:pocket - Articles # library:instapaper - Instapaper # library:dropbox - Dropbox (4.18.13737+) +# library:gdrive - GoogleDrive (4.36.21095+) # reading_life:reading_life - Activity (with last tab) # reading_life:stats - Activity # reading_life:awards - Awards diff --git a/src/action_cc.cc b/src/action_cc.cc index 517265a..d84c64f 100644 --- a/src/action_cc.cc +++ b/src/action_cc.cc @@ -75,14 +75,20 @@ NM_ACTION_(nickel_open) { if (dlsym(RTLD_DEFAULT, "_ZN11MainNavViewC1EP7QWidget")) { NM_LOG("nickel_open: detected firmware >15505 (new nav tab bar), checking special cases"); - if (!strcmp(arg1, "library") && !strcmp(arg2, "dropbox")) { + if (!strcmp(arg1, "library") && (!strcmp(arg2, "dropbox") || !strcmp(arg2, "gdrive"))) { //libnickel 4.23.15505 * _ZN14MoreControllerC1Ev MoreController *(*MoreController__MoreController)(MoreController* _this); NM_ACT_XSYM(MoreController__MoreController, "_ZN14MoreControllerC1Ev", "could not dlsym MoreController::MoreController"); - //libnickel 4.23.15505 * _ZN14MoreController7dropboxEv - void (*MoreController_dropbox)(MoreController* _this); - NM_ACT_XSYM(MoreController_dropbox, "_ZN14MoreController7dropboxEv", "could not dlsym MoreController::dropbox"); + void (*MoreController_cloud)(MoreController* _this); + + if (!strcmp(arg2, "dropbox")) { + //libnickel 4.23.15505 * _ZN14MoreController7dropboxEv + NM_ACT_XSYM(MoreController_cloud, "_ZN14MoreController7dropboxEv", "could not dlsym MoreController::dropbox"); + } else { + //libnickel 4.36.21095 * _ZN14MoreController11googleDriveEv + NM_ACT_XSYM(MoreController_cloud, "_ZN14MoreController11googleDriveEv", "could not dlsym MoreController::gdrive"); + } //libnickel 4.23.15505 * _ZN14MoreControllerD0Ev MoreController *(*MoreController__deMoreController)(MoreController* _this); @@ -95,7 +101,7 @@ NM_ACTION_(nickel_open) { mc = MoreController__MoreController(mc); NM_CHECK(nullptr, mc, "MoreController::MoreController returned null pointer"); - MoreController_dropbox(mc); + MoreController_cloud(mc); // Clean up after ourselves MoreController__deMoreController(mc);