Skip to content

Commit

Permalink
refactor(Twitter): Separated App icon and Navigation icon patch
Browse files Browse the repository at this point in the history
  • Loading branch information
Swakshan committed May 15, 2024
1 parent 9c24d06 commit 8a67f12
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package crimera.patches.twitter.misc.customize.navbar

import app.revanced.patcher.data.BytecodeContext
import app.revanced.patcher.extensions.InstructionExtensions.addInstructions
import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
import app.revanced.patcher.extensions.InstructionExtensions.getInstructions
import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction
Expand All @@ -11,9 +10,9 @@ import app.revanced.patcher.patch.BytecodePatch
import app.revanced.patcher.patch.PatchException
import app.revanced.patcher.patch.annotation.CompatiblePackage
import app.revanced.patcher.patch.annotation.Patch
import app.revanced.patcher.util.smali.ExternalLabel
import com.android.tools.smali.dexlib2.Opcode
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
import crimera.patches.twitter.featureFlag.fingerprints.FeatureFlagLoadFingerprint
import crimera.patches.twitter.misc.settings.SettingsPatch
import crimera.patches.twitter.misc.settings.fingerprints.SettingsStatusLoadFingerprint

Expand All @@ -27,6 +26,13 @@ object CustomiseNavBarFingerprint:MethodFingerprint(
)
)

object NavBarFixFingerprint: MethodFingerprint(
returnType = "Ljava/util/List;",
strings = listOf(
"subscriptions_feature_1008"
)
)

@Patch(
name = "Customize Navigation Bar items",
dependencies = [SettingsPatch::class],
Expand All @@ -36,7 +42,7 @@ object CustomiseNavBarFingerprint:MethodFingerprint(
)
@Suppress("unused")
object CustomiseNavBarPatch:BytecodePatch(
setOf(CustomiseNavBarFingerprint,SettingsStatusLoadFingerprint)
setOf(CustomiseNavBarFingerprint,NavBarFixFingerprint,SettingsStatusLoadFingerprint,FeatureFlagLoadFingerprint)
){
override fun execute(context: BytecodeContext) {
val results = CustomiseNavBarFingerprint.result
Expand All @@ -55,7 +61,20 @@ object CustomiseNavBarPatch:BytecodePatch(

method.addInstructions(returnObj_loc,METHOD)


//credits aero
val result2 = NavBarFixFingerprint.result
?:throw PatchException("NavBarFixFingerprint not found")

val methods2 = result2.mutableMethod
val loc2 = methods2.getInstructions().first { it.opcode == Opcode.IF_NEZ }.location.index
methods2.removeInstruction(loc2)
methods2.removeInstruction(loc2)
methods2.removeInstruction(loc2)

SettingsStatusLoadFingerprint.enableSettings("navBarCustomisation")

FeatureFlagLoadFingerprint.enableSettings("navbarFix")
//end
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,23 @@ import app.revanced.patcher.patch.PatchException
import app.revanced.patcher.patch.annotation.CompatiblePackage
import app.revanced.patcher.patch.annotation.Patch
import com.android.tools.smali.dexlib2.Opcode
import crimera.patches.twitter.featureFlag.fingerprints.FeatureFlagLoadFingerprint
import crimera.patches.twitter.misc.settings.SettingsPatch
import crimera.patches.twitter.misc.settings.fingerprints.SettingsStatusLoadFingerprint
import crimera.patches.twitter.premium.customAppIconAndNavBtns.fingerprints.CustomAppIconAndNavBtnsFingerprint
import crimera.patches.twitter.premium.customAppIconAndNavBtns.fingerprints.NavBarFixFingerprint
import crimera.patches.twitter.premium.customAppIconAndNavBtns.fingerprints.CustomAppIconFingerprint

@Patch(
name = "Enable app and nav icon settings",
name = "Enable app icon settings",
compatiblePackages = [CompatiblePackage("com.twitter.android")],
dependencies = [SettingsPatch::class],
use = false,
requiresIntegrations = true
)
object CustomAppIconAndNavBtnsPatch:BytecodePatch(
setOf(CustomAppIconAndNavBtnsFingerprint, SettingsStatusLoadFingerprint,NavBarFixFingerprint,FeatureFlagLoadFingerprint)
object CustomAppIconPatch:BytecodePatch(
setOf(CustomAppIconFingerprint, SettingsStatusLoadFingerprint)
) {
override fun execute(context: BytecodeContext) {
val result = CustomAppIconAndNavBtnsFingerprint.result
?:throw PatchException("CustomAppIconAndNavBtnsFingerprint not found")
val result = CustomAppIconFingerprint.result
?:throw PatchException("CustomAppIconFingerprint not found")

//usually the last method
val methods = result.mutableClass.methods.last()
Expand All @@ -35,19 +34,7 @@ object CustomAppIconAndNavBtnsPatch:BytecodePatch(
methods.removeInstruction(loc)
methods.removeInstruction(loc-1)

//credits aero
val result2 = NavBarFixFingerprint.result
?:throw PatchException("NavBarFixFingerprint not found")

val methods2 = result2.mutableMethod
val loc2 = methods2.getInstructions().first { it.opcode == Opcode.IF_NEZ }.location.index
methods2.removeInstruction(loc2)
methods2.removeInstruction(loc2)
methods2.removeInstruction(loc2)

FeatureFlagLoadFingerprint.enableSettings("navbarFix")

SettingsStatusLoadFingerprint.enableSettings("enableAppIconNNavIcon")
//end
SettingsStatusLoadFingerprint.enableSettings("customAppIcon")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package crimera.patches.twitter.premium.customAppIconAndNavBtns.fingerprints

import app.revanced.patcher.fingerprint.MethodFingerprint

object CustomAppIconAndNavBtnsFingerprint:MethodFingerprint(
object CustomAppIconFingerprint:MethodFingerprint(
strings = listOf(
"current_app_icon_id"
)
Expand Down

This file was deleted.

0 comments on commit 8a67f12

Please sign in to comment.