Conversation
Fix UI lag caused by expensive operations on hot paths:
- Cache resource IDs (getIdentifier) statically in UIHookManager,
GhostDMMarkAsReadHook, and GhostChannelMarkAsReadHook — previously
called on every view attachment or every resume
- Add early feature-flag bail in onAttachedToWindow hooks (isGhostSeen
check moved to top, skips all work when ghost seen is off)
- Guard OnGlobalLayoutListener registration with a WeakHashMap to
prevent accumulation across onResume calls
- Empty the BottomSheetNavigator hook body — was flooding the main
thread with setupHooks calls on every navigation/scroll event
Fix inbox long-press triggering Instagram's behavior instead of the
ghost toggle on certain nav bar configurations:
- Hook View.performLongClick() directly so our handler fires before
any parent touch interceptor or custom view override can consume
the event; setResult(true) prevents Instagram's handler entirely
- Remove sWiringDone guard that was blocking listener re-application
after Instagram overwrites it following a config change
Remove dead code: isAnyGhostOptionEnabled() wrapper, redundant inbox
setOnLongClickListener block, misplaced @SuppressLint annotation
On Android 11 (API 30), getMethodInstance(classLoader) internally calls Method.getParameterTypes() which resolves every class referenced in any method signature found in InstagramMainActivity — including android.app.PictureInPictureUiState (added in API 31). This throws NoClassDefFoundError, preventing onCreate and onResume from being hooked. Replace both getMethodInstance() + XposedBridge.hookMethod() call sites with XposedHelpers.findAndHookMethod(), passing parameter types explicitly (Bundle.class for onCreate, none for onResume). The JVM now only resolves what we hand it, never touching PictureInPictureUiState. Also extract INSTAGRAM_MAIN_ACTIVITY as a constant (was duplicated 4x) and add null/empty guard on the resolved method name before hooking. Co-Authored-By: Flole <9951871+flole998@users.noreply.github.com>
isModuleActive() was removed from MainActivity but hookOwnModule() was still trying to hook it via findAndHookMethod(). This threw NoSuchMethodError (an Error, not Exception), which escaped both catch (Exception e) guards in hookOwnModule and handleLoadPackage, crashing the entire module load for all users who opened the app. Remove hookOwnModule() and its call site entirely, along with the now- unused XC_MethodReplacement import and findAndHookMethod static import.
The ghost emoji overlay was inserting a view at index+1 in Instagram's nav bar ViewGroup, shifting child indices and causing a NPE cast to MainTabNotification when navigating to reels on tablet devices. Replace the overlay approach entirely with a color filter on the inbox tab's ImageView. Ghost mode active tints the icon gold (#FFD700); deactivating clears the filter and restores the original icon.
- HideSuggestionsInFeed: hooks the FeedItem parser bridge method and
returns null for any item with no Media field, reliably filtering
out all non-post content (suggested users, surveys, bloks, clips
netego, stories netego, etc.)
Add DexKitCache.clearCache() to wipe SharedPreferences and invalidate
the in-session cache flag
Hooks feed like dispatcher via "double_tap_on_liked"/"used_double_tap" strings, and Reels entry point via class-level "clips_doubletap"+"LIKE_FIRED" fingerprint. Uses onDoubleTap stack check to allow button likes through.
This was
linked to
issues
Apr 19, 2026
Co-Authored-By: T8numen <164989241+T8numen@users.noreply.github.com>
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🌘 InstaEclipse v0.5.1
✨ New Features
🐛 Bug Fixes
NoClassDefFoundErroron API 30hookOwnModulecausing crash on launch