├── .gitignore ├── .idea ├── .name ├── compiler.xml ├── copyright │ └── profiles_settings.xml ├── encodings.xml ├── gradle.xml ├── libraries │ ├── circleimageview_2_0_0.xml │ ├── fastjson_1_1_39_leancloud.xml │ ├── floatingactionbutton_1_3_0.xml │ ├── freemarker_2_3_23.xml │ ├── library_1_0_1.xml │ ├── library_1_1_3.xml │ ├── library_1_2_8.xml │ ├── library_2_4_0.xml │ ├── okhttp_2_6_0_leancloud.xml │ └── okio_1_6_0_leancloud.xml ├── misc.xml ├── modules.xml ├── runConfigurations.xml ├── vcs.xml └── workspace.xml ├── JzApp.iml ├── LICENSE ├── README.md ├── app ├── .gitignore ├── app.iml ├── build.gradle ├── libs │ ├── Msc.jar │ └── Sunflower.jar ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── suda │ │ └── com │ │ └── jzapp │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── assets │ └── iflytek │ │ ├── recognize.xml │ │ ├── voice_bg.9.png │ │ ├── voice_empty.png │ │ ├── voice_full.png │ │ ├── waiting.png │ │ └── warning.png │ ├── java │ └── com │ │ └── suda │ │ └── jzapp │ │ ├── BaseActivity.java │ │ ├── MyApplication.java │ │ ├── dao │ │ ├── cloud │ │ │ └── avos │ │ │ │ └── pojo │ │ │ │ ├── account │ │ │ │ ├── AVAccount.java │ │ │ │ └── AVAccountIndex.java │ │ │ │ ├── record │ │ │ │ ├── AVRecord.java │ │ │ │ ├── AVRecordType.java │ │ │ │ └── AVRecordTypeIndex.java │ │ │ │ ├── system │ │ │ │ └── AVUpdateCheck.java │ │ │ │ └── user │ │ │ │ ├── MyAVUser.java │ │ │ │ └── UserLink.java │ │ ├── greendao │ │ │ ├── Account.java │ │ │ ├── AccountDao.java │ │ │ ├── AccountType.java │ │ │ ├── AccountTypeDao.java │ │ │ ├── Budget.java │ │ │ ├── BudgetDao.java │ │ │ ├── Config.java │ │ │ ├── ConfigDao.java │ │ │ ├── Currency.java │ │ │ ├── CurrencyDao.java │ │ │ ├── DaoMaster.java │ │ │ ├── DaoSession.java │ │ │ ├── Record.java │ │ │ ├── RecordDao.java │ │ │ ├── RecordType.java │ │ │ ├── RecordTypeDao.java │ │ │ ├── RemarkTip.java │ │ │ ├── RemarkTipDao.java │ │ │ ├── UpdateDB.java │ │ │ ├── User.java │ │ │ ├── UserDao.java │ │ │ ├── YiYan.java │ │ │ └── YiYanDao.java │ │ └── local │ │ │ ├── BaseLocalDao.java │ │ │ ├── account │ │ │ └── AccountLocalDao.java │ │ │ ├── conf │ │ │ └── ConfigLocalDao.java │ │ │ ├── record │ │ │ ├── RecordLocalDAO.java │ │ │ └── RecordTypeLocalDao.java │ │ │ └── user │ │ │ └── UserLocalDao.java │ │ ├── manager │ │ ├── AccountManager.java │ │ ├── BaseManager.java │ │ ├── RecordManager.java │ │ ├── SyncManager.java │ │ ├── SystemManager.java │ │ ├── UserManager.java │ │ └── domain │ │ │ ├── AccountDetailDO.java │ │ │ ├── AccountIndexDO.java │ │ │ ├── ChartRecordDo.java │ │ │ ├── ExcelRecord.java │ │ │ ├── LineChartDo.java │ │ │ ├── MonthReport.java │ │ │ ├── MsgDo.java │ │ │ ├── MyDate.java │ │ │ ├── OptDO.java │ │ │ ├── RecordDetailDO.java │ │ │ ├── RecordTypeIndexDO.java │ │ │ ├── ThemeDO.java │ │ │ └── VoiceDo.java │ │ ├── misc │ │ ├── Constant.java │ │ ├── IntentConstant.java │ │ ├── MsgConstant.java │ │ └── MyMessageHandler.java │ │ ├── receiver │ │ └── AlarmReceiver.java │ │ ├── service │ │ ├── BackupService.java │ │ └── MyWidgetProvider.java │ │ ├── ui │ │ ├── activity │ │ │ ├── MainActivity.java │ │ │ ├── account │ │ │ │ ├── AccountTransactionActivity.java │ │ │ │ ├── AccountsTransferActivity.java │ │ │ │ ├── CreateOrEditAccountActivity.java │ │ │ │ ├── EditAccountActivity.java │ │ │ │ ├── EditAccountColorActivity.java │ │ │ │ ├── MonthReportActivity.java │ │ │ │ └── SelectAccountActivity.java │ │ │ ├── record │ │ │ │ ├── CreateNewRecordTypeActivity.java │ │ │ │ ├── CreateOrEditRecordActivity.java │ │ │ │ ├── ExportRecordActivity.java │ │ │ │ ├── NewRecordTypeDetailActivity.java │ │ │ │ ├── RecordLineChartActivity.java │ │ │ │ ├── RecordPieAnalysisActivity.java │ │ │ │ └── RecordTypeEditActivity.java │ │ │ ├── system │ │ │ │ ├── AboutActivity.java │ │ │ │ ├── CaptureActivityAnyOrientation.java │ │ │ │ ├── EditThemeActivity.java │ │ │ │ ├── GestureLockActivity.java │ │ │ │ ├── SettingsActivity.java │ │ │ │ ├── UpdateActivity.java │ │ │ │ └── WebActivity.java │ │ │ └── user │ │ │ │ ├── LoginActivity.java │ │ │ │ ├── QrCodeActivity.java │ │ │ │ ├── RegisterActivity.java │ │ │ │ ├── UserActivity.java │ │ │ │ ├── UserGetPassBackActivity.java │ │ │ │ └── UserLinkActivity.java │ │ ├── adapter │ │ │ ├── AccountAdapter.java │ │ │ ├── AccountRecordAdapter.java │ │ │ ├── AccountTypeAdapter.java │ │ │ ├── MyFragmentPagerAdapter.java │ │ │ ├── NewRecordDetailAdapter.java │ │ │ ├── OptMenuAdapter.java │ │ │ ├── RecordAdapter.java │ │ │ ├── RecordDetailFrgAdapter.java │ │ │ ├── RecordLineAnalysisAdapter.java │ │ │ ├── RecordPieAnalysisAdapter.java │ │ │ ├── RecordTypeAdapter.java │ │ │ ├── RecordTypeIconAdapter.java │ │ │ ├── SelectAccountAdapter.java │ │ │ └── helper │ │ │ │ ├── ItemTouchHelperAdapter.java │ │ │ │ ├── ItemTouchHelperViewHolder.java │ │ │ │ ├── OnStartDragListener.java │ │ │ │ └── SimpleItemTouchHelperCallback.java │ │ └── fragment │ │ │ ├── AccountFrg.java │ │ │ ├── AnalysisFrg.java │ │ │ ├── RecordDetailFrg.java │ │ │ └── RecordFrg.java │ │ ├── util │ │ ├── AlarmUtil.java │ │ ├── AppUtil.java │ │ ├── DataConvertUtil.java │ │ ├── DateTimeUtil.java │ │ ├── DensityUtils.java │ │ ├── ExceptionInfoUtil.java │ │ ├── IconTypeUtil.java │ │ ├── ImageUtil.java │ │ ├── KeyBoardUtils.java │ │ ├── LauncherIconUtil.java │ │ ├── LoadAVOSLib.java │ │ ├── LogUtils.java │ │ ├── MD5Util.java │ │ ├── MoneyUtil.java │ │ ├── MsgUtil.java │ │ ├── NetworkUtil.java │ │ ├── NotificationUtil.java │ │ ├── QRCodeUtil.java │ │ ├── SPUtils.java │ │ ├── ScreenUtils.java │ │ ├── SnackBarUtil.java │ │ ├── StatusBarCompat.java │ │ ├── ThemeUtil.java │ │ └── ThreadPoolUtil.java │ │ └── view │ │ ├── MyCircleRectangleTextView.java │ │ ├── MyPreferenceCategory.java │ │ ├── MyRoundColorView.java │ │ ├── MyThemeTextView.java │ │ ├── draggrid │ │ ├── DragGridApi.java │ │ └── DragGridView.java │ │ └── gesturelockview │ │ ├── GestureLockView.java │ │ └── GestureLockViewGroup.java │ ├── jniLibs │ ├── armeabi │ │ └── libmsc.so │ ├── mips │ │ └── libmsc.so │ └── x86 │ │ └── libmsc.so │ └── res │ ├── anim │ ├── down_out.xml │ └── up_in.xml │ ├── color │ └── item_color.xml │ ├── drawable-v21 │ ├── ic_color_lens_black_24dp.xml │ └── ripple.xml │ ├── drawable-xhdpi │ ├── ad.png │ ├── anjie.png │ ├── arrorw.png │ ├── baobao.png │ ├── baojian.png │ ├── baoxian.png │ ├── baoxiao.png │ ├── chashuikafei.png │ ├── chuanpiao.png │ ├── daoyou.png │ ├── dapai.png │ ├── dianfei.png │ ├── dianying.png │ ├── fangdai.png │ ├── fangzu.png │ ├── fanka.png │ ├── feijipiao.png │ ├── fuwu.png │ ├── gonggongqiche.png │ ├── haiwaidaigou.png │ ├── huankuan.png │ ├── huazhuangpin.png │ ├── huochepiao.png │ ├── huwaishebei.png │ ├── ic_add_white.png │ ├── ic_color_lens_black_24dp.png │ ├── ic_delete_white.png │ ├── ic_done_white.png │ ├── ic_drawer_about.png │ ├── ic_drawer_assignment_grey600_36dp.png │ ├── ic_drawer_chat.png │ ├── ic_drawer_check_update.png │ ├── ic_drawer_exit.png │ ├── ic_drawer_export.png │ ├── ic_drawer_friends.png │ ├── ic_drawer_guide.png │ ├── ic_drawer_settings.png │ ├── ic_drawer_share.png │ ├── icon_account_chuzhika_grey.png │ ├── icon_account_gupiao_grey.png │ ├── icon_account_wangluozhanghu_gray.png │ ├── icon_account_xianjin_grey.png │ ├── icon_account_xinyongka_gray.png │ ├── icon_account_yinhangka_gray.png │ ├── icon_account_zhifubao_grey.png │ ├── icon_add_1.png │ ├── icon_add_10.png │ ├── icon_add_11.png │ ├── icon_add_12.png │ ├── icon_add_13.png │ ├── icon_add_14.png │ ├── icon_add_15.png │ ├── icon_add_16.png │ ├── icon_add_17.png │ ├── icon_add_18.png │ ├── icon_add_19.png │ ├── icon_add_2.png │ ├── icon_add_20.png │ ├── icon_add_3.png │ ├── icon_add_4.png │ ├── icon_add_5.png │ ├── icon_add_6.png │ ├── icon_add_7.png │ ├── icon_add_8.png │ ├── icon_add_9.png │ ├── icon_paytype_delete.png │ ├── icon_shouru_type_gongzi.png │ ├── icon_shouru_type_hongbao.png │ ├── icon_shouru_type_jiangjin.png │ ├── icon_shouru_type_jianzhiwaikuai.png │ ├── icon_shouru_type_jieru.png │ ├── icon_shouru_type_linghuaqian.png │ ├── icon_shouru_type_qita.png │ ├── icon_shouru_type_shenghuofei.png │ ├── icon_shouru_type_touzishouru.png │ ├── icon_zhichu_type_baoxiaozhang.png │ ├── icon_zhichu_type_canyin.png │ ├── icon_zhichu_type_chongwu.png │ ├── icon_zhichu_type_gouwu.png │ ├── icon_zhichu_type_jiaotong.png │ ├── icon_zhichu_type_jiechu.png │ ├── icon_zhichu_type_jujia.png │ ├── icon_zhichu_type_meirongjianshen.png │ ├── icon_zhichu_type_renqingsongli.png │ ├── icon_zhichu_type_shoujitongxun.png │ ├── icon_zhichu_type_shuiguolingshi.png │ ├── icon_zhichu_type_shuji.png │ ├── icon_zhichu_type_taobao.png │ ├── icon_zhichu_type_yanjiuyinliao.png │ ├── icon_zhichu_type_yiban.png │ ├── icon_zhichu_type_yiliaojiaoyu.png │ ├── icon_zhichu_type_yule.png │ ├── jiushui.png │ ├── juechu.png │ ├── kuzi.png │ ├── lifa.png │ ├── lingqian.png │ ├── lingshi.png │ ├── link.png │ ├── lvyoudujia.png │ ├── maicai.png │ ├── majiang.png │ ├── mao.png │ ├── mask1.png │ ├── my_back.png │ ├── naifen.png │ ├── quxian.png │ ├── record_icon_bianji.png │ ├── record_icon_shanchu.png │ ├── richangyongpin.png │ ├── shipin.png │ ├── shuifei.png │ ├── shumachanpin.png │ ├── sijiache.png │ ├── tingchefei.png │ ├── tuikuan.png │ ├── wanfan.png │ ├── wangfei.png │ ├── wanggou.png │ ├── wanju.png │ ├── weixiubaoyang.png │ ├── wuye.png │ ├── xianjin.png │ ├── xiaochi.png │ ├── xiaojingjiazhang.png │ ├── xiezi.png │ ├── xinyongkahuankuan.png │ ├── xizao.png │ ├── xuefei.png │ ├── yan.png │ ├── yaopinfei.png │ ├── yifu.png │ ├── yinhangshouxufei.png │ ├── yiwaiposun.png │ ├── yiwaisuode.png │ ├── youfei.png │ ├── youxi.png │ ├── yuegenghuan.png │ ├── yundongjianshen.png │ ├── zaocan.png │ ├── zawu.png │ ├── zhifubao.png │ ├── zhongfan.png │ ├── zhuanzhang.png │ ├── zhusu.png │ └── zuojifei.png │ ├── drawable │ ├── bg_listview_item.xml │ ├── card.xml │ ├── card2.xml │ ├── card3.xml │ ├── widget_card_bottom.xml │ └── widget_card_top.xml │ ├── layout │ ├── account_all_money_item.xml │ ├── account_frg_layout.xml │ ├── account_head.xml │ ├── account_item.xml │ ├── account_item_2.xml │ ├── account_type_item.xml │ ├── activity_abount.xml │ ├── activity_account.xml │ ├── activity_account_link.xml │ ├── activity_account_transaction.xml │ ├── activity_accounts_transfer.xml │ ├── activity_create_new_record_type.xml │ ├── activity_create_or_edit_account.xml │ ├── activity_create_or_edit_record.xml │ ├── activity_edit_account_color_activity.xml │ ├── activity_edit_account_prop.xml │ ├── activity_export_record.xml │ ├── activity_gesture_lock.xml │ ├── activity_login.xml │ ├── activity_main.xml │ ├── activity_month_report_acyivity.xml │ ├── activity_new_record_type_detail.xml │ ├── activity_qr_code.xml │ ├── activity_record_line_chart.xml │ ├── activity_record_pie_analysis_acticity.xml │ ├── activity_record_type_edit.xml │ ├── activity_register.xml │ ├── activity_select_account.xml │ ├── activity_settings.xml │ ├── activity_update.xml │ ├── activity_user.xml │ ├── activity_user_get_pass_back.xml │ ├── activity_web.xml │ ├── analysis_frg_layout.xml │ ├── avoscloud_sns_web_activity.xml │ ├── frg_record_detail.xml │ ├── item_account_record.xml │ ├── item_line_record.xml │ ├── item_link_head.xml │ ├── item_pie_record.xml │ ├── item_record_type.xml │ ├── item_record_type_icon.xml │ ├── item_record_type_status.xml │ ├── item_record_year_status.xml │ ├── left_menu.xml │ ├── loading.xml │ ├── opt_item.xml │ ├── preference_category_widget.xml │ ├── preference_item.xml │ ├── record_edit_panel.xml │ ├── record_foot.xml │ ├── record_frg_layout.xml │ ├── record_item.xml │ ├── remark_item.xml │ ├── theme_layout.xml │ ├── toolbar.xml │ └── widget_layout.xml │ ├── mipmap-xhdpi │ ├── avatar_middle.jpg │ ├── icon1.png │ ├── icon2.png │ ├── suda.jpg │ └── toddthink.jpg │ ├── mipmap-xxhdpi │ ├── icon1.png │ └── icon2.png │ ├── mipmap-xxxhdpi │ ├── icon1.png │ └── icon2.png │ ├── values-v21 │ └── styles.xml │ ├── values │ ├── android_material_design_colours.xml │ ├── arrays.xml │ ├── attrs.xml │ ├── colors.xml │ ├── dimens.xml │ ├── strings.xml │ └── styles.xml │ └── xml │ ├── mywidget.xml │ ├── preferences.xml │ └── shortcuts.xml ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── img ├── Screenshot_20171008-165658.png ├── Screenshot_20171008-165700.png ├── Screenshot_20171008-165703.png ├── Screenshot_20171008-165708.png ├── Screenshot_20171008-165715.png ├── Screenshot_20171008-165718.png └── Screenshot_20171008-165723.png ├── local.properties └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | /.idea/libraries 5 | .DS_Store 6 | /build 7 | /captures 8 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | JzApp -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/copyright/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 20 | -------------------------------------------------------------------------------- /.idea/libraries/circleimageview_2_0_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/fastjson_1_1_39_leancloud.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/floatingactionbutton_1_3_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.idea/libraries/freemarker_2_3_23.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/library_1_0_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/library_1_1_3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/library_1_2_8.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/libraries/library_2_4_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/okhttp_2_6_0_leancloud.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/libraries/okio_1_6_0_leancloud.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /JzApp.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 账单助手 2 | 3 | --- 4 | 截图展示 5 | 6 | ![image](https://raw.githubusercontent.com/ghbhaha/JzApp/other/img/Screenshot_20171008-165658.png) 7 | ![image](https://raw.githubusercontent.com/ghbhaha/JzApp/other/img/Screenshot_20171008-165700.png) 8 | ![image](https://raw.githubusercontent.com/ghbhaha/JzApp/other/img/Screenshot_20171008-165703.png) 9 | ![image](https://raw.githubusercontent.com/ghbhaha/JzApp/other/img/Screenshot_20171008-165708.png) 10 | ![image](https://raw.githubusercontent.com/ghbhaha/JzApp/other/img/Screenshot_20171008-165715.png) 11 | ![image](https://raw.githubusercontent.com/ghbhaha/JzApp/other/img/Screenshot_20171008-165718.png) 12 | ![image](https://raw.githubusercontent.com/ghbhaha/JzApp/other/img/Screenshot_20171008-165723.png) 13 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /suda.jks 3 | /signing.properties 4 | -------------------------------------------------------------------------------- /app/libs/Msc.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/libs/Msc.jar -------------------------------------------------------------------------------- /app/libs/Sunflower.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/libs/Sunflower.jar -------------------------------------------------------------------------------- /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 E:\study\tools\android\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 | 19 | -keepattributes Signature 20 | -dontwarn com.jcraft.jzlib.** 21 | -keep class com.jcraft.jzlib.** { *;} 22 | 23 | -dontwarn sun.misc.** 24 | -keep class sun.misc.** { *;} 25 | 26 | -dontwarn com.alibaba.fastjson.** 27 | -keep class com.alibaba.fastjson.** { *;} 28 | 29 | -dontwarn sun.security.** 30 | -keep class sun.security.** { *; } 31 | 32 | -dontwarn com.google.** 33 | -keep class com.google.** { *;} 34 | 35 | -dontwarn com.avos.** 36 | -keep class com.avos.** { *;} 37 | 38 | -keep public class android.net.http.SslError 39 | -keep public class android.webkit.WebViewClient 40 | 41 | -dontwarn android.webkit.WebView 42 | -dontwarn android.net.http.SslError 43 | -dontwarn android.webkit.WebViewClient 44 | 45 | -dontwarn android.support.** 46 | 47 | -dontwarn org.apache.** 48 | -keep class org.apache.** { *;} 49 | 50 | -dontwarn org.jivesoftware.smack.** 51 | -keep class org.jivesoftware.smack.** { *;} 52 | 53 | -dontwarn com.loopj.** 54 | -keep class com.loopj.** { *;} 55 | 56 | -dontwarn com.squareup.okhttp.** 57 | -keep class com.squareup.okhttp.** { *;} 58 | -keep interface com.squareup.okhttp.** { *; } 59 | 60 | -dontwarn okio.** 61 | 62 | -dontwarn org.xbill.** 63 | -keep class org.xbill.** { *;} 64 | 65 | -keepattributes *Annotation* 66 | 67 | -keepclassmembers class * { 68 | public (org.json.JSONObject); 69 | } 70 | 71 | -keep public class com.suda.jzapp.R$*{ 72 | public static final int *; 73 | } 74 | 75 | -keepclassmembers enum * { 76 | public static **[] values(); 77 | public static ** valueOf(java.lang.String); 78 | } 79 | -------------------------------------------------------------------------------- /app/src/androidTest/java/suda/com/jzapp/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package suda.com.jzapp; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /app/src/main/assets/iflytek/recognize.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/assets/iflytek/recognize.xml -------------------------------------------------------------------------------- /app/src/main/assets/iflytek/voice_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/assets/iflytek/voice_bg.9.png -------------------------------------------------------------------------------- /app/src/main/assets/iflytek/voice_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/assets/iflytek/voice_empty.png -------------------------------------------------------------------------------- /app/src/main/assets/iflytek/voice_full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/assets/iflytek/voice_full.png -------------------------------------------------------------------------------- /app/src/main/assets/iflytek/waiting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/assets/iflytek/waiting.png -------------------------------------------------------------------------------- /app/src/main/assets/iflytek/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/assets/iflytek/warning.png -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/MyApplication.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp; 2 | 3 | import android.support.multidex.MultiDexApplication; 4 | 5 | import com.avos.avoscloud.AVAnalytics; 6 | import com.avos.avoscloud.AVOSCloud; 7 | import com.iflytek.cloud.SpeechConstant; 8 | import com.iflytek.cloud.SpeechUtility; 9 | import com.suda.jzapp.dao.local.account.AccountLocalDao; 10 | import com.suda.jzapp.dao.local.conf.ConfigLocalDao; 11 | import com.suda.jzapp.util.LoadAVOSLib; 12 | import com.suda.jzapp.util.LogUtils; 13 | import com.suda.jzapp.util.SPUtils; 14 | 15 | /** 16 | * Created by Suda on 2015/9/16. 17 | */ 18 | public class MyApplication extends MultiDexApplication { 19 | 20 | @Override 21 | public void onCreate() { 22 | super.onCreate(); 23 | 24 | //接入讯飞 25 | SpeechUtility.createUtility(this, SpeechConstant.APPID + "="+BuildConfig.XUNFEI_APPID); 26 | //注册AvOs模块 27 | AVOSCloud.initialize(this, BuildConfig.LEANCOULD_APPID, BuildConfig.LEANCOULD_APPKEY); 28 | LoadAVOSLib.LoadLib(); 29 | AVAnalytics.enableCrashReport(this, true); 30 | //AVIMClient.setOfflineMessagePush(true); 31 | initData(); 32 | LogUtils.isDebug = BuildConfig.DEBUG; 33 | } 34 | 35 | 36 | private void initData() { 37 | if ((boolean) SPUtils.get(this, "firstIn", true)) { 38 | SPUtils.put(this, "firstIn", false); 39 | ConfigLocalDao dao = new ConfigLocalDao(); 40 | AccountLocalDao accountLocalDao = new AccountLocalDao(); 41 | accountLocalDao.initBudget(this); 42 | dao.initAccountTypeDb(this); 43 | dao.initRecordType(this); 44 | dao.createDefaultAccount(this); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/dao/cloud/avos/pojo/account/AVAccountIndex.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.dao.cloud.avos.pojo.account; 2 | 3 | import com.avos.avoscloud.AVClassName; 4 | import com.avos.avoscloud.AVObject; 5 | import com.avos.avoscloud.AVUser; 6 | import com.suda.jzapp.util.DateTimeUtil; 7 | 8 | import java.util.Date; 9 | 10 | /** 11 | * Created by ghbha on 2016/4/7. 12 | */ 13 | @AVClassName("AccountIndex") 14 | public class AVAccountIndex extends AVObject { 15 | 16 | public void setData(String data) { 17 | put(DATA, data); 18 | } 19 | 20 | public String getData() { 21 | return getString(DATA); 22 | } 23 | 24 | public void setUser(AVUser user) { 25 | put(USER, user); 26 | } 27 | 28 | public AVUser getUser() { 29 | return getAVUser(USER, AVUser.class); 30 | } 31 | 32 | 33 | public final static String USER = "User"; 34 | public final static String DATA = "data"; 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/dao/cloud/avos/pojo/record/AVRecordType.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.dao.cloud.avos.pojo.record; 2 | 3 | import com.avos.avoscloud.AVClassName; 4 | import com.avos.avoscloud.AVObject; 5 | import com.avos.avoscloud.AVUser; 6 | import com.suda.jzapp.util.DateTimeUtil; 7 | 8 | import java.util.Date; 9 | 10 | /** 11 | * Created by Suda on 2015/9/16. 12 | */ 13 | 14 | @AVClassName("RecordType") 15 | public class AVRecordType extends AVObject { 16 | 17 | public void setUser(AVUser user) { 18 | put(USER, user); 19 | } 20 | 21 | public void setRecordTypeId(long recordTypeId) { 22 | put(RECORD_TYPE_ID, recordTypeId); 23 | } 24 | 25 | public void setRecordDesc(String recordDesc) { 26 | put(RECORD_DESC, recordDesc); 27 | } 28 | 29 | public void setRecordType(int recordType) { 30 | put(RECORD_TYPE, recordType); 31 | } 32 | 33 | public void setRecordIcon(int icon) { 34 | put(RECORD_ICON, icon); 35 | } 36 | 37 | public void setIndex(int index) { 38 | put(INDEX, index); 39 | } 40 | 41 | public void setRecordTypeIsDel(boolean isDel) { 42 | put(RECORD_TYPE_IS_DEL, isDel); 43 | } 44 | 45 | public AVUser getUser() { 46 | return getAVUser(USER, AVUser.class); 47 | } 48 | 49 | 50 | public long getRecordTypeId() { 51 | return getLong(RECORD_TYPE_ID); 52 | } 53 | 54 | public String getRecordDesc() { 55 | return getString(RECORD_DESC); 56 | } 57 | 58 | public int getRecordType() { 59 | return getInt(RECORD_TYPE); 60 | } 61 | 62 | public int getRecordRecordIcon() { 63 | return getInt(RECORD_ICON); 64 | } 65 | 66 | public int getIndex() { 67 | return getInt(INDEX); 68 | } 69 | 70 | public boolean isRecordTypeDel() { 71 | return getBoolean(RECORD_TYPE_IS_DEL); 72 | } 73 | 74 | public final static String USER = "User"; 75 | public final static String RECORD_TYPE_ID = "RecordTypeID"; 76 | public final static String RECORD_DESC = "RecordDesc"; 77 | public final static String RECORD_TYPE = "RecordType"; 78 | public final static String RECORD_ICON = "RecordIcon"; 79 | public final static String INDEX = "Index"; 80 | public final static String RECORD_TYPE_IS_DEL = "IsDel"; 81 | } 82 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/dao/cloud/avos/pojo/record/AVRecordTypeIndex.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.dao.cloud.avos.pojo.record; 2 | 3 | import com.avos.avoscloud.AVClassName; 4 | import com.avos.avoscloud.AVObject; 5 | import com.avos.avoscloud.AVUser; 6 | import com.suda.jzapp.util.DateTimeUtil; 7 | 8 | import java.util.Date; 9 | 10 | /** 11 | * Created by ghbha on 2016/4/7. 12 | */ 13 | @AVClassName("RecordTypeIndex") 14 | public class AVRecordTypeIndex extends AVObject { 15 | 16 | public void setData(String data) { 17 | put(DATA, data); 18 | } 19 | 20 | public String getData() { 21 | return getString(DATA); 22 | } 23 | 24 | public void setUser(AVUser user) { 25 | put(USER, user); 26 | } 27 | 28 | public AVUser getUser() { 29 | return getAVUser(USER, AVUser.class); 30 | } 31 | 32 | public final static String USER = "User"; 33 | public final static String DATA = "data"; 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/dao/cloud/avos/pojo/system/AVUpdateCheck.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.dao.cloud.avos.pojo.system; 2 | 3 | import com.avos.avoscloud.AVClassName; 4 | import com.avos.avoscloud.AVObject; 5 | 6 | /** 7 | * Created by suda on 2016/8/5. 8 | */ 9 | @AVClassName("UpdateCheckDO") 10 | public class AVUpdateCheck extends AVObject { 11 | 12 | public String getUpdateInfo() { 13 | return getString(UPDATE_INFO); 14 | } 15 | 16 | public String getVersion() { 17 | return getString(VERSION); 18 | } 19 | 20 | public int getVersionCode() { 21 | return getInt(VERSION_CODE); 22 | } 23 | 24 | public String getLink() { 25 | return getString(LINK); 26 | } 27 | 28 | public final static String UPDATE_INFO = "updateInfo"; 29 | public final static String VERSION = "version"; 30 | public final static String VERSION_CODE = "versionCode"; 31 | public final static String LINK = "link"; 32 | 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/dao/cloud/avos/pojo/user/MyAVUser.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.dao.cloud.avos.pojo.user; 2 | 3 | import com.avos.avoscloud.AVClassName; 4 | import com.avos.avoscloud.AVFile; 5 | import com.avos.avoscloud.AVUser; 6 | import com.avos.avoscloud.PaasClient; 7 | 8 | import java.lang.reflect.Field; 9 | 10 | /** 11 | * Created by Suda on 2015/10/9. 12 | */ 13 | 14 | @AVClassName("MyAVUser") 15 | public class MyAVUser extends AVUser { 16 | 17 | 18 | /** 19 | * fix 退出应用后获取用户信息不全问题 20 | * @return 21 | */ 22 | public static MyAVUser getCurrentUser() { 23 | try { 24 | PaasClient paasClient = PaasClient.storageInstance(); 25 | Field currentUser = PaasClient.class.getDeclaredField("currentUser"); 26 | currentUser.setAccessible(true); 27 | AVUser avUser = (AVUser) currentUser.get(paasClient); 28 | if (avUser != null 29 | && avUser.getSessionToken() == null) { 30 | currentUser.set(paasClient, null); 31 | } 32 | } catch (Exception e) { 33 | e.printStackTrace(); 34 | } 35 | return getCurrentUser(MyAVUser.class); 36 | } 37 | 38 | public static String getCurrentUserId() { 39 | if (getCurrentUser() == null) { 40 | return ""; 41 | } else { 42 | return getCurrentUser().getObjectId(); 43 | } 44 | } 45 | 46 | public AVFile getHeadImage() { 47 | return getAVFile(HEAD_IMAGE); 48 | } 49 | 50 | public void setHeadImage(AVFile value) { 51 | put(HEAD_IMAGE, value); 52 | } 53 | 54 | public Long getUserCode(){ 55 | return getLong(USER_CODE); 56 | } 57 | 58 | public final static String HEAD_IMAGE = "headImage"; 59 | public final static String USER_CODE = "userCode"; 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/dao/cloud/avos/pojo/user/UserLink.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.dao.cloud.avos.pojo.user; 2 | 3 | import com.avos.avoscloud.AVClassName; 4 | import com.avos.avoscloud.AVObject; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * Created by ghbha on 2016/4/14. 10 | */ 11 | @AVClassName("UserLink") 12 | public class UserLink extends AVObject { 13 | 14 | public List getMembers() { 15 | return getList(MEMBER); 16 | } 17 | 18 | public void setMember(List list) { 19 | put(MEMBER, list); 20 | } 21 | 22 | public final static String MEMBER = "member"; 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/dao/greendao/AccountType.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.dao.greendao; 2 | 3 | import org.greenrobot.greendao.annotation.*; 4 | 5 | // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. Enable "keep" sections if you want to edit. 6 | /** 7 | * Entity mapped to table "ACCOUNT_TYPE". 8 | */ 9 | @Entity 10 | public class AccountType { 11 | 12 | @Id 13 | private Long id; 14 | private Integer AccountTypeID; 15 | private String AccountDesc; 16 | private Integer AccountIcon; 17 | 18 | @Generated(hash = 551127513) 19 | public AccountType() { 20 | } 21 | 22 | public AccountType(Long id) { 23 | this.id = id; 24 | } 25 | 26 | @Generated(hash = 370868745) 27 | public AccountType(Long id, Integer AccountTypeID, String AccountDesc, Integer AccountIcon) { 28 | this.id = id; 29 | this.AccountTypeID = AccountTypeID; 30 | this.AccountDesc = AccountDesc; 31 | this.AccountIcon = AccountIcon; 32 | } 33 | 34 | public Long getId() { 35 | return id; 36 | } 37 | 38 | public void setId(Long id) { 39 | this.id = id; 40 | } 41 | 42 | public Integer getAccountTypeID() { 43 | return AccountTypeID; 44 | } 45 | 46 | public void setAccountTypeID(Integer AccountTypeID) { 47 | this.AccountTypeID = AccountTypeID; 48 | } 49 | 50 | public String getAccountDesc() { 51 | return AccountDesc; 52 | } 53 | 54 | public void setAccountDesc(String AccountDesc) { 55 | this.AccountDesc = AccountDesc; 56 | } 57 | 58 | public Integer getAccountIcon() { 59 | return AccountIcon; 60 | } 61 | 62 | public void setAccountIcon(Integer AccountIcon) { 63 | this.AccountIcon = AccountIcon; 64 | } 65 | 66 | } 67 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/dao/greendao/Budget.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.dao.greendao; 2 | 3 | import org.greenrobot.greendao.annotation.*; 4 | 5 | // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. Enable "keep" sections if you want to edit. 6 | /** 7 | * Entity mapped to table "BUDGET". 8 | */ 9 | @Entity 10 | public class Budget { 11 | 12 | @Id(autoincrement = true) 13 | private Long id; 14 | private Double budgetMoney; 15 | private java.util.Date createdAt; 16 | private java.util.Date updatedAt; 17 | 18 | @Generated(hash = 1734026453) 19 | public Budget() { 20 | } 21 | 22 | public Budget(Long id) { 23 | this.id = id; 24 | } 25 | 26 | @Generated(hash = 1343105915) 27 | public Budget(Long id, Double budgetMoney, java.util.Date createdAt, java.util.Date updatedAt) { 28 | this.id = id; 29 | this.budgetMoney = budgetMoney; 30 | this.createdAt = createdAt; 31 | this.updatedAt = updatedAt; 32 | } 33 | 34 | public Long getId() { 35 | return id; 36 | } 37 | 38 | public void setId(Long id) { 39 | this.id = id; 40 | } 41 | 42 | public Double getBudgetMoney() { 43 | return budgetMoney; 44 | } 45 | 46 | public void setBudgetMoney(Double budgetMoney) { 47 | this.budgetMoney = budgetMoney; 48 | } 49 | 50 | public java.util.Date getCreatedAt() { 51 | return createdAt; 52 | } 53 | 54 | public void setCreatedAt(java.util.Date createdAt) { 55 | this.createdAt = createdAt; 56 | } 57 | 58 | public java.util.Date getUpdatedAt() { 59 | return updatedAt; 60 | } 61 | 62 | public void setUpdatedAt(java.util.Date updatedAt) { 63 | this.updatedAt = updatedAt; 64 | } 65 | 66 | } 67 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/dao/greendao/Currency.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.dao.greendao; 2 | 3 | import org.greenrobot.greendao.annotation.*; 4 | 5 | // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. Enable "keep" sections if you want to edit. 6 | /** 7 | * Entity mapped to table "CURRENCY". 8 | */ 9 | @Entity 10 | public class Currency { 11 | 12 | @Id(autoincrement = true) 13 | private Long id; 14 | private String fromCurrency; 15 | private String toCurrency; 16 | private Double currency; 17 | private java.util.Date lastUpdate; 18 | 19 | @Generated(hash = 1387171739) 20 | public Currency() { 21 | } 22 | 23 | public Currency(Long id) { 24 | this.id = id; 25 | } 26 | 27 | @Generated(hash = 670672569) 28 | public Currency(Long id, String fromCurrency, String toCurrency, Double currency, java.util.Date lastUpdate) { 29 | this.id = id; 30 | this.fromCurrency = fromCurrency; 31 | this.toCurrency = toCurrency; 32 | this.currency = currency; 33 | this.lastUpdate = lastUpdate; 34 | } 35 | 36 | public Long getId() { 37 | return id; 38 | } 39 | 40 | public void setId(Long id) { 41 | this.id = id; 42 | } 43 | 44 | public String getFromCurrency() { 45 | return fromCurrency; 46 | } 47 | 48 | public void setFromCurrency(String fromCurrency) { 49 | this.fromCurrency = fromCurrency; 50 | } 51 | 52 | public String getToCurrency() { 53 | return toCurrency; 54 | } 55 | 56 | public void setToCurrency(String toCurrency) { 57 | this.toCurrency = toCurrency; 58 | } 59 | 60 | public Double getCurrency() { 61 | return currency; 62 | } 63 | 64 | public void setCurrency(Double currency) { 65 | this.currency = currency; 66 | } 67 | 68 | public java.util.Date getLastUpdate() { 69 | return lastUpdate; 70 | } 71 | 72 | public void setLastUpdate(java.util.Date lastUpdate) { 73 | this.lastUpdate = lastUpdate; 74 | } 75 | 76 | } 77 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/dao/greendao/RemarkTip.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.dao.greendao; 2 | 3 | import org.greenrobot.greendao.annotation.*; 4 | 5 | // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. Enable "keep" sections if you want to edit. 6 | /** 7 | * Entity mapped to table "REMARK_TIP". 8 | */ 9 | @Entity 10 | public class RemarkTip { 11 | 12 | @Id(autoincrement = true) 13 | private Long id; 14 | private Integer useTimes; 15 | private String remark; 16 | private Boolean SyncStatus; 17 | private Boolean isDel; 18 | 19 | @Generated(hash = 1211701810) 20 | public RemarkTip() { 21 | } 22 | 23 | public RemarkTip(Long id) { 24 | this.id = id; 25 | } 26 | 27 | @Generated(hash = 75873709) 28 | public RemarkTip(Long id, Integer useTimes, String remark, Boolean SyncStatus, Boolean isDel) { 29 | this.id = id; 30 | this.useTimes = useTimes; 31 | this.remark = remark; 32 | this.SyncStatus = SyncStatus; 33 | this.isDel = isDel; 34 | } 35 | 36 | public Long getId() { 37 | return id; 38 | } 39 | 40 | public void setId(Long id) { 41 | this.id = id; 42 | } 43 | 44 | public Integer getUseTimes() { 45 | return useTimes; 46 | } 47 | 48 | public void setUseTimes(Integer useTimes) { 49 | this.useTimes = useTimes; 50 | } 51 | 52 | public String getRemark() { 53 | return remark; 54 | } 55 | 56 | public void setRemark(String remark) { 57 | this.remark = remark; 58 | } 59 | 60 | public Boolean getSyncStatus() { 61 | return SyncStatus; 62 | } 63 | 64 | public void setSyncStatus(Boolean SyncStatus) { 65 | this.SyncStatus = SyncStatus; 66 | } 67 | 68 | public Boolean getIsDel() { 69 | return isDel; 70 | } 71 | 72 | public void setIsDel(Boolean isDel) { 73 | this.isDel = isDel; 74 | } 75 | 76 | } 77 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/dao/greendao/User.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.dao.greendao; 2 | 3 | import org.greenrobot.greendao.annotation.*; 4 | 5 | // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. Enable "keep" sections if you want to edit. 6 | /** 7 | * Entity mapped to table "USER". 8 | */ 9 | @Entity 10 | public class User { 11 | 12 | @Id(autoincrement = true) 13 | private Long id; 14 | private String userId; 15 | private String userName; 16 | private String headImage; 17 | private Long userCode; 18 | 19 | @Generated(hash = 586692638) 20 | public User() { 21 | } 22 | 23 | public User(Long id) { 24 | this.id = id; 25 | } 26 | 27 | @Generated(hash = 1699084683) 28 | public User(Long id, String userId, String userName, String headImage, Long userCode) { 29 | this.id = id; 30 | this.userId = userId; 31 | this.userName = userName; 32 | this.headImage = headImage; 33 | this.userCode = userCode; 34 | } 35 | 36 | public Long getId() { 37 | return id; 38 | } 39 | 40 | public void setId(Long id) { 41 | this.id = id; 42 | } 43 | 44 | public String getUserId() { 45 | return userId; 46 | } 47 | 48 | public void setUserId(String userId) { 49 | this.userId = userId; 50 | } 51 | 52 | public String getUserName() { 53 | return userName; 54 | } 55 | 56 | public void setUserName(String userName) { 57 | this.userName = userName; 58 | } 59 | 60 | public String getHeadImage() { 61 | return headImage; 62 | } 63 | 64 | public void setHeadImage(String headImage) { 65 | this.headImage = headImage; 66 | } 67 | 68 | public Long getUserCode() { 69 | return userCode; 70 | } 71 | 72 | public void setUserCode(Long userCode) { 73 | this.userCode = userCode; 74 | } 75 | 76 | } 77 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/dao/greendao/YiYan.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.dao.greendao; 2 | 3 | import org.greenrobot.greendao.annotation.*; 4 | 5 | // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. Enable "keep" sections if you want to edit. 6 | /** 7 | * Entity mapped to table "YI_YAN". 8 | */ 9 | @Entity 10 | public class YiYan { 11 | private String content; 12 | 13 | @Generated(hash = 2136910826) 14 | public YiYan() { 15 | } 16 | 17 | @Generated(hash = 339308486) 18 | public YiYan(String content) { 19 | this.content = content; 20 | } 21 | 22 | public String getContent() { 23 | return content; 24 | } 25 | 26 | public void setContent(String content) { 27 | this.content = content; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/dao/local/BaseLocalDao.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.dao.local; 2 | 3 | import android.content.Context; 4 | 5 | import com.suda.jzapp.dao.greendao.DaoMaster; 6 | import com.suda.jzapp.dao.greendao.DaoSession; 7 | 8 | import java.text.DateFormat; 9 | import java.text.SimpleDateFormat; 10 | import java.util.Date; 11 | import java.util.List; 12 | 13 | 14 | public abstract class BaseLocalDao { 15 | 16 | 17 | protected static final T getSingleData(List result) { 18 | return (result == null || result.size() == 0) ? null : result.get(0); 19 | } 20 | 21 | protected DaoSession getDaoSession(Context ctx) { 22 | if (_daoSession == null) { 23 | _daoSession = getDaoMaster(ctx.getApplicationContext()).newSession(); 24 | } 25 | 26 | return _daoSession; 27 | } 28 | 29 | private DaoMaster getDaoMaster(Context ctx) { 30 | if (_daoMaster == null) { 31 | synchronized (BaseLocalDao.class) { 32 | if (_daoMaster == null) { 33 | DaoMaster.OpenHelper helper =new DaoMaster.DevOpenHelper(ctx, USER_TABLE, null); 34 | _daoMaster = new DaoMaster(helper.getWritableDatabase()); 35 | } 36 | } 37 | } 38 | return _daoMaster; 39 | } 40 | 41 | protected static String fmDate(Date date) { 42 | DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 43 | return format.format(date); 44 | } 45 | 46 | protected final static String USER_TABLE = "zhangdan.db"; 47 | 48 | private static volatile DaoMaster _daoMaster; 49 | private static DaoSession _daoSession; 50 | 51 | 52 | } 53 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/dao/local/user/UserLocalDao.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.dao.local.user; 2 | 3 | import android.content.Context; 4 | 5 | import com.suda.jzapp.dao.greendao.User; 6 | import com.suda.jzapp.dao.greendao.UserDao; 7 | import com.suda.jzapp.dao.local.BaseLocalDao; 8 | 9 | /** 10 | * Created by ghbha on 2016/4/6. 11 | */ 12 | public class UserLocalDao extends BaseLocalDao { 13 | 14 | public User getUser(String userID, Context context) { 15 | UserDao userDao = getDaoSession(context).getUserDao(); 16 | return getSingleData(userDao.queryBuilder().where(UserDao.Properties.UserId.eq(userID)).list()); 17 | } 18 | 19 | public User getUserByUserName(String userName, Context context) { 20 | UserDao userDao = getDaoSession(context).getUserDao(); 21 | if (userName == null) 22 | userName = ""; 23 | return getSingleData(userDao.queryBuilder().where(UserDao.Properties.UserName.eq(userName)).list()); 24 | } 25 | 26 | public void delUserByUserId(String userID, Context context) { 27 | UserDao userDao = getDaoSession(context).getUserDao(); 28 | userDao.queryBuilder().where(UserDao.Properties.UserId.eq(userID)).buildDelete().executeDeleteWithoutDetachingEntities(); 29 | } 30 | 31 | public void clear(Context context) { 32 | UserDao userDao = getDaoSession(context).getUserDao(); 33 | userDao.deleteAll(); 34 | } 35 | 36 | public void insertUser(User user, Context context) { 37 | UserDao userDao = getDaoSession(context).getUserDao(); 38 | userDao.insert(user); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/manager/BaseManager.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.manager; 2 | 3 | import android.content.Context; 4 | import android.os.Handler; 5 | import android.os.Message; 6 | 7 | import com.avos.avoscloud.AVException; 8 | import com.suda.jzapp.dao.cloud.avos.pojo.user.MyAVUser; 9 | import com.suda.jzapp.misc.Constant; 10 | import com.suda.jzapp.util.LogUtils; 11 | import com.suda.jzapp.util.NetworkUtil; 12 | import com.suda.jzapp.util.SPUtils; 13 | 14 | /** 15 | * Created by Suda on 2015/11/16. 16 | */ 17 | public abstract class BaseManager { 18 | 19 | public BaseManager(Context context) { 20 | _context = context; 21 | } 22 | 23 | protected void sendEmptyMessage(Handler handler, int what) { 24 | if (handler != null) 25 | handler.sendEmptyMessage(what); 26 | } 27 | 28 | protected void sendMessage(Handler handler, Object value) { 29 | sendMessage(handler, value, true); 30 | } 31 | 32 | protected void sendMessage(Handler handler, Object value, boolean isSuccess) { 33 | Message message = new Message(); 34 | if (isSuccess && value != null) { 35 | message.what = Constant.MSG_SUCCESS; 36 | message.obj = value; 37 | } else { 38 | message.what = Constant.MSG_ERROR; 39 | } 40 | handler.sendMessage(message); 41 | } 42 | 43 | protected void getAvEx(AVException avEx) { 44 | LogUtils.getAvEx(avEx, _context); 45 | } 46 | 47 | protected Context _context; 48 | 49 | protected interface Callback { 50 | void doSth(boolean isSync, String objId); 51 | } 52 | 53 | protected boolean canSync() { 54 | return MyAVUser.getCurrentUser() != null && 55 | ((boolean) SPUtils.get(_context, true, Constant.SP_SYNC_ONLY_WIFI, false) ? 56 | NetworkUtil.checkWifi(_context) : NetworkUtil.checkNetwork(_context)); 57 | } 58 | 59 | protected static final int PAGE_SIZE = 1000; 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/manager/domain/AccountIndexDO.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.manager.domain; 2 | 3 | /** 4 | * Created by ghbha on 2016/4/7. 5 | */ 6 | public class AccountIndexDO { 7 | private long accountID; 8 | private int index; 9 | 10 | public long getAccountID() { 11 | return accountID; 12 | } 13 | 14 | public void setAccountID(long accountID) { 15 | this.accountID = accountID; 16 | } 17 | 18 | public int getIndex() { 19 | return index; 20 | } 21 | 22 | public void setIndex(int index) { 23 | this.index = index; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/manager/domain/ChartRecordDo.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.manager.domain; 2 | 3 | import java.util.Date; 4 | 5 | /** 6 | * Created by ghbha on 2016/4/10. 7 | */ 8 | public class ChartRecordDo { 9 | 10 | private double recordMoney; 11 | private String recordDesc; 12 | private int iconId; 13 | private Long RecordTypeID; 14 | private int recordYear; 15 | private int recordMonth; 16 | private double per; 17 | 18 | public double getRecordMoney() { 19 | return recordMoney; 20 | } 21 | 22 | public void setRecordMoney(double recordMoney) { 23 | this.recordMoney = recordMoney; 24 | } 25 | 26 | public String getRecordDesc() { 27 | return recordDesc; 28 | } 29 | 30 | public void setRecordDesc(String recordDesc) { 31 | this.recordDesc = recordDesc; 32 | } 33 | 34 | public int getIconId() { 35 | return iconId; 36 | } 37 | 38 | public void setIconId(int iconId) { 39 | this.iconId = iconId; 40 | } 41 | 42 | public Long getRecordTypeID() { 43 | return RecordTypeID; 44 | } 45 | 46 | public void setRecordTypeID(Long recordTypeID) { 47 | RecordTypeID = recordTypeID; 48 | } 49 | 50 | public double getPer() { 51 | return per; 52 | } 53 | 54 | public void setPer(double per) { 55 | this.per = per; 56 | } 57 | 58 | public int getRecordMonth() { 59 | return recordMonth; 60 | } 61 | 62 | public void setRecordMonth(int recordMonth) { 63 | this.recordMonth = recordMonth; 64 | } 65 | 66 | public int getRecordYear() { 67 | return recordYear; 68 | } 69 | 70 | public void setRecordYear(int recordYear) { 71 | this.recordYear = recordYear; 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/manager/domain/ExcelRecord.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.manager.domain; 2 | 3 | import java.util.Date; 4 | 5 | /** 6 | * Created by ghbha on 2016/5/19. 7 | */ 8 | public class ExcelRecord { 9 | private Date recordDate; 10 | private String recordAccount; 11 | private String recordName; 12 | private String remark; 13 | private double recordMoney; 14 | 15 | public Date getRecordDate() { 16 | return recordDate; 17 | } 18 | 19 | public void setRecordDate(Date recordDate) { 20 | this.recordDate = recordDate; 21 | } 22 | 23 | public String getRecordAccount() { 24 | return recordAccount; 25 | } 26 | 27 | public void setRecordAccount(String recordAccount) { 28 | this.recordAccount = recordAccount; 29 | } 30 | 31 | public String getRecordName() { 32 | return recordName; 33 | } 34 | 35 | public void setRecordName(String recordName) { 36 | this.recordName = recordName; 37 | } 38 | 39 | public double getRecordMoney() { 40 | return recordMoney; 41 | } 42 | 43 | public void setRecordMoney(double recordMoney) { 44 | this.recordMoney = recordMoney; 45 | } 46 | 47 | public String getRemark() { 48 | return remark; 49 | } 50 | 51 | public void setRemark(String remark) { 52 | this.remark = remark; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/manager/domain/LineChartDo.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.manager.domain; 2 | 3 | /** 4 | * Created by ghbha on 2016/4/12. 5 | */ 6 | public class LineChartDo { 7 | private int month; 8 | private double allIn; 9 | private double allOut; 10 | private double allLeft; 11 | 12 | public int getMonth() { 13 | return month; 14 | } 15 | 16 | public void setMonth(int month) { 17 | this.month = month; 18 | } 19 | 20 | public double getAllIn() { 21 | return allIn; 22 | } 23 | 24 | public void setAllIn(double allIn) { 25 | this.allIn = allIn; 26 | } 27 | 28 | public double getAllOut() { 29 | return allOut; 30 | } 31 | 32 | public void setAllOut(double allOut) { 33 | this.allOut = allOut; 34 | } 35 | 36 | public double getAllLeft() { 37 | return allLeft; 38 | } 39 | 40 | public void setAllLeft(double allLeft) { 41 | this.allLeft = allLeft; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/manager/domain/MonthReport.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.manager.domain; 2 | 3 | /** 4 | * Created by ghbha on 2016/4/15. 5 | */ 6 | public class MonthReport { 7 | private double inMoney; 8 | private double outMoney; 9 | private double budgetMoney; 10 | private double allMoney; 11 | 12 | private String outMaxType; 13 | private double outMaxMoney; 14 | 15 | public Double getInMoney() { 16 | return inMoney; 17 | } 18 | 19 | public void setInMoney(Double inMoney) { 20 | this.inMoney = inMoney; 21 | } 22 | 23 | public Double getOutMoney() { 24 | return outMoney; 25 | } 26 | 27 | public void setOutMoney(Double outMoney) { 28 | this.outMoney = outMoney; 29 | } 30 | 31 | public Double getBudgetMoney() { 32 | return budgetMoney; 33 | } 34 | 35 | public void setBudgetMoney(Double budgetMoney) { 36 | this.budgetMoney = budgetMoney; 37 | } 38 | 39 | public void setInMoney(double inMoney) { 40 | this.inMoney = inMoney; 41 | } 42 | 43 | public void setOutMoney(double outMoney) { 44 | this.outMoney = outMoney; 45 | } 46 | 47 | public void setBudgetMoney(double budgetMoney) { 48 | this.budgetMoney = budgetMoney; 49 | } 50 | 51 | public String getOutMaxType() { 52 | return outMaxType; 53 | } 54 | 55 | public void setOutMaxType(String outMaxType) { 56 | this.outMaxType = outMaxType; 57 | } 58 | 59 | public double getOutMaxMoney() { 60 | return outMaxMoney; 61 | } 62 | 63 | public void setOutMaxMoney(double outMaxMoney) { 64 | this.outMaxMoney = outMaxMoney; 65 | } 66 | 67 | public double getAllMoney() { 68 | return allMoney; 69 | } 70 | 71 | public void setAllMoney(double allMoney) { 72 | this.allMoney = allMoney; 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/manager/domain/MsgDo.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.manager.domain; 2 | 3 | /** 4 | * Created by ghbha on 2016/4/13. 5 | */ 6 | public class MsgDo { 7 | 8 | private int msgType; 9 | 10 | private String msgContent; 11 | 12 | private String msgExtra; 13 | 14 | private String sendUser; 15 | 16 | public int getMsgType() { 17 | return msgType; 18 | } 19 | 20 | public void setMsgType(int msgType) { 21 | this.msgType = msgType; 22 | } 23 | 24 | public String getMsgContent() { 25 | return msgContent; 26 | } 27 | 28 | public void setMsgContent(String msgContent) { 29 | this.msgContent = msgContent; 30 | } 31 | 32 | public String getMsgExtra() { 33 | return msgExtra; 34 | } 35 | 36 | public void setMsgExtra(String msgExtra) { 37 | this.msgExtra = msgExtra; 38 | } 39 | 40 | public String getSendUser() { 41 | return sendUser; 42 | } 43 | 44 | public void setSendUser(String sendUser) { 45 | this.sendUser = sendUser; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/manager/domain/MyDate.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.manager.domain; 2 | 3 | import java.util.Calendar; 4 | import java.util.Date; 5 | 6 | /** 7 | * Created by suda on 2016/8/13. 8 | */ 9 | public class MyDate { 10 | private int year; 11 | private int month; 12 | private int day; 13 | 14 | public MyDate(int year, int month, int day) { 15 | this.year = year; 16 | this.month = month; 17 | this.day = day; 18 | } 19 | 20 | public int getYear() { 21 | return year; 22 | } 23 | 24 | public void setYear(int year) { 25 | this.year = year; 26 | } 27 | 28 | public int getMonth() { 29 | return month; 30 | } 31 | 32 | public void setMonth(int month) { 33 | this.month = month; 34 | } 35 | 36 | public int getDay() { 37 | return day; 38 | } 39 | 40 | public void setDay(int day) { 41 | this.day = day; 42 | } 43 | 44 | public Date getDate() { 45 | Calendar c = Calendar.getInstance(); 46 | c.set(Calendar.YEAR, year); 47 | c.set(Calendar.MONTH, month); 48 | c.set(Calendar.DAY_OF_MONTH, day); 49 | c.set(Calendar.MINUTE, 0); 50 | c.set(Calendar.SECOND, 0); 51 | c.set(Calendar.MILLISECOND, 0); 52 | //Log.d("@@@@@getDate", c.getTimeInMillis() + ""); 53 | return c.getTime(); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/manager/domain/OptDO.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.manager.domain; 2 | 3 | /** 4 | * Created by ghbha on 2016/2/14. 5 | */ 6 | public class OptDO { 7 | private int id; 8 | private int icon; 9 | private String tltle; 10 | private Class act; 11 | 12 | public OptDO(Class act, int id, int icon, String tltle) { 13 | this.act = act; 14 | this.id = id; 15 | this.icon = icon; 16 | this.tltle = tltle; 17 | } 18 | 19 | public int getId() { 20 | return id; 21 | } 22 | 23 | public void setId(int id) { 24 | this.id = id; 25 | } 26 | 27 | public Class getAct() { 28 | return act; 29 | } 30 | 31 | public void setAct(Class act) { 32 | this.act = act; 33 | } 34 | 35 | public int getIcon() { 36 | return icon; 37 | } 38 | 39 | public void setIcon(int icon) { 40 | this.icon = icon; 41 | } 42 | 43 | public String getTltle() { 44 | return tltle; 45 | } 46 | 47 | public void setTltle(String tltle) { 48 | this.tltle = tltle; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/manager/domain/RecordTypeIndexDO.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.manager.domain; 2 | 3 | /** 4 | * Created by ghbha on 2016/4/7. 5 | */ 6 | public class RecordTypeIndexDO { 7 | private long recordTypeID; 8 | private int index; 9 | 10 | public long getRecordTypeID() { 11 | return recordTypeID; 12 | } 13 | 14 | public void setRecordTypeID(long recordTypeID) { 15 | this.recordTypeID = recordTypeID; 16 | } 17 | 18 | public int getIndex() { 19 | return index; 20 | } 21 | 22 | public void setIndex(int index) { 23 | this.index = index; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/manager/domain/ThemeDO.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.manager.domain; 2 | 3 | /** 4 | * Created by ghbha on 2016/2/14. 5 | */ 6 | public class ThemeDO { 7 | 8 | 9 | private int themeID; 10 | private int mainColorID; 11 | private int mainDarkColorID; 12 | private int textColorID; 13 | 14 | public ThemeDO(int themeID, int mainColorID, int mainDarkColorID, int textColorID) { 15 | this.themeID = themeID; 16 | this.mainColorID = mainColorID; 17 | this.mainDarkColorID = mainDarkColorID; 18 | this.textColorID = textColorID; 19 | } 20 | 21 | public int getTextColorID() { 22 | return textColorID; 23 | } 24 | 25 | public void setTextColorID(int textColorID) { 26 | this.textColorID = textColorID; 27 | } 28 | 29 | public int getThemeID() { 30 | return themeID; 31 | } 32 | 33 | public void setThemeID(int themeID) { 34 | this.themeID = themeID; 35 | } 36 | 37 | public int getMainColorID() { 38 | return mainColorID; 39 | } 40 | 41 | public void setMainColorID(int mainColorID) { 42 | this.mainColorID = mainColorID; 43 | } 44 | 45 | public int getMainDarkColorID() { 46 | return mainDarkColorID; 47 | } 48 | 49 | public void setMainDarkColorID(int mainDarkColorID) { 50 | this.mainDarkColorID = mainDarkColorID; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/manager/domain/VoiceDo.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.manager.domain; 2 | 3 | import com.suda.jzapp.dao.greendao.RecordType; 4 | 5 | /** 6 | * Created by ghbha on 2016/5/20. 7 | */ 8 | public class VoiceDo { 9 | 10 | private int resultCode; 11 | private String splitStr; 12 | private double money; 13 | private RecordType recordTypeDo; 14 | 15 | public String getSplitStr() { 16 | return splitStr; 17 | } 18 | 19 | public void setSplitStr(String splitStr) { 20 | this.splitStr = splitStr; 21 | } 22 | 23 | public int getResultCode() { 24 | return resultCode; 25 | } 26 | 27 | public void setResultCode(int resultCode) { 28 | this.resultCode = resultCode; 29 | } 30 | 31 | public double getMoney() { 32 | return money; 33 | } 34 | 35 | public void setMoney(double money) { 36 | this.money = money; 37 | } 38 | 39 | public RecordType getRecordTypeDo() { 40 | return recordTypeDo; 41 | } 42 | 43 | public void setRecordTypeDo(RecordType recordTypeDo) { 44 | this.recordTypeDo = recordTypeDo; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/misc/IntentConstant.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.misc; 2 | 3 | /** 4 | * Created by ghbha on 2016/2/15. 5 | */ 6 | public class IntentConstant { 7 | 8 | public static final String ACCOUNT_ID = "ACCOUNT_ID"; 9 | public static final String ACCOUNT_COUNT = "ACCOUNT_COUNT"; 10 | public static final String EDIT_TYPE = "EDIT_TYPE"; 11 | public static final String EDIT_ACCOUNT_NAME = "EDIT_ACCOUNT_NAME"; 12 | public static final String EDIT_ACCOUNT_MONEY = "EDIT_ACCOUNT_MONEY"; 13 | public static final String EDIT_ACCOUNT_REMARK = "EDIT_ACCOUNT_REMARK"; 14 | public static final String EDIT_ACCOUNT_TYPE = "EDIT_ACCOUNT_TYPE "; 15 | public static final String RECORD_TYPE = "RECORD_TYPE "; 16 | public static final String OLD_RECORD = "OLD_RECORD"; 17 | public static final String SETTING_MODE = "setting_mode"; 18 | public static final String FORGET_GESTURE = "FORGET_GESTURE"; 19 | 20 | public static final String RECORD_YEAR = "RECORD_YEAR"; 21 | public static final String RECORD_MONTH = "RECORD_MONTH"; 22 | public static final String RECORD_TYPE_ID = "RECORD_TYPE_ID"; 23 | public static final String RECORD_DESC = "RECORD_DESC"; 24 | public static final String RECORD_OUT_IN = "RECORD_OUT_IN"; 25 | 26 | public static final String VOICE_RECORD = "VOICE_RECORD"; 27 | public static final String VOICE_RECORD_TYPE = "VOICE_RECORD_TYPE"; 28 | 29 | public static final String UPDATE_CHECK = "UPDATE_CHECK"; 30 | 31 | public static final String WIDGET_GO_ID = "WIDGET_GO_ID"; 32 | 33 | public static final String WEB_URL = "WEB_URL"; 34 | public static final String WEB_DESC = "WEB_DESC"; 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/misc/MsgConstant.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.misc; 2 | 3 | /** 4 | * Created by ghbha on 2016/4/13. 5 | */ 6 | public class MsgConstant { 7 | 8 | //非法消息类型 9 | public final static int MSG_TYPE_INVALID = -1; 10 | //普通消息 11 | public final static int MSG_TYPE_COMMON = 0; 12 | //请求关联 13 | public final static int MSG_TYPE_LINK_REQUEST = 1; 14 | //接受关联 15 | public final static int MSG_TYPE_LINK_ACCEPT = 2; 16 | //取消关联 17 | public final static int MSG_TYPE_LINK_CANCEL = 3; 18 | //解除关联 19 | public final static int MSG_TYPE_LINK_BROKE = 4; 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/misc/MyMessageHandler.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.misc; 2 | 3 | import android.content.Context; 4 | import android.util.Log; 5 | 6 | import com.avos.avoscloud.im.v2.AVIMClient; 7 | import com.avos.avoscloud.im.v2.AVIMConversation; 8 | import com.avos.avoscloud.im.v2.AVIMMessage; 9 | import com.avos.avoscloud.im.v2.AVIMMessageHandler; 10 | import com.avos.avoscloud.im.v2.messages.AVIMTextMessage; 11 | import com.suda.jzapp.manager.domain.MsgDo; 12 | import com.suda.jzapp.util.MsgUtil; 13 | 14 | /** 15 | * Created by ghbha on 2016/4/13. 16 | */ 17 | public class MyMessageHandler extends AVIMMessageHandler { 18 | 19 | 20 | private Context mContext; 21 | 22 | public MyMessageHandler(Context context) { 23 | this.mContext = context; 24 | } 25 | 26 | @Override 27 | public void onMessage(AVIMMessage message, AVIMConversation conversation, AVIMClient client) { 28 | Log.d(TAG, ((AVIMTextMessage) message).getText().toString()); 29 | MsgDo msgDo = MsgUtil.parseMsg(((AVIMTextMessage) message).getText().toString()); 30 | if (msgDo.getMsgType() == MsgConstant.MSG_TYPE_LINK_REQUEST 31 | || msgDo.getMsgType() == MsgConstant.MSG_TYPE_LINK_ACCEPT 32 | || msgDo.getMsgType() == MsgConstant.MSG_TYPE_LINK_CANCEL 33 | ) { 34 | msgDo.setSendUser(message.getFrom()); 35 | if (msgCallBack != null) { 36 | msgCallBack.show(msgDo); 37 | } 38 | } 39 | } 40 | 41 | @Override 42 | public void onMessageReceipt(AVIMMessage message, AVIMConversation conversation, AVIMClient client) { 43 | 44 | } 45 | 46 | public void setMsgCallBack(MsgCallBack msgCallBack) { 47 | this.msgCallBack = msgCallBack; 48 | } 49 | 50 | private MsgCallBack msgCallBack; 51 | 52 | private final static String TAG = "Message"; 53 | 54 | 55 | public interface MsgCallBack { 56 | void show(MsgDo msgDo); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/receiver/AlarmReceiver.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.receiver; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | 7 | import com.suda.jzapp.util.AlarmUtil; 8 | import com.suda.jzapp.util.LogUtils; 9 | import com.suda.jzapp.util.NotificationUtil; 10 | 11 | import java.text.DateFormat; 12 | import java.text.SimpleDateFormat; 13 | import java.util.Calendar; 14 | 15 | /** 16 | * Created by ghbha on 2016/4/15. 17 | */ 18 | public class AlarmReceiver extends BroadcastReceiver { 19 | @Override 20 | public void onReceive(Context context, Intent intent) { 21 | DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 22 | LogUtils.e("ALARM", format.format(Calendar.getInstance().getTime())); 23 | NotificationUtil.showRemindNotification(context, "小主,记得记账哦"); 24 | AlarmUtil.createAlarm(context); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/service/BackupService.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.service; 2 | 3 | import android.app.Service; 4 | import android.content.Intent; 5 | import android.os.IBinder; 6 | import android.support.annotation.Nullable; 7 | 8 | import com.suda.jzapp.dao.cloud.avos.pojo.user.MyAVUser; 9 | import com.suda.jzapp.manager.SyncManager; 10 | import com.suda.jzapp.misc.Constant; 11 | import com.suda.jzapp.util.AlarmUtil; 12 | import com.suda.jzapp.util.LogUtils; 13 | import com.suda.jzapp.util.NetworkUtil; 14 | import com.suda.jzapp.util.SPUtils; 15 | 16 | /** 17 | * Created by Suda on 2015/10/9. 18 | */ 19 | public class BackupService extends Service { 20 | 21 | @Nullable 22 | @Override 23 | public IBinder onBind(Intent intent) { 24 | return null; 25 | } 26 | 27 | @Override 28 | public void onCreate() { 29 | super.onCreate(); 30 | 31 | if ((boolean) SPUtils.get(this, true, Constant.SP_ALARM_EVERY_DAY, false)) 32 | AlarmUtil.createAlarm(this); 33 | } 34 | 35 | @Override 36 | public int onStartCommand(Intent intent, int flags, int startId) { 37 | if (canSync()) { 38 | LogUtils.e(TAG, "START_BACK_UP"); 39 | new Thread(new Runnable() { 40 | @Override 41 | public void run() { 42 | LogUtils.e(TAG, "START_BACK_UP_1"); 43 | syncManager.forceBackup(); 44 | stopSelf(); 45 | } 46 | }).start(); 47 | } else 48 | stopSelf(); 49 | return super.onStartCommand(intent, flags, startId); 50 | } 51 | 52 | private boolean canSync() { 53 | return MyAVUser.getCurrentUser() != null && 54 | ((boolean) SPUtils.get(this, true, Constant.SP_SYNC_ONLY_WIFI, false) ? NetworkUtil.checkWifi(this) : NetworkUtil.checkNetwork(this)); 55 | } 56 | 57 | private SyncManager syncManager = new SyncManager(this); 58 | private static final String TAG = "SYNC_SERVICE"; 59 | } 60 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/ui/activity/account/EditAccountColorActivity.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.ui.activity.account; 2 | 3 | import android.app.Activity; 4 | import android.content.Intent; 5 | import android.os.Bundle; 6 | import android.os.Handler; 7 | import android.os.Message; 8 | import android.view.MotionEvent; 9 | import android.view.View; 10 | 11 | import com.suda.jzapp.R; 12 | import com.suda.jzapp.manager.AccountManager; 13 | import com.suda.jzapp.misc.IntentConstant; 14 | import com.suda.jzapp.view.MyRoundColorView; 15 | 16 | public class EditAccountColorActivity extends Activity { 17 | 18 | 19 | @Override 20 | protected void onCreate(Bundle savedInstanceState) { 21 | super.onCreate(savedInstanceState); 22 | setContentView(R.layout.activity_edit_account_color_activity); 23 | mAccountID = getIntent().getLongExtra(IntentConstant.ACCOUNT_ID, 0); 24 | accountManager = new AccountManager(this); 25 | } 26 | 27 | public void switchColor(View view) { 28 | MyRoundColorView myRoundColorView = (MyRoundColorView) view; 29 | final Intent intent = new Intent(); 30 | intent.putExtra("color", myRoundColorView.getRoundColor()); 31 | 32 | if (mAccountID>0){ 33 | accountManager.updateAccountColor(mAccountID, myRoundColorView.getRoundColor() + "", new Handler() { 34 | @Override 35 | public void handleMessage(Message msg) { 36 | super.handleMessage(msg); 37 | setResult(RESULT_OK, intent); 38 | finish(); 39 | } 40 | }); 41 | }else { 42 | setResult(RESULT_OK, intent); 43 | finish(); 44 | } 45 | } 46 | 47 | @Override 48 | public boolean onTouchEvent(MotionEvent event) { 49 | finish(); 50 | return true; 51 | } 52 | 53 | private long mAccountID; 54 | private AccountManager accountManager; 55 | } 56 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/ui/activity/record/RecordTypeEditActivity.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.ui.activity.record; 2 | 3 | import android.support.v7.app.AppCompatActivity; 4 | import android.os.Bundle; 5 | 6 | import com.suda.jzapp.BaseActivity; 7 | import com.suda.jzapp.R; 8 | 9 | public class RecordTypeEditActivity extends BaseActivity { 10 | 11 | @Override 12 | protected void onCreate(Bundle savedInstanceState) { 13 | super.onCreate(savedInstanceState); 14 | setContentView(R.layout.activity_record_type_edit); 15 | } 16 | 17 | @Override 18 | protected void initWidget() { 19 | 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/ui/activity/system/CaptureActivityAnyOrientation.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.ui.activity.system; 2 | 3 | //import com.journeyapps.barcodescanner.CaptureActivity; 4 | 5 | /** 6 | * Created by ghbha on 2016/4/14. 7 | */ 8 | public class CaptureActivityAnyOrientation { 9 | // public class CaptureActivityAnyOrientation extends CaptureActivity { 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/ui/activity/system/EditThemeActivity.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.ui.activity.system; 2 | 3 | import android.app.Activity; 4 | import android.os.Bundle; 5 | import android.view.MotionEvent; 6 | import android.view.View; 7 | 8 | import com.suda.jzapp.R; 9 | import com.suda.jzapp.util.ThemeUtil; 10 | import com.suda.jzapp.view.MyRoundColorView; 11 | 12 | /** 13 | * Created by ghbha on 2016/2/14. 14 | */ 15 | public class EditThemeActivity extends Activity { 16 | 17 | 18 | @Override 19 | protected void onCreate(Bundle savedInstanceState) { 20 | super.onCreate(savedInstanceState); 21 | setContentView(R.layout.theme_layout); 22 | for (int i = 0; i < 9; i++) { 23 | ((MyRoundColorView) findViewById(getId("theme" + i))).setMyRoundColor(getResources().getColor(ThemeUtil.map.get(i).getMainColorID())); 24 | } 25 | } 26 | 27 | public int getId(String paramString) { 28 | return getResources().getIdentifier(paramString, "id", getPackageName()); 29 | } 30 | 31 | 32 | public void switchTheme(View view) { 33 | String tag = view.getTag().toString(); 34 | ThemeUtil.setThemeColor(this, Integer.parseInt(tag)); 35 | setResult(RESULT_OK); 36 | this.finish(); 37 | } 38 | 39 | @Override 40 | public boolean onTouchEvent(MotionEvent event) { 41 | finish(); 42 | return true; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/ui/activity/system/UpdateActivity.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.ui.activity.system; 2 | 3 | import android.app.Activity; 4 | import android.content.Intent; 5 | import android.net.Uri; 6 | import android.os.Bundle; 7 | import android.view.View; 8 | import android.widget.TextView; 9 | 10 | import com.suda.jzapp.R; 11 | import com.suda.jzapp.dao.cloud.avos.pojo.system.AVUpdateCheck; 12 | import com.suda.jzapp.misc.IntentConstant; 13 | 14 | public class UpdateActivity extends Activity { 15 | 16 | 17 | private AVUpdateCheck mAvUpdateCheck; 18 | 19 | @Override 20 | protected void onCreate(Bundle savedInstanceState) { 21 | super.onCreate(savedInstanceState); 22 | setContentView(R.layout.activity_update); 23 | mAvUpdateCheck = (AVUpdateCheck) getIntent().getParcelableExtra(IntentConstant.UPDATE_CHECK); 24 | ((TextView) findViewById(R.id.version_info)).setText(mAvUpdateCheck.getUpdateInfo()); 25 | ((TextView) findViewById(R.id.version)).setText("V" + mAvUpdateCheck.getVersion()); 26 | } 27 | 28 | public void close(View view) { 29 | finish(); 30 | } 31 | 32 | public void download(View view) { 33 | Intent intent = new Intent(); 34 | intent.setData(Uri.parse(mAvUpdateCheck.getLink())); 35 | intent.setAction(Intent.ACTION_VIEW); 36 | this.startActivity(intent); 37 | finish(); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/ui/adapter/AccountTypeAdapter.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.ui.adapter; 2 | 3 | import android.app.Activity; 4 | import android.view.LayoutInflater; 5 | import android.view.View; 6 | import android.view.ViewGroup; 7 | import android.widget.BaseAdapter; 8 | import android.widget.ImageView; 9 | import android.widget.TextView; 10 | 11 | import com.suda.jzapp.R; 12 | import com.suda.jzapp.dao.greendao.AccountType; 13 | import com.suda.jzapp.util.IconTypeUtil; 14 | 15 | import java.util.List; 16 | 17 | /** 18 | * Created by ghbha on 2016/2/16. 19 | */ 20 | public class AccountTypeAdapter extends BaseAdapter { 21 | private Activity context; 22 | private LayoutInflater mInflater; 23 | private List accountTypeList; 24 | 25 | public AccountTypeAdapter(List accountTypeList, Activity context) { 26 | this.accountTypeList = accountTypeList; 27 | this.context = context; 28 | this.mInflater = LayoutInflater.from(context); 29 | } 30 | 31 | @Override 32 | public int getCount() { 33 | return accountTypeList.size(); 34 | } 35 | 36 | @Override 37 | public Object getItem(int position) { 38 | return accountTypeList.get(position); 39 | } 40 | 41 | @Override 42 | public long getItemId(int position) { 43 | return position; 44 | } 45 | 46 | @Override 47 | public View getView(int position, View convertView, ViewGroup parent) { 48 | ViewHolder holder = null; 49 | if (convertView == null) { 50 | holder = new ViewHolder(); 51 | convertView = mInflater.inflate(R.layout.account_type_item, null); 52 | holder.icon = (ImageView) convertView.findViewById(R.id.account_type_icon); 53 | holder.title = (TextView) convertView.findViewById(R.id.account_type_desc); 54 | 55 | convertView.setTag(holder); 56 | } else { 57 | holder = (ViewHolder) convertView.getTag(); 58 | } 59 | final AccountType accountType = accountTypeList.get(position); 60 | 61 | holder.icon.setBackgroundResource(IconTypeUtil.getAccountIcon(accountType.getAccountIcon())); 62 | holder.title.setText(accountType.getAccountDesc()); 63 | 64 | return convertView; 65 | } 66 | 67 | public class ViewHolder { 68 | public TextView title; 69 | public ImageView icon; 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/ui/adapter/MyFragmentPagerAdapter.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.ui.adapter; 2 | 3 | import android.content.Context; 4 | import android.support.v4.app.Fragment; 5 | import android.support.v4.app.FragmentManager; 6 | import android.support.v4.app.FragmentPagerAdapter; 7 | 8 | import com.suda.jzapp.R; 9 | import com.suda.jzapp.ui.fragment.AccountFrg; 10 | import com.suda.jzapp.ui.fragment.AnalysisFrg; 11 | import com.suda.jzapp.ui.fragment.RecordFrg; 12 | 13 | /** 14 | * Created by ghbha on 2016/2/15. 15 | */ 16 | public class MyFragmentPagerAdapter extends FragmentPagerAdapter { 17 | 18 | private Context mContext; 19 | 20 | private final String[] TITLES = {"1","2","3"}; 21 | 22 | public MyFragmentPagerAdapter(FragmentManager fm,Context context) { 23 | super(fm); 24 | this.mContext = context; 25 | String[] title = mContext.getResources().getStringArray( 26 | R.array.tab_title); 27 | TITLES[0] = title[0]; 28 | TITLES[1] = title[1]; 29 | TITLES[2] = title[2]; 30 | } 31 | 32 | @Override 33 | public CharSequence getPageTitle(int position) { 34 | return TITLES[position]; 35 | } 36 | 37 | @Override 38 | public int getCount() { 39 | return TITLES.length; 40 | } 41 | 42 | @Override 43 | public Fragment getItem(int position) { 44 | 45 | switch (position) { 46 | case 0 : 47 | return new AccountFrg(); 48 | case 1 : 49 | return new RecordFrg(); 50 | case 2 : 51 | return new AnalysisFrg(); 52 | default : 53 | return null; 54 | } 55 | 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/ui/adapter/RecordDetailFrgAdapter.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.ui.adapter; 2 | 3 | import android.support.v4.app.Fragment; 4 | import android.support.v4.app.FragmentManager; 5 | import android.support.v4.app.FragmentPagerAdapter; 6 | 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | /** 11 | * Created by suda on 2016/8/4. 12 | */ 13 | public class RecordDetailFrgAdapter extends FragmentPagerAdapter { 14 | private final List mFragments = new ArrayList<>(); 15 | private final List mFragmentsTitles = new ArrayList<>(); 16 | 17 | public RecordDetailFrgAdapter(FragmentManager fm) { 18 | super(fm); 19 | } 20 | 21 | public void addFragment(Fragment fragment, String fragmentTitle) { 22 | mFragments.add(fragment); 23 | mFragmentsTitles.add(fragmentTitle); 24 | } 25 | 26 | @Override 27 | public Fragment getItem(int position) { 28 | return mFragments.get(position); 29 | } 30 | 31 | @Override 32 | public int getCount() { 33 | //返回Fragment的数量 34 | return mFragments.size(); 35 | } 36 | 37 | @Override 38 | public CharSequence getPageTitle(int position) { 39 | return mFragmentsTitles.get(position); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/ui/adapter/RecordTypeIconAdapter.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.ui.adapter; 2 | 3 | 4 | import android.content.Context; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | import android.widget.BaseAdapter; 9 | import android.widget.ImageView; 10 | 11 | import com.suda.jzapp.R; 12 | import com.suda.jzapp.util.IconTypeUtil; 13 | 14 | import java.util.List; 15 | 16 | /** 17 | * Created by ghbha on 2016/2/25. 18 | */ 19 | public class RecordTypeIconAdapter extends BaseAdapter { 20 | 21 | public RecordTypeIconAdapter(Context context, List recordTypes) { 22 | super(); 23 | this.recordTypes = recordTypes; 24 | this.context = context; 25 | this.mInflater = LayoutInflater.from(context); 26 | } 27 | 28 | @Override 29 | public int getCount() { 30 | return recordTypes.size(); 31 | } 32 | 33 | @Override 34 | public Object getItem(int position) { 35 | return recordTypes.get(position); 36 | } 37 | 38 | @Override 39 | public long getItemId(int position) { 40 | return position; 41 | } 42 | 43 | @Override 44 | public View getView(int position, View convertView, ViewGroup parent) { 45 | ViewHolder holder = null; 46 | 47 | if (convertView == null) { 48 | holder = new ViewHolder(); 49 | convertView = mInflater.inflate(R.layout.item_record_type_icon, null); 50 | 51 | holder.icon = (ImageView) convertView.findViewById(R.id.record_icon); 52 | convertView.setTag(holder); 53 | } else { 54 | holder = (ViewHolder) convertView.getTag(); 55 | } 56 | if (position == mHidePosition) { 57 | convertView.setVisibility(View.INVISIBLE); 58 | } else { 59 | convertView.setVisibility(View.VISIBLE); 60 | } 61 | holder.icon.setImageResource(IconTypeUtil.getTypeIcon(recordTypes.get(position))); 62 | return convertView; 63 | } 64 | 65 | 66 | public class ViewHolder { 67 | public ImageView icon; 68 | } 69 | 70 | private List recordTypes; 71 | private Context context; 72 | private LayoutInflater mInflater; 73 | private int mHidePosition = -1; 74 | } 75 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/ui/adapter/helper/ItemTouchHelperAdapter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Paul Burke 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.suda.jzapp.ui.adapter.helper; 18 | 19 | import android.support.v7.widget.RecyclerView; 20 | import android.support.v7.widget.helper.ItemTouchHelper; 21 | 22 | /** 23 | * Interface to listen for a move or dismissal event from a {@link ItemTouchHelper.Callback}. 24 | * 25 | * @author Paul Burke (ipaulpro) 26 | */ 27 | public interface ItemTouchHelperAdapter { 28 | 29 | /** 30 | * Called when an item has been dragged far enough to trigger a move. This is called every time 31 | * an item is shifted, and not at the end of a "drop" event.
32 | *
33 | * Implementations should call {@link RecyclerView.Adapter#notifyItemMoved(int, int)} after 34 | * adjusting the underlying data to reflect this move. 35 | * 36 | * @param fromPosition The start position of the moved item. 37 | * @param toPosition Then resolved position of the moved item. 38 | * @return True if the item was moved to the new adapter position. 39 | * 40 | * @see RecyclerView#getAdapterPositionFor(RecyclerView.ViewHolder) 41 | * @see RecyclerView.ViewHolder#getAdapterPosition() 42 | */ 43 | boolean onItemMove(int fromPosition, int toPosition); 44 | 45 | 46 | /** 47 | * Called when an item has been dismissed by a swipe.
48 | *
49 | * Implementations should call {@link RecyclerView.Adapter#notifyItemRemoved(int)} after 50 | * adjusting the underlying data to reflect this removal. 51 | * 52 | * @param position The position of the item dismissed. 53 | * 54 | * @see RecyclerView#getAdapterPositionFor(RecyclerView.ViewHolder) 55 | * @see RecyclerView.ViewHolder#getAdapterPosition() 56 | */ 57 | void onItemDismiss(int position); 58 | } 59 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/ui/adapter/helper/ItemTouchHelperViewHolder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Paul Burke 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.suda.jzapp.ui.adapter.helper; 18 | 19 | import android.support.v7.widget.helper.ItemTouchHelper; 20 | 21 | /** 22 | * Interface to notify an item ViewHolder of relevant callbacks from {@link 23 | * ItemTouchHelper.Callback}. 24 | * 25 | * @author Paul Burke (ipaulpro) 26 | */ 27 | public interface ItemTouchHelperViewHolder { 28 | 29 | /** 30 | * Called when the {@link ItemTouchHelper} first registers an item as being moved or swiped. 31 | * Implementations should update the item view to indicate it's active state. 32 | */ 33 | void onItemSelected(); 34 | 35 | 36 | /** 37 | * Called when the {@link ItemTouchHelper} has completed the move or swipe, and the active item 38 | * state should be cleared. 39 | */ 40 | void onItemClear(); 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/ui/adapter/helper/OnStartDragListener.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Paul Burke 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package com.suda.jzapp.ui.adapter.helper; 18 | 19 | import android.support.v7.widget.RecyclerView; 20 | 21 | /** 22 | * Listener for manual initiation of a drag. 23 | */ 24 | public interface OnStartDragListener { 25 | 26 | /** 27 | * Called when a view is requesting a start of a drag. 28 | * 29 | * @param viewHolder The holder of the view to drag. 30 | */ 31 | void onStartDrag(RecyclerView.ViewHolder viewHolder); 32 | 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/util/AlarmUtil.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.util; 2 | 3 | import android.app.AlarmManager; 4 | import android.app.PendingIntent; 5 | import android.content.Context; 6 | import android.content.Intent; 7 | 8 | import com.suda.jzapp.misc.Constant; 9 | import com.suda.jzapp.receiver.AlarmReceiver; 10 | 11 | import java.text.DateFormat; 12 | import java.text.SimpleDateFormat; 13 | import java.util.Calendar; 14 | 15 | /** 16 | * Created by ghbha on 2016/4/15. 17 | */ 18 | public class AlarmUtil { 19 | 20 | 21 | public static void createAlarm(Context context) { 22 | createAlarmOrCancel(context, true); 23 | } 24 | 25 | public static void createAlarmOrCancel(Context context, boolean create) { 26 | 27 | long alarmTime = SPUtils.gets(context, Constant.SP_ALARM_TIME, 0l); 28 | 29 | Calendar calendarOld = Calendar.getInstance(); 30 | calendarOld.setTimeInMillis(alarmTime); 31 | 32 | long curTime = System.currentTimeMillis(); 33 | 34 | Intent intent = new Intent(context, AlarmReceiver.class); 35 | PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, 0); 36 | // 过10s 执行这个闹铃 37 | Calendar calendar = Calendar.getInstance(); 38 | calendar.setTimeInMillis(curTime); 39 | //calendar.add(Calendar.SECOND, 10); 40 | calendar.set(Calendar.SECOND, 0); 41 | calendar.set(Calendar.MILLISECOND, 0); 42 | calendar.set(Calendar.HOUR_OF_DAY, calendarOld.get(Calendar.HOUR_OF_DAY)); 43 | calendar.set(Calendar.MINUTE, calendarOld.get(Calendar.MINUTE)); 44 | if (calendar.getTimeInMillis() < curTime) { 45 | calendar.add(Calendar.DATE, 1); 46 | } 47 | 48 | DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 49 | LogUtils.d("ALARM", "下次提醒时间" + format.format(calendar.getTime())); 50 | 51 | // 进行闹铃注册 52 | AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 53 | manager.cancel(sender); 54 | 55 | if (!create) 56 | return; 57 | 58 | manager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/util/AppUtil.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.util; 2 | 3 | import android.content.Context; 4 | import android.content.pm.PackageInfo; 5 | import android.content.pm.PackageManager; 6 | 7 | /** 8 | * Created by suda on 2016/8/5. 9 | */ 10 | public class AppUtil { 11 | 12 | public static PackageInfo getAppInfo(Context context) { 13 | // 获取packagemanager的实例 14 | try { 15 | PackageManager packageManager = context.getPackageManager(); 16 | // getPackageName()是你当前类的包名,0代表是获取版本信息 17 | PackageInfo packInfo = packageManager.getPackageInfo(context.getPackageName(), 0); 18 | return packInfo; 19 | } catch (Exception e) { 20 | 21 | } 22 | return null; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/util/DateTimeUtil.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.util; 2 | 3 | import java.text.DateFormat; 4 | import java.text.SimpleDateFormat; 5 | import java.util.Calendar; 6 | import java.util.Date; 7 | 8 | /** 9 | * Created by ghbha on 2016/4/10. 10 | */ 11 | public class DateTimeUtil { 12 | public static boolean isThisYear(Date date) { 13 | Calendar calendar = Calendar.getInstance(); 14 | int year = calendar.get(Calendar.YEAR); 15 | calendar.setTime(date); 16 | return year == calendar.get(Calendar.YEAR); 17 | } 18 | 19 | public static boolean isToday(Date date) { 20 | Calendar calendar = Calendar.getInstance(); 21 | calendar.set(Calendar.HOUR_OF_DAY, 0); 22 | calendar.set(Calendar.MINUTE, 0); 23 | calendar.set(Calendar.SECOND, 0); 24 | calendar.set(Calendar.MILLISECOND, 0); 25 | calendar.getTime(); 26 | return calendar.getTime().equals(date); 27 | } 28 | 29 | public static String fmCQLDate(Date date) { 30 | DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.'000Z'"); 31 | return format.format(date); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/util/DensityUtils.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.util; 2 | 3 | 4 | import android.content.Context; 5 | import android.util.TypedValue; 6 | 7 | //常用单位转换的辅助类 8 | public class DensityUtils { 9 | private DensityUtils() { 10 | /* cannot be instantiated */ 11 | throw new UnsupportedOperationException("cannot be instantiated"); 12 | } 13 | 14 | /** 15 | * dp转px 16 | * 17 | * @param context 18 | * @param dpVal 19 | * @return 20 | */ 21 | public static int dp2px(Context context, float dpVal) { 22 | return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 23 | dpVal, context.getResources().getDisplayMetrics()); 24 | } 25 | 26 | /** 27 | * sp转px 28 | * 29 | * @param context 30 | * @param spVal 31 | * @return 32 | */ 33 | public static int sp2px(Context context, float spVal) { 34 | return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 35 | spVal, context.getResources().getDisplayMetrics()); 36 | } 37 | 38 | /** 39 | * px转dp 40 | * 41 | * @param context 42 | * @param pxVal 43 | * @return 44 | */ 45 | public static float px2dp(Context context, float pxVal) { 46 | final float scale = context.getResources().getDisplayMetrics().density; 47 | return (pxVal / scale); 48 | } 49 | 50 | /** 51 | * px转sp 52 | * 53 | * @param pxVal 54 | * @param pxVal 55 | * @return 56 | */ 57 | public static float px2sp(Context context, float pxVal) { 58 | return (pxVal / context.getResources().getDisplayMetrics().scaledDensity); 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/util/ExceptionInfoUtil.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.util; 2 | 3 | import com.avos.avoscloud.AVException; 4 | 5 | /** 6 | * Created by Suda on 2015/7/24. 7 | */ 8 | public class ExceptionInfoUtil { 9 | 10 | public static String getError(int errorCode) { 11 | String info = ""; 12 | switch (errorCode) { 13 | case AVException.USERNAME_TAKEN: 14 | info = "用户名已被占用"; 15 | break; 16 | case AVException.USER_DOESNOT_EXIST: 17 | info = "用户名未注册"; 18 | break; 19 | case AVException.USERNAME_PASSWORD_MISMATCH: 20 | info = "密码错误"; 21 | break; 22 | case AVException.INVALID_EMAIL_ADDRESS: 23 | info = "请填写正确邮箱"; 24 | break; 25 | case AVException.INVALID_PHONE_NUMBER: 26 | info = "请填写正确手机号"; 27 | break; 28 | case AVException.EMAIL_TAKEN: 29 | info = "该邮箱已被注册"; 30 | break; 31 | case AVException.USER_MOBILE_PHONENUMBER_TAKEN: 32 | info = "该手机号已被注册"; 33 | break; 34 | case 216: 35 | info = "先验证邮箱才能登陆哦"; 36 | break; 37 | case AVException.EMAIL_NOT_FOUND: 38 | info = "该邮箱尚未注册"; 39 | default: 40 | break; 41 | } 42 | return info; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/util/KeyBoardUtils.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.util; 2 | 3 | 4 | import android.content.Context; 5 | import android.view.inputmethod.InputMethodManager; 6 | import android.widget.EditText; 7 | 8 | //打开或关闭软键盘 9 | public class KeyBoardUtils { 10 | /** 11 | * 打卡软键盘 12 | * 13 | * @param mEditText 输入框 14 | * @param mContext 上下文 15 | */ 16 | public static void openKeybord(EditText mEditText, Context mContext) { 17 | InputMethodManager imm = (InputMethodManager) mContext 18 | .getSystemService(Context.INPUT_METHOD_SERVICE); 19 | imm.showSoftInput(mEditText, InputMethodManager.RESULT_SHOWN); 20 | imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 21 | InputMethodManager.HIDE_IMPLICIT_ONLY); 22 | } 23 | 24 | /** 25 | * 关闭软键盘 26 | * 27 | * @param mEditText 输入框 28 | * @param mContext 上下文 29 | */ 30 | public static void closeKeybord(EditText mEditText, Context mContext) { 31 | InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); 32 | 33 | imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/util/LauncherIconUtil.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.util; 2 | 3 | import android.app.Activity; 4 | import android.content.ComponentName; 5 | import android.content.Context; 6 | import android.content.pm.PackageManager; 7 | 8 | import com.suda.jzapp.R; 9 | 10 | /** 11 | * Created by suda on 2016/8/10. 12 | */ 13 | public class LauncherIconUtil { 14 | 15 | public static void changeLauncherIcon(Activity ctx, int iconType) { 16 | PackageManager pm = ctx.getPackageManager(); 17 | 18 | pm.setComponentEnabledSetting(new ComponentName("com.suda.jzapp", 19 | "com.suda.jzapp.MainActivity-icon1"), 20 | iconType == 1 ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 21 | PackageManager.DONT_KILL_APP); 22 | 23 | pm.setComponentEnabledSetting(new ComponentName("com.suda.jzapp", 24 | "com.suda.jzapp.MainActivity-icon2"), 25 | iconType == 2 ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 26 | PackageManager.DONT_KILL_APP); 27 | 28 | } 29 | 30 | public static int getLauncherIcon(Context context) { 31 | if ((boolean) SPUtils.get(context, true, context.getResources().getString(R.string.key_icon), true)) 32 | return R.mipmap.icon1; 33 | else 34 | return R.mipmap.icon2; 35 | 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/util/LoadAVOSLib.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.util; 2 | 3 | 4 | import com.avos.avoscloud.AVObject; 5 | import com.suda.jzapp.dao.cloud.avos.pojo.account.AVAccount; 6 | import com.suda.jzapp.dao.cloud.avos.pojo.account.AVAccountIndex; 7 | import com.suda.jzapp.dao.cloud.avos.pojo.record.AVRecord; 8 | import com.suda.jzapp.dao.cloud.avos.pojo.record.AVRecordType; 9 | import com.suda.jzapp.dao.cloud.avos.pojo.record.AVRecordTypeIndex; 10 | import com.suda.jzapp.dao.cloud.avos.pojo.system.AVUpdateCheck; 11 | import com.suda.jzapp.dao.cloud.avos.pojo.user.MyAVUser; 12 | import com.suda.jzapp.dao.cloud.avos.pojo.user.UserLink; 13 | 14 | /** 15 | * Created by Suda on 2015/9/16. 16 | */ 17 | public class LoadAVOSLib { 18 | 19 | public static void LoadLib() { 20 | AVObject.registerSubclass(AVRecordType.class); 21 | AVObject.registerSubclass(AVRecord.class); 22 | AVObject.registerSubclass(AVAccount.class); 23 | AVObject.registerSubclass(AVAccountIndex.class); 24 | AVObject.registerSubclass(MyAVUser.class); 25 | AVObject.registerSubclass(AVRecordTypeIndex.class); 26 | AVObject.registerSubclass(UserLink.class); 27 | AVObject.registerSubclass(AVUpdateCheck.class); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/util/MD5Util.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.util; 2 | 3 | import java.security.MessageDigest; 4 | 5 | /** 6 | * Created by ghbha on 2016/4/8. 7 | */ 8 | public class MD5Util { 9 | public final static String getMD5(String s) { 10 | char hexDigits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; 11 | try { 12 | byte[] btInput = s.getBytes(); 13 | // 获得MD5摘要算法的 MessageDigest 对象 14 | MessageDigest mdInst = MessageDigest.getInstance("MD5"); 15 | // 使用指定的字节更新摘要 16 | mdInst.update(btInput); 17 | // 获得密文 18 | byte[] md = mdInst.digest(); 19 | // 把密文转换成十六进制的字符串形式 20 | int j = md.length; 21 | char str[] = new char[j * 2]; 22 | int k = 0; 23 | for (int i = 0; i < j; i++) { 24 | byte byte0 = md[i]; 25 | str[k++] = hexDigits[byte0 >>> 4 & 0xf]; 26 | str[k++] = hexDigits[byte0 & 0xf]; 27 | } 28 | return new String(str); 29 | } catch (Exception e) { 30 | e.printStackTrace(); 31 | return null; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/util/MoneyUtil.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.util; 2 | 3 | import android.content.Context; 4 | 5 | import com.suda.jzapp.R; 6 | 7 | import java.math.BigDecimal; 8 | 9 | /** 10 | * Created by suda on 2016/8/7. 11 | */ 12 | public class MoneyUtil { 13 | 14 | public static String getFormatMoneyStr(Context context, double money) { 15 | if (context == null) 16 | return ""; 17 | return "" + getFormatNumStr(context, money); 18 | } 19 | 20 | public static String getFormatNumStr(Context context, double num) { 21 | return String.format(context.getResources().getString(R.string.record_money_format), getFormatNum(num)); 22 | } 23 | 24 | public static double getFormatNum(double num) { 25 | BigDecimal per = new BigDecimal(num); 26 | return per.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/util/MsgUtil.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.util; 2 | 3 | import com.alibaba.fastjson.JSON; 4 | import com.suda.jzapp.manager.domain.MsgDo; 5 | import com.suda.jzapp.misc.MsgConstant; 6 | 7 | /** 8 | * Created by ghbha on 2016/4/13. 9 | */ 10 | public class MsgUtil { 11 | public static String getFormatMsg(int msgType, String content,String extra) { 12 | MsgDo msgDo = new MsgDo(); 13 | msgDo.setMsgContent(content); 14 | msgDo.setMsgType(msgType); 15 | msgDo.setMsgExtra(extra); 16 | return JSON.toJSONString(msgDo); 17 | } 18 | 19 | public static MsgDo parseMsg(String orgMsg) { 20 | MsgDo msgDo = null; 21 | try { 22 | msgDo = JSON.parseObject(orgMsg, MsgDo.class); 23 | } catch (Exception e) { 24 | msgDo = new MsgDo(); 25 | msgDo.setMsgType(MsgConstant.MSG_TYPE_INVALID); 26 | LogUtils.d(e.toString()); 27 | } 28 | return msgDo; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/util/NotificationUtil.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.util; 2 | 3 | import android.app.Notification; 4 | import android.app.NotificationManager; 5 | import android.app.PendingIntent; 6 | import android.content.Context; 7 | import android.content.Intent; 8 | 9 | import com.suda.jzapp.R; 10 | import com.suda.jzapp.ui.activity.MainActivity; 11 | 12 | /** 13 | * Created by ghbha on 2016/4/14. 14 | */ 15 | public class NotificationUtil { 16 | public static void showRemindNotification(final Context context, String message) { 17 | 18 | NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 19 | Notification notification = new Notification.Builder(context) 20 | //.setLargeIcon(context.getResources().getN) 21 | .setSmallIcon(LauncherIconUtil.getLauncherIcon(context)) 22 | .setContentTitle("记账提醒") 23 | .setContentText(message) 24 | .build(); 25 | Intent intent = new Intent(Intent.ACTION_MAIN); 26 | intent.addCategory(Intent.CATEGORY_LAUNCHER); 27 | intent.setClass(context, MainActivity.class); 28 | intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 29 | notification.flags = Notification.FLAG_AUTO_CANCEL; 30 | PendingIntent contextIntent = PendingIntent.getActivity(context, 0, intent, 0); 31 | notification.contentIntent = contextIntent; 32 | notificationManager.notify(LauncherIconUtil.getLauncherIcon(context), notification); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/util/QRCodeUtil.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.util; 2 | 3 | import android.graphics.Bitmap; 4 | 5 | /** 6 | * Created by ghbha on 2016/4/13. 7 | */ 8 | public class QRCodeUtil { 9 | 10 | public static Bitmap createQRImage(String url, int QR_WIDTH, int QR_HEIGHT) { 11 | // try { 12 | // //判断URL合法性 13 | // if (url == null || "".equals(url) || url.length() < 1) { 14 | // return null; 15 | // } 16 | // Hashtable hints = new Hashtable(); 17 | // hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); 18 | // //图像数据转换,使用了矩阵转换 19 | // BitMatrix bitMatrix = new QRCodeWriter().encode(url, BarcodeFormat.QR_CODE, QR_WIDTH, QR_HEIGHT, hints); 20 | // int[] pixels = new int[QR_WIDTH * QR_HEIGHT]; 21 | // //下面这里按照二维码的算法,逐个生成二维码的图片, 22 | // //两个for循环是图片横列扫描的结果 23 | // for (int y = 0; y < QR_HEIGHT; y++) { 24 | // for (int x = 0; x < QR_WIDTH; x++) { 25 | // if (bitMatrix.get(x, y)) { 26 | // pixels[y * QR_WIDTH + x] = 0xff000000; 27 | // } else { 28 | // pixels[y * QR_WIDTH + x] = 0xffffffff; 29 | // } 30 | // } 31 | // } 32 | // //生成二维码图片的格式,使用ARGB_8888 33 | // Bitmap bitmap = Bitmap.createBitmap(QR_WIDTH, QR_HEIGHT, Bitmap.Config.ARGB_8888); 34 | // bitmap.setPixels(pixels, 0, QR_WIDTH, 0, 0, QR_WIDTH, QR_HEIGHT); 35 | // 36 | // return bitmap; 37 | // } catch (WriterException e) { 38 | // e.printStackTrace(); 39 | // 40 | // } 41 | return null; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/util/SnackBarUtil.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.util; 2 | 3 | import android.content.Context; 4 | import android.support.design.widget.Snackbar; 5 | import android.view.View; 6 | 7 | /** 8 | * Created by ghbha on 2016/4/7. 9 | */ 10 | public class SnackBarUtil { 11 | public static void showSnackInfo(View parentView, Context context, String msg) { 12 | if (context == null) 13 | return; 14 | Snackbar snackbar = Snackbar.make(parentView, msg, Snackbar.LENGTH_SHORT) 15 | .setAction("Action", null); 16 | Snackbar.SnackbarLayout ve = (Snackbar.SnackbarLayout) snackbar.getView(); 17 | ve.setBackgroundColor(context.getResources().getColor(ThemeUtil.getTheme(context).getMainColorID())); 18 | snackbar.show(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/util/ThreadPoolUtil.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.util; 2 | 3 | import android.os.Looper; 4 | 5 | import java.util.concurrent.ExecutorService; 6 | import java.util.concurrent.Executors; 7 | import java.util.concurrent.ScheduledExecutorService; 8 | 9 | /** 10 | * Created by ghbha on 2016/2/15. 11 | */ 12 | public class ThreadPoolUtil { 13 | public static synchronized ExecutorService getThreadPoolService(){ 14 | if(threadPool == null) 15 | threadPool = Executors.newFixedThreadPool(MAX_THREAD_NUM); 16 | 17 | return threadPool; 18 | } 19 | 20 | public static synchronized ScheduledExecutorService getScheduledThreadPoolService(){ 21 | if(scheduledThreadPool == null) 22 | scheduledThreadPool = Executors.newScheduledThreadPool(MAX_THREAD_NUM); 23 | 24 | return scheduledThreadPool; 25 | } 26 | 27 | public static boolean isInMainThread(){ 28 | return Looper.myLooper() == Looper.getMainLooper(); 29 | } 30 | 31 | private static volatile ExecutorService threadPool; 32 | private static volatile ScheduledExecutorService scheduledThreadPool; 33 | private static final int MAX_THREAD_NUM = Runtime.getRuntime().availableProcessors()*4; 34 | } 35 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/view/MyPreferenceCategory.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.view; 2 | 3 | import android.content.Context; 4 | import android.preference.PreferenceCategory; 5 | import android.util.AttributeSet; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | import android.widget.TextView; 10 | 11 | import com.suda.jzapp.R; 12 | import com.suda.jzapp.util.ThemeUtil; 13 | 14 | /** 15 | * Created by ghbha on 2016/4/8. 16 | */ 17 | public class MyPreferenceCategory extends PreferenceCategory { 18 | 19 | private Context mContext = null; 20 | 21 | public MyPreferenceCategory(Context context) { 22 | super(context); 23 | this.mContext = context; 24 | } 25 | 26 | public MyPreferenceCategory(Context context, AttributeSet attrs, int defStyleAttr) { 27 | super(context, attrs, defStyleAttr); 28 | this.mContext = context; 29 | } 30 | 31 | public MyPreferenceCategory(Context context, AttributeSet attrs) { 32 | super(context, attrs); 33 | this.mContext = context; 34 | } 35 | 36 | @Override 37 | protected View onCreateView(ViewGroup parent) { 38 | View view = LayoutInflater.from(getContext()).inflate(R.layout.preference_category_widget, parent, false); 39 | TextView textView = (TextView) view.findViewById(android.R.id.title); 40 | textView.setTextColor(mContext.getResources().getColor(ThemeUtil.getTheme(mContext).getMainColorID())); 41 | return view; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/view/MyThemeTextView.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.view; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.widget.TextView; 6 | 7 | import com.suda.jzapp.util.ThemeUtil; 8 | 9 | /** 10 | * Created by ghbha on 2016/4/15. 11 | */ 12 | public class MyThemeTextView extends TextView { 13 | public MyThemeTextView(Context context) { 14 | super(context); 15 | setTextColor(context.getResources().getColor(ThemeUtil.getTheme(context).getMainColorID())); 16 | } 17 | 18 | public MyThemeTextView(Context context, AttributeSet attrs) { 19 | super(context, attrs); 20 | setTextColor(context.getResources().getColor(ThemeUtil.getTheme(context).getMainColorID())); 21 | } 22 | 23 | 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/java/com/suda/jzapp/view/draggrid/DragGridApi.java: -------------------------------------------------------------------------------- 1 | package com.suda.jzapp.view.draggrid; 2 | 3 | public interface DragGridApi { 4 | /** 5 | * 重新排列数据 6 | * @param oldPosition 7 | * @param newPosition 8 | */ 9 | public void reorderItems(int oldPosition, int newPosition); 10 | 11 | 12 | /** 13 | * 设置某个item隐藏 14 | * @param hidePosition 15 | */ 16 | public void setHideItem(int hidePosition); 17 | 18 | 19 | } 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/jniLibs/armeabi/libmsc.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/jniLibs/armeabi/libmsc.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/mips/libmsc.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/jniLibs/mips/libmsc.so -------------------------------------------------------------------------------- /app/src/main/jniLibs/x86/libmsc.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/jniLibs/x86/libmsc.so -------------------------------------------------------------------------------- /app/src/main/res/anim/down_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/anim/up_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/color/item_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v21/ic_color_lens_black_24dp.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v21/ripple.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | /> 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/ad.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/anjie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/anjie.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/arrorw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/arrorw.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/baobao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/baobao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/baojian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/baojian.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/baoxian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/baoxian.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/baoxiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/baoxiao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/chashuikafei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/chashuikafei.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/chuanpiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/chuanpiao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/daoyou.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/daoyou.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/dapai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/dapai.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/dianfei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/dianfei.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/dianying.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/dianying.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fangdai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/fangdai.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fangzu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/fangzu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fanka.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/fanka.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/feijipiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/feijipiao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/fuwu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/fuwu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/gonggongqiche.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/gonggongqiche.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/haiwaidaigou.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/haiwaidaigou.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/huankuan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/huankuan.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/huazhuangpin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/huazhuangpin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/huochepiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/huochepiao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/huwaishebei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/huwaishebei.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_add_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/ic_add_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_color_lens_black_24dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/ic_color_lens_black_24dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_delete_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/ic_delete_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_done_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/ic_done_white.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_drawer_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/ic_drawer_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_drawer_assignment_grey600_36dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/ic_drawer_assignment_grey600_36dp.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_drawer_chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/ic_drawer_chat.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_drawer_check_update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/ic_drawer_check_update.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_drawer_exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/ic_drawer_exit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_drawer_export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/ic_drawer_export.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_drawer_friends.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/ic_drawer_friends.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_drawer_guide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/ic_drawer_guide.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_drawer_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/ic_drawer_settings.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_drawer_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/ic_drawer_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_account_chuzhika_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_account_chuzhika_grey.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_account_gupiao_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_account_gupiao_grey.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_account_wangluozhanghu_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_account_wangluozhanghu_gray.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_account_xianjin_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_account_xianjin_grey.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_account_xinyongka_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_account_xinyongka_gray.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_account_yinhangka_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_account_yinhangka_gray.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_account_zhifubao_grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_account_zhifubao_grey.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_11.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_12.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_13.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_14.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_15.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_16.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_17.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_18.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_19.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_20.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_3.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_4.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_5.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_6.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_7.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_8.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_add_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_add_9.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_paytype_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_paytype_delete.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_shouru_type_gongzi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_shouru_type_gongzi.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_shouru_type_hongbao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_shouru_type_hongbao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_shouru_type_jiangjin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_shouru_type_jiangjin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_shouru_type_jianzhiwaikuai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_shouru_type_jianzhiwaikuai.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_shouru_type_jieru.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_shouru_type_jieru.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_shouru_type_linghuaqian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_shouru_type_linghuaqian.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_shouru_type_qita.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_shouru_type_qita.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_shouru_type_shenghuofei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_shouru_type_shenghuofei.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_shouru_type_touzishouru.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_shouru_type_touzishouru.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_baoxiaozhang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_baoxiaozhang.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_canyin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_canyin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_chongwu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_chongwu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_gouwu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_gouwu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_jiaotong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_jiaotong.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_jiechu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_jiechu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_jujia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_jujia.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_meirongjianshen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_meirongjianshen.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_renqingsongli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_renqingsongli.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_shoujitongxun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_shoujitongxun.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_shuiguolingshi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_shuiguolingshi.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_shuji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_shuji.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_taobao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_taobao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_yanjiuyinliao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_yanjiuyinliao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_yiban.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_yiban.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_yiliaojiaoyu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_yiliaojiaoyu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/icon_zhichu_type_yule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/icon_zhichu_type_yule.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/jiushui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/jiushui.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/juechu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/juechu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/kuzi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/kuzi.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/lifa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/lifa.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/lingqian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/lingqian.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/lingshi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/lingshi.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/link.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/lvyoudujia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/lvyoudujia.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/maicai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/maicai.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/majiang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/majiang.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/mao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/mao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/mask1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/mask1.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/my_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/my_back.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/naifen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/naifen.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/quxian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/quxian.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/record_icon_bianji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/record_icon_bianji.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/record_icon_shanchu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/record_icon_shanchu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/richangyongpin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/richangyongpin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shipin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/shipin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shuifei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/shuifei.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/shumachanpin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/shumachanpin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/sijiache.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/sijiache.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/tingchefei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/tingchefei.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/tuikuan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/tuikuan.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/wanfan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/wanfan.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/wangfei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/wangfei.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/wanggou.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/wanggou.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/wanju.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/wanju.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/weixiubaoyang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/weixiubaoyang.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/wuye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/wuye.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/xianjin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/xianjin.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/xiaochi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/xiaochi.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/xiaojingjiazhang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/xiaojingjiazhang.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/xiezi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/xiezi.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/xinyongkahuankuan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/xinyongkahuankuan.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/xizao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/xizao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/xuefei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/xuefei.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/yan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/yan.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/yaopinfei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/yaopinfei.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/yifu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/yifu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/yinhangshouxufei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/yinhangshouxufei.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/yiwaiposun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/yiwaiposun.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/yiwaisuode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/yiwaisuode.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/youfei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/youfei.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/youxi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/youxi.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/yuegenghuan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/yuegenghuan.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/yundongjianshen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/yundongjianshen.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/zaocan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/zaocan.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/zawu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/zawu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/zhifubao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/zhifubao.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/zhongfan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/zhongfan.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/zhuanzhang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/zhuanzhang.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/zhusu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/zhusu.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/zuojifei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ghbhaha/JzApp/46fd3ba9c769d02d576c35bf66d558d943154217/app/src/main/res/drawable-xhdpi/zuojifei.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_listview_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/card.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/card2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/card3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/widget_card_bottom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/widget_card_top.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/account_all_money_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 18 | 19 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/account_frg_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 12 | 13 | 18 | 19 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/layout/account_item_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 22 | 23 | 24 | 31 | 32 | 33 | 38 | 39 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /app/src/main/res/layout/account_type_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | 16 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_account.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_account_link.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 11 | 12 | 19 | 20 | 21 | 22 | 25 | 26 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_account_transaction.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 12 | 13 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_edit_account_prop.xml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | 17 | 21 | 22 |