AndroidUtilitiesInterface
package aaa.bridge
import android.content.Intent
import android.view.View
import androidx.annotation.UiThread
import androidx.annotation.WorkerThread
interface AndroidUtilitiesInterface {
fun getViewInset(view: View?): Int
fun formatterBannedUntil(date: Long): String
@UiThread
fun showCopyToast(text: String = "")
@UiThread
fun internalIntent(intent: Intent)
@UiThread
fun createShareAlert(text: String)
suspend fun checkTGUser(tgId: Long, url: String, successCallback: () -> Unit)
@UiThread
fun gotoGooglePlayUpdate()
@UiThread
fun gotoStandaloneUpdate()
}
AndroidUtilitiesBridge
package aaa.bridge
import android.content.Intent
import android.view.View
object AndroidUtilitiesBridge : AndroidUtilitiesInterface {
private var impl: AndroidUtilitiesInterface? = null
fun setImpl(androidUtilitiesInterface: AndroidUtilitiesInterface) {
impl = androidUtilitiesInterface
}
override fun getViewInset(view: View?): Int {
return impl?.getViewInset(view) ?: 0
}
override fun formatterBannedUntil(date: Long): String {
return impl?.formatterBannedUntil(date) ?: ""
}
override fun showCopyToast(text: String) {
impl?.showCopyToast(text)
}
override fun internalIntent(intent: Intent) {
impl?.internalIntent(intent)
}
override fun createShareAlert(text: String) {
impl?.createShareAlert(text)
}
override suspend fun checkTGUser(tgId: Long, url: String, successCallback: () -> Unit) {
impl?.checkTGUser(tgId, url, successCallback)
}
override fun gotoGooglePlayUpdate() {
impl?.gotoGooglePlayUpdate()
}
override fun gotoStandaloneUpdate() {
impl?.gotoStandaloneUpdate()
}
}
package aaa.bridge
import android.content.Intent
import android.graphics.Color
import android.text.TextUtils
import android.view.View
import androidx.core.net.toUri
import com.blankj.utilcode.util.ActivityUtils
import com.blankj.utilcode.util.Utils
import com.hjq.toast.Toaster
import conso.server.servicecommon.proto.entity.ConsoPeer
import global.xfinite.conso.auth.AuthBot3Handle
import global.xfinite.conso.cache.usernameresolver.UsernameResolverCache
import global.xfinite.conso.consobasefragment.ConsoBaseFragment
import global.xfinite.conso.customchatmessagecell.redpacket.RedPacketMessageFactory
import global.xfinite.conso.discover.aiexplore.tab.AiExploreViewHolderImpl
import global.xfinite.conso.flow.ScopeDefaultLaunch
import global.xfinite.conso.framelayoutpagemanager.FrameLayoutPage
import global.xfinite.conso.framelayoutpagemanager.FrameLayoutSubPageInterface
import global.xfinite.conso.global.ConsoUrlCustomDefine
import global.xfinite.conso.global.GlobalNotification
import global.xfinite.conso.global.getAccountNum
import global.xfinite.conso.logtool.LogTool
import global.xfinite.conso.memory.MemoryUsageMonitor
import global.xfinite.conso.referral.invite.ReferralInviteViewHolderImpl
import global.xfinite.conso.referral.mint.referralcode.ReferralMintReferralCodeViewHolderImpl
import global.xfinite.conso.view.VerifiedComposeView
import global.xfinite.conso.view.VerifiedViewImpl
import kotlinx.coroutines.delay
import org.telegram.messenger.AccountInstance
import org.telegram.messenger.AndroidUtilities
import org.telegram.messenger.BotWebViewVibrationEffect
import org.telegram.messenger.BuildVars
import org.telegram.messenger.DialogObject
import org.telegram.messenger.LocaleController
import org.telegram.messenger.MessagesController
import org.telegram.messenger.R
import org.telegram.messenger.SendMessagesHelper
import org.telegram.messenger.UserConfig
import org.telegram.messenger.browser.Browser
import org.telegram.tgnet.ConnectionsManager
import org.telegram.tgnet.TLRPC
import org.telegram.ui.ActionBar.Theme
import org.telegram.ui.ChatActivity
import org.telegram.ui.Components.Bulletin
import org.telegram.ui.Components.BulletinFactory
import org.telegram.ui.Components.ShareAlert
import org.telegram.ui.LaunchActivity
import org.telegram.ui.bots.BotWebViewAttachedSheet
import org.telegram.ui.bots.WebViewRequestProps
import java.util.Base64
import kotlin.math.abs
class AndroidUtilitiesImpl : AndroidUtilitiesInterface {
companion object {
private val TAG by lazy { AndroidUtilitiesImpl::class.java.simpleName }
}
init {
GlobalNotification.shared
Toaster.init(Utils.getApp())
ReferralMintReferralCodeViewHolderImpl
ReferralInviteViewHolderImpl
AiExploreViewHolderImpl
VerifiedViewImpl.setVerifiedComposeCreateCallback { VerifiedComposeView() }
FrameLayoutPage.makeConsoBaseFragment = { tgId, fragment ->
(fragment as? FrameLayoutSubPageInterface)?.let { view ->
ConsoBaseFragment(tgId, view)
}
}
ScopeDefaultLaunch {
for (i in 0..20) {
delay(1000)
try {
val pm = Utils.getApp().packageManager
val telegramInfo = pm.getPackageInfo("org.telegram.messenger", 0)
if (telegramInfo != null) {
AuthBot3Handle.isTelegramInPhone = 1
break
} else {
AuthBot3Handle.isTelegramInPhone = 0
}
} catch (_: Exception) {
}
}
}
}
override fun getViewInset(view: View?): Int {
return AndroidUtilities.getViewInset(view)
}
override fun formatterBannedUntil(date: Long): String {
return LocaleController.getInstance().formatterBannedUntil.format(date * 1000)
}
override fun showCopyToast(text: String) {
}
override fun internalIntent(intent: Intent) {
LaunchActivity.instance.onNewIntent(intent)
}
override fun createShareAlert(text: String) {
val shareAlert =
ShareAlert.createShareAlert(LaunchActivity.instance, null, text, false, text, false)
shareAlert.show()
}
override suspend fun checkTGUser(tgId: Long, url: String, successCallback: () -> Unit) {
try {
} catch (_: Exception) {
}
}
override fun gotoGooglePlayUpdate() {
}
override fun gotoStandaloneUpdate() {
// LaunchActivity.instance.checkAppUpdate(true)
}
}