From 33c7ed565ad6bfb30eee84acc33b39e6b639ade9 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期五, 18 四月 2025 08:54:45 +0800 Subject: [PATCH] fix: 样式 --- app/src/main/java/com/example/firstapp/App.kt | 99 +++++++++++++++++++++++++++++-------------------- 1 files changed, 58 insertions(+), 41 deletions(-) diff --git a/app/src/main/java/com/example/firstapp/App.kt b/app/src/main/java/com/example/firstapp/App.kt index c8fc2c4..624d23e 100644 --- a/app/src/main/java/com/example/firstapp/App.kt +++ b/app/src/main/java/com/example/firstapp/App.kt @@ -11,8 +11,7 @@ import androidx.annotation.NonNull import androidx.lifecycle.MutableLiveData import androidx.multidex.MultiDex -import androidx.work.Configuration -import androidx.work.WorkManager +import androidx.work.* import com.example.firstapp.core.Core import com.example.firstapp.database.repository.CodeRepository import com.example.firstapp.database.repository.KeywordRepository @@ -20,14 +19,8 @@ import com.example.firstapp.database.repository.ReminderRepository import com.example.firstapp.database.service.RetrofitClient import com.example.firstapp.receiver.CactusReceiver -import com.example.firstapp.utils.AppInfo -import com.example.firstapp.utils.FRONT_CHANNEL_ID -import com.example.firstapp.utils.FRONT_CHANNEL_NAME -import com.example.firstapp.utils.FRONT_NOTIFY_ID -import com.example.firstapp.utils.FRPC_LIB_VERSION -import com.example.firstapp.utils.Log -import com.example.firstapp.utils.PreferencesManager -import com.example.firstapp.utils.SettingUtils +import com.example.firstapp.service.ReminderWorker +import com.example.firstapp.utils.* import com.example.firstapp.utils.tinker.TinkerLoadLibrary import com.gyf.cactus.Cactus import com.gyf.cactus.callback.CactusCallback @@ -44,18 +37,18 @@ import java.io.FileWriter import java.io.IOException import java.text.SimpleDateFormat -import java.util.Date -import java.util.Locale +import java.util.* +import java.util.concurrent.TimeUnit @Suppress("DEPRECATION") -class App : Application(), CactusCallback, Configuration.Provider by Core { +class App : Application(), CactusCallback, Configuration.Provider { val applicationScope = CoroutineScope(SupervisorJob()) val database by lazy { AppDatabase.getInstance(this) } val msgRepository by lazy { MsgRepository(database.msgDao()) } val codeRepository by lazy { CodeRepository(database.codeDao()) } - val reminderRepository by lazy { ReminderRepository(database.reminderDao()) } val keywordRepository by lazy { KeywordRepository(RetrofitClient.apiService,database.keywordDao()) } + val reminderRepository by lazy { ReminderRepository(this) } companion object { const val TAG: String = "SmsForwarder" @@ -133,7 +126,6 @@ } catch (ex: IOException) { ex.printStackTrace() } - //使用默认的处理方式让APP停止运行 defaultHandler?.uncaughtException(thread, throwable) } @@ -141,12 +133,22 @@ context = applicationContext initLibs() PreferencesManager.init(this) - //纯客户端模式 - if (SettingUtils.enablePureClientMode) return + // 初始化RetrofitClient + RetrofitClient.init(this) - //初始化WorkManager -// WorkManager.initialize(this, Configuration.Builder().build()) + try { + if (SettingUtils.enablePureClientMode) return + } catch (e: Exception) { + // 捕获SettingUtils未初始化的异常 + Log.e(TAG, "SettingUtils未初始化: ${e.message}") + // 继续执行后续代码,不返回 + } + + // 初始化WorkManager WorkManager.initialize(this, getWorkManagerConfiguration()) + + // 设置定时检查提醒的WorkManager + setupReminderWorker() //动态加载FrpcLib val libPath = filesDir.absolutePath + "/libs" @@ -285,7 +287,7 @@ @NonNull override fun getWorkManagerConfiguration(): Configuration { return Configuration.Builder() - .setMinimumLoggingLevel(android.util.Log.DEBUG) // 设置日志级别 + .setMinimumLoggingLevel(android.util.Log.DEBUG) .build() } @@ -296,39 +298,39 @@ Core.init(this) Log.init(applicationContext) // 配置文件初始化 - /* SharedPreference.init(applicationContext) + SharedPreference.init(applicationContext) // X系列基础库初始化 // XBasicLibInit.init(this) // 初始化日志打印 isDebug = SettingUtils.enableDebugMode Log.init(applicationContext) // 转发历史工具类初始化 - HistoryUtils.init(applicationContext) +// HistoryUtils.init(applicationContext) // 版本更新初始化 // XUpdateInit.init(this) // 运营统计数据 // UMengInit.init(this) // 初始化语种切换框架 - MultiLanguages.init(this) +// MultiLanguages.init(this) // 设置语种变化监听器 - MultiLanguages.setOnLanguageListener(object : OnLanguageListener { - override fun onAppLocaleChange(oldLocale: Locale, newLocale: Locale) { - // 注意:只有setAppLanguage时触发,clearAppLanguage时不触发 - Log.i(TAG, "监听到应用切换了语种,旧语种:$oldLocale,新语种:$newLocale") - switchLanguage(newLocale) - } - - override fun onSystemLocaleChange(oldLocale: Locale, newLocale: Locale) { - Log.i(TAG, "监听到系统切换了语种,旧语种:$oldLocale,新语种:$newLocale") - switchLanguage(newLocale) - *//*val isFlowSystem = SettingUtils.isFlowSystemLanguage //MultiLanguages.isSystemLanguage(context)取值不对,一直是false - Log.i(TAG, "监听到系统切换了语种,旧语种:$oldLocale,新语种:$newLocale,是否跟随系统:$isFlowSystem") - if (isFlowSystem) { - CommonUtils.switchLanguage(oldLocale, newLocale) - }*//* - } - }) - switchLanguage(MultiLanguages.getAppLanguage(this))*/ +// MultiLanguages.setOnLanguageListener(object : OnLanguageListener { +// override fun onAppLocaleChange(oldLocale: Locale, newLocale: Locale) { +// // 注意:只有setAppLanguage时触发,clearAppLanguage时不触发 +// Log.i(TAG, "监听到应用切换了语种,旧语种:$oldLocale,新语种:$newLocale") +// switchLanguage(newLocale) +// } +// +// override fun onSystemLocaleChange(oldLocale: Locale, newLocale: Locale) { +// Log.i(TAG, "监听到系统切换了语种,旧语种:$oldLocale,新语种:$newLocale") +// switchLanguage(newLocale) +// *//*val isFlowSystem = SettingUtils.isFlowSystemLanguage //MultiLanguages.isSystemLanguage(context)取值不对,一直是false +// Log.i(TAG, "监听到系统切换了语种,旧语种:$oldLocale,新语种:$newLocale,是否跟随系统:$isFlowSystem") +// if (isFlowSystem) { +// CommonUtils.switchLanguage(oldLocale, newLocale) +// }*//* +// } +// }) +// switchLanguage(MultiLanguages.getAppLanguage(this)) } @SuppressLint("CheckResult") @@ -451,4 +453,19 @@ // ) // } + /** + * 设置定时提醒Worker + * 配置为每天运行一次检查是否有新的提醒内容 + */ + fun setupReminderWorker() { + Log.d(TAG, "设置定时提醒Worker") + + // 仅在特定时间执行(每天指定时间) + // 可根据需要设置多个不同时间点的提醒 + ReminderWorker.setupScheduledWorker(this, 9, 0) // 上午9:00 + ReminderWorker.setupScheduledWorker(this, 13, 50) // 下午13:50 + + // 不再使用周期性轮询和立即执行的方式 + } + } \ No newline at end of file -- Gitblit v1.9.3