Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 32 additions & 1 deletion Hydrogen/app/src/main/assets_bin/home.lua
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,17 @@ if activity.getSharedData("平行世界")~="false" then
local height = rootView.height
inSekai = width > dp2px(600, true)
if f1 then
local leftWidth = inSekai and math.floor(width * 0.5) or width
local lp = f1.LayoutParams
lp.width = inSekai and width * 0.5 or width
lp.width = leftWidth
f1.setLayoutParams(lp)
end
if f2 then
local lp = f2.LayoutParams
lp.width = inSekai and math.max(0, width - math.floor(width * 0.5)) or 0
f2.setLayoutParams(lp)
f2.setVisibility(inSekai and View.VISIBLE or View.GONE)
end
return height, width
end

Expand Down Expand Up @@ -480,6 +487,30 @@ page_home.addOnPageChangeListener(ViewPager.OnPageChangeListener {
page_home.setAdapter(pagadp)
page_home.setCurrentItem(startindex,false)

local function updateHomeRecommendColumns()
if not home_recy then return end
local layoutManager = home_recy.getLayoutManager()
if not layoutManager or not luajava.instanceof(layoutManager, GridLayoutManager) then return end

local width = home_recy.getWidth()
if width <= 0 then return end

local targetSpanCount = math.max(1, math.min(2, math.floor(px2dp(width, true) / 280)))
if layoutManager.getSpanCount() ~= targetSpanCount then
layoutManager.setSpanCount(targetSpanCount)
home_recy.requestLayout()
end
end

home_recy.addOnLayoutChangeListener(View.OnLayoutChangeListener {
onLayoutChange=function(v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom)
if right - left ~= oldRight - oldLeft then
updateHomeRecommendColumns()
end
end
})
home_recy.post(updateHomeRecommendColumns)

-- 如果 startindex 为 0,ViewPager 不会触发 onPageSelected,需要手动触发逻辑函数
if startindex == 0 then
taskUI(100, function()
Expand Down
55 changes: 43 additions & 12 deletions Hydrogen/app/src/main/assets_bin/mods/muk.lua
Original file line number Diff line number Diff line change
Expand Up @@ -153,14 +153,54 @@ function 设置视图(t)
activity.setContentView(loadlayout(t))
end
end
local function getCurrentFragmentContainer()
if thisFragment and thisFragment.ff then
if thisFragment.ff == f1 then return f1 end
if thisFragment.ff == f2 then return f2 end
end
end

local function getLeastRecentContainer()
if tonumber(f1.getTag(R.id.tag_last_time)) > tonumber(f2.getTag(R.id.tag_last_time)) then
return f2
end
return f1
end

local function selectTargetContainer(fragmentName)
if not inSekai then return f1 end
if fragmentName == "home" then return f1 end
if fragmentName == "comment" then return f2 end

local currentContainer = getCurrentFragmentContainer()
if currentContainer == f2 then
return f2
end

if tostring(f1.tag) == "home" then
return f2
end

if tostring(f2.tag) == "comment" then
return f1
end

if f2.tag == fragmentName then
return f2
end

return getLeastRecentContainer()
end

function newActivity(f,b,c)
if f1 == nil
return activity.newActivity(f,b)
end
b=b or {}
local ff=f1
local ff=selectTargetContainer(f)
local nt=tonumber(os.time())
local t = activity.getSupportFragmentManager().beginTransaction()
t.setReorderingAllowed(true)
--[[t.setCustomAnimations(
android.R.anim.slide_in_left,
android.R.anim.slide_out_right,
Expand All @@ -169,15 +209,6 @@ function newActivity(f,b,c)
--t.remove(activity.getSupportFragmentManager().findFragmentByTag("answer"))
--t.add(thisF.getId(),MyLuaFileFragment(srcLuaDir..f..".lua",b,{fn=fn,fg=fg,inSekai=inSekai,onBackCancelled=onBackCancelled,onBackStarted=onBackStarted,onBackInvoked=onBackInvoked,onBackProgressed=onBackProgressed}))
--t.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
if tonumber(f1.getTag(R.id.tag_last_time))>tonumber(f2.getTag(R.id.tag_last_time))
ff=f2
else
ff=f1
end
if f2.tag==f
ff=f2
end
if !inSekai then ff = f1 end
ff.tag=f
ff.setTag(R.id.tag_last_time,nt)
if nTView then
Expand Down Expand Up @@ -220,13 +251,13 @@ function newActivity(f,b,c)
ViewCompat.setTransitionName(nTView,"t")
t.addSharedElement(nTView,"t")
fragment.setSharedElementEnterTransition(forward).setSharedElementReturnTransition(backward).setEnterTransition(forward).setReenterTransition(backward).setExitTransition(backward).setReturnTransition(backward)
t.add(ff.id,fragment)
t.replace(ff.id,fragment)
else
backward = MaterialSharedAxis(MaterialSharedAxis.Z, false);
forward = MaterialSharedAxis(MaterialSharedAxis.Z, true);
local fragment = MyLuaFileFragment(srcLuaDir..f..".lua",b,{f1=f1,f2=f2,inSekai=inSekai,ff=ff,})
fragment.postponeEnterTransition()
t.add(ff.id,fragment.setEnterTransition(forward).setReenterTransition(backward).setExitTransition(backward).setReturnTransition(backward))
t.replace(ff.id,fragment.setEnterTransition(forward).setReenterTransition(backward).setExitTransition(backward).setReturnTransition(backward))

end
t.addToBackStack(nil)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package com.hydrogen;
import android.view.View;
import androidx.lifecycle.ViewModel;
import java.util.HashMap;

public class MyFragmentViewmodel extends ViewModel {
String mLuaFilePath;
HashMap mGlobal;
Object[] mArgs;
View cachedContentView;
boolean luaFileLoaded;

public MyFragmentViewmodel() {

Expand Down
Loading
Loading