BarInsta/app/src/main/java/awais/instagrabber/dialogs/AboutDialog.java

86 lines
3.5 KiB
Java
Executable File

package awais.instagrabber.dialogs;
import android.app.Dialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.SpannableStringBuilder;
import android.text.method.LinkMovementMethod;
import android.text.style.RelativeSizeSpan;
import android.text.style.URLSpan;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.LinearLayoutCompat;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import awais.instagrabber.R;
import awais.instagrabber.utils.Utils;
public final class AboutDialog extends BottomSheetDialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(@Nullable final Bundle savedInstanceState) {
final Dialog dialog = super.onCreateDialog(savedInstanceState);
final View contentView = View.inflate(getContext(), R.layout.dialog_main_about, null);
final LinearLayoutCompat infoContainer = contentView.findViewById(R.id.infoContainer);
final View btnTelegram = infoContainer.getChildAt(1);
final View btnMatrix = infoContainer.getChildAt(2);
final View btnProject = infoContainer.getChildAt(3);
final View.OnClickListener onClickListener = v -> {
final Intent intent = new Intent(Intent.ACTION_VIEW);
if (v == btnTelegram) {
intent.setData(Uri.parse("https://t.me/grabber_app"));
if (!Utils.isEmpty(Utils.telegramPackage))
intent.setPackage(Utils.telegramPackage);
}
else if (v == btnMatrix) {
intent.setData(Uri.parse("https://matrix.to/#/#instagrabber:matrix.org"));
} else
intent.setData(Uri.parse("https://instagrabber.austinhuang.me"));
startActivity(intent);
};
btnProject.setOnClickListener(onClickListener);
btnTelegram.setOnClickListener(onClickListener);
btnMatrix.setOnClickListener(onClickListener);
final String description = getString(R.string.description);
if (!Utils.isEmpty(description)) {
final SpannableStringBuilder descriptionText = new SpannableStringBuilder(description, 0, description.length());
int lastIndex = descriptionText.length() / 2;
for (int i = 0; i < descriptionText.length(); ++i) {
char c = descriptionText.charAt(i);
if (c == '[') {
final int smallTextStart = i;
descriptionText.delete(i, i + 1);
do {
c = descriptionText.charAt(i);
if (c == ']') {
descriptionText.delete(i, i + 1);
descriptionText.setSpan(new RelativeSizeSpan(0.6f), smallTextStart, i, 0);
}
++i;
} while (c != ']' || i == descriptionText.length() - 1);
}
}
lastIndex = Utils.indexOfChar(descriptionText, '@', lastIndex) - 12;
descriptionText.setSpan(new URLSpan("mailto:instagrabber@austinhuang.me"), lastIndex, lastIndex + 27, 0);
final TextView textView = (TextView) infoContainer.getChildAt(0);
textView.setMovementMethod(new LinkMovementMethod());
textView.setText(descriptionText, TextView.BufferType.SPANNABLE);
}
dialog.setContentView(contentView);
return dialog;
}
}