From 3433f3e9a0254b24cec2836b112267b1af3f9101 Mon Sep 17 00:00:00 2001 From: tj <1378534974@qq.com> Date: 星期一, 07 四月 2025 10:57:40 +0800 Subject: [PATCH] 1.jks打包相关修改 2.vip续费页面相关修改 --- app/src/main/res/layout/fragment_member_info_card.xml | 2 + keytool | 0 public_cert.cer | 0 sms-manager.jks | 0 app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardViewModel.kt | 16 +++++-- app/src/main/AndroidManifest.xml | 8 ++++ app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt | 7 +++ app/src/main/res/xml/network_security_config.xml | 1 app/src/main/java/com/example/firstapp/database/service/ApiService.kt | 4 + app/src/main/java/com/example/firstapp/ui/dashboard/DashboardViewModel.kt | 2 + README.md | 10 +++++ app/src/main/res/drawable/avatar.png | 0 app/src/main/res/drawable/gift_one.png | 0 app/src/main/res/mipmap/vip_free_member.png | 0 app/src/main/java/com/example/firstapp/App.kt | 35 +++++++---------- 15 files changed, 57 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 1c96189..2c07e83 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,13 @@ 短信平台 +# md5 +ADC67C7C8E0BE3829D34E976D8EFCC9B +# 公钥: +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoKuRiiydxMr1CFaenGIr +MVqwOFtRgzW+ihjza8wldQOcLvqB58joTi9jwGLVqOnfoAA8hIzOZ33jWe5ZsLgq +UjwugDj+VOMW7YTAZlVoY/1lUX2gyexaRiZf2D2Bxikp3SLrlG7fp4sYMIXAdMPx +i/Y9Tgr9d7KGu2Yaz1ER+Kcq3WI+PDjYJjlQfgpkSruKb65hVhtQA1ZJp3rzPLRw +/0sK7H2dwYxFvsVN+m6dhBnTmOcrvZ7jpIgI47kHMxT0Qj53J10/6D9Ww9+h6TM6 +ISnvE8tXF0iP0nDD+kSpuky/6592+48Pof08IN+oaQKe7Ycf8iyAfGQSO3vUe8I5 +EQIDAQAB diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 99381b1..5e9d88c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -86,6 +86,14 @@ tools:targetApi="31" android:usesCleartextTraffic="true" > + + <provider + android:name="androidx.startup.InitializationProvider" + android:authorities="${applicationId}.androidx-startup" + android:exported="false" + tools:node="remove" /> + + <activity android:name=".activity.VipActivity" android:exported="false" diff --git a/app/src/main/java/com/example/firstapp/App.kt b/app/src/main/java/com/example/firstapp/App.kt index 7c60e3a..c8fc2c4 100644 --- a/app/src/main/java/com/example/firstapp/App.kt +++ b/app/src/main/java/com/example/firstapp/App.kt @@ -3,24 +3,16 @@ import android.annotation.SuppressLint import android.app.Application import android.app.PendingIntent -import android.bluetooth.BluetoothAdapter -import android.bluetooth.BluetoothDevice import android.content.Context import android.content.Intent import android.content.IntentFilter import android.location.Geocoder -import android.net.ConnectivityManager -import android.net.wifi.WifiManager import android.os.Build +import androidx.annotation.NonNull import androidx.lifecycle.MutableLiveData import androidx.multidex.MultiDex import androidx.work.Configuration import androidx.work.WorkManager -import com.gyf.cactus.Cactus -import com.gyf.cactus.callback.CactusCallback -import com.gyf.cactus.ext.cactus -import com.hjq.language.MultiLanguages -import com.hjq.language.OnLanguageListener import com.example.firstapp.core.Core import com.example.firstapp.database.repository.CodeRepository import com.example.firstapp.database.repository.KeywordRepository @@ -28,28 +20,23 @@ import com.example.firstapp.database.repository.ReminderRepository import com.example.firstapp.database.service.RetrofitClient import com.example.firstapp.receiver.CactusReceiver -import com.example.firstapp.service.BluetoothScanService -import com.example.firstapp.service.HttpServerService -import com.example.firstapp.utils.ACTION_START import com.example.firstapp.utils.AppInfo -import com.example.firstapp.utils.CactusSave 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.HistoryUtils import com.example.firstapp.utils.Log import com.example.firstapp.utils.PreferencesManager import com.example.firstapp.utils.SettingUtils -import com.example.firstapp.utils.SharedPreference - import com.example.firstapp.utils.tinker.TinkerLoadLibrary +import com.gyf.cactus.Cactus +import com.gyf.cactus.callback.CactusCallback +import com.gyf.cactus.ext.cactus +import com.hjq.language.MultiLanguages import com.king.location.LocationClient import com.xuexiang.xutil.file.FileUtils import frpclib.Frpclib -import io.reactivex.Observable import io.reactivex.disposables.Disposable -import io.reactivex.schedulers.Schedulers import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.SupervisorJob import java.io.BufferedWriter @@ -59,8 +46,6 @@ import java.text.SimpleDateFormat import java.util.Date import java.util.Locale -import java.util.TimeZone -import java.util.concurrent.TimeUnit @Suppress("DEPRECATION") class App : Application(), CactusCallback, Configuration.Provider by Core { @@ -160,7 +145,8 @@ if (SettingUtils.enablePureClientMode) return //初始化WorkManager - WorkManager.initialize(this, Configuration.Builder().build()) +// WorkManager.initialize(this, Configuration.Builder().build()) + WorkManager.initialize(this, getWorkManagerConfiguration()) //动态加载FrpcLib val libPath = filesDir.absolutePath + "/libs" @@ -296,6 +282,13 @@ } } + @NonNull + override fun getWorkManagerConfiguration(): Configuration { + return Configuration.Builder() + .setMinimumLoggingLevel(android.util.Log.DEBUG) // 设置日志级别 + .build() + } + /** * 初始化基础库 */ diff --git a/app/src/main/java/com/example/firstapp/database/service/ApiService.kt b/app/src/main/java/com/example/firstapp/database/service/ApiService.kt index 2fbbb90..6be57ba 100644 --- a/app/src/main/java/com/example/firstapp/database/service/ApiService.kt +++ b/app/src/main/java/com/example/firstapp/database/service/ApiService.kt @@ -78,7 +78,9 @@ // 创建Retrofit实例(单例) object RetrofitClient{ - private const val BASE_URL ="http://192.168.1.213:8080/flower/" +// private const val BASE_URL ="http://192.168.1.198:8080/flower/" + private const val BASE_URL ="http://14.103.144.28:8080/flower/" + // 创建OkHttpClient,配置拦截器和超时时间 private val okHttpClient = OkHttpClient.Builder() diff --git a/app/src/main/java/com/example/firstapp/ui/dashboard/DashboardViewModel.kt b/app/src/main/java/com/example/firstapp/ui/dashboard/DashboardViewModel.kt index eee2467..1a0a2cb 100644 --- a/app/src/main/java/com/example/firstapp/ui/dashboard/DashboardViewModel.kt +++ b/app/src/main/java/com/example/firstapp/ui/dashboard/DashboardViewModel.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.asLiveData import androidx.lifecycle.viewModelScope +import androidx.room.RewriteQueriesToDropUnusedColumns import com.example.firstapp.AppDatabase import com.example.firstapp.database.entity.Code import com.example.firstapp.database.repository.CodeRepository @@ -26,6 +27,7 @@ fun getYearlyHeatmap(date: Long) = repository.getYearlyHeatmap(date).asLiveData() + fun getWeeklyStats(date: Long, weekCount: Int = 6) = repository.getWeeklyStats(date, weekCount).asLiveData() diff --git a/app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt b/app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt index 0d3247e..405783d 100644 --- a/app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt +++ b/app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardFragment.kt @@ -144,8 +144,13 @@ } viewLifecycleOwner.lifecycleScope.launch { - viewModel.color.collect { color -> + viewModel.phoneTextColor.collect { color -> binding.phoneNumberText.setTextColor(Color.parseColor(color)) + } + } + + viewLifecycleOwner.lifecycleScope.launch { + viewModel.memberStatusColor.collect { color -> binding.memberStatus.setTextColor(Color.parseColor(color)) } } diff --git a/app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardViewModel.kt b/app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardViewModel.kt index fa18bcf..c640222 100644 --- a/app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardViewModel.kt +++ b/app/src/main/java/com/example/firstapp/ui/vip/MemberInfoCardViewModel.kt @@ -30,9 +30,13 @@ private val _background = MutableStateFlow(R.drawable.dialog_background) val background: StateFlow<Int> = _background - // 背景色 - private val _color = MutableStateFlow("#E8EAEE") - val color: StateFlow<String> = _color + // 手机号字体颜色 + private val _phoneTextColor = MutableStateFlow("#37393B") + val phoneTextColor: StateFlow<String> = _phoneTextColor + + // 到期时间字体颜色 + private val _memberStatusColor = MutableStateFlow("#37393B") + val memberStatusColor: StateFlow<String> = _memberStatusColor // 更新数据的方法 @@ -64,13 +68,15 @@ // vip头像 _vipCover.value ="http://192.168.1.201:9000/sms/member/vip.png" _background.value = R.drawable.vip_black_background - _color.value ="#A9A9AB" + _phoneTextColor.value ="#F2F2F2" + _memberStatusColor.value ="#AAAAAA" }else{ _memberStatus.value = "未开通" _vipCover.value ="http://192.168.1.201:9000/sms/member/vip_no.png" _background.value =R.drawable.vip_white_background - _color.value ="#A4A4A4" + _phoneTextColor.value ="#37393B" + _memberStatusColor.value ="#37393B" } // 头像 diff --git a/app/src/main/res/drawable/avatar.png b/app/src/main/res/drawable/avatar.png index 04a43e1..9d15b9d 100644 --- a/app/src/main/res/drawable/avatar.png +++ b/app/src/main/res/drawable/avatar.png Binary files differ diff --git a/app/src/main/res/drawable/gift_one.png b/app/src/main/res/drawable/gift_one.png index d6bd848..451fe0b 100644 --- a/app/src/main/res/drawable/gift_one.png +++ b/app/src/main/res/drawable/gift_one.png Binary files differ diff --git a/app/src/main/res/layout/fragment_member_info_card.xml b/app/src/main/res/layout/fragment_member_info_card.xml index d1789c5..46571a7 100644 --- a/app/src/main/res/layout/fragment_member_info_card.xml +++ b/app/src/main/res/layout/fragment_member_info_card.xml @@ -52,6 +52,7 @@ android:layout_height="40dp" android:gravity="center" android:text="@{viewModel.phoneNumber}" + android:textColor="#F2F2F2" app:layout_constraintStart_toEndOf="@id/memberAvatarView" app:layout_constraintTop_toTopOf="parent" /> @@ -72,6 +73,7 @@ android:text="@{viewModel.memberStatus}" android:layout_marginLeft="8dp" android:padding="2dp" + android:textColor="#AAAAAA" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/memberAvatarView" /> diff --git a/app/src/main/res/mipmap/vip_free_member.png b/app/src/main/res/mipmap/vip_free_member.png index d6bd848..451fe0b 100644 --- a/app/src/main/res/mipmap/vip_free_member.png +++ b/app/src/main/res/mipmap/vip_free_member.png Binary files differ diff --git a/app/src/main/res/xml/network_security_config.xml b/app/src/main/res/xml/network_security_config.xml index f8bbdd2..ba135d2 100644 --- a/app/src/main/res/xml/network_security_config.xml +++ b/app/src/main/res/xml/network_security_config.xml @@ -6,6 +6,7 @@ <domain includeSubdomains="true">192.168.1.198</domain> <domain includeSubdomains="true">192.168.1.199</domain> <domain includeSubdomains="true">192.168.1.201</domain> + <domain includeSubdomains="true">14.103.144.28</domain> <!-- 可添加其他域名或IP(如192.168.0.101) --> <!-- 如果本地服务使用自签名证书,需在 network_security_config.xml 中信任该证书:--> <!-- <trust-anchors>--> diff --git a/keytool b/keytool new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/keytool diff --git a/public_cert.cer b/public_cert.cer new file mode 100644 index 0000000..97de39d --- /dev/null +++ b/public_cert.cer Binary files differ diff --git a/sms-manager.jks b/sms-manager.jks new file mode 100644 index 0000000..f2291a6 --- /dev/null +++ b/sms-manager.jks Binary files differ -- Gitblit v1.9.3