mirror of https://github.com/NekoX-Dev/NekoX.git
117 lines
5.4 KiB
Java
117 lines
5.4 KiB
Java
package org.telegram.ui;
|
|
|
|
import android.annotation.SuppressLint;
|
|
import android.content.Context;
|
|
import android.content.DialogInterface;
|
|
import android.util.TypedValue;
|
|
import android.view.Gravity;
|
|
import android.widget.LinearLayout;
|
|
import android.widget.ScrollView;
|
|
import android.widget.TextView;
|
|
|
|
import androidx.core.graphics.ColorUtils;
|
|
|
|
import org.telegram.messenger.AndroidUtilities;
|
|
import org.telegram.messenger.LocaleController;
|
|
import org.telegram.messenger.MessagesController;
|
|
import org.telegram.messenger.R;
|
|
import org.telegram.ui.ActionBar.AlertDialog;
|
|
import org.telegram.ui.ActionBar.BaseFragment;
|
|
import org.telegram.ui.ActionBar.BottomSheet;
|
|
import org.telegram.ui.ActionBar.Theme;
|
|
import org.telegram.ui.Components.LayoutHelper;
|
|
import org.telegram.ui.Components.StickerImageView;
|
|
|
|
public class SuggestClearDatabaseBottomSheet extends BottomSheet {
|
|
|
|
BaseFragment fragment;
|
|
|
|
@SuppressLint("StaticFieldLeak")
|
|
private static SuggestClearDatabaseBottomSheet dialog;
|
|
|
|
public static void show(BaseFragment fragment) {
|
|
if (dialog == null) {
|
|
dialog = new SuggestClearDatabaseBottomSheet(fragment);
|
|
dialog.show();
|
|
}
|
|
}
|
|
|
|
private SuggestClearDatabaseBottomSheet(BaseFragment fragment) {
|
|
super(fragment.getParentActivity(), false);
|
|
this.fragment = fragment;
|
|
Context context = fragment.getParentActivity();
|
|
LinearLayout linearLayout = new LinearLayout(context);
|
|
linearLayout.setOrientation(LinearLayout.VERTICAL);
|
|
|
|
StickerImageView imageView = new StickerImageView(context, currentAccount);
|
|
imageView.setStickerNum(7);
|
|
imageView.getImageReceiver().setAutoRepeat(1);
|
|
linearLayout.addView(imageView, LayoutHelper.createLinear(144, 144, Gravity.CENTER_HORIZONTAL, 0, 16, 0, 0));
|
|
|
|
TextView title = new TextView(context);
|
|
title.setGravity(Gravity.START);
|
|
title.setTextColor(Theme.getColor(Theme.key_dialogTextBlack));
|
|
title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20);
|
|
title.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
|
title.setText(LocaleController.getString("SuggestClearDatabaseTitle", R.string.SuggestClearDatabaseTitle));
|
|
linearLayout.addView(title, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 21, 30, 21, 0));
|
|
|
|
TextView description = new TextView(context);
|
|
description.setGravity(Gravity.START);
|
|
description.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
|
|
description.setTextColor(Theme.getColor(Theme.key_dialogTextBlack));
|
|
description.setText(AndroidUtilities.replaceTags(LocaleController.formatString("SuggestClearDatabaseMessage", R.string.SuggestClearDatabaseMessage, AndroidUtilities.formatFileSize(fragment.getMessagesStorage().getDatabaseSize()))));
|
|
linearLayout.addView(description, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 21, 15, 21, 16));
|
|
|
|
|
|
TextView buttonTextView = new TextView(context);
|
|
buttonTextView.setPadding(AndroidUtilities.dp(34), 0, AndroidUtilities.dp(34), 0);
|
|
buttonTextView.setGravity(Gravity.CENTER);
|
|
buttonTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
|
|
buttonTextView.setTypeface(AndroidUtilities.getTypeface("fonts/rmedium.ttf"));
|
|
buttonTextView.setText(LocaleController.getString("ClearLocalDatabase", R.string.ClearLocalDatabase));
|
|
|
|
buttonTextView.setTextColor(Theme.getColor(Theme.key_featuredStickers_buttonText));
|
|
buttonTextView.setBackgroundDrawable(Theme.createSimpleSelectorRoundRectDrawable(AndroidUtilities.dp(6), Theme.getColor(Theme.key_featuredStickers_addButton), ColorUtils.setAlphaComponent(Theme.getColor(Theme.key_windowBackgroundWhite), 120)));
|
|
|
|
linearLayout.addView(buttonTextView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, 48, 0, 16, 15, 16, 16));
|
|
|
|
buttonTextView.setOnClickListener(view -> {
|
|
AlertDialog.Builder builder = new AlertDialog.Builder(fragment.getParentActivity());
|
|
builder.setTitle(LocaleController.getString("LocalDatabaseClearTextTitle", R.string.LocalDatabaseClearTextTitle));
|
|
builder.setMessage(LocaleController.getString("LocalDatabaseClearText", R.string.LocalDatabaseClearText));
|
|
builder.setNegativeButton(LocaleController.getString("Cancel", R.string.Cancel), null);
|
|
builder.setPositiveButton(LocaleController.getString("CacheClear", R.string.CacheClear), (dialogInterface, i) -> {
|
|
if (fragment.getParentActivity() == null) {
|
|
return;
|
|
}
|
|
MessagesController.getInstance(currentAccount).clearQueryTime();
|
|
fragment.getMessagesStorage().clearLocalDatabase();
|
|
});
|
|
AlertDialog alertDialog = builder.create();
|
|
fragment.showDialog(alertDialog);
|
|
TextView button = (TextView) alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
|
|
if (button != null) {
|
|
button.setTextColor(Theme.getColor(Theme.key_dialogTextRed2));
|
|
}
|
|
});
|
|
|
|
ScrollView scrollView = new ScrollView(context);
|
|
scrollView.addView(linearLayout);
|
|
setCustomView(scrollView);
|
|
}
|
|
|
|
@Override
|
|
public void dismiss() {
|
|
super.dismiss();
|
|
dialog = null;
|
|
}
|
|
|
|
public static void dismissDialog() {
|
|
if (dialog != null) {
|
|
dialog.dismiss();
|
|
dialog = null;
|
|
}
|
|
}
|
|
}
|