Browse Source

关于我们增加隐藏功能

zk 1 year ago
parent
commit
4c01af6006

+ 56 - 0
app/src/main/java/com/datarecovery/master/module/about/AboutActivity.java

@@ -4,18 +4,30 @@ import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
+import androidx.databinding.Bindable;
 
 import com.atmob.app.lib.base.BaseActivity;
+import com.atmob.common.data.KVUtils;
+import com.atmob.user.AtmobUser;
 import com.datarecovery.master.data.consts.Constants;
 import com.datarecovery.master.data.consts.EventId;
+import com.datarecovery.master.data.repositories.ConfigRepository;
 import com.datarecovery.master.databinding.ActivityAboutBinding;
 import com.datarecovery.master.handler.EventHelper;
 import com.datarecovery.master.module.browser.BrowserActivity;
+import com.datarecovery.master.sdk.gravity.GravityHelper;
+import com.datarecovery.master.utils.BoxingUtil;
 import com.datarecovery.master.utils.SystemUtil;
+import com.datarecovery.master.utils.ToastUtil;
 import com.gyf.immersionbar.ImmersionBar;
 
+import java.util.concurrent.TimeUnit;
+
+import atmob.reactivex.rxjava3.core.Observable;
+import atmob.reactivex.rxjava3.disposables.Disposable;
 import dagger.hilt.android.AndroidEntryPoint;
 
 /**
@@ -33,6 +45,9 @@ public class AboutActivity extends BaseActivity<ActivityAboutBinding> {
         context.startActivity(intent);
     }
 
+    private int times = 0;
+    private Disposable subscribe;
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -61,5 +76,46 @@ public class AboutActivity extends BaseActivity<ActivityAboutBinding> {
             EventHelper.report(EventId.hf1001104);
             BrowserActivity.start(this, Constants.PRIVACY_POLICY);
         });
+        binding.vTrial.setOnClickListener(v -> {
+            if (times == 0) {
+                if (subscribe != null) {
+                    subscribe.dispose();
+                }
+                subscribe = Observable.timer(5000, TimeUnit.MILLISECONDS)
+                        .subscribe(aLong -> times = 0);
+                times++;
+            } else if (times == 10) {
+                showTrialToast();
+            } else {
+                times++;
+            }
+        });
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (subscribe != null) {
+            subscribe.dispose();
+        }
+    }
+
+    private void showTrialToast() {
+        //显示 是否开启试用 -- 渠道 -- 归因结果 -- 归因聚道
+        StringBuilder sb = new StringBuilder();
+        sb.append("--");
+        sb.append(ConfigRepository.isIsOpenTrialMembership());
+
+        sb.append("--");
+        sb.append(AtmobUser.getAtmobChannel());
+
+        sb.append("--");
+        sb.append(GravityHelper.isAttribution());
+
+        sb.append("--");
+        String gravityCompany = GravityHelper.getGravityCompany();
+        sb.append((TextUtils.isEmpty(gravityCompany)) ? "null" : gravityCompany);
+
+        ToastUtil.show(sb.toString(), ToastUtil.LENGTH_LONG);
     }
 }

+ 9 - 5
app/src/main/java/com/datarecovery/master/module/member/MemberViewModel.java

@@ -16,9 +16,11 @@ import com.datarecovery.master.data.api.bean.PayOptionsBean;
 import com.datarecovery.master.data.api.bean.WechatPaymentSignBean;
 import com.datarecovery.master.data.api.response.MemberDetailResponse;
 import com.datarecovery.master.data.api.response.MemberPayResponse;
+import com.datarecovery.master.data.consts.ChannelId;
 import com.datarecovery.master.data.consts.Constants;
 import com.datarecovery.master.data.consts.EventId;
 import com.datarecovery.master.data.repositories.AccountRepository;
+import com.datarecovery.master.data.repositories.ConfigRepository;
 import com.datarecovery.master.data.repositories.MemberRepository;
 import com.datarecovery.master.data.repositories.PayRepository;
 import com.datarecovery.master.handler.EventHelper;
@@ -308,11 +310,13 @@ public class MemberViewModel extends BaseViewModel {
 
 
     public void onMemberSubscribeClick() {
-//        if (!BoxingUtil.boxing(accountRepository.getIsLogin().getValue())) {
-//            ToastUtil.show(R.string.no_login, ToastUtil.LENGTH_SHORT);
-//            LoginActivity.start(ActivityUtil.getTopActivity());
-//            return;
-//        }
+        if (ConfigRepository.isTargetSuffixChannel(ChannelId.VIVO)) {
+            if (!BoxingUtil.boxing(accountRepository.getIsLogin().getValue())) {
+                ToastUtil.show(R.string.no_login, ToastUtil.LENGTH_SHORT);
+                LoginActivity.start(ActivityUtil.getTopActivity(), ReportUtil.getReportId(memberType));
+                return;
+            }
+        }
         EventHelper.report(EventId.hf1000602, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(memberType)));
         MemberGoodsBean currentSelected = selectBean.getValue();
         if (currentSelected == null) {

+ 10 - 0
app/src/main/java/com/datarecovery/master/sdk/gravity/GravityHelper.java

@@ -35,6 +35,7 @@ import cn.gravity.android.RegisterCallback;
 public class GravityHelper {
     private static final String TAG = GravityHelper.class.getSimpleName();
     private static final String GRAVITY_CURRENT_CLIENT_ID = "gravity_current_client_id";
+    private static final String GRAVITY_CLICK_COMPANY = "gravity_click_company";
 
     private static final String accessToken = BuildConfig.GRAVITY_ACCESS_TOKEN;
     private static Disposable registerDisposable;
@@ -61,6 +62,10 @@ public class GravityHelper {
         return !TextUtils.isEmpty(adPlatform) && !"natural".equals(adPlatform);
     }
 
+    public static boolean isAttribution() {
+        return attributed != null && attributed;
+    }
+
     public static void reportRegister() {
         if (registerDisposable != null || gravityEngineSDKInstance == null) {
             return;
@@ -119,12 +124,17 @@ public class GravityHelper {
         }
         try {
             String click_company = jsonObject.getString("click_company");
+            KVUtils.getDefault().putString(GRAVITY_CLICK_COMPANY, click_company);
             onAttributionResult(isAttribution(click_company));
         } catch (JSONException ignored) {
 
         }
     }
 
+    public static String getGravityCompany() {
+        return KVUtils.getDefault().getString(GRAVITY_CLICK_COMPANY, null);
+    }
+
 
     public static void reportPay(int payAmount, String order_no, String product, String payWay) {
         if (gravityEngineSDKInstance != null)

+ 7 - 0
app/src/main/res/layout/activity_about.xml

@@ -151,5 +151,12 @@
             app:layout_constraintTop_toTopOf="@+id/tv_privacy_agreement" />
 
 
+        <View
+            android:id="@+id/v_trial"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintBottom_toBottomOf="parent"
+            android:layout_width="80dp"
+            android:layout_height="80dp" />
+
     </androidx.constraintlayout.widget.ConstraintLayout>
 </layout>