Sub RequestPinShortcut (Update As Boolean)
Dim ctxt As JavaObject
ctxt.InitializeContext
Dim ShortcutManagerCompat As JavaObject
ShortcutManagerCompat.InitializeStatic("androidx.core.content.pm.ShortcutManagerCompat")
Dim supported As Boolean = ShortcutManagerCompat.RunMethod("isRequestPinShortcutSupported", Array(ctxt))
If supported Then
Dim builder As JavaObject
builder.InitializeNewInstance("androidx.core.content.pm.ShortcutInfoCompat.Builder", Array(ctxt, "example.com"))
builder.RunMethod("setShortLabel", Array("Example WebSite"))
builder.RunMethod("setIcon", Array(LoadBitmap(File.DirAssets, "android-icon-72x72.png")))
Dim in As Intent
in.Initialize(in.ACTION_VIEW, ParseUri("https://example.com/"))
in.AddCategory("android.intent.category.CATEGORY_BROWSABLE")
'in.SetComponent(Application.PackageName & "/.main") 'lower case
builder.RunMethod("setIntent", Array(in))
Dim info As JavaObject = builder.RunMethod("build", Null)
If Update Then
Dim infos As List = Array(info)
Log("Update successfully? " & ShortcutManagerCompat.RunMethod("updateShortcuts", Array(ctxt, infos)))
Else
ShortcutManagerCompat.RunMethod("requestPinShortcut", Array(ctxt, info, Null))
End If
End If
End Sub
Sub ParseUri(s As String) As Object
Dim r As Reflector
Return r.RunStaticMethod("android.net.Uri", "parse", Array As Object(s), Array As String("java.lang.String"))
End Sub