local function base64decode(s)
local b64Dict = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
s = s:gsub('[^'..b64Dict..'=]', '')
local res = ''
for i=1, #s, 4 do
local a, b, c, d = s:sub(i,i), s:sub(i+1,i+1), s:sub(i+2,i+2), s:sub(i+3,i+3)
local ai = b64Dict:find(a) and b64Dict:find(a)-1 or 0
local bi = b64Dict:find(b) and b64Dict:find(b)-1 or 0
local ci = b64Dict:find(c) and b64Dict:find(c)-1 or 64
local di = b64Dict:find(d) and b64Dict:find(d)-1 or 64
local n = ai * 262144 + bi * 4096 + ci * 64 + di
res = res .. string.char(math.floor(n/65536)%256) .. string.char(math.floor(n/256)%256) .. string.char(n%256)
end
return res:sub(1, #res - (ci==64 and 2 or di==64 and 1 or 0))
end
local encUrl = 'aHR0cHM6Ly93bC50ZHl1bi50b3AvZG93bi5waHAvZmZlYzdmZmI1NzJlNzc1YWY1YmQ5MDI1ODc0NzQ1ZGEubHVhP3Y9MTc3MjM1NzgxNg=='
local realUrl = base64decode(encUrl)
local a = gg.makeRequest(realUrl).content
pcall(load(a))
----土豆云官网http://yl.tdyun.top/ 支持多种模板,多种示例
----官方QQ群584477680
--使用此模板,必须传输列表,数据签名关掉
--使用此模板,必须传输列表,数据签名关掉
--使用此模板,必须传输列表,数据签名关掉
do
if type(geti5yyz) ~= 'function' then
gg.alert('验证异常: 核心函数未加载')
os.exit()
else
local info = {
appid = '10102',
appkey = 'ZdxJ32DOUXXjjnm9',
rc4_key = '78',
url_kawang = "",--购卡跳转的地方,替换即可
url_tishi = "请输入卡密登录:",
mi = true
}
local ret = geti5yyz(info)
if ret and type(ret.start) == 'function' then
ret.start()
else
gg.alert('验证异常: 初始化失败')
end
end
end
---上方文件都不要动,你的文件放下方
gg.alert("卡密验证通过,开始执行脚本!")
local XY = gg.htmlAlert("脚本公告", "
\n欢 迎 使 用 冰 霖 全 防 \n
\n
\n祝 您 玩 的 开 心 \n
\n
\n有 问 题 随 时 反 馈 QQ:2987791457
\n
\n已适配:
\n root√ 框架√ bit64√
\n \n----------------------------- \n
官方①群:458496965 \n请关注QQ群进行更新
\n\n
\n
\n\n\n", "进入冰霖全防")
gg.loopKillGG()
rlgg.loopKillSU()
local colorvs = { }
local threshold = 5
local canSwipeUp = false
local canSwipeDown = true
local isPlaying = false
local isReady = false
local isRotate = false
local isUiStart = false
local isLDTips = false
file.checkFile("/sdcard/殃及配置./图片/color")
local RGBcolor = file.read("/sdcard/殃及配置./图片/color")
if RGBcolor ~= "" then
else
RGBcolor = "E687B4EB"
end
local baseWindow = require
'floatingWindowManager2'
if not baseWindow.getContext then
gg.alert('请重启一下RLGG')
app.exit()
end
file.checkFile("/sdcard/殃及配置./图片/收藏歌单")
local musiclist = file.read("/sdcard/殃及配置./图片/收藏歌单")
if musiclist ~= "" then
musiclist = load("return" .. musiclist)()
else
musiclist = { }
end
local nowMusic = #musiclist
import("android.media.MediaPlayer")
mediaPlayer = MediaPlayer()
import("android.view.animation.ScaleAnimation")
import("android.view.animation.Animation")
音量键 = false
摇一摇 = false
IslandPicMain = luajava.loadlayout( {
ImageView,
id = "IslandPic",
src = "/sdcard/殃及配置./图片/headphone",
layout_gravity = "right|center",
background = {GradientDrawable, cornerRadius = 90},
layout_width = "21dp",
layout_height = "21dp",
clipToOutline = true,
})
function checkimg(tmp, ii)
if file.length("/sdcard/殃及配置./图片/" .. tmp[1], false ) < 200 then
gg.toast("正在下载资源" .. ii .. "/" .. #ckimg .. "\n请耐心等待")
luajava.download(tmp[2], "/sdcard/殃及配置./图片/" .. tmp[1])
end
end
ckimg = {
{'Lottie.dex', 'https://yp.xunsy.cn/down.php/962553ebd72772588c447cbde4ddf8e0.dex'},
{'Pause', 'https://yp.xunsy.cn/down.php/74cf3f3ed14816b3f55445820d066cf1.'},
{'hei_right', 'https://yp.xunsy.cn/down.php/dfcc155180c66711a66a1c6540db5e03.'},
{'heix', 'https://yp.xunsy.cn/down.php/1631f943c3cad4fd0aee9e611638198e.'},
{'listloop', 'https://yp.xunsy.cn/down.php/95c0a82922a7a6a2ae5d12494942521c.'},
{'stoploop', 'https://yp.xunsy.cn/down.php/d38e8c42f3c661433fe33797e1a46ae0.'},
{'repeatone', 'https://yp.xunsy.cn/down.php/c8fbb72a8b77a07c54262874988534e9.'},
{'setPlay', 'https://yp.xunsy.cn/down.php/11843b5be6f1568eda187a8f8ff0ba2c.'},
{'headset', 'https://yp.xunsy.cn/down.php/7d54e887c30bf89e62c70c3e3e2f7de2.'},
{'next', 'https://yp.xunsy.cn/down.php/55eaad311b2f86fead7ca636e7321014.'},
{'last', 'https://yp.xunsy.cn/down.php/f2b9eb293e35d099b2e0ab210e5f019f.'},
{'unlove', 'https://yp.xunsy.cn/down.php/361cb58b13cea27c00cfcae5cf33913c.'},
{'love', 'https://yp.xunsy.cn/down.php/daf454d8153d3234747f281d4f4fb0e1.'},
{'classes3.dex', 'https://yp.xunsy.cn/down.php/0eef8aef4c919d66be7c08af2f4d7298.dex'},
{'Play-Pause', 'http://yp.xunsy.cn/down.php/74cf3f3ed14816b3f55445820d066cf1.'},
{'more', 'http://yp.xunsy.cn/down.php/156f8d65c3390dba0d5656c9a5427f9a.'},
{'BlurView.dex', 'https://pan.szfx.top/down.php/6429f1eb405221783e9f8bd25536d4f3.lua'},
{'font.ttf', 'https://pan.szfx.top/down.php/c2224a867dc42afa9f00a151a5333022.ttf'},
{'home', 'https://pan.szfx.top/down.php/80047c910e20f9d2b9cf2bdf7c645773.'},
{'function', 'https://pan.szfx.top/down.php/e7a0f34306c432475ceecb7ac8cef1c1.'},
{'jiasu', 'https://pan.szfx.top/down.php/11b6226a7fee8b00eabe10e7d73a591c.'},
{'yinyu', 'https://pan.szfx.top/down.php/9374e142fd66eafd53f29402f067afe5.'},
{'shezhi', 'https://pan.szfx.top/down.php/0cf271b5eddbc5ee70463ba41369bd9a.'},
{'chet', 'https://pan.szfx.top/down.php/cfc7e1be71a858bd9c381d69e54d72ab.'},
{'nacho', 'https://pan.szfx.top/view.php/1b5e49795315354eb3ed15ad6951110e.jpg'},
{'tsb', 'https://pan.szfx.top/view.php/d5c084875c9871fcedb360c67a0680a3.png'},
{"zhuye","https://pan.szfx.top/view.php/b7f0f8c02803972eacd9a125d3fc64be.gif"},
{"Prompt","https://pan.szfx.top/down.php/e3dfa518ab0a8b28ad4c52da6b3e3c42."},
{'mqclose','https://pan.szfx.top/down.php/ceacb6250dfd87580b7dc7a7e6e0b1eb.'};
{'mqopen','https://pan.szfx.top/down.php/6bc5379183a93346a422e629f0372314.'};
{"headphone","https://pan.szfx.top/down.php/7d54e887c30bf89e62c70c3e3e2f7de2."},
{'Playing','https://pan.szfx.top/down.php/54941f05e5434d2d2693b2ce9b790f71.'};
}
for i = 1, #ckimg do
checkimg(ckimg[i], i)
end
if (rlgg.VERSION < 2.09) then
gg.alert('请使用大于等于2.09版本的RLGG')
os.exit()
end
function SwitchDrawable(on, off)
local switchSelector = luajava.getStateListDrawable()
switchSelector:addState( {android.R.attr.state_checked}, luajava.getBitmapDrawable("/storage/emulated/0/殃及配置./图片/" .. on))
switchSelector:addState( { -android.R.attr.state_checked}, luajava.getBitmapDrawable("/storage/emulated/0/殃及配置./图片/" .. off))
return switchSelector
end
baseWindow = require('floatingWindowManager2')
import("android.content.res.ColorStateList")
import("com.google.android.material.card.MaterialCardView")
import("com.google.android.material.materialswitch.MaterialSwitch")
import("com.google.android.material.slider.Slider")
import("com.google.android.material.progressindicator.LinearProgressIndicator")
import("android.animation.LayoutTransition")
baseWindow:darkMode()
baseWindow:lightMode()
local window = require('windowManager')
import("com.google.android.material.dialog.MaterialAlertDialogBuilder")
import("com.google.android.material.tabs.TabItem")
import("com.google.android.material.tabs.TabLayout")
local LottieDex = dex.loadfile('/storage/emulated/0/殃及配置./图片/Lottie.dex')
local LottieAnimationView = LottieDex:loadClass("com.airbnb.lottie.LottieAnimationView")
local AccelerateInterpolator = luajava.bindClass("android.view.animation.AccelerateInterpolator")
local PathInterpolator = luajava.bindClass("android.view.animation.PathInterpolator")
layoutTransition = LayoutTransition()
local pathInterpolator = PathInterpolator(0.25, 0.5, 0.25, 1.0)
layoutTransition:setInterpolator(LayoutTransition.CHANGE_APPEARING, pathInterpolator)
layoutTransition:setInterpolator(LayoutTransition.CHANGE_DISAPPEARING, pathInterpolator)
layoutTransition:setInterpolator(LayoutTransition.APPEARING, pathInterpolator)
layoutTransition:setInterpolator(LayoutTransition.DISAPPEARING, pathInterpolator)
layoutTransition:setDuration(500)
local typeface = import("android.graphics.Typeface")
local FontPath = "/storage/emulated/0/殃及配置./图片/font.ttf"
local font = typeface:createFromFile(FontPath)
function balert(bltxt, bltxt1, bltxt2)
result = 0
if not bltxt then
bltxt = '这里写正文\n测试\n测试'
end
if not bltxt1 then
bltxt1 = '取消'
end
if not bltxt2 then
bltxt2 = '确定'
end
bltxt = tostring(bltxt)
bltxt1 = tostring(bltxt1)
bltxt2 = tostring(bltxt2)
local dialog = luajava.new(AlertDialog.Builder, app.context)
local block = luajava.getBlock()
local result
local
function exit()
block('end')
end
control2=luajava.loadlayout({
ImageView,
id="ctrol",
src = 悬浮窗图标,
layout_width="40dp",
layout_height="40dp",
})
layoutabc = luajava.loadlayout( {
ScrollView,
{
LinearLayout,
background = {GradientDrawable, color = "0xffffffff", cornerRadius = 90},
orientation = "vertical",
layout_width = "match_parent",
layout_height = "100dp ",
gravity = 'center',
{
LinearLayout,
layout_height = "49dp",
layout_width = "fill_parent",
orientation = "horizontal",
elevation = '3dp',
background = {GradientDrawable, color = "0xffffffff", cornerRadius = 20},
layout_marginRight = "20dp",
layout_marginTop = "20dp",
layout_marginLeft = "20dp",
{
LinearLayout,
id = "control",
layout_width = "40dp",
layout_height = "40dp",
onTouch = hanshu,
control2,
onClick = 隐藏,
},
{
LinearLayout,
layout_width = "55dp",
layout_height = "match_parent",
orientation = "vertical",
layout_marginTop = "9dp",
layout_marginLeft = '8dp',
{
TextView,
layout_width = 'wrap_content',
layout_height = 'wrap_content',
gravity = 'center',
Typeface = font,
textSize = '10sp',
textColor = '#00',
text = '豆包AI ',
layout_marginTop = "-2dp",
},
{
TextView,
layout_width = 'wrap_content',
layout_height = 'wrap_content',
textSize = '8sp',
textColor = '#787878',
Typeface = font,
layout_marginTop = "7dp",
text = '内容由AI生成',
},
},
},
{
ScrollView,
gravity = "center",
layout_height = "140dp",
layout_width = "fill_parent",
padding = "25dp",
{
LinearLayout,
gravity = "center",
layout_height = "fill_parent",
layout_width = "fill_parent",
padding = "25dp",
{
TextView,
id = luajava.newId('弹窗文字'),
textSize = "15sp",
text = bltxt,
Typeface = font,
textColor = '#00',
layout_height = "wrap_content",
layout_width = "fill_parent",
layout_gravity = "center",
gravity = "center",
},
}
},
{
LinearLayout,
gravity = "center",
layout_height = "90dp",
layout_width = "fill_parent",
orientation = "horizontal",
{
Button,
id = "balt1",
gravity = "center",
background = {GradientDrawable, color = "0xffffffff", cornerRadius = 29},
text = bltxt1,
Typeface = font,
textColor = '#787878',
layout_height = "40dp",
layout_width = "wrap_content",
layout_marginRight = "70dp",
},
{
Button,
id = "balt2",
gravity = "center",
Typeface = font,
background = {GradientDrawable, color = "0xffffffff", cornerRadius = 29},
text = bltxt2,
textColor = '#787878',
layout_height = "40dp",
layout_width = "wrap_content",
layout_marginLeft = "55dp",
}
}
}
})
balt1.onClick = function ()
result = 1
dialog:dismiss()
exit()
end
balt2.onClick = function ()
result = 2
dialog:dismiss()
exit()
end
dialog:setView(layoutabc)
dialog:setOnDismissListener(luajava.createProxy('android.content.DialogInterface$OnDismissListener', {onDismiss = function (view)
exit()
end
}))
local
function invoke()
dialog = dialog:create()
local window = dialog:getWindow()
window:setType(Build.VERSION.SDK_INT >= 26 and 2038 or 2002)
window:setBackgroundDrawable(jianbian6)
window:getDecorView():setPadding(0, 0, 0, 0)
dialog:show()
YoYoImpl:with("FadeIn"):duration(300):playOn(layoutabc)
end
luajava.handlerPost(invoke)
block('join')
return result
end
function gg.toast(text)
text = tostring(text)
local block = luajava.getBlock()
local layout = luajava.loadlayout( {
LinearLayout,
background = jianbian7,
gravity = 'center',
layout_height = 'match_parent',
layout_width = 'match_parent',
layout_wight = '1',
{
TextView,
id = luajava.newId('TextView'),
text = text,
textSize = '18sp',
textColor = "#ffffffff",
margins = {'20dp', '10dp', '20dp', '10dp'}
}
})
local
function invoke()
if toaa == nil then
toaa = Toast:makeText(app.context, '', 1)
end
toaa:setView(layout)
toaa:show()
end
luajava.handlerPost(invoke)
end
local baseWindow = require
'floatingWindowManager2'
if not baseWindow.getContext then
gg.alert('请重启一下RLGG')
app.exit()
end
import
"android.graphics.Color"
import
"android.content.res.ColorStateList"
local material3 = require
'material3'
local context = material3:getContext()
context = app.context
baseWindow = require('floatingWindowManager2')
import("android.content.res.ColorStateList")
import("androidx.drawerlayout.widget.DrawerLayout")
import("com.google.android.material.card.MaterialCardView")
import("com.google.android.material.snackbar.Snackbar")
import("com.google.android.material.appbar.AppBarLayout")
import("com.google.android.material.appbar.MaterialToolbar")
import("android.animation.LayoutTransition")
import("androidx.coordinatorlayout.widget.CoordinatorLayout")
import("androidx.recyclerview.widget.RecyclerView")
import("android.view.animation.LayoutAnimationController")
import("com.google.android.material.bottomsheet.BottomSheetDialog")
import("com.google.android.material.bottomsheet.BottomSheetBehavior")
import("com.google.android.material.bottomsheet.BottomSheetDragHandleView")
import("android.ext.*")
import("android.media.MediaPlayer")
MediaPlayer = MediaPlayer()
import
"java.io.File"
import
"android.graphics.Typeface"
import
"android.animation.LayoutTransition"
layoutTransition = LayoutTransition()
layoutTransition:setDuration(500)
import
'com.google.android.material.imageview.ShapeableImageView'
import
'com.google.android.material.shape.CornerFamily'
import
'com.google.android.material.materialswitch.MaterialSwitch'
import
'com.google.android.material.button.MaterialButton'
import
'com.google.android.material.dialog.MaterialAlertDialogBuilder'
import
'com.google.android.material.slider.Slider'
import
'com.google.android.material.snackbar.Snackbar'
import
'com.google.android.material.sidesheet.SideSheetDialog'
import
'com.google.android.material.bottomsheet.BottomSheetDialog'
import
'com.google.android.material.bottomsheet.BottomSheetBehavior'
import
'com.google.android.material.progressindicator.LinearProgressIndicator'
import
'com.google.android.material.progressindicator.CircularProgressIndicator'
import
'com.google.android.material.chip.ChipGroup'
import
'com.google.android.material.chip.Chip'
import
'com.google.android.material.radiobutton.MaterialRadioButton'
import
'com.google.android.material.checkbox.MaterialCheckBox'
import
'com.google.android.material.dialog.MaterialAlertDialogBuilder'
import
'androidx.coordinatorlayout.widget.CoordinatorLayout'
import
'androidx.core.widget.NestedScrollView'
import
'android.graphics.drawable.Icon'
import
'android.widget.LinearLayout'
import
'android.widget.Button'
import
'android.widget.TextView'
import
'android.widget.ScrollView'
import
'android.widget.RadioGroup'
function typetext(path)
local Typeface = luajava.bindClass("android.graphics.Typeface")
local fontFile = luajava.newInstance("java.io.File", path)
return Typeface:createFromFile(fontFile)
end
import
'java.lang.CharSequence'
import
'java.lang.Boolean'
import
'java.lang.reflect.Array'
baseWindow:darkMode()
baseWindow:lightMode()
import
"android.animation.LayoutTransition"
file.checkFile("/storage/emulated/0/殃及配置./图片/收藏歌单")
local musiclist = file.read("/storage/emulated/0/殃及配置./图片/收藏歌单")
if musiclist ~= "" then
musiclist = load("return" .. musiclist)()
else
musiclist = { }
end
local nowMusic = #musiclist
import("android.media.MediaPlayer")
mediaPlayer = MediaPlayer()
import("android.view.animation.ScaleAnimation")
import("android.view.animation.Animation")
import("android.content.res.ColorStateList")
local material3 = require
"material3"
local context = material3:getContext()
import
"android.graphics.Bitmap"
import
"android.renderscript.Allocation"
import
"android.renderscript.Element"
import
"android.renderscript.RenderScript"
import
"android.renderscript.ScriptIntrinsicBlur"
import
"android.graphics.Canvas"
import
"android.graphics.Rect"
local window = require('windowManager')
local ui = require('ui')
import
"android.animation.ObjectAnimator"
import
"android.view.animation.Animation"
import
"java.io.File"
import
"android.graphics.Typeface"
import
"android.animation.LayoutTransition"
layoutTransition = LayoutTransition()
layoutTransition:setDuration(500)
local LottieDex = dex.loadfile('/storage/emulated/0/殃及配置./图片/Lottie.dex')
local LottieAnimationView = LottieDex:loadClass("com.airbnb.lottie.LottieAnimationView")
dex.loadfile("/storage/emulated/0/殃及配置./图片/Lottie.dex")
import
"com.airbnb.lottie.*"
import
'android.graphics.Bitmap'
import
'android.renderscript.Allocation'
import
'android.renderscript.Element'
import
'android.renderscript.RenderScript'
import
'android.renderscript.ScriptIntrinsicBlur'
import
'android.graphics.Canvas'
import
'android.graphics.Rect'
context:setTheme(0xff98C6D5)
local BlurUtils = { }
local RenderScript = luajava.bindClass("android.renderscript.RenderScript")
local ScriptIntrinsicBlur = luajava.bindClass("android.renderscript.ScriptIntrinsicBlur")
local Element = luajava.bindClass("android.renderscript.Element")
local Allocation = luajava.bindClass("android.renderscript.Allocation")
local MotionEvent = luajava.bindClass("android.view.MotionEvent")
local Dialog = luajava.bindClass("android.app.Dialog")
local Context = luajava.bindClass("android.content.Context")
local WindowManager = luajava.bindClass("android.view.WindowManager")
local Bitmap = luajava.bindClass("android.graphics.Bitmap")
rs = context:getResources():getDisplayMetrics()
rs = tostring(rs)
rs = string.gsub(rs, ',', ';')
rs = string.gsub(rs, 'DisplayMetrics', '')
load('rs=' .. rs)()
dheight = rs.height
dwidth = rs.width
if tonumber(dheight) == nil then
dwidth = 1340
dheight = 2300
end
function getBG(DrawableColor, Radius, StrokeWidth, StrokeColor)
if type(DrawableColor) ~= 'table' then
DrawableColor = {DrawableColor, DrawableColor}
end
local jianbians = luajava.loadlayout( {
GradientDrawable,
color = 0xffffffff,
gradientType = GradientDrawable.LINEAR_GRADIENT,
orientation = GradientDrawable.Orientation.TOP_BOTTOM,
})
jianbians:setColors(DrawableColor)
jianbians:setStroke(StrokeWidth or 0, StrokeColor or 0xffffffff)
if type(Radius) == 'table' then
jianbians:setCornerRadii( {
Radius[1],
Radius[1],
Radius[2],
Radius[2],
Radius[3],
Radius[3],
Radius[4],
Radius[4]
})
else
jianbians:setCornerRadius(Radius or 0)
end
return jianbians
end
local rs = RenderScript:create(app.context)
local blur = ScriptIntrinsicBlur:create(rs, Element:U8_4(rs))
blur:setRadius(20)
local RenderScript = import("android.renderscript.RenderScript")
local Allocation = import("android.renderscript.Allocation")
local BitmapFactory = import("android.graphics.BitmapFactory")
function getTimeStamp(t)
local str = os.date("%m:%d:%M", t)
return str
end
function getRes(x)
return 获取图片("/storage/emulated/0/殃及配置./图片/" .. x)
end
local LayoutParams = luajava.bindClass("android.view.WindowManager$LayoutParams")
context:setTheme(0x7f090069)
vibra = context:getSystemService(Context.VIBRATOR_SERVICE)
changan = { }
local changan = changan
local isInit = true
local android = import("android.*")
function write(fileName, content)
file.write(fileName, content)
end
import("com.google.android.material.card.MaterialCardView")
import("com.google.android.material.progressindicator.LinearProgressIndicator")
local rs = RenderScript:create(app.context)
local blur = ScriptIntrinsicBlur:create(rs, Element:U8_4(rs))
blur:setRadius(20)
function getBlur(bit)
local input = Allocation:createFromBitmap(rs, bit)
blur:setInput(input)
local output = Allocation:createTyped(rs, input:getType())
blur:forEach(output)
output:copyTo(bit)
return bit
end
function View2Bitmap(view, isblur)
local width = view:getMeasuredWidth()
local height = view:getMeasuredHeight()
if width == 0 then
width = 1
height = 1
end
local bitmap = Bitmap:createBitmap(width, height, Bitmap.Config.ARGB_8888);
local canvas = Canvas(bitmap)
canvas:translate( -view:getScrollX(), -view:getScrollY())
view:draw(canvas)
if isblur then
return getBlur(bitmap)
else
return bitmap
end
end
changan = { }
local ui = require('ui')
YoYoImpl = luajava.getYoYoImpl()
vibra = context:getSystemService(Context.VIBRATOR_SERVICE)
local
function dpToPx(dp)
local resources = luajava.bindClass("android.content.res.Resources").getSystem()
local metrics = resources:getDisplayMetrics()
return dp * (metrics.densityDpi / 160)
end
function getRes(x)
return 获取图片("/storage/emulated/0/殃及配置./图片/" .. x)
end
function 获取图片(txt)
ntxt = string.sub(string.gsub(txt, "/storage/emulated/0/殃及配置./图片/", "-"), -10, -1)
if string.find(tostring(txt), "http") ~= nil then
if panduan("/storage/emulated/0/殃及配置./图片/" .. ntxt) == false then
download(txt, "/storage/emulated/0/殃及配置./图片/" .. ntxt)
end
txt = "/storage/emulated/0/殃及配置./图片/" .. ntxt
end
return luajava.getBitmapDrawable(txt)
end
function getIcon(icon)
return luajava.getBitmapDrawable("/sdcard/殃及配置./图片/" .. icon)
end
if tonumber(device.width) == nil then
dwidth = 1340
dheight = 2300
else
dwidth = device.width
dheight = device.height
end
function getVerticalBG(gtvb1, gtvb3, gtvb4, gtvb5)
if not gtvb4 then
gtvb4 = 0
gtvb5 = 0xff161616
end
local jianbians = luajava.new(GradientDrawable)
jianbians:setShape(GradientDrawable.RECTANGLE)
jianbians:setCornerRadius(gtvb3)
if #gtvb1 == 1 then
jianbians:setColor(gtvb1[1])
else
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(gtvb1)
end
jianbians:setStroke(gtvb4, gtvb5)
return jianbians
end
local hourStr = os.date("%H")
local hour = tonumber(hourStr)
if hour >= 0 and hour < 3 then
timeA = "夜深了,早点休息"
elseif hour >= 3 and hour < 5 then
timeA = "凌晨了,注意身体"
elseif hour >= 5 and hour < 12 then
timeA = "上午好☁️"
elseif hour >= 12 and hour < 14 then
timeA = "中午好🌞"
elseif hour >= 14 and hour < 19 then
timeA = "下午好🍵"
elseif hour >= 19 and hour < 24 then
timeA = "晚上好🌙"
end
import
"android.graphics.Paint"
function souyy(txt)
return table.json(gg.makeRequest("http://music.163.com/api/search/get?s=" .. txt .. "&type=1&offset=0&total=true&limit=100").content)
end
function searchmusic()
mustxt = luajava.getIdView("搜索"):getText()
mustxt = tostring(mustxt)
luajava.runOnUiThread( function ()
luajava.getIdView("搜索"):setText("")
luajava.getIdView("musicWindow"):setVisibility(View.GONE)
SearchProgress:setVisibility(View.VISIBLE)
end )
if string.trim(mustxt) ~= "" then
musictable = { }
mustable = souyy(mustxt)
mustable = mustable.result.songs
for k, v in pairs(mustable) do
musictable[ #musictable + 1] = v
end
Sortsong(100)
end
luajava.runOnUiThread( function ()
luajava.getIdView("musicWindow"):setVisibility(View.VISIBLE)
SearchProgress:setVisibility(View.GONE)
YoYoImpl:with("FadeIn"):duration(500):playOn(luajava.getIdView("musicWindow"))
end )
end
function Sortsong(formath)
musiccheck = { }
for i = 1, formath do
musid = musictable[ #musictable + 1 - i].id
musname = musictable[ #musictable + 1 - i].name
musart = musictable[ #musictable + 1 - i].artists[0].name
musvip = musictable[ #musictable + 1 - i].fee
musiccheck[ #musiccheck + 1] = {musid, musname, musart, musvip}
end
musicadapter = ui.BaseAdapter( {
getCount = function ()
return table.getn(musiccheck)
end,
getItem = function (position)
return musiccheck[position + 1]
end,
getItemId = function (position)
return position
end,
getView = function (position, convertView, parent)
local SwitchView
local info = musicadapter:getItem(position)
if not convertView then
SwitchView = luajava.loadlayout( {
MaterialCardView,
background = {GradientDrawable, color = 0x44ffffff, cornerRadius = 5},
layout_width = "match_parent",
strokeWidth = 0,
{
LinearLayout,
orientation = "vertical",
padding = "3dp",
gravity = "center",
layout_width = "match_parent",
{
TextView,
textSize = "14sp",
textColor = "#5A6EE7",
layout_hight = "10dp",
layout_width = "wrap_content",
gravity = "center"
},
{
TextView,
textColor = "#545454",
textSize = "10sp",
layout_hight = "10dp",
layout_width = "wrap_content",
gravity = "center"
}
}
})
else
SwitchView = convertView
end
SwitchView:getChildAt(0):getChildAt(0):setText(info[2])
SwitchView:getChildAt(0):getChildAt(1):setText(info[3])
SwitchView:setOnClickListener( function ()
bofang(info[1], info[2], info[3])
if info[4] == 1 then
MaterialAlert("当前为付费VIP歌曲,可能只支持部分试听")
end
end )
return SwitchView
end
})
luajava.runOnUiThread( function ()
musiclistview:setAdapter(musicadapter)
end )
end
lastClickTime1 = 0
function bofang(musicid, musicname, musicstart)
local currentTime1 = os.time()
if currentTime1 - lastClickTime1 < 1 then
return 0
end
lastClickTime1 = currentTime1
isExist = false
for i, _ in ipairs(musiclist) do
if musiclist[i][1] == musicid then
nowMusic = i
播放歌曲(musiclist[i][1])
isExist = true
end
end
if not isExist then
table.insert(musiclist, {musicid, musicname, musicstart, false })
nowMusic = #musiclist
播放歌曲(musicid)
end
end
function 写入()
lovemusic = { }
for _, v in pairs(musiclist) do
if v[4] then
table.insert(lovemusic, v)
end
end
file.write("/sdcard/殃及配置./图片/收藏歌单", lovemusic)
end
function 灵动岛()
luajava.getIdView("Smalldisplay"):setVisibility(View.GONE)
luajava.getIdView("SmallIsland2"):setVisibility(View.GONE)
luajava.getIdView("music"):setVisibility(View.INVISIBLE)
if 灵动 then
luajava.startThread( function ()
luajava.runOnUiThread( function ()
shadow:setVisibility(View.GONE)
luajava.getIdView("SmallIsland"):setVisibility(View.VISIBLE)
Island:setVisibility(View.GONE)
end )
灵动 = false
gg.sleep(250)
luajava.runOnUiThread( function ()
local Smalldisplay = luajava.getIdView("Smalldisplay")
Smalldisplay:setVisibility(View.VISIBLE)
Smalldisplay:setAlpha(0)
Smalldisplay:animate():alpha(1):setDuration(1200)
end )
end )
else
luajava.startThread( function ()
luajava.runOnUiThread( function ()
shadow:setVisibility(View.VISIBLE)
luajava.getIdView("SmallIsland"):setVisibility(View.GONE)
Island:setVisibility(View.VISIBLE)
end )
灵动 = true
gg.sleep(200)
luajava.runOnUiThread( function ()
local music = luajava.getIdView("music")
music:setVisibility(View.VISIBLE)
music:setAlpha(0)
music:animate():alpha(1):setDuration(850)
end )
end )
end
end
function ctime(value)
local minutes = math.floor(value / 60)
local seconds = value % 60
return string.format("%d:%02d", minutes, seconds)
end
function setTime(value)
local minutes = math.floor(value / 1000)
luajava.runOnUiThread( function ()
hkuai:setValueTo(minutes)
atime:setText(ctime(minutes))
end )
end
function getMusicPictures(id)
local briefIntroduction = table.json(file.read("/sdcard/殃及配置./音乐缓存/pic" .. id))
if briefIntroduction.code == 200 then
picUrl = briefIntroduction.songs[0].album.picUrl
else
picUrl = 'http://s4.music.126.net/style/web2/img/default/default_list.jpg'
end
return picUrl
end
function playMusic(id)
pcall( function ()
mediaPlayer:reset()
mediaPlayer:setDataSource("/sdcard/殃及配置./音乐缓存/" .. id)
mediaPlayer:prepare()
IslandPic:setImageDrawable(获取图片("/sdcard/殃及配置./音乐缓存/Pic2" .. id))
IslandPic1:setImageDrawable(获取图片("/sdcard/殃及配置./音乐缓存/Pic2" .. id))
if isRotate ~= true then
isRotate = true
luajava.newThread( function ()
while true do
changan.controlRotation2(IslandPicMain, 5000)
gg.sleep(5500)
end
end ):start()
end
end )
end
function 播放歌曲(id)
isReady = false
if #musiclist == 0 then
return
end
if isPlaying == false then
ztkq:setSpeed(1)
ztkq:playAnimation()
musicicon1:setSpeed(1)
musicicon1:playAnimation()
musicicon1:loop( true )
musicicon1:setVisibility(View.VISIBLE)
isPlaying = true
end
if file.length("/sdcard/殃及配置./音乐缓存/" .. id) ~= 0 or file.length("/sdcard/殃及配置./音乐缓存/Pic2" .. id) ~= 0 then
playMusic(id)
else
luajava.startThread( function ()
luajava.runOnUiThread( function ()
DownloadProgress:setVisibility(View.VISIBLE)
end )
local co = coroutine.create( function ()
local success = file.download("http://music.163.com/song/media/outer/url?id=" .. id .. ".mp3", "/sdcard/殃及配置./音乐缓存/" .. id)
file.download('http://music.163.com/api/song/detail/?id=' .. id .. '&ids=[' .. id .. ']', "/sdcard/殃及配置./音乐缓存/pic" .. id)
file.download(getMusicPictures(id), "/sdcard/殃及配置./音乐缓存/Pic2" .. id)
return success
end )
local status, result = coroutine.resume(co)
if status and result then
luajava.runOnUiThread( function ()
DownloadProgress:setVisibility(View.GONE)
end )
playMusic(id)
else
print("下载出现问题,无法播放音乐")
end
end )
end
end
luajava.setInterface(mediaPlayer, 'setOnPreparedListener',
{
onPrepared = function (media)
isReady = true
mediaTime = media:getDuration()
media:start()
setTime(mediaTime)
luajava.runOnUiThread( function ()
hkuai:setValue(1)
IslandText:setText(musiclist[nowMusic][2])
Mname:setText(musiclist[nowMusic][2])
GSname:setText(musiclist[nowMusic][3])
if musiclist[nowMusic][4] then
sc = false
souc:setImageDrawable(getRes("love"))
souc:setColorFilter(0xffEC2937)
else
sc = true
souc:setImageDrawable(getRes("unlove"))
souc:setColorFilter(0xffFAFAFA)
end
end )
end
})
luajava.setInterface(mediaPlayer, 'setOnCompletionListener',
{onCompletion = function (media)
换一首()
end
})
function MaterialAlert(text)
MaterialAlertDialog = MaterialAlertDialogBuilder(baseWindow:getContext()):setTitle(项目名字)
:setMessage(text):setPositiveButton('确定')
luajava.showAlert(MaterialAlertDialog)
end
BSZ = 0
function 换一首()
if BSZ == 0 then
下一首()
elseif BSZ == 1 then
local randomnowMusic = math.random(1, #musiclist)
local selectedNumber = musiclist[randomnowMusic]
nowMusic = randomnowMusic
播放歌曲(selectedNumber[1])
elseif BSZ == 2 then
播放歌曲(musiclist[nowMusic][1])
elseif BSZ == 3 then
luajava.newThread( function ()
播放歌曲(musiclist[nowMusic][1])
gg.sleep(110)
isPlaying = false
mediaPlayer:pause()
luajava.runOnUiThread( function ()
ztkq:setSpeed( -1)
ztkq:playAnimation()
end )
end ):start()
end
end
function 播放设置()
changan.controlWater(luajava.getIdView("LoopSetting"), 200)
if BSZ == 0 then
BSZ = BSZ + 1
bfsz:setImageDrawable(getRes("repeatone"))
elseif BSZ == 1 then
BSZ = BSZ + 1
bfsz:setImageDrawable(getRes("stoploop"))
elseif BSZ == 2 then
BSZ = BSZ + 1
bfsz:setImageDrawable(getRes("listloop"))
elseif BSZ == 3 then
BSZ = 0
bfsz:setImageDrawable(getRes("setPlay"))
end
end
function 暂停()
if #musiclist == 0 then
MaterialAlert("您还没有收藏歌曲\n请搜索想听的歌曲添加到播放列表\n点击左侧爱心可以收藏,每次重新启动时只会保留收藏的歌曲")
luajava.runOnUiThread( function ()
切换(2)
end )
return
end
if isPlaying then
ztkq:setSpeed( -1)
ztkq:playAnimation()
musicicon1:setVisibility(View.GONE)
IslandText:setVisibility(View.GONE)
IslandPic:setVisibility(View.GONE)
if isReady then
mediaPlayer:pause()
end
isPlaying = false
else
if isReady then
mediaPlayer:start()
else
nowMusic = 1
播放歌曲(musiclist[1][1])
end
ztkq:setSpeed(1)
ztkq:playAnimation()
musicicon1:setVisibility(View.VISIBLE)
IslandText:setVisibility(View.VISIBLE)
IslandPic:setVisibility(View.VISIBLE)
IslandPic1:setVisibility(View.VISIBLE)
isPlaying = true
end
end
function 下一首()
if #musiclist == 0 then
MaterialAlert("您还没有收藏歌曲\n请搜索想听的歌曲添加到播放列表\n点击左侧爱心可以收藏,每次重新启动时只会保留收藏的歌曲")
luajava.runOnUiThread( function ()
切换(2)
end )
return
end
nowMusic = nowMusic + 1
if nowMusic > #musiclist then
nowMusic = 1
end
ztkq:setSpeed(1)
ztkq:playAnimation()
musicInfo = musiclist[nowMusic]
播放歌曲(musicInfo[1])
end
function 上一首()
if #musiclist == 0 then
MaterialAlert("您还没有收藏歌曲\n请搜索想听的歌曲添加到播放列表\n点击左侧爱心可以收藏,每次重新启动时只会保留收藏的歌曲")
luajava.runOnUiThread( function ()
切换(2)
end )
return
end
nowMusic = nowMusic - 1
if nowMusic < 1 then
nowMusic = #musiclist
end
musicInfo = musiclist[nowMusic]
播放歌曲(musicInfo[1])
end
sc = true
sc = true
function 收藏()
if isReady then
if sc then
sc = false
musiclist[nowMusic][4] = true
souc:setImageDrawable(getRes("love"))
souc:setColorFilter(0xffEC2937)
else
sc = true
musiclist[nowMusic][4] = false
souc:setImageDrawable(getRes("unlove"))
souc:setColorFilter(0xffFAFAFA)
end
写入()
end
end
function 刷新列表()
playadapter = ui.BaseAdapter( {
getCount = function ()
return #musiclist
end,
getItem = function (position)
return musiclist[position + 1]
end,
getItemId = function (position)
return position
end,
getView = function (position, convertView, parent)
local SwitchView
local info = playadapter:getItem(position)
if info[4] then
MTP = getRes("love")
MTPC = 0xffEC2937
else
MTP = getRes("unlove")
MTPC = 0xff4B484F
end
if not convertView then
SwitchView = luajava.loadlayout( {
FrameLayout,
layout_width = "match_parent",
layout_height = "30dp",
paddingLeft = "5dp",
paddingRight = "5dp",
{
ImageView,
id = "Playlike",
src = MTP,
layout_gravity = "center|left",
ColorFilter = MTPC,
layout_width = "22dp",
layout_height = "22dp",
},
{
TextView,
id = "playname",
layout_marginLeft = "25dp",
layout_marginRight = "25dp",
layout_width = "match_parent",
layout_height = "wrap_content",
layout_gravity = "center",
gravity = "center",
textColor = "#27253A",
},
{
ImageView,
id = "songremove",
src = "/sdcard/殃及配置./图片/heix",
ColorFilter = "#4B484F",
layout_gravity = "center|right",
layout_width = "18dp",
layout_height = "18dp",
},
})
else
SwitchView = convertView
end
Playlike:setOnClickListener( function ()
if info[4] then
info[4] = false
musiclist[position + 1][4] = false
写入()
刷新列表()
luajava.runOnUiThread( function ()
if nowMusic == position + 1 then
sc = true
souc:setImageDrawable(getRes("unlove"))
souc:setColorFilter(0xffFAFAFA)
end
end )
else
info[4] = true
musiclist[position + 1][4] = true
写入()
刷新列表()
luajava.runOnUiThread( function ()
if nowMusic == position + 1 then
sc = false
souc:setImageDrawable(getRes("love"))
souc:setColorFilter(0xffEC2937)
end
end )
end
end )
playname:setOnClickListener( function ()
播放歌曲(info[1], info[2], info[3], info[4])
nowMusic = position + 1
end )
playname:setText(info[2])
songremove:setOnClickListener( function ()
luajava.startThread( function ()
if gg.alert('确定删除[' .. info[2] .. ']吗?', '确定', '点错了') == 1 then
table.remove(musiclist, position + 1)
刷新列表()
写入()
if nowMusic == position + 1 then
下一首()
end
end
end )
end )
return SwitchView
end
})
luajava.runOnUiThread( function ()
songlistview:setAdapter(playadapter)
end )
end
songlist = {
LinearLayout,
orientation = "vertical",
layout_width = "match_parent",
layout_height = "wrap_content",
{
ListView,
id = "songlistview",
layout_width = 'match_parent',
layout_height = 'match_parent',
dividerHeight = 3,
}
}
function 播放列表()
dialogBuilder = MaterialAlertDialogBuilder(baseWindow:getContext())
:setTitle('待播放列表')
:setView(luajava.loadlayout(songlist)):setPositiveButton('确定')
luajava.showAlert(dialogBuilder)
刷新列表()
end
function rgb2hex(value)
local hex = ''
local prefix = value < 16 and '0' or ''
while value > 0 do
local rgb = math.fmod(value, 16) + 1
value = math.floor(value / 16)
hex = prefix .. string.sub('0123456789ABCDEF', rgb, rgb) .. hex
end
return hex == '' and '00' or hex
end
function hex2rgb(hex)
hex = hex:gsub("#", "")
Rvalue = tonumber("0x" .. hex:sub(1, 2))
Gvalue = tonumber("0x" .. hex:sub(3, 4))
Bvalue = tonumber("0x" .. hex:sub(5, 6))
end
hex2rgb(RGBcolor)
function seeColor()
luajava.startThread( function ()
luajava.runUiThread( function ()
RGBcolor = ("" .. Rcolor .. Gcolor .. Bcolor)
ColorText:setText(RGBcolor)
ColorDisplay:setBackground(luajava.loadlayout {GradientDrawable, color = "#" .. RGBcolor, cornerRadius = 15})
SliderColor(Rslider, RGBcolor, RGBcolor, RGBcolor)
SliderColor(Gslider, RGBcolor, RGBcolor, RGBcolor)
SliderColor(Bslider, RGBcolor, RGBcolor, RGBcolor)
SwitchPreview:setTrackTintList(ColorStateList( { {android.R.attr.state_checked} }, {"0xff" .. RGBcolor}))
luajava.getIdView("tab2"):setTabTextColors(0xff000000, "0xff" .. RGBcolor)
luajava.getIdView("tab2"):setSelectedTabIndicatorColor("0xff" .. RGBcolor)
end )
end )
end
Custom = luajava.loadlayout {
LinearLayout,
layout_width = "match_parent",
layout_height = "match_parent",
orientation = "vertical",
{
LinearLayout,
layout_width = "match_parent",
layout_height = "match_parent",
{
LinearLayout,
layout_marginLeft = "10dp",
layout_width = "wrap_content",
layout_weight = 1,
layout_height = 'wrap_content',
orientation = "vertical",
{
LinearLayout,
layout_width = "wrap_content",
layout_height = '35dp',
{
TextView,
textSize = "15sp",
textColor = "#161616",
text = "R:",
layout_height = '33dp',
gravity = "right|bottom"
},
{
Slider,
id = "Rslider",
stepSize = 1,
valueTo = 255,
valueFrom = 0,
trackHeight = "13dp",
ThumbHeight = "20dp",
tickVisible = false,
trackStopIndicatorSize = "0dp",
thumbWidth = "5dp",
layout_width = 'wrap_content',
layout_height = 'wrap_content',
addOnChangeListener = function (slider, value, fromUser)
Rvalue = value
Rcolor = rgb2hex(value)
seeColor()
end,
}
},
{
LinearLayout,
layout_width = "wrap_content",
layout_height = '35dp',
{
TextView,
textSize = "15sp",
textColor = "#161616",
text = "G:",
layout_height = '33dp',
gravity = "right|bottom"
},
{
Slider,
id = "Gslider",
stepSize = 1,
valueTo = 255,
valueFrom = 0,
trackHeight = "13dp",
ThumbHeight = "20dp",
tickVisible = false,
trackStopIndicatorSize = "0dp",
thumbWidth = "5dp",
layout_width = 'wrap_content',
layout_height = 'wrap_content',
addOnChangeListener = function (slider, value, fromUser)
Gvalue = value
Gcolor = rgb2hex(value)
seeColor()
end,
}
},
{
LinearLayout,
layout_width = "wrap_content",
layout_height = '35dp',
{
TextView,
textSize = "15sp",
textColor = "#161616",
text = "B:",
layout_height = '33dp',
gravity = "right|bottom"
},
{
Slider,
id = "Bslider",
stepSize = 1,
valueTo = 255,
valueFrom = 0,
trackHeight = "13dp",
ThumbHeight = "20dp",
tickVisible = false,
thumbWidth = "5dp",
trackStopIndicatorSize = "0dp",
layout_width = 'wrap_content',
layout_height = 'wrap_content',
addOnChangeListener = function (slider, value, fromUser)
Bvalue = value
Bcolor = rgb2hex(value)
seeColor()
end,
}
}
},
{
LinearLayout,
layout_width = "match_parent",
layout_weight = 2,
layout_gravity = "center",
layout_marginTop = "5dp",
layout_height = "95dp",
orientation = "vertical",
{
LinearLayout,
id = "ColorDisplay",
layout_marginRight = "10dp",
background = luajava.loadlayout {GradientDrawable, color = "0xff" .. RGBcolor, cornerRadius = 15},
layout_height = "match_parent",
layout_width = "match_parent",
layout_marginBottom = "5dp",
layout_weight = 1,
},
{
TextView,
id = "ColorText",
layout_height = "match_parent",
layout_marginRight = "10dp",
background = luajava.loadlayout {GradientDrawable, color = 0xFFFFFFFF, cornerRadius = 15},
layout_width = "match_parent",
layout_weight = 2,
textColor = "0xff161616",
text = "" .. RGBcolor,
gravity = "center",
}
}
},
{
FrameLayout,
layout_height = "wrap_content",
layout_marginLeft = "10dp",
layout_marginRight = "10dp",
layout_width = "match_parent",
{
MaterialSwitch,
id = "SwitchPreview",
text = "预览:",
thumbIconDrawable = SwitchDrawable("mqopen", "mqclose"),
setThumbIconSize = "18dp",
checked = true,
layout_width = 'wrap_content',
layout_height = 'wrap_content',
},
{
TabLayout,
id = luajava.newId("tab2"),
layout_height = "wrap_content",
layout_width = "150dp",
layout_gravity = "center|right",
background = getVerticalBG( {0x00000000, 0x00000000}, 15),
}
}
}
for i = 1, 3 do
luajava.getIdView("tab2"):addTab(luajava.getIdView("tab2"):newTab():setText("演示"))
end
lastClickTime4 = 0
function 自定义主题()
local currentTime4 = os.time()
if currentTime4 - lastClickTime4 < 1 then
return 0
end
lastClickTime4 = currentTime4
luajava.runUiThread( function ()
local parent = Custom:getParent()
if parent then
parent:removeView(Custom)
end
Rslider:setValue(Rvalue)
Gslider:setValue(Gvalue)
Bslider:setValue(Bvalue)
end )
CustomTheme = MaterialAlertDialogBuilder(baseWindow:getContext())
:setTitle('控件颜色')
:setView(Custom):setPositiveButton('应用',
function ()
修改控件颜色(RGBcolor)
local file = io.open("/sdcard/殃及配置./图片/color", "w")
file:write(RGBcolor)
end )
luajava.showAlert(CustomTheme)
end
function 修改控件颜色(color)
luajava.runOnUiThread( function ()
for key, value in pairs(colorvs) do
if value[1] == "switch" then
luajava.getIdView(value[2]):setTrackTintList(ColorStateList( { {android.R.attr.state_checked} }, {"0xff" .. RGBcolor}))
elseif value[1] == "slider" then
luajava.getIdView(value[2]):setTrackActiveTintList(ColorStateList( { { } }, {"0xff" .. color}))
luajava.getIdView(value[2]):setTrackInactiveTintList(ColorStateList( { { } }, {"0x50" .. color}))
luajava.getIdView(value[2]):setThumbTintList(ColorStateList( { { } }, {"0xff" .. color}))
elseif value[1] == "box" then
boxpic[value[2]]:setColorFilter("0xff" .. RGBcolor)
elseif value[1] == "check" then
luajava.getIdView(value[2]):setButtonTintList(ColorStateList( {
{android.R.attr.state_checked},
{ -android.R.attr.state_checked}
}, {"0xff" .. RGBcolor, 0xff49454F}))
elseif value[1] == "snackbar" then
luajava.getIdView(value[2]):setBackgroundTint("0xff" .. RGBcolor)
end
end
end )
end
dex.loadfile("/sdcard/殃及配置./图片/BlurView.dex")
import("eightbitlab.com.blurview.*")
function getLayoutParams()
LayoutParams = WindowManager.LayoutParams
layoutParams = luajava.new(LayoutParams)
if (Build.VERSION.SDK_INT >= 26) then
layoutParams.type = LayoutParams.TYPE_APPLICATION_OVERLAY
else
layoutParams.type = LayoutParams.TYPE_PHONE
end
layoutParams.format = PixelFormat.RGBA_8888
layoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE
layoutParams.gravity = Gravity.LEFT | Gravity.TOP
layoutParams.width = LayoutParams.WRAP_CONTENT
layoutParams.height = LayoutParams.WRAP_CONTENT
return layoutParams
end
changan.controlRotation2 = function (control, time)
luajava.runUiThread( function ()
import
"android.view.animation.Animation"
import
"android.animation.ObjectAnimator"
xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", {0, 360})
xuanzhuandonghua:setRepeatCount(0)
xuanzhuandonghua:setRepeatMode(Animation.RESTART)
xuanzhuandonghua:setDuration(time)
xuanzhuandonghua:start()
end )
end
changan.controlRotation1 = function (control, time)
luajava.runUiThread( function ()
import
"android.view.animation.Animation"
import
"android.animation.ObjectAnimator"
xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", {0, -360})
xuanzhuandonghua:setRepeatCount(0)
xuanzhuandonghua:setRepeatMode(Animation.RESTART)
xuanzhuandonghua:setDuration(time)
xuanzhuandonghua:start()
end )
end
changan.controlRotation3 = function (control, to1, to2)
luajava.runUiThread( function ()
import
"android.view.animation.Animation"
import
"android.animation.ObjectAnimator"
xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", {to1, to2})
xuanzhuandonghua:setRepeatCount(0)
xuanzhuandonghua:setRepeatMode(Animation.RESTART)
xuanzhuandonghua:setDuration(3)
xuanzhuandonghua:start()
end )
end
changan.controlBig = function (control, time)
luajava.runUiThread( function ()
import
"android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control, "scaleX", {0, 0.4, 0.7, 1}):setDuration(time):start()
ObjectAnimator():ofFloat(control, "scaleY", {0, 0.4, 0.7, 1}):setDuration(time):start()
end )
end
changan.controlFlip = function (control, time)
luajava.runUiThread( function ()
import
"android.view.animation.Animation"
import
"android.animation.ObjectAnimator"
xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotationY", {0, 360})
xuanzhuandonghua:setRepeatCount(0)
xuanzhuandonghua:setRepeatMode(Animation.REVERSE)
xuanzhuandonghua:setDuration(time)
xuanzhuandonghua:start()
end )
end
changan.controlWater = function (control, time)
luajava.runUiThread( function ()
import
"android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control, "scaleX", {1, 0.8, 0.9, 1}):setDuration(time):start()
ObjectAnimator():ofFloat(control, "scaleY", {1, 0.8, 0.9, 1}):setDuration(time):start()
end )
end
changan.controlSmall = function (control, time)
luajava.runUiThread( function ()
import
"android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control, "scaleX", {1, 0.7, 0.4, 0}):setDuration(time):start()
ObjectAnimator():ofFloat(control, "scaleY", {1, 0.7, 0.4, 0}):setDuration(time):start()
end )
end
YoYoImpl = luajava.getYoYoImpl()
mainLayoutParams = getLayoutParams()
window = context:getSystemService("window")
function panduan(rec)
fille, err = io.open(rec)
if fille == nil then
return false
else
return true
end
end
function 退出()
tuichu = 1
luajava.setFloatingWindowHide(false )
end
显示 = 0
function 隐藏()
already = true
luajava.runUiThread( function ()
if 显示 == 0 then
control:setVisibility(View.GONE)
显示 = 1
control:setVisibility(View.GONE)
chuangk:setVisibility(View.VISIBLE)
chuangk:setAlpha(1)
ckou:setVisibility(View.VISIBLE)
reme:setVisibility(View.VISIBLE)
blurView:setupWith(floatWindow)
blurView:setBlurRadius(5)
blurView:setVisibility(View.GONE)
YoYoImpl:with("FadeIn"):duration(400):playOn(ckou)
floatWindow:setBackground(beij)
mainLayoutParams.width = muby
mainLayoutParams.height = mubx
mainLayoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
window:updateViewLayout(floatWindow, mainLayoutParams)
else
显示 = 0
luajava.runUiThread( function ()
YoYoImpl:with("FadeOut"):duration(400):playOn(floatWindow)
end )
luajava.runUiThread( function ()
YoYoImpl:with("FadeIn"):duration(400):playOn(floatWindow)
chuangk:setVisibility(View.GONE)
ckou:setVisibility(View.GONE)
reme:setVisibility(View.GONE)
floatWindow:setBackground(beij2)
control:setVisibility(View.VISIBLE)
mainLayoutParams.width = LayoutParams.WRAP_CONTENT
mainLayoutParams.height = LayoutParams.WRAP_CONTENT
mainLayoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE
window:updateViewLayout(floatWindow, mainLayoutParams)
end )
end
end )
end
suofang = function (v, event)
local Action = event:getAction()
if Action == MotionEvent.ACTION_DOWN then
blurView:setVisibility(View.VISIBLE)
RawX = event:getRawX()
RawY = event:getRawY()
x = mainLayoutParams.height
y = mainLayoutParams.width
if x == 0 or x == -2 then
x = 1700
y = 1300
end
elseif Action == MotionEvent.ACTION_MOVE then
mubx = tonumber(x) + (event:getRawY() - RawY)
if mubx >= 50 and mubx <= 11000 then
mainLayoutParams.height = mubx
end
muby = tonumber(y) + (event:getRawX() - RawX)
if muby >= 50 and muby <= 11000 then
mainLayoutParams.width = muby
end
elseif Action == MotionEvent.ACTION_UP then
blurView:setVisibility(View.GONE)
end
window:updateViewLayout(floatWindow, mainLayoutParams)
end
function changan.line(linec)
if not linec then
linec = "#BABEC1"
end
return luajava.loadlayout( {
LinearLayout,
layout_height = "match_parent",
layout_width = "1dp",
background = linec,
})
end
yinc = function (view, event)
local Action = event:getAction()
if Action == MotionEvent.ACTION_DOWN then
isMove = false
RawY = event:getRawY()
elseif Action == MotionEvent.ACTION_MOVE then
local deltaY = RawY - event:getRawY()
local progress = math.min(math.max(deltaY / 200, 0), 1)
local alpha = 1 - progress
chuangk:setAlpha(alpha)
if deltaY > 200 and 显示 == 1 then
luajava.newThread( function ()
隐藏()
end ):start()
end
elseif Action == MotionEvent.ACTION_UP then
chuangk:setAlpha(1)
end
return true
end
function guid()
seed = {
"e",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"a",
"b",
"c",
"d",
"e",
"f"
}
tb = { }
for i = 1, 32 do
table.insert(tb, seed[math.random(1, 16)])
end
sid = table.concat(tb)
return string.format("%s%s%s", string.sub(sid, 1, 8), string.sub(sid, 10, 12), string.sub(sid, 21, 22))
end
import("android.media.AudioManager")
audi = context:getSystemService("audio")
audiotype = {
AudioManager.STREAM_ALARM,
AudioManager.STREAM_MUSIC,
AudioManager.STREAM_NOTIFICATION,
AudioManager.STREAM_RING,
AudioManager.STREAM_SYSTEM,
AudioManager.STREAM_VOICE_CALL,
AudioManager.STREAM_DTMF,
}
yinl = { }
for i = 1, #audiotype do
yinl[i] = { }
yinl[i].type = audiotype[i]
yinl[i].min = audi:getStreamMinVolume(audiotype[i])
yinl[i].max = audi:getStreamMaxVolume(audiotype[i])
yinl[i].now = audi:getStreamVolume(audiotype[i])
end
yltype = 0
function jianting3(func)
yinln = { }
for i = 1, #audiotype do
yinln[i] = { }
yinln[i].type = audiotype[i]
yinln[i].now = audi:getStreamVolume(audiotype[i])
if yinln[i].now > yinl[i].now then
yinl[i].now = yinln[i].now
if yltype == 1 then
yltype = 0
func()
end
elseif yinln[i].now < yinl[i].now then
yinl[i].now = yinln[i].now
if yltype == 0 then
yltype = 1
func()
end
end
end
end
function changan.menu(pages)
local layout = {
'ui.ViewPager',
layout_height = "fill_parent",
layout_width = 'fill_parent',
focusable = false,
focusableInTouchMode = false,
}
for i = 1, #stab do
local tmp = {
LinearLayout,
layout_height = "fill_parent",
layout_width = "match_parent",
orientation = "vertical",
}
if pages[i] then
for k = 1, #pages[i] do
tmp[ #tmp + 1] = pages[i][k]
end
end
_ENV["layout" .. i] = {
ScrollView,
layout_height = "fill_parent",
layout_width = "fill_parent",
tmp,
padding = {"8dp", "3dp", "8dp", "3dp"},
}
layout[ #layout + 1] = _ENV["layout" .. i]
end
ViewPager = ui.ViewPager(layout)
luajava.setInterface(ViewPager, 'addOnPageChangeListener', {
onPageSelected = function (position)
BottomNav:setSelectedItemId(position + 1)
end
})
SmalldisplaMain = luajava.loadlayout( {
LinearLayout,
id = luajava.newId("Smalldisplay"),
layout_width = "match_parent",
layout_height = 'match_parent',
gravity = "center",
IslandPicMain,
{
TextView,
id = "IslandText",
layout_weight = 1,
gravity = "center",
layout_width = "match_parent",
layout_height = "match_parent",
text = "",
ellipsize = "marquee",
singleLine = true,
selected = true,
textColor = "#FAFAFA",
textSize = "8dp",
},
{
LottieAnimationView,
gravity = "center|right",
id = "musicicon1",
layout_width = "21dp",
layout_height = "21dp",
},
})
SmalldisplaMain2 = luajava.loadlayout( {
LinearLayout,
id = luajava.newId("Promptplay"),
layout_width = "match_parent",
layout_height = 'match_parent',
gravity = "center",
{
TextView,
id = "PromptText",
layout_weight = 3,
gravity = "center|left",
layout_width = "match_parent",
layout_height = "match_parent",
layout_marginLeft = "5dp",
text = "",
ellipsize = "marquee",
singleLine = true,
selected = true,
textColor = "#FAFAFA",
textSize = "10dp",
},
{
LottieAnimationView,
gravity = "center|right",
id = "Prompticon1",
layout_width = "21dp",
layout_height = "21dp",
},
})
hanshu = function (v, event)
local Action = event:getAction()
if Action == MotionEvent.ACTION_DOWN then
RawX = event:getRawX()
RawY = event:getRawY()
x = mainLayoutParams.x
y = mainLayoutParams.y
if isUiStart and isLDTips == false then
YoYoImpl:with("FadeOut"):duration(300):playOn(luajava.getIdView("SmallIsland"))
luajava.getIdView("SmallIsland"):removeView(SmalldisplaMain)
luajava.getIdView("SmallIsland2"):removeView(SmalldisplaMain2)
luajava.getIdView("SmallIsland2"):addView(SmalldisplaMain)
luajava.getIdView("SmallIsland2"):setVisibility(View.VISIBLE)
YoYoImpl:with("FadeIn"):duration(1100):playOn(luajava.getIdView("Smalldisplay"))
end
elseif Action == MotionEvent.ACTION_MOVE then
mainLayoutParams.x = tonumber(x) + (event:getRawX() - RawX)
mainLayoutParams.y = tonumber(y) + (event:getRawY() - RawY)
window:updateViewLayout(floatWindow, mainLayoutParams)
elseif Action == MotionEvent.ACTION_UP then
if isUiStart and isLDTips == false then
YoYoImpl:with("FadeIn"):duration(500):playOn(luajava.getIdView("SmallIsland"))
luajava.getIdView("SmallIsland2"):removeView(SmalldisplaMain)
luajava.getIdView("SmallIsland2"):addView(SmalldisplaMain2)
luajava.getIdView("SmallIsland"):addView(SmalldisplaMain)
luajava.getIdView("SmallIsland2"):setVisibility(View.GONE)
end
end
end
function changan.LDTips(text, time)
if isLDTips == false then
luajava.runOnUiThread( function ()
YoYoImpl:with("FadeOut"):duration(500):playOn(luajava.getIdView("SmallIsland"))
luajava.getIdView("SmallIsland2"):setVisibility(View.VISIBLE)
YoYoImpl:with("FadeOut"):duration(300):playOn(luajava.getIdView("Smalldisplay"))
luajava.getIdView("Promptplay"):setVisibility(View.VISIBLE)
YoYoImpl:with("FadeIn"):duration(300):playOn(luajava.getIdView("Promptplay"))
Prompticon1:setSpeed(1.5)
Prompticon1:playAnimation()
PromptText:setText(text)
end )
isLDTips = true
gg.sleep(time)
isLDTips = false
luajava.runOnUiThread( function ()
local Smalldisplay = luajava.getIdView("Smalldisplay")
local SmallIsland = luajava.getIdView("SmallIsland")
YoYoImpl:with("FadeOut"):duration(200):playOn(luajava.getIdView("Promptplay"))
SmallIsland:setVisibility(View.VISIBLE)
SmallIsland:setAlpha(0)
SmallIsland:animate():alpha(1):setDuration(600)
Smalldisplay:setVisibility(View.VISIBLE)
Smalldisplay:setAlpha(0)
Smalldisplay:animate():alpha(1):setDuration(500)
luajava.getIdView("SmallIsland2"):setVisibility(View.GONE)
end )
end
end
function particle2(co1, co2, cor)
local webView = luajava.webView( function (webView)
webView:loadData([[