导航菜单

页面标题

页面副标题

Ampture v4.3.1 - TabsBottomSheet.java 源代码

正在查看: Ampture v4.3.1 应用的 TabsBottomSheet.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.kaunik.ampture.activity;

import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AnimationUtils;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.PopupMenu;
import androidx.core.content.ContextCompat;
import androidx.core.content.res.ResourcesCompat;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.R;
import com.google.android.material.bottomsheet.BottomSheetBehavior;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.google.android.material.snackbar.Snackbar;
import com.google.firebase.crashlytics.buildtools.ndk.internal.elf.EMachine;
import com.google.firebase.encoders.json.BuildConfig;
import com.google.firebase.messaging.Constants;
import com.kaunik.ampture.adapter.TabAdapter;
import com.kaunik.ampture.databinding.TabsViewBinding;
import com.kaunik.ampture.fragment.BrowseFragmen;
import com.kaunik.ampture.fragment.HomeFragment;
import com.kaunik.ampture.model.Tab;
import com.kaunik.ampture.util.SnapshotManager;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;

@Metadata(d1 = {"\u0000\\\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0010\b\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0007\u0018\u0000 *2\u00020\u0001:\u0001*B\u0005¢\u0006\u0002\u0010\u0002J\u0018\u0010\b\u001a\u00020\t2\u0006\u0010\n\u001a\u00020\u000b2\u0006\u0010\f\u001a\u00020\rH\u0002J\b\u0010\u000e\u001a\u00020\tH\u0002J\b\u0010\u000f\u001a\u00020\tH\u0002J\b\u0010\u0010\u001a\u00020\tH\u0002J\u0018\u0010\u0011\u001a\u00020\t2\u0006\u0010\u0012\u001a\u00020\u00132\u0006\u0010\u0014\u001a\u00020\u0015H\u0002J\"\u0010\u0016\u001a\u00020\t2\u0006\u0010\u0017\u001a\u00020\u00132\u0006\u0010\u0018\u001a\u00020\u00132\b\u0010\u0019\u001a\u0004\u0018\u00010\u001aH\u0016J\u0012\u0010\u001b\u001a\u00020\u001c2\b\u0010\u001d\u001a\u0004\u0018\u00010\u001eH\u0016J$\u0010\u001f\u001a\u00020 2\u0006\u0010!\u001a\u00020\"2\b\u0010#\u001a\u0004\u0018\u00010$2\b\u0010\u001d\u001a\u0004\u0018\u00010\u001eH\u0016J\b\u0010%\u001a\u00020\tH\u0016J\u001a\u0010&\u001a\u00020\t2\u0006\u0010'\u001a\u00020 2\b\u0010\u001d\u001a\u0004\u0018\u00010\u001eH\u0016J\u0010\u0010(\u001a\u00020\t2\u0006\u0010)\u001a\u00020 H\u0002R\u0010\u0010\u0003\u001a\u0004\u0018\u00010\u0004X\u0082\u000e¢\u0006\u0002\n\u0000R\u0014\u0010\u0005\u001a\u00020\u00048BX\u0082\u0004¢\u0006\u0006\u001a\u0004\b\u0006\u0010\u0007¨\u0006+"}, d2 = {"Lcom/kaunik/ampture/activity/TabsBottomSheet;", "Lcom/google/android/material/bottomsheet/BottomSheetDialogFragment;", "()V", "_binding", "Lcom/kaunik/ampture/databinding/TabsViewBinding;", "binding", "getBinding", "()Lcom/kaunik/ampture/databinding/TabsViewBinding;", "changeTab", BuildConfig.FLAVOR, "name", BuildConfig.FLAVOR, "fragment", "Landroidx/fragment/app/Fragment;", "closeAllAndGoHome", "configureSwipeToDelete", "dismissWithAnimation", "handleTabRemoval", "position", BuildConfig.FLAVOR, "adapter", "Lcom/kaunik/ampture/adapter/TabAdapter;", "onActivityResult", "requestCode", "resultCode", Constants.ScionAnalytics.MessageType.DATA_MESSAGE, "Landroid/content/Intent;", "onCreateDialog", "Landroid/app/Dialog;", "savedInstanceState", "Landroid/os/Bundle;", "onCreateView", "Landroid/view/View;", "inflater", "Landroid/view/LayoutInflater;", "container", "Landroid/view/ViewGroup;", "onDestroyView", "onViewCreated", "view", "showMoreOptionsMenu", "anchorView", "Companion", "app_release"}, k = 1, mv = {1, 9, 0}, xi = EMachine.EM_H8S)
public final class TabsBottomSheet extends BottomSheetDialogFragment {
    private static final int SEARCH_REQUEST_CODE = 100;
    private TabsViewBinding _binding;

    public final TabsViewBinding getBinding() {
        TabsViewBinding tabsViewBinding = this._binding;
        Intrinsics.checkNotNull(tabsViewBinding);
        return tabsViewBinding;
    }

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        Intrinsics.checkNotNullParameter(inflater, "inflater");
        this._binding = TabsViewBinding.inflate(inflater, container, false);
        LinearLayout root = getBinding().getRoot();
        Intrinsics.checkNotNullExpressionValue(root, "getRoot(...)");
        return root;
    }

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 100 && resultCode == -1) {
            int intExtra = data != null ? data.getIntExtra("selectedTabPosition", -1) : -1;
            if (intExtra != -1) {
                MainActivity.INSTANCE.getMyPager().setCurrentItem(intExtra);
                dismiss();
            }
        }
    }

    public Dialog onCreateDialog(Bundle savedInstanceState) {
        Dialog onCreateDialog = super.onCreateDialog(savedInstanceState);
        Intrinsics.checkNotNull(onCreateDialog, "null cannot be cast to non-null type com.google.android.material.bottomsheet.BottomSheetDialog");
        Dialog dialog = (BottomSheetDialog) onCreateDialog;
        dialog.setOnShowListener(new DialogInterface.OnShowListener() {
            @Override
            public final void onShow(DialogInterface dialogInterface) {
                TabsBottomSheet.onCreateDialog$lambda$1(TabsBottomSheet.this, dialogInterface);
            }
        });
        return dialog;
    }

    public static final void onCreateDialog$lambda$1(TabsBottomSheet this$0, DialogInterface dialogInterface) {
        Intrinsics.checkNotNullParameter(this$0, "this$0");
        Intrinsics.checkNotNull(dialogInterface, "null cannot be cast to non-null type com.google.android.material.bottomsheet.BottomSheetDialog");
        FrameLayout frameLayout = (FrameLayout) ((BottomSheetDialog) dialogInterface).findViewById(R.id.design_bottom_sheet);
        if (frameLayout != null) {
            BottomSheetBehavior from = BottomSheetBehavior.from(frameLayout);
            Intrinsics.checkNotNullExpressionValue(from, "from(...)");
            from.setPeekHeight(Resources.getSystem().getDisplayMetrics().heightPixels);
            from.setState(3);
            ViewGroup.LayoutParams layoutParams = frameLayout.getLayoutParams();
            layoutParams.height = -1;
            frameLayout.setLayoutParams(layoutParams);
        }
        LinearLayout root = this$0.getBinding().getRoot();
        Intrinsics.checkNotNullExpressionValue(root, "getRoot(...)");
        root.startAnimation(AnimationUtils.loadAnimation(this$0.getContext(), com.kaunik.ampture.R.anim.slide_up));
        root.setBackground(ContextCompat.getDrawable(this$0.requireContext(), com.kaunik.ampture.R.drawable.cd10));
    }

    public void onViewCreated(View view, Bundle savedInstanceState) {
        Intrinsics.checkNotNullParameter(view, "view");
        super.onViewCreated(view, savedInstanceState);
        getBinding().tabsRV.setLayoutManager(new GridLayoutManager(requireContext(), 2));
        RecyclerView recyclerView = getBinding().tabsRV;
        Context requireContext = requireContext();
        Intrinsics.checkNotNullExpressionValue(requireContext, "requireContext(...)");
        recyclerView.setAdapter(new TabAdapter(requireContext, this));
        configureSwipeToDelete();
        getBinding().homeBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public final void onClick(View view2) {
                TabsBottomSheet.onViewCreated$lambda$2(TabsBottomSheet.this, view2);
            }
        });
        getBinding().searchBarContainer.setOnClickListener(new View.OnClickListener() {
            @Override
            public final void onClick(View view2) {
                TabsBottomSheet.onViewCreated$lambda$3(TabsBottomSheet.this, view2);
            }
        });
        getBinding().googleBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public final void onClick(View view2) {
                TabsBottomSheet.onViewCreated$lambda$4(TabsBottomSheet.this, view2);
            }
        });
        getBinding().moreOptionsBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public final void onClick(View view2) {
                TabsBottomSheet.onViewCreated$lambda$5(TabsBottomSheet.this, view2);
            }
        });
    }

    public static final void onViewCreated$lambda$2(TabsBottomSheet this$0, View view) {
        Intrinsics.checkNotNullParameter(this$0, "this$0");
        this$0.changeTab("Home", new HomeFragment());
        this$0.dismissWithAnimation();
    }

    public static final void onViewCreated$lambda$3(TabsBottomSheet this$0, View view) {
        Intrinsics.checkNotNullParameter(this$0, "this$0");
        this$0.startActivityForResult(new Intent(this$0.requireContext(), (Class<?>) TabSearchActivity.class), 100);
    }

    public static final void onViewCreated$lambda$4(TabsBottomSheet this$0, View view) {
        Intrinsics.checkNotNullParameter(this$0, "this$0");
        BrowseFragmen browseFragmen = new BrowseFragmen("https://www.google.com");
        browseFragmen.setTabId(System.currentTimeMillis());
        this$0.changeTab("Google", browseFragmen);
        this$0.dismissWithAnimation();
    }

    public static final void onViewCreated$lambda$5(TabsBottomSheet this$0, View view) {
        Intrinsics.checkNotNullParameter(this$0, "this$0");
        Intrinsics.checkNotNull(view);
        this$0.showMoreOptionsMenu(view);
    }

    private final void configureSwipeToDelete() {
        new ItemTouchHelper(new ItemTouchHelper.SimpleCallback() {
            public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
                Intrinsics.checkNotNullParameter(recyclerView, "recyclerView");
                Intrinsics.checkNotNullParameter(viewHolder, "viewHolder");
                Intrinsics.checkNotNullParameter(target, "target");
                return false;
            }

            {
                super(0, 12);
            }

            public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
                TabsViewBinding binding;
                Intrinsics.checkNotNullParameter(viewHolder, "viewHolder");
                Context context = viewHolder.itemView.getContext();
                if (context.getSharedPreferences("MyPrefs", 0).getBoolean("HapticEnabled", true)) {
                    Intrinsics.checkNotNull(context);
                    MainActivityKt.performHapticFeedback(context, 50L);
                }
                int adapterPosition = viewHolder.getAdapterPosition();
                TabsBottomSheet tabsBottomSheet = TabsBottomSheet.this;
                binding = tabsBottomSheet.getBinding();
                RecyclerView.Adapter adapter = binding.tabsRV.getAdapter();
                Intrinsics.checkNotNull(adapter, "null cannot be cast to non-null type com.kaunik.ampture.adapter.TabAdapter");
                tabsBottomSheet.handleTabRemoval(adapterPosition, (TabAdapter) adapter);
            }

            public void onChildDraw(Canvas canvas, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
                Intrinsics.checkNotNullParameter(canvas, "canvas");
                Intrinsics.checkNotNullParameter(recyclerView, "recyclerView");
                Intrinsics.checkNotNullParameter(viewHolder, "viewHolder");
                if (actionState == 1) {
                    View itemView = viewHolder.itemView;
                    Intrinsics.checkNotNullExpressionValue(itemView, "itemView");
                    Paint paint = new Paint();
                    paint.setColor(ContextCompat.getColor(itemView.getContext(), com.kaunik.ampture.R.color.c1));
                    paint.setAntiAlias(true);
                    Paint paint2 = new Paint();
                    paint2.setColor(-1);
                    paint2.setTextSize(48.0f);
                    paint2.setTypeface(ResourcesCompat.getFont(itemView.getContext(), com.kaunik.ampture.R.font.n1));
                    paint2.setTextAlign(Paint.Align.CENTER);
                    paint2.setAntiAlias(true);
                    if (dX < 0.0f) {
                        drawDeleteBackground(canvas, itemView.getRight() + dX, itemView.getTop(), itemView.getRight(), itemView.getBottom(), paint, paint2);
                    } else if (dX > 0.0f) {
                        drawDeleteBackground(canvas, itemView.getLeft(), itemView.getTop(), itemView.getLeft() + dX, itemView.getBottom(), paint, paint2);
                    }
                }
                super.onChildDraw(canvas, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
            }

            private final void drawDeleteBackground(Canvas canvas, float left, float top, float right, float bottom, Paint paint, Paint textPaint) {
                RectF rectF = new RectF(left, top, right, bottom);
                canvas.drawRoundRect(rectF, 30.0f, 30.0f, paint);
                float measureText = textPaint.measureText("Delete");
                float width = rectF.width() * 0.9f;
                if (measureText > width) {
                    textPaint.setTextSize(textPaint.getTextSize() * (width / measureText));
                }
                canvas.drawText("Delete", rectF.centerX(), rectF.centerY() - ((textPaint.descent() + textPaint.ascent()) / 2), textPaint);
            }
        }).attachToRecyclerView(getBinding().tabsRV);
    }

    private final void showMoreOptionsMenu(View anchorView) {
        PopupMenu popupMenu = new PopupMenu(requireContext(), anchorView);
        popupMenu.getMenuInflater().inflate(com.kaunik.ampture.R.menu.tabs_more_options, popupMenu.getMenu());
        popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @Override
            public final boolean onMenuItemClick(MenuItem menuItem) {
                boolean showMoreOptionsMenu$lambda$6;
                showMoreOptionsMenu$lambda$6 = TabsBottomSheet.showMoreOptionsMenu$lambda$6(TabsBottomSheet.this, menuItem);
                return showMoreOptionsMenu$lambda$6;
            }
        });
        popupMenu.show();
    }

    public static final boolean showMoreOptionsMenu$lambda$6(TabsBottomSheet this$0, MenuItem menuItem) {
        Intrinsics.checkNotNullParameter(this$0, "this$0");
        if (menuItem.getItemId() != com.kaunik.ampture.R.id.action_close_all_and_home) {
            return false;
        }
        this$0.closeAllAndGoHome();
        return true;
    }

    private final void closeAllAndGoHome() {
        MainActivity.INSTANCE.getTabList().clear();
        MainActivity.INSTANCE.getTabList().add(new Tab("Home", new HomeFragment(), 0L, 4, null));
        RecyclerView.Adapter adapter = getBinding().tabsRV.getAdapter();
        if (adapter != null) {
            adapter.notifyDataSetChanged();
        }
        RecyclerView.Adapter adapter2 = MainActivity.INSTANCE.getMyPager().getAdapter();
        if (adapter2 != null) {
            adapter2.notifyDataSetChanged();
        }
        MainActivity.INSTANCE.getTabsBtn().setText("1");
        MainActivity.INSTANCE.getMyPager().setCurrentItem(0);
        if (requireContext().getSharedPreferences("MyPrefs", 0).getBoolean("HapticEnabled", true)) {
            Context requireContext = requireContext();
            Intrinsics.checkNotNullExpressionValue(requireContext, "requireContext(...)");
            MainActivityKt.performHapticFeedback(requireContext, 50L);
        }
        Snackbar.make(getBinding().getRoot(), "Cleared all tabs", -1).show();
        dismissWithAnimation();
    }

    public final void handleTabRemoval(int position, TabAdapter adapter) {
        Context context;
        if (position < 0 || position >= MainActivity.INSTANCE.getTabList().size()) {
            adapter.notifyDataSetChanged();
            return;
        }
        if (MainActivity.INSTANCE.getTabList().size() == 1) {
            Snackbar.make(getBinding().getRoot(), "Can't remove the last tab!", 0).show();
            adapter.notifyItemChanged(position);
            return;
        }
        int currentItem = MainActivity.INSTANCE.getMyPager().getCurrentItem();
        if (position == currentItem) {
            Snackbar.make(getBinding().getRoot(), "Can't remove the current tab!", 0).show();
            adapter.notifyItemChanged(position);
            return;
        }
        if (position < currentItem) {
            MainActivity.INSTANCE.getMyPager().setCurrentItem(currentItem - 1);
        }
        if (Build.VERSION.SDK_INT >= 28) {
            Fragment fragment = MainActivity.INSTANCE.getTabList().get(position).getFragment();
            if ((fragment instanceof BrowseFragmen) && (context = getContext()) != null) {
                SnapshotManager.INSTANCE.deleteSnapshotFile(context, ((BrowseFragmen) fragment).getTabId());
            }
        }
        MainActivity.INSTANCE.getTabList().remove(position);
        adapter.notifyItemRemoved(position);
        RecyclerView.Adapter adapter2 = MainActivity.INSTANCE.getMyPager().getAdapter();
        if (adapter2 != null) {
            adapter2.notifyDataSetChanged();
        }
        MainActivity.INSTANCE.getTabsBtn().setText(String.valueOf(MainActivity.INSTANCE.getTabList().size()));
    }

    private final void changeTab(String name, Fragment fragment) {
        if (fragment instanceof BrowseFragmen) {
            ((BrowseFragmen) fragment).setTabId(System.currentTimeMillis());
        }
        MainActivity.INSTANCE.getTabList().add(new Tab(name, fragment, 0L, 4, null));
        RecyclerView.Adapter adapter = MainActivity.INSTANCE.getMyPager().getAdapter();
        if (adapter != null) {
            adapter.notifyDataSetChanged();
        }
        MainActivity.INSTANCE.getTabsBtn().setText(String.valueOf(MainActivity.INSTANCE.getTabList().size()));
        new Handler(Looper.getMainLooper()).post(new Runnable() {
            @Override
            public final void run() {
                TabsBottomSheet.changeTab$lambda$8();
            }
        });
    }

    public static final void changeTab$lambda$8() {
        MainActivity.INSTANCE.getMyPager().setCurrentItem(MainActivity.INSTANCE.getTabList().size() - 1);
    }

    private final void dismissWithAnimation() {
        View view = getView();
        if (view != null) {
            view.startAnimation(AnimationUtils.loadAnimation(getContext(), com.kaunik.ampture.R.anim.slide_down));
        }
        new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
            @Override
            public final void run() {
                TabsBottomSheet.dismissWithAnimation$lambda$9(TabsBottomSheet.this);
            }
        }, 300L);
    }

    public static final void dismissWithAnimation$lambda$9(TabsBottomSheet this$0) {
        Intrinsics.checkNotNullParameter(this$0, "this$0");
        this$0.dismiss();
    }

    public void onDestroyView() {
        super.onDestroyView();
        this._binding = null;
    }
}