Ver Fonte

谁是舞王

xiongzhu há 7 anos atrás
pai
commit
8bfba7ee43

+ 4 - 0
app/src/main/java/com/android/chmo/http/response/TopActivityRes.java

@@ -13,5 +13,9 @@ public class TopActivityRes extends Res {
         public String Pic;
         public String Caption;
         public String Intro;
+        public long SBeg;
+        public long SEndt;
+        public long Beg;
+        public long Endt;
     }
 }

+ 29 - 0
app/src/main/java/com/android/chmo/ui/activity/MainActivity.java

@@ -18,7 +18,10 @@ import com.android.chmo.R;
 import com.android.chmo.app.ChmoApplication;
 import com.android.chmo.base.BaseActivity;
 import com.android.chmo.http.RequestCallback;
+import com.android.chmo.http.response.TopActivityRes;
+import com.android.chmo.http.service.ActivitiesService;
 import com.android.chmo.http.service.UserService;
+import com.android.chmo.ui.dialog.AdDialog;
 import com.android.chmo.ui.fragment.BrokerFragment;
 import com.android.chmo.ui.fragment.FindFragment;
 import com.android.chmo.ui.fragment.HomeFragment;
@@ -27,6 +30,7 @@ import com.android.chmo.ui.fragment.MessageFragment;
 import com.android.chmo.ui.fragment.MineFragment;
 import com.android.chmo.ui.view.NoSlideViewPager;
 import com.blankj.utilcode.util.AppUtils;
+import com.google.gson.Gson;
 import com.liulishuo.filedownloader.BaseDownloadTask;
 import com.liulishuo.filedownloader.FileDownloadListener;
 import com.liulishuo.filedownloader.FileDownloader;
@@ -88,6 +92,31 @@ public class MainActivity extends BaseActivity {
 
         registerObserver(true);
         checkUpdate();
+
+        ActivitiesService.getTopActivities(new RequestCallback() {
+            @Override
+            public void onSuccess(String result) {
+                TopActivityRes res = new Gson().fromJson(result, TopActivityRes.class);
+                if ("success".equals(res.msg)) {
+                    for (TopActivityRes.TopActivity t : res.data) {
+                        long beg = Math.min(t.SBeg, t.Beg);
+                        long end = Math.max(t.SEndt, t.Endt);
+                        long current = System.currentTimeMillis();
+                        if (current >= beg && current <= end) {
+                            AdDialog adDialog = new AdDialog(MainActivity.this);
+                            adDialog.setModel(t);
+                            adDialog.show();
+                            return;
+                        }
+                    }
+                }
+            }
+
+            @Override
+            public void onFailure(String error) {
+
+            }
+        });
     }
 
     @Override

+ 2 - 2
app/src/main/java/com/android/chmo/ui/activity/WebViewActivity.java

@@ -297,7 +297,7 @@ public class WebViewActivity extends BaseActivity implements ShareDialog.OnShare
 
     @Override
     public void onShareWechatSession() {
-        WXWebpageObject webpageObject = new WXWebpageObject(TextUtils.isEmpty(shareUrl) ? url : shareUrl);
+        WXWebpageObject webpageObject = new WXWebpageObject(TextUtils.isEmpty(shareUrl) ? webView.getUrl() : shareUrl);
         WXMediaMessage message = new WXMediaMessage();
         message.mediaObject = webpageObject;
         message.title = TextUtils.isEmpty(shareTitle) ? "千模通告" : shareTitle;
@@ -312,7 +312,7 @@ public class WebViewActivity extends BaseActivity implements ShareDialog.OnShare
 
     @Override
     public void onShareWechatTimeline() {
-        WXWebpageObject webpageObject = new WXWebpageObject(TextUtils.isEmpty(shareUrl) ? url : shareUrl);
+        WXWebpageObject webpageObject = new WXWebpageObject(TextUtils.isEmpty(shareUrl) ? webView.getUrl() : shareUrl);
         WXMediaMessage message = new WXMediaMessage();
         message.mediaObject = webpageObject;
         message.title = TextUtils.isEmpty(shareTitle) ? topBar.getTitle() : shareTitle;

+ 72 - 0
app/src/main/java/com/android/chmo/ui/dialog/AdDialog.java

@@ -0,0 +1,72 @@
+package com.android.chmo.ui.dialog;
+
+import android.app.Activity;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.android.chmo.R;
+import com.android.chmo.http.HttpApi;
+import com.android.chmo.http.response.TopActivityRes;
+import com.android.chmo.ui.activity.WebViewActivity;
+import com.android.chmo.ui.activity.activities.ActivitiesDetailActivity;
+import com.android.chmo.utils.XUtilsImage;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+
+public class AdDialog extends Dialog {
+    private TopActivityRes.TopActivity model;
+    private Activity                   activity;
+
+    @BindView(R.id.tv_desc)
+    TextView  tvDesc;
+    @BindView(R.id.img)
+    ImageView img;
+
+    public AdDialog(@NonNull Context context) {
+        super(context, R.style.DialogStyle);
+        this.activity = (Activity) context;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.dialog_ad);
+        ButterKnife.bind(this);
+        Window window = getWindow();
+        WindowManager.LayoutParams wlp = window.getAttributes();
+        wlp.gravity = Gravity.CENTER;
+        window.setAttributes(wlp);
+        window.setWindowAnimations(R.style.DialogAnimation);
+        int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 280, getContext().getResources().getDisplayMetrics());
+        window.setLayout(width, WindowManager.LayoutParams.WRAP_CONTENT);
+
+        XUtilsImage.display(img, HttpApi.getImgUrl(model.Pic));
+        tvDesc.setText(model.Caption);
+    }
+
+    @OnClick(R.id.btn_detail)
+    void detail() {
+        WebViewActivity.start(activity, model.url, model.PK, "");
+        dismiss();
+    }
+
+    @OnClick(R.id.btn_cancel)
+    void onCancel() {
+        dismiss();
+    }
+
+    public void setModel(TopActivityRes.TopActivity model) {
+        this.model = model;
+    }
+}

+ 34 - 0
app/src/main/java/com/android/chmo/ui/dialog/UpdateDialog.java

@@ -0,0 +1,34 @@
+package com.android.chmo.ui.dialog;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.Window;
+import android.view.WindowManager;
+
+import com.android.chmo.R;
+
+import butterknife.ButterKnife;
+
+public class UpdateDialog extends Dialog {
+    public UpdateDialog(@NonNull Context context) {
+        super(context, R.style.DialogStyle);
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.dialog_update);
+        ButterKnife.bind(this);
+        Window window = getWindow();
+        WindowManager.LayoutParams wlp = window.getAttributes();
+        wlp.gravity = Gravity.BOTTOM;
+        window.setAttributes(wlp);
+        window.setWindowAnimations(R.style.DialogAnimation);
+        int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 280, getContext().getResources().getDisplayMetrics());
+        window.setLayout(width, WindowManager.LayoutParams.WRAP_CONTENT);
+    }
+}

+ 5 - 0
app/src/main/res/drawable/bg_ad.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <corners android:radius="14dp" />
+    <solid android:color="@color/white" />
+</shape>

+ 49 - 0
app/src/main/res/layout/dialog_ad.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@drawable/bg_ad"
+    android:gravity="center"
+    android:orientation="vertical">
+
+    <com.android.chmo.ui.view.RoundImageView
+        android:layout_width="match_parent"
+        android:layout_height="210dp"
+        android:scaleType="centerCrop"
+        android:id="@+id/img"
+        android:src="@mipmap/def_img2"
+        app:radius_top_left="14dp"
+        app:radius_top_right="14dp" />
+
+    <TextView
+        android:id="@+id/tv_desc"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="25dp"
+        android:layout_marginTop="16dp"
+        android:layout_marginRight="25dp"
+        android:text=""
+        android:textAlignment="center"
+        android:textColor="#ff000000"
+        android:textSize="14sp" />
+
+    <Button
+        android:id="@+id/btn_detail"
+        style="@style/largeBtn"
+        android:layout_marginLeft="25dp"
+        android:layout_marginTop="20dp"
+        android:layout_marginRight="25dp"
+        android:text="立即查看" />
+
+    <Button
+        android:id="@+id/btn_cancel"
+        style="@style/Widget.AppCompat.Button.Borderless"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="5dp"
+        android:layout_marginBottom="5dp"
+        android:text="稍后再说"
+        android:textColor="#ff8f9294"
+        android:textSize="14sp" />
+</LinearLayout>

+ 16 - 0
app/src/main/res/layout/dialog_update.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+    <ImageView
+        android:layout_width="match_parent"
+        android:layout_height="210dp" />
+
+    <Button
+        style="@style/largeBtn"
+        android:layout_marginLeft="25dp"
+        android:layout_marginRight="25dp"
+        android:text="立即更新" />
+</LinearLayout>