Skip to content

Commit

Permalink
Merge pull request #671 from aiselp/ui-optimization
Browse files Browse the repository at this point in the history
移除文档界面下拉刷新,改到右上角菜单按钮
  • Loading branch information
kkevsekk1 authored Sep 29, 2023
2 parents b5f2e1a + 3ffba49 commit bb66445
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 64 deletions.
26 changes: 7 additions & 19 deletions app/src/main/java/org/autojs/autojs/ui/main/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,9 @@ import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.rememberMultiplePermissionsState
import com.google.accompanist.systemuicontroller.rememberSystemUiController
import com.stardust.app.permission.DrawOverlaysPermission
import com.stardust.util.IntentUtil
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import org.autojs.autojs.Pref
import org.autojs.autoxjs.R
import org.autojs.autojs.autojs.AutoJs
import org.autojs.autojs.external.foreground.ForegroundService
import org.autojs.autojs.timing.TimedTaskScheduler
Expand All @@ -44,12 +42,14 @@ import org.autojs.autojs.ui.compose.widget.MyIcon
import org.autojs.autojs.ui.compose.widget.SearchBox2
import org.autojs.autojs.ui.explorer.ExplorerViewKt
import org.autojs.autojs.ui.floating.FloatyWindowManger
import org.autojs.autojs.ui.log.LogActivityKt
import org.autojs.autojs.ui.main.components.DocumentPageMenuButton
import org.autojs.autojs.ui.main.components.LogButton
import org.autojs.autojs.ui.main.drawer.DrawerPage
import org.autojs.autojs.ui.main.scripts.ScriptListFragment
import org.autojs.autojs.ui.main.task.TaskManagerFragmentKt
import org.autojs.autojs.ui.main.web.WebViewFragment
import org.autojs.autojs.ui.widget.fillMaxSize
import org.autojs.autoxjs.R

data class BottomNavigationItem(val icon: Int, val label: String)

Expand Down Expand Up @@ -370,12 +370,7 @@ private fun TopBar(
})
)
}
IconButton(onClick = { LogActivityKt.start(context) }) {
Icon(
painter = painterResource(id = R.drawable.ic_logcat),
contentDescription = stringResource(id = R.string.text_logcat)
)
}
LogButton()
when (currentPage) {
0 -> {
var expanded by remember {
Expand All @@ -395,6 +390,7 @@ private fun TopBar(
)
}
}

1 -> {
IconButton(onClick = { AutoJs.getInstance().scriptEngineService.stopAll() }) {
Icon(
Expand All @@ -403,17 +399,9 @@ private fun TopBar(
)
}
}

2 -> {
IconButton(onClick = {
webViewFragment.swipeRefreshWebView.webView.url?.let {
IntentUtil.browse(context, it)
}
}) {
Icon(
painterResource(id = R.drawable.ic_external_link),
contentDescription = stringResource(id = R.string.text_browser_open)
)
}
DocumentPageMenuButton { webViewFragment.swipeRefreshWebView.webView }
}
}

Expand Down
73 changes: 73 additions & 0 deletions app/src/main/java/org/autojs/autojs/ui/main/components/main_ui.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package org.autojs.autojs.ui.main.components

import android.webkit.WebView
import androidx.compose.foundation.layout.Box
import androidx.compose.material.DropdownMenu
import androidx.compose.material.DropdownMenuItem
import androidx.compose.material.Icon
import androidx.compose.material.IconButton
import androidx.compose.material.Text
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.MoreVert
import androidx.compose.material.icons.filled.Refresh
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import com.stardust.util.IntentUtil
import org.autojs.autojs.ui.log.LogActivityKt
import org.autojs.autoxjs.R

//主界面日志按钮
@Composable
fun LogButton() {
val context = LocalContext.current
IconButton(onClick = { LogActivityKt.start(context) }) {
Icon(
painter = painterResource(id = R.drawable.ic_logcat),
contentDescription = stringResource(id = R.string.text_logcat)
)
}
}

//文档界面菜单按钮
@Composable
fun DocumentPageMenuButton(getWebView:()-> WebView) {
val context = LocalContext.current
Box {
var expanded by remember { mutableStateOf(false) }
fun dismissMenu() {
expanded = false
}
IconButton({ expanded = true }) {
Icon(imageVector = Icons.Default.MoreVert, contentDescription = null)
}
DropdownMenu(
expanded = expanded,
onDismissRequest = { expanded = false }) {
DropdownMenuItem(onClick = {
dismissMenu()
getWebView().url?.let {
IntentUtil.browse(context, it)
}
}) {
Icon(
painterResource(id = R.drawable.ic_external_link),
contentDescription = null
)
Text(text = stringResource(id = R.string.text_browser_open))
}
DropdownMenuItem(onClick = {
dismissMenu()
getWebView().reload()
}) {
Icon(Icons.Default.Refresh, contentDescription = null)
Text(text = "刷新")
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package org.autojs.autojs.ui.widget

import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Bitmap
import android.os.Build
import android.util.AttributeSet
import android.view.KeyEvent
Expand All @@ -13,28 +12,18 @@ import org.autojs.autojs.theme.widget.ThemeColorSwipeRefreshLayout

class SwipeRefreshWebView : ThemeColorSwipeRefreshLayout {

val webView = NestedWebView(context)
val webView = WebView(context)

constructor(context: Context) : super(context) {
init()
}
constructor(context: Context) : super(context)

constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
init()
}
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)

fun init() {
setOnRefreshListener {
webView.reload()
postDelayed({
isRefreshing = false
}, 2000)
}
init {
isEnabled = false
webView.apply {
fillMaxSize()
setup()
}

addView(webView)
}

Expand Down Expand Up @@ -81,37 +70,12 @@ class SwipeRefreshWebView : ThemeColorSwipeRefreshLayout {
mixedContentMode =
WebSettings.MIXED_CONTENT_ALWAYS_ALLOW;
}
webViewClient = MyWebViewClient(
onPageFinished = {
webViewClient = object : WebViewClient() {
override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)
isRefreshing = false
}
)
// webChromeClient = MyWebChromeClient()
}
}

}

open class MyWebViewClient(private val onPageFinished: () -> Unit) : WebViewClient() {


override fun onPageStarted(
view: WebView,
url: String,
favicon: Bitmap?
) {
super.onPageStarted(view, url, favicon)
}

override fun onPageFinished(view: WebView, url: String) {
super.onPageFinished(view, url)
onPageFinished()
}

override fun shouldOverrideUrlLoading(
view: WebView,
request: android.webkit.WebResourceRequest
): Boolean {
return shouldOverrideUrlLoading(view, request.url.toString())
}

}

0 comments on commit bb66445

Please sign in to comment.