chore: new examples

This commit is contained in:
rhunk
2023-12-26 13:18:36 +01:00
committed by GitHub
parent 433d39c0ce
commit 54b592a2ee
3 changed files with 88 additions and 0 deletions

39
examples/alert_dialog.js Normal file
View File

@@ -0,0 +1,39 @@
// ==SE_module==
// name: alert_dialog
// displayName: Alert Dialog test
// version: 1.0
// author: John Doe
// ==/SE_module==
var interfaces = require('java-interfaces')
var im = require('interface-manager')
function getMyUserId(context) {
var database = context.openOrCreateDatabase("arroyo.db", 0, null)
var cursor = database.rawQuery("SELECT value FROM required_values WHERE key = 'USERID'", null)
var userId = null
try {
if (cursor.moveToFirst()) {
userId = cursor.getString(0)
}
} finally {
cursor.close()
database.close()
}
return userId
}
module.onSnapMainActivityCreate = activity => {
var myUserId = getMyUserId(activity)
activity.runOnUiThread(interfaces.runnable(() => {
var myDialog = im.createAlertDialog(activity, (builder, dialog) => {
builder.text("My User Id is : " + myUserId)
})
myDialog.show()
}))
}

View File

@@ -0,0 +1,23 @@
// ==SE_module==
// name: friend_feed_context_menu
// displayName: Friend Feed Contex Menu Test
// version: 1.0
// author: John Doe
// ==/SE_module==
var im = require("interface-manager")
var config = require('config')
module.onSnapMainActivityCreate = () => {
im.create("friendFeedContextMenu", (builder, args) => {
builder.text("conversationId: " + args["conversationId"])
builder.text("userId: " + args["userId"])
builder.row(builder => {
builder.text("My Switch")
builder.switch(config.getBoolean("myBoolean", false), value => {
config.setBoolean("myBoolean", value, true)
})
}).arrangement("spaceBetween").fillMaxWidth().padding(4)
})
}

View File

@@ -0,0 +1,26 @@
// ==SE_module==
// name: unsafe_classloader
// displayName: Unsafe classloader
// version: 1.0
// author: John Doe
// permissions: unsafe-classloader
// ==/SE_module==
var interfaces = require('java-interfaces')
module.onSnapMainActivityCreate = () => {
type("java.lang.Thread").newInstance(
interfaces.runnable(() => {
try {
var okHttpClient = type("okhttp3.OkHttpClient$Builder", true).newInstance()
.followRedirects(false)
.build()
var response = okHttpClient.newCall(type("okhttp3.Request$Builder", true).newInstance().url("https://github.com/").build()).execute()
logInfo("response: " + response.body().string())
} catch (e) {
logError(e)
}
})
).start()
}