Ver código fonte

for sdk msg and ad

billyyoyo 6 anos atrás
pai
commit
55dae5edc6

+ 2 - 0
app/src/main/AndroidManifest.xml

@@ -812,6 +812,8 @@
             android:theme="@style/AppActionTheme" />
         <activity
             android:name="com.sheep.gamegroup.view.activity.ActMsg"
+            android:exported="true"
+            android:launchMode="singleInstance"
             android:screenOrientation="portrait"
             android:theme="@style/AppActionTheme" />
         <activity

+ 10 - 1
app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java

@@ -74,6 +74,9 @@ public interface ApiService {
     @GET(ApiKey.system_notification)
     Observable<BaseMessage> getMessageCenter(@Query("page") int page, @Query("per_page") int per_page, @Query("user_id") String user_id, @SystemNotification.TYPE @Query("type") int type);
 
+    @GET(ApiKey.system_notification)
+    Observable<BaseMessage> getMessageCenter(@Header("authorization") String token, @Query("page") int page, @Query("per_page") int per_page, @Query("user_id") String user_id, @SystemNotification.TYPE @Query("type") int type);
+
     /**
      * @param page     页数
      * @param per_page 每页显示条数
@@ -83,6 +86,9 @@ public interface ApiService {
     @GET("app/message/system_message/")
     Observable<BaseMessage> getMessageReply(@Query("page") int page, @Query("per_page") int per_page, @Query("user_id") String user_id);
 
+    @GET("app/message/system_message/")
+    Observable<BaseMessage> getMessageReply(@Header("authorization") String token, @Query("page") int page, @Query("per_page") int per_page, @Query("user_id") String user_id);
+
     /**
      * @param id 回复互动id
      * @return 回复互动详情
@@ -1998,7 +2004,10 @@ public interface ApiService {
     Observable<BaseMessage> getAds();
 
     @GET("app/advertising_v2")
-    Observable<BaseMessage> getAds(@Query("form") int form);
+    Observable<BaseMessage> getAdsByForm(@Query("form") int form);
+
+    @GET("app/advertising_v2")
+    Observable<BaseMessage> getAdsById(@Query("id") int id);
 
     @POST("app/advertising_v2/create/statistics")
     Observable<BaseMessage> statAdAction(@Body JSONObject json);

+ 35 - 6
app/src/main/java/com/sheep/gamegroup/util/CommonUtil.java

@@ -31,7 +31,6 @@ import android.widget.TextView;
 
 import com.alibaba.fastjson.JSONObject;
 import com.alipay.sdk.app.PayTask;
-import com.bumptech.glide.Glide;
 import com.kfzs.duanduan.cardview.ScreenUtil;
 import com.kfzs.duanduan.utils.ApkUtils;
 import com.mdad.sdk.mdsdk.AdManager;
@@ -80,7 +79,6 @@ import com.sheep.gamegroup.view.activity.ActMain;
 import com.sheep.gamegroup.view.activity.ActWebX5YF;
 import com.sheep.gamegroup.view.activity.GameTaskOrderListAct;
 import com.sheep.gamegroup.view.activity.helper.AdHelper;
-import com.sheep.gamegroup.view.dialog.DialogNewbieTaskList;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.Config;
 import com.sheep.jiuyan.samllsheep.R;
@@ -126,9 +124,7 @@ import io.reactivex.ObservableOnSubscribe;
 import io.reactivex.Observer;
 import io.reactivex.android.schedulers.AndroidSchedulers;
 import io.reactivex.schedulers.Schedulers;
-import io.reactivex.subjects.Subject;
 import okhttp3.Call;
-import retrofit2.http.Query;
 import rx.functions.Action1;
 import rx.functions.Action2;
 
@@ -2337,10 +2333,43 @@ public class CommonUtil {
         refreshAds(0, action);
     }
 
+    public void getAd(int id, Action1<SheepAd> action) {
+        SheepApp.getInstance().getNetComponent().getApiService().getAdsById(id)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        try {
+                            List<SheepAd> ads = baseMessage.getDatas(SheepAd.class);
+                            if (ads != null && ads.size() > 0) {
+                                if (action != null) {
+                                    action.call(ads.get(0));
+                                }
+                            } else {
+                                if (action != null) {
+                                    action.call(null);
+                                }
+                            }
+
+                        } catch (Exception e) {
+                            if (action != null)
+                                action.call(null);
+                        }
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        if (action != null)
+                            action.call(null);
+                    }
+                });
+    }
+
     public void refreshAds(int form, Action2<Boolean, List<SheepAd>> action) {
         Observable<BaseMessage> observable;
         if (form > 0) {
-            observable = SheepApp.getInstance().getNetComponent().getApiService().getAds(form);
+            observable = SheepApp.getInstance().getNetComponent().getApiService().getAdsByForm(form);
         } else {
             observable = SheepApp.getInstance().getNetComponent().getApiService().getAds();
         }
@@ -2708,7 +2737,7 @@ public class CommonUtil {
                 G.showToast(R.string.coming_soon);
                 break;
             case 26://点客
-                new DkAdManage(activity).loadTmAdById("samllsheep",104 ,new DKListener());
+                new DkAdManage(activity).loadTmAdById("samllsheep", 104, new DKListener());
                 break;
             default:
                 G.showToast(R.string.coming_soon);

+ 4 - 2
app/src/main/java/com/sheep/gamegroup/view/activity/ActMsg.java

@@ -6,6 +6,7 @@ import android.support.v4.view.ViewPager;
 import android.view.View;
 
 import com.sheep.gamegroup.absBase.BaseActivity;
+import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.view.adapter.ViewPagerFragmentAdapter;
 import com.sheep.gamegroup.view.fragment.FgtMsgCenter;
 import com.sheep.gamegroup.view.fragment.FgtMsgReply;
@@ -45,12 +46,13 @@ public class ActMsg extends BaseActivity {
 
     @Override
     public void initView() {
+        String token = getIntent().hasExtra("token") ? getIntent().getStringExtra("token") : DataUtil.getInstance().getToken();
         TitleBarUtils.getInstance()
                 .setShowOrHide(this, true)
                 .setTitleFinish(this)
                 .addMsgTab(this, act_msg_vp);
-        fragmentList.add(new FgtMsgCenter());
-        fragmentList.add(new FgtMsgReply());
+        fragmentList.add(FgtMsgCenter.newInstance(token));
+        fragmentList.add(FgtMsgReply.newInstance(token));
         ViewPagerFragmentAdapter mViewPagerFragmentAdapter = new ViewPagerFragmentAdapter(getSupportFragmentManager(), fragmentList);
         act_msg_vp.setAdapter(mViewPagerFragmentAdapter);
         act_msg_vp.setCurrentItem(0, false);

+ 7 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/MiddleSchemeAct.java

@@ -23,6 +23,7 @@ import com.sheep.gamegroup.util.LogUtil;
 import com.sheep.gamegroup.util.SysAppUtil;
 import com.sheep.gamegroup.util.TestUtil;
 import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.gamegroup.view.activity.helper.AdHelper;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.Config;
 import com.sheep.jiuyan.samllsheep.R;
@@ -88,6 +89,7 @@ public class MiddleSchemeAct extends Activity {
         //尝试解密数据
         String json = uri.getQueryParameter("data");
         if (!type.equals("h5game")
+                && !type.equals("clickad")
                 && !type.equals("discountrecharge")
                 && !type.equals("makegold")
                 && !type.equals("game_detail")) {
@@ -244,6 +246,11 @@ public class MiddleSchemeAct extends Activity {
             case "h5game":
                 Jump2View.getInstance().goH5Game(SheepApp.getInstance(), json);
                 break;
+            case "clickad":
+                CommonUtil.getInstance().getAd(Integer.parseInt(json), (ad) -> {
+                    AdHelper.goAdLink(SheepApp.getInstance(), ad);
+                });
+                break;
         }
     }
 

+ 4 - 4
app/src/main/java/com/sheep/gamegroup/view/activity/helper/AdHelper.java

@@ -38,11 +38,11 @@ import static com.sheep.jiuyan.samllsheep.utils.ClassFileHelper.DIR;
 public class AdHelper {
 
     // 返回true 为apk下载
-    public static boolean goAdLink(Activity activity, SheepAd advertising) {
+    public static boolean goAdLink(Context activity, SheepAd advertising) {
         if (TextUtils.isEmpty(SpUtils.getToken(SheepApp.getInstance()))) {
             Jump2View.getInstance().goLoginView(activity, null);
             if (activity instanceof SplashAct) {
-                activity.finish();
+                ((Activity) activity).finish();
             }
             return false;
         }
@@ -73,10 +73,10 @@ public class AdHelper {
     public static void stat(List<SheepAd> ads, int type) {
         if (ListUtil.isEmpty(ads)) return;
         List<Long> ids = new ArrayList<>();
-        for(SheepAd ad:ads){
+        for (SheepAd ad : ads) {
             ids.add(ad.getAd_id());
         }
-        String idPara= ListUtil.join(ids);
+        String idPara = ListUtil.join(ids);
         stat(idPara, type);
     }
 

+ 9 - 1
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMsgCenter.java

@@ -31,6 +31,14 @@ import io.reactivex.Observable;
  */
 public class FgtMsgCenter extends BaseListFragment2<SystemNotification> implements OnItemClickListener<SystemNotification> {
 
+    private String token;
+
+    public static FgtMsgCenter newInstance(String token) {
+        FgtMsgCenter fgt = new FgtMsgCenter();
+        fgt.token = token;
+        return fgt;
+    }
+
     @Override
     protected boolean isFirstGetACache() {
         return false;
@@ -53,7 +61,7 @@ public class FgtMsgCenter extends BaseListFragment2<SystemNotification> implemen
 
     @Override
     protected Observable<BaseMessage> getApi(ApiService apiService) {
-        return apiService.getMessageCenter(page, per_page, DataUtil.getInstance().getUserId(), SystemNotification.TYPE_ALL);
+        return apiService.getMessageCenter(token, page, per_page, DataUtil.getInstance().getUserId(), SystemNotification.TYPE_ALL);
     }
 
     @Override

+ 11 - 2
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtMsgReply.java

@@ -26,6 +26,15 @@ import io.reactivex.Observable;
  * realicing@sina.com
  */
 public class FgtMsgReply extends BaseListFragment2<MessageReplyEntity> implements MessageRightAdapter.ItemOnClickListener {
+
+    private String token;
+
+    public static FgtMsgReply newInstance(String token) {
+        FgtMsgReply fgt = new FgtMsgReply();
+        fgt.token = token;
+        return fgt;
+    }
+
     @Override
     protected boolean isFirstGetACache() {
         return false;
@@ -43,7 +52,7 @@ public class FgtMsgReply extends BaseListFragment2<MessageReplyEntity> implement
 
     @Override
     protected Observable<BaseMessage> getApi(ApiService apiService) {
-        return apiService.getMessageReply(page, per_page, DataUtil.getInstance().getUserId());
+        return apiService.getMessageReply(token, page, per_page, DataUtil.getInstance().getUserId());
     }
 
     @Override
@@ -53,7 +62,7 @@ public class FgtMsgReply extends BaseListFragment2<MessageReplyEntity> implement
 
     @Override
     public void notifyData() {
-        if(activity instanceof ActMsg) {
+        if (activity instanceof ActMsg) {
             ((ActMsg) activity).updateMsgOval(1, lastMessage != null && lastMessage.getTotal() > 0);
         }
     }