lmw
2023-04-18 43c9d4848414af54acec0d3a4fa34d7d77487dfa
修改隐私相关
5个文件已修改
6个文件已添加
326 ■■■■ 已修改文件
app/src/main/java/com/fuban/driver/base/MyApplication.kt 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/fuban/driver/base/gaode/gpsnav/util/TTSController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/fuban/driver/ui/main/MainActivity.kt 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/fuban/driver/ui/pub/StartActivity.kt 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/fuban/driver/utils/view/UserRuleDialog.kt 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/color/selector_white_orange.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/bg_white_8dp.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/selector_bg_btn_left.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/drawable/selector_bg_btn_right.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/activity_start.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/layout/dialog_user_rule.xml 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/fuban/driver/base/MyApplication.kt
@@ -407,6 +407,7 @@
    companion object {
        private const val TAG = "MyApplication"
        var canPlayVoice = false //进入主页才可以播放语言通知
        protected var mTtsManager: TTSController? = null
        public var isLogin: Boolean = true
@@ -508,7 +509,8 @@
        showNum--
        Handler(Looper.getMainLooper()).postDelayed({
            if (showNum == 0) {
                getTTsManager().setVideoText("福伴司机已置于后台,可能会导致听单异常,里程计费差异,请勿切换。")
                if (canPlayVoice)
                    getTTsManager().setVideoText("福伴司机已置于后台,可能会导致听单异常,里程计费差异,请勿切换。")
            }
        }, 600)
app/src/main/java/com/fuban/driver/base/gaode/gpsnav/util/TTSController.java
@@ -3,6 +3,7 @@
import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import com.amap.api.navi.AMapNaviListener;
import com.amap.api.navi.model.AMapCalcRouteResult;
@@ -102,6 +103,7 @@
    }
    public void init() {
        Log.e("mmp","初始化");
        if (systemTTS != null) {
            systemTTS.init();
        }
app/src/main/java/com/fuban/driver/ui/main/MainActivity.kt
@@ -56,6 +56,7 @@
    }
    override fun initView() {
        MyApplication.canPlayVoice = true
//        var packageName = "com.android.providers.downloads";
//        var intent =  Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
//    intent.setData(Uri.parse("package:" + packageName));
@@ -330,4 +331,8 @@
        }
    }
    override fun onDestroy() {
        super.onDestroy()
        MyApplication.canPlayVoice = false
    }
}
app/src/main/java/com/fuban/driver/ui/pub/StartActivity.kt
@@ -7,8 +7,8 @@
import android.webkit.WebSettings
import android.webkit.WebView
import androidx.core.app.ActivityCompat
import cn.sinata.xldutils.utils.clickDelay
import cn.sinata.xldutils.utils.textColor
import androidx.core.os.bundleOf
import cn.sinata.xldutils.utils.SPUtils
import com.fuban.driver.R
import com.fuban.driver.base.*
import com.fuban.driver.bean.AgreeBean
@@ -16,11 +16,9 @@
import com.fuban.driver.netUtls.callNet
import com.fuban.driver.netUtls.getMapByAny
import com.fuban.driver.netUtls.getToken
import com.fuban.driver.ui.DialogUtil
import com.fuban.driver.ui.main.MainActivity
import com.fuban.driver.utils.Cache.CacheKey
import kotlinx.android.synthetic.main.item_ys.view.*
import org.greenrobot.eventbus.EventBus
import com.fuban.driver.utils.view.UserRuleDialog
import org.jetbrains.anko.startActivity
class StartActivity : MyBaseActivity() {
@@ -36,7 +34,7 @@
    @SuppressLint("SourceLockedOrientationActivity")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        showYsDialog()
        checkPrivacy()
//        setRxpermiss()
    }
@@ -81,53 +79,45 @@
    override fun setOnclick() {
    }
    fun showYsDialog() {
    private var privacy = "" //隐私协议
    private var user = "" //用户协议
    fun checkPrivacy() {
        var isAgreen = CacheKey.getKeyStr("isAgreen")
        if (isAgreen.isEmpty()) {
            var dialog = DialogUtil.getDialog(this, R.layout.item_ys)
            var view = DialogUtil.getView(dialog)
            callys {
                setWebview(view.wv_content,it)
                privacy = it
                showPrivacyDialog()
            }
            view.tv_none.setOnClickListener {
                dialog.dismiss()
            }
            view.tv_agreet.clickDelay {
                CacheKey.putKeyStr("isAgreen", "1")
                dialog.dismiss()
                callLast()
            }
            view.tv_yx.clickDelay {
                view.tv_yx.textColor(this, R.color.white)
                view.tv_yh.textColor(this, R.color.main_yellow_qia)
                view.tv_yx.setBackgroundResource(R.drawable.bg_login_top_left)
                view.tv_yh.setBackgroundResource(R.drawable.bg_logion_top_right)
                callys {
                    setWebview(view.wv_content,it)
                }
            }
            view.tv_yh.clickDelay {
                view.tv_yx.textColor(this, R.color.main_yellow_qia)
                view.tv_yh.textColor(this, R.color.white)
                view.tv_yx.setBackgroundResource(R.drawable.bg_logion_top_left)
                view.tv_yh.setBackgroundResource(R.drawable.bg_login_top_left_select)
                callyh {
                    setWebview(view.wv_content,it)
                }
            }
            dialog.setOnDismissListener {
                if (CacheKey.getKeyStr("isAgreen").isEmpty())
                    finish()
            callyh {
                user = it
                showPrivacyDialog()
            }
        }else
            callLast()
    }
    private fun showPrivacyDialog(){
        if (privacy.isNotEmpty() && user.isNotEmpty()) {
            val userRuleDialog = UserRuleDialog()
            userRuleDialog.arguments = bundleOf("privacy" to privacy, "user" to user)
            userRuleDialog.setDismissCallback(object : UserRuleDialog.OnDismiss {
                override fun onDismiss() {
                    if (CacheKey.getKeyStr("isAgreen").isNullOrEmpty())
                        finish()
                    else
                        callLast()
                }
            })
            val ft = supportFragmentManager.beginTransaction()
            ft.add(userRuleDialog, "rule")
            ft.commitAllowingStateLoss()
        }
    }
    fun callys(ok: (s: String) -> Unit) {
        var map = getMapByAny()
        map["type"] = 1
        callNet(Api.queryByType, map) {
        callNet(false,Api.queryByType, map) {
            var data = gson.fromJson<AgreeBean>(it, AgreeBean::class.java)
            ok(data.data.content)
        }
@@ -136,7 +126,7 @@
    fun callyh(ok: (s: String) -> Unit) {
        var map = getMapByAny()
        map["type"] = 2
        callNet(Api.queryByType, map) {
        callNet(false,Api.queryByType, map) {
            var data = gson.fromJson<AgreeBean>(it, AgreeBean::class.java)
            ok(data.data.content)
        }
app/src/main/java/com/fuban/driver/utils/view/UserRuleDialog.kt
New file
@@ -0,0 +1,104 @@
package com.fuban.driver.utils.view
import android.content.Context
import android.content.DialogInterface
import android.os.Bundle
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.webkit.WebChromeClient
import android.webkit.WebSettings
import androidx.fragment.app.DialogFragment
import com.fuban.driver.R
import com.fuban.driver.utils.Cache.CacheKey
import kotlinx.android.synthetic.main.dialog_user_rule.*
import org.jetbrains.anko.displayMetrics
class UserRuleDialog: DialogFragment() {
    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? =
            inflater.inflate(R.layout.dialog_user_rule,container,false)
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setStyle(STYLE_NO_FRAME, R.style.FadeDialog)
    }
    private val privacy by lazy {
        arguments!!.getString("privacy")
    }
    private val user by lazy {
        arguments!!.getString("user")
    }
    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        dialog?.window?.setLayout((screenWidth()*0.88).toInt(), ViewGroup.LayoutParams.WRAP_CONTENT)
        dialog?.window?.setGravity(Gravity.CENTER)
        dialog?.setCanceledOnTouchOutside(false)
    }
    fun screenWidth():Int{
        val dm = requireActivity().displayMetrics
        requireActivity().windowManager.defaultDisplay.getMetrics(dm)
        return dm.widthPixels
    }
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        val settings = sc_content.settings
        settings.javaScriptEnabled = true
        settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK
        settings.javaScriptCanOpenWindowsAutomatically = true
        settings.builtInZoomControls = true
        settings.useWideViewPort = false //将图片调整到适合webview的大小
        settings.setSupportZoom(false) //支持缩放
        settings.supportMultipleWindows() //多窗口
        settings.loadWithOverviewMode = true // 页面支持缩放:
        settings.useWideViewPort = true //设置此属性,可任意比例缩放
        settings.defaultTextEncodingName = "utf-8"
        settings.domStorageEnabled = true
        settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK //关闭webview中缓存
        settings.allowFileAccess = true //设置可以访问文件
        settings.setNeedInitialFocus(true) //当webview调用requestFocus时为webview设置节点
        settings.javaScriptCanOpenWindowsAutomatically = true //支持通过JS打开新窗口
        settings.loadsImagesAutomatically = true //支持自动加载图片
        sc_content.isScrollContainer = false
        sc_content.isScrollbarFadingEnabled = false
        sc_content.scrollBarStyle = View.SCROLLBARS_OUTSIDE_OVERLAY
        sc_content.webChromeClient = object : WebChromeClient() {}
        val sHead =
            "<html><head><meta name=\"viewport\" content=\"width=device-width, " + "initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes\" />" + "<style>img{max-width:100% !important;height:auto !important;}</style>" + "<style>body{max-width:100% !important;}</style>" + "</head><body>"
        sc_content.loadDataWithBaseURL(null, sHead + privacy, "text/html", "utf-8", null)
        tv_cancel.setOnClickListener {
            dismiss()
        }
        rg_title.setOnCheckedChangeListener { _, i ->
            if (i == R.id.rb_privacy)
                sc_content.loadDataWithBaseURL(null, sHead + privacy, "text/html", "utf-8", null)
            else
                sc_content.loadDataWithBaseURL(null, sHead + user, "text/html", "utf-8", null)
        }
        tv_ok.setOnClickListener {
            CacheKey.putKeyStr("isAgreen", "1")
            dismiss()
        }
    }
    override fun onDismiss(dialog: DialogInterface) {
        super.onDismiss(dialog)
        dismissCallbak?.onDismiss()
    }
    interface OnDismiss{
        fun onDismiss()
    }
    private var dismissCallbak:OnDismiss? = null
    fun setDismissCallback(callback:OnDismiss){
        this.dismissCallbak = callback
    }
}
app/src/main/res/color/selector_white_orange.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/white" android:state_checked="true"/>
    <item android:color="@color/main_yellow_qia" android:state_checked="false"/>
</selector>
app/src/main/res/drawable/bg_white_8dp.xml
New file
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/white"/>
    <corners android:radius="8dp"/>
</shape>
app/src/main/res/drawable/selector_bg_btn_left.xml
New file
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true">
        <shape>
            <solid android:color="@color/main_yellow_qia"/>
            <corners android:topLeftRadius="8dp"/>
        </shape>
    </item>
    <item android:state_checked="false">
        <shape>
            <corners android:topLeftRadius="8dp"/>
            <stroke android:color="@color/main_yellow_qia" android:width="1dp"/>
        </shape>
    </item>
</selector>
app/src/main/res/drawable/selector_bg_btn_right.xml
New file
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true">
        <shape>
            <solid android:color="@color/main_yellow_qia"/>
            <corners android:topRightRadius="8dp"/>
        </shape>
    </item>
    <item android:state_checked="false">
        <shape>
            <corners android:topRightRadius="8dp"/>
            <stroke android:color="@color/main_yellow_qia" android:width="1dp"/>
        </shape>
    </item>
</selector>
app/src/main/res/layout/activity_start.xml
@@ -6,6 +6,7 @@
    android:layout_height="match_parent">
    <ImageView
        android:id="@+id/iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="parent"
app/src/main/res/layout/dialog_user_rule.xml
New file
@@ -0,0 +1,96 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="18dp"
    android:background="@drawable/bg_white_8dp">
    <RadioGroup
        android:id="@+id/rg_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintTop_toTopOf="parent">
        <RadioButton
            android:id="@+id/rb_privacy"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/selector_bg_btn_left"
            android:button="@null"
            android:checked="true"
            android:gravity="center"
            android:paddingTop="12dp"
            android:paddingBottom="12dp"
            android:text="隐私协议"
            android:textColor="@color/selector_white_orange"
            android:textSize="15sp" />
        <RadioButton
            android:id="@+id/rb_user"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/selector_bg_btn_right"
            android:button="@null"
            android:gravity="center"
            android:paddingTop="12dp"
            android:paddingBottom="12dp"
            android:text="用户协议"
            android:textColor="@color/selector_white_orange"
            android:textSize="15sp" />
    </RadioGroup>
    <WebView
        android:id="@+id/sc_content"
        android:layout_width="match_parent"
        android:layout_height="450dp"
        android:paddingStart="14dp"
        android:paddingEnd="14dp"
        app:layout_constraintTop_toBottomOf="@id/rg_title" />
    <androidx.constraintlayout.widget.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:id="@+id/center"
        app:layout_constraintGuide_percent="0.5" />
    <TextView
        android:id="@+id/tv_cancel"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="不同意并退出"
        android:textColor="@color/textColorHint"
        android:textSize="14sp"
        android:background="@drawable/bg_login_left_back"
        app:layout_constraintEnd_toStartOf="@id/center"
        app:layout_constraintStart_toStartOf="parent"
        android:paddingTop="9dp"
        android:paddingBottom="9dp"
        android:layout_marginStart="20dp"
        android:layout_marginEnd="4dp"
        android:layout_marginTop="20dp"
        app:layout_constraintTop_toBottomOf="@id/sc_content" />
    <TextView
        android:id="@+id/tv_ok"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="同意"
        android:textColor="@color/white"
        android:textSize="14sp"
        android:layout_marginStart="4dp"
        android:layout_marginEnd="20dp"
        android:textStyle="bold"
        android:paddingTop="9dp"
        android:paddingBottom="9dp"
        android:background="@drawable/bg_right_login_agreen"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@id/center"
        app:layout_constraintTop_toTopOf="@id/tv_cancel" />
</androidx.constraintlayout.widget.ConstraintLayout>