| app/build.gradle | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/java/com/igo/user/network/Functions.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/java/com/igo/user/network/entity/CommonData.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/java/com/igo/user/ui/MainActivity.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/java/com/igo/user/ui/mine/SettingActivity.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/java/com/igo/user/utils/Const.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| xldutils-kotlin/src/main/java/cn/sinata/xldutils/activity/BaseActivity.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| xldutils-kotlin/src/main/java/cn/sinata/xldutils/rxutils/Error.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| xldutils-kotlin/src/main/java/cn/sinata/xldutils/rxutils/ResultCommonSubscriber.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/LanguageUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
app/build.gradle
@@ -87,7 +87,7 @@ def timestamp = new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("GMT+08")) // 构建新的文件名 def newName = file.name.replace("app-${variantName}", "GoPost_user-${variant.versionName}-${timestamp}") def newName = file.name.replace("app-${variantName}", "GoPost_user-${variant.versionName}-${variant.buildType.name}-${timestamp}") // 重命名文件 def newFile = new File(file.parentFile, newName) @@ -118,7 +118,7 @@ def timestamp = new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("GMT+08")) // 构建新的文件名 def newName = file.name.replace("app-${variantName}", "GoPost_user-${variant.versionName}-${timestamp}") def newName = file.name.replace("app-${variantName}", "GoPost_user-${variant.versionName}-${variant.buildType.name}-${timestamp}") // 重命名文件 def newFile = new File(file.parentFile, newName) app/src/main/java/com/igo/user/network/Functions.kt
@@ -1,5 +1,6 @@ package com.igo.user.network import android.util.Log import cn.sinata.xldutils.activity.BaseActivity import cn.sinata.xldutils.data.ResultData import cn.sinata.xldutils.defaultScheduler @@ -66,7 +67,9 @@ showDialog: Boolean = false, crossinline success: (msg: String?, t: O?) -> Unit ) { request(activity, showToast, showDialog, success) { _, _ -> } request(activity, showToast, showDialog, success) {code: Int, msg: String -> Log.e("xxxx","code:${code},msg:${msg}") } } inline fun <reified O, I : ResultData<O>> Flowable<I>.requestByF( app/src/main/java/com/igo/user/network/entity/CommonData.kt
@@ -185,7 +185,10 @@ data class VersionData( val content: String = "", val id: String = "", val mandatory: Int = 0, val mandatory: String = "", val url: String = "", val version: String = "" ) ) { //是否是强制升级 fun isMustUpgrade() = mandatory == "1" } app/src/main/java/com/igo/user/ui/MainActivity.kt
@@ -354,7 +354,7 @@ HttpManager.queryNewData().request(this, false) { _, it -> it?.run { if (isFinishing) return@run if (version > BuildConfig.VERSION_NAME && mandatory != 0) { if (version > BuildConfig.VERSION_NAME && mandatory.isNotEmpty()) { val tipDialog = TipDialog() tipDialog.arguments = bundleOf( "title" to "新版本更新", @@ -375,7 +375,11 @@ }) tipDialog.setDismissCallback(object : TipDialog.OnDismiss { override fun onDismiss() { finish() if (isMustUpgrade()) { closeAll() } else { finish() } } }) tipDialog.show(supportFragmentManager, "update") @@ -666,7 +670,7 @@ } ///显示定位描述弹窗 private fun showLocationDescDialog(sureCallback:()-> Unit) { private fun showLocationDescDialog(sureCallback: () -> Unit) { val rxPermissions = RxPermissions(this); if (!rxPermissions.isGranted(Manifest.permission.ACCESS_FINE_LOCATION)) { val tipDialog = TipDialog() app/src/main/java/com/igo/user/ui/mine/SettingActivity.kt
@@ -141,6 +141,7 @@ HttpManager.queryNewData().request(this){_,it-> dismissDialog() it?.run { if (isFinishing) return@run if (version > BuildConfig.VERSION_NAME) { val tipDialog = TipDialog() tipDialog.arguments = bundleOf("msg" to "有新版本可用,是否立即更新?") @@ -155,6 +156,13 @@ override fun onCancel() { } }) tipDialog.setDismissCallback(object : TipDialog.OnDismiss { override fun onDismiss() { if (isMustUpgrade()) { closeAll() } } }) tipDialog.show(supportFragmentManager,"update") } else myToast(getString(R.string.已经是最新版)) app/src/main/java/com/igo/user/utils/Const.kt
@@ -66,7 +66,7 @@ const val FRENCH = "fr" //汉语 const val CHINESE = "ch" const val CHINESE = "zh" //默认语言 const val DEFAULT_LANGUAGE = FRENCH xldutils-kotlin/src/main/java/cn/sinata/xldutils/activity/BaseActivity.kt
@@ -1,7 +1,9 @@ package cn.sinata.xldutils.activity import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.IntentFilter import android.content.pm.ActivityInfo import android.os.Build import android.os.Bundle @@ -11,6 +13,7 @@ import android.view.inputmethod.InputMethodManager import android.widget.EditText import androidx.appcompat.app.AppCompatActivity import androidx.localbroadcastmanager.content.LocalBroadcastManager import cn.sinata.xldutils.R import cn.sinata.xldutils.rxutils.RequestHelper import cn.sinata.xldutils.utils.LanguageUtil @@ -20,15 +23,17 @@ import io.reactivex.disposables.CompositeDisposable import io.reactivex.disposables.Disposable import org.jetbrains.anko.AnkoLogger import kotlin.system.exitProcess /** * 基础activity,包含设置默认强制竖屏显示,广播方式实现关闭全部继承自该activity,并注册了关闭广播的子类 * */ abstract class BaseActivity : AppCompatActivity(), AnkoLogger,RequestHelper { abstract class BaseActivity : AppCompatActivity(), AnkoLogger, RequestHelper { private lateinit var ACTION_CLOSE_ALL: String private val compositeDisposable = CompositeDisposable() //改用lazy初始,第一次使用时才会初始化 private val dialog: ProgressDialog by lazy { ProgressDialog(this, R.style.Theme_ProgressDialog) @@ -60,6 +65,10 @@ } ACTION_CLOSE_ALL = "cn.sinata.base.%s.all.close".format(packageName) System.err.println(ACTION_CLOSE_ALL) LocalBroadcastManager.getInstance(this).registerReceiver( closeSelfBroadcastReceiver, IntentFilter(ACTION_CLOSE_ALL) ) } override fun onRequestPermissionsResult( @@ -72,8 +81,11 @@ protected open fun closeAll() { val intent = Intent(ACTION_CLOSE_ALL) sendBroadcast(intent) LocalBroadcastManager.getInstance(this).sendBroadcast(intent) // android.os.Process.killProcess(android.os.Process.myPid()) // exitProcess(0) } protected var isTouchHide = true override fun dispatchTouchEvent(ev: MotionEvent): Boolean { @@ -93,12 +105,14 @@ return super.dispatchTouchEvent(ev) } } /** * 是否注册关闭全部的广播 */ protected fun isRegisterCloseBroadReceiver(): Boolean { return true } /** * 是否点击键盘以外的位置 * @@ -127,14 +141,15 @@ */ fun hideInputMethod() { (getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager) .hideSoftInputFromWindow( this.currentFocus!!.windowToken, InputMethodManager.HIDE_NOT_ALWAYS ) .hideSoftInputFromWindow( this.currentFocus!!.windowToken, InputMethodManager.HIDE_NOT_ALWAYS ) } override fun onDestroy() { super.onDestroy() LocalBroadcastManager.getInstance(this).unregisterReceiver(closeSelfBroadcastReceiver) if (!compositeDisposable.isDisposed) { compositeDisposable.dispose() } @@ -182,5 +197,11 @@ myToast(msg.toString()) } open fun gotoLogin(){} open fun gotoLogin() {} private val closeSelfBroadcastReceiver = object : BroadcastReceiver() { override fun onReceive(p0: Context?, p1: Intent?) { finish() } } } xldutils-kotlin/src/main/java/cn/sinata/xldutils/rxutils/Error.kt
@@ -7,19 +7,19 @@ */ object Error { val REQUEST_ERROR = when(SPUtils.instance().getString("language")){ "ch"->"请求出错!" "ch","zh"->"请求出错!" "fr"->"Erreur de demande" else->"Request Error" } val PARSER_ERROR = "Data Parse Error!" val NET_ERROR = when(SPUtils.instance().getString("language")){ "ch"->"网络异常,请检查您的网络状态!" "ch","zh"->"网络异常,请检查您的网络状态!" "fr"->"Le réseau est anormal, veuillez vérifier l\'état de votre réseau!" else->"The network is abnormal, please check your network status!" } val SERVER_ERROR = when(SPUtils.instance().getString("language")){ "ch"->"服务器异常,请稍后再试" "ch","zh"->"服务器异常,请稍后再试" "fr"->"Erreur de serveur, veuillez réessayer plus tard" else->"Server error, please retry later" } xldutils-kotlin/src/main/java/cn/sinata/xldutils/rxutils/ResultCommonSubscriber.kt
@@ -45,7 +45,7 @@ open fun onError(code: Int, msg: String) { if (msg == "TOKEN_INVALID"){ _showToast(when(SPUtils.instance().getString("language")){ "ch"->"您的身份已过期,请重新登录" "ch","zh"->"您的身份已过期,请重新登录" "fr"->"Votre identité a expiré, veuillez vous reconnecter" else->"Your identity has expired, please log in again" }) xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/LanguageUtil.java
@@ -11,8 +11,19 @@ import java.util.Locale; public class LanguageUtil { private static Locale getLocaleByLanguage(String language) { if (TextUtils.isEmpty(language)) { return Locale.FRENCH; } return switch (language) { case "zh", "ch" -> Locale.CHINESE; case "fr" -> Locale.FRENCH; default -> Locale.ENGLISH; }; } public static Context attachBaseContext(Context context, String language, String country) { Locale locale = new Locale(language); Locale locale = getLocaleByLanguage(language); Locale.setDefault(locale); Resources resources = context.getResources(); Configuration configuration = new Configuration(resources.getConfiguration()); @@ -39,7 +50,7 @@ if (TextUtils.isEmpty(newLanguage)) { return; } Locale locale = new Locale(newLanguage); Locale locale = getLocaleByLanguage(newLanguage); Locale.setDefault(locale); Resources resources = context.getResources(); Configuration configuration = new Configuration(resources.getConfiguration());