Skip to content
This repository was archived by the owner on Dec 11, 2024. It is now read-only.

Commit

Permalink
fix(YouTube - Change share sheet): Patch does not work (A/B tests)
Browse files Browse the repository at this point in the history
  • Loading branch information
inotia00 authored and anddea committed Sep 6, 2024
1 parent 6f5cb2e commit d340a1f
Showing 1 changed file with 23 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,17 @@
public class ShareSheetPatch {
private static final boolean changeShareSheetEnabled = Settings.CHANGE_SHARE_SHEET.get();

private static void clickSystemShareButton(final RecyclerView bottomSheetRecyclerView,
final RecyclerView appsContainerRecyclerView) {
if (appsContainerRecyclerView.getChildAt(appsContainerRecyclerView.getChildCount() - 1) instanceof ViewGroup parentView &&
parentView.getChildAt(0) instanceof ViewGroup shareWithOtherAppsView) {
ShareSheetMenuFilter.isShareSheetMenuVisible = false;

bottomSheetRecyclerView.setVisibility(View.GONE);
Utils.clickView(shareWithOtherAppsView);
}
}

/**
* Injection point.
*/
Expand All @@ -22,17 +33,18 @@ public static void onShareSheetMenuCreate(final RecyclerView recyclerView) {

recyclerView.getViewTreeObserver().addOnDrawListener(() -> {
try {
if (ShareSheetMenuFilter.isShareSheetMenuVisible &&
recyclerView.getChildAt(0) instanceof ViewGroup parentView4th &&
parentView4th.getChildAt(0) instanceof ViewGroup parentView3rd &&
parentView3rd.getChildAt(0) instanceof ViewGroup parentView2nd &&
parentView2nd.getChildAt(parentView2nd.getChildCount() - 1) instanceof ViewGroup parentView &&
parentView.getChildAt(0) instanceof ViewGroup shareWithOtherAppsView
) {
ShareSheetMenuFilter.isShareSheetMenuVisible = false;

recyclerView.setVisibility(View.GONE);
Utils.clickView(shareWithOtherAppsView);
if (!ShareSheetMenuFilter.isShareSheetMenuVisible) {
return;
}
if (!(recyclerView.getChildAt(0) instanceof ViewGroup parentView4th)) {
return;
}
if (parentView4th.getChildAt(0) instanceof ViewGroup parentView3rd &&
parentView3rd.getChildAt(0) instanceof RecyclerView appsContainerRecyclerView) {
clickSystemShareButton(recyclerView, appsContainerRecyclerView);
} else if (parentView4th.getChildAt(1) instanceof ViewGroup parentView3rd &&
parentView3rd.getChildAt(0) instanceof RecyclerView appsContainerRecyclerView) {
clickSystemShareButton(recyclerView, appsContainerRecyclerView);
}
} catch (Exception ex) {
Logger.printException(() -> "onShareSheetMenuCreate failure", ex);
Expand Down

0 comments on commit d340a1f

Please sign in to comment.