xiongzhu 7 лет назад
Родитель
Сommit
8ab008510c
100 измененных файлов с 2777 добавлено и 460 удалено
  1. 10 1
      app/build.gradle
  2. 105 112
      app/src/main/AndroidManifest.xml
  3. 34 7
      app/src/main/java/com/android/chmo/base/BaseActivity.java
  4. 1 4
      app/src/main/java/com/android/chmo/http/HttpApi.java
  5. 31 0
      app/src/main/java/com/android/chmo/http/response/GetCurrentShareCoinResponse.java
  6. 57 0
      app/src/main/java/com/android/chmo/http/response/MyWalletResponse.java
  7. 52 0
      app/src/main/java/com/android/chmo/http/response/PromoteRes.java
  8. 36 7
      app/src/main/java/com/android/chmo/http/service/UserService.java
  9. 31 0
      app/src/main/java/com/android/chmo/model/Promote.java
  10. 31 0
      app/src/main/java/com/android/chmo/model/WalletRecord.java
  11. 4 4
      app/src/main/java/com/android/chmo/ui/activity/MainActivity.java
  12. 137 0
      app/src/main/java/com/android/chmo/ui/activity/MyWalletActivity.java
  13. 39 16
      app/src/main/java/com/android/chmo/ui/activity/WelcomeActivity.java
  14. 123 0
      app/src/main/java/com/android/chmo/ui/activity/WithdrawActivity.java
  15. 20 0
      app/src/main/java/com/android/chmo/ui/activity/WithdrawSuccessActivity.java
  16. 21 68
      app/src/main/java/com/android/chmo/ui/activity/me/RechargeActivity.java
  17. 106 0
      app/src/main/java/com/android/chmo/ui/activity/promote/PromoteActivity.java
  18. 51 0
      app/src/main/java/com/android/chmo/ui/activity/promote/PromoteDetailActivity.java
  19. 61 0
      app/src/main/java/com/android/chmo/ui/activity/promote/ShareActivity.java
  20. 58 0
      app/src/main/java/com/android/chmo/ui/adpater/MyWalletAdapter.java
  21. 103 0
      app/src/main/java/com/android/chmo/ui/adpater/PromoteAdapter.java
  22. 78 0
      app/src/main/java/com/android/chmo/ui/dialog/PickMonthDialog.java
  23. 65 0
      app/src/main/java/com/android/chmo/ui/dialog/ShareDialog.java
  24. 12 12
      app/src/main/java/com/android/chmo/ui/fragment/FindFragment.java
  25. 1 1
      app/src/main/java/com/android/chmo/ui/fragment/MessageFragment.java
  26. 4 14
      app/src/main/java/com/android/chmo/ui/fragment/MineFragment.java
  27. 42 20
      app/src/main/java/com/android/chmo/ui/view/TopBar.java
  28. 8 0
      app/src/main/res/anim/dialog_enter.xml
  29. 8 0
      app/src/main/res/anim/dialog_exit.xml
  30. 2 1
      app/src/main/res/anim/push_left_in.xml
  31. 2 1
      app/src/main/res/anim/push_left_out.xml
  32. 2 1
      app/src/main/res/anim/push_right_in.xml
  33. 2 1
      app/src/main/res/anim/push_right_out.xml
  34. 5 0
      app/src/main/res/color/color_recharge_hint.xml
  35. 5 0
      app/src/main/res/color/color_recharge_title.xml
  36. 5 0
      app/src/main/res/drawable/bg_btn_recharge.xml
  37. 5 0
      app/src/main/res/drawable/bg_cell.xml
  38. 1 1
      app/src/main/res/drawable/bg_mine.xml
  39. 9 0
      app/src/main/res/drawable/bg_promote.xml
  40. 11 0
      app/src/main/res/drawable/bg_promote_content.xml
  41. 5 0
      app/src/main/res/drawable/bg_promote_item.xml
  42. 5 0
      app/src/main/res/drawable/bg_qrcode.xml
  43. 5 0
      app/src/main/res/drawable/bg_recharge_selected.xml
  44. 5 0
      app/src/main/res/drawable/bg_recharge_selector.xml
  45. 7 0
      app/src/main/res/drawable/bg_skip.xml
  46. 9 0
      app/src/main/res/drawable/bg_wallet_list.xml
  47. 2 2
      app/src/main/res/drawable/radio.xml
  48. 22 17
      app/src/main/res/layout/activity_broker_info.xml
  49. 111 0
      app/src/main/res/layout/activity_my_wallet.xml
  50. 145 0
      app/src/main/res/layout/activity_promote.xml
  51. 19 0
      app/src/main/res/layout/activity_promote_detail.xml
  52. 341 133
      app/src/main/res/layout/activity_recharge.xml
  53. 104 0
      app/src/main/res/layout/activity_share.xml
  54. 33 4
      app/src/main/res/layout/activity_welcome.xml
  55. 158 0
      app/src/main/res/layout/activity_withdraw.xml
  56. 52 0
      app/src/main/res/layout/activity_withdraw_success.xml
  57. 95 0
      app/src/main/res/layout/dialog_pick_month.xml
  58. 68 0
      app/src/main/res/layout/dialog_share.xml
  59. 66 0
      app/src/main/res/layout/header_promote.xml
  60. 51 0
      app/src/main/res/layout/list_promote.xml
  61. 50 0
      app/src/main/res/layout/list_wallet.xml
  62. 9 7
      app/src/main/res/layout/page_broker.xml
  63. 9 7
      app/src/main/res/layout/page_find.xml
  64. 9 5
      app/src/main/res/layout/page_message.xml
  65. 5 3
      app/src/main/res/layout/page_mine.xml
  66. 14 11
      app/src/main/res/layout/top_bar.xml
  67. BIN
      app/src/main/res/mipmap-hdpi/btu_yaoqing.png
  68. BIN
      app/src/main/res/mipmap-hdpi/erweima.png
  69. BIN
      app/src/main/res/mipmap-hdpi/icon_back_black.png
  70. BIN
      app/src/main/res/mipmap-hdpi/icon_back_white.png
  71. BIN
      app/src/main/res/mipmap-hdpi/icon_chenggong.png
  72. BIN
      app/src/main/res/mipmap-hdpi/icon_riqi.png
  73. BIN
      app/src/main/res/mipmap-hdpi/icon_weixin.png
  74. BIN
      app/src/main/res/mipmap-hdpi/icon_weixuanzhong.png
  75. BIN
      app/src/main/res/mipmap-hdpi/icon_xuanzhong.png
  76. BIN
      app/src/main/res/mipmap-hdpi/icon_zhifubao.png
  77. BIN
      app/src/main/res/mipmap-hdpi/img_qidong.png
  78. BIN
      app/src/main/res/mipmap-hdpi/img_top_logo.png
  79. BIN
      app/src/main/res/mipmap-hdpi/img_wodeshouyi.png
  80. BIN
      app/src/main/res/mipmap-hdpi/img_yaoqing_bg.png
  81. BIN
      app/src/main/res/mipmap-hdpi/logo.png
  82. BIN
      app/src/main/res/mipmap-hdpi/share_icon_pengyouquan.png
  83. BIN
      app/src/main/res/mipmap-hdpi/share_icon_qq.png
  84. BIN
      app/src/main/res/mipmap-hdpi/share_icon_qqkongjian.png
  85. BIN
      app/src/main/res/mipmap-hdpi/share_icon_weixin.png
  86. BIN
      app/src/main/res/mipmap-hdpi/share_icon_xinlang.png
  87. BIN
      app/src/main/res/mipmap-hdpi/text_yonghuduan.png
  88. BIN
      app/src/main/res/mipmap-mdpi/ic_launcher.png
  89. BIN
      app/src/main/res/mipmap-xhdpi/btu_yaoqing.png
  90. BIN
      app/src/main/res/mipmap-xhdpi/erweima.png
  91. BIN
      app/src/main/res/mipmap-xhdpi/icon_back_black.png
  92. BIN
      app/src/main/res/mipmap-xhdpi/icon_back_white.png
  93. BIN
      app/src/main/res/mipmap-xhdpi/icon_chenggong.png
  94. BIN
      app/src/main/res/mipmap-xhdpi/icon_riqi.png
  95. BIN
      app/src/main/res/mipmap-xhdpi/icon_weixin.png
  96. BIN
      app/src/main/res/mipmap-xhdpi/icon_weixuanzhong.png
  97. BIN
      app/src/main/res/mipmap-xhdpi/icon_xuanzhong.png
  98. BIN
      app/src/main/res/mipmap-xhdpi/icon_zhifubao.png
  99. BIN
      app/src/main/res/mipmap-xhdpi/img_qidong.png
  100. BIN
      app/src/main/res/mipmap-xhdpi/img_top_logo.png

+ 10 - 1
app/build.gradle

@@ -47,6 +47,10 @@ android {
         cruncherEnabled = false
         useNewCruncher = false
     }
+    compileOptions {
+        sourceCompatibility = '1.8'
+        targetCompatibility = '1.8'
+    }
 
 
 }
@@ -57,7 +61,8 @@ task copyDownloadableDepsToLibs(type: Copy) {
 
 dependencies {
     implementation fileTree(include: ['*.jar'], dir: 'libs')
-    implementation 'com.android.support:appcompat-v7:26.+'
+    implementation 'com.android.support:appcompat-v7:26.1.0'
+    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
     annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
     implementation 'com.jakewharton:butterknife:8.8.1'
     implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.5.1'
@@ -84,4 +89,8 @@ dependencies {
     implementation 'com.netease.nimlib:avchat:5.4.0'
     implementation project(':avchatkit')
     implementation 'com.github.dmytrodanylyk.shadow-layout:library:1.0.3'
+    implementation 'com.android.support:support-v4:26.1.0'
+    implementation 'com.github.kenglxn.QRGen:android:2.5.0'
+    implementation 'com.android.support:recyclerview-v7:26.1.0'
+    implementation 'cn.aigestudio.wheelpicker:WheelPicker:1.1.2'
 }

+ 105 - 112
app/src/main/AndroidManifest.xml

@@ -3,6 +3,8 @@
     xmlns:tools="http://schemas.android.com/tools"
     package="com.android.chmo">
 
+    <uses-sdk tools:overrideLibrary="com.huawei.android.hms.base,com.huawei.android.hms.push" />
+
     <uses-permission android:name="android.permission.INTERNET" />
     <uses-permission android:name="android.permission.WAKE_LOCK" />
     <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
@@ -16,9 +18,9 @@
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
     <uses-permission android:name="android.permission.CALL_PHONE" />
-    <!--用于进行网络定位-->
+    <!-- 用于进行网络定位 -->
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
-    <!--用于访问GPS定位-->
+    <!-- 用于访问GPS定位 -->
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
     <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
@@ -26,49 +28,57 @@
     <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
 
     <!-- 多媒体相关 -->
-    <uses-permission android:name="android.permission.CAMERA"/>
-    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
-    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
+    <uses-permission android:name="android.permission.CAMERA" />
+    <uses-permission android:name="android.permission.RECORD_AUDIO" />
+    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 
     <!-- 控制呼吸灯,振动器等,用于新消息提醒 -->
     <uses-permission android:name="android.permission.FLASHLIGHT" />
     <uses-permission android:name="android.permission.VIBRATE" />
-
     <uses-permission android:name="android.permission.BLUETOOTH" />
     <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
-    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
-    <uses-permission android:name="android.permission.BROADCAST_STICKY"/>
+    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
+    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
+
     <uses-feature android:name="android.hardware.camera" />
     <uses-feature android:name="android.hardware.camera.autofocus" />
-    <uses-feature android:glEsVersion="0x00020000" android:required="true" />
+    <uses-feature
+        android:glEsVersion="0x00020000"
+        android:required="true" />
 
     <!-- 和下面的 uses-permission 一起加入到你的 AndroidManifest 文件中。 -->
     <permission
         android:name="com.android.chmo.permission.RECEIVE_MSG"
-        android:protectionLevel="signature"/>
+        android:protectionLevel="signature" />
     <!-- 接收 SDK 消息广播权限, 第三方 APP 接入时,请将 com.netease.nim.demo 替换为自己的包名 -->
-    <uses-permission android:name="com.android.chmo.permission.RECEIVE_MSG"/>
+    <uses-permission android:name="com.android.chmo.permission.RECEIVE_MSG" />
 
     <!-- 小米推送 -->
     <permission
         android:name="com.android.chmo.permission.MIPUSH_RECEIVE"
         android:protectionLevel="signature" />
+
     <uses-permission android:name="com.android.chmo.permission.MIPUSH_RECEIVE" />
+    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
+    <!-- 魅族推送 -->
 
-    <uses-sdk tools:overrideLibrary="com.huawei.android.hms.base,com.huawei.android.hms.push" />
-    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
-    <!--魅族推送-->
 
-    <!-- 兼容flyme5.0以下版本,魅族内部集成pushSDK必填,不然无法收到消息-->
+    <!-- 兼容flyme5.0以下版本,魅族内部集成pushSDK必填,不然无法收到消息 -->
     <uses-permission android:name="com.meizu.flyme.push.permission.RECEIVE" />
-    <permission android:name="com.android.chmo.push.permission.MESSAGE"
-        android:protectionLevel="signature"/>
+
+    <permission
+        android:name="com.android.chmo.push.permission.MESSAGE"
+        android:protectionLevel="signature" />
+
     <uses-permission android:name="com.android.chmo.push.permission.MESSAGE" />
-    <!--  兼容flyme3.0配置权限-->
+    <!-- 兼容flyme3.0配置权限 -->
     <uses-permission android:name="com.meizu.c2dm.permission.RECEIVE" />
-    <permission android:name="com.android.chmo.permission.C2D_MESSAGE"
+
+    <permission
+        android:name="com.android.chmo.permission.C2D_MESSAGE"
         android:protectionLevel="signature" />
-    <uses-permission android:name="com.android.chmo.permission.C2D_MESSAGE"/>
+
+    <uses-permission android:name="com.android.chmo.permission.C2D_MESSAGE" />
 
     <application
         android:name=".app.ChmoApplication"
@@ -77,7 +87,6 @@
         android:label="@string/app_name"
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
-
         <activity
             android:name=".ui.activity.WelcomeActivity"
             android:screenOrientation="portrait"
@@ -88,207 +97,184 @@
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
-
         <activity
             android:name=".ui.activity.GuideActivity"
             android:screenOrientation="portrait"
-            android:theme="@style/ThemeScreen"></activity>
-
+            android:theme="@style/ThemeScreen" />
         <activity
             android:name=".ui.activity.LoginActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden">
-
-        </activity>
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.RegisterActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.me.ForgetPwdActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.MainActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.model.ModelDetailActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.model.ModelReserveActivty"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.order.SubmitOrderActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.order.PayOrderActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.order.MyOrderActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.order.OrderDetailActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.order.VideoOrderActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.model.ModelZoneActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.model.ModelZoneDetailActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.model.BrokerModelActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.model.BrokerInfoActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.model.SearchModelActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.model.SearchResultActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.activities.ActivitiesDetailActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.activities.SignInActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.me.RechargeActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.find.FindDetailActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.model.ShowImageActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.me.ModifyNameActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.me.MySignActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.message.LocationMapActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.activities.BannerInfoActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
-
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.me.ProtocolActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.me.AboutActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.model.ModelReportActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
-
+            android:windowSoftInputMode="adjustPan|stateHidden" />
         <activity
             android:name=".ui.activity.me.SettingsActivity"
             android:screenOrientation="portrait"
             android:theme="@style/ThemeScreen"
-            android:windowSoftInputMode="adjustPan|stateHidden"></activity>
+            android:windowSoftInputMode="adjustPan|stateHidden" />
+
+        <!-- <receiver android:name=".receiver.VChatReceiver"> -->
+        <!-- <intent-filter> -->
+        <!-- <action android:name="android.chmo.action.CALL"/> -->
+        <!-- <action android:name="android.chmo.action.INCOMING"/> -->
+        <!-- <action android:name="android.chmo.action.BEGIN_VIDEO"/> -->
+        <!-- <action android:name="android.chmo.action.END_VIDEO"/> -->
+        <!-- </intent-filter> -->
+        <!-- </receiver> -->
 
-        <!--<receiver android:name=".receiver.VChatReceiver">-->
-            <!--<intent-filter>-->
-                <!--<action android:name="android.chmo.action.CALL"/>-->
-                <!--<action android:name="android.chmo.action.INCOMING"/>-->
-                <!--<action android:name="android.chmo.action.BEGIN_VIDEO"/>-->
-                <!--<action android:name="android.chmo.action.END_VIDEO"/>-->
-            <!--</intent-filter>-->
-        <!--</receiver>-->
 
-        <!-- 支付宝-->
+        <!-- 支付宝 -->
         <activity
             android:name="com.alipay.sdk.app.H5PayActivity"
             android:configChanges="orientation|keyboardHidden|navigation|screenSize"
             android:exported="false"
             android:screenOrientation="behind"
-            android:windowSoftInputMode="adjustResize|stateHidden" >
-        </activity>
+            android:windowSoftInputMode="adjustResize|stateHidden" />
         <activity
             android:name="com.alipay.sdk.app.H5AuthActivity"
             android:configChanges="orientation|keyboardHidden|navigation"
             android:exported="false"
             android:screenOrientation="behind"
-            android:windowSoftInputMode="adjustResize|stateHidden" >
-        </activity>
+            android:windowSoftInputMode="adjustResize|stateHidden" />
 
         <!-- 微信 -->
         <activity
@@ -297,13 +283,10 @@
             android:exported="true"
             android:screenOrientation="portrait"
             android:theme="@android:style/Theme.Translucent.NoTitleBar" />
-
         <activity
             android:name=".wxapi.WXPayEntryActivity"
-            android:label="@string/app_name"
             android:exported="true"
-            />
-
+            android:label="@string/app_name" />
 
         <meta-data
             android:name="com.amap.api.v2.apikey"
@@ -313,8 +296,10 @@
             android:name="com.google.android.maps"
             android:required="false" />
 
-        <!-- APP key, 可以在这里设置,也可以在 SDKOptions 中提供。
-           如果 SDKOptions 中提供了,取 SDKOptions 中的值。 -->
+        <!--
+           APP key, 可以在这里设置,也可以在 SDKOptions 中提供。
+           如果 SDKOptions 中提供了,取 SDKOptions 中的值。
+        -->
         <meta-data
             android:name="com.netease.nim.appKey"
             android:value="c545b95fd20d5a20d0d1220dc6831e4d" />
@@ -322,35 +307,36 @@
         <!-- 云信后台服务,请使用独立进程。 -->
         <service
             android:name="com.netease.nimlib.service.NimService"
-            android:process=":core"/>
+            android:process=":core" />
 
         <!-- 云信后台辅助服务 -->
         <service
             android:name="com.netease.nimlib.service.NimService$Aux"
-            android:process=":core"/>
+            android:process=":core" />
 
         <!-- 云信后台辅助服务 -->
         <service
             android:name="com.netease.nimlib.job.NIMJobService"
             android:exported="true"
             android:permission="android.permission.BIND_JOB_SERVICE"
-            android:process=":core"/>
+            android:process=":core" />
 
         <!-- 云信监视系统启动和网络变化的广播接收器,保持和 NimService 同一进程 -->
-        <receiver android:name="com.netease.nimlib.service.NimReceiver"
-            android:process=":core"
-            android:exported="false">
+        <receiver
+            android:name="com.netease.nimlib.service.NimReceiver"
+            android:exported="false"
+            android:process=":core">
             <intent-filter>
-                <action android:name="android.intent.action.BOOT_COMPLETED"/>
-                <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
+                <action android:name="android.intent.action.BOOT_COMPLETED" />
+                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
             </intent-filter>
         </receiver>
 
         <!-- 云信进程间通信 Receiver -->
-        <receiver android:name="com.netease.nimlib.service.ResponseReceiver"/>
+        <receiver android:name="com.netease.nimlib.service.ResponseReceiver" />
 
         <!-- 云信进程间通信service -->
-        <service android:name="com.netease.nimlib.service.ResponseService"/>
+        <service android:name="com.netease.nimlib.service.ResponseService" />
 
         <!-- 云信进程间通信provider -->
         <!-- android:authorities="{包名}.ipc.provider", 请将com.netease.nim.demo替换为自己的包名 -->
@@ -360,8 +346,6 @@
             android:exported="false"
             android:process=":core" />
 
-
-
         <!-- 小米推送配置 -->
         <service
             android:name="com.xiaomi.push.service.XMJobService"
@@ -369,7 +353,6 @@
             android:exported="false"
             android:permission="android.permission.BIND_JOB_SERVICE"
             android:process=":mixpush" />
-
         <service
             android:name="com.xiaomi.push.service.XMPushService"
             android:enabled="true"
@@ -383,12 +366,12 @@
                 <action android:name="com.xiaomi.push.PING_TIMER" />
             </intent-filter>
         </receiver>
-
         <receiver
             android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver"
             android:exported="true">
             <intent-filter>
                 <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
+
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </receiver>
@@ -397,7 +380,6 @@
             android:name="com.xiaomi.mipush.sdk.PushMessageHandler"
             android:enabled="true"
             android:exported="true" />
-
         <service
             android:name="com.xiaomi.mipush.sdk.MessageHandleService"
             android:enabled="true" />
@@ -412,7 +394,7 @@
             </intent-filter>
         </receiver>
 
-        <!--华为推送配置-->
+        <!-- 华为推送配置 -->
 
         <meta-data
             android:name="com.huawei.hms.client.appid"
@@ -427,6 +409,7 @@
         <!-- 第三方相关 :接收Push消息(注册、Push消息、Push连接状态)广播 -->
         <receiver android:name="com.netease.nimlib.mixpush.hw.HWPushReceiver">
             <intent-filter android:priority="0x7fffffff">
+
                 <!-- 必须,用于接收token -->
                 <action android:name="com.huawei.android.push.intent.REGISTRATION" />
                 <!-- 必须,用于接收消息 -->
@@ -436,33 +419,43 @@
                 <!-- 可选,查看push通道是否连接,不查看则不需要 -->
                 <action android:name="com.huawei.intent.action.PUSH_STATE" />
             </intent-filter>
+
             <meta-data
                 android:name="CS_cloud_ablitity"
                 android:value="successRateAnalytics" />
         </receiver>
-
         <receiver android:name="com.huawei.hms.support.api.push.PushEventReceiver">
             <intent-filter>
+
                 <!-- 接收通道发来的通知栏消息,兼容老版本Push -->
                 <action android:name="com.huawei.intent.action.PUSH" />
             </intent-filter>
         </receiver>
 
-        <!--meizu-->
+        <!-- meizu -->
         <receiver android:name="com.netease.nimlib.mixpush.mz.MZPushReceiver">
             <intent-filter android:priority="0x7fffffff">
+
                 <!-- 接收push消息 -->
                 <action android:name="com.meizu.flyme.push.intent.MESSAGE" />
                 <!-- 接收register消息 -->
                 <action android:name="com.meizu.flyme.push.intent.REGISTER.FEEDBACK" />
-                <!-- 接收unregister消息-->
+                <!-- 接收unregister消息 -->
                 <action android:name="com.meizu.flyme.push.intent.UNREGISTER.FEEDBACK" />
                 <!-- 兼容低版本Flyme3推送服务配置 -->
                 <action android:name="com.meizu.c2dm.intent.REGISTRATION" />
                 <action android:name="com.meizu.c2dm.intent.RECEIVE" />
+
                 <category android:name="com.android.chmo" />
             </intent-filter>
         </receiver>
+
+        <activity android:name=".ui.activity.promote.PromoteActivity" />
+        <activity android:name=".ui.activity.promote.ShareActivity" />
+        <activity android:name=".ui.activity.promote.PromoteDetailActivity" />
+        <activity android:name=".ui.activity.MyWalletActivity" />
+        <activity android:name=".ui.activity.WithdrawActivity" />
+        <activity android:name=".ui.activity.WithdrawSuccessActivity"></activity>
     </application>
 
 </manifest>

+ 34 - 7
app/src/main/java/com/android/chmo/base/BaseActivity.java

@@ -10,6 +10,7 @@ import android.os.Bundle;
 import android.support.annotation.Nullable;
 import android.support.v7.app.AppCompatActivity;
 import android.util.DisplayMetrics;
+import android.view.View;
 import android.widget.Toast;
 
 import com.android.chmo.R;
@@ -25,17 +26,34 @@ import butterknife.ButterKnife;
  */
 
 public abstract class BaseActivity extends AppCompatActivity {
-    private Toast toast;
-    private LoadingDialog loadingDialog;
+    public static final int STATUS_BAR_STYLE_DEFAULT       = 1 << 1;
+    public static final int STATUS_BAR_STYLE_LIGHT_CONTENT = 1 << 2;
 
+    private Toast         toast;
+    private LoadingDialog loadingDialog;
 
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setContentView(getContentResId());
         ActivityManager.getInstance().pushActivity(this);
-        StatusBarUtil.setStatusBarDrakText(this);
+        switch (getStatusBarStyle()) {
+            case STATUS_BAR_STYLE_DEFAULT:
+                StatusBarUtil.setStatusBarDrakText(this);
+                break;
+            case STATUS_BAR_STYLE_LIGHT_CONTENT:
+                StatusBarUtil.setTranslucentForCoordinatorLayout(this, 0);
+                break;
+        }
+
+        if (hideNavigationBar() && android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
+            View decorView = getWindow().getDecorView();
+            int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+                    | View.SYSTEM_UI_FLAG_FULLSCREEN;
+            decorView.setSystemUiVisibility(uiOptions);
+        }
+
+        setContentView(getContentResId());
         ButterKnife.bind(this);
         initView();
 
@@ -46,6 +64,14 @@ public abstract class BaseActivity extends AppCompatActivity {
      */
     protected abstract int getContentResId();
 
+    protected int getStatusBarStyle() {
+        return STATUS_BAR_STYLE_DEFAULT;
+    }
+
+    protected boolean hideNavigationBar() {
+        return false;
+    }
+
     /**
      * 初始化控件
      */
@@ -102,16 +128,17 @@ public abstract class BaseActivity extends AppCompatActivity {
     }
 
     public void showLoading(String loading) {
-        if(loadingDialog == null) {
+        if (loadingDialog == null) {
             loadingDialog = new LoadingDialog(this);
         }
         loadingDialog.setLoading(loading);
-        if(!loadingDialog.isShowing()) {
+        if (!loadingDialog.isShowing()) {
             loadingDialog.show();
         }
     }
+
     public void hideLoading() {
-        if(loadingDialog != null && loadingDialog.isShowing()) {
+        if (loadingDialog != null && loadingDialog.isShowing()) {
             loadingDialog.dismiss();
         }
     }

+ 1 - 4
app/src/main/java/com/android/chmo/http/HttpApi.java

@@ -13,10 +13,7 @@ import org.xutils.x;
  */
 
 public class HttpApi {
-    //    public static final String BASE_URL = "http://118.190.49.85/thmodel/";
-//    public static final String BASE_URL = "http://192.168.50.132:8081/";
-//    public static final String BASE_URL = "http://118.190.49.85/thmodeltest/";
-    public static final String BASE_URL = "http://118.190.49.85:8080/thmodeltest/";
+    public static final String BASE_URL = "http://app.chmo.net/thmodel/";
 
     public static String getImgUrl(String path) {
         if (TextUtils.isEmpty(path) || path.startsWith("http://")) {

+ 31 - 0
app/src/main/java/com/android/chmo/http/response/GetCurrentShareCoinResponse.java

@@ -0,0 +1,31 @@
+package com.android.chmo.http.response;
+
+public class GetCurrentShareCoinResponse {
+    private boolean success;
+    private double  total;
+    private double  available;
+
+    public boolean isSuccess() {
+        return success;
+    }
+
+    public void setSuccess(boolean success) {
+        this.success = success;
+    }
+
+    public double getTotal() {
+        return total;
+    }
+
+    public void setTotal(double total) {
+        this.total = total;
+    }
+
+    public double getAvailable() {
+        return available;
+    }
+
+    public void setAvailable(double available) {
+        this.available = available;
+    }
+}

+ 57 - 0
app/src/main/java/com/android/chmo/http/response/MyWalletResponse.java

@@ -0,0 +1,57 @@
+package com.android.chmo.http.response;
+
+import com.android.chmo.model.WalletRecord;
+
+import java.util.List;
+
+public class MyWalletResponse {
+    private String msg;
+    private Data   data;
+    private double allcoin;
+
+   public class Data {
+        private List<WalletRecord> data;
+        private int                count;
+
+        public List<WalletRecord> getData() {
+            return data;
+        }
+
+        public void setData(List<WalletRecord> data) {
+            this.data = data;
+        }
+
+        public int getCount() {
+            return count;
+        }
+
+        public void setCount(int count) {
+            this.count = count;
+        }
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public Data getData() {
+        return data;
+    }
+
+    public void setData(Data data) {
+        this.data = data;
+    }
+
+    public double getAllcoin() {
+        return allcoin;
+    }
+
+    public void setAllcoin(double allcoin) {
+        this.allcoin = allcoin;
+    }
+
+}

+ 52 - 0
app/src/main/java/com/android/chmo/http/response/PromoteRes.java

@@ -0,0 +1,52 @@
+package com.android.chmo.http.response;
+
+import com.android.chmo.model.Promote;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class PromoteRes extends Res {
+    private List<Promote> introduceList;
+    private String        introduceNum;
+    private String        totalCoin;
+    private boolean       success;
+
+    public PromoteRes() {
+        this.introduceList = new ArrayList<>();
+        this.introduceNum = "0";
+        this.totalCoin = "0";
+        this.success = false;
+    }
+
+    public List<Promote> getIntroduceList() {
+        return introduceList;
+    }
+
+    public void setIntroduceList(List<Promote> introduceList) {
+        this.introduceList = introduceList;
+    }
+
+    public String getIntroduceNum() {
+        return introduceNum;
+    }
+
+    public void setIntroduceNum(String introduceNum) {
+        this.introduceNum = introduceNum;
+    }
+
+    public String getTotalCoin() {
+        return totalCoin;
+    }
+
+    public void setTotalCoin(String totalCoin) {
+        this.totalCoin = totalCoin;
+    }
+
+    public boolean isSuccess() {
+        return success;
+    }
+
+    public void setSuccess(boolean success) {
+        this.success = success;
+    }
+}

+ 36 - 7
app/src/main/java/com/android/chmo/http/service/UserService.java

@@ -29,7 +29,7 @@ public class UserService {
         return HttpApi.POST(params, callback);
     }
 
-    public static Callback.Cancelable getCode(String mobile,String codeStr, RequestCallback callback) {
+    public static Callback.Cancelable getCode(String mobile, String codeStr, RequestCallback callback) {
         RequestParams params = new RequestParams("http://sdk.entinfo.cn:8061/mdsmssend.ashx");
         params.addQueryStringParameter("sn", "SDK-FHD-010-00328");
         params.addQueryStringParameter("pwd", "54774CB6E781A142206F756B3E18142C");
@@ -39,7 +39,7 @@ public class UserService {
     }
 
 
-    public static Callback.Cancelable register(String pet,String mobile, String password, RequestCallback callback) {
+    public static Callback.Cancelable register(String pet, String mobile, String password, RequestCallback callback) {
         RequestParams params = getRequestParams();
         params.addQueryStringParameter("action", "doRegister");
         params.addBodyParameter("mobile", mobile);
@@ -57,22 +57,22 @@ public class UserService {
 
     public static Callback.Cancelable getUserByPk(String pk, RequestCallback callback) {
         LoginUser user = ChmoApplication.getApp().getLoginUser();
-        RequestParams params =getRequestParams();
+        RequestParams params = getRequestParams();
         params.addQueryStringParameter("action", "getuserinfo");
         params.addQueryStringParameter("PK", pk);
         return HttpApi.GET(params, callback);
     }
 
-    public static Callback.Cancelable modifyName(String name,RequestCallback callback) {
+    public static Callback.Cancelable modifyName(String name, RequestCallback callback) {
         LoginUser user = ChmoApplication.getApp().getLoginUser();
-        RequestParams params =getRequestParams();
+        RequestParams params = getRequestParams();
         params.addQueryStringParameter("action", "doPutPet");
         params.addQueryStringParameter("PK", user.pk);
-        params.addQueryStringParameter("Pet",name);
+        params.addQueryStringParameter("Pet", name);
         return HttpApi.GET(params, callback);
     }
 
-    public static Callback.Cancelable updateHead(String path,RequestCallback callback) {
+    public static Callback.Cancelable updateHead(String path, RequestCallback callback) {
         LoginUser user = ChmoApplication.getApp().getLoginUser();
         RequestParams params = new RequestParams(HttpApi.BASE_URL + "upload");
         params.addBodyParameter("action", "hp");
@@ -116,4 +116,33 @@ public class UserService {
         params.addQueryStringParameter("reason", reason);
         return HttpApi.GET(params, callback);
     }
+
+    public static Callback.Cancelable promoteList(RequestCallback callback) {
+        LoginUser user = ChmoApplication.getApp().getLoginUser();
+        RequestParams params = getRequestParams();
+        params.addQueryStringParameter("action", "myTeam");
+        params.addQueryStringParameter("memberpk", user.pk);
+        params.addQueryStringParameter("type", "8");
+        return HttpApi.GET(params, callback);
+    }
+
+    public static Callback.Cancelable myWallet(int year, int month, int index, RequestCallback callback) {
+        LoginUser user = ChmoApplication.getApp().getLoginUser();
+        RequestParams params = getRequestParams();
+        params.addQueryStringParameter("action", "getalldetails");
+        params.addQueryStringParameter("memberpk", user.pk);
+        params.addQueryStringParameter("year", String.valueOf(year));
+        params.addQueryStringParameter("month", String.valueOf(month));
+        params.addQueryStringParameter("index", String.valueOf(index));
+        params.addQueryStringParameter("size", "10");
+        return HttpApi.GET(params, callback);
+    }
+
+    public static Callback.Cancelable getCurrentShareCoin(RequestCallback callback) {
+        LoginUser user = ChmoApplication.getApp().getLoginUser();
+        RequestParams params = getRequestParams();
+        params.addQueryStringParameter("action", "getCurrentShareCoin");
+        params.addQueryStringParameter("memberpk", user.pk);
+        return HttpApi.GET(params, callback);
+    }
 }

+ 31 - 0
app/src/main/java/com/android/chmo/model/Promote.java

@@ -0,0 +1,31 @@
+package com.android.chmo.model;
+
+public class Promote {
+    private String avatar;
+    private String name;
+    private String coin;
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCoin() {
+        return coin;
+    }
+
+    public void setCoin(String coin) {
+        this.coin = coin;
+    }
+}

+ 31 - 0
app/src/main/java/com/android/chmo/model/WalletRecord.java

@@ -0,0 +1,31 @@
+package com.android.chmo.model;
+
+public class WalletRecord {
+    private String coin;
+    private String atype;
+    private String adate;
+
+    public String getCoin() {
+        return coin;
+    }
+
+    public void setCoin(String coin) {
+        this.coin = coin;
+    }
+
+    public String getAtype() {
+        return atype;
+    }
+
+    public void setAtype(String atype) {
+        this.atype = atype;
+    }
+
+    public String getAdate() {
+        return adate;
+    }
+
+    public void setAdate(String adate) {
+        this.adate = adate;
+    }
+}

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

@@ -26,11 +26,11 @@ import butterknife.BindView;
 import butterknife.OnClick;
 
 public class MainActivity extends BaseActivity {
-    private final int FRAGMENT_HOME = 0;
-    private final int FRAGMENT_BROKER = 1;
-    private final int FRAGMENT_FIND = 2;
+    private final int FRAGMENT_HOME    = 0;
+    private final int FRAGMENT_BROKER  = 1;
+    private final int FRAGMENT_FIND    = 2;
     private final int FRAGMENT_MESSAGE = 3;
-    private final int FRAGMENT_ME = 4;
+    private final int FRAGMENT_ME      = 4;
 
     @BindView(R.id.pager)
     NoSlideViewPager mPager;

+ 137 - 0
app/src/main/java/com/android/chmo/ui/activity/MyWalletActivity.java

@@ -0,0 +1,137 @@
+package com.android.chmo.ui.activity;
+
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.TextView;
+
+import com.android.chmo.R;
+import com.android.chmo.base.BaseActivity;
+import com.android.chmo.http.RequestCallback;
+import com.android.chmo.http.response.MyWalletResponse;
+import com.android.chmo.http.service.UserService;
+import com.android.chmo.model.WalletRecord;
+import com.android.chmo.ui.activity.me.RechargeActivity;
+import com.android.chmo.ui.adpater.MyWalletAdapter;
+import com.android.chmo.ui.dialog.PickMonthDialog;
+import com.google.gson.Gson;
+import com.scwang.smartrefresh.header.WaterDropHeader;
+import com.scwang.smartrefresh.layout.SmartRefreshLayout;
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.footer.ClassicsFooter;
+import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class MyWalletActivity extends BaseActivity implements OnRefreshListener, OnLoadMoreListener, PickMonthDialog.OnPickYearMonthListener {
+    @BindView(R.id.tv_coin)
+    TextView           tvCoin;
+    @BindView(R.id.refresh_layout)
+    SmartRefreshLayout refreshLayout;
+    @BindView(R.id.recycler_view)
+    RecyclerView       recyclerView;
+
+    private MyWalletAdapter    adapter;
+    private List<WalletRecord> data;
+    private int                page = 1;
+    private int                year;
+    private int                month;
+    private PickMonthDialog    dialog;
+
+    @Override
+    protected int getContentResId() {
+        return R.layout.activity_my_wallet;
+    }
+
+    @Override
+    public void initView() {
+        refreshLayout.setRefreshHeader(new WaterDropHeader(getContext()));
+        refreshLayout.setPrimaryColorsId(R.color.pink);
+        ClassicsFooter footer = new ClassicsFooter(getContext());
+        footer.setTextSizeTitle(12);
+        refreshLayout.setRefreshFooter(footer);
+        refreshLayout.setNoMoreData(true);
+        refreshLayout.setOnRefreshListener(this);
+        refreshLayout.setOnLoadMoreListener(this);
+        data = new ArrayList<>();
+        adapter = new MyWalletAdapter(data, this);
+        recyclerView.setLayoutManager(new LinearLayoutManager(this));
+        recyclerView.setAdapter(adapter);
+        Calendar calendar = Calendar.getInstance();
+        year = calendar.get(Calendar.YEAR);
+        month = calendar.get(Calendar.MONTH) + 1;
+        dialog = new PickMonthDialog(this);
+        getData();
+    }
+
+    void getData() {
+        UserService.myWallet(year, month, page, new RequestCallback() {
+            @Override
+            public void onSuccess(String result) {
+                refreshLayout.finishRefresh();
+                refreshLayout.finishLoadMore();
+                MyWalletResponse response = new Gson().fromJson(result, MyWalletResponse.class);
+                if ("success".equals(response.getMsg())) {
+                    tvCoin.setText(String.valueOf(response.getAllcoin()));
+                    if (page == 1) {
+                        data = response.getData().getData();
+                    } else {
+                        data.addAll(response.getData().getData());
+                    }
+                    adapter.notifyDataSetChanged();
+                    if (response.getData().getCount() == data.size() || response.getData().getCount() == 0) {
+                        refreshLayout.setNoMoreData(true);
+                    }
+                }
+            }
+
+            @Override
+            public void onFailure(String error) {
+
+            }
+        });
+    }
+
+    @Override
+    protected int getStatusBarStyle() {
+        return STATUS_BAR_STYLE_LIGHT_CONTENT;
+    }
+
+    @OnClick({R.id.btn_recharge, R.id.iv_calendar})
+    void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.btn_recharge:
+                openPage(RechargeActivity.class);
+                break;
+            case R.id.iv_calendar:
+                dialog.show();
+                break;
+        }
+    }
+
+    @Override
+    public void onRefresh(RefreshLayout refreshLayout) {
+        page = 1;
+        getData();
+    }
+
+    @Override
+    public void onLoadMore(RefreshLayout refreshLayout) {
+        page++;
+        getData();
+    }
+
+    @Override
+    public void onPickYearMonth(int year, int month) {
+        this.year = year;
+        this.month = month;
+    }
+}

+ 39 - 16
app/src/main/java/com/android/chmo/ui/activity/WelcomeActivity.java

@@ -9,7 +9,11 @@ import com.android.chmo.base.BaseActivity;
 import com.android.chmo.im.IMManager;
 import com.android.chmo.model.LoginUser;
 
+import java.util.Timer;
+import java.util.TimerTask;
+
 import butterknife.BindView;
+import butterknife.OnClick;
 
 /**
  * Created by Administrator on 2018/7/31.
@@ -18,6 +22,7 @@ import butterknife.BindView;
 public class WelcomeActivity extends BaseActivity {
     @BindView(R.id.image)
     ImageView imageView;
+    private Runnable runnable;
 
     @Override
     protected int getContentResId() {
@@ -26,27 +31,45 @@ public class WelcomeActivity extends BaseActivity {
 
     @Override
     public void initView() {
-        imageView.postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                ChmoApplication.isInit = true;
-                if(SpManager.getInstance().getBoolean("appStarted")) {
-                    LoginUser user = ChmoApplication.getApp().getLoginUser();
-                    if(null != user) {
-                        IMManager.login();
-                        openPage(MainActivity.class);
-                    } else {
-                        openPage(LoginActivity.class);
-                    }
+        runnable = () -> {
+            ChmoApplication.isInit = true;
+            if (SpManager.getInstance().getBoolean("appStarted")) {
+                LoginUser user = ChmoApplication.getApp().getLoginUser();
+                if (null != user) {
+                    IMManager.login();
+                    openPage(MainActivity.class);
                 } else {
-                    openPage(GuideActivity.class);
+                    openPage(LoginActivity.class);
                 }
-
-                finish();
+            } else {
+                openPage(GuideActivity.class);
             }
-        },ChmoApplication.isInit ? 100 : 1000);
 
+            finish();
+        };
+        imageView.postDelayed(runnable, ChmoApplication.isInit ? 100 : 1000);
     }
 
+    @OnClick(R.id.btn_skip)
+    void onClick() {
+        imageView.removeCallbacks(runnable);
+        ChmoApplication.isInit = true;
+        if (SpManager.getInstance().getBoolean("appStarted")) {
+            LoginUser user = ChmoApplication.getApp().getLoginUser();
+            if (null != user) {
+                IMManager.login();
+                openPage(MainActivity.class);
+            } else {
+                openPage(LoginActivity.class);
+            }
+        } else {
+            openPage(GuideActivity.class);
+        }
+        finish();
+    }
 
+    @Override
+    protected boolean hideNavigationBar() {
+        return true;
+    }
 }

+ 123 - 0
app/src/main/java/com/android/chmo/ui/activity/WithdrawActivity.java

@@ -0,0 +1,123 @@
+package com.android.chmo.ui.activity;
+
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.text.InputFilter;
+import android.text.Spanned;
+import android.text.TextUtils;
+import android.widget.EditText;
+
+import com.android.chmo.R;
+import com.android.chmo.base.BaseActivity;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class WithdrawActivity extends BaseActivity {
+    @BindView(R.id.et_name)
+    EditText etName;
+    @BindView(R.id.et_account)
+    EditText etAccount;
+    @BindView(R.id.et_amount)
+    EditText etAmount;
+
+    @Override
+    protected int getContentResId() {
+        return R.layout.activity_withdraw;
+    }
+
+    @Override
+    public void initView() {
+        etAmount.setFilters(new InputFilter[]{new InputFilter() {
+
+            @Override
+
+            public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
+                String sourceText = source.toString();
+                String destText = dest.toString();
+                //验证删除等按键
+                if (TextUtils.isEmpty(sourceText)) {
+                    return "";
+                }
+                Pattern mPattern = Pattern.compile("([0-9]|\\.)*");
+                Matcher matcher = mPattern.matcher(source);
+                // 已经输入小数点的情况下,只能输入数字
+                if (destText.contains(".")) {
+                    if (!matcher.matches()) {
+                        return "";
+                    } else {
+                        if (".".equals(source)) {  //只能输入一个小数点
+                            return "";
+                        }
+                    }
+                    double sumText = Double.parseDouble(destText + sourceText);
+                    if (sumText > 10000) {
+                        return dest.subSequence(dstart, dend);
+                    }
+                    //验证小数点精度,保证小数点后只能输入2位
+                    int index = destText.indexOf(".");
+                    int length = dend - index;
+                    if (dest.toString() != null && dest.toString().length() > 0 && dest.toString().contains(".")) {
+                        String[] amoArr = (dest.toString()).split("\\.");
+                        int indexPoint = dest.toString().indexOf(".");
+                        if (dstart <= indexPoint) {
+                            if (dend > 0) {
+                                String temp = amoArr[0].substring(0, dend - 1) + sourceText + amoArr[0].substring(dend - 1, amoArr[0].length());
+                                if (Double.parseDouble(temp) > 10000) {
+                                    return "";
+                                }
+                            }
+                        } else if (amoArr.length > 1 && amoArr[amoArr.length - 1].length() >= 2) {
+                            return "";
+                        }
+                    }
+                    if (length > 10) {
+                        return dest.subSequence(dstart, dend);
+                    }
+                } else { // 还没有输入小数点.的情况
+                    if (source.equals(".") && dest.toString().length() == 0) {
+                        return "0.";
+                    } else {
+                        if (dest.toString() != null && dest.toString().length() > 0) {
+                            double sumDou = Double.parseDouble(dest.toString());
+                            if (sumDou > 10000) {
+                                return "";
+                            }
+                        }
+                        String[] amoArr = (dest.toString()).split("\\.");
+                        int indexPoint = dest.toString().indexOf(".");
+                        if (dstart <= indexPoint) {
+                            if (dest.toString() != null && dest.toString().length() > 0) {
+                                double sumDou = Double.parseDouble(dest.toString());
+                                if (sumDou > 10000) {
+                                    return dest.subSequence(dstart, dend);
+                                }
+                            }
+                        } else if (amoArr.length > 1 && amoArr[amoArr.length - 1].length() >= 2) {
+                            return "";
+                        } else if (source.equals(".") && dest.toString().length() - dstart > 2) {
+                            return "";
+                        }
+                    }
+                }
+                if ((destText + sourceText).length() > 10) {
+                    return dest.subSequence(dstart, dend);
+                }
+                //验证输入金额的大小
+                double sumText = Double.parseDouble(destText + sourceText);
+                if (sumText > 10000) {
+                    return dest.subSequence(dstart, dend);
+                }
+                return dest.subSequence(dstart, dend) + sourceText;
+            }
+        }});
+    }
+
+    @OnClick(R.id.btn_back)
+    void onClick() {
+        finish();
+    }
+}

+ 20 - 0
app/src/main/java/com/android/chmo/ui/activity/WithdrawSuccessActivity.java

@@ -0,0 +1,20 @@
+package com.android.chmo.ui.activity;
+
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+
+import com.android.chmo.R;
+import com.android.chmo.base.BaseActivity;
+
+public class WithdrawSuccessActivity extends BaseActivity {
+
+    @Override
+    protected int getContentResId() {
+        return R.layout.activity_withdraw_success;
+    }
+
+    @Override
+    public void initView() {
+
+    }
+}

+ 21 - 68
app/src/main/java/com/android/chmo/ui/activity/me/RechargeActivity.java

@@ -18,6 +18,7 @@ import com.android.chmo.http.response.AlipayRes;
 import com.android.chmo.http.response.PayRes;
 import com.android.chmo.http.service.OrderService;
 import com.android.chmo.model.AliPayResult;
+import com.android.chmo.ui.activity.WithdrawSuccessActivity;
 import com.android.chmo.utils.LoginUtils;
 import com.google.gson.Gson;
 
@@ -29,10 +30,6 @@ public class RechargeActivity extends BaseActivity {
     @BindView(R.id.balance)
     TextView balanceView;
 
-    @BindView(R.id.inputValue)
-    TextView valueEdit;
-    @BindView(R.id.rechargeValue)
-    TextView rechareView;
 
     @BindView(R.id.alipay_check)
     RadioButton alipayRadio;
@@ -48,32 +45,7 @@ public class RechargeActivity extends BaseActivity {
 
     @Override
     public void initView() {
-        balanceView.setText(ChmoApplication.getApp().getLoginUser().getCoin_a() + "元");
 
-        valueEdit.addTextChangedListener(new TextWatcher() {
-            @Override
-            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-            }
-
-            @Override
-            public void onTextChanged(CharSequence s, int start, int before, int count) {
-            }
-
-            @Override
-            public void afterTextChanged(Editable s) {
-               String text = s.toString();
-                if(!TextUtils.isEmpty(text)) {
-                    if(null != checkView) {
-                        checkView.setSelected(false);
-                    }
-                    try {
-                        rechareValue = Float.parseFloat(text);
-                        rechareView.setText(rechareValue + "元");
-                    }catch (Exception e) {
-                    }
-                }
-            }
-        });
     }
 
     @Override
@@ -82,38 +54,21 @@ public class RechargeActivity extends BaseActivity {
         LoginUtils.refreshUser();
     }
 
-    @OnClick({R.id.value1,R.id.value2,R.id.value3,R.id.value4})
-    public void valueSelect(View v){
-        if(null != checkView) {
+    @OnClick({R.id.value_50, R.id.value_100, R.id.value_200,
+            R.id.value_500, R.id.value_1000, R.id.value_2000,
+            R.id.value_3000, R.id.value_5000, R.id.value_10000})
+    public void valueSelect(View v) {
+        if (null != checkView) {
             checkView.setSelected(false);
         }
-        switch (v.getId()) {
-            case R.id.value1:
-                rechareValue = 200;
-                checkView = v;
-                break;
-            case R.id.value2:
-                rechareValue = 500;
-                checkView = v;
-                break;
-            case R.id.value3:
-                rechareValue = 1000;
-                checkView = v;
-                break;
-            case R.id.value4:
-                rechareValue = 2000;
-                checkView = v;
-                break;
-        }
-        checkView.setSelected(true);
-        valueEdit.setText("");
-        rechareView.setText(rechareValue + "元");
+        v.setSelected(true);
+        checkView = v;
+        rechareValue = Float.valueOf((String) v.getTag());
     }
 
-
     @OnClick(R.id.pay)
     public void pay() {
-        if(rechareValue == 0) {
+        if (rechareValue == 0) {
             showToast("请选择充值金额");
             return;
         }
@@ -121,17 +76,16 @@ public class RechargeActivity extends BaseActivity {
     }
 
 
-
-    private  void alipay() {
+    private void alipay() {
         showLoading();
         OrderService.alipay(rechareValue, new RequestCallback() {
             @Override
             public void onSuccess(String result) {
                 hideLoading();
-                AlipayRes res = new Gson().fromJson(result,AlipayRes.class);
+                AlipayRes res = new Gson().fromJson(result, AlipayRes.class);
                 if (res.msg.equals("success")) {
                     alipayRequest(res);
-                }else {
+                } else {
                     showToast("订单提交失败");
                 }
             }
@@ -148,22 +102,21 @@ public class RechargeActivity extends BaseActivity {
         final Handler handler = new Handler() {
             @Override
             public void handleMessage(Message msg) {
-                AliPayResult payResult = new AliPayResult((String)msg.obj);
+                AliPayResult payResult = new AliPayResult((String) msg.obj);
                 int result = 0;
                 if (payResult.getResultStatus().equals("9000")) {
                     showToast("支付成功");
                     result = 1;
-                    valueEdit.setText("");
                     rechareValue = 0;
-                    if(null != checkView) {
+                    if (null != checkView) {
                         checkView.setSelected(false);
                         checkView = null;
                     }
-                }else if(payResult.getResultStatus().equals("8000")){
+                } else if (payResult.getResultStatus().equals("8000")) {
                     // "8000"代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)
                     showToast("支付结果确认中");
                     return;
-                }else {
+                } else {
                     showToast("支付失败");
                     result = 0;
                 }
@@ -172,11 +125,11 @@ public class RechargeActivity extends BaseActivity {
             }
         };
 
-      Runnable payRunnable = new Runnable() {
+        Runnable payRunnable = new Runnable() {
             @Override
             public void run() {
                 PayTask alipay = new PayTask(RechargeActivity.this);
-                String result = alipay.pay(res.data,true);
+                String result = alipay.pay(res.data, true);
 
                 Message msg = new Message();
                 msg.what = 1;
@@ -193,8 +146,8 @@ public class RechargeActivity extends BaseActivity {
         OrderService.alipayResult(res.paypk, res.outtradeno, result, new RequestCallback() {
             @Override
             public void onSuccess(String result) {
-                PayRes payRes = new Gson().fromJson(result,PayRes.class);
-                if(payRes.msg.equals("success")) {
+                PayRes payRes = new Gson().fromJson(result, PayRes.class);
+                if (payRes.msg.equals("success")) {
                     balanceView.setText(payRes.coin_a + "元");
                     setResult(RESULT_OK);
                 }

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

@@ -0,0 +1,106 @@
+package com.android.chmo.ui.activity.promote;
+
+import android.app.Dialog;
+import android.view.View;
+import android.widget.TextView;
+
+import com.android.chmo.R;
+import com.android.chmo.base.BaseActivity;
+import com.android.chmo.http.RequestCallback;
+import com.android.chmo.http.response.GetCurrentShareCoinResponse;
+import com.android.chmo.http.service.UserService;
+import com.android.chmo.im.IMManager;
+import com.android.chmo.ui.activity.LoginActivity;
+import com.android.chmo.ui.activity.WithdrawActivity;
+import com.android.chmo.ui.dialog.ConfirmDialog;
+import com.android.chmo.utils.CommonUtils;
+import com.android.chmo.utils.LoginUtils;
+import com.google.gson.Gson;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class PromoteActivity extends BaseActivity {
+    @BindView(R.id.tv_coin)
+    TextView tvCoin;
+
+    private double total     = 0;
+    private double available = 0;
+
+    @Override
+    protected int getStatusBarStyle() {
+        return STATUS_BAR_STYLE_LIGHT_CONTENT;
+    }
+
+    @Override
+    protected int getContentResId() {
+        return R.layout.activity_promote;
+    }
+
+    @Override
+    public void initView() {
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        getData();
+    }
+
+    @OnClick({R.id.back, R.id.tv_detail, R.id.tv_withdraw, R.id.tv_transfer, R.id.btn_invite})
+    void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.back:
+                finish();
+                break;
+            case R.id.tv_detail:
+                openPage(PromoteDetailActivity.class);
+                break;
+            case R.id.tv_withdraw:
+                openPage(WithdrawActivity.class);
+                break;
+            case R.id.tv_transfer:
+                new ConfirmDialog(this)
+                        .setMsg("确认转到M币?")
+                        .setDialogListener(new ConfirmDialog.DialogListener() {
+                            @Override
+                            public void onOk(Dialog dialog) {
+                                dialog.dismiss();
+                                transfer();
+                            }
+
+                            @Override
+                            public void onCancel(Dialog dialog) {
+                                dialog.dismiss();
+                            }
+                        }).show();
+                break;
+            case R.id.btn_invite:
+                openPage(ShareActivity.class);
+                break;
+        }
+    }
+
+    void getData() {
+        UserService.getCurrentShareCoin(new RequestCallback() {
+            @Override
+            public void onSuccess(String result) {
+                GetCurrentShareCoinResponse response = new Gson().fromJson(result, GetCurrentShareCoinResponse.class);
+                if (response.isSuccess()) {
+                    total = response.getTotal();
+                    available = response.getAvailable();
+                    tvCoin.setText(String.valueOf(total));
+                }
+            }
+
+            @Override
+            public void onFailure(String error) {
+
+            }
+        });
+    }
+
+    void transfer() {
+
+    }
+}

+ 51 - 0
app/src/main/java/com/android/chmo/ui/activity/promote/PromoteDetailActivity.java

@@ -0,0 +1,51 @@
+package com.android.chmo.ui.activity.promote;
+
+
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+
+import com.android.chmo.R;
+import com.android.chmo.base.BaseActivity;
+import com.android.chmo.http.RequestCallback;
+import com.android.chmo.http.response.PromoteRes;
+import com.android.chmo.http.service.UserService;
+import com.android.chmo.ui.adpater.PromoteAdapter;
+import com.google.gson.Gson;
+
+import butterknife.BindView;
+
+public class PromoteDetailActivity extends BaseActivity {
+    @BindView(R.id.recycler_view)
+    RecyclerView recyclerView;
+    private PromoteRes     promoteRes;
+    private PromoteAdapter adapter;
+
+    @Override
+    protected int getContentResId() {
+        return R.layout.activity_promote_detail;
+    }
+
+    @Override
+    public void initView() {
+        promoteRes = new PromoteRes();
+        adapter = new PromoteAdapter(promoteRes, this);
+        recyclerView.setLayoutManager(new LinearLayoutManager(this));
+        recyclerView.setAdapter(adapter);
+        getData();
+    }
+
+    void getData() {
+        UserService.promoteList(new RequestCallback() {
+            @Override
+            public void onSuccess(String result) {
+                promoteRes = new Gson().fromJson(result, PromoteRes.class);
+                adapter.setData(promoteRes);
+                adapter.notifyDataSetChanged();
+            }
+
+            @Override
+            public void onFailure(String error) {
+            }
+        });
+    }
+}

+ 61 - 0
app/src/main/java/com/android/chmo/ui/activity/promote/ShareActivity.java

@@ -0,0 +1,61 @@
+package com.android.chmo.ui.activity.promote;
+
+import android.view.View;
+import android.widget.ImageView;
+
+import com.android.chmo.R;
+import com.android.chmo.base.BaseActivity;
+import com.android.chmo.ui.dialog.ShareDialog;
+import com.google.zxing.EncodeHintType;
+
+import net.glxn.qrgen.android.QRCode;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class ShareActivity extends BaseActivity implements ShareDialog.OnShareListener {
+
+    @BindView(R.id.iv_qr_code)
+    ImageView ivQrCode;
+
+    private ShareDialog shareDialog;
+
+    @Override
+    protected int getContentResId() {
+        return R.layout.activity_share;
+    }
+
+    @Override
+    protected int getStatusBarStyle() {
+        return STATUS_BAR_STYLE_LIGHT_CONTENT;
+    }
+
+    @Override
+    public void initView() {
+        ivQrCode.setImageBitmap(QRCode.from("hello").withSize(512, 512).withHint(EncodeHintType.MARGIN, 0).bitmap());
+        shareDialog = new ShareDialog(this);
+        shareDialog.setOnShareListener(this);
+    }
+
+    @OnClick({R.id.back, R.id.btn_invite})
+    void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.back:
+                finish();
+                break;
+            case R.id.btn_invite:
+                shareDialog.show();
+                break;
+        }
+    }
+
+    @Override
+    public void onShareWechatSession() {
+
+    }
+
+    @Override
+    public void onShareWechatTimeline() {
+
+    }
+}

+ 58 - 0
app/src/main/java/com/android/chmo/ui/adpater/MyWalletAdapter.java

@@ -0,0 +1,58 @@
+package com.android.chmo.ui.adpater;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.android.chmo.R;
+import com.android.chmo.model.WalletRecord;
+
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+public class MyWalletAdapter extends RecyclerView.Adapter<MyWalletAdapter.MyWalletHolder> {
+    private List<WalletRecord> data;
+    private Context            context;
+
+    public MyWalletAdapter(List<WalletRecord> data, Context context) {
+        this.data = data;
+        this.context = context;
+    }
+
+    @Override
+    public MyWalletHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        return new MyWalletHolder(LayoutInflater.from(context).inflate(R.layout.list_wallet, parent, false));
+    }
+
+    @Override
+    public void onBindViewHolder(MyWalletHolder holder, int position) {
+        WalletRecord record = data.get(position);
+        holder.tvAmount.setText(record.getCoin());
+        holder.tvName.setText(record.getAtype());
+        holder.tvTime.setText(record.getAtype());
+    }
+
+    @Override
+    public int getItemCount() {
+        return data.size();
+    }
+
+    class MyWalletHolder extends RecyclerView.ViewHolder {
+        @BindView(R.id.tv_amount)
+        TextView tvAmount;
+        @BindView(R.id.tv_name)
+        TextView tvName;
+        @BindView(R.id.tv_time)
+        TextView tvTime;
+
+        public MyWalletHolder(View itemView) {
+            super(itemView);
+            ButterKnife.bind(this, itemView);
+        }
+    }
+}

+ 103 - 0
app/src/main/java/com/android/chmo/ui/adpater/PromoteAdapter.java

@@ -0,0 +1,103 @@
+package com.android.chmo.ui.adpater;
+
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+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.PromoteRes;
+import com.android.chmo.model.Promote;
+import com.android.chmo.utils.XUtilsImage;
+
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+public class PromoteAdapter extends RecyclerView.Adapter<PromoteAdapter.PromoteHolder> {
+    private PromoteRes data;
+    private Context    context;
+
+    public PromoteAdapter(PromoteRes data, Context context) {
+        this.data = data;
+        this.context = context;
+    }
+
+    public PromoteRes getData() {
+        return data;
+    }
+
+    public void setData(PromoteRes data) {
+        this.data = data;
+    }
+
+    @Override
+    public PromoteHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        if (viewType == 0) {
+            return new PromoteHeaderHolder(LayoutInflater.from(context).inflate(R.layout.header_promote, parent, false));
+        }
+        return new PromoteItemHolder(LayoutInflater.from(context).inflate(R.layout.list_promote, parent, false));
+    }
+
+    @Override
+    public void onBindViewHolder(PromoteHolder holder, int position) {
+        if (getItemViewType(position) == 0) {
+            ((PromoteHeaderHolder) holder).tvCoin.setText(data.getTotalCoin());
+            ((PromoteHeaderHolder) holder).tvInviteNum.setText(data.getIntroduceNum());
+        } else {
+            Promote promote = data.getIntroduceList().get(position - 1);
+            ((PromoteItemHolder) holder).tvCoin.setText(promote.getCoin());
+            ((PromoteItemHolder) holder).tvName.setText(promote.getName());
+            XUtilsImage.displayCircluar(((PromoteItemHolder) holder).ivAvatar, HttpApi.getImgUrl(promote.getAvatar()), R.mipmap.def_head);
+        }
+    }
+
+    @Override
+    public int getItemCount() {
+        return 1 + data.getIntroduceList().size();
+    }
+
+    @Override
+    public int getItemViewType(int position) {
+        if (position == 0) {
+            return 0;
+        }
+        return 1;
+    }
+
+    abstract class PromoteHolder extends RecyclerView.ViewHolder {
+        PromoteHolder(View itemView) {
+            super(itemView);
+        }
+    }
+
+    class PromoteItemHolder extends PromoteHolder {
+        @BindView(R.id.tv_coin)
+        TextView  tvCoin;
+        @BindView(R.id.iv_avatar)
+        ImageView ivAvatar;
+        @BindView(R.id.tv_name)
+        TextView  tvName;
+
+        PromoteItemHolder(View itemView) {
+            super(itemView);
+            ButterKnife.bind(this, itemView);
+        }
+    }
+
+    class PromoteHeaderHolder extends PromoteHolder {
+        @BindView(R.id.tv_invite_num)
+        TextView tvInviteNum;
+        @BindView(R.id.tv_coin)
+        TextView tvCoin;
+
+        PromoteHeaderHolder(View itemView) {
+            super(itemView);
+            ButterKnife.bind(this, itemView);
+        }
+    }
+}

+ 78 - 0
app/src/main/java/com/android/chmo/ui/dialog/PickMonthDialog.java

@@ -0,0 +1,78 @@
+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.view.Gravity;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+
+import com.aigestudio.wheelpicker.widgets.WheelMonthPicker;
+import com.aigestudio.wheelpicker.widgets.WheelYearPicker;
+import com.android.chmo.R;
+
+import java.util.Calendar;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+
+public class PickMonthDialog extends Dialog {
+    @BindView(R.id.picker_year)
+    WheelYearPicker  yearPicker;
+    @BindView(R.id.picker_month)
+    WheelMonthPicker monthPicker;
+
+    private OnPickYearMonthListener onPickYearMonthListener;
+
+    public OnPickYearMonthListener getOnPickYearMonthListener() {
+        return onPickYearMonthListener;
+    }
+
+    public void setOnPickYearMonthListener(OnPickYearMonthListener onPickYearMonthListener) {
+        this.onPickYearMonthListener = onPickYearMonthListener;
+    }
+
+    public PickMonthDialog(@NonNull Context context) {
+        super(context, R.style.DialogStyle);
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.dialog_pick_month);
+        ButterKnife.bind(this);
+        Window window = getWindow();
+        WindowManager.LayoutParams wlp = window.getAttributes();
+        wlp.gravity = Gravity.BOTTOM;
+        window.setAttributes(wlp);
+        window.setWindowAnimations(R.style.DialogAnimation);
+        window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
+
+        Calendar calendar = Calendar.getInstance();
+        yearPicker.setYearEnd(calendar.get(Calendar.YEAR) - 5);
+        yearPicker.setYearEnd(calendar.get(Calendar.YEAR));
+        yearPicker.setSelectedYear(calendar.get(Calendar.YEAR));
+        monthPicker.setSelectedMonth(calendar.get(Calendar.MONTH + 1));
+    }
+
+    @OnClick({R.id.tv_cancel, R.id.tv_confirm})
+    void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.tv_cancel:
+                dismiss();
+                break;
+            case R.id.tv_confirm:
+                if (onPickYearMonthListener != null) {
+                    onPickYearMonthListener.onPickYearMonth(yearPicker.getSelectedYear(), monthPicker.getSelectedMonth());
+                }
+                dismiss();
+        }
+    }
+
+    public interface OnPickYearMonthListener {
+        void onPickYearMonth(int year, int month);
+    }
+}

+ 65 - 0
app/src/main/java/com/android/chmo/ui/dialog/ShareDialog.java

@@ -0,0 +1,65 @@
+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.view.Gravity;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+
+import com.android.chmo.R;
+
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+
+public class ShareDialog extends Dialog {
+    private OnShareListener onShareListener;
+
+    public ShareDialog(@NonNull Context context) {
+        super(context, R.style.DialogStyle);
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.dialog_share);
+        ButterKnife.bind(this);
+        Window window = getWindow();
+        WindowManager.LayoutParams wlp = window.getAttributes();
+        wlp.gravity = Gravity.BOTTOM;
+        window.setAttributes(wlp);
+        window.setWindowAnimations(R.style.DialogAnimation);
+        window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
+    }
+
+    @OnClick({R.id.ll_wechat_session, R.id.ll_wechat_timeline, R.id.tv_cancel})
+    void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.ll_wechat_session:
+                if (onShareListener != null) {
+                    onShareListener.onShareWechatSession();
+                }
+                break;
+            case R.id.ll_wechat_timeline:
+                if (onShareListener != null) {
+                    onShareListener.onShareWechatTimeline();
+                }
+                break;
+            case R.id.tv_cancel:
+                dismiss();
+                break;
+        }
+    }
+
+    public void setOnShareListener(OnShareListener onShareListener) {
+        this.onShareListener = onShareListener;
+    }
+
+    public interface OnShareListener {
+        void onShareWechatSession();
+
+        void onShareWechatTimeline();
+    }
+}

+ 12 - 12
app/src/main/java/com/android/chmo/ui/fragment/FindFragment.java

@@ -32,7 +32,7 @@ import butterknife.BindView;
  * Created by Administrator on 2018/7/31.
  */
 
-public class FindFragment extends BaseFragment implements RefreshListView.RefreshListener{
+public class FindFragment extends BaseFragment implements RefreshListView.RefreshListener {
     @BindView(R.id.refreshList)
     RefreshListView refreshListView;
 
@@ -63,10 +63,12 @@ public class FindFragment extends BaseFragment implements RefreshListView.Refres
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     public void onMessageEvent(String event) {
-        if(event.equals("findRefresh") || event.equals("followChange")) {
+        if (event.equals("findRefresh") || event.equals("followChange")) {
             onRefresh();
         }
-    };
+    }
+
+    ;
 
     @Override
     public int getLayoutRes() {
@@ -90,11 +92,10 @@ public class FindFragment extends BaseFragment implements RefreshListView.Refres
     }
 
 
-
     @Override
     public void onVisible() {
-        if(!isInit) {
-            if(refreshListView != null) {
+        if (!isInit) {
+            if (refreshListView != null) {
                 refreshListView.autoRefresh();
             }
             isInit = true;
@@ -117,7 +118,6 @@ public class FindFragment extends BaseFragment implements RefreshListView.Refres
     }
 
 
-
     private void loadData(final int page) {
         String pk = ChmoApplication.getApp().getLoginUser().pk;
         FindService.getFindList(pk, page, new RequestCallback() {
@@ -125,21 +125,21 @@ public class FindFragment extends BaseFragment implements RefreshListView.Refres
             public void onSuccess(String result) {
                 refreshListView.finishRefresh();
                 FindListRes res = new Gson().fromJson(result, FindListRes.class);
-                if(res.data != null) {
+                if (res.data != null) {
                     pageNo = page;
-                    if(page == 1) {
+                    if (page == 1) {
                         mList.clear();
                     }
                     mList.addAll(res.data);
                     findAdapter.setList(mList);
 
-                    if(res.data.size() == Constants.PAGE_SIZE) {
+                    if (res.data.size() == Constants.PAGE_SIZE) {
                         refreshListView.setEnableLoadMore(true);
-                    }else {
+                    } else {
                         refreshListView.setNoMoreData();
                     }
                 }
-                emptyView.setVisibility(mList.size() ==0 ? View.VISIBLE : View.GONE);
+                emptyView.setVisibility(mList.size() == 0 ? View.VISIBLE : View.GONE);
             }
 
             @Override

+ 1 - 1
app/src/main/java/com/android/chmo/ui/fragment/MessageFragment.java

@@ -27,7 +27,7 @@ public class MessageFragment extends BaseFragment {
         fragment.setContainerId(R.id.container);
 
         FragmentManager fragmentManager = getChildFragmentManager();
-        FragmentTransaction transaction = fragmentManager. beginTransaction();
+        FragmentTransaction transaction = fragmentManager.beginTransaction();
         transaction.replace(R.id.container, fragment);
         transaction.commit();
     }

+ 4 - 14
app/src/main/java/com/android/chmo/ui/fragment/MineFragment.java

@@ -1,8 +1,5 @@
 package com.android.chmo.ui.fragment;
 
-import android.app.Activity;
-import android.app.Dialog;
-import android.content.Intent;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.TextView;
@@ -12,26 +9,19 @@ import com.android.chmo.base.BaseFragment;
 import com.android.chmo.http.HttpApi;
 import com.android.chmo.http.RequestCallback;
 import com.android.chmo.http.response.LoginRes;
-import com.android.chmo.http.response.PhotoRes;
 import com.android.chmo.http.service.UserService;
 import com.android.chmo.im.IMManager;
 import com.android.chmo.model.LoginUser;
-import com.android.chmo.ui.activity.LoginActivity;
+import com.android.chmo.ui.activity.MyWalletActivity;
 import com.android.chmo.ui.activity.me.AboutActivity;
-import com.android.chmo.ui.activity.me.ModifyNameActivity;
-import com.android.chmo.ui.activity.me.MySignActivity;
 import com.android.chmo.ui.activity.me.RechargeActivity;
 import com.android.chmo.ui.activity.me.SettingsActivity;
 import com.android.chmo.ui.activity.order.MyOrderActivity;
 import com.android.chmo.ui.activity.order.VideoOrderActivity;
-import com.android.chmo.ui.dialog.ConfirmDialog;
-import com.android.chmo.ui.dialog.SelectDialog;
-import com.android.chmo.utils.CommonUtils;
-import com.android.chmo.utils.FileInfoUtils;
+import com.android.chmo.ui.activity.promote.PromoteActivity;
 import com.android.chmo.utils.LoginUtils;
 import com.android.chmo.utils.XUtilsImage;
 import com.google.gson.Gson;
-import com.netease.nim.uikit.common.media.picker.activity.PickImageActivity;
 
 import butterknife.BindView;
 import butterknife.OnClick;
@@ -107,13 +97,13 @@ public class MineFragment extends BaseFragment {
                 openPage(MyOrderActivity.class);
                 break;
             case R.id.ll_wallet:
-                openPage(RechargeActivity.class);
+                openPage(MyWalletActivity.class);
                 break;
             case R.id.ll_video_order:
                 openPage(VideoOrderActivity.class);
                 break;
             case R.id.ll_share:
-                openPage(MyOrderActivity.class);
+                openPage(PromoteActivity.class);
                 break;
             case R.id.ll_about:
                 openPage(AboutActivity.class);

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

@@ -14,50 +14,72 @@ import android.widget.TextView;
 import com.android.chmo.R;
 import com.android.chmo.utils.CommonUtils;
 
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+
 /**
  * Created by Administrator on 2018/7/30.
  */
 
 public class TopBar extends RelativeLayout {
-    private ImageView backBtn;
-    private TextView titleView;
-    private TextView rightView;
-
-    private String title = "";
+    @BindView(R.id.back)
+    ImageView backBtn;
+    @BindView(R.id.title)
+    TextView  titleView;
+    @BindView(R.id.right)
+    TextView  rightView;
+    @BindView(R.id.border)
+    View      border;
+
+    private String  title    = "";
     private boolean showBack = true;
-
+    private int     background;
+    private boolean showBorder;
+    private int     style;
 
     public TopBar(Context context, AttributeSet attrs) {
         super(context, attrs);
-
         TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.TopBar);
         if (typedArray != null) {
             title = typedArray.getString(R.styleable.TopBar_topTitle);
             showBack = typedArray.getBoolean(R.styleable.TopBar_showBack, true);
+            showBorder = typedArray.getBoolean(R.styleable.TopBar_showBorder, false);
+            style = typedArray.getInt(R.styleable.TopBar_style, 1);
             typedArray.recycle();
         }
+
+        int[] attrsArray = new int[]{
+                android.R.attr.background
+        };
+        TypedArray ta = context.obtainStyledAttributes(attrs, attrsArray);
+        if (ta != null) {
+            background = ta.getColor(0, Color.rgb(242, 244, 245));
+            ta.recycle();
+        }
         init(context);
     }
 
 
     private void init(Context context) {
         LayoutInflater.from(context).inflate(R.layout.top_bar, this);
-        backBtn = (ImageView) findViewById(R.id.back);
-        titleView = (TextView) findViewById(R.id.title);
-        rightView = (TextView) findViewById(R.id.right);
-
+        ButterKnife.bind(this);
+        if (style == 0) {
+            backBtn.setImageDrawable(context.getResources().getDrawable(R.mipmap.icon_back_white));
+            titleView.setTextColor(Color.WHITE);
+            rightView.setTextColor(Color.WHITE);
+        }
         backBtn.setVisibility(showBack ? View.VISIBLE : View.GONE);
         titleView.setText(title);
-        setPadding(0, CommonUtils.getStatusBarHeight(context), 0, 1);
-        setBackgroundColor(Color.WHITE);
+        setPadding(0, CommonUtils.getStatusBarHeight(context), 0, 0);
+        setBackgroundColor(background);
+        border.setVisibility(showBorder ? VISIBLE : GONE);
+    }
 
-        backBtn.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                Activity activity = (Activity)getContext();
-                activity.finish();
-            }
-        });
+    @OnClick(R.id.back)
+    void onClick() {
+        Activity activity = (Activity) getContext();
+        activity.finish();
     }
 
 

+ 8 - 0
app/src/main/res/anim/dialog_enter.xml

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

+ 8 - 0
app/src/main/res/anim/dialog_exit.xml

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

+ 2 - 1
app/src/main/res/anim/push_left_in.xml

@@ -2,4 +2,5 @@
 <translate xmlns:android="http://schemas.android.com/apk/res/android"
     android:duration="@android:integer/config_shortAnimTime"
     android:fromXDelta="-100%p"
-    android:toXDelta="0"/>
+    android:interpolator="@android:anim/decelerate_interpolator"
+    android:toXDelta="0" />

+ 2 - 1
app/src/main/res/anim/push_left_out.xml

@@ -2,4 +2,5 @@
 <translate xmlns:android="http://schemas.android.com/apk/res/android"
     android:duration="@android:integer/config_shortAnimTime"
     android:fromXDelta="0"
-    android:toXDelta="-100%p"/>
+    android:interpolator="@android:anim/decelerate_interpolator"
+    android:toXDelta="-100%p" />

+ 2 - 1
app/src/main/res/anim/push_right_in.xml

@@ -2,4 +2,5 @@
 <translate xmlns:android="http://schemas.android.com/apk/res/android"
     android:duration="@android:integer/config_shortAnimTime"
     android:fromXDelta="100%p"
-    android:toXDelta="0"/>
+    android:interpolator="@android:anim/decelerate_interpolator"
+    android:toXDelta="0" />

+ 2 - 1
app/src/main/res/anim/push_right_out.xml

@@ -2,4 +2,5 @@
 <translate xmlns:android="http://schemas.android.com/apk/res/android"
     android:duration="@android:integer/config_shortAnimTime"
     android:fromXDelta="0"
-    android:toXDelta="100%p"/>
+    android:interpolator="@android:anim/decelerate_interpolator"
+    android:toXDelta="100%p" />

+ 5 - 0
app/src/main/res/color/color_recharge_hint.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="@color/white" android:state_selected="true" />
+    <item android:color="#999999" />
+</selector>

+ 5 - 0
app/src/main/res/color/color_recharge_title.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="@color/white" android:state_selected="true" />
+    <item android:color="#000000" />
+</selector>

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

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

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

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

+ 1 - 1
app/src/main/res/drawable/bg_mine.xml

@@ -5,5 +5,5 @@
         android:endColor="#fffb5ca3"
         android:startColor="#fffd7f8d"
         android:type="linear"
-        android:useLevel="true" />
+        android:useLevel="false" />
 </shape>

+ 9 - 0
app/src/main/res/drawable/bg_promote.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <gradient
+        android:angle="270"
+        android:endColor="#fffd7f8d"
+        android:startColor="#fffb5ca3"
+        android:type="linear"
+        android:useLevel="false" />
+</shape>

+ 11 - 0
app/src/main/res/drawable/bg_promote_content.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <gradient
+        android:angle="270"
+        android:endColor="#fffc8895"
+        android:startColor="#ffffd886"
+        android:type="linear"
+        android:useLevel="false" />
+    <corners android:radius="24dp" />
+
+</shape>

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

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

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

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

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

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

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

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/bg_recharge_selected" android:state_selected="true" />
+    <item android:drawable="@drawable/bg_cell" />
+</selector>

+ 7 - 0
app/src/main/res/drawable/bg_skip.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <stroke
+        android:width="1dp"
+        android:color="#ffe6e6e6" />
+    <corners android:radius="15dp" />
+</shape>

+ 9 - 0
app/src/main/res/drawable/bg_wallet_list.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#fff2f4f5" />
+    <corners
+        android:bottomLeftRadius="0dp"
+        android:bottomRightRadius="0dp"
+        android:topLeftRadius="16dp"
+        android:topRightRadius="16dp" />
+</shape>

+ 2 - 2
app/src/main/res/drawable/radio.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:drawable="@mipmap/checked" android:state_checked="true"></item>
-    <item android:drawable="@mipmap/check" android:state_checked="false"></item>
+    <item android:drawable="@mipmap/icon_xuanzhong" android:state_checked="true"/>
+    <item android:drawable="@mipmap/icon_weixuanzhong" android:state_checked="false"/>
 </selector>

+ 22 - 17
app/src/main/res/layout/activity_broker_info.xml

@@ -1,69 +1,74 @@
 <?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:orientation="vertical"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="@color/bg">
+    android:background="@color/bg"
+    android:orientation="vertical">
+
     <com.android.chmo.ui.view.TopBar
         android:id="@+id/topBar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        app:topTitle="经纪人"/>
+        android:background="@color/white"
+        app:showBorder="true"
+        app:topTitle="经纪人" />
 
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:orientation="horizontal"
-        android:gravity="center"
         android:background="@color/white"
+        android:gravity="center"
+        android:orientation="horizontal"
         android:padding="15dp">
+
         <ImageView
             android:id="@+id/head"
             android:layout_width="80dp"
             android:layout_height="80dp"
             android:scaleType="centerCrop"
-            android:src="@mipmap/def_img3"/>
+            android:src="@mipmap/def_img3" />
 
     </LinearLayout>
-    
+
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:orientation="vertical"
+        android:layout_marginTop="10dp"
         android:background="@color/white"
+        android:orientation="vertical"
         android:paddingLeft="15dp"
         android:paddingRight="15dp"
-        android:paddingBottom="15dp"
-        android:layout_marginTop="10dp">
+        android:paddingBottom="15dp">
+
         <TextView
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginTop="10dp"
             android:layout_marginBottom="15dp"
-            android:textSize="15sp"
+            android:text="业务简介"
             android:textColor="@color/black"
-            android:text="业务简介"/>
+            android:textSize="15sp" />
 
         <TextView
             android:id="@+id/work_desc"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:textSize="13sp"
+            android:text=""
             android:textColor="@color/black"
-            android:text=""/>
+            android:textSize="13sp" />
     </LinearLayout>
 
     <TextView
         android:id="@+id/model_count"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:background="@color/white"
         android:layout_marginTop="10dp"
+        android:background="@color/white"
         android:padding="15dp"
-        android:textSize="14sp"
+        android:text="模特数量:0位"
         android:textColor="@color/black"
-        android:text="模特数量:0位"/>
+        android:textSize="14sp" />
 
 
 </LinearLayout>

+ 111 - 0
app/src/main/res/layout/activity_my_wallet.xml

@@ -0,0 +1,111 @@
+<?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"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".ui.activity.MyWalletActivity">
+
+    <RelativeLayout
+        android:id="@+id/head"
+        android:layout_width="match_parent"
+        android:layout_height="303dp"
+        android:layout_alignParentTop="true"
+        android:background="@drawable/bg_mine">
+
+        <com.android.chmo.ui.view.TopBar
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_alignParentTop="true"
+            android:background="#00000000"
+            app:style="LIGHT_CONTENT" />
+
+        <ImageView
+            android:layout_width="216dp"
+            android:layout_height="192dp"
+            android:layout_alignParentBottom="true"
+            android:layout_centerHorizontal="true"
+            android:layout_marginBottom="47dp"
+            android:src="@mipmap/img_wodeshouyi" />
+
+        <TextView
+            android:id="@+id/tv_coin"
+            android:layout_width="wrap_content"
+            android:layout_height="75dp"
+            android:layout_alignParentBottom="true"
+            android:layout_centerHorizontal="true"
+            android:layout_marginBottom="104dp"
+            android:text="0"
+            android:textColor="#ffffffff"
+            android:textSize="54sp" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="20dp"
+            android:layout_alignParentBottom="true"
+            android:layout_centerHorizontal="true"
+            android:layout_marginBottom="84dp"
+            android:text="我的M币"
+            android:textColor="#ffffffff"
+            android:textSize="14sp" />
+    </RelativeLayout>
+
+    <Button
+        android:id="@+id/btn_recharge"
+        android:layout_width="200dp"
+        android:layout_height="46dp"
+        android:layout_below="@id/head"
+        android:layout_centerHorizontal="true"
+        android:layout_marginTop="-39dp"
+        android:background="@drawable/bg_btn_recharge"
+        android:elevation="12dp"
+        android:text="充值"
+        android:textColor="#FF4095"
+        android:textSize="16sp"
+        android:textStyle="bold" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_below="@id/head"
+        android:layout_marginTop="-16dp"
+        android:background="@drawable/bg_wallet_list"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="left|center"
+            android:paddingLeft="20dp"
+            android:paddingTop="40dp"
+            android:paddingRight="20dp"
+            android:paddingBottom="10dp">
+
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="28dp"
+                android:layout_weight="1"
+                android:text="余额明细"
+                android:textColor="#ff1a1a1a"
+                android:textSize="20sp"
+                android:textStyle="bold" />
+
+            <ImageView
+                android:id="@+id/iv_calendar"
+                android:layout_width="30dp"
+                android:layout_height="30dp"
+                android:src="@mipmap/icon_riqi" />
+        </LinearLayout>
+
+        <com.scwang.smartrefresh.layout.SmartRefreshLayout
+            android:id="@+id/refresh_layout"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+
+            <android.support.v7.widget.RecyclerView
+                android:id="@+id/recycler_view"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent" />
+        </com.scwang.smartrefresh.layout.SmartRefreshLayout>
+    </LinearLayout>
+</RelativeLayout>

+ 145 - 0
app/src/main/res/layout/activity_promote.xml

@@ -0,0 +1,145 @@
+<?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"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="#FB5CA3"
+    android:orientation="vertical"
+    tools:context=".ui.activity.promote.PromoteActivity">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="24dp"
+        android:gravity="center"
+        android:orientation="horizontal">
+
+        <ImageView
+            android:id="@+id/back"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="12dp"
+            android:src="@mipmap/icon_back_white" />
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            android:layout_weight="1" />
+
+        <TextView
+            android:id="@+id/tv_detail"
+            android:layout_width="wrap_content"
+            android:layout_height="40dp"
+            android:layout_marginRight="20dp"
+            android:gravity="center"
+            android:text="推广明细"
+            android:textColor="@color/white"
+            android:textSize="16sp"
+            android:textStyle="bold" />
+    </LinearLayout>
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@drawable/bg_promote">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:orientation="vertical">
+
+            <TextView
+                android:id="@+id/iv_coin"
+                android:layout_width="wrap_content"
+                android:layout_height="75dp"
+                android:text="0"
+                android:textColor="#ffffffff"
+                android:textSize="54sp" />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="20dp"
+                android:text="营销奖励"
+                android:textColor="#ffffffff"
+                android:textSize="14sp" />
+
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="20dp"
+                android:layout_marginTop="17dp"
+                android:layout_marginRight="20dp"
+                android:layout_marginBottom="25dp"
+                android:background="@drawable/bg_promote_content"
+                android:gravity="top|center"
+                android:orientation="vertical">
+
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="30dp"
+                    android:gravity="center"
+                    android:orientation="horizontal">
+
+                    <TextView
+                        android:id="@+id/tv_withdraw"
+                        android:layout_width="wrap_content"
+                        android:layout_height="42dp"
+                        android:gravity="center"
+                        android:text="申请提现"
+                        android:textColor="#ff3d1f1f"
+                        android:textSize="16sp"
+                        android:textStyle="bold" />
+
+                    <View
+                        android:layout_width="1dp"
+                        android:layout_height="20dp"
+                        android:layout_marginLeft="36dp"
+                        android:layout_marginRight="36dp"
+                        android:background="#14000000" />
+
+                    <TextView
+                        android:id="@+id/tv_transfer"
+                        android:layout_width="wrap_content"
+                        android:layout_height="42dp"
+                        android:gravity="center"
+                        android:text="转到模币"
+                        android:textColor="#ff3d1f1f"
+                        android:textSize="16sp"
+                        android:textStyle="bold" />
+                </LinearLayout>
+
+                <ImageButton
+                    android:id="@+id/btn_invite"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="60dp"
+                    android:background="#00000000"
+                    android:src="@mipmap/btu_yaoqing" />
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="22dp"
+                    android:layout_marginTop="113dp"
+                    android:text="分享奖励规则"
+                    android:textColor="#ffffffff"
+                    android:textSize="16sp"
+                    android:textStyle="bold" />
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="15dp"
+                    android:layout_marginTop="20dp"
+                    android:layout_marginRight="15dp"
+                    android:layout_marginBottom="15dp"
+                    android:text="1:所有用户都可参与推广奖励\n2:通过分享自己的专属“推广链接”或“二维码”下载千模通告及注册的用户,才算做“我的推广用户”\n3:用户充值分成比例为10%\n4:分成金额可用于提现或兑换服务"
+                    android:textColor="#ffffffff"
+                    android:textSize="13sp" />
+            </LinearLayout>
+        </LinearLayout>
+    </ScrollView>
+</LinearLayout>

+ 19 - 0
app/src/main/res/layout/activity_promote_detail.xml

@@ -0,0 +1,19 @@
+<?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"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    tools:context=".ui.activity.promote.PromoteDetailActivity">
+
+    <com.android.chmo.ui.view.TopBar
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:topTitle="我推广的用户" />
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/recycler_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+</LinearLayout>

+ 341 - 133
app/src/main/res/layout/activity_recharge.xml

@@ -1,210 +1,418 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:orientation="vertical"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="@color/bg">
+    android:background="@color/bg"
+    android:orientation="vertical">
+
     <com.android.chmo.ui.view.TopBar
+        android:id="@+id/top_bar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        app:topTitle="账户充值"/>
+        app:topTitle="余额充值" />
 
     <com.android.chmo.ui.view.TouchScrollView
         android:layout_width="match_parent"
         android:layout_height="match_parent"
+        android:layout_below="@id/top_bar"
+        android:layout_alignParentBottom="true"
         android:fillViewport="true">
+
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:orientation="vertical">
+            android:orientation="vertical"
+            android:paddingBottom="100dp">
+
             <LinearLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:orientation="horizontal"
-                android:padding="15dp">
+                android:padding="15dp"
+                android:visibility="gone">
+
                 <TextView
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginRight="10dp"
+                    android:text="您当前的余额:"
                     android:textColor="@color/black"
-                    android:textSize="15sp"
-                    android:text="您当前的余额:"/>
+                    android:textSize="15sp" />
+
                 <TextView
                     android:id="@+id/balance"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
+                    android:text="0元"
                     android:textColor="@color/pink"
-                    android:textSize="15sp"
-                    android:text="0元"/>
+                    android:textSize="15sp" />
             </LinearLayout>
 
-            <View style="@style/line"/>
 
-            <LinearLayout
+            <GridLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:orientation="vertical"
-                android:padding="15dp">
+                android:layout_marginTop="20dp"
+                android:columnCount="3"
+                android:paddingLeft="15dp"
+                android:paddingRight="15dp">
 
                 <LinearLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:orientation="horizontal">
+                    android:id="@+id/value_50"
+                    android:layout_width="0dp"
+                    android:layout_height="60dp"
+                    android:layout_columnWeight="1"
+                    android:layout_marginLeft="5dp"
+                    android:layout_marginRight="5dp"
+                    android:background="@drawable/bg_recharge_selector"
+                    android:gravity="center"
+                    android:orientation="vertical"
+                    android:tag="50"
+                    android:textColor="@color/label_text"
+                    android:textSize="16sp">
+
                     <TextView
-                        android:id="@+id/value1"
-                        android:layout_width="0dp"
-                        android:layout_height="wrap_content"
-                        android:layout_weight="1"
-                        android:background="@drawable/rect_selector"
-                        android:layout_marginRight="15dp"
-                        android:gravity="center"
-                        android:textSize="16sp"
-                        android:textColor="@color/label_text"
-                        android:text="200元"/>
+                        android:layout_width="wrap_content"
+                        android:layout_height="20dp"
+                        android:text="50M币"
+                        android:textColor="@color/color_recharge_title"
+                        android:textSize="14sp" />
 
                     <TextView
-                        android:id="@+id/value2"
-                        android:layout_width="0dp"
-                        android:layout_height="wrap_content"
-                        android:layout_weight="1"
-                        android:background="@drawable/rect_selector"
-                        android:gravity="center"
-                        android:textSize="16sp"
-                        android:textColor="@color/label_text"
-                        android:text="500元"/>
+                        android:layout_width="wrap_content"
+                        android:layout_height="18dp"
+                        android:text="¥50"
+                        android:textColor="@color/color_recharge_hint"
+                        android:textSize="13sp" />
                 </LinearLayout>
 
                 <LinearLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:orientation="horizontal"
-                    android:layout_marginTop="15dp">
+                    android:id="@+id/value_100"
+                    android:layout_width="0dp"
+                    android:layout_height="60dp"
+                    android:layout_columnWeight="1"
+                    android:layout_marginLeft="5dp"
+                    android:layout_marginRight="5dp"
+                    android:background="@drawable/bg_recharge_selector"
+                    android:gravity="center"
+                    android:orientation="vertical"
+                    android:tag="100"
+                    android:textColor="@color/label_text"
+                    android:textSize="16sp">
+
                     <TextView
-                        android:id="@+id/value3"
-                        android:layout_width="0dp"
-                        android:layout_height="wrap_content"
-                        android:layout_weight="1"
-                        android:background="@drawable/rect_selector"
-                        android:layout_marginRight="15dp"
-                        android:gravity="center"
-                        android:textSize="16sp"
-                        android:textColor="@color/label_text"
-                        android:text="1000元"/>
+                        android:layout_width="wrap_content"
+                        android:layout_height="20dp"
+                        android:text="100M币"
+                        android:textColor="@color/color_recharge_title"
+                        android:textSize="14sp" />
 
                     <TextView
-                        android:id="@+id/value4"
-                        android:layout_width="0dp"
-                        android:layout_height="wrap_content"
-                        android:layout_weight="1"
-                        android:background="@drawable/rect_selector"
-                        android:gravity="center"
-                        android:textSize="16sp"
-                        android:textColor="@color/label_text"
-                        android:text="2000元"/>
+                        android:layout_width="wrap_content"
+                        android:layout_height="18dp"
+                        android:text="¥100"
+                        android:textColor="@color/color_recharge_hint"
+                        android:textSize="13sp" />
                 </LinearLayout>
 
-                <EditText
-                    android:id="@+id/inputValue"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:background="@mipmap/large_rect_bg"
-                    android:layout_marginTop="15dp"
+                <LinearLayout
+                    android:id="@+id/value_200"
+                    android:layout_width="0dp"
+                    android:layout_height="60dp"
+                    android:layout_columnWeight="1"
+                    android:layout_marginLeft="5dp"
+                    android:layout_marginRight="5dp"
+                    android:background="@drawable/bg_recharge_selector"
                     android:gravity="center"
-                    android:cursorVisible="true"
-                    android:textCursorDrawable="@drawable/edit_cursor"
-                    android:hint="请输入其它金额(元)"
-                    android:textSize="16sp"
-                    android:textColor="@color/black"
-                    android:inputType="numberDecimal"/>
+                    android:orientation="vertical"
+                    android:tag="200"
+                    android:textColor="@color/label_text"
+                    android:textSize="16sp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="20dp"
+                        android:text="200M币"
+                        android:textColor="@color/color_recharge_title"
+                        android:textSize="14sp" />
 
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="18dp"
+                        android:text="¥200"
+                        android:textColor="@color/color_recharge_hint"
+                        android:textSize="13sp" />
+                </LinearLayout>
 
                 <LinearLayout
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:orientation="horizontal"
-                    android:paddingTop="15dp">
+                    android:id="@+id/value_500"
+                    android:layout_width="0dp"
+                    android:layout_height="60dp"
+                    android:layout_columnWeight="1"
+                    android:layout_marginLeft="5dp"
+                    android:layout_marginTop="10dp"
+                    android:layout_marginRight="5dp"
+                    android:background="@drawable/bg_recharge_selector"
+                    android:gravity="center"
+                    android:orientation="vertical"
+                    android:tag="500"
+                    android:textColor="@color/label_text"
+                    android:textSize="16sp">
+
                     <TextView
                         android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_marginRight="10dp"
-                        android:textColor="@color/black"
-                        android:textSize="15sp"
-                        android:text="充值金额:"/>
+                        android:layout_height="20dp"
+                        android:text="500M币"
+                        android:textColor="@color/color_recharge_title"
+                        android:textSize="14sp" />
+
                     <TextView
-                        android:id="@+id/rechargeValue"
                         android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:textColor="@color/pink"
-                        android:textSize="15sp"
-                        android:text="0元"/>
+                        android:layout_height="18dp"
+                        android:text="¥500"
+                        android:textColor="@color/color_recharge_hint"
+                        android:textSize="13sp" />
                 </LinearLayout>
-            </LinearLayout>
-            <View style="@style/line"/>
 
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:padding="15dp"
-                android:textColor="@color/black"
-                android:textSize="15sp"
-                android:text="请选择支付方式:"/>
+                <LinearLayout
+                    android:id="@+id/value_1000"
+                    android:layout_width="0dp"
+                    android:layout_height="60dp"
+                    android:layout_columnWeight="1"
+                    android:layout_marginLeft="5dp"
+                    android:layout_marginTop="10dp"
+                    android:layout_marginRight="5dp"
+                    android:background="@drawable/bg_recharge_selector"
+                    android:gravity="center"
+                    android:orientation="vertical"
+                    android:tag="1000"
+                    android:textColor="@color/label_text"
+                    android:textSize="16sp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="20dp"
+                        android:text="1000M币"
+                        android:textColor="@color/color_recharge_title"
+                        android:textSize="14sp" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="18dp"
+                        android:text="¥1000"
+                        android:textColor="@color/color_recharge_hint"
+                        android:textSize="13sp" />
+                </LinearLayout>
 
-            <View style="@style/line"/>
-            <LinearLayout
-                android:id="@+id/alipay"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:background="@color/white"
-                android:orientation="horizontal"
-                android:gravity="center_vertical"
-                android:padding="15dp">
-                <ImageView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:src="@mipmap/alipay"/>
                 <LinearLayout
+                    android:id="@+id/value_2000"
                     android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
+                    android:layout_height="60dp"
+                    android:layout_columnWeight="1"
+                    android:layout_marginLeft="5dp"
+                    android:layout_marginTop="10dp"
+                    android:layout_marginRight="5dp"
+                    android:background="@drawable/bg_recharge_selector"
+                    android:gravity="center"
                     android:orientation="vertical"
-                    android:layout_marginLeft="15dp">
+                    android:tag="2000"
+                    android:textColor="@color/label_text"
+                    android:textSize="16sp">
+
                     <TextView
                         android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:textColor="@color/black"
-                        android:textSize="14sp"
-                        android:text="支付宝支付"/>
+                        android:layout_height="20dp"
+                        android:text="2000M币"
+                        android:textColor="@color/color_recharge_title"
+                        android:textSize="14sp" />
 
                     <TextView
                         android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:layout_marginTop="10dp"
-                        android:textColor="@color/gray"
-                        android:textSize="12sp"
-                        android:text="推荐有支付宝账号的用户使用"/>
+                        android:layout_height="18dp"
+                        android:text="¥2000"
+                        android:textColor="@color/color_recharge_hint"
+                        android:textSize="13sp" />
+                </LinearLayout>
+
+                <LinearLayout
+                    android:id="@+id/value_3000"
+                    android:layout_width="0dp"
+                    android:layout_height="60dp"
+                    android:layout_columnWeight="1"
+                    android:layout_marginLeft="5dp"
+                    android:layout_marginTop="10dp"
+                    android:layout_marginRight="5dp"
+                    android:background="@drawable/bg_recharge_selector"
+                    android:gravity="center"
+                    android:orientation="vertical"
+                    android:tag="3000"
+                    android:textColor="@color/label_text"
+                    android:textSize="16sp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="20dp"
+                        android:text="3000M币"
+                        android:textColor="@color/color_recharge_title"
+                        android:textSize="14sp" />
 
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="18dp"
+                        android:text="¥3000"
+                        android:textColor="@color/color_recharge_hint"
+                        android:textSize="13sp" />
                 </LinearLayout>
-                <RadioButton
-                    android:id="@+id/alipay_check"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:button="@drawable/radio"
-                    android:checked="true"/>
 
-            </LinearLayout>
-            <View style="@style/line"/>
+                <LinearLayout
+                    android:id="@+id/value_5000"
+                    android:layout_width="0dp"
+                    android:layout_height="60dp"
+                    android:layout_columnWeight="1"
+                    android:layout_marginLeft="5dp"
+                    android:layout_marginTop="10dp"
+                    android:layout_marginRight="5dp"
+                    android:background="@drawable/bg_recharge_selector"
+                    android:gravity="center"
+                    android:orientation="vertical"
+                    android:tag="5000"
+                    android:textColor="@color/label_text"
+                    android:textSize="16sp">
 
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="20dp"
+                        android:text="5000M币"
+                        android:textColor="@color/color_recharge_title"
+                        android:textSize="14sp" />
 
-            <Button
-                android:id="@+id/pay"
-                style="@style/largeBtn"
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="18dp"
+                        android:text="¥5000"
+                        android:textColor="@color/color_recharge_hint"
+                        android:textSize="13sp" />
+                </LinearLayout>
+
+                <LinearLayout
+                    android:id="@+id/value_10000"
+                    android:layout_width="0dp"
+                    android:layout_height="60dp"
+                    android:layout_columnWeight="1"
+                    android:layout_marginLeft="5dp"
+                    android:layout_marginTop="10dp"
+                    android:layout_marginRight="5dp"
+                    android:background="@drawable/bg_recharge_selector"
+                    android:gravity="center"
+                    android:orientation="vertical"
+                    android:tag="1000"
+                    android:textColor="@color/label_text"
+                    android:textSize="16sp">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="20dp"
+                        android:text="10000M币"
+                        android:textColor="@color/color_recharge_title"
+                        android:textSize="14sp" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="18dp"
+                        android:text="¥10000"
+                        android:textColor="@color/color_recharge_hint"
+                        android:textSize="13sp" />
+                </LinearLayout>
+            </GridLayout>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="20dp"
+                android:layout_marginLeft="20dp"
                 android:layout_marginTop="30dp"
+                android:text="选择充值方式"
+                android:textColor="#ff000000"
+                android:textSize="14sp"
+                android:textStyle="bold" />
+
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
                 android:layout_marginLeft="20dp"
+                android:layout_marginTop="15dp"
                 android:layout_marginRight="20dp"
-                android:layout_marginBottom="30dp"
-                android:text="立即支付"/>
+                android:background="@drawable/bg_cell"
+                android:orientation="vertical">
+
+                <LinearLayout
+                    android:id="@+id/alipay"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:gravity="center_vertical"
+                    android:orientation="horizontal"
+                    android:padding="15dp">
+
+                    <ImageView
+                        android:layout_width="50dp"
+                        android:layout_height="50dp"
+                        android:src="@mipmap/icon_zhifubao" />
 
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="15dp"
+                        android:layout_weight="1"
+                        android:orientation="vertical">
+
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:text="支付宝"
+                            android:textColor="#1a1a1a"
+                            android:textSize="14sp" />
+
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="10dp"
+                            android:text="推荐有支付宝账号的用户使用"
+                            android:textColor="@color/gray"
+                            android:textSize="12sp" />
+
+                    </LinearLayout>
+
+                    <RadioButton
+                        android:id="@+id/alipay_check"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:button="@drawable/radio"
+                        android:checked="true" />
+
+                </LinearLayout>
+            </LinearLayout>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="16dp"
+                android:layout_gravity="center"
+                android:layout_marginTop="15dp"
+                android:text="注:充值金额不可退还和返现"
+                android:textColor="#ff999999"
+                android:textSize="11sp" />
         </LinearLayout>
     </com.android.chmo.ui.view.TouchScrollView>
-</LinearLayout>
+
+
+    <Button
+        android:id="@+id/pay"
+        style="@style/largeBtn"
+        android:layout_alignParentBottom="true"
+        android:layout_marginLeft="20dp"
+        android:layout_marginRight="20dp"
+        android:layout_marginBottom="20dp"
+        android:text="立即支付" />
+
+
+</RelativeLayout>

+ 104 - 0
app/src/main/res/layout/activity_share.xml

@@ -0,0 +1,104 @@
+<?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"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="#FB5CA3"
+    android:orientation="vertical"
+    tools:context=".ui.activity.promote.ShareActivity">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="24dp"
+        android:gravity="center"
+        android:orientation="horizontal">
+
+        <ImageView
+            android:id="@+id/back"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="12dp"
+            android:src="@mipmap/icon_back_white" />
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            android:layout_weight="1" />
+
+    </LinearLayout>
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@drawable/bg_promote">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:orientation="vertical">
+
+            <ImageView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="14dp"
+                android:src="@mipmap/img_top_logo" />
+
+            <FrameLayout
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content">
+
+                <ImageView
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="2dp"
+                    android:layout_marginTop="15dp"
+                    android:layout_marginRight="2dp"
+                    android:background="@mipmap/img_yaoqing_bg" />
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="top|center"
+                    android:layout_marginTop="36dp"
+                    android:src="@mipmap/text_yonghuduan" />
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="20dp"
+                    android:layout_gravity="top|center"
+                    android:layout_marginTop="287dp"
+                    android:text="扫一扫下载APP"
+                    android:textColor="#ffffffff"
+                    android:textSize="14sp" />
+
+                <LinearLayout
+                    android:layout_width="150dp"
+                    android:layout_height="150dp"
+                    android:layout_gravity="top|center"
+                    android:layout_marginTop="127dp"
+                    android:background="@drawable/bg_qrcode"
+                    android:padding="12dp">
+
+                    <ImageView
+                        android:id="@+id/iv_qr_code"
+                        android:layout_width="match_parent"
+                        android:layout_height="match_parent"
+                        android:scaleType="centerCrop" />
+                </LinearLayout>
+
+                <ImageButton
+                    android:id="@+id/btn_invite"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="bottom|center"
+                    android:layout_marginBottom="60dp"
+                    android:background="#00000000"
+                    android:src="@mipmap/btu_yaoqing" />
+            </FrameLayout>
+
+        </LinearLayout>
+    </ScrollView>
+</LinearLayout>

+ 33 - 4
app/src/main/res/layout/activity_welcome.xml

@@ -1,11 +1,40 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:background="@color/white">
+
     <ImageView
         android:id="@+id/image"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:scaleType="fitXY"
-        android:src="@mipmap/welcome"/>
+        android:layout_height="wrap_content"
+        android:layout_above="@id/logo"
+        android:layout_alignParentTop="true"
+        android:scaleType="centerCrop"
+        android:src="@mipmap/img_qidong" />
+
+    <ImageView
+        android:id="@+id/logo"
+        android:layout_width="match_parent"
+        android:layout_height="137dp"
+        android:layout_alignParentBottom="true"
+        android:paddingTop="19dp"
+        android:paddingBottom="19dp"
+        android:scaleType="centerInside"
+        android:src="@mipmap/logo" />
+
+    <Button
+        android:id="@+id/btn_skip"
+        style="@style/Base.Widget.AppCompat.Button.Borderless"
+        android:layout_width="60dp"
+        android:layout_height="30dp"
+        android:layout_alignParentRight="true"
+        android:layout_alignParentBottom="true"
+        android:layout_marginRight="30dp"
+        android:layout_marginBottom="20dp"
+        android:background="@drawable/bg_skip"
+        android:padding="0dp"
+        android:text="跳过"
+        android:textColor="#ffcccccc"
+        android:textSize="13sp" />
 </RelativeLayout>

+ 158 - 0
app/src/main/res/layout/activity_withdraw.xml

@@ -0,0 +1,158 @@
+<?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"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    tools:context=".ui.activity.WithdrawActivity">
+
+    <com.android.chmo.ui.view.TopBar
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:topTitle="申请提现" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="20dp"
+        android:layout_marginTop="15dp"
+        android:layout_marginRight="20dp"
+        android:background="@drawable/bg_cell"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="60dp"
+            android:gravity="left|center"
+            android:orientation="horizontal"
+            android:paddingLeft="15dp"
+            android:paddingRight="15dp">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="20dp"
+                android:text="姓名"
+                android:textColor="#ff000000"
+                android:textSize="14sp"
+                android:textStyle="bold" />
+
+            <EditText
+                android:id="@+id/et_name"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:background="@color/white"
+                android:gravity="right|center"
+                android:hint="@string/withdraw_name"
+                android:textColor="#000000"
+                android:textColorHint="#AAACAD"
+                android:textSize="16sp" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="60dp"
+            android:gravity="left|center"
+            android:orientation="horizontal"
+            android:paddingLeft="15dp"
+            android:paddingRight="15dp">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="20dp"
+                android:text="支付宝账号"
+                android:textColor="#ff000000"
+                android:textSize="14sp"
+                android:textStyle="bold" />
+
+            <EditText
+                android:id="@+id/et_account"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:background="@color/white"
+                android:gravity="right|center"
+                android:hint="@string/withdraw_account"
+                android:textColor="#000000"
+                android:textColorHint="#AAACAD"
+                android:textSize="16sp" />
+
+        </LinearLayout>
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="80dp"
+        android:layout_marginLeft="20dp"
+        android:layout_marginTop="10dp"
+        android:layout_marginRight="20dp"
+        android:background="@drawable/bg_cell"
+        android:gravity="left|center"
+        android:orientation="horizontal"
+        android:paddingLeft="15dp"
+        android:paddingRight="15dp">
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="20dp"
+                android:text="提现金额"
+                android:textColor="#ff000000"
+                android:textSize="14sp"
+                android:textStyle="bold" />
+
+            <TextView
+                android:layout_width="102dp"
+                android:layout_height="18dp"
+                android:layout_marginTop="5dp"
+                android:text="最多可提现0元"
+                android:textColor="#ffff4095"
+                android:textSize="13sp" />
+        </LinearLayout>
+
+
+        <EditText
+            android:id="@+id/et_amount"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:background="@color/white"
+            android:gravity="right|center"
+            android:hint="@string/withdraw_amount"
+            android:inputType="numberDecimal"
+            android:textColor="#000000"
+            android:textColorHint="#AAACAD"
+            android:textSize="16sp" />
+
+    </LinearLayout>
+
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="20dp"
+        android:layout_marginTop="10dp"
+        android:layout_marginRight="20dp"
+        android:text="1.用户每周可提现一次,平台会在周五结算发放。\n2.1000-5000元手续费为5元。\n3.5000-10000元手续费10元。\n4.10000元以上扣0.2%手续费。"
+        android:textColor="#ff666666"
+        android:textSize="13sp" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1" />
+
+    <Button
+        android:id="@+id/pay"
+        style="@style/largeBtn"
+        android:layout_alignParentBottom="true"
+        android:layout_marginLeft="20dp"
+        android:layout_marginRight="20dp"
+        android:layout_marginBottom="20dp"
+        android:text="立即支付" />
+</LinearLayout>

+ 52 - 0
app/src/main/res/layout/activity_withdraw_success.xml

@@ -0,0 +1,52 @@
+<?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"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".ui.activity.WithdrawSuccessActivity">
+
+    <com.android.chmo.ui.view.TopBar
+        android:id="@+id/top_bar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:topTitle="申请提现" />
+
+    <ImageView
+        android:id="@+id/img"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/top_bar"
+        android:layout_centerHorizontal="true"
+        android:layout_marginTop="38dp"
+        android:src="@mipmap/icon_chenggong" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/img"
+        android:layout_centerHorizontal="true"
+        android:layout_marginTop="26dp"
+        android:text="申请提交成功"
+        android:textColor="#000000"
+        android:textSize="14sp" />
+
+    <Button
+        android:id="@+id/btn_back"
+        style="@style/largeBtn"
+        android:layout_alignParentBottom="true"
+        android:layout_marginLeft="20dp"
+        android:layout_marginRight="20dp"
+        android:layout_marginBottom="80dp"
+        android:text="返回" />
+
+    <TextView
+        android:layout_width="131dp"
+        android:layout_height="20dp"
+        android:layout_alignParentBottom="true"
+        android:layout_centerHorizontal="true"
+        android:layout_marginBottom="10dp"
+        android:text="客服热线:15805170379"
+        android:textColor="#ff4d4d4d"
+        android:textSize="12sp" />
+</RelativeLayout>

+ 95 - 0
app/src/main/res/layout/dialog_pick_month.xml

@@ -0,0 +1,95 @@
+<?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="240dp"
+    android:background="@color/white"
+    android:gravity="center"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="40dp">
+
+        <TextView
+            android:id="@+id/tv_cancel"
+            android:textColor="@color/color_b3b3b3"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:gravity="center"
+            android:paddingLeft="20dp"
+            android:paddingRight="20dp"
+            android:text="取消"
+            android:textSize="16sp"
+            android:textStyle="bold" />
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1" />
+
+        <TextView
+            android:id="@+id/tv_confirm"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:gravity="center"
+            android:paddingLeft="20dp"
+            android:paddingRight="20dp"
+            android:text="确定"
+            android:textColor="@color/pink"
+            android:textSize="16sp"
+            android:textStyle="bold" />
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:background="#F2F4F5" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:gravity="center"
+        android:orientation="horizontal"
+        android:paddingLeft="20dp"
+        android:paddingRight="20dp">
+
+        <com.aigestudio.wheelpicker.widgets.WheelYearPicker
+            android:id="@+id/picker_year"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            app:wheel_atmospheric="true"
+            app:wheel_curved="true"
+            app:wheel_cyclic="true"
+            app:wheel_item_align="center"
+            app:wheel_selected_item_text_color="@color/pink" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="年"
+            android:textColor="@color/pink"
+            android:textSize="16sp"
+            android:textStyle="bold" />
+
+        <com.aigestudio.wheelpicker.widgets.WheelMonthPicker
+            android:id="@+id/picker_month"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            app:wheel_atmospheric="true"
+            app:wheel_curved="true"
+            app:wheel_cyclic="true"
+            app:wheel_item_align="center"
+            app:wheel_selected_item_text_color="@color/pink" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="月"
+            android:textColor="@color/pink"
+            android:textSize="16sp"
+            android:textStyle="bold" />
+    </LinearLayout>
+</LinearLayout>

+ 68 - 0
app/src/main/res/layout/dialog_share.xml

@@ -0,0 +1,68 @@
+<?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:background="#F2F4F5"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="120dp"
+        android:gravity="left|center"
+        android:orientation="horizontal">
+
+        <LinearLayout
+            android:id="@+id/ll_wechat_session"
+            android:layout_width="68dp"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="4dp"
+            android:gravity="center"
+            android:orientation="vertical">
+
+            <ImageView
+                android:layout_width="44dp"
+                android:layout_height="44dp"
+                android:src="@mipmap/share_icon_weixin" />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="17dp"
+                android:layout_marginTop="9dp"
+                android:text="微信"
+                android:textColor="#ff000000"
+                android:textSize="12sp" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:id="@+id/ll_wechat_timeline"
+            android:layout_width="68dp"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="4dp"
+            android:gravity="center"
+            android:orientation="vertical">
+
+            <ImageView
+                android:layout_width="44dp"
+                android:layout_height="44dp"
+                android:src="@mipmap/share_icon_pengyouquan" />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="17dp"
+                android:layout_marginTop="9dp"
+                android:text="朋友圈"
+                android:textColor="#ff000000"
+                android:textSize="12sp" />
+        </LinearLayout>
+    </LinearLayout>
+
+    <TextView
+        android:id="@+id/tv_cancel"
+        android:layout_width="match_parent"
+        android:layout_height="44dp"
+        android:background="@color/white"
+        android:gravity="center"
+        android:text="取消"
+        android:textColor="#ff000000"
+        android:textSize="14sp" />
+</LinearLayout>

+ 66 - 0
app/src/main/res/layout/header_promote.xml

@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal"
+    android:paddingLeft="20dp"
+    android:paddingTop="10dp"
+    android:paddingRight="20dp"
+    android:paddingBottom="10dp">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="80dp"
+        android:background="@drawable/bg_promote_header"
+        android:orientation="horizontal">
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:orientation="vertical">
+
+            <TextView
+                android:id="@+id/tv_invite_num"
+                android:layout_width="wrap_content"
+                android:layout_height="30dp"
+                android:text="23"
+                android:textColor="#ffffffff"
+                android:textSize="22sp" />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="18dp"
+                android:layout_marginTop="4dp"
+                android:text="已邀请"
+                android:textColor="#ffffffff"
+                android:textSize="13sp" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center"
+            android:orientation="vertical">
+
+            <TextView
+                android:id="@+id/tv_coin"
+                android:layout_width="wrap_content"
+                android:layout_height="30dp"
+                android:text="23"
+                android:textColor="#ffffffff"
+                android:textSize="22sp" />
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="18dp"
+                android:layout_marginTop="4dp"
+                android:text="营销奖"
+                android:textColor="#ffffffff"
+                android:textSize="13sp" />
+        </LinearLayout>
+    </LinearLayout>
+
+</FrameLayout>

+ 51 - 0
app/src/main/res/layout/list_promote.xml

@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingLeft="20dp"
+    android:paddingTop="5dp"
+    android:paddingRight="20dp"
+    android:paddingBottom="5dp">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="60dp"
+        android:background="@drawable/bg_promote_item"
+        android:gravity="left|center"
+        android:orientation="horizontal">
+
+        <ImageView
+            android:id="@+id/iv_avatar"
+            android:layout_width="36dp"
+            android:layout_height="36dp"
+            android:layout_marginLeft="15dp"
+            android:src="@mipmap/def_head" />
+
+        <TextView
+            android:id="@+id/tv_name"
+            android:layout_width="0dp"
+            android:layout_height="20dp"
+            android:layout_marginLeft="14dp"
+            android:layout_weight="1"
+            android:text="方悦"
+            android:textColor="#ff000000"
+            android:textSize="14sp"
+            android:textStyle="bold" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="20dp"
+            android:text="奖励"
+            android:textColor="#ff666666"
+            android:textSize="14sp" />
+
+        <TextView
+            android:id="@+id/tv_coin"
+            android:layout_width="wrap_content"
+            android:layout_height="20dp"
+            android:layout_marginRight="20dp"
+            android:text="56"
+            android:textColor="#ff666666"
+            android:textSize="14sp" />
+    </LinearLayout>
+</FrameLayout>

+ 50 - 0
app/src/main/res/layout/list_wallet.xml

@@ -0,0 +1,50 @@
+<?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="76dp"
+    android:gravity="center"
+    android:paddingLeft="20dp"
+    android:paddingTop="5dp"
+    android:paddingRight="20dp"
+    android:paddingBottom="5dp">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="66dp"
+        android:background="@drawable/bg_cell"
+        android:gravity="left|center"
+        android:orientation="horizontal">
+
+        <TextView
+            android:id="@+id/tv_amount"
+            android:layout_width="78dp"
+            android:layout_height="28dp"
+            android:layout_marginLeft="20dp"
+            android:text="+500.0"
+            android:textColor="#ff1a1a1a"
+            android:textSize="20sp" />
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="10dp"
+            android:orientation="vertical">
+
+            <TextView
+                android:id="@+id/tv_name"
+                android:layout_width="wrap_content"
+                android:layout_height="20dp"
+                android:text="消费名称内容"
+                android:textColor="#ff000000"
+                android:textSize="14sp" />
+
+            <TextView
+                android:id="@+id/tv_time"
+                android:layout_width="wrap_content"
+                android:layout_height="18dp"
+                android:text="2018.05.02 15:36"
+                android:textColor="#ff999999"
+                android:textSize="13sp" />
+        </LinearLayout>
+    </LinearLayout>
+</LinearLayout>

+ 9 - 7
app/src/main/res/layout/page_broker.xml

@@ -1,14 +1,17 @@
 <?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:orientation="vertical"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
     <com.android.chmo.ui.view.TopBar
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        app:topTitle="经纪"
-        app:showBack="false"/>
+        android:background="@color/white"
+        app:showBack="false"
+        app:showBorder="true"
+        app:topTitle="经纪" />
 
     <FrameLayout
         android:layout_width="match_parent"
@@ -18,12 +21,11 @@
             android:id="@+id/empty"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            app:empty="暂无经纪"/>
+            app:empty="暂无经纪" />
 
         <com.android.chmo.ui.view.RefreshListView
             android:id="@+id/refreshList"
             android:layout_width="match_parent"
-            android:layout_height="match_parent">
-        </com.android.chmo.ui.view.RefreshListView>
+            android:layout_height="match_parent"/>
     </FrameLayout>
 </LinearLayout>

+ 9 - 7
app/src/main/res/layout/page_find.xml

@@ -1,14 +1,17 @@
 <?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:orientation="vertical"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
     <com.android.chmo.ui.view.TopBar
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        app:topTitle="发现"
-        app:showBack="false"/>
+        android:background="@color/white"
+        app:showBack="false"
+        app:showBorder="true"
+        app:topTitle="发现" />
 
     <FrameLayout
         android:layout_width="match_parent"
@@ -18,12 +21,11 @@
             android:id="@+id/empty"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            app:empty="暂无发现"/>
+            app:empty="暂无发现" />
 
         <com.android.chmo.ui.view.RefreshListView
             android:id="@+id/refreshList"
             android:layout_width="match_parent"
-            android:layout_height="match_parent">
-        </com.android.chmo.ui.view.RefreshListView>
+            android:layout_height="match_parent" />
     </FrameLayout>
 </LinearLayout>

+ 9 - 5
app/src/main/res/layout/page_message.xml

@@ -1,14 +1,17 @@
 <?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:orientation="vertical"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
     <com.android.chmo.ui.view.TopBar
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        app:topTitle="消息"
-        app:showBack="false"/>
+        android:background="@color/white"
+        app:showBack="false"
+        app:showBorder="true"
+        app:topTitle="消息" />
 
     <LinearLayout
         android:id="@+id/container"
@@ -22,11 +25,12 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:visibility="gone">
+
         <com.android.chmo.ui.view.EmptyView
             android:id="@+id/empty"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            app:empty="暂无消息记录"/>
+            app:empty="暂无消息记录" />
 
     </FrameLayout>
 </LinearLayout>

+ 5 - 3
app/src/main/res/layout/page_mine.xml

@@ -30,9 +30,11 @@
             android:textStyle="bold" />
 
         <com.dd.ShadowLayout
-            android:layout_width="wrap_content"
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:layout_marginLeft="8dp"
             android:layout_marginTop="3dp"
+            android:layout_marginRight="8dp"
             android:background="#ffffff"
             app:sl_cornerRadius="12dp"
             app:sl_dx="0dp"
@@ -41,7 +43,7 @@
             app:sl_shadowRadius="12dp">
 
             <LinearLayout
-                android:layout_width="335dp"
+                android:layout_width="match_parent"
                 android:layout_height="80dp"
                 android:background="@drawable/bg_order_menu"
                 android:gravity="center"
@@ -308,9 +310,9 @@
         <ImageView
             android:id="@+id/iv_avatar"
             android:layout_width="70dp"
-            android:scaleType="centerCrop"
             android:layout_height="70dp"
             android:layout_centerInParent="true"
+            android:scaleType="centerCrop"
             android:src="@mipmap/def_head" />
     </RelativeLayout>
 

+ 14 - 11
app/src/main/res/layout/top_bar.xml

@@ -1,16 +1,15 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="@dimen/top_bar_height"
-    android:background="@color/white">
+    android:layout_height="@dimen/top_bar_height">
 
     <ImageView
         android:id="@+id/back"
-        android:layout_width="@dimen/top_bar_height"
-        android:layout_height="@dimen/top_bar_height"
-        android:padding="10dp"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:padding="12dp"
         android:scaleType="fitCenter"
-        android:src="@mipmap/back"/>
+        android:src="@mipmap/icon_back_black" />
 
     <TextView
         android:id="@+id/title"
@@ -20,9 +19,10 @@
         android:layout_marginLeft="@dimen/top_bar_height"
         android:layout_marginRight="@dimen/top_bar_height"
         android:gravity="center"
+        android:text=""
         android:textColor="@color/black"
         android:textSize="18sp"
-        android:text=""/>
+        android:textStyle="bold" />
 
     <TextView
         android:id="@+id/right"
@@ -32,10 +32,13 @@
         android:gravity="center"
         android:paddingLeft="15dp"
         android:paddingRight="15dp"
-        android:visibility="gone"
-        android:textSize="15sp"
+        android:text="保存"
         android:textColor="@color/black"
-        android:text="保存"/>
+        android:textSize="15sp"
+        android:visibility="gone" />
 
-    <View style="@style/line" android:layout_alignParentBottom="true"/>
+    <View
+        android:id="@+id/border"
+        style="@style/line"
+        android:layout_alignParentBottom="true" />
 </RelativeLayout>

BIN
app/src/main/res/mipmap-hdpi/btu_yaoqing.png


BIN
app/src/main/res/mipmap-hdpi/erweima.png


BIN
app/src/main/res/mipmap-hdpi/icon_back_black.png


BIN
app/src/main/res/mipmap-hdpi/icon_back_white.png


BIN
app/src/main/res/mipmap-hdpi/icon_chenggong.png


BIN
app/src/main/res/mipmap-hdpi/icon_riqi.png


BIN
app/src/main/res/mipmap-hdpi/icon_weixin.png


BIN
app/src/main/res/mipmap-hdpi/icon_weixuanzhong.png


BIN
app/src/main/res/mipmap-hdpi/icon_xuanzhong.png


BIN
app/src/main/res/mipmap-hdpi/icon_zhifubao.png


BIN
app/src/main/res/mipmap-hdpi/img_qidong.png


BIN
app/src/main/res/mipmap-hdpi/img_top_logo.png


BIN
app/src/main/res/mipmap-hdpi/img_wodeshouyi.png


BIN
app/src/main/res/mipmap-hdpi/img_yaoqing_bg.png


BIN
app/src/main/res/mipmap-hdpi/logo.png


BIN
app/src/main/res/mipmap-hdpi/share_icon_pengyouquan.png


BIN
app/src/main/res/mipmap-hdpi/share_icon_qq.png


BIN
app/src/main/res/mipmap-hdpi/share_icon_qqkongjian.png


BIN
app/src/main/res/mipmap-hdpi/share_icon_weixin.png


BIN
app/src/main/res/mipmap-hdpi/share_icon_xinlang.png


BIN
app/src/main/res/mipmap-hdpi/text_yonghuduan.png


BIN
app/src/main/res/mipmap-mdpi/ic_launcher.png


BIN
app/src/main/res/mipmap-xhdpi/btu_yaoqing.png


BIN
app/src/main/res/mipmap-xhdpi/erweima.png


BIN
app/src/main/res/mipmap-xhdpi/icon_back_black.png


BIN
app/src/main/res/mipmap-xhdpi/icon_back_white.png


BIN
app/src/main/res/mipmap-xhdpi/icon_chenggong.png


BIN
app/src/main/res/mipmap-xhdpi/icon_riqi.png


BIN
app/src/main/res/mipmap-xhdpi/icon_weixin.png


BIN
app/src/main/res/mipmap-xhdpi/icon_weixuanzhong.png


BIN
app/src/main/res/mipmap-xhdpi/icon_xuanzhong.png


BIN
app/src/main/res/mipmap-xhdpi/icon_zhifubao.png


BIN
app/src/main/res/mipmap-xhdpi/img_qidong.png


BIN
app/src/main/res/mipmap-xhdpi/img_top_logo.png


Некоторые файлы не были показаны из-за большого количества измененных файлов