Update version 14

This commit is contained in:
StageGuard
2020-09-13 20:54:26 +08:00
parent 8ff1de8e21
commit 13979f81ae
3 changed files with 483 additions and 359 deletions

View File

@@ -15,8 +15,10 @@ A script to play Sheets generated by SkyStudio automatically in game Sky with ac
* ... * ...
## 使用 ## 使用
Auto.js开启**无障碍服务**和**悬浮窗权限**。 <br>①Auto.js`4.1.1 Alpha2 (461)`版本下载: [`Ericwyn/Auto.js/releases@V4.1.1.Alpha2`](https://github.com/Ericwyn/Auto.js/releases/tag/V4.1.1.Alpha2)
</br>②在Auto.js中新建一个脚本并粘贴以下代码并运行 <br>手机请下载`autoJs-V4.1.1.Alpha2-common-armeabi-v7a-debug.apk`
<br>②为Auto.js开启**无障碍服务**和**悬浮窗权限**。
<br>③在Auto.js中新建一个脚本并粘贴以下代码并运行
```javascript ```javascript
"ui"; "ui";
"use strict"; "use strict";
@@ -42,8 +44,6 @@ emitter.on('evaluate', function(s){
``` ```
在Auto.js版本`4.1.1 Alpha2 (461)`中测试通过,不保证其他版本的兼容性(取决于其他版本相对于此版本的API是否有`breaking changes`) 在Auto.js版本`4.1.1 Alpha2 (461)`中测试通过,不保证其他版本的兼容性(取决于其他版本相对于此版本的API是否有`breaking changes`)
</br>Auto.js`4.1.1 Alpha2 (461)`版本下载: [`Ericwyn/Auto.js/releases@V4.1.1.Alpha2`](https://github.com/Ericwyn/Auto.js/releases/tag/V4.1.1.Alpha2)
</br>手机请下载`autoJs-V4.1.1.Alpha2-common-armeabi-v7a-debug.apk`
## 清除数据 ## 清除数据
SkyAutoPlayer在使用过程中会产生本地数据存储若想全部删除请使用Auto.js执行以下代码 SkyAutoPlayer在使用过程中会产生本地数据存储若想全部删除请使用Auto.js执行以下代码
@@ -109,6 +109,8 @@ files.removeDir("/storage/emulated/0/Documents/SkyAutoPlayer/");
酷安[@社区最弱萌新](http://www.coolapk.com/u/3291313)<br> 酷安[@社区最弱萌新](http://www.coolapk.com/u/3291313)<br>
酷安[@九方辰](http://www.coolapk.com/u/634078)<br> 酷安[@九方辰](http://www.coolapk.com/u/634078)<br>
酷安[@北极马可罗尼](http://www.coolapk.com/u/463478)<br> 酷安[@北极马可罗尼](http://www.coolapk.com/u/463478)<br>
酷安[@UTF16](http://www.coolapk.com/u/3751911)<br>
酷安[@]()<br>
<br> <br>
# 图标来源 # 图标来源

View File

@@ -80,6 +80,14 @@ sheetmgr = {
return this.cachedOnlineSharedSheetInfoList; return this.cachedOnlineSharedSheetInfoList;
}, },
filterOnlineSharedSheet: function(filterBlock) {
var resultList = [];
this.getOnlineSharedSheetInfoList().map(function(element, index) {
if(filterBlock(element)) resultList.push(element);
});
return resultList;
},
downloadAndLoad: function(file, author, listener) { downloadAndLoad: function(file, author, listener) {
listener({status:1}); listener({status:1});
config.fetchRepoFile("shared_sheets/" + file, null, function(body) { config.fetchRepoFile("shared_sheets/" + file, null, function(body) {
@@ -343,7 +351,7 @@ config = {
skipImportLocalSheetTip: false, skipImportLocalSheetTip: false,
showFailedSheets: true, showFailedSheets: true,
tipOnAndroidR: true, tipOnAndroidR: true,
currentVersion: 13, currentVersion: 14,
gitVersion: "", gitVersion: "",
}, },
@@ -399,7 +407,7 @@ config = {
fetchResources: function(listener) { fetchResources: function(listener) {
var remoteHost = "https://cdn.jsdelivr.net/gh/StageGuard/SkyAutoPlayerScript@" + this.values.gitVersion + "/resources/"; var remoteHost = "https://cdn.jsdelivr.net/gh/StageGuard/SkyAutoPlayerScript@" + this.values.gitVersion + "/resources/";
var resourceList = ["local.png", "online.png", "play.png", "pause.png", "refresh.png", "settings.png", "info.png", "download.png", "bin.png", "speedup.png"]; var resourceList = ["local.png", "online.png", "play.png", "pause.png", "refresh.png", "settings.png", "info.png", "download.png", "bin.png", "speedup.png", "search.png"/*, "filter.png"*/];
var localRootDir = android.os.Environment.getExternalStorageDirectory() + "/Documents/SkyAutoPlayer/bitmaps/"; var localRootDir = android.os.Environment.getExternalStorageDirectory() + "/Documents/SkyAutoPlayer/bitmaps/";
var downloadQueue = []; var downloadQueue = [];
var tryCount = 1; var tryCount = 1;
@@ -1031,12 +1039,14 @@ gui = {
_global_title: null, _global_title: null,
_global_navigation_bar: null, _global_navigation_bar: null,
_global_close: null, _global_close: null,
_glonal_func: null, _global_statusbar: null,
_glonal_func: [],
isShowing: false, isShowing: false,
current_navigation_selection: NaN, current_navigation_selection: NaN,
func_showing: false, func_showing: false,
current: 0, current: 0,
currentPageChangeListener: null,
cx: dp * 10, cx: dp * 10,
cy: dp * 10, cy: dp * 10,
@@ -1102,8 +1112,10 @@ gui = {
if(gui.main.views[i].index == index) { if(gui.main.views[i].index == index) {
gui.main.views[i].func_clickable = clickable; gui.main.views[i].func_clickable = clickable;
if(gui.main.current == index && gui.main.isShowing) { if(gui.main.current == index && gui.main.isShowing) {
gui.main._glonal_func.setEnabled(clickable); for(var i in gui.main._glonal_func) {
gui.main._glonal_func.setClickable(clickable); gui.main._glonal_func[i].setEnabled(clickable);
gui.main._glonal_func[i].setClickable(clickable);
}
} }
} }
} }
@@ -1120,10 +1132,10 @@ gui = {
gui.main._global_base.setLayoutParams(new android.widget.LinearLayout.LayoutParams(dp * gui.main.window_width, dp * gui.main.window_height)); gui.main._global_base.setLayoutParams(new android.widget.LinearLayout.LayoutParams(dp * gui.main.window_width, dp * gui.main.window_height));
gui.main._global_base.setBackgroundColor(gui.config.colors.background); gui.main._global_base.setBackgroundColor(gui.config.colors.background);
s.statusBar = new android.widget.RelativeLayout(ctx); gui.main._global_statusbar = new android.widget.RelativeLayout(ctx);
s.statusBar.setLayoutParams(new android.widget.RelativeLayout.LayoutParams(-1, dp * gui.main.status_bar_height)); gui.main._global_statusbar.setLayoutParams(new android.widget.RelativeLayout.LayoutParams(-1, dp * gui.main.status_bar_height));
s.statusBar.setBackgroundColor(gui.config.colors.background); gui.main._global_statusbar.setBackgroundColor(gui.config.colors.background);
s.statusBar.setElevation(10 * dp); gui.main._global_statusbar.setElevation(10 * dp);
gui.main._global_title = new android.widget.TextView(ctx); gui.main._global_title = new android.widget.TextView(ctx);
gui.main._global_title.setGravity(android.view.Gravity.LEFT | android.view.Gravity.CENTER); gui.main._global_title.setGravity(android.view.Gravity.LEFT | android.view.Gravity.CENTER);
@@ -1153,7 +1165,7 @@ gui = {
return true; return true;
}, },
})); }));
s.statusBar.addView(gui.main._global_title); gui.main._global_statusbar.addView(gui.main._global_title);
gui.main._global_close = new android.widget.TextView(ctx); gui.main._global_close = new android.widget.TextView(ctx);
gui.main._global_close.setId(23); gui.main._global_close.setId(23);
@@ -1171,17 +1183,10 @@ gui = {
gui.suspension.show(); gui.suspension.show();
} }
})); }));
gui.main._glonal_func = new android.widget.ImageView(ctx);
gui.main._glonal_func.setLayoutParams(new android.widget.RelativeLayout.LayoutParams(dp * gui.main.status_bar_height, dp * gui.main.status_bar_height));
gui.main._glonal_func.setPadding(dp * 1, dp * 1, dp * 1, dp * 1);
gui.main._glonal_func.getLayoutParams().addRule(android.widget.RelativeLayout.LEFT_OF, 23);
gui.main._glonal_func.measure(0, 0);
gui.main._glonal_func.setBackgroundDrawable(gui.utils.ripple_drawable(gui.main._glonal_func.getMeasuredWidth(), gui.main._glonal_func.getMeasuredHeight(), "rect"));
gui.main._glonal_func.setPadding(dp * 5, dp * 5, dp * 5, dp * 5);
s.statusBar.addView(gui.main._glonal_func);
s.statusBar.addView(gui.main._global_close);
gui.main._global_base.addView(s.statusBar); gui.main._global_statusbar.addView(gui.main._global_close);
gui.main._global_base.addView(gui.main._global_statusbar);
gui.main._global_content_container = new android.widget.RelativeLayout(ctx); gui.main._global_content_container = new android.widget.RelativeLayout(ctx);
gui.main._global_content_container.setLayoutParams(new android.widget.LinearLayout.LayoutParams(-1, dp * (gui.main.window_height - gui.main.status_bar_height - gui.main.navigation_bar_height))); gui.main._global_content_container.setLayoutParams(new android.widget.LinearLayout.LayoutParams(-1, dp * (gui.main.window_height - gui.main.status_bar_height - gui.main.navigation_bar_height)));
@@ -1211,25 +1216,14 @@ gui = {
gui.main._global_navigation_bar.setLayoutParams(new android.widget.LinearLayout.LayoutParams(-1, dp * (gui.main.navigation_bar_height + gui.main.navigation_bar_updown_margin * 2))); gui.main._global_navigation_bar.setLayoutParams(new android.widget.LinearLayout.LayoutParams(-1, dp * (gui.main.navigation_bar_height + gui.main.navigation_bar_updown_margin * 2)));
gui.main._global_navigation_bar.setBackgroundColor(gui.config.colors.background); gui.main._global_navigation_bar.setBackgroundColor(gui.config.colors.background);
gui.main.__internal_genNavigationList(s); gui.main.__internal_genNavigationList(s, content);
gui.main._global_base.addView(gui.main._global_navigation_bar); gui.main._global_base.addView(gui.main._global_navigation_bar);
//ui.setContentView(gui.main._global_base);
/*gui.main._global_main_popup = new android.widget.PopupWindow(ctx);
gui.main._global_main_popup.setWindowLayoutType(android.os.Build.VERSION.SDK_INT >= 26 ? android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY : android.view.WindowManager.LayoutParams.TYPE_PHONE);
gui.main._global_main_popup.setFocusable(false);
gui.main._global_main_popup.setOutsideTouchable(false);
gui.main._global_main_popup.setBackgroundDrawable(new android.graphics.drawable.ColorDrawable(0));
gui.main._global_main_popup.setContentView(gui.main._global_base);
gui.main._global_main_popup.setWidth(gui.main.window_width * dp);
gui.main._global_main_popup.setHeight((gui.main.window_height + gui.main.navigation_bar_updown_margin * 2) * dp);
gui.main._global_main_popup.showAtLocation(ctx.getWindow().getDecorView(), 0, s.x = gui.main.cx, s.y = gui.main.cy);*/
s._winParams = new android.view.WindowManager.LayoutParams(); s._winParams = new android.view.WindowManager.LayoutParams();
s._winParams.type = android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; s._winParams.type = android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
s._winParams.flags = android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
s._winParams.format = android.graphics.PixelFormat.TRANSLUCENT; s._winParams.format = android.graphics.PixelFormat.TRANSLUCENT;
s._winParams.softInputMode = android.view.WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE;
s._winParams.width = gui.main.window_width * dp; s._winParams.width = gui.main.window_width * dp;
s._winParams.height = (gui.main.window_height + gui.main.navigation_bar_updown_margin * 2) * dp; s._winParams.height = (gui.main.window_height + gui.main.navigation_bar_updown_margin * 2) * dp;
s._winParams.x = s.x = gui.main.cx; s._winParams.x = s.x = gui.main.cx;
@@ -1274,16 +1268,18 @@ gui = {
gui.main._global_content_container.findViewById(cid).findViewById(15).setAlpha(1.0 - anim.getAnimatedValue()); gui.main._global_content_container.findViewById(cid).findViewById(15).setAlpha(1.0 - anim.getAnimatedValue());
gui.main._global_content_container.findViewById(tid).findViewById(15).setAlpha(anim.getAnimatedValue()); gui.main._global_content_container.findViewById(tid).findViewById(15).setAlpha(anim.getAnimatedValue());
if(anim.getAnimatedValue() == 1.0) { if(anim.getAnimatedValue() == 1.0) {
gui.main._global_content_container.findViewById(cid).findViewById(15).setEnabled(false); var previousContainer = gui.main._global_content_container.findViewById(cid);
gui.main._global_content_container.findViewById(cid).findViewById(15).setClickable(false); previousContainer.findViewById(15).setEnabled(false);
gui.main._global_content_container.findViewById(cid).setEnabled(false); previousContainer.findViewById(15).setClickable(false);
gui.main._global_content_container.findViewById(cid).setClickable(false); //飞了 previousContainer.setEnabled(false);
gui.main._global_content_container.findViewById(cid).setZ(0); previousContainer.setClickable(false);
gui.main._global_content_container.findViewById(tid).findViewById(15).setEnabled(true); previousContainer.setZ(0);
gui.main._global_content_container.findViewById(tid).findViewById(15).setClickable(true); var targetContainer = gui.main._global_content_container.findViewById(tid);
gui.main._global_content_container.findViewById(tid).setEnabled(true); targetContainer.findViewById(15).setEnabled(true);
gui.main._global_content_container.findViewById(tid).setClickable(true); targetContainer.findViewById(15).setClickable(true);
gui.main._global_content_container.findViewById(tid).setZ(1); //回来 targetContainer.setEnabled(true);
targetContainer.setClickable(true);
targetContainer.setZ(1);
if(gui.main.views[tid].update != null && anim.getAnimatedValue() == 1.0) gui.main.views[tid].update(s); if(gui.main.views[tid].update != null && anim.getAnimatedValue() == 1.0) gui.main.views[tid].update(s);
} }
}); });
@@ -1291,53 +1287,53 @@ gui = {
gui.main._global_title.setAlpha(anim.getAnimatedValue()); gui.main._global_title.setAlpha(anim.getAnimatedValue());
}); });
gui.main.currentPageChangeListener = content.onPageChanged;
gui.main.__internal_changeNavigationStatus(s, content);
}
gui.main.__internal_changeNavigationStatus(s.index); if(gui.main.views[s.index].func == null || !gui.main.views[s.index].func.length) {
}
if(gui.main.views[s.index].func == null) {
if(gui.main.func_showing) { if(gui.main.func_showing) {
//no extra func and previous page has func
gui.main.func_showing = false; gui.main.func_showing = false;
gui.utils.value_animation("Float", 0, 1, 300 , new android.view.animation.DecelerateInterpolator(), function(anim) {
gui.main._glonal_func.setTranslationX(anim.getAnimatedValue() * gui.main._glonal_func.getMeasuredWidth());
gui.main._glonal_func.setAlpha(1 - anim.getAnimatedValue());
if(anim.getAnimatedValue() == 1.0) {
gui.main._glonal_func.setClickable(false);
gui.main._glonal_func.setEnabled(false);
gui.main._glonal_func.setOnClickListener(new android.view.View.OnClickListener({
onClick: function() {}
}));
gui.main._glonal_func.setImageBitmap(android.graphics.Bitmap.createBitmap(1, 1, android.graphics.Bitmap.Config.ARGB_8888));
}
});
}
} else {
if(gui.main.func_showing) {
gui.main._glonal_func.setOnClickListener(new android.view.View.OnClickListener({
onClick: function() {gui.main.views[s.index].func(s)}
}));
gui.main._glonal_func.setImageBitmap(gui.main.views[s.index].func_icon);
gui.utils.value_animation("Float", 0, 1, 200 , new android.view.animation.DecelerateInterpolator(), function(anim) { gui.utils.value_animation("Float", 0, 1, 200 , new android.view.animation.DecelerateInterpolator(), function(anim) {
gui.main._glonal_func.setAlpha(anim.getAnimatedValue()); for(var i in gui.main._glonal_func) {
}); gui.main._glonal_func[i].setAlpha(1 - anim.getAnimatedValue());
} else { if(anim.getAnimatedValue() == 1.0) {
gui.main.func_showing = true; gui.main._global_statusbar.removeView(gui.main._glonal_func[i]);
gui.main._glonal_func.setClickable(true); }
gui.main._glonal_func.setEnabled(true); }
gui.main._glonal_func.setOnClickListener(new android.view.View.OnClickListener({
onClick: function() {gui.main.views[s.index].func(s)}
}));
gui.main._glonal_func.setImageBitmap(gui.main.views[s.index].func_icon);
gui.utils.value_animation("Float", 1, 0, 300 , new android.view.animation.DecelerateInterpolator(), function(anim) {
gui.main._glonal_func.setTranslationX(anim.getAnimatedValue() * gui.main._glonal_func.getMeasuredWidth());
gui.main._glonal_func.setAlpha(1 - anim.getAnimatedValue());
}); });
} }
} else {
for(var i in gui.main._glonal_func) gui.main._global_statusbar.removeView(gui.main._glonal_func[i]);
gui.main.func_showing = true;
s.baseFuncIndex = gui.main._global_close.getId();
for(var i in content.func) {
var view = new android.widget.ImageView(ctx);
view.setId(++s.baseFuncIndex);
view.setLayoutParams(new android.widget.RelativeLayout.LayoutParams(dp * gui.main.status_bar_height, dp * gui.main.status_bar_height));
view.setPadding(dp * 1, dp * 1, dp * 1, dp * 1);
view.getLayoutParams().addRule(android.widget.RelativeLayout.LEFT_OF, s.baseFuncIndex - 1);
view.measure(0, 0);
view.setBackgroundDrawable(gui.utils.ripple_drawable(view.getMeasuredWidth(), view.getMeasuredHeight(), "rect"));
view.setPadding(dp * 5, dp * 5, dp * 5, dp * 5);
view.setAlpha(0);
view.setImageBitmap(content.func[i].icon);
view.setOnClickListener(new android.view.View.OnClickListener({
onClick: function(view) {content.func[view.getId() - (gui.main._global_close.getId() + 1)].onClick(s, content)}
}));
gui.main._global_statusbar.addView(view);
gui.main._glonal_func.push(view);
}
gui.utils.value_animation("Float", 0, 1, 200 , new android.view.animation.DecelerateInterpolator(), function(anim) {
for(var i in gui.main._glonal_func) {
gui.main._glonal_func[i].setAlpha(anim.getAnimatedValue());
}
});
} }
gui.main.current_navigation_selection = s.index; gui.main.current_navigation_selection = s.index;
gui.main._glonal_func.setClickable(content.func_clickable);
gui.main._glonal_func.setEnabled(content.func_clickable);
})}, })},
__internal_genNavigationList: function(s) { gui.run(function(){ __internal_genNavigationList: function(s, content) { gui.run(function(){
if(gui.main._global_navigation_bar == null) return; if(gui.main._global_navigation_bar == null) return;
s.__2x_navigation_padding = (gui.main.window_width - gui.main.views.length * gui.main.navigation_bar_height) / (gui.main.views.length); s.__2x_navigation_padding = (gui.main.window_width - gui.main.views.length * gui.main.navigation_bar_height) / (gui.main.views.length);
for(var i in gui.main.views) { for(var i in gui.main.views) {
@@ -1353,10 +1349,11 @@ gui = {
default: s["navigationBtn" + i].getLayoutParams().setMargins(s.__2x_navigation_padding / 2, dp * gui.main.navigation_bar_updown_margin, s.__2x_navigation_padding / 2, dp * gui.main.navigation_bar_updown_margin); break; default: s["navigationBtn" + i].getLayoutParams().setMargins(s.__2x_navigation_padding / 2, dp * gui.main.navigation_bar_updown_margin, s.__2x_navigation_padding / 2, dp * gui.main.navigation_bar_updown_margin); break;
} }
s["navigationBtn" + i].setOnClickListener(new android.view.View.OnClickListener({ s["navigationBtn" + i].setOnClickListener(new android.view.View.OnClickListener({
onClick: function(view) { onClick: function(view) { if(gui.main.current_navigation_selection != Number(view.getId())) {
if(typeof(gui.main.currentPageChangeListener) == "function") gui.main.currentPageChangeListener(s, content);
gui.main.__internal_show(gui.main.views[Number(view.getId())]); gui.main.__internal_show(gui.main.views[Number(view.getId())]);
gui.main.current_navigation_selection = Number(view.getId()); gui.main.current_navigation_selection = Number(view.getId());
} }}
})); }));
s["navigationBtnText" + i] = new android.widget.TextView(ctx); s["navigationBtnText" + i] = new android.widget.TextView(ctx);
@@ -1383,11 +1380,11 @@ gui = {
gui.main._global_navigation_bar.addView(s["navigationBtn" + i]); gui.main._global_navigation_bar.addView(s["navigationBtn" + i]);
} }
})}, })},
__internal_changeNavigationStatus: function(index) { gui.run(function(){ __internal_changeNavigationStatus: function(s, content) { gui.run(function(){
if(gui.main._global_navigation_bar == null) return; if(gui.main._global_navigation_bar == null) return;
if(!/^android/.test(String(gui.main._global_navigation_bar.findViewById(index)))) return; if(!/^android/.test(String(gui.main._global_navigation_bar.findViewById(s.index)))) return;
if(gui.main.current_navigation_selection == index) return; if(gui.main.current_navigation_selection == s.index) return;
var colorAnim = android.animation.ObjectAnimator.ofInt(gui.main._global_navigation_bar.findViewById(index).findViewById(12), "textColor", gui.config.colors.sec_text, gui.config.colors.text); var colorAnim = android.animation.ObjectAnimator.ofInt(gui.main._global_navigation_bar.findViewById(s.index).findViewById(12), "textColor", gui.config.colors.sec_text, gui.config.colors.text);
colorAnim.setDuration(300); colorAnim.setDuration(300);
colorAnim.setEvaluator(new android.animation.ArgbEvaluator()); colorAnim.setEvaluator(new android.animation.ArgbEvaluator());
colorAnim.start(); colorAnim.start();
@@ -1395,7 +1392,18 @@ gui = {
colorAnim.setDuration(300); colorAnim.setDuration(300);
colorAnim.setEvaluator(new android.animation.ArgbEvaluator()); colorAnim.setEvaluator(new android.animation.ArgbEvaluator());
colorAnim.start(); colorAnim.start();
gui.main.current_navigation_selection = index;
for(var i in gui.main.views) {
s["navigationBtn" + i].setOnClickListener(new android.view.View.OnClickListener({
onClick: function(view) { if(gui.main.current_navigation_selection != Number(view.getId())) {
if(typeof(gui.main.currentPageChangeListener) == "function") gui.main.currentPageChangeListener(s, content);
gui.main.__internal_show(gui.main.views[Number(view.getId())]);
gui.main.current_navigation_selection = Number(view.getId());
}}
}));
}
gui.main.current_navigation_selection = s.index;
})}, })},
__internal_rmNavigationList: function() { gui.run(function(){ __internal_rmNavigationList: function() { gui.run(function(){
@@ -2003,10 +2011,12 @@ gui.dialogs.showProgressDialog(function(o) {
title: "本地乐谱", title: "本地乐谱",
navigation_title: "本地乐谱", navigation_title: "本地乐谱",
navigation_icon: config.bitmaps.local, navigation_icon: config.bitmaps.local,
func: function(s) { func: [{
this.getSheetList(s, true); icon: android.graphics.Bitmap.createBitmap(config.bitmaps.refresh),
onClick: function(s, selfContent) {
selfContent.getSheetList(s, true);
}, },
func_icon: android.graphics.Bitmap.createBitmap(config.bitmaps.refresh), }],
view: function(s) { view: function(s) {
s.ns0_rl = new android.widget.RelativeLayout(ctx); s.ns0_rl = new android.widget.RelativeLayout(ctx);
s.ns0_rl.setLayoutParams(new android.widget.LinearLayout.LayoutParams(-1, s._content_height)); s.ns0_rl.setLayoutParams(new android.widget.LinearLayout.LayoutParams(-1, s._content_height));
@@ -2314,10 +2324,27 @@ gui.dialogs.showProgressDialog(function(o) {
title: "共享乐谱", title: "共享乐谱",
navigation_title: "共享乐谱", navigation_title: "共享乐谱",
navigation_icon: config.bitmaps.online, navigation_icon: config.bitmaps.online,
func: function(s) { func: [{
this.getOnlineSheetList(s, true); icon: android.graphics.Bitmap.createBitmap(config.bitmaps.refresh),
onClick: function(s, selfContent) {
if(s.ns1_isShowingSearchEditTextView) selfContent.removeSearchEditTextView(s, selfContent);
selfContent.getOnlineSheetList(s, true);
}, },
func_icon: android.graphics.Bitmap.createBitmap(config.bitmaps.refresh), },/* {
icon: android.graphics.Bitmap.createBitmap(config.bitmaps.filter),
onClick: function(s, selfContent) {
toast("Click filter")
},
},*/ {
icon: android.graphics.Bitmap.createBitmap(config.bitmaps.search),
onClick: function(s, selfContent) {
if(s.ns1_isShowingSearchEditTextView) {
selfContent.removeSearchEditTextView(s, selfContent);
} else {
selfContent.showSearchEditTextView(s, selfContent);
}
},
}],
view: function(s) { view: function(s) {
s.ns1_rl = new android.widget.RelativeLayout(ctx); s.ns1_rl = new android.widget.RelativeLayout(ctx);
@@ -2332,7 +2359,9 @@ gui.dialogs.showProgressDialog(function(o) {
element.isShowingStatusBar = false; element.isShowingStatusBar = false;
if(element.type == -1) { switch(element.type) {
//top notification
case -1: {
element.v_info = new android.widget.ImageView(ctx); element.v_info = new android.widget.ImageView(ctx);
element.v_info.setId(10); element.v_info.setId(10);
element.v_info.setScaleType(android.widget.ImageView.ScaleType.CENTER_CROP); element.v_info.setScaleType(android.widget.ImageView.ScaleType.CENTER_CROP);
@@ -2353,9 +2382,12 @@ gui.dialogs.showProgressDialog(function(o) {
element.v_upload.setTextColor(gui.config.colors.sec_text); element.v_upload.setTextColor(gui.config.colors.sec_text);
element.v_upload.setText(element.title); element.v_upload.setText(element.title);
element.v_relative.addView(element.v_upload); element.v_relative.addView(element.v_upload);
return element.v_relative; };break;
} case -2: {
//empty result view
};break;
default: {
//sheet item
element.v_title = new android.widget.TextView(ctx); element.v_title = new android.widget.TextView(ctx);
element.v_title.setId(10); element.v_title.setId(10);
element.v_title.setGravity(android.view.Gravity.LEFT | android.view.Gravity.CENTER); element.v_title.setGravity(android.view.Gravity.LEFT | android.view.Gravity.CENTER);
@@ -2481,7 +2513,8 @@ gui.dialogs.showProgressDialog(function(o) {
element.v_progress.setProgressDrawable(new android.graphics.drawable.ColorDrawable(gui.config.colors.background)); element.v_progress.setProgressDrawable(new android.graphics.drawable.ColorDrawable(gui.config.colors.background));
element.v_progress.setIndeterminate(false); element.v_progress.setIndeterminate(false);
element.v_progress.setAlpha(0); element.v_progress.setAlpha(0);
};break;
}
return element.v_relative; return element.v_relative;
})); }));
s.ns1_listAdapterController = RhinoListAdapter.getController(s.ns1_listAdapter); s.ns1_listAdapterController = RhinoListAdapter.getController(s.ns1_listAdapter);
@@ -2490,7 +2523,8 @@ gui.dialogs.showProgressDialog(function(o) {
s.ns1_listView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener({ s.ns1_listView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener({
onItemClick: function(parent, view, pos, id) { onItemClick: function(parent, view, pos, id) {
var item = s.ns1_listAdapterController.get(pos); var item = s.ns1_listAdapterController.get(pos);
if(item.type == -1) { switch(item.type) {
case -1: {
switch(item.index) { switch(item.index) {
case 0: { case 0: {
gui.dialogs.showConfirmDialog({ gui.dialogs.showConfirmDialog({
@@ -2538,8 +2572,11 @@ gui.dialogs.showProgressDialog(function(o) {
break; break;
} }
} }
return true; };break;
} case -2: {
};break;
default: {
gui.dialogs.showDialog((function () { gui.dialogs.showDialog((function () {
var scr = new android.widget.ScrollView(ctx); var scr = new android.widget.ScrollView(ctx);
scr.setBackgroundColor(gui.config.colors.background); scr.setBackgroundColor(gui.config.colors.background);
@@ -2598,6 +2635,9 @@ gui.dialogs.showProgressDialog(function(o) {
scr.addView(layout) scr.addView(layout)
return scr; return scr;
}()), -2, -2, null, true); }()), -2, -2, null, true);
}break;
}
return true;
} }
})); }));
s.ns1_rl.addView(s.ns1_listView); s.ns1_rl.addView(s.ns1_listView);
@@ -2615,16 +2655,84 @@ gui.dialogs.showProgressDialog(function(o) {
s.ns1_rl.addView(s.ns1_progress); s.ns1_rl.addView(s.ns1_progress);
return s.ns1_rl; return s.ns1_rl;
}, },
onPageChanged: function(s, selfContent) {
if(s.ns1_isShowingSearchEditTextView) selfContent.removeSearchEditTextView(s);
},
showSearchEditTextView: function(s, selfContent) {
gui.main.setFuncClickable(s.index, false);
s.ns1_isShowingSearchEditTextView = true;
s.ns1_searchEditText = new android.widget.EditText(ctx);
s.ns1_searchEditText.setGravity(android.view.Gravity.LEFT | android.view.Gravity.CENTER);
s.ns1_searchEditText.setLayoutParams(new android.widget.RelativeLayout.LayoutParams(-2, -1));
s.ns1_searchEditText.setPadding(dp * 5, dp * 5, dp * 5, dp * 5);
s.ns1_searchEditText.getLayoutParams().addRule(android.widget.RelativeLayout.ALIGN_PARENT_LEFT);
s.ns1_searchEditText.setTextSize(15);
s.ns1_searchEditText.setTextColor(gui.config.colors.text);
s.ns1_searchEditText.setHintTextColor(gui.config.colors.sec_text);
s.ns1_searchEditText.setHint("按回车开始搜索");
s.ns1_searchEditText.setAlpha(0);
s.ns1_searchEditText.setOnClickListener(new android.view.View.OnClickListener({
onClick: function(view) {
view.setFocusable(true);
view.setFocusableInTouchMode(true);
view.requestFocus();
ctx.getSystemService(android.content.Context.INPUT_METHOD_SERVICE).showSoftInput(view, 0);
}
}));
s.ns1_searchEditText.setOnKeyListener(new android.view.View.OnKeyListener({
onKey: function(view, keycode, event) {
if (keycode == android.view.KeyEvent.KEYCODE_ENTER && event.getAction() == android.view.KeyEvent.ACTION_DOWN) {
selfContent.getOnlineSheetList(s, false, function(item) {
return (new RegExp(view.getText(), "gi")).test(item.name);
});
return true;
}
return false;
},
}));
gui.main._global_statusbar.addView(s.ns1_searchEditText);
s.ns1_searchEditText.setFocusable(true);
s.ns1_searchEditText.setFocusableInTouchMode(true);
s.ns1_searchEditText.requestFocus();
ctx.getSystemService(android.content.Context.INPUT_METHOD_SERVICE).showSoftInput(s.ns1_searchEditText, 0);
gui.main._global_title.setEnabled(false);
gui.main._global_title.setClickable(false);
gui.utils.value_animation("Float", 0, 1.0, 300 , new android.view.animation.DecelerateInterpolator(), function(anim) {
s.ns1_searchEditText.setAlpha(anim.getAnimatedValue());
gui.main._global_title.setAlpha(1.0 - anim.getAnimatedValue());
if(anim.getAnimatedValue() == 1.0) gui.main.setFuncClickable(s.index, true);
});
},
removeSearchEditTextView: function(s, selfContent) { try {
s.ns1_isShowingSearchEditTextView = false;
gui.main.setFuncClickable(s.index, false);
s.ns1_searchEditText.setEnabled(false);
s.ns1_searchEditText.setClickable(false);
gui.main._global_title.setEnabled(true);
gui.main._global_title.setClickable(true);
gui.utils.value_animation("Float", 0, 1.0, 300 , new android.view.animation.DecelerateInterpolator(), function(anim) {
s.ns1_searchEditText.setAlpha(1.0 - anim.getAnimatedValue());
gui.main._global_title.setAlpha(anim.getAnimatedValue());
if(anim.getAnimatedValue() == 1.0) {
gui.main._global_statusbar.removeView(s.ns1_searchEditText);
gui.main.setFuncClickable(s.index, true);
}
});
} catch (e) {}},
update: function(s) { update: function(s) {
if(s.initial) this.getOnlineSheetList(s, false); if(s.initial) this.getOnlineSheetList(s, false);
}, },
getOnlineSheetList: function(s, isForce) { getOnlineSheetList: function(s, isForce, filterBlock) {
gui.run(function() { gui.run(function() {
gui.main.setFuncClickable(s.index, false); gui.main.setFuncClickable(s.index, false);
s.ns1_progress.setIndeterminate(true); s.ns1_progress.setIndeterminate(true);
s.ns1_listAdapterController.removeAll(); s.ns1_listAdapterController.removeAll();
s.ns1_listAdapterController.notifyChange(); s.ns1_listAdapterController.notifyChange();
gui.utils.value_animation("Float", 0, 1.0, 200, new android.view.animation.DecelerateInterpolator(), function(anim) { if(typeof(filterBlock) != "function") gui.utils.value_animation("Float", 0, 1.0, 200, new android.view.animation.DecelerateInterpolator(), function(anim) {
gui.main._global_title.setAlpha(anim.getAnimatedValue()); gui.main._global_title.setAlpha(anim.getAnimatedValue());
}); });
gui.utils.value_animation("Float", 1.0, 0, 100, new android.view.animation.DecelerateInterpolator(), function(anim) { gui.utils.value_animation("Float", 1.0, 0, 100, new android.view.animation.DecelerateInterpolator(), function(anim) {
@@ -2645,7 +2753,13 @@ gui.dialogs.showProgressDialog(function(o) {
s.ns1_listView.setAlpha(1); s.ns1_listView.setAlpha(1);
gui.main._global_title.setText("获取列表中..."); gui.main._global_title.setText("获取列表中...");
threads.start(function() { threads.start(function() {
sheetmgr.getOnlineSharedSheetInfoList(isForce).map(function(e, i) { var list = [];
if(typeof(filterBlock) == "function") {
list = sheetmgr.filterOnlineSharedSheet(filterBlock);
} else {
list = sheetmgr.getOnlineSharedSheetInfoList(isForce);
}
list.map(function(e, i) {
gui.run(function() { s.ns1_listAdapterController.add(e); }); gui.run(function() { s.ns1_listAdapterController.add(e); });
}); });
gui.run(function() { gui.run(function() {
@@ -2653,11 +2767,13 @@ gui.dialogs.showProgressDialog(function(o) {
s.ns1_listAdapterController.notifyChange(); s.ns1_listAdapterController.notifyChange();
gui.main._global_title.setText(gui.main.getPageInfo(s.index).title); gui.main._global_title.setText(gui.main.getPageInfo(s.index).title);
gui.utils.value_animation("Float", 0, 1.0, 200, new android.view.animation.DecelerateInterpolator(), function(anim) { gui.utils.value_animation("Float", 0, 1.0, 200, new android.view.animation.DecelerateInterpolator(), function(anim) {
gui.main._global_title.setAlpha(anim.getAnimatedValue());
s.ns1_listView.setAlpha(anim.getAnimatedValue()); s.ns1_listView.setAlpha(anim.getAnimatedValue());
s.ns1_progress.setAlpha(1 - anim.getAnimatedValue()); s.ns1_progress.setAlpha(1 - anim.getAnimatedValue());
if(anim.getAnimatedValue() == 1.0) s.ns1_progress.setIndeterminate(false); if(anim.getAnimatedValue() == 1.0) s.ns1_progress.setIndeterminate(false);
}); });
if(typeof(filterBlock) != "function") gui.utils.value_animation("Float", 0, 1.0, 200, new android.view.animation.DecelerateInterpolator(), function(anim) {
gui.main._global_title.setAlpha(anim.getAnimatedValue());
});
}); });
}); });
} }
@@ -2823,7 +2939,7 @@ gui.dialogs.showProgressDialog(function(o) {
}); });
gui.suspension.show(); gui.suspension.show();
o.close(); o.close();
ctx.moveTaskToBack(true); //ctx.moveTaskToBack(true);
if(!config.values.skipRunScriptTip) { if(!config.values.skipRunScriptTip) {
gui.dialogs.showConfirmDialog({ gui.dialogs.showConfirmDialog({
title: "使用须知", title: "使用须知",

View File

@@ -1,3 +1,9 @@
版本: 14
更新时间: 2020.09.03 20:51
更新内容:
* 新增:共享乐谱支持搜索功能
* 改善:窗口拓展功能
版本: 13 版本: 13
更新时间: 2020.09.05 10:46 更新时间: 2020.09.05 10:46
更新内容: 更新内容: