├── app ├── .gitignore ├── libs │ ├── stock_sdk.jar │ └── TransportModule.jar ├── src │ ├── main │ │ ├── res │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── app_icon.png │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── duanluo.png │ │ │ │ ├── ic_more.png │ │ │ │ ├── loading.png │ │ │ │ ├── nav_bg.png │ │ │ │ ├── qq_icon.png │ │ │ │ ├── reload.png │ │ │ │ ├── to_top.png │ │ │ │ ├── today.png │ │ │ │ ├── app_icon.png │ │ │ │ ├── icon_line.png │ │ │ │ ├── icon_lock.png │ │ │ │ ├── line_blue.png │ │ │ │ ├── more_blue.png │ │ │ │ ├── death_stock.png │ │ │ │ ├── ic_launcher.png │ │ │ │ ├── ic_loading.png │ │ │ │ ├── ic_warning.png │ │ │ │ ├── icon_launch.png │ │ │ │ ├── icon_pack_up.png │ │ │ │ ├── icon_update.png │ │ │ │ ├── line_black.png │ │ │ │ ├── login_icon.png │ │ │ │ ├── quota_stock.png │ │ │ │ ├── wechat_icon.png │ │ │ │ ├── one_key_login.png │ │ │ │ ├── research_stock.png │ │ │ │ ├── active_stock_icon.png │ │ │ │ ├── card_view_close.png │ │ │ │ ├── iocn_close_black.png │ │ │ │ ├── web_view_reload.png │ │ │ │ └── stock_handicap_bag.jpg │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── app_icon.png │ │ │ │ ├── icon_ad.png │ │ │ │ └── ic_launcher.png │ │ │ ├── values-xxhdpi │ │ │ │ └── dimens.xml │ │ │ ├── values-xxxhdpi │ │ │ │ └── dimens.xml │ │ │ ├── values-xhdpi │ │ │ │ └── dimens.xml │ │ │ ├── drawable │ │ │ │ ├── dialog_top_normal.xml │ │ │ │ ├── dialog_top_pressed.xml │ │ │ │ ├── side_nav_bar.xml │ │ │ │ ├── ic_menu_send.xml │ │ │ │ ├── bg_progress_dialog.xml │ │ │ │ ├── dialog_top_selector.xml │ │ │ │ ├── handicap_more_bg.xml │ │ │ │ ├── ic_menu_slideshow.xml │ │ │ │ ├── ic_menu_gallery.xml │ │ │ │ ├── dialog_style.xml │ │ │ │ ├── ic_menu_manage.xml │ │ │ │ ├── setting_poup_dialog_bg.xml │ │ │ │ ├── stock_handicap_activity_bg.xml │ │ │ │ ├── webview_progress_bar.xml │ │ │ │ ├── bg_blue_solid_btn.xml │ │ │ │ ├── ic_menu_camera.xml │ │ │ │ ├── ic_menu_share.xml │ │ │ │ └── pb_firmware_progress.xml │ │ │ ├── anim │ │ │ │ ├── push_bottom_in.xml │ │ │ │ ├── ratote_view_anmi.xml │ │ │ │ ├── loading_rotatation.xml │ │ │ │ ├── popup_menu_hide.xml │ │ │ │ └── popup_menu_show.xml │ │ │ ├── values │ │ │ │ ├── ids.xml │ │ │ │ └── attrs.xml │ │ │ ├── menu │ │ │ │ ├── popup_stock_more_menu.xml │ │ │ │ ├── history_price_menu.xml │ │ │ │ ├── stock_handicap_more_menu.xml │ │ │ │ ├── main.xml │ │ │ │ └── activity_main_drawer.xml │ │ │ ├── values-v21 │ │ │ │ └── styles.xml │ │ │ ├── values-w820dp │ │ │ │ └── dimens.xml │ │ │ └── layout │ │ │ │ ├── fragment_blank.xml │ │ │ │ ├── content_main.xml │ │ │ │ ├── activity_pdf_viewer.xml │ │ │ │ ├── activity_stock_news.xml │ │ │ │ ├── dialog_load_more.xml │ │ │ │ ├── fragment_death_squad_stock.xml │ │ │ │ ├── fragment_stock.xml │ │ │ │ ├── activity_history_pirce.xml │ │ │ │ ├── bottom_ad_bar.xml │ │ │ │ ├── dialog_progress.xml │ │ │ │ ├── dialog_ad.xml │ │ │ │ ├── activity_main.xml │ │ │ │ ├── activity_web_view.xml │ │ │ │ ├── fragment_lock.xml │ │ │ │ ├── loading_layout.xml │ │ │ │ ├── nav_header_main.xml │ │ │ │ ├── notify_progress_bar.xml │ │ │ │ ├── stock_title_item.xml │ │ │ │ ├── activity_login.xml │ │ │ │ ├── activity_feedback.xml │ │ │ │ ├── widget_global_dialog.xml │ │ │ │ ├── activity_stock_handicap_more.xml │ │ │ │ ├── card_view_stock_news_item.xml │ │ │ │ └── app_bar_main.xml │ │ └── java │ │ │ └── com │ │ │ ├── app │ │ │ └── sinkinchan │ │ │ │ └── smartstock │ │ │ │ ├── utils │ │ │ │ ├── SendMailUtil.java │ │ │ │ ├── ui │ │ │ │ │ ├── WindowManagerUtil.java │ │ │ │ │ ├── Rotation.java │ │ │ │ │ └── DisplayUtil.java │ │ │ │ ├── TypedValueUtil.java │ │ │ │ ├── Base.java │ │ │ │ ├── NetUtils.java │ │ │ │ ├── ViewUtil.java │ │ │ │ ├── ThemeUtil.java │ │ │ │ ├── ZipUtil.java │ │ │ │ ├── ToastUtil.java │ │ │ │ ├── http │ │ │ │ │ └── Netroid.java │ │ │ │ ├── UserUtil.java │ │ │ │ ├── PreferenceUtil.java │ │ │ │ ├── DeviceUtils.java │ │ │ │ ├── LoadingUtil.java │ │ │ │ ├── DateUtil.java │ │ │ │ ├── LogUtil.java │ │ │ │ └── ResourceManager.java │ │ │ │ ├── mina │ │ │ │ ├── service │ │ │ │ │ ├── HandlerMessage.java │ │ │ │ │ └── impl │ │ │ │ │ │ └── HandlerMessageImpl.java │ │ │ │ ├── modle │ │ │ │ │ ├── MinaMessage.java │ │ │ │ │ └── Module.java │ │ │ │ ├── MinaService.java │ │ │ │ ├── constant │ │ │ │ │ └── MinaConstant.java │ │ │ │ └── MinaClientHandler.java │ │ │ │ ├── adapters │ │ │ │ ├── base │ │ │ │ │ └── BaseAdapter.java │ │ │ │ ├── ActiveStockAdapter.java │ │ │ │ ├── ResearchStockAdapter.java │ │ │ │ ├── DeathSquadStockAdapter.java │ │ │ │ ├── QuotaType3StockAdapter.java │ │ │ │ ├── QuotaType1StockAdapter.java │ │ │ │ ├── QuotaType2StockAdapter.java │ │ │ │ └── QuotaType4StockAdapter.java │ │ │ │ ├── constant │ │ │ │ └── Constants.java │ │ │ │ ├── dialog │ │ │ │ ├── LoadMoreDialog.java │ │ │ │ ├── AdDialog.java │ │ │ │ ├── ProgressDialog.java │ │ │ │ ├── DeleteStockDialog.java │ │ │ │ ├── base │ │ │ │ │ └── BaseDialog.java │ │ │ │ └── ResearchStockSettingDialog.java │ │ │ │ ├── fragments │ │ │ │ ├── BlankFragment.java │ │ │ │ └── LockFragment.java │ │ │ │ ├── views │ │ │ │ └── CustomRecyclerView.java │ │ │ │ ├── bean │ │ │ │ ├── LocalUser.java │ │ │ │ └── DeleteStockBean.java │ │ │ │ ├── event │ │ │ │ └── MessageEvent.java │ │ │ │ ├── wxapi │ │ │ │ └── WXEntryActivity.java │ │ │ │ ├── behaviors │ │ │ │ └── ScrollAwareFABBehavior.java │ │ │ │ ├── glide │ │ │ │ ├── GlideCircleTransform.java │ │ │ │ └── GlideImgManager.java │ │ │ │ ├── app │ │ │ │ └── App.java │ │ │ │ ├── activitys │ │ │ │ ├── LoginActivity.java │ │ │ │ ├── StockHandicapMoreActivity.java │ │ │ │ └── FeedbackActivity.java │ │ │ │ └── mode │ │ │ │ └── StockHandicapModeView.java │ │ │ └── mina │ │ │ └── communication │ │ │ └── bean │ │ │ └── Test.java │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── app │ │ │ └── sinkinchan │ │ │ └── smartstock │ │ │ └── ExampleUnitTest.java │ └── androidTest │ │ └── java │ │ └── com │ │ └── app │ │ └── sinkinchan │ │ └── smartstock │ │ └── ExampleInstrumentedTest.java ├── proguard-rules.pro └── build.gradle ├── settings.gradle ├── screenshot ├── S61120-112355.jpg ├── S61120-112401.jpg ├── S61120-112407.jpg ├── S61120-112416.jpg ├── S61120-112422.jpg ├── S61120-112426.jpg ├── S61120-112434.jpg ├── S61120-112440.jpg └── S70115-142719.jpg ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── gradle.properties ├── README.md └── gradlew.bat /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /app/libs/stock_sdk.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/libs/stock_sdk.jar -------------------------------------------------------------------------------- /app/libs/TransportModule.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/libs/TransportModule.jar -------------------------------------------------------------------------------- /screenshot/S61120-112355.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/screenshot/S61120-112355.jpg -------------------------------------------------------------------------------- /screenshot/S61120-112401.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/screenshot/S61120-112401.jpg -------------------------------------------------------------------------------- /screenshot/S61120-112407.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/screenshot/S61120-112407.jpg -------------------------------------------------------------------------------- /screenshot/S61120-112416.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/screenshot/S61120-112416.jpg -------------------------------------------------------------------------------- /screenshot/S61120-112422.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/screenshot/S61120-112422.jpg -------------------------------------------------------------------------------- /screenshot/S61120-112426.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/screenshot/S61120-112426.jpg -------------------------------------------------------------------------------- /screenshot/S61120-112434.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/screenshot/S61120-112434.jpg -------------------------------------------------------------------------------- /screenshot/S61120-112440.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/screenshot/S61120-112440.jpg -------------------------------------------------------------------------------- /screenshot/S70115-142719.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/screenshot/S70115-142719.jpg -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xhdpi/app_icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/duanluo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/duanluo.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/ic_more.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/loading.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/nav_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/nav_bg.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/qq_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/qq_icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/reload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/reload.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/to_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/to_top.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/today.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/today.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/app_icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/icon_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/icon_line.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/icon_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/icon_lock.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/line_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/line_blue.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/more_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/more_blue.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/app_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxxhdpi/app_icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/icon_ad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxxhdpi/icon_ad.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/death_stock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/death_stock.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/ic_loading.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/ic_warning.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/icon_launch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/icon_launch.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/icon_pack_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/icon_pack_up.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/icon_update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/icon_update.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/line_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/line_black.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/login_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/login_icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/quota_stock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/quota_stock.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/wechat_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/wechat_icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/one_key_login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/one_key_login.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/research_stock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/research_stock.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/active_stock_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/active_stock_icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/card_view_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/card_view_close.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/iocn_close_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/iocn_close_black.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/web_view_reload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/web_view_reload.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/stock_handicap_bag.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/momo145/SmartStock/HEAD/app/src/main/res/mipmap-xxhdpi/stock_handicap_bag.jpg -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/workspace.xml 5 | /.idea/libraries 6 | .DS_Store 7 | /build 8 | /captures 9 | .externalNativeBuild 10 | -------------------------------------------------------------------------------- /app/src/main/res/values-xxhdpi/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 117dp 3 | 116dp 4 | 45 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values-xxxhdpi/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 120dp 3 | 117dp 4 | 116dp 5 | 45 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/values-xhdpi/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 6dp 3 | 120dp 4 | 20dp 5 | 30 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/utils/SendMailUtil.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.utils; 2 | 3 | /** 4 | * @author : 陈欣健 5 | * @describe : 6 | * @since :2016-12-29 下午4:05 7 | **/ 8 | public class SendMailUtil { 9 | 10 | 11 | } 12 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Sep 03 10:15:01 CST 2016 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/dialog_top_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/dialog_top_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/anim/push_bottom_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/side_nav_bar.xml: -------------------------------------------------------------------------------- 1 | 3 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/menu/popup_stock_more_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/ratote_view_anmi.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_send.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/anim/loading_rotatation.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/history_price_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/menu/stock_handicap_more_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_blank.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_progress_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/dialog_top_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/handicap_more_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_slideshow.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_gallery.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/dialog_style.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_manage.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_pdf_viewer.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/test/java/com/app/sinkinchan/smartstock/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() throws Exception { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/setting_poup_dialog_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/stock_handicap_activity_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/mina/service/HandlerMessage.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.mina.service; 2 | 3 | import com.app.sinkinchan.smartstock.mina.modle.Module; 4 | 5 | import org.apache.mina.core.session.IoSession; 6 | 7 | 8 | public interface HandlerMessage { 9 | 10 | void handlerMessage(IoSession session, Object module); 11 | 12 | 13 | /** 14 | * 获取版本号 15 | * 16 | * @param session 17 | * @param module 18 | */ 19 | void getVersion(IoSession session, Module module); 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/adapters/base/BaseAdapter.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.adapters.base; 2 | 3 | import com.sinkinchan.stock.sdk.SourceManager; 4 | 5 | /** 6 | * @author : 陈欣健 7 | * @describe : 8 | * @since :2016-09-05 下午8:50 9 | **/ 10 | public interface BaseAdapter { 11 | boolean isLoading(); 12 | 13 | void setLoading(boolean loading); 14 | 15 | boolean isRefreshing(); 16 | 17 | void setRefreshing(boolean refreshing); 18 | 19 | T getPage(); 20 | 21 | SourceManager.StockType getType(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/webview_progress_bar.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 12 | 13 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_stock_news.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_load_more.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_death_squad_stock.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_blue_solid_btn.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 13 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_camera.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/utils/ui/WindowManagerUtil.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.utils.ui; 2 | 3 | import android.view.Display; 4 | import android.view.View; 5 | 6 | import com.app.sinkinchan.smartstock.utils.ServiceUtil; 7 | 8 | /** 9 | * @author : 陈欣健 10 | * @describe : 11 | * @since :2016-09-10 上午11:53 12 | **/ 13 | public class WindowManagerUtil { 14 | public static Display getDefaultDisplay() { 15 | return ServiceUtil.getWindowManager().getDefaultDisplay(); 16 | } 17 | 18 | public static void removeViewImmediate(View view) { 19 | ServiceUtil.getWindowManager().removeViewImmediate(view); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/utils/ui/Rotation.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.utils.ui; 2 | 3 | /** 4 | * @author : 陈欣健 5 | * @describe : 6 | * @since :2016-09-10 上午11:59 7 | **/ 8 | public enum Rotation { 9 | DEGREES_0(0), 10 | DEGREES_90(1), 11 | DEGREES_180(2), 12 | DEGREES_270(3); 13 | 14 | int value; 15 | 16 | Rotation(int value) { 17 | this.value = value; 18 | } 19 | 20 | public static Rotation fromValue(int value) { 21 | for (Rotation rotation : values()) 22 | if (rotation.value == value) 23 | return rotation; 24 | 25 | return DEGREES_0; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/res/anim/popup_menu_hide.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/anim/popup_menu_show.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_stock.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/java/com/mina/communication/bean/Test.java: -------------------------------------------------------------------------------- 1 | package com.mina.communication.bean; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * @author : 陈欣健 7 | * @describe : 8 | * @since :2016-09-17 上午11:36 9 | **/ 10 | public class Test implements Serializable { 11 | private String title; 12 | private String message; 13 | 14 | public String getTitle() { 15 | return title; 16 | } 17 | 18 | public Test setTitle(String title) { 19 | this.title = title; 20 | return this; 21 | } 22 | 23 | public String getMessage() { 24 | return message; 25 | } 26 | 27 | public Test setMessage(String message) { 28 | this.message = message; 29 | return this; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_share.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_history_pirce.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | org.gradle.jvmargs=-Xmx2048M 13 | # When configured, Gradle will run in incubating parallel mode. 14 | # This option should only be used with decoupled projects. More details, visit 15 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 16 | # org.gradle.parallel=true 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/constant/Constants.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.constant; 2 | 3 | import android.os.Environment; 4 | 5 | import java.io.File; 6 | 7 | /** 8 | * @author : 陈欣健 9 | * @describe : 10 | * @since :2016-09-10 下午5:17 11 | **/ 12 | public class Constants { 13 | public static File APP_FILE_CACHE_DIR = new File(Environment.getExternalStorageDirectory(), "SmartStock"); 14 | public static File APP_FILE_PDF_CACHE_DIR = new File(APP_FILE_CACHE_DIR.getAbsolutePath(), "PDF"); 15 | public static File APP_UPDATE_URL = new File(APP_FILE_CACHE_DIR.getAbsolutePath(), "SmartStock.apk"); 16 | 17 | public static void createDir() { 18 | if (!APP_FILE_PDF_CACHE_DIR.exists()) { 19 | APP_FILE_PDF_CACHE_DIR.mkdirs(); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/apple/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -keep class com.baidu.bottom.** { *; } 19 | -keep class com.baidu.kirin.** { *; } 20 | -keep class com.baidu.mobstat.** { *; } -------------------------------------------------------------------------------- /app/src/main/res/drawable/pb_firmware_progress.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /app/src/androidTest/java/com/app/sinkinchan/smartstock/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock; 2 | 3 | import android.content.Context; 4 | import android.support.test.InstrumentationRegistry; 5 | import android.support.test.runner.AndroidJUnit4; 6 | 7 | import org.junit.Test; 8 | import org.junit.runner.RunWith; 9 | 10 | import static org.junit.Assert.*; 11 | 12 | /** 13 | * Instrumentation test, which will execute on an Android device. 14 | * 15 | * @see Testing documentation 16 | */ 17 | @RunWith(AndroidJUnit4.class) 18 | public class ExampleInstrumentedTest { 19 | @Test 20 | public void useAppContext() throws Exception { 21 | // Context of the app under test. 22 | Context appContext = InstrumentationRegistry.getTargetContext(); 23 | 24 | assertEquals("com.app.sinkinchan.smartstock", appContext.getPackageName()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/utils/TypedValueUtil.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.utils; 2 | 3 | import android.util.TypedValue; 4 | 5 | /** 6 | * @author : 陈欣健 7 | * @describe : 8 | * @since :2016-09-10 下午12:08 9 | **/ 10 | public class TypedValueUtil { 11 | public static float applyDimension(int unit, float value) { 12 | return TypedValue.applyDimension(unit, value, Base.getDisplayMetrics()); 13 | } 14 | 15 | public static float complexToDimension(int data) { 16 | return TypedValue.complexToDimension(data, Base.getDisplayMetrics()); 17 | } 18 | 19 | public static int complexToDimensionPixelOffset(int data) { 20 | return TypedValue.complexToDimensionPixelOffset(data, Base.getDisplayMetrics()); 21 | } 22 | 23 | public static int complexToDimensionPixelSize(int data) { 24 | return TypedValue.complexToDimensionPixelSize(data, Base.getDisplayMetrics()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/bottom_ad_bar.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 15 | 16 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/mina/modle/MinaMessage.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.mina.modle; 2 | 3 | import java.io.Serializable; 4 | 5 | public class MinaMessage implements Serializable { 6 | 7 | /** 8 | * 9 | */ 10 | private static final long serialVersionUID = 1L; 11 | 12 | private int code; 13 | private String message; 14 | public static final int SUCCESS = 1000; 15 | public static final int ERROR = 1001; 16 | 17 | public MinaMessage() { 18 | super(); 19 | // TODO Auto-generated constructor stub 20 | } 21 | 22 | public MinaMessage(int code, String message) { 23 | super(); 24 | this.code = code; 25 | this.message = message; 26 | } 27 | 28 | public int getCode() { 29 | return code; 30 | } 31 | 32 | public void setCode(int code) { 33 | this.code = code; 34 | } 35 | 36 | public String getMessage() { 37 | return message; 38 | } 39 | 40 | public void setMessage(String message) { 41 | this.message = message; 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/dialog/LoadMoreDialog.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.dialog; 2 | 3 | import android.content.Context; 4 | import android.content.DialogInterface; 5 | import android.os.Bundle; 6 | 7 | import com.app.sinkinchan.smartstock.R; 8 | import com.app.sinkinchan.smartstock.dialog.base.BaseDialog; 9 | 10 | /** 11 | * @author : 陈欣健 12 | * @describe : 13 | * @since :2016-09-04 下午10:49 14 | **/ 15 | public class LoadMoreDialog extends BaseDialog { 16 | public LoadMoreDialog(Context context) { 17 | super(context, R.style.CommonDialog); 18 | // setCancelable(false); 19 | setCanceledOnTouchOutside(false); 20 | } 21 | 22 | @Override 23 | protected void onCreate(Bundle savedInstanceState) { 24 | super.onCreate(savedInstanceState); 25 | setContentView(R.layout.dialog_load_more); 26 | } 27 | 28 | @Override 29 | public void onDismiss(DialogInterface dialog) { 30 | super.onDismiss(dialog); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_progress.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 17 | 18 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/dialog_ad.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 17 | 18 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | 17 | 18 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/fragments/BlankFragment.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.fragments; 2 | 3 | import android.os.Bundle; 4 | import android.view.LayoutInflater; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | 8 | import com.app.sinkinchan.smartstock.R; 9 | import com.app.sinkinchan.smartstock.fragments.base.BaseFragment; 10 | 11 | /** 12 | * @author : 陈欣健 13 | * @describe : 14 | * @since :2016-09-04 下午4:44 15 | **/ 16 | public class BlankFragment extends BaseFragment { 17 | 18 | @Override 19 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 20 | View view = inflater.inflate(R.layout.fragment_blank, container, false); 21 | return view; 22 | } 23 | 24 | 25 | @Override 26 | public void onPause() { 27 | super.onPause(); 28 | } 29 | 30 | @Override 31 | public void onResume() { 32 | super.onResume(); 33 | 34 | } 35 | 36 | @Override 37 | public void onCreate(Bundle savedInstanceState) { 38 | super.onCreate(savedInstanceState); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/views/CustomRecyclerView.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.views; 2 | 3 | 4 | import android.content.Context; 5 | import android.util.AttributeSet; 6 | 7 | import com.jcodecraeer.xrecyclerview.XRecyclerView; 8 | 9 | /** 10 | * @author : 陈欣健 11 | * @describe : 12 | * @since :2016-09-04 下午10:20 13 | **/ 14 | public class CustomRecyclerView extends XRecyclerView { 15 | 16 | public boolean isLoading; 17 | public boolean isRefreshing; 18 | 19 | public CustomRecyclerView(Context context) { 20 | super(context); 21 | } 22 | 23 | public CustomRecyclerView(Context context, AttributeSet attrs) { 24 | super(context, attrs); 25 | } 26 | 27 | public CustomRecyclerView(Context context, AttributeSet attrs, int defStyle) { 28 | super(context, attrs, defStyle); 29 | } 30 | 31 | @Override 32 | public void refreshComplete() { 33 | super.refreshComplete(); 34 | isRefreshing = false; 35 | } 36 | 37 | @Override 38 | public void loadMoreComplete() { 39 | super.loadMoreComplete(); 40 | isLoading = false; 41 | } 42 | 43 | 44 | } 45 | 46 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/mina/modle/Module.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.mina.modle; 2 | 3 | import java.io.Serializable; 4 | 5 | /** 6 | * 传输控制模块 7 | * 8 | * @author 陈欣健 2014年8月9日下午11:01:18 9 | * 10 | */ 11 | public class Module implements Serializable{ 12 | 13 | 14 | /** 15 | * 16 | */ 17 | private static final long serialVersionUID = 5271977975374599931L; 18 | /** 19 | * 控制代码 20 | */ 21 | private int code; 22 | /** 23 | * 返回的json 24 | */ 25 | private String json; 26 | 27 | public Module(int code, String json) { 28 | super(); 29 | this.code = code; 30 | this.json = json; 31 | } 32 | 33 | public Module() { 34 | super(); 35 | // TODO Auto-generated constructor stub 36 | } 37 | 38 | public int getCode() { 39 | return code; 40 | } 41 | public void setCode(int code) { 42 | this.code = code; 43 | } 44 | public String getJson() { 45 | return json; 46 | } 47 | public void setJson(String json) { 48 | this.json = json; 49 | } 50 | 51 | @Override 52 | public String toString() { 53 | return "Module [code=" + code + ", json=" + json + "]"; 54 | } 55 | 56 | 57 | } 58 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/bean/LocalUser.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.bean; 2 | 3 | import com.sinkinchan.transport.module.UserBean; 4 | 5 | import java.util.Date; 6 | 7 | /** 8 | * @author : 陈欣健 9 | * @describe : 10 | * @since :2016-10-22 下午8:31 11 | **/ 12 | public class LocalUser extends UserBean { 13 | //过时 14 | private Date OutOfDate; 15 | 16 | public LocalUser() { 17 | } 18 | 19 | public LocalUser(UserBean userBean) { 20 | if (userBean != null) { 21 | setId(userBean.getId()); 22 | setAddTime(userBean.getAddTime()); 23 | setUserName(userBean.getUserName()); 24 | setIcon(userBean.getIcon()); 25 | setGender(userBean.getGender()); 26 | setThird_party_id(userBean.getThird_party_id()); 27 | setPlatform(userBean.getPlatform()); 28 | setIsOnline(userBean.getIsOnline()); 29 | setLoginTime(userBean.getLoginTime()); 30 | setLogOutTime(userBean.getLogOutTime()); 31 | } 32 | } 33 | 34 | 35 | public Date getOutOfDate() { 36 | return OutOfDate; 37 | } 38 | 39 | public LocalUser setOutOfDate(Date outOfDate) { 40 | OutOfDate = outOfDate; 41 | return this; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/bean/DeleteStockBean.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.bean; 2 | 3 | import com.orm.SugarRecord; 4 | import com.orm.dsl.Table; 5 | 6 | /** 7 | * @author : 陈欣健 8 | * @describe : 9 | * @since :2016-09-19 下午10:05 10 | **/ 11 | @Table 12 | public class DeleteStockBean extends SugarRecord { 13 | private String stockCode; 14 | private String time; 15 | private String type; 16 | 17 | public String getStockCode() { 18 | return stockCode; 19 | } 20 | 21 | public DeleteStockBean setStockCode(String stockCode) { 22 | this.stockCode = stockCode; 23 | return this; 24 | } 25 | 26 | public String getTime() { 27 | return time; 28 | } 29 | 30 | public DeleteStockBean setTime(String time) { 31 | this.time = time; 32 | return this; 33 | } 34 | 35 | public String getType() { 36 | return type; 37 | } 38 | 39 | public DeleteStockBean setType(String type) { 40 | this.type = type; 41 | return this; 42 | } 43 | 44 | @Override 45 | public String toString() { 46 | return "DeleteStockBean{" + 47 | "stockCode='" + stockCode + '\'' + 48 | ", time=" + time + 49 | ", type=" + type + 50 | '}'; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/event/MessageEvent.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.event; 2 | 3 | /** 4 | * @author : 陈欣健 5 | * @describe : 6 | * @since :2016-07-16 下午11:40 7 | **/ 8 | public class MessageEvent { 9 | public enum Type { 10 | GET_ACTIVE_STOCKS_PAGE_SUCCESS, UPDATE_STOCK_DETAIL, REFRESH_STOCK, GET_STOCK_HISTORY_PRICE_SUCCESS, 11 | GET_STOCK_NEWS_SUCCESS, GET_STOCK_NOTICES_SUCCESS, GET_RESEARCH_STOCKS_PAGE_SUCCESS, GO_TO_TOP, 12 | OPEN_SETTING, HIDE_SETTING, SHOW_SETTING, GET_DEATH_SQUAD_STOCK_SUCCESS, GET_QUOTA_STOCK_SUCCESS, 13 | HIDE_TAB_LAYOUT, SHOW_TAB_LAYOUT, SHOW_MESSAGE, SET_TITLE, DELETE_ITEM, GET_STOCK_QUOTA_SUCCESS, REGISTER_SUCCESS, 14 | LOGIN_SUCCESS, STOCK_HANDICAP, AUTO_REFRESH_DATA_COUNT_DOWN, AUTO_REFRESH_DATA, REWARD_POINTS, SHOW_POINTS_POOL_DIALOG, 15 | USE_FUNCTION,STOCK_HANDICAP_MORE; 16 | } 17 | 18 | private Type type; 19 | private Object args; 20 | 21 | public MessageEvent(Type type) { 22 | this.type = type; 23 | } 24 | 25 | public MessageEvent(Type type, Object args) { 26 | this.type = type; 27 | this.args = args; 28 | } 29 | 30 | public Type getType() { 31 | return type; 32 | } 33 | 34 | public Object getArgs() { 35 | return args; 36 | } 37 | 38 | 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_web_view.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 13 | 14 | 15 | 16 | 23 | 24 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SmartStock 2 | 3 | #描述 4 | 因为在15年年初被朋(sun)友忽悠了进股市,在经历了15年大跌和几次熔断之后站在了高高的山顶吹风(手动微笑). 5 | 因为我遇到喜欢的事物我就想着能不能在这方面写个app来方便下自己使用,于是就出现了这个选股app了,这里面的数据全是来自于网上,仅供参考. 6 | #app概述 7 | 这个app主要是利用爬虫技术把网上已有的数据进行集合,说智能其实却不是很智能. 8 | #重要 9 | 这个app用到了Android 的DataBinding 但是里面好多地方我没有使用 Observable 来控制view的刷新,而是直接调用刷新,这样是不好的,会导致性能问题 10 | 但是我又懒得改,只有股票详情那里是用了. 11 | #智能选股Sdk 12 | https://github.com/momo145/StockSdk 13 | #通讯类 14 | https://github.com/momo145/TransportModule 15 | #服务端 16 | https://github.com/momo145/SmartStockServer 17 | MinaConstant 这个类修改连接ip,你也可以改成配置文件 18 | #screenshot 19 | ![](https://github.com/momo145/SmartStock/blob/master/screenshot/S61120-112355.jpg) 20 | ![](https://github.com/momo145/SmartStock/blob/master/screenshot/S61120-112401.jpg) 21 | ![](https://github.com/momo145/SmartStock/blob/master/screenshot/S61120-112407.jpg) 22 | ![](https://github.com/momo145/SmartStock/blob/master/screenshot/S61120-112416.jpg) 23 | ![](https://github.com/momo145/SmartStock/blob/master/screenshot/S61120-112422.jpg) 24 | ![](https://github.com/momo145/SmartStock/blob/master/screenshot/S61120-112426.jpg) 25 | ![](https://github.com/momo145/SmartStock/blob/master/screenshot/S61120-112434.jpg) 26 | ![](https://github.com/momo145/SmartStock/blob/master/screenshot/S61120-112440.jpg) 27 | ![](https://github.com/momo145/SmartStock/blob/master/screenshot/S70115-142719.jpg) 28 | 29 | 30 | 31 | 32 | # Change Log 33 | ## 1.1.0 34 | - 添加股票盘口详情 35 | - bug fix 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/wxapi/WXEntryActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * 官网地站:http://www.mob.com 3 | * 技术支持QQ: 4006852216 4 | * 官方微信:ShareSDK (如果发布新版本的话,我们将会第一时间通过微信将版本更新内容推送给您。如果使用过程中有任何问题,也可以通过微信与我们取得联系,我们将会在24小时内给予回复) 5 | * 6 | * Copyright (c) 2013年 mob.com. All rights reserved. 7 | */ 8 | 9 | package com.app.sinkinchan.smartstock.wxapi; 10 | 11 | 12 | 13 | /** 微信客户端回调activity示例 */ 14 | public class WXEntryActivity /*extends WechatHandlerActivity*/ { 15 | 16 | /** 17 | * 处理微信发出的向第三方应用请求app message 18 | *

19 | * 在微信客户端中的聊天页面有“添加工具”,可以将本应用的图标添加到其中 20 | * 此后点击图标,下面的代码会被执行。Demo仅仅只是打开自己而已,但你可 21 | * 做点其他的事情,包括根本不打开任何页面 22 | */ 23 | /*public void onGetMessageFromWXReq(WXMediaMessage msg) { 24 | Intent iLaunchMyself = getPackageManager().getLaunchIntentForPackage(getPackageName()); 25 | startActivity(iLaunchMyself); 26 | } 27 | 28 | *//** 29 | * 处理微信向第三方应用发起的消息 30 | *

31 | * 此处用来接收从微信发送过来的消息,比方说本demo在wechatpage里面分享 32 | * 应用时可以不分享应用文件,而分享一段应用的自定义信息。接受方的微信 33 | * 客户端会通过这个方法,将这个信息发送回接收方手机上的本demo中,当作 34 | * 回调。 35 | *

36 | * 本Demo只是将信息展示出来,但你可做点其他的事情,而不仅仅只是Toast 37 | *//* 38 | public void onShowMessageFromWXReq(WXMediaMessage msg) { 39 | if (msg != null && msg.mediaObject != null 40 | && (msg.mediaObject instanceof WXAppExtendObject)) { 41 | WXAppExtendObject obj = (WXAppExtendObject) msg.mediaObject; 42 | Toast.makeText(this, obj.extInfo, Toast.LENGTH_SHORT).show(); 43 | } 44 | }*/ 45 | 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/fragments/LockFragment.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.fragments; 2 | 3 | import android.os.Bundle; 4 | import android.view.LayoutInflater; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | 8 | import com.app.sinkinchan.smartstock.R; 9 | import com.app.sinkinchan.smartstock.event.MessageEvent; 10 | import com.app.sinkinchan.smartstock.fragments.base.BaseFragment; 11 | 12 | import org.greenrobot.eventbus.EventBus; 13 | 14 | /** 15 | * @author : 陈欣健 16 | * @describe : 17 | * @since :2016-09-04 下午4:44 18 | **/ 19 | public class LockFragment extends BaseFragment { 20 | 21 | @Override 22 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 23 | View view = inflater.inflate(R.layout.fragment_lock, container, false); 24 | EventBus.getDefault().post(new MessageEvent(MessageEvent.Type.HIDE_SETTING)); 25 | EventBus.getDefault().post(new MessageEvent(MessageEvent.Type.HIDE_TAB_LAYOUT)); 26 | EventBus.getDefault().post(new MessageEvent(MessageEvent.Type.SET_TITLE, "解锁功能")); 27 | return view; 28 | } 29 | 30 | 31 | @Override 32 | public void onPause() { 33 | super.onPause(); 34 | } 35 | 36 | @Override 37 | public void onResume() { 38 | super.onResume(); 39 | 40 | } 41 | 42 | @Override 43 | public void onCreate(Bundle savedInstanceState) { 44 | super.onCreate(savedInstanceState); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/behaviors/ScrollAwareFABBehavior.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.behaviors; 2 | 3 | import android.content.Context; 4 | import android.support.design.widget.CoordinatorLayout; 5 | import android.support.design.widget.FloatingActionButton; 6 | import android.support.v4.view.ViewCompat; 7 | import android.util.AttributeSet; 8 | import android.view.View; 9 | 10 | /** 11 | * @author : 陈欣健 12 | * @describe : 13 | * @since :2016-09-10 下午3:49 14 | **/ 15 | public class ScrollAwareFABBehavior extends FloatingActionButton.Behavior { 16 | 17 | public ScrollAwareFABBehavior(Context context, AttributeSet attributeSet){ 18 | super(); 19 | } 20 | 21 | @Override 22 | public void onNestedScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) { 23 | super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed); 24 | if (dyConsumed > 0 && child.getVisibility() == View.VISIBLE) { 25 | child.hide(); 26 | } else if (dyConsumed < 0 && child.getVisibility() == View.GONE) { 27 | child.show(); 28 | } 29 | } 30 | 31 | @Override 32 | public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child, View directTargetChild, View target, int nestedScrollAxes) { 33 | return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL; 34 | } 35 | } -------------------------------------------------------------------------------- /app/src/main/java/com/app/sinkinchan/smartstock/utils/Base.java: -------------------------------------------------------------------------------- 1 | package com.app.sinkinchan.smartstock.utils; 2 | 3 | import android.content.Context; 4 | import android.content.res.AssetManager; 5 | import android.content.res.Configuration; 6 | import android.content.res.Resources; 7 | import android.support.annotation.NonNull; 8 | import android.util.DisplayMetrics; 9 | 10 | /** 11 | * @author : 陈欣健 12 | * @describe : 13 | * @since :2016-09-10 下午12:04 14 | **/ 15 | public class Base { 16 | private static Context context; 17 | 18 | public static void initialize(@NonNull Context context) { 19 | Base.context = context; 20 | } 21 | 22 | public static Context getContext() { 23 | synchronized (Base.class) { 24 | if (Base.context == null) 25 | throw new NullPointerException("Call Base.initialize(context) within your Application onCreate() method."); 26 | 27 | return Base.context.getApplicationContext(); 28 | } 29 | } 30 | 31 | public static Resources getResources() { 32 | return Base.getContext().getResources(); 33 | } 34 | 35 | public static Resources.Theme getTheme() { 36 | return Base.getContext().getTheme(); 37 | } 38 | 39 | public static AssetManager getAssets() { 40 | return Base.getContext().getAssets(); 41 | } 42 | 43 | public static Configuration getConfiguration() { 44 | return Base.getResources().getConfiguration(); 45 | } 46 | 47 | public static DisplayMetrics getDisplayMetrics() { 48 | return Base.getResources().getDisplayMetrics(); 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_lock.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 15 | 16 | 23 | 24 | 29 | 30 |