From 589f5f08e5930c931d7cac2a43508effdaf582d3 Mon Sep 17 00:00:00 2001 From: shenzuqiang Date: Mon, 16 Mar 2026 10:32:42 +0800 Subject: [PATCH] =?UTF-8?q?Dev=EF=BC=9A=201=E3=80=81=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=8F=8F=E8=BF=B0=E5=8F=8A=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 8 ++-- .../main/java/com/img/rabbit/MainActivity.kt | 1 - .../java/com/img/rabbit/WebViewActivity.kt | 4 +- .../java/com/img/rabbit/pages/LoginPage.kt | 38 +++++++++++-------- .../java/com/img/rabbit/pages/MainPage.kt | 3 ++ .../rabbit/pages/NetworkDisconnectedPage.kt | 3 ++ .../com/img/rabbit/pages/screen/HomeScreen.kt | 12 +++--- .../com/img/rabbit/pages/screen/MineScreen.kt | 3 ++ .../rabbit/pages/screen/make/CutoutScreen.kt | 3 ++ .../rabbit/pages/screen/make/FormatScreen.kt | 3 ++ .../pages/screen/make/LongImageScreen.kt | 3 ++ .../rabbit/pages/screen/make/ResizeScreen.kt | 3 ++ .../pages/screen/mine/FeedbackScreen.kt | 3 ++ .../rabbit/pages/screen/mine/SettingScreen.kt | 3 ++ .../pages/screen/mine/setting/AboutScreen.kt | 3 ++ .../screen/mine/setting/AccountBindScreen.kt | 3 ++ .../mine/setting/AccountManagerScreen.kt | 3 ++ .../pages/screen/mine/setting/BindScreen.kt | 3 ++ .../mine/setting/DeleteAccountScreen.kt | 3 ++ .../pages/screen/other/CameraGuideScreen.kt | 3 ++ 20 files changed, 79 insertions(+), 29 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 08c6fb4..e4a8d00 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,19 +5,18 @@ - - + - + - + @@ -34,7 +33,6 @@ - diff --git a/app/src/main/java/com/img/rabbit/MainActivity.kt b/app/src/main/java/com/img/rabbit/MainActivity.kt index bdc3475..6b93b40 100644 --- a/app/src/main/java/com/img/rabbit/MainActivity.kt +++ b/app/src/main/java/com/img/rabbit/MainActivity.kt @@ -106,7 +106,6 @@ class MainActivity : ComponentActivity(), LoadingCallback { // 启用Edge-to-Edge模式(沉浸模式) enableEdgeToEdge() - setContent { val coroutineScope = rememberCoroutineScope() var showSplash by remember { mutableStateOf(false) } diff --git a/app/src/main/java/com/img/rabbit/WebViewActivity.kt b/app/src/main/java/com/img/rabbit/WebViewActivity.kt index c1c0a00..6c564a3 100644 --- a/app/src/main/java/com/img/rabbit/WebViewActivity.kt +++ b/app/src/main/java/com/img/rabbit/WebViewActivity.kt @@ -9,13 +9,15 @@ import android.widget.TextView import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity +/** + * 用于隐私政策协议内部浏览的WebActivity + */ class WebViewActivity : AppCompatActivity() { @SuppressLint("SetJavaScriptEnabled") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - // 启用Edge-to-Edge模式(沉浸模式) enableEdgeToEdge() diff --git a/app/src/main/java/com/img/rabbit/pages/LoginPage.kt b/app/src/main/java/com/img/rabbit/pages/LoginPage.kt index abb45eb..60524cc 100644 --- a/app/src/main/java/com/img/rabbit/pages/LoginPage.kt +++ b/app/src/main/java/com/img/rabbit/pages/LoginPage.kt @@ -82,6 +82,10 @@ import com.img.rabbit.utils.WXAuthEvent import kotlinx.coroutines.delay import org.json.JSONObject +/** + * 登录页 + * 包含两种打开方式:1、直接打开登录页(无返回按钮) 2、从其他页面跳转打开登录页(包含返回按钮) + */ @SuppressLint("UnrememberedMutableState") @Composable @@ -183,22 +187,24 @@ fun LoginScreen(navController: NavHostController? = null, generalViewModel: Gene } } -// LaunchedEffect(networkStatus) { -// delay(1000L) -// showNetworkDisconnected = true -// } -// if(showNetworkDisconnected){ -// if(!networkStatus){ -// NetworkDisconnectedPage(generalViewModel = generalViewModel, onNetworkStatus = {isNetworkAvailable-> -// if(isNetworkAvailable){ -// Toast.makeText(context, "网络已连接", Toast.LENGTH_SHORT).show() -// }else{ -// Toast.makeText(context, "网络已断开", Toast.LENGTH_SHORT).show() -// } -// generalViewModel.setNetworkStatus(isNetworkAvailable) -// }) -// } -// } + /* + LaunchedEffect(networkStatus) { + delay(1000L) + showNetworkDisconnected = true + } + if(showNetworkDisconnected){ + if(!networkStatus){ + NetworkDisconnectedPage(generalViewModel = generalViewModel, onNetworkStatus = {isNetworkAvailable-> + if(isNetworkAvailable){ + Toast.makeText(context, "网络已连接", Toast.LENGTH_SHORT).show() + }else{ + Toast.makeText(context, "网络已断开", Toast.LENGTH_SHORT).show() + } + generalViewModel.setNetworkStatus(isNetworkAvailable) + }) + } + } + */ // 顶部栏 TitleBar(navController = navController, paddingValues = it, title = "", showSave = false, showBreak = isVisibilityBreak) diff --git a/app/src/main/java/com/img/rabbit/pages/MainPage.kt b/app/src/main/java/com/img/rabbit/pages/MainPage.kt index e5192de..96b6100 100644 --- a/app/src/main/java/com/img/rabbit/pages/MainPage.kt +++ b/app/src/main/java/com/img/rabbit/pages/MainPage.kt @@ -63,6 +63,9 @@ sealed class TabItem(val title: String, val router:String, val normalIconRes: In object Mine : TabItem("我的", "mine", R.mipmap.ic_mine_normal, R.mipmap.ic_mine_selected, Color(0xFFAAAAAA), Color(0xFF1A1A1A)) } +/** + * 负责Tab切换和页面切换的NavController + */ @SuppressLint("UnusedMaterial3ScaffoldPaddingParameter") @Composable fun MainScreen(generalViewModel: GeneralViewModel, loginViewModel: LoginViewModel) { diff --git a/app/src/main/java/com/img/rabbit/pages/NetworkDisconnectedPage.kt b/app/src/main/java/com/img/rabbit/pages/NetworkDisconnectedPage.kt index 382f4c0..40df027 100644 --- a/app/src/main/java/com/img/rabbit/pages/NetworkDisconnectedPage.kt +++ b/app/src/main/java/com/img/rabbit/pages/NetworkDisconnectedPage.kt @@ -35,6 +35,9 @@ import com.img.rabbit.R import com.img.rabbit.utils.NetworkStatus import com.img.rabbit.viewmodel.GeneralViewModel +/** + * 网络断开页(已经不再使用),改为Toast提示了 + */ @Composable fun NetworkDisconnectedPage(navController: NavHostController? = null, generalViewModel: GeneralViewModel, onNetworkStatus: (Boolean) -> Unit) { val context = LocalContext.current diff --git a/app/src/main/java/com/img/rabbit/pages/screen/HomeScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/HomeScreen.kt index c3b6b7b..3de64c2 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/HomeScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/HomeScreen.kt @@ -74,9 +74,10 @@ import kotlinx.coroutines.launch import org.json.JSONObject import kotlin.collections.chunked -@SuppressLint("UnrememberedMutableState", "MutableCollectionMutableState", - "SourceLockedOrientationActivity" -) +/** + * App”首页“页面 + */ +@SuppressLint("UnrememberedMutableState", "MutableCollectionMutableState", "SourceLockedOrientationActivity") @Composable fun HomeScreen( navController: NavHostController, @@ -204,8 +205,7 @@ fun HomeScreen( val rows = homeIconConfig?.chunked(columnsCount)?:emptyList() //模拟器 item { - Column( - ) { + Column { Column( modifier = Modifier .fillMaxWidth() @@ -766,7 +766,7 @@ private fun dealUniMpDownloadLaunch( progressPair: SnapshotStateMap, reportViewModel: ReportViewModel, loadingCallback: LoadingCallback?){ - val TAG = "Rabbit_HomeScreen" + val TAG = "Rabbit_HomeScreen_download" val uniMpId = uniMp.unimp_id // 处理点击事件,微信模拟器 diff --git a/app/src/main/java/com/img/rabbit/pages/screen/MineScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/MineScreen.kt index 0fb58db..0ae4129 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/MineScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/MineScreen.kt @@ -59,6 +59,9 @@ import com.img.rabbit.viewmodel.MineViewModel import kotlinx.coroutines.delay import kotlinx.coroutines.launch +/** + * App“我的”页面 + */ @SuppressLint("UnrememberedMutableState", "CoroutineCreationDuringComposition") @Composable fun MineScreen( diff --git a/app/src/main/java/com/img/rabbit/pages/screen/make/CutoutScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/make/CutoutScreen.kt index fb5d9df..6a4ea53 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/make/CutoutScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/make/CutoutScreen.kt @@ -135,6 +135,9 @@ object ResourceManager { } } +/** + * 抠图页面 + */ @Composable fun CutoutScreen(navController: NavController, viewModel: CutoutViewModel = viewModel()) { val context = LocalContext.current diff --git a/app/src/main/java/com/img/rabbit/pages/screen/make/FormatScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/make/FormatScreen.kt index 41aa19f..56240e8 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/make/FormatScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/make/FormatScreen.kt @@ -44,6 +44,9 @@ import com.img.rabbit.utils.ImageUtils.convertToGallery import com.img.rabbit.utils.ImageUtils.getBitmapFromUri import kotlinx.coroutines.launch +/** + * 格式转换页 + */ @Composable fun FormatScreen(navController: NavController) { val context = LocalContext.current diff --git a/app/src/main/java/com/img/rabbit/pages/screen/make/LongImageScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/make/LongImageScreen.kt index 4822969..b1ec1a3 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/make/LongImageScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/make/LongImageScreen.kt @@ -65,6 +65,9 @@ import io.moyuru.cropify.Cropify import io.moyuru.cropify.CropifyOption import io.moyuru.cropify.rememberCropifyState +/** + * 长图页 + */ @Composable fun LongImageScreen(navController: NavController) { val context = LocalContext.current diff --git a/app/src/main/java/com/img/rabbit/pages/screen/make/ResizeScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/make/ResizeScreen.kt index 622873a..18b7cf9 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/make/ResizeScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/make/ResizeScreen.kt @@ -64,6 +64,9 @@ import com.img.rabbit.utils.ImageUtils import com.img.rabbit.utils.ImageUtils.saveCanvasToGallery import kotlinx.coroutines.launch +/** + * 改尺寸页 + */ @Composable fun ResizeScreen(navController: NavController) { val context = LocalContext.current diff --git a/app/src/main/java/com/img/rabbit/pages/screen/mine/FeedbackScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/mine/FeedbackScreen.kt index d694dcb..1616d16 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/mine/FeedbackScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/mine/FeedbackScreen.kt @@ -45,6 +45,9 @@ import com.img.rabbit.pages.toolbar.TitleBar import com.img.rabbit.viewmodel.FeedbackViewModel import okhttp3.RequestBody.Companion.toRequestBody +/** + * 反馈页 + */ @Composable fun FeedbackScreen(navController: NavHostController, viewModel: FeedbackViewModel = viewModel()) { val context = LocalContext.current diff --git a/app/src/main/java/com/img/rabbit/pages/screen/mine/SettingScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/mine/SettingScreen.kt index e91347a..a320b46 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/mine/SettingScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/mine/SettingScreen.kt @@ -48,6 +48,9 @@ import com.img.rabbit.provider.storage.PreferenceUtil import com.img.rabbit.utils.AppDataStoreUtils import com.img.rabbit.viewmodel.LoginViewModel +/** + * 设置页 + */ @SuppressLint("UnrememberedMutableState") @Composable fun SettingScreen(navController: NavHostController, loginViewModel: LoginViewModel) { diff --git a/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/AboutScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/AboutScreen.kt index 3814aed..fa58257 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/AboutScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/AboutScreen.kt @@ -39,6 +39,9 @@ import com.img.rabbit.config.Constants.privacyUrl import com.img.rabbit.pages.toolbar.TitleBar import com.img.rabbit.utils.UrlLinkUtils.openAgreement +/** + * 关于我们页 + */ @Composable fun AboutScreen(navController: NavHostController) { Scaffold{ diff --git a/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/AccountBindScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/AccountBindScreen.kt index 49ae2c6..80bbc0c 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/AccountBindScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/AccountBindScreen.kt @@ -53,6 +53,9 @@ import com.img.rabbit.utils.LoginBindEvent import com.img.rabbit.viewmodel.AccountBindViewModel import com.img.rabbit.viewmodel.BindViewModel +/** + * 账号绑定页 + */ @SuppressLint("UnrememberedMutableState") @Composable fun AccountBindScreen(navController: NavHostController, viewModel: AccountBindViewModel = viewModel()) { diff --git a/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/AccountManagerScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/AccountManagerScreen.kt index 6958789..cada339 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/AccountManagerScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/AccountManagerScreen.kt @@ -53,6 +53,9 @@ import com.img.rabbit.viewmodel.AccountManagerViewModel import com.img.rabbit.viewmodel.LoginViewModel import kotlinx.coroutines.delay +/** + * 账号管理页(切换或添加账号) + */ @Composable fun AccountManagerScreen(navController: NavHostController, viewModel: AccountManagerViewModel = viewModel()) { var showDialogStatus by remember { mutableStateOf(false) } diff --git a/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/BindScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/BindScreen.kt index d2b9fd2..30d8364 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/BindScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/BindScreen.kt @@ -79,6 +79,9 @@ import com.img.rabbit.viewmodel.GeneralViewModel import kotlinx.coroutines.delay import org.json.JSONObject +/** + * 账号绑定页(绑定手机号或微信)类似 登录页 + */ @SuppressLint("UnrememberedMutableState") @Composable fun BindScreen(navController: NavHostController, viewModel: BindViewModel = viewModel(), generalViewModel: GeneralViewModel, bindType: Int) { diff --git a/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/DeleteAccountScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/DeleteAccountScreen.kt index d0cf053..b5eddae 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/DeleteAccountScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/mine/setting/DeleteAccountScreen.kt @@ -48,6 +48,9 @@ import com.img.rabbit.components.CenterToast import com.img.rabbit.pages.toolbar.TitleBar import com.img.rabbit.viewmodel.DeleteAccountViewModel +/** + * 注销(删除)账号页 + */ @Composable fun DeleteAccountScreen(navController: NavHostController,viewModel: DeleteAccountViewModel = viewModel()) { val inputTextValue = "我自愿注销本账号" diff --git a/app/src/main/java/com/img/rabbit/pages/screen/other/CameraGuideScreen.kt b/app/src/main/java/com/img/rabbit/pages/screen/other/CameraGuideScreen.kt index dfc1fb9..8ca4137 100644 --- a/app/src/main/java/com/img/rabbit/pages/screen/other/CameraGuideScreen.kt +++ b/app/src/main/java/com/img/rabbit/pages/screen/other/CameraGuideScreen.kt @@ -31,6 +31,9 @@ import androidx.navigation.NavController import com.img.rabbit.R import com.img.rabbit.pages.toolbar.TitleBar +/** + * 拍照指南页 + */ @Composable fun CameraGuideScreen(navController: NavController) { Scaffold {