提交 5bb41904 编写于 作者: F fancy

调整极光记载机制

上级 f68a1e98
......@@ -278,7 +278,7 @@ dependencies {
implementation 'io.reactivex:rxjava:1.1.6'
implementation 'io.reactivex:rxandroid:1.2.1'
implementation 'com.tencent.bugly:crashreport:2.6.6'
// implementation 'com.tencent.bugly:crashreport:2.6.6'
/////////////////////////////////////////////////推送///////////////////////
implementation project(':jiguang')
......
......@@ -5,9 +5,9 @@ import android.content.pm.PackageManager
import android.util.Log
import androidx.multidex.MultiDex
import androidx.multidex.MultiDexApplication
import cn.jiguang.api.utils.JCollectionAuth
import cn.jpush.android.api.JPushInterface
import com.baidu.mapapi.SDKInitializer
import com.tencent.bugly.crashreport.CrashReport
import com.tencent.smtt.export.external.TbsCoreSettings
import com.tencent.smtt.sdk.QbSdk
import com.tencent.smtt.sdk.TbsListener
......@@ -15,9 +15,11 @@ import com.zlw.main.recorderlib.RecordManager
import io.realm.Realm
import net.muliba.changeskin.FancySkinManager
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.model.skin.*
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.AndroidUtils
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.LogSingletonService
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.O2MediaPlayerManager
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.XLog
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.extension.edit
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.tbs.WordReadHelper
......@@ -68,10 +70,13 @@ class O2App : MultiDexApplication() {
//baidu
try {
//注册日志记录器
LogSingletonService.instance().registerApp(this)
SDKInitializer.setAgreePrivacy(this, true)
SDKInitializer.initialize(applicationContext)
//bugly
CrashReport.initCrashReport(applicationContext)
// CrashReport.initCrashReport(applicationContext)
// initTBS()
WordReadHelper.init(this);
//极光推送
......@@ -79,8 +84,6 @@ class O2App : MultiDexApplication() {
//播放器
O2MediaPlayerManager.instance().init(this)
// Fresco.initialize(this)
//注册日志记录器
LogSingletonService.instance().registerApp(this)
//录音
RecordManager.getInstance().init(this, false)
......@@ -159,8 +162,28 @@ class O2App : MultiDexApplication() {
private fun initJMessageAndJPush() {
JPushInterface.init(this)
if (BuildConfig.InnerServer) {
JCollectionAuth.setAuth(this, true)
JPushInterface.init(this)
} else {
val isAgree = O2SDKManager.instance().prefs().getBoolean(O2.PRE_APP_PRIVACY_AGREE_KEY, false)
XLog.debug("init jpush isagree: $isAgree")
// if (isAgree) {
if (!(AndroidUtils.isHuaweiChannel(this) && !isAgree )) {
JPushInterface.init(this)
}
}
}
fun agreePrivacyAndInitJpush(isAgree: Boolean) {
XLog.debug("setup jpush isagree: $isAgree")
JCollectionAuth.setAuth(this, isAgree)
if (isAgree) {
JPushInterface.init(this)
}
O2SDKManager.instance().prefs().edit {
putBoolean(O2.PRE_APP_PRIVACY_AGREE_KEY, isAgree)
}
}
fun addNotification(nId: Int) {
......@@ -177,6 +200,8 @@ class O2App : MultiDexApplication() {
XLog.info("清除通知:$it")
}
}
// 清除通知 清除角标 这句写了好像角标不会再出现了
JPushInterface.setBadgeNumber(this, 0)
} catch (e: Exception) {
XLog.error("", e)
}
......
......@@ -16,6 +16,7 @@ import com.xiaomi.push.it
import kotlinx.android.synthetic.main.fragment_fluid_login_phone.*
import net.muliba.changeskin.FancySkinManager
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.O2
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.O2App
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.O2SDKManager
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.R
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.base.BaseMVPFragment
......@@ -77,7 +78,18 @@ class FirstStepFragment : BaseMVPFragment<FirstStepContract.View, FirstStepContr
// 华为需要同意协议
if (AndroidUtils.isHuaweiChannel(activity)) {
ll_fluid_login_agree_bar.visible()
openPrivacyDialog()
// openPrivacyDialog()
val pd = PrivacyDialogFragment()
pd.setOnClickBtnListener(object : PrivacyDialogFragment.OnClickBtnListener {
override fun onclick(isAgree: Boolean) {
if (isAgree) {
radio_fluid_login_agree.isChecked = true
} else {
activity?.finish()
}
}
})
pd.show(activity!!.supportFragmentManager, "privacy")
}
}
......@@ -128,8 +140,10 @@ class FirstStepFragment : BaseMVPFragment<FirstStepContract.View, FirstStepContr
activity?.let {
val dialog = O2DialogSupport.openCustomViewDialog(it, getString(R.string.user_privacy_dialog_title),getString(R.string.user_privacy_dialog_agree_btn), getString(R.string.user_privacy_dialog_disagree_btn), R.layout.dialog_user_privacy_secret, { _ ->
radio_fluid_login_agree.isChecked = true
O2App.instance.agreePrivacyAndInitJpush(true)
}, { _ ->
XLog.error("不同意隐私政策!!!!!")
O2App.instance.agreePrivacyAndInitJpush(false)
})
val f = dialog.findViewById<TextView>(R.id.tv_dialog_user_privacy_second)
val style = SpannableStringBuilder()
......@@ -175,8 +189,8 @@ class FirstStepFragment : BaseMVPFragment<FirstStepContract.View, FirstStepContr
unit.centerContext = "/x_program_center"
unit.httpProtocol = "https"
//绑定成功写入本地存储
O2SDKManager.instance().bindUnit(unit, phone, (activity as BindPhoneActivity).loadDeviceId())
APIAddressHelper.instance().setHttpProtocol(unit.httpProtocol)
O2SDKManager.instance().bindUnit(unit, phone, (activity as BindPhoneActivity).loadDeviceId())
val url = APIAddressHelper.instance().getCenterUrl(unit.centerHost,
unit.centerContext, unit.centerPort)
XLog.debug(url)
......
package net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.o2.bind
import android.os.Bundle
import android.text.Spannable
import android.text.SpannableStringBuilder
import android.text.method.LinkMovementMethod
import android.text.style.ClickableSpan
import android.text.style.ForegroundColorSpan
import android.view.*
import androidx.fragment.app.DialogFragment
import kotlinx.android.synthetic.main.dialog_fragment_privacy.*
import net.muliba.changeskin.FancySkinManager
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.O2App
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.R
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.o2.webview.O2WebViewActivity
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.XLog
/**
* Created by fancyLou on 2022-10-08.
* Copyright © 2022 o2android. All rights reserved.
*/
class PrivacyDialogFragment: DialogFragment() {
interface OnClickBtnListener {
fun onclick(isAgree: Boolean)
}
private var onClickBtnListener: OnClickBtnListener? = null
fun setOnClickBtnListener(listener: OnClickBtnListener) {
this.onClickBtnListener = listener
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
isCancelable = false
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
dialog?.requestWindowFeature(Window.FEATURE_NO_TITLE)
val dWin = dialog?.window
dWin?.setDimAmount(0.8f)
val lp = dWin?.attributes
lp?.gravity = Gravity.CENTER
dWin?.attributes = lp
return inflater.inflate(R.layout.dialog_fragment_privacy, container, false)
}
override fun onStart() {
super.onStart()
dialog?.window?.setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
dialog?.window?.setBackgroundDrawable(null)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val style = SpannableStringBuilder()
//设置文字
val text = getString(R.string.user_privacy_dialog_2)
style.append(text)
// 《用户协议》 点击
val clickableSpan = object : ClickableSpan() {
override fun onClick(widget: View) {
XLog.debug("点击了 用户协议")
openUserPrivacy()
}
}
style.setSpan(clickableSpan, 10, 16, Spannable.SPAN_INCLUSIVE_EXCLUSIVE)
val foregroundColorSpan = ForegroundColorSpan(FancySkinManager.instance().getColor(view.context, R.color.z_color_primary_blue))
style.setSpan(foregroundColorSpan, 10, 16, Spannable.SPAN_INCLUSIVE_EXCLUSIVE)
// 《隐私政策》
val clickableSpan2 = object : ClickableSpan() {
override fun onClick(widget: View) {
XLog.debug("点击了 隐私政策")
openSecret()
}
}
style.setSpan(clickableSpan2, 17, 23, Spannable.SPAN_INCLUSIVE_EXCLUSIVE)
style.setSpan(foregroundColorSpan, 17, 23, Spannable.SPAN_INCLUSIVE_EXCLUSIVE)
tv_dialog_user_privacy_second.text = style
tv_dialog_user_privacy_second.movementMethod = LinkMovementMethod.getInstance()
btn_o2_dialog_negative.setOnClickListener {
O2App.instance.agreePrivacyAndInitJpush(false)
onClickBtnListener?.onclick(false)
dismissAllowingStateLoss()
}
btn_o2_dialog_positive.setOnClickListener {
O2App.instance.agreePrivacyAndInitJpush(true)
onClickBtnListener?.onclick(true)
dismissAllowingStateLoss()
}
}
private fun openSecret() {
activity?.let {
O2WebViewActivity.openWebView(it, getString(R.string.secret), "https://www.o2oa.net/secret.html")
}
}
private fun openUserPrivacy() {
activity?.let {
O2WebViewActivity.openWebView(it, getString(R.string.user_service), "https://www.o2oa.net/userService.html")
}
}
}
\ No newline at end of file
......@@ -150,22 +150,23 @@ class LaunchActivity : BaseMVPActivity<LaunchContract.View, LaunchContract.Prese
if (CheckRoot.isDeviceRooted()) {
O2DialogSupport.openAlertDialog(this, getString(R.string.dialog_msg_root_refuse))
}else {
PermissionRequester(this)
.request(Manifest.permission.READ_EXTERNAL_STORAGE).o2Subscribe {
onNext { (granted, shouldShowRequestPermissionRationale, deniedPermissions) ->
Log.d("LaunchActivity", "granted:$granted, show:$shouldShowRequestPermissionRationale, deniedList:$deniedPermissions")
// 关闭存储权限控制
// if (!granted) {
// //O2DialogSupport.openAlertDialog(this@LaunchActivity, getString(R.string.dialog_msg_go_to_set_storage_permission), { permissionSetting() })
// } else {
// checkNetwork()
// }
checkNetwork()
}
onError { e, _ ->
Log.e("LaunchActivity", "检查权限出错", e)
}
}
checkNetwork()
// PermissionRequester(this)
// .request(Manifest.permission.READ_EXTERNAL_STORAGE).o2Subscribe {
// onNext { (granted, shouldShowRequestPermissionRationale, deniedPermissions) ->
// Log.d("LaunchActivity", "granted:$granted, show:$shouldShowRequestPermissionRationale, deniedList:$deniedPermissions")
// // 关闭存储权限控制
//// if (!granted) {
//// //O2DialogSupport.openAlertDialog(this@LaunchActivity, getString(R.string.dialog_msg_go_to_set_storage_permission), { permissionSetting() })
//// } else {
//// checkNetwork()
//// }
// checkNetwork()
// }
// onError { e, _ ->
// Log.e("LaunchActivity", "检查权限出错", e)
// }
// }
}
}
......
package net.zoneland.x.bpm.mobile.v1.zoneXBPM.app.o2.main
import android.Manifest
import android.annotation.TargetApi
import android.app.job.JobInfo
import android.app.job.JobScheduler
......@@ -9,6 +10,7 @@ import android.os.Bundle
import android.os.IBinder
import android.text.TextUtils
import android.util.DisplayMetrics
import android.util.Log
import android.view.KeyEvent
import android.view.View
import androidx.fragment.app.Fragment
......@@ -29,10 +31,8 @@ import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.BitmapUtil
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.DateHelper
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.O2DoubleClickExit
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.XLog
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.extension.addOnPageChangeListener
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.extension.edit
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.extension.gone
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.extension.visible
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.extension.*
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.permission.PermissionRequester
import net.zoneland.x.bpm.mobile.v1.zoneXBPM.utils.tbs.WordReadHelper
import org.jetbrains.anko.doAsync
......@@ -172,6 +172,16 @@ class MainActivity : BaseMVPActivity<MainContract.View, MainContract.Presenter>(
// 检测网盘是否存在V3版本
mPresenter.checkCloudFileV3()
// 权限
PermissionRequester(this)
.request(Manifest.permission.READ_EXTERNAL_STORAGE).o2Subscribe {
onNext { (granted, shouldShowRequestPermissionRationale, deniedPermissions) ->
Log.d("LaunchActivity", "granted:$granted, show:$shouldShowRequestPermissionRationale, deniedList:$deniedPermissions")
}
onError { e, _ ->
Log.e("LaunchActivity", "检查权限出错", e)
}
}
}
......@@ -200,8 +210,7 @@ class MainActivity : BaseMVPActivity<MainContract.View, MainContract.Presenter>(
}
}
// 清除通知 清除角标 这句写了好像角标不会再出现了
// JPushInterface.setBadgeNumber(this, 0)
XLog.info("onResume ... 清除通知!!")
O2App.instance.clearAllNotification()
......
......@@ -39,7 +39,7 @@ object AndroidUtils {
* 读取当前渠道
* 是否华为
*/
fun isHuaweiChannel(activity: Activity?) : Boolean {
fun isHuaweiChannel(activity: Context?) : Boolean {
var value = ""
value = try {
if (TextUtils.isEmpty(activity?.packageName)) {
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@null"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.cardview.widget.CardView
android:orientation="vertical"
android:layout_width="275dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_height="255dp"
android:layout_margin="0dp"
app:cardBackgroundColor="@android:color/white"
app:cardPreventCornerOverlap="false"
app:cardUseCompatPadding="false"
app:cardElevation="0dp"
app:contentPadding="0dp"
app:cardCornerRadius="15dp">
<LinearLayout
android:id="@+id/rl_record_voice_box"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:layout_width="275dp"
android:layout_height="50dp">
<ImageView
android:layout_width="275dp"
android:layout_height="50dp"
android:scaleType="fitXY"
android:src="@mipmap/alert_o2_custom" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:textColor="@android:color/white"
android:textSize="18sp"
android:text="@string/user_privacy_dialog_title" />
</FrameLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="10dp">
<LinearLayout
android:id="@+id/linear_o2_dialog_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tv_dialog_user_privacy_first"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:text="@string/user_privacy_dialog_1"
/>
<TextView
android:id="@+id/tv_dialog_user_privacy_second"
android:layout_marginTop="@dimen/spacing_small"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@+id/tv_dialog_user_privacy_first"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:text="@string/user_privacy_dialog_2"
/>
</LinearLayout>
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="44dp"
android:layout_marginBottom="10dp"
android:orientation="horizontal">
<Button
android:id="@+id/btn_o2_dialog_negative"
android:layout_width="110dp"
android:layout_height="44dp"
android:layout_marginStart="20dp"
android:background="@drawable/button_background_44dp"
android:text="@string/cancel"
android:textColor="@color/z_color_text_primary"
android:textSize="18sp" />
<Button
android:id="@+id/btn_o2_dialog_positive"
android:layout_width="110dp"
android:layout_height="44dp"
android:layout_marginStart="15dp"
android:layout_marginEnd="20dp"
android:background="@drawable/button_background_44dp"
android:text="@string/positive"
android:textColor="@android:color/white"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -5,7 +5,7 @@
android:orientation="vertical"
android:layout_width="275dp"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:layout_height="255dp"
android:layout_margin="0dp"
app:cardBackgroundColor="@android:color/white"
app:cardPreventCornerOverlap="false"
......@@ -16,7 +16,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:layout_width="275dp"
......@@ -41,10 +41,11 @@
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="14dp">
android:layout_marginTop="10dp">
<LinearLayout
android:id="@+id/linear_o2_dialog_content"
android:layout_width="match_parent"
......@@ -55,9 +56,9 @@
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="30dp"
android:layout_marginTop="30dp"
android:layout_height="50dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<Button
......
......@@ -34,7 +34,7 @@
android:layout_marginStart="@dimen/spacing_normal"
android:layout_marginEnd="@dimen/spacing_normal"
android:background="@drawable/background_white_radius_10"
android:visibility="visible"
android:visibility="gone"
android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout
......
......@@ -23,8 +23,8 @@ android.enableJetifier=true
# o2
o2.versionName=6.4.4
o2.versionCode=194
o2.versionName=6.4.6
o2.versionCode=196
# 第三方
......
......@@ -156,6 +156,8 @@ object O2 {
val PRE_MEETING_CONFIG_KEY = "PRE_MEETING_CONFIG_KEY" // 会议配置数据的key
val PRE_APP_PRIVACY_AGREE_KEY = "PRE_APP_PRIVACY_AGREE_KEY" // 是否同意隐私政策
val BUSINESS_TYPE_MESSAGE_CENTER = 0//信息中心
val BUSINESS_TYPE_WORK_CENTER = 1//工作中心
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册