[Modify]1.5.2代码合并
This commit is contained in:
2
app/proguard-rules.pro
vendored
2
app/proguard-rules.pro
vendored
@@ -488,4 +488,4 @@
|
||||
-keep public class com.adjust.sdk.**{ *; }
|
||||
-keep public class com.android.installreferrer.**{ *; }
|
||||
-keep class com.sec.android.app.samsungapps.installreferrer.**{ *; }
|
||||
-keep class com.miui.referrer:homereferrer.** { *; }
|
||||
-keep class com.miui.referrer.** {*;}
|
@@ -165,7 +165,7 @@ class MeFragment : BaseFragment(), View.OnClickListener {
|
||||
mBinding.flVipSeek.isVisible = true
|
||||
mBinding.ivVipIcon.load(it.vipIcon)
|
||||
mBinding.tvVipDesc.text =
|
||||
"${getString(R.string.me_short)}${RoomRankDialogUtils.getRoomRankValueText(it.levelUpScore)}${
|
||||
"${getString(R.string.me_short)}${RoomRankDialogUtils.getRoomRankValueText(it.levelUpScore - it.currScore)}${
|
||||
getString(R.string.me_power_value_escalation)
|
||||
}"
|
||||
mBinding.tvVipName.text = it.vipName
|
||||
|
@@ -11,6 +11,7 @@ import android.widget.RadioButton;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.adjust.sdk.Adjust;
|
||||
import com.google.android.material.textfield.TextInputEditText;
|
||||
import com.google.firebase.analytics.FirebaseAnalytics;
|
||||
import com.sleepbot.datetimepicker.time.RadialPickerLayout;
|
||||
@@ -208,7 +209,8 @@ public class AddUserInfoFragment extends BaseFragment
|
||||
}
|
||||
INVITE_USER_CODE = shareCode;
|
||||
String finalChannel = channel;
|
||||
UserModel.get().requestCompleteUserInfo(userInfo, channel, uid, roomUid, shareCode)
|
||||
String adid = Adjust.getAdid();
|
||||
UserModel.get().requestCompleteUserInfo(userInfo, channel, uid, roomUid, shareCode, adid)
|
||||
.compose(bindUntilEvent(FragmentEvent.DESTROY))
|
||||
.subscribe(new SingleObserver<UserInfo>() {
|
||||
@Override
|
||||
|
118
app/src/main/java/com/yizhuan/erban/utils/DeviceUtil.kt
Normal file
118
app/src/main/java/com/yizhuan/erban/utils/DeviceUtil.kt
Normal file
@@ -0,0 +1,118 @@
|
||||
package com.yizhuan.erban.utils
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Looper
|
||||
import android.provider.Settings
|
||||
import android.text.TextUtils
|
||||
import androidx.annotation.WorkerThread
|
||||
import com.google.android.gms.ads.identifier.AdvertisingIdClient
|
||||
import com.yizhuan.xchat_android_library.common.application.BaseApp
|
||||
import com.yizhuan.xchat_android_library.common.util.Logger
|
||||
import com.yizhuan.xchat_android_library.common.util.SPUtils
|
||||
import java.io.IOException
|
||||
|
||||
/**
|
||||
* create by wushaocheng 2023/2/15
|
||||
* 获取设备id
|
||||
*/
|
||||
object DeviceUtil {
|
||||
|
||||
private const val TAG = "DeviceManager"
|
||||
private const val ANDROID_ID_KEY = "android_id"
|
||||
|
||||
@Volatile
|
||||
private var ANDROID_ID = ""
|
||||
|
||||
@Volatile
|
||||
private var GAID = ""
|
||||
|
||||
/**
|
||||
* @return 获取系统id
|
||||
*/
|
||||
@SuppressLint("HardwareIds")
|
||||
fun getAndroidID(): String {
|
||||
if (!TextUtils.isEmpty(ANDROID_ID)) {
|
||||
Logger.info(TAG, "getAndroidID from cache, ANDROID_ID=$ANDROID_ID")
|
||||
return ANDROID_ID
|
||||
}
|
||||
ANDROID_ID = SPUtils.getString(ANDROID_ID_KEY, "")
|
||||
if (!TextUtils.isEmpty(ANDROID_ID)) {
|
||||
Logger.info(TAG, "getAndroidID from SP, ANDROID_ID=$ANDROID_ID")
|
||||
return ANDROID_ID
|
||||
}
|
||||
ANDROID_ID = Settings.Secure.getString(
|
||||
BaseApp.getContext().contentResolver,
|
||||
Settings.Secure.ANDROID_ID
|
||||
)
|
||||
Logger.info(TAG, "getAndroidID from system, ANDROID_ID=$ANDROID_ID")
|
||||
SPUtils.putString(ANDROID_ID_KEY, ANDROID_ID)
|
||||
return ANDROID_ID
|
||||
}
|
||||
|
||||
/**
|
||||
* 请求广告id,注意调用该方法时只能运行在子线程中不能够用在UI线程中,跟设备是否有Google Play Service有关。
|
||||
*/
|
||||
@WorkerThread
|
||||
fun requestGAID() {
|
||||
if (Looper.myLooper() == Looper.getMainLooper()) {
|
||||
//避免在主线程中操作引起ANR问题
|
||||
Logger.warn(
|
||||
TAG,
|
||||
"requestGAID method must called on work thread instead of UI thread!!!"
|
||||
)
|
||||
return
|
||||
}
|
||||
try {
|
||||
//以下代码会阻塞当前线程,所以不能在UI线程中使用,避免出现ANR问题,参考:https://developers.google.com/android/reference/com/google/android/gms/ads/identifier/AdvertisingIdClient#public-static-advertisingidclient.info-getadvertisingidinfo-context-context
|
||||
val info: AdvertisingIdClient.Info =
|
||||
AdvertisingIdClient.getAdvertisingIdInfo(
|
||||
BaseApp.getContext()
|
||||
)
|
||||
val isLimitAdTrackingEnabled: Boolean = info.isLimitAdTrackingEnabled
|
||||
Logger.info(
|
||||
TAG,
|
||||
"requestGAID isLimitAdTrackingEnabled=$isLimitAdTrackingEnabled"
|
||||
)
|
||||
if (!isLimitAdTrackingEnabled) {
|
||||
GAID = info.id.toString()
|
||||
Logger.info(TAG, "requestGAID from system, GAID=$GAID")
|
||||
}
|
||||
} catch (e: IOException) {
|
||||
Logger.error(
|
||||
TAG,
|
||||
"requestGAID IOException",
|
||||
e
|
||||
)
|
||||
} catch (e: IllegalStateException) {
|
||||
Logger.error(
|
||||
TAG,
|
||||
"requestGAID IllegalStateException",
|
||||
e
|
||||
)
|
||||
} catch (e: com.google.android.gms.common.GooglePlayServicesNotAvailableException) {
|
||||
Logger.error(
|
||||
TAG,
|
||||
"requestGAID GooglePlayServicesNotAvailableException",
|
||||
e
|
||||
)
|
||||
} catch (e: com.google.android.gms.common.GooglePlayServicesRepairableException) {
|
||||
Logger.error(
|
||||
TAG,
|
||||
"requestGAID GooglePlayServicesRepairableException",
|
||||
e
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return 获取广告id
|
||||
*/
|
||||
fun getGAID(): String {
|
||||
Logger.info(
|
||||
TAG,
|
||||
"getGAID from cache, GAID=$GAID"
|
||||
)
|
||||
return GAID
|
||||
}
|
||||
|
||||
}
|
@@ -27,19 +27,12 @@ import io.reactivex.Single;
|
||||
|
||||
public interface IUserModel extends IModel {
|
||||
|
||||
/**
|
||||
* 信息不全登录后调
|
||||
*
|
||||
* @param userInfo
|
||||
*/
|
||||
public void requestCompleteUserInfo(UserInfo userInfo, String shareChannel, String shareUid, String roomUid);
|
||||
|
||||
/**
|
||||
* 信息不全登录,增加了邀请码
|
||||
*
|
||||
* @param userInfo
|
||||
*/
|
||||
public Single<UserInfo> requestCompleteUserInfo(UserInfo userInfo, String shareChannel, String shareUid, String roomUid, String shareCode);
|
||||
public Single<UserInfo> requestCompleteUserInfo(UserInfo userInfo, String shareChannel, String shareUid, String roomUid, String shareCode, String adid);
|
||||
|
||||
|
||||
/**
|
||||
|
@@ -346,13 +346,6 @@ public final class UserModel extends BaseModel implements IUserModel {
|
||||
.compose(RxHelper.handleSchedulers());
|
||||
}
|
||||
|
||||
|
||||
//此方法兼容其他端,其他端最好改为 return Single的同名方法
|
||||
@Override
|
||||
public void requestCompleteUserInfo(final UserInfo userInfo, String shareChannel, String shareUid, String roomUid) {
|
||||
requestCompleteUserInfo(userInfo, shareChannel, shareUid, roomUid, null).subscribe();
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户补全资料
|
||||
*
|
||||
@@ -362,7 +355,7 @@ public final class UserModel extends BaseModel implements IUserModel {
|
||||
* @param roomUid
|
||||
*/
|
||||
@Override
|
||||
public Single<UserInfo> requestCompleteUserInfo(final UserInfo userInfo, String shareChannel, String shareUid, String roomUid, String inviteCode) {
|
||||
public Single<UserInfo> requestCompleteUserInfo(final UserInfo userInfo, String shareChannel, String shareUid, String roomUid, String inviteCode, String adid) {
|
||||
|
||||
if (StringUtils.isEmpty(String.valueOf(userInfo.getUid()))) {
|
||||
return Single.error(new Throwable(ResUtil.getString(R.string.xchat_android_core_user_usermodel_08)));
|
||||
@@ -416,7 +409,8 @@ public final class UserModel extends BaseModel implements IUserModel {
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
inviteCode
|
||||
inviteCode,
|
||||
adid
|
||||
)
|
||||
.compose(RxHelper.handleBeanData())
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
@@ -502,7 +496,8 @@ public final class UserModel extends BaseModel implements IUserModel {
|
||||
region,
|
||||
userDesc,
|
||||
null,
|
||||
null
|
||||
null,
|
||||
""
|
||||
)
|
||||
.compose(RxHelper.handleBeanData())
|
||||
.compose(RxHelper.handleSchedulers())
|
||||
@@ -910,23 +905,8 @@ public final class UserModel extends BaseModel implements IUserModel {
|
||||
@Field("region") String region,
|
||||
@Field("userDesc") String userDesc,
|
||||
@Field("shareCode") String shareCode,
|
||||
@Field("inviteCode") String inviteCode);
|
||||
|
||||
/**
|
||||
* @param ticket
|
||||
* @param uid
|
||||
* @param nick
|
||||
* @param avatar
|
||||
* @param gender
|
||||
* @return
|
||||
*/
|
||||
@FormUrlEncoded
|
||||
@POST("user/v2/update")
|
||||
Single<ServiceResult<UserInfo>> updateUserInfo(@Field("ticket") String ticket,
|
||||
@Field("uid") long uid,
|
||||
@Field("nick") String nick,
|
||||
@Field("avatar") String avatar,
|
||||
@Field("gender") int gender);
|
||||
@Field("inviteCode") String inviteCode,
|
||||
@Field("adid") String adid);
|
||||
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user