diff --git a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java index 5201c7d07..52bc3e098 100644 --- a/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java +++ b/app/src/main/java/ru/vtosters/lite/ui/fragments/VTSettings.java @@ -9,8 +9,6 @@ import com.aefyr.tsg.g2.TelegramStickersPack; import com.aefyr.tsg.g2.TelegramStickersService; import com.vk.about.AboutAppFragment; import com.vk.balance.BalanceFragment; -import com.vk.core.fragments.FragmentImpl; -import com.vk.navigation.Navigator; import com.vk.notifications.settings.NotificationsSettingsFragment; import com.vk.webapp.fragments.PrivacyFragment; import com.vtosters.lite.MainActivity; @@ -28,8 +26,6 @@ import ru.vtosters.lite.concurrent.VTExecutors; import ru.vtosters.lite.hooks.ui.SystemThemeChangerHook; import ru.vtosters.lite.ssfs.Utils; import ru.vtosters.lite.ui.PreferenceFragmentUtils; -import ru.vtosters.lite.ui.components.DockBarEditorManager; -import ru.vtosters.lite.ui.components.SuperAppEditorManager; import ru.vtosters.lite.ui.dialogs.OTADialog; import ru.vtosters.lite.ui.fragments.tgstickers.StickersFragment; import ru.vtosters.lite.utils.*; @@ -126,6 +122,8 @@ public class VTSettings extends MaterialPreferenceToolbarFragment implements Tel this.addPreferencesFromResource(R.xml.empty); +// AndroidUtils.checkLinksVerified(this.requireActivity()); + var accountSwitcher = PreferenceFragmentUtils.addPreference( getPreferenceScreen(), "account_switcher", diff --git a/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java b/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java index 48325af56..a96c0eab7 100644 --- a/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java +++ b/app/src/main/java/ru/vtosters/lite/utils/AndroidUtils.java @@ -2,12 +2,19 @@ package ru.vtosters.lite.utils; import android.app.Activity; import android.content.Context; +import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.content.pm.verify.domain.DomainVerificationManager; +import android.content.pm.verify.domain.DomainVerificationUserState; import android.content.res.Resources; +import android.net.Uri; import android.os.Build; import android.preference.PreferenceManager; +import android.provider.Settings; import android.util.Log; +import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.StringRes; @@ -18,9 +25,12 @@ import com.vk.core.util.ToastUtils; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Locale; +import java.util.Map; import java.util.Objects; +import com.vtosters.lite.fragments.SettingsListFragment; import com.vtosters.lite.general.fragments.WebViewFragment; +import ru.vtosters.lite.R; import ru.vtosters.lite.hooks.DateHook; public class AndroidUtils { @@ -140,6 +150,41 @@ public class AndroidUtils { new WebViewFragment.g(url).l().m().h().j().a(activity); } + public static void checkLinksVerified(Activity activity) { + if (Build.VERSION.SDK_INT < 31) return; + + DomainVerificationManager manager = activity.getSystemService(DomainVerificationManager.class); + DomainVerificationUserState userState; + + try { + userState = manager.getDomainVerificationUserState(getPackageName()); + } catch (PackageManager.NameNotFoundException ignore) { + return; + } + + boolean hasUnverified = false; + + Map hostToStateMap = userState.getHostToStateMap(); + + if (hostToStateMap.containsKey("vk.com")) { + Integer stateValue = hostToStateMap.get("vk.com"); + hasUnverified = stateValue != null && stateValue != DomainVerificationUserState.DOMAIN_STATE_VERIFIED && stateValue != DomainVerificationUserState.DOMAIN_STATE_SELECTED; + } + + if (hasUnverified) { + // TODO Make cute dialog or snackbar for this + try { + Intent intent = new Intent(Settings.ACTION_APP_OPEN_BY_DEFAULT_SETTINGS, Uri.parse("package:" + getPackageName())); + activity.startActivity(intent); + } catch (Throwable t1) { + try { + Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.parse("package:" + getPackageName())); + activity.startActivity(intent); + } catch (Throwable ignored) {} + } + } + } + public static String MD5(String s) { try { var md = MessageDigest.getInstance("MD5");