瀏覽代碼

谁是舞王

xiongzhu 7 年之前
父節點
當前提交
b81b8d5f9f
共有 37 個文件被更改,包括 356 次插入221 次删除
  1. 1 1
      app/build.gradle
  2. 0 1
      app/src/main/java/com/android/chmo/app/ChmoApplication.java
  3. 0 3
      app/src/main/java/com/android/chmo/base/BaseActivity.java
  4. 0 1
      app/src/main/java/com/android/chmo/base/BaseFragment.java
  5. 28 98
      app/src/main/java/com/android/chmo/ui/activity/MainActivity.java
  6. 30 38
      app/src/main/java/com/android/chmo/ui/activity/WebViewActivity.java
  7. 0 1
      app/src/main/java/com/android/chmo/ui/activity/WelcomeActivity.java
  8. 0 1
      app/src/main/java/com/android/chmo/ui/activity/promote/PromoteActivity.java
  9. 0 1
      app/src/main/java/com/android/chmo/ui/adpater/FansAdapter.java
  10. 1 1
      app/src/main/java/com/android/chmo/ui/dialog/AdDialog.java
  11. 94 2
      app/src/main/java/com/android/chmo/ui/dialog/UpdateDialog.java
  12. 8 26
      app/src/main/java/com/android/chmo/ui/fragment/home/ActivitiesFragment.java
  13. 20 7
      app/src/main/java/com/android/chmo/ui/view/TopBar.java
  14. 5 0
      app/src/main/res/anim/decelerate_interpolator.xml
  15. 1 1
      app/src/main/res/anim/dialog_enter.xml
  16. 1 1
      app/src/main/res/anim/dialog_exit.xml
  17. 7 5
      app/src/main/res/anim/push_left_in.xml
  18. 7 5
      app/src/main/res/anim/push_left_out.xml
  19. 7 5
      app/src/main/res/anim/push_right_in.xml
  20. 6 5
      app/src/main/res/anim/push_right_out.xml
  21. 5 0
      app/src/main/res/drawable/bg_version.xml
  22. 1 1
      app/src/main/res/layout/activity_about.xml
  23. 40 5
      app/src/main/res/layout/activity_web_view.xml
  24. 1 1
      app/src/main/res/layout/activity_withdraw_success.xml
  25. 56 9
      app/src/main/res/layout/dialog_update.xml
  26. 14 2
      app/src/main/res/layout/header_activity.xml
  27. 二進制
      app/src/main/res/mipmap-hdpi/img_qidong.png
  28. 二進制
      app/src/main/res/mipmap-hdpi/img_xinbanben.png
  29. 二進制
      app/src/main/res/mipmap-xhdpi/img_qidong.png
  30. 二進制
      app/src/main/res/mipmap-xhdpi/img_xinbanben.png
  31. 二進制
      app/src/main/res/mipmap-xxhdpi/img_qidong.png
  32. 二進制
      app/src/main/res/mipmap-xxhdpi/img_xinbanben.png
  33. 二進制
      app/src/main/res/mipmap-xxxhdpi/img_qidong.png
  34. 二進制
      app/src/main/res/mipmap-xxxhdpi/img_xinbanben.png
  35. 8 0
      app/src/main/res/values-v19/styles.xml
  36. 8 0
      app/src/main/res/values-v21/styles.xml
  37. 7 0
      app/src/main/res/values/styles.xml

+ 1 - 1
app/build.gradle

@@ -112,7 +112,7 @@ dependencies {
     implementation 'com.google.android:flexbox:1.0.0'
     implementation 'com.liulishuo.filedownloader:library:1.7.5'
     implementation 'com.blankj:utilcode:1.10.0'
-    implementation 'com.youth.banner:banner:1.4.10'
     implementation 'com.zzhoujay.richtext:richtext:3.0.7'
     implementation 'com.zzhoujay:html:1.0.2'
+    implementation 'cn.bingoogolapple:bga-banner:2.2.5@aar'
 }

+ 0 - 1
app/src/main/java/com/android/chmo/app/ChmoApplication.java

@@ -277,7 +277,6 @@ public class ChmoApplication extends BaseApplication {
                             intent.putExtra("model", model);
                             intent.putExtra("modelPk", model.modelpk);
                             startActivity(intent);
-                            ((Activity) context).overridePendingTransition(R.anim.push_right_in, R.anim.push_left_out);
                         }
                     }
 

+ 0 - 3
app/src/main/java/com/android/chmo/base/BaseActivity.java

@@ -84,7 +84,6 @@ public abstract class BaseActivity extends AppCompatActivity {
     @Override
     public void finish() {
         super.finish();
-        overridePendingTransition(R.anim.push_left_in, R.anim.push_right_out);
         ActivityManager.getInstance().popActivity(this);
     }
 
@@ -94,12 +93,10 @@ public abstract class BaseActivity extends AppCompatActivity {
 
     public void openPage(Intent intent) {
         startActivity(intent);
-        overridePendingTransition(R.anim.push_right_in, R.anim.push_left_out);
     }
 
     public void openPageForResult(Intent intent, int requestCode) {
         startActivityForResult(intent, requestCode);
-        overridePendingTransition(R.anim.push_right_in, R.anim.push_left_out);
     }
 
     public void close() {

+ 0 - 1
app/src/main/java/com/android/chmo/base/BaseFragment.java

@@ -142,7 +142,6 @@ public abstract class BaseFragment extends Fragment {
 
     public void openPageForResult(Intent intent, int requestCode) {
         startActivityForResult(intent, requestCode);
-        getBaseActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_left_out);
     }
 
     public void close() {

+ 28 - 98
app/src/main/java/com/android/chmo/ui/activity/MainActivity.java

@@ -1,7 +1,5 @@
 package com.android.chmo.ui.activity;
 
-import android.app.AlertDialog;
-import android.app.ProgressDialog;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -15,33 +13,26 @@ import android.view.View;
 import android.widget.TextView;
 
 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.dialog.UpdateDialog;
 import com.android.chmo.ui.fragment.BrokerFragment;
 import com.android.chmo.ui.fragment.FindFragment;
 import com.android.chmo.ui.fragment.HomeFragment;
-import com.android.chmo.ui.fragment.MeFragment;
 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;
 import com.netease.nimlib.sdk.NIMClient;
 import com.netease.nimlib.sdk.msg.MsgService;
 
 import org.json.JSONException;
 import org.json.JSONObject;
 
-import java.io.File;
-
 import butterknife.BindView;
 import butterknife.OnClick;
 
@@ -92,31 +83,6 @@ 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
@@ -244,19 +210,14 @@ public class MainActivity extends BaseActivity {
                     JSONObject android = obj.getJSONObject("data").getJSONObject("android");
                     String currentVersion = getVersion();
                     String latestVersion = android.getString("version");
+                    String desc = android.getString("desc");
                     boolean force = android.getBoolean("force");
                     String url = android.getString("url");
                     if (convertVersion(currentVersion) < convertVersion(latestVersion)) {
-                        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT)
-                                .setTitle("提示").setMessage("发现新版本" + latestVersion).setPositiveButton("立即更新", (dialog, which) -> {
-                                    dialog.dismiss();
-                                    downloadUpdate(url);
-                                });
-                        if (!force) {
-                            builder.setNegativeButton("取消", (dialog, which) -> dialog.dismiss());
-                        }
-                        builder.setCancelable(false).show();
+                        UpdateDialog.Present(MainActivity.this, latestVersion, desc, url);
+                        return;
                     }
+                    getTopActivities();
                 } catch (JSONException e) {
                     e.printStackTrace();
                 }
@@ -264,67 +225,36 @@ public class MainActivity extends BaseActivity {
 
             @Override
             public void onFailure(String error) {
-
+                getTopActivities();
             }
         });
     }
 
-    private void downloadUpdate(String url) {
-        final File file = new File(getExternalCacheDir(), "update.apk");
-        final ProgressDialog progressDialog = new ProgressDialog(this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT);
-        progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
-        progressDialog.setTitle("正在下载");
-        progressDialog.setProgress(0);
-        progressDialog.setCancelable(false);
-        FileDownloader.getImpl().create(url)
-                .setPath(file.getPath())
-                .setListener(new FileDownloadListener() {
-                    @Override
-                    protected void pending(BaseDownloadTask task, int soFarBytes, int totalBytes) {
-                    }
-
-                    @Override
-                    protected void connected(BaseDownloadTask task, String etag, boolean isContinue, int soFarBytes, int totalBytes) {
-                        progressDialog.show();
-                    }
-
-                    @Override
-                    protected void progress(BaseDownloadTask task, int soFarBytes, int totalBytes) {
-                        progressDialog.setProgress(soFarBytes * 100 / totalBytes);
-                    }
-
-                    @Override
-                    protected void blockComplete(BaseDownloadTask task) {
-                    }
-
-                    @Override
-                    protected void retry(final BaseDownloadTask task, final Throwable ex, final int retryingTimes, final int soFarBytes) {
-                    }
-
-                    @Override
-                    protected void completed(BaseDownloadTask task) {
-                        AppUtils.installApp(file, "com.android.chmo.fileProvider");
-                        progressDialog.dismiss();
-                    }
-
-                    @Override
-                    protected void paused(BaseDownloadTask task, int soFarBytes, int totalBytes) {
+    private void getTopActivities() {
+        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
-                    protected void error(BaseDownloadTask task, Throwable e) {
-                        progressDialog.dismiss();
-                        new AlertDialog.Builder(MainActivity.this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT)
-                                .setPositiveButton("重试", (dialog, which) -> downloadUpdate(url))
-                                .setTitle("下载失败")
-                                .setCancelable(false)
-                                .show();
-                    }
+            @Override
+            public void onFailure(String error) {
 
-                    @Override
-                    protected void warn(BaseDownloadTask task) {
-                    }
-                }).start();
+            }
+        });
     }
 
     public String getVersion() {

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

@@ -2,35 +2,24 @@ package com.android.chmo.ui.activity;
 
 import android.app.Activity;
 import android.content.Context;
-import android.content.DialogInterface;
 import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
+import android.net.Uri;
 import android.os.Build;
 import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
 import android.support.v7.app.AlertDialog;
-import android.support.v7.app.AppCompatActivity;
-import android.os.Bundle;
 import android.text.TextUtils;
-import android.util.DisplayMetrics;
-import android.util.Log;
-import android.util.TypedValue;
-import android.view.Gravity;
 import android.view.KeyEvent;
 import android.view.View;
-import android.view.ViewGroup;
 import android.webkit.JavascriptInterface;
-import android.webkit.JsPromptResult;
 import android.webkit.JsResult;
 import android.webkit.WebChromeClient;
 import android.webkit.WebSettings;
 import android.webkit.WebView;
 import android.webkit.WebViewClient;
-import android.widget.ImageView;
 import android.widget.ProgressBar;
-import android.widget.RelativeLayout;
-import android.widget.Toast;
+import android.widget.TextView;
 
 import com.android.chmo.R;
 import com.android.chmo.app.ChmoApplication;
@@ -44,7 +33,6 @@ import com.android.chmo.ui.activity.model.FansActivity;
 import com.android.chmo.ui.activity.model.ModelDetailActivity;
 import com.android.chmo.ui.dialog.SendGiftDialog;
 import com.android.chmo.ui.dialog.ShareDialog;
-import com.android.chmo.ui.view.TopBar;
 import com.android.chmo.wxapi.WeChatManager;
 import com.google.gson.Gson;
 import com.tencent.mm.opensdk.modelmsg.SendMessageToWX;
@@ -53,14 +41,15 @@ import com.tencent.mm.opensdk.modelmsg.WXWebpageObject;
 import com.tencent.mm.opensdk.openapi.IWXAPI;
 
 import butterknife.BindView;
+import butterknife.OnClick;
 
 public class WebViewActivity extends BaseActivity implements ShareDialog.OnShareListener {
     @BindView(R.id.webView)
     WebView     webView;
     @BindView(R.id.progressbar)
     ProgressBar progressBar;
-    @BindView(R.id.top_bar)
-    TopBar      topBar;
+    @BindView(R.id.tv_title)
+    TextView    tvTitle;
 
     private String      url;
     private String      activitypk;
@@ -77,7 +66,6 @@ public class WebViewActivity extends BaseActivity implements ShareDialog.OnShare
         intent.putExtra("activitypk", activitypk);
         intent.putExtra("modelpk", modelpk);
         context.startActivity(intent);
-        ((Activity) context).overridePendingTransition(R.anim.push_right_in, R.anim.push_left_out);
     }
 
     @Override
@@ -85,27 +73,26 @@ public class WebViewActivity extends BaseActivity implements ShareDialog.OnShare
         return R.layout.activity_web_view;
     }
 
+    @Override
+    protected int getStatusBarStyle() {
+        return STATUS_BAR_STYLE_LIGHT_CONTENT;
+    }
+
+    @OnClick(R.id.btn_back)
+    void back() {
+        if (webView.canGoBack()) {
+            webView.goBack();
+        } else {
+            finish();
+        }
+    }
+
     @Override
     public void initView() {
         url = getIntent().getStringExtra("url");
         modelpk = getIntent().getStringExtra("modelpk");
         activitypk = getIntent().getStringExtra("activitypk");
 
-        ImageView imageView = new ImageView(this);
-        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, getResources().getDimensionPixelSize(R.dimen.top_bar_height));
-        params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
-        params.rightMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 10, getResources().getDisplayMetrics());
-        imageView.setLayoutParams(params);
-        imageView.setImageResource(R.mipmap.icon_fenxiang);
-        imageView.setScaleType(ImageView.ScaleType.CENTER);
-        imageView.setOnClickListener(new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                share();
-            }
-        });
-        topBar.addView(imageView);
-
         webView.addJavascriptInterface(this, "chmo");//添加js监听 这样html就能调用客户端
         webView.setWebChromeClient(webChromeClient);
         webView.setWebViewClient(webViewClient);
@@ -157,6 +144,12 @@ public class WebViewActivity extends BaseActivity implements ShareDialog.OnShare
 
         @Override
         public boolean shouldOverrideUrlLoading(WebView view, String url) {
+            if (url.startsWith("tel:")) {
+                Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url));
+                startActivity(intent);
+                view.reload();
+                return true;
+            }
             return super.shouldOverrideUrlLoading(view, url);
         }
 
@@ -187,7 +180,7 @@ public class WebViewActivity extends BaseActivity implements ShareDialog.OnShare
         @Override
         public void onReceivedTitle(WebView view, String title) {
             super.onReceivedTitle(view, title);
-            topBar.setTitle(title);
+            tvTitle.setText(title);
         }
 
         @Override
@@ -208,7 +201,6 @@ public class WebViewActivity extends BaseActivity implements ShareDialog.OnShare
                     intent.putExtra("model", model);
                     intent.putExtra("modelPk", model.modelpk);
                     startActivity(intent);
-                    overridePendingTransition(R.anim.push_right_in, R.anim.push_left_out);
                 }
             }
 
@@ -218,6 +210,7 @@ public class WebViewActivity extends BaseActivity implements ShareDialog.OnShare
         });
     }
 
+    @OnClick(R.id.btn_share)
     @JavascriptInterface
     public void share() {
         runOnUiThread(() -> shareDialog.show());
@@ -260,7 +253,6 @@ public class WebViewActivity extends BaseActivity implements ShareDialog.OnShare
                     intent.putExtra("modelPk", model.modelpk);
                     intent.putExtra("sendVideo", true);
                     startActivity(intent);
-                    overridePendingTransition(R.anim.push_right_in, R.anim.push_left_out);
                 }
             }
 
@@ -301,7 +293,7 @@ public class WebViewActivity extends BaseActivity implements ShareDialog.OnShare
         WXMediaMessage message = new WXMediaMessage();
         message.mediaObject = webpageObject;
         message.title = TextUtils.isEmpty(shareTitle) ? "千模通告" : shareTitle;
-        message.description = TextUtils.isEmpty(shareDesc) ? topBar.getTitle() : shareDesc;
+        message.description = TextUtils.isEmpty(shareDesc) ? tvTitle.getText().toString() : shareDesc;
         Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
         message.setThumbImage(bmp);
         SendMessageToWX.Req req = new SendMessageToWX.Req();
@@ -315,8 +307,8 @@ public class WebViewActivity extends BaseActivity implements ShareDialog.OnShare
         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;
-        message.description = TextUtils.isEmpty(shareDesc) ? topBar.getTitle() : shareDesc;
+        message.title = TextUtils.isEmpty(shareTitle) ? tvTitle.getText().toString() : shareTitle;
+        message.description = TextUtils.isEmpty(shareDesc) ? tvTitle.getText().toString() : shareDesc;
         Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
         message.setThumbImage(bmp);
         SendMessageToWX.Req req = new SendMessageToWX.Req();

+ 0 - 1
app/src/main/java/com/android/chmo/ui/activity/WelcomeActivity.java

@@ -67,7 +67,6 @@ public class WelcomeActivity extends BaseActivity {
             openPage(MainActivity.class);
         }
         finish();
-        overridePendingTransition(R.anim.push_right_in, R.anim.push_left_out);
     }
 
     @Override

+ 0 - 1
app/src/main/java/com/android/chmo/ui/activity/promote/PromoteActivity.java

@@ -65,7 +65,6 @@ public class PromoteActivity extends BaseActivity {
                 break;
             case R.id.tv_withdraw:
                 WithdrawActivity.open(this, available);
-                overridePendingTransition(R.anim.push_right_in, R.anim.push_left_out);
                 break;
             case R.id.tv_transfer:
                 new ConfirmDialog(this)

+ 0 - 1
app/src/main/java/com/android/chmo/ui/adpater/FansAdapter.java

@@ -60,7 +60,6 @@ public class FansAdapter extends RecyclerView.Adapter<FansAdapter.FansHolder> {
                         intent.putExtra("model", model);
                         intent.putExtra("modelPk", model.modelpk);
                         context.startActivity(intent);
-                        ((Activity) context).overridePendingTransition(R.anim.push_right_in, R.anim.push_left_out);
                     }
                 }
 

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

@@ -51,7 +51,7 @@ public class AdDialog extends Dialog {
         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));
+        XUtilsImage.display(img, HttpApi.getImgUrl(model.banner));
         tvDesc.setText(model.Caption);
     }
 

+ 94 - 2
app/src/main/java/com/android/chmo/ui/dialog/UpdateDialog.java

@@ -1,21 +1,48 @@
 package com.android.chmo.ui.dialog;
 
+import android.app.AlertDialog;
 import android.app.Dialog;
+import android.app.ProgressDialog;
 import android.content.Context;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
+import android.util.Log;
 import android.util.TypedValue;
 import android.view.Gravity;
 import android.view.Window;
 import android.view.WindowManager;
+import android.widget.TextView;
 
 import com.android.chmo.R;
+import com.android.chmo.ui.activity.MainActivity;
+import com.blankj.utilcode.util.AppUtils;
+import com.liulishuo.filedownloader.BaseDownloadTask;
+import com.liulishuo.filedownloader.FileDownloadListener;
+import com.liulishuo.filedownloader.FileDownloader;
 
+import java.io.File;
+
+import butterknife.BindView;
 import butterknife.ButterKnife;
+import butterknife.OnClick;
 
 public class UpdateDialog extends Dialog {
-    public UpdateDialog(@NonNull Context context) {
+    private String version, desc, url;
+    @BindView(R.id.tv_version)
+    TextView tvVersion;
+    @BindView(R.id.tv_desc)
+    TextView tvDesc;
+
+    private UpdateDialog(@NonNull Context context, String version, String desc, String url) {
         super(context, R.style.DialogStyle);
+        this.version = version;
+        this.desc = desc;
+        this.url = url;
+    }
+
+    public static void Present(Context context, String version, String desc, String url) {
+        UpdateDialog updateDialo = new UpdateDialog(context, version, desc, url);
+        updateDialo.show();
     }
 
     @Override
@@ -25,10 +52,75 @@ public class UpdateDialog extends Dialog {
         ButterKnife.bind(this);
         Window window = getWindow();
         WindowManager.LayoutParams wlp = window.getAttributes();
-        wlp.gravity = Gravity.BOTTOM;
+        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);
+        setCancelable(false);
+        tvVersion.setText(version);
+        tvDesc.setText(desc);
+    }
+
+    @OnClick(R.id.btn_update)
+    void update() {
+        final File file = new File(getContext().getExternalCacheDir(), "update.apk");
+        final ProgressDialog progressDialog = new ProgressDialog(getContext(), AlertDialog.THEME_DEVICE_DEFAULT_LIGHT);
+        progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
+        progressDialog.setTitle("正在下载");
+        progressDialog.setProgress(0);
+        progressDialog.setCancelable(false);
+        progressDialog.show();
+        FileDownloader.getImpl().create(url)
+                .setPath(file.getPath())
+                .setListener(new FileDownloadListener() {
+                    @Override
+                    protected void pending(BaseDownloadTask task, int soFarBytes, int totalBytes) {
+                    }
+
+                    @Override
+                    protected void connected(BaseDownloadTask task, String etag, boolean isContinue, int soFarBytes, int totalBytes) {
+                        progressDialog.show();
+                    }
+
+                    @Override
+                    protected void progress(BaseDownloadTask task, int soFarBytes, int totalBytes) {
+                        progressDialog.setProgress((int) (soFarBytes * 100L / totalBytes));
+                    }
+
+                    @Override
+                    protected void blockComplete(BaseDownloadTask task) {
+                    }
+
+                    @Override
+                    protected void retry(final BaseDownloadTask task, final Throwable ex, final int retryingTimes, final int soFarBytes) {
+                    }
+
+                    @Override
+                    protected void completed(BaseDownloadTask task) {
+                        AppUtils.installApp(file, "com.android.chmo.fileProvider");
+                        progressDialog.dismiss();
+                    }
+
+                    @Override
+                    protected void paused(BaseDownloadTask task, int soFarBytes, int totalBytes) {
+                    }
+
+                    @Override
+                    protected void error(BaseDownloadTask task, Throwable e) {
+                        progressDialog.dismiss();
+                        new AlertDialog.Builder(getContext(), AlertDialog.THEME_DEVICE_DEFAULT_LIGHT)
+                                .setPositiveButton("重试", (dialog, which) -> update())
+                                .setTitle("下载失败")
+                                .setCancelable(false)
+                                .show();
+                    }
+
+                    @Override
+                    protected void warn(BaseDownloadTask task) {
+                    }
+                }).start();
     }
+
+
 }

+ 8 - 26
app/src/main/java/com/android/chmo/ui/fragment/home/ActivitiesFragment.java

@@ -3,6 +3,7 @@ package com.android.chmo.ui.fragment.home;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
+import android.support.annotation.Nullable;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.AdapterView;
@@ -24,10 +25,6 @@ import com.android.chmo.ui.view.EmptyView;
 import com.android.chmo.ui.view.RefreshListView;
 import com.android.chmo.utils.XUtilsImage;
 import com.google.gson.Gson;
-import com.youth.banner.Banner;
-import com.youth.banner.BannerConfig;
-import com.youth.banner.listener.OnBannerListener;
-import com.youth.banner.loader.ImageLoader;
 
 import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
@@ -37,6 +34,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import butterknife.BindView;
+import cn.bingoogolapple.bgabanner.BGABanner;
 
 /**
  * Created by Administrator on 2018/7/31.
@@ -49,7 +47,7 @@ public class ActivitiesFragment extends BaseFragment implements RefreshListView.
     EmptyView       emptyView;
 
     private ActivitiesAdapter                activitiesAdapter;
-    private Banner                           banner;
+    private BGABanner                        banner;
     private List<TopActivityRes.TopActivity> topActivities;
 
     private int                  pageNo = 1;
@@ -87,20 +85,10 @@ public class ActivitiesFragment extends BaseFragment implements RefreshListView.
         refreshListView.setRefreshListener(this);
         View header = LayoutInflater.from(this.getActivity()).inflate(R.layout.header_activity, refreshListView.getListView(), false);
         banner = header.findViewById(R.id.banner);
-        banner.setBannerStyle(BannerConfig.NOT_INDICATOR);
-        banner.setImageLoader(new ImageLoader() {
-            @Override
-            public void displayImage(Context context, Object path, ImageView imageView) {
-                XUtilsImage.display(imageView, HttpApi.getImgUrl(((TopActivityRes.TopActivity) path).Pic), ImageView.ScaleType.CENTER_CROP, R.mipmap.def_img2);
-            }
-        });
-        banner.setOnBannerListener(new OnBannerListener() {
-            @Override
-            public void OnBannerClick(int position) {
-                WebViewActivity.start(getActivity(), topActivities.get(position).url, topActivities.get(position).PK, "");
-            }
+        banner.setAdapter((BGABanner.Adapter<ImageView, TopActivityRes.TopActivity>) (banner, itemView, model, position) -> {
+            XUtilsImage.display(itemView, HttpApi.getImgUrl(model.Pic));
         });
-        banner.start();
+        banner.setDelegate((banner, itemView, model, position) -> WebViewActivity.start(getActivity(), topActivities.get(position).url, topActivities.get(position).PK, ""));
         refreshListView.getListView().addHeaderView(header);
 
         activitiesAdapter = new ActivitiesAdapter(getBaseActivity());
@@ -129,13 +117,7 @@ public class ActivitiesFragment extends BaseFragment implements RefreshListView.
 
     @Override
     public void onLoadMore() {
-        refreshListView.postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                loadActivities(pageNo + 1);
-            }
-        }, 500);
-
+        loadActivities(pageNo + 1);
     }
 
     private void loadActivities(final int page) {
@@ -146,7 +128,7 @@ public class ActivitiesFragment extends BaseFragment implements RefreshListView.
                     TopActivityRes res = new Gson().fromJson(result, TopActivityRes.class);
                     if ("success".equals(res.msg)) {
                         topActivities = res.data;
-                        banner.update(res.data);
+                        banner.setData(res.data, null);
                     }
                 }
 

+ 20 - 7
app/src/main/java/com/android/chmo/ui/view/TopBar.java

@@ -32,11 +32,12 @@ public class TopBar extends RelativeLayout {
     @BindView(R.id.border)
     View      border;
 
-    private String  title    = "";
-    private boolean showBack = true;
-    private int     background;
-    private boolean showBorder;
-    private int     style;
+    private String              title    = "";
+    private boolean             showBack = true;
+    private int                 background;
+    private boolean             showBorder;
+    private int                 style;
+    private OnBackClickListener onBackClickListener;
 
     public TopBar(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -78,8 +79,12 @@ public class TopBar extends RelativeLayout {
 
     @OnClick(R.id.back)
     void onClick() {
-        Activity activity = (Activity) getContext();
-        activity.finish();
+        if (onBackClickListener != null) {
+            onBackClickListener.onBackClick();
+        } else {
+            Activity activity = (Activity) getContext();
+            activity.finish();
+        }
     }
 
 
@@ -98,4 +103,12 @@ public class TopBar extends RelativeLayout {
         rightView.setOnClickListener(listener);
     }
 
+    public void setOnBackClickListener(OnBackClickListener onBackClickListener) {
+        this.onBackClickListener = onBackClickListener;
+    }
+
+    public interface OnBackClickListener {
+        void onBackClick();
+    }
+
 }

+ 5 - 0
app/src/main/res/anim/decelerate_interpolator.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<decelerateInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
+    android:factor="1.5">
+
+</decelerateInterpolator>

+ 1 - 1
app/src/main/res/anim/dialog_enter.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <set xmlns:android="http://schemas.android.com/apk/res/android"
-    android:interpolator="@android:anim/decelerate_interpolator">
+    android:interpolator="@anim/decelerate_interpolator">
 
     <translate
         android:duration="200"

+ 1 - 1
app/src/main/res/anim/dialog_exit.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <set xmlns:android="http://schemas.android.com/apk/res/android"
-    android:interpolator="@android:anim/decelerate_interpolator">
+    android:interpolator="@anim/decelerate_interpolator">
 
     <translate
         android:duration="200"

+ 7 - 5
app/src/main/res/anim/push_left_in.xml

@@ -1,6 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<translate xmlns:android="http://schemas.android.com/apk/res/android"
-    android:duration="@android:integer/config_shortAnimTime"
-    android:fromXDelta="-100%p"
-    android:interpolator="@android:anim/decelerate_interpolator"
-    android:toXDelta="0" />
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+    android:duration="300"
+    android:interpolator="@anim/decelerate_interpolator">
+    <translate
+        android:fromXDelta="-50%"
+        android:toXDelta="0" />
+</set>

+ 7 - 5
app/src/main/res/anim/push_left_out.xml

@@ -1,6 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<translate xmlns:android="http://schemas.android.com/apk/res/android"
-    android:duration="@android:integer/config_shortAnimTime"
-    android:fromXDelta="0"
-    android:interpolator="@android:anim/decelerate_interpolator"
-    android:toXDelta="-100%p" />
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+    android:duration="300"
+    android:interpolator="@anim/decelerate_interpolator">
+    <translate
+        android:fromXDelta="0"
+        android:toXDelta="-50%p" />
+</set>

+ 7 - 5
app/src/main/res/anim/push_right_in.xml

@@ -1,6 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<translate xmlns:android="http://schemas.android.com/apk/res/android"
-    android:duration="@android:integer/config_shortAnimTime"
-    android:fromXDelta="100%p"
-    android:interpolator="@android:anim/decelerate_interpolator"
-    android:toXDelta="0" />
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+    android:duration="300"
+    android:interpolator="@anim/decelerate_interpolator">
+    <translate
+        android:fromXDelta="100%"
+        android:toXDelta="0" />
+</set>

+ 6 - 5
app/src/main/res/anim/push_right_out.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
-<translate xmlns:android="http://schemas.android.com/apk/res/android"
-    android:duration="@android:integer/config_shortAnimTime"
-    android:fromXDelta="0"
-    android:interpolator="@android:anim/decelerate_interpolator"
-    android:toXDelta="100%p" />
+<set xmlns:android="http://schemas.android.com/apk/res/android"
+    android:duration="300">
+    <translate
+        android:fromXDelta="0"
+        android:toXDelta="100%" />
+</set>

+ 5 - 0
app/src/main/res/drawable/bg_version.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="9dp" />
+    <solid android:color="@color/white" />
+</shape>

+ 1 - 1
app/src/main/res/layout/activity_about.xml

@@ -73,7 +73,7 @@
                         android:layout_weight="1"
                         android:textColor="@color/black"
                         android:textSize="14sp"
-                        android:text="电话:15805170379"/>
+                        android:text="电话:17768144625"/>
 
                     <ImageView
                        style="@style/Arrow" />

+ 40 - 5
app/src/main/res/layout/activity_web_view.xml

@@ -4,15 +4,50 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:background="@color/pink"
+    android:fitsSystemWindows="true"
     android:orientation="vertical"
     tools:context=".ui.activity.WebViewActivity">
 
-    <com.android.chmo.ui.view.TopBar
-        android:id="@+id/top_bar"
+    <RelativeLayout
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:background="@color/white"
-        app:showBorder="true" />
+        android:layout_height="50dp">
+
+        <ImageView
+            android:id="@+id/btn_back"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_alignParentLeft="true"
+            android:layout_centerVertical="true"
+            android:paddingLeft="12dp"
+            android:paddingRight="15dp"
+            android:scaleType="centerInside"
+            android:src="@mipmap/nav_return_baise" />
+
+        <ImageView
+            android:id="@+id/btn_share"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:paddingLeft="15dp"
+            android:paddingRight="15dp"
+            android:src="@mipmap/icon_fenxiang_baise" />
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:id="@+id/tv_title"
+            android:layout_marginLeft="50dp"
+            android:layout_marginRight="50dp"
+            android:ellipsize="end"
+            android:lines="1"
+            android:text="谁是舞王模特大赛谁是舞王模特大赛"
+            android:textAlignment="center"
+            android:textColor="#ffffffff"
+            android:textSize="19sp" />
+    </RelativeLayout>
 
     <RelativeLayout
         android:layout_width="match_parent"

+ 1 - 1
app/src/main/res/layout/activity_withdraw_success.xml

@@ -46,7 +46,7 @@
         android:layout_alignParentBottom="true"
         android:layout_centerHorizontal="true"
         android:layout_marginBottom="10dp"
-        android:text="客服热线:15805170379"
+        android:text="客服热线:17768144625"
         android:textColor="#ff4d4d4d"
         android:textSize="12sp" />
 </RelativeLayout>

+ 56 - 9
app/src/main/res/layout/dialog_update.xml

@@ -1,16 +1,63 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="280dp"
     android:layout_height="wrap_content"
     android:orientation="vertical">
 
     <ImageView
         android:layout_width="match_parent"
-        android:layout_height="210dp" />
+        android:layout_height="207dp"
+        android:scaleType="fitXY"
+        android:src="@mipmap/img_xinbanben" />
 
-    <Button
-        style="@style/largeBtn"
-        android:layout_marginLeft="25dp"
-        android:layout_marginRight="25dp"
-        android:text="立即更新" />
-</LinearLayout>
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="20dp"
+        android:layout_marginTop="26dp"
+        android:text="发现新版本"
+        android:textColor="#ffffffff"
+        android:textSize="19sp" />
+
+    <TextView
+        android:id="@+id/tv_version"
+        android:layout_width="wrap_content"
+        android:layout_height="18dp"
+        android:layout_marginLeft="20dp"
+        android:layout_marginTop="54dp"
+        android:background="@drawable/bg_version"
+        android:gravity="center"
+        android:paddingLeft="10dp"
+        android:paddingRight="10dp"
+        android:text="1.1.0"
+        android:textColor="#ffff4095"
+        android:textSize="12sp" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="175dp"
+        android:background="@drawable/bg_ad"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/tv_desc"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="40dp"
+            android:layout_marginRight="40dp"
+            android:text="更新的内容文字内容文字"
+            android:textColor="#ff4d4d4d"
+            android:textSize="14sp" />
+
+        <Button
+            android:id="@+id/btn_update"
+            style="@style/largeBtn"
+            android:layout_marginLeft="25dp"
+            android:layout_marginTop="36dp"
+            android:layout_marginRight="25dp"
+            android:layout_marginBottom="25dp"
+            android:text="立即更新" />
+    </LinearLayout>
+
+</RelativeLayout>

+ 14 - 2
app/src/main/res/layout/header_activity.xml

@@ -1,13 +1,25 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout 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="250dp">
 
-    <com.youth.banner.Banner
+    <!--<com.youth.banner.Banner-->
+    <!--android:id="@+id/banner"-->
+    <!--android:layout_width="match_parent"-->
+    <!--android:layout_height="210dp"-->
+    <!--android:background="#F2F4F5" />-->
+    <cn.bingoogolapple.bgabanner.BGABanner
         android:id="@+id/banner"
         android:layout_width="match_parent"
         android:layout_height="210dp"
-        android:background="#F2F4F5" />
+        android:background="#F2F4F5"
+        app:banner_pageChangeDuration="2000"
+        app:banner_pointAutoPlayAble="false"
+        app:banner_pointContainerBackground="@android:color/transparent"
+        app:banner_pointDrawable="@android:color/transparent"
+        app:banner_pointTopBottomMargin="15dp"
+        app:banner_transitionEffect="alpha" />
 
     <TextView
         android:layout_width="match_parent"

二進制
app/src/main/res/mipmap-hdpi/img_qidong.png


二進制
app/src/main/res/mipmap-hdpi/img_xinbanben.png


二進制
app/src/main/res/mipmap-xhdpi/img_qidong.png


二進制
app/src/main/res/mipmap-xhdpi/img_xinbanben.png


二進制
app/src/main/res/mipmap-xxhdpi/img_qidong.png


二進制
app/src/main/res/mipmap-xxhdpi/img_xinbanben.png


二進制
app/src/main/res/mipmap-xxxhdpi/img_qidong.png


二進制
app/src/main/res/mipmap-xxxhdpi/img_xinbanben.png


+ 8 - 0
app/src/main/res/values-v19/styles.xml

@@ -10,6 +10,14 @@
         <item name="windowNoTitle">true</item>
         <item name="android:windowTranslucentStatus">true</item>
         <item name="android:windowBackground">@color/bg</item>
+        <item name="android:windowAnimationStyle">@style/AnimationActivity</item>
+    </style>
+
+    <style name="AnimationActivity" parent="@android:style/Animation.Activity">
+        <item name="android:activityOpenEnterAnimation">@anim/push_right_in</item>
+        <item name="android:activityOpenExitAnimation">@anim/push_left_out</item>
+        <item name="android:activityCloseEnterAnimation">@anim/push_left_in</item>
+        <item name="android:activityCloseExitAnimation">@anim/push_right_out</item>
     </style>
 
     <style name="ThemeScreen" parent="AppTheme">

+ 8 - 0
app/src/main/res/values-v21/styles.xml

@@ -10,6 +10,14 @@
         <item name="windowNoTitle">true</item>
         <item name="android:windowTranslucentStatus">true</item>
         <item name="android:windowBackground">@color/bg</item>
+        <item name="android:windowAnimationStyle">@style/AnimationActivity</item>
+    </style>
+
+    <style name="AnimationActivity" parent="@android:style/Animation.Activity">
+        <item name="android:activityOpenEnterAnimation">@anim/push_right_in</item>
+        <item name="android:activityOpenExitAnimation">@anim/push_left_out</item>
+        <item name="android:activityCloseEnterAnimation">@anim/push_left_in</item>
+        <item name="android:activityCloseExitAnimation">@anim/push_right_out</item>
     </style>
 
     <style name="ThemeScreen" parent="AppTheme">

+ 7 - 0
app/src/main/res/values/styles.xml

@@ -8,8 +8,15 @@
         <item name="windowActionBar">false</item>
         <item name="android:windowBackground">@color/bg</item>
         <item name="windowNoTitle">true</item>
+        <item name="android:windowAnimationStyle">@style/AnimationActivity</item>
     </style>
 
+    <style name="AnimationActivity" parent="@android:style/Animation.Activity">
+        <item name="android:activityOpenEnterAnimation">@anim/push_right_in</item>
+        <item name="android:activityOpenExitAnimation">@anim/push_left_out</item>
+        <item name="android:activityCloseEnterAnimation">@anim/push_left_in</item>
+        <item name="android:activityCloseExitAnimation">@anim/push_right_out</item>
+    </style>
 
     <style name="ThemeSplash" parent="AppTheme">
         <item name="android:windowBackground">@mipmap/welcome</item>