-
Notifications
You must be signed in to change notification settings - Fork 1
/
setplayer.js
65 lines (60 loc) · 2.37 KB
/
setplayer.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
bindClass("android.app.AlertDialog");
bindClass("net.pierrox.lightning_launcher.prefs.LLPreferenceListView");
bindClass("net.pierrox.lightning_launcher.prefs.LLPreferenceCategory");
bindClass("net.pierrox.lightning_launcher.prefs.LLPreferenceList");
bindClass("net.pierrox.lightning_launcher.prefs.LLPreferenceText");
var showSettings = function() {
var suffixitem = getEvent().getItem();
var suffix = suffixitem.getTag("data");
if (suffix) {
suffix = JSON.parse(suffix);
var item = getCurrentScript();
var dt = item.getTag(suffix);
var arrplayers = ["vlc", "mx", "bs"];
if (dt) {
dt = JSON.parse(dt);
}
else {
dt = {
"playeri": 0,
"players":arrplayers[0]
};
}
var context = getActiveScreen().getContext();
// create various preferences
var prefMainCategory = new LLPreferenceCategory(0, "Main");
var prefPlayer = new LLPreferenceList(0, "Player", arrplayers, !dt.playeri?0:dt.playeri, 0);
var prefCustom = new LLPreferenceText(0, "Custom", dt.players, dt.players);
// create the list view, it will hold preferences created above
var listView = new LLPreferenceListView(context, null);
// assign preferences to the list view
listView.setPreferences([
prefMainCategory,
prefPlayer,
prefCustom
]);
// create a dialog and set the list view as the main content view
var builder=new AlertDialog.Builder(context);
builder.setView(listView);
builder.setTitle("Settings");
builder.setPositiveButton("Save",{onClick:function(dialog,id) {
try {
dt.playeri = prefPlayer.getValueIndex();
if (dt.playeri<0)
dt.playeri = 0;
}
catch (err) {
dt.playeri = 0;
}
if ((dt.players = prefCustom.getValue()).indexOf(".")<0)
dt.players = arrplayers[dt.playeri];
item.setTag(suffix,JSON.stringify(dt));
dialog.dismiss();
}});
builder.setNegativeButton("Cancel", null);
builder.show();
}
else
alert("Please call this script with non-null data!");
};
showSettings();