diff --git a/app/src/main/java/com/idormy/sms/forwarder/core/http/api/ApiService.kt b/app/src/main/java/com/idormy/sms/forwarder/core/http/api/ApiService.kt deleted file mode 100644 index 396965b3..00000000 --- a/app/src/main/java/com/idormy/sms/forwarder/core/http/api/ApiService.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.idormy.sms.forwarder.core.http.api - -import com.idormy.sms.forwarder.core.http.entity.TipInfo -import com.xuexiang.xhttp2.model.ApiResult -import io.reactivex.Observable -import retrofit2.http.GET - -/** - * @author xuexiang - * @since 2021/1/9 7:01 PM - */ -@Suppress("unused") -class ApiService { - /** - * 使用的是retrofit的接口定义 - */ - interface IGetService { - /** - * 获得小贴士 - */ - @get:GET("/pp/SmsForwarder.wiki/raw/master/tips.json") - val tips: Observable?>> - } -} \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/core/http/callback/NoTipCallBack.kt b/app/src/main/java/com/idormy/sms/forwarder/core/http/callback/NoTipCallBack.kt deleted file mode 100644 index 3009cc29..00000000 --- a/app/src/main/java/com/idormy/sms/forwarder/core/http/callback/NoTipCallBack.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.idormy.sms.forwarder.core.http.callback - -import com.xuexiang.xhttp2.callback.SimpleCallBack -import com.xuexiang.xhttp2.exception.ApiException -import com.xuexiang.xhttp2.model.XHttpRequest -import com.xuexiang.xutil.common.StringUtils -import com.xuexiang.xutil.common.logger.Logger - -/** - * 不带错误提示的网络请求回调 - * - * @author xuexiang - * @since 2019-11-18 23:02 - */ -@Suppress("unused") -abstract class NoTipCallBack : SimpleCallBack { - /** - * 记录一下请求的url,确定出错的请求是哪个请求 - */ - private var mUrl: String? = null - - constructor() - constructor(req: XHttpRequest) : this(req.url) - constructor(url: String?) { - mUrl = url - } - - override fun onError(e: ApiException) { - if (!StringUtils.isEmpty(mUrl)) { - Logger.e("Request Url: $mUrl", e) - } else { - Logger.e(e) - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/core/http/callback/TipCallBack.kt b/app/src/main/java/com/idormy/sms/forwarder/core/http/callback/TipCallBack.kt deleted file mode 100644 index f7e80ed7..00000000 --- a/app/src/main/java/com/idormy/sms/forwarder/core/http/callback/TipCallBack.kt +++ /dev/null @@ -1,37 +0,0 @@ -package com.idormy.sms.forwarder.core.http.callback - -import com.idormy.sms.forwarder.utils.XToastUtils -import com.xuexiang.xhttp2.callback.SimpleCallBack -import com.xuexiang.xhttp2.exception.ApiException -import com.xuexiang.xhttp2.model.XHttpRequest -import com.xuexiang.xutil.common.StringUtils -import com.xuexiang.xutil.common.logger.Logger - -/** - * 带错误toast提示的网络请求回调 - * - * @author xuexiang - * @since 2019-11-18 23:02 - */ -@Suppress("unused") -abstract class TipCallBack : SimpleCallBack { - /** - * 记录一下请求的url,确定出错的请求是哪个请求 - */ - private var mUrl: String? = null - - constructor() - constructor(req: XHttpRequest) : this(req.url) - constructor(url: String?) { - mUrl = url - } - - override fun onError(e: ApiException) { - XToastUtils.error(e) - if (!StringUtils.isEmpty(mUrl)) { - Logger.e("Request Url: $mUrl", e) - } else { - Logger.e(e) - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/core/http/callback/TipProgressLoadingCallBack.kt b/app/src/main/java/com/idormy/sms/forwarder/core/http/callback/TipProgressLoadingCallBack.kt deleted file mode 100644 index 79a9411f..00000000 --- a/app/src/main/java/com/idormy/sms/forwarder/core/http/callback/TipProgressLoadingCallBack.kt +++ /dev/null @@ -1,45 +0,0 @@ -package com.idormy.sms.forwarder.core.http.callback - -import com.idormy.sms.forwarder.core.BaseFragment -import com.idormy.sms.forwarder.utils.XToastUtils -import com.xuexiang.xhttp2.callback.ProgressLoadingCallBack -import com.xuexiang.xhttp2.exception.ApiException -import com.xuexiang.xhttp2.model.XHttpRequest -import com.xuexiang.xhttp2.subsciber.impl.IProgressLoader -import com.xuexiang.xutil.common.StringUtils -import com.xuexiang.xutil.common.logger.Logger - -/** - * 带错误toast提示和加载进度条的网络请求回调 - * - * @author xuexiang - * @since 2019-11-18 23:16 - */ -@Suppress("unused") -abstract class TipProgressLoadingCallBack : ProgressLoadingCallBack { - /** - * 记录一下请求的url,确定出错的请求是哪个请求 - */ - private var mUrl: String? = null - - constructor(fragment: BaseFragment<*>) : super(fragment.progressLoader) - constructor(iProgressLoader: IProgressLoader?) : super(iProgressLoader) - constructor(req: XHttpRequest, iProgressLoader: IProgressLoader?) : this( - req.url, - iProgressLoader - ) - - constructor(url: String?, iProgressLoader: IProgressLoader?) : super(iProgressLoader) { - mUrl = url - } - - override fun onError(e: ApiException) { - super.onError(e) - XToastUtils.error(e) - if (!StringUtils.isEmpty(mUrl)) { - Logger.e("Request Url: $mUrl", e) - } else { - Logger.e(e) - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/idormy/sms/forwarder/widget/GuideTipsDialog.kt b/app/src/main/java/com/idormy/sms/forwarder/widget/GuideTipsDialog.kt index 19ffb5c2..420ef4d0 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/widget/GuideTipsDialog.kt +++ b/app/src/main/java/com/idormy/sms/forwarder/widget/GuideTipsDialog.kt @@ -6,17 +6,19 @@ import android.widget.CompoundButton import android.widget.ImageView import android.widget.TextView import androidx.appcompat.widget.AppCompatCheckBox +import com.google.gson.Gson +import com.google.gson.JsonObject +import com.google.gson.reflect.TypeToken import com.idormy.sms.forwarder.R -import com.idormy.sms.forwarder.core.http.api.ApiService.IGetService -import com.idormy.sms.forwarder.core.http.callback.NoTipCallBack import com.idormy.sms.forwarder.core.http.entity.TipInfo import com.idormy.sms.forwarder.utils.AppUtils import com.idormy.sms.forwarder.utils.SharedPreference -import com.xuexiang.constant.TimeConstants import com.xuexiang.xaop.annotation.SingleClick import com.xuexiang.xhttp2.XHttp -import com.xuexiang.xhttp2.cache.model.CacheMode +import com.xuexiang.xhttp2.callback.SimpleCallBack +import com.xuexiang.xhttp2.exception.ApiException import com.xuexiang.xui.widget.dialog.BaseDialog +import com.xuexiang.xutil.resource.ResUtils.getString import com.zzhoujay.richtext.RichText /** @@ -163,18 +165,33 @@ class GuideTipsDialog(context: Context?, tips: List) : */ @JvmStatic fun showTipsForce(context: Context?) { - val request = XHttp.custom().cacheMode(CacheMode.FIRST_CACHE) - .cacheTime(TimeConstants.DAY.toLong()).cacheKey("getTips") - request.apiCall(request.create( - IGetService::class.java - ).tips, object : NoTipCallBack>() { - @Throws(Throwable::class) - override fun onSuccess(response: List?) { - if (!response.isNullOrEmpty()) { - GuideTipsDialog(context, response).show() + XHttp.get(getString(R.string.url_tips)) + .keepJson(true) + .ignoreHttpsCert() + .timeStamp(true) //url自动追加时间戳,避免缓存 + .execute(object : SimpleCallBack() { + override fun onError(e: ApiException) { + e.printStackTrace() } - } - }) + + override fun onSuccess(json: String) { + try { + val gson = Gson() + val jsonObject = gson.fromJson(json, JsonObject::class.java) + if (jsonObject.isJsonObject + && jsonObject.has("Code") && jsonObject["Code"].asInt == 0 + && jsonObject.has("Data") && jsonObject["Data"].isJsonArray + ) { + val dataJsonArray = jsonObject["Data"].asJsonArray + val listType = object : TypeToken>() {}.type + val tips = gson.fromJson>(dataJsonArray, listType) + GuideTipsDialog(context, tips).show() + } + } catch (e: Exception) { + e.printStackTrace() + } + } + }) } fun setIsIgnoreTips(isIgnore: Boolean): Boolean { @@ -190,4 +207,4 @@ class GuideTipsDialog(context: Context?, tips: List) : initViews() updateTips(tips) } -} \ No newline at end of file +} diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 4b003378..50e6fe31 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -58,6 +58,7 @@ https://gitee.com/pp/SmsForwarder/wikis/pages https://gitee.com/pp/SmsForwarder.wiki/raw/master/%E6%89%93%E8%B5%8F%E5%90%8D%E5%8D%95.md https://gitee.com/pp/SmsForwarder/raw/main/pic/wechat_miniprogram.jpg + https://gitee.com/pp/SmsForwarder.wiki/raw/master/tips_en.json Yes No diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 78c6c23a..4e5c31ad 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -58,6 +58,7 @@ https://gitee.com/pp/SmsForwarder/wikis/pages https://gitee.com/pp/SmsForwarder.wiki/raw/master/%E6%89%93%E8%B5%8F%E5%90%8D%E5%8D%95.md https://gitee.com/pp/SmsForwarder/raw/main/pic/wechat_miniprogram.jpg + https://gitee.com/pp/SmsForwarder.wiki/raw/master/tips.json diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 2ae7f6d2..c269f5d9 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -58,6 +58,7 @@ https://gitee.com/pp/SmsForwarder/wikis/pages https://gitee.com/pp/SmsForwarder.wiki/raw/master/%E6%89%93%E8%B5%8F%E5%90%8D%E5%8D%95.md https://gitee.com/pp/SmsForwarder/raw/main/pic/wechat_miniprogram.jpg + https://gitee.com/pp/SmsForwarder.wiki/raw/master/tips_tc.json diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 00f090e1..351047be 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -85,6 +85,7 @@ https://gitee.com/pp/SmsForwarder/wikis/pages https://gitee.com/pp/SmsForwarder.wiki/raw/master/%E6%89%93%E8%B5%8F%E5%90%8D%E5%8D%95.md https://gitee.com/pp/SmsForwarder/raw/main/pic/wechat_miniprogram.jpg + https://gitee.com/pp/SmsForwarder.wiki/raw/master/tips.json