正在查看: Ampture v4.3.1 应用的 TabsBottomSheet.java JAVA 源代码文件
本页面展示 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;
}
}