feat(Instagram): corrections
This commit is contained in:
parent
9187b6480b
commit
b89566469e
5 changed files with 12 additions and 15 deletions
|
|
@ -6,7 +6,7 @@ import app.revanced.extension.instagram.misc.followbackindicator.Helper;
|
||||||
import com.instagram.common.session.UserSession;
|
import com.instagram.common.session.UserSession;
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class FollowBackIndicator {
|
public class FollowBackIndicatorPatch {
|
||||||
|
|
||||||
public static void indicator(UserSession userSession, Object profileInfoObject, Object badgeObject){
|
public static void indicator(UserSession userSession, Object profileInfoObject, Object badgeObject){
|
||||||
try {
|
try {
|
||||||
|
|
@ -18,7 +18,7 @@ public class FollowBackIndicator {
|
||||||
if(loggedInUserId.equals(viewingProfileUserId)) return;
|
if(loggedInUserId.equals(viewingProfileUserId)) return;
|
||||||
|
|
||||||
Boolean followed_by = Helper.getFollowbackInfo(viewingProfileUserObject);
|
Boolean followed_by = Helper.getFollowbackInfo(viewingProfileUserObject);
|
||||||
String indicatorText = followed_by ? "User follows you" : "User does not follow you";
|
String indicatorText = followed_by ? "Follows you" : "Does not follow you";
|
||||||
Helper.setInternalBadgeText(badgeObject,indicatorText);
|
Helper.setInternalBadgeText(badgeObject,indicatorText);
|
||||||
|
|
||||||
} catch (Exception ex){
|
} catch (Exception ex){
|
||||||
|
|
@ -75,6 +75,4 @@ public class Helper {
|
||||||
badgeView.setVisibility(View.VISIBLE);
|
badgeView.setVisibility(View.VISIBLE);
|
||||||
badgeView.setText(text);
|
badgeView.setText(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
package com.instagram.common.session;
|
package com.instagram.common.session;
|
||||||
|
|
||||||
public class UserSession {
|
public class UserSession {
|
||||||
|
|
||||||
public String getUserId() {
|
public String getUserId() {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -3,6 +3,8 @@ import app.revanced.patcher.fingerprint
|
||||||
import com.android.tools.smali.dexlib2.AccessFlags
|
import com.android.tools.smali.dexlib2.AccessFlags
|
||||||
|
|
||||||
internal const val INTERNAL_BADGE_TARGET_STRING = "bindInternalBadges"
|
internal const val INTERNAL_BADGE_TARGET_STRING = "bindInternalBadges"
|
||||||
|
internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/instagram/misc/followbackindicator/"
|
||||||
|
internal const val EXTENSION_HELPER_CLASS_DESCRIPTOR = "${EXTENSION_CLASS_DESCRIPTOR}Helper;"
|
||||||
|
|
||||||
internal val bindInternalBadgeFingerprint = fingerprint {
|
internal val bindInternalBadgeFingerprint = fingerprint {
|
||||||
strings(INTERNAL_BADGE_TARGET_STRING)
|
strings(INTERNAL_BADGE_TARGET_STRING)
|
||||||
|
|
@ -20,16 +22,13 @@ internal val nametagResultCardViewSetButtonMethodFingerprint = fingerprint {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/instagram/misc/followbackindicator/"
|
internal val getFollowbackInfoExtensionFingerprint = fingerprint {
|
||||||
internal const val EXTENSION_HELPER_CLASS_DESCRIPTOR = "${EXTENSION_CLASS_DESCRIPTOR}Helper;"
|
|
||||||
|
|
||||||
internal val getFollowbackInfoInfoExtension = fingerprint {
|
|
||||||
custom { method, classDef ->
|
custom { method, classDef ->
|
||||||
method.name == "getFollowbackInfo" && classDef.type == EXTENSION_HELPER_CLASS_DESCRIPTOR
|
method.name == "getFollowbackInfo" && classDef.type == EXTENSION_HELPER_CLASS_DESCRIPTOR
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal val getViewingProfileUserObjectInfoExtension = fingerprint {
|
internal val getViewingProfileUserObjectExtensionFingerprint = fingerprint {
|
||||||
custom { method, classDef ->
|
custom { method, classDef ->
|
||||||
method.name == "getViewingProfileUserObject" && classDef.type == EXTENSION_HELPER_CLASS_DESCRIPTOR
|
method.name == "getViewingProfileUserObject" && classDef.type == EXTENSION_HELPER_CLASS_DESCRIPTOR
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,9 @@ val followBackIndicatorPatch = bytecodePatch(
|
||||||
use = true,
|
use = true,
|
||||||
) {
|
) {
|
||||||
dependsOn(sharedExtensionPatch)
|
dependsOn(sharedExtensionPatch)
|
||||||
|
|
||||||
compatibleWith("com.instagram.android")
|
compatibleWith("com.instagram.android")
|
||||||
|
|
||||||
execute {
|
execute {
|
||||||
/**
|
/**
|
||||||
* This function replaces a string instruction with a new one.
|
* This function replaces a string instruction with a new one.
|
||||||
|
|
@ -49,10 +51,10 @@ val followBackIndicatorPatch = bytecodePatch(
|
||||||
val invokeStaticMethodReference = getInstruction(moveResultIndex - 1).getReference<MethodReference>()
|
val invokeStaticMethodReference = getInstruction(moveResultIndex - 1).getReference<MethodReference>()
|
||||||
|
|
||||||
val methodDefClassName = invokeStaticMethodReference!!.definingClass.removePrefix("L").replace("/", ".").removeSuffix(";")
|
val methodDefClassName = invokeStaticMethodReference!!.definingClass.removePrefix("L").replace("/", ".").removeSuffix(";")
|
||||||
getFollowbackInfoInfoExtension.changeString(0,methodDefClassName)
|
getFollowbackInfoExtensionFingerprint.changeString(0,methodDefClassName)
|
||||||
|
|
||||||
val methodName = invokeStaticMethodReference.name
|
val methodName = invokeStaticMethodReference.name
|
||||||
getFollowbackInfoInfoExtension.changeString(1,methodName)
|
getFollowbackInfoExtensionFingerprint.changeString(1,methodName)
|
||||||
}
|
}
|
||||||
|
|
||||||
// This constant stores the value of the obfuscated profile info class,
|
// This constant stores the value of the obfuscated profile info class,
|
||||||
|
|
@ -65,7 +67,7 @@ val followBackIndicatorPatch = bytecodePatch(
|
||||||
val igetObjectInstruction = instructions.first { it.opcode == Opcode.IGET_OBJECT }
|
val igetObjectInstruction = instructions.first { it.opcode == Opcode.IGET_OBJECT }
|
||||||
val fieldReference = igetObjectInstruction.getReference<FieldReference>()
|
val fieldReference = igetObjectInstruction.getReference<FieldReference>()
|
||||||
val userObjectFieldName = fieldReference!!.name
|
val userObjectFieldName = fieldReference!!.name
|
||||||
getViewingProfileUserObjectInfoExtension.changeString(0,userObjectFieldName)
|
getViewingProfileUserObjectExtensionFingerprint.changeString(0,userObjectFieldName)
|
||||||
profileInfoClassName = fieldReference.definingClass
|
profileInfoClassName = fieldReference.definingClass
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -109,7 +111,7 @@ val followBackIndicatorPatch = bytecodePatch(
|
||||||
iget-object v$dummyRegistry1, v$userProfilePageRegistry, $userProfilePageElementsClassName->$userSessionFieldName:$userSessionClassName
|
iget-object v$dummyRegistry1, v$userProfilePageRegistry, $userProfilePageElementsClassName->$userSessionFieldName:$userSessionClassName
|
||||||
move-object/from16 v$dummyRegistry2, p$profileInfoParameter
|
move-object/from16 v$dummyRegistry2, p$profileInfoParameter
|
||||||
|
|
||||||
invoke-static {v$dummyRegistry1,v$dummyRegistry2, v$internalBadgeRegistry}, ${EXTENSION_CLASS_DESCRIPTOR}FollowBackIndicator;->indicator($userSessionClassName Ljava/lang/Object;Ljava/lang/Object;)V
|
invoke-static {v$dummyRegistry1,v$dummyRegistry2, v$internalBadgeRegistry}, ${EXTENSION_CLASS_DESCRIPTOR}FollowBackIndicatorPatch;->indicator($userSessionClassName Ljava/lang/Object;Ljava/lang/Object;)V
|
||||||
goto :revanced
|
goto :revanced
|
||||||
""".trimIndent(),
|
""".trimIndent(),
|
||||||
ExternalLabel("revanced", getInstruction(invokeStaticRangeIndex)),
|
ExternalLabel("revanced", getInstruction(invokeStaticRangeIndex)),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue