Browse Source

调整项目相关配置

zk 1 year ago
parent
commit
f7a800f043

+ 22 - 20
app/build.gradle

@@ -37,30 +37,30 @@ android {
     }
 
     signingConfigs {
-        debug {
-            storeFile file("keystore/atmob.keystore")
-            storePassword "atmob888"
-            keyAlias "atmob"
-            keyPassword "atmob888"
-        }
-        release {
-            storeFile file("keystore/atmob.keystore")
-            storePassword "atmob888"
-            keyAlias "atmob"
-            keyPassword "atmob888"
-        }
 //        debug {
-//            storeFile file("keystore/voiceAI.jks")
-//            storePassword "voice888"
-//            keyAlias "voice"
-//            keyPassword "voice888"
+//            storeFile file("keystore/atmob.keystore")
+//            storePassword "atmob888"
+//            keyAlias "atmob"
+//            keyPassword "atmob888"
 //        }
 //        release {
-//            storeFile file("keystore/voiceAI.jks")
-//            storePassword "voice888"
-//            keyAlias "voice"
-//            keyPassword "voice888"
+//            storeFile file("keystore/atmob.keystore")
+//            storePassword "atmob888"
+//            keyAlias "atmob"
+//            keyPassword "atmob888"
 //        }
+        debug {
+            storeFile file("keystore/voiceAI.jks")
+            storePassword "voice888"
+            keyAlias "voice"
+            keyPassword "voice888"
+        }
+        release {
+            storeFile file("keystore/voiceAI.jks")
+            storePassword "voice888"
+            keyAlias "voice"
+            keyPassword "voice888"
+        }
     }
 
 
@@ -212,6 +212,8 @@ dependencies {
     //google结算库
     implementation "com.android.billingclient:billing:$rootProject.billing_version"
 
+    //设备检查
+    implementation "extra.common:checker:1.2.1-SNAPSHOT"
 
     //Kochava
     dependencies {

+ 16 - 1
app/src/main/java/com/atmob/voiceai/App.java

@@ -4,7 +4,10 @@ import android.content.Context;
 
 import com.atmob.app.lib.base.BaseApplication;
 import com.atmob.user.AtmobUser;
+import com.atmob.voiceai.sdk.atmob.checker.AtmobCheckerHelper;
 import com.atmob.voiceai.sdk.billing.GPBillingClient;
+import com.atmob.voiceai.sdk.firebase.FirebaseHelper;
+import com.atmob.voiceai.sdk.kochava.KochavaHelper;
 import com.atmob.voiceai.utils.ToastUtil;
 
 import java.util.Objects;
@@ -17,7 +20,8 @@ import dagger.hilt.android.HiltAndroidApp;
 @HiltAndroidApp
 public class App extends BaseApplication {
 
-
+    @Inject
+    FirebaseHelper firebaseHelper;
     @Inject
     GPBillingClient gpBillingClient;
 
@@ -75,11 +79,22 @@ public class App extends BaseApplication {
 
     @Override
     protected void initCommon(boolean b) {
+        initKochava();
+        initChecker();
+    }
 
+    private void initChecker() {
+        AtmobCheckerHelper.init(this);
+    }
+
+    private void initKochava() {
+        KochavaHelper.init(this, firebaseHelper);
     }
 
     @Override
     public void initAfterGrant(boolean b) {
 
     }
+
+
 }

+ 5 - 0
app/src/main/java/com/atmob/voiceai/data/consts/Constants.java

@@ -13,4 +13,9 @@ public class Constants {
     public static final String SEND_EMAIL_ADDRESS = "matanetworktech@gmail.com";
 
 
+    //是否开启设备检查策略
+    // 发布需修改为 true
+    // 是 开启
+    // 否 不检查
+    public static final boolean isOpenDeviceCheckPolicy = true;
 }

+ 94 - 0
app/src/main/java/com/atmob/voiceai/sdk/atmob/checker/AtmobCheckerHelper.java

@@ -0,0 +1,94 @@
+package com.atmob.voiceai.sdk.atmob.checker;
+
+import android.app.Application;
+import android.content.Context;
+import android.content.SharedPreferences;
+
+import androidx.annotation.NonNull;
+
+import com.atmob.checker.AtmobCheckCallback;
+import com.atmob.checker.AtmobChecker;
+import com.atmob.checker.AtmobCheckerConfig;
+import com.atmob.checker.AtmobCheckerSdk;
+import com.atmob.common.logging.AtmobLog;
+import com.atmob.common.runtime.ContextUtil;
+import com.atmob.user.AtmobUser;
+import com.atmob.voiceai.BuildConfig;
+import com.atmob.voiceai.data.consts.Constants;
+import com.atmob.voiceai.sdk.kochava.KochavaHelper;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+
+public class AtmobCheckerHelper {
+
+    private static final String TAG = "AtmobCheckerHelper";
+
+    private static final String KEY_ATMOB_CHECKER_RISK_LEVEL = "atmob_checker_risk_level";
+    private static final AtomicBoolean isInit = new AtomicBoolean(false);
+    private static Integer lastRiskLevel;
+
+    public static boolean isInit() {
+        return isInit.get();
+    }
+
+    public static void init(Context applicationContext) {
+        if (!isInit.compareAndSet(false, true)) {
+            return;
+        }
+        AtmobCheckerSdk.preInit(applicationContext, new AtmobCheckerConfig.Builder()
+                .setDebug(BuildConfig.DEBUG)
+                .setChannelName(AtmobUser.getAtmobChannel())
+                .setHostUrl(Constants.Atmob_Server_Base_URL)
+                .setAttributionInfoProvider(attributionInfoCallback ->
+                        KochavaHelper.registerAttributionResultCallback(attributionInfoCallback::onAttributionInfoReceived))
+                .build());
+        AtmobCheckerSdk.initAfterGrantedAgreement();
+
+        SharedPreferences sharedPreferences = applicationContext.getSharedPreferences("atmob_checker", Context.MODE_PRIVATE);
+        lastRiskLevel = sharedPreferences.getInt(KEY_ATMOB_CHECKER_RISK_LEVEL, AtmobChecker.RiskLevel.SAFE);
+
+        checkRuntime((riskLevel, riskInfo) -> {
+            AtmobCheckerHelper.lastRiskLevel = riskLevel;
+            cacheRiskLevel(applicationContext, riskLevel);
+        });
+    }
+
+    private static void cacheRiskLevel(Context applicationContext, int riskLevel) {
+        applicationContext.getSharedPreferences("atmob_checker", Context.MODE_PRIVATE)
+                .edit()
+                .putInt(KEY_ATMOB_CHECKER_RISK_LEVEL, riskLevel)
+                .apply();
+    }
+
+    public static void checkRuntime(AtmobCheckCallback callback) {
+        if (Constants.isOpenDeviceCheckPolicy) {
+            Application application = ContextUtil.getApplication();
+            AtmobCheckerSdk.getAtmobChecker().checkRuntime(application, (riskLevel, riskInfo) -> {
+                AtmobLog.d(TAG, "onCheckResult: riskLevel = " + riskLevel + ", riskInfo = " + riskInfo);
+                if (callback != null) {
+                    callback.onCheckResult(riskLevel, riskInfo);
+                }
+            });
+        } else {
+            callback.onCheckResult(AtmobChecker.RiskLevel.SAFE, null);
+        }
+    }
+
+    public static void onLocationPermissionGranted() {
+        if (isInit()) {
+            Application application = ContextUtil.getApplication();
+            AtmobCheckerSdk.getAtmobChecker().onLocationPermissionGranted(application);
+        }
+    }
+
+    @NonNull
+    @AtmobChecker.RiskLevel
+    public static Integer getLastRiskLevel(Context context) {
+        if (lastRiskLevel == null) {
+            lastRiskLevel = context.getSharedPreferences("atmob_checker", Context.MODE_PRIVATE)
+                    .getInt(KEY_ATMOB_CHECKER_RISK_LEVEL, AtmobChecker.RiskLevel.SAFE);
+        }
+        AtmobLog.d(TAG, "getLastRiskLevel: lastRiskLevel = " + lastRiskLevel);
+        return lastRiskLevel;
+    }
+}

+ 1 - 3
app/src/main/java/com/atmob/voiceai/sdk/firebase/FirebaseHelper.java

@@ -30,14 +30,12 @@ public class FirebaseHelper {
     private FirebaseApp firebaseApp;
     private final FirebaseAnalytics firebaseAnalytics;
     private final ArrayList<OnMessagingTokenChangeListener> onMessagingTokenChangeListeners;
-    private final AtmobApi atmobApi;
 
     @Inject
-    public FirebaseHelper(Application application, AtmobApi atmobApi) {
+    public FirebaseHelper(Application application) {
         firebaseApp = FirebaseApp.initializeApp(application);
         onMessagingTokenChangeListeners = new ArrayList<>(2);
         firebaseAnalytics = FirebaseAnalytics.getInstance(application);
-        this.atmobApi = atmobApi;
 
         getMessagingToken(this::uploadFirebaseToken);
     }

+ 2 - 0
app/src/main/res/layout/activity_voice_result.xml

@@ -60,6 +60,8 @@
                     android:id="@+id/iv_avatar"
                     imageUrl="@{voiceResultViewModel.resultBean.voiceAvatar}"
                     radius="@{20}"
+                    placeholder="@{null}"
+                    error="@{null}"
                     android:layout_width="0dp"
                     android:layout_height="0dp"
                     app:layout_constraintDimensionRatio="1:1"

+ 2 - 2
build.gradle

@@ -2,12 +2,12 @@
 buildscript {
     ext {
         compileSdkVersion = 34
-        applicationId = "com.shimeji.nice"
+        applicationId = "com.funnyvoiceai.clonevoice"
         minSdkVersion = 21
         targetSdkVersion = 33
 
         versionCode = 100
-        versionName = "1.43.27"
+        versionName = "1.0.0"
 
         hilt_version = '2.41'
         lifecycle_version = "2.6.1"

+ 1 - 1
gradle.properties

@@ -21,8 +21,8 @@ android.useAndroidX=true
 android.nonTransitiveRClass=true
 android.enableJetifier=true
 android.injected.testOnly=false
-test_server_host=https://central-test.atmob.com
 prod_server_host=http://project-api.atmob.com
+test_server_host=https://central-os-api.atmob.com
 local_server_host=http://192.168.10.171:8880
 #kochava
 kochava_guid=kofunny-voice-ai-5dkleu5