├── .gitignore ├── LICENSE.md ├── README.md ├── app ├── .gitignore ├── build.gradle ├── libs │ ├── Java-WebSocket-1.3.1-leancloud.jar │ ├── avoscloud-push-v3.13.8.jar │ ├── avoscloud-sdk-v3.13.8.jar │ ├── com.android.volley-2015.05.28.jar │ ├── fastjson.jar │ ├── gson-2.4.jar │ ├── httpmime-4.2.4.jar │ ├── junit-4.12.jar │ ├── nineoldandroids-library-2.4.0.jar │ ├── okhttp-2.6.0-leancloud.jar │ ├── okio-1.6.0-leancloud.jar │ ├── pinyin4j-2.5.0.jar │ ├── protobuf-java-2.6.1.jar │ └── systembartint-1.0.3.jar ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ └── zq │ │ └── youjoin │ │ ├── ApplicationTest.java │ │ ├── ImageInfoTest.java │ │ ├── NetworkManagerTest.java │ │ └── StringUtilsTest.java │ ├── main │ ├── AndroidManifest.xml │ ├── assets │ │ ├── area.json │ │ └── pintu │ │ │ ├── assets │ │ │ ├── background.png │ │ │ ├── btBackDisabled.png │ │ │ ├── btBackDown.png │ │ │ ├── btBackNormal.png │ │ │ ├── btMoreDown.png │ │ │ ├── btMoreNormal.png │ │ │ ├── btPlayDown.png │ │ │ ├── btPlayNormal.png │ │ │ ├── cell_grid.png │ │ │ ├── copyright.png │ │ │ ├── ingameFrame.png │ │ │ ├── labelCongratulations.png │ │ │ ├── labelMixing.png │ │ │ ├── labelSuper.png │ │ │ ├── levelButtons.png │ │ │ ├── levelLabels.png │ │ │ ├── loader-anim.gif │ │ │ ├── logo.png │ │ │ ├── logoRibbon.png │ │ │ ├── selectHeaderText.png │ │ │ └── separator.png │ │ │ ├── demo.html │ │ │ └── js │ │ │ ├── Three.min.js │ │ │ ├── Tween.js │ │ │ ├── a.js │ │ │ ├── bytmain.js │ │ │ └── store2.js │ ├── java │ │ └── me │ │ │ └── zq │ │ │ └── youjoin │ │ │ ├── DataPresenter.java │ │ │ ├── YouJoinApplication.java │ │ │ ├── activity │ │ │ ├── ActivityManager.java │ │ │ ├── BaseActivity.java │ │ │ ├── ChooseLocationActivity.java │ │ │ ├── EditUserInfoActivity.java │ │ │ ├── MainActivity.java │ │ │ ├── MessageActivity.java │ │ │ ├── PluginActivity.java │ │ │ ├── PluginDownloadActivity.java │ │ │ ├── PublishActivity.java │ │ │ ├── SearchUserActivity.java │ │ │ ├── SignInUpActivity.java │ │ │ ├── TweetDetailActivity.java │ │ │ ├── UserInfoActivity.java │ │ │ └── WelcomeActivity.java │ │ │ ├── adapter │ │ │ ├── CommentsAdapter.java │ │ │ ├── FriendListAdapter.java │ │ │ ├── GridPhotoAdapter.java │ │ │ ├── MessageListAdapter.java │ │ │ ├── SessionListAdapter.java │ │ │ └── TweetsAdapter.java │ │ │ ├── db │ │ │ ├── DatabaseHelper.java │ │ │ └── DatabaseManager.java │ │ │ ├── event │ │ │ ├── FriendUpdateEvent.java │ │ │ ├── ImTypeMessageEvent.java │ │ │ ├── ProfileUpdateEvent.java │ │ │ ├── RefreshLikeEvent.java │ │ │ ├── SendTweetEvent.java │ │ │ ├── SigninSuccessEvent.java │ │ │ └── UserInfoUpdateEvent.java │ │ │ ├── fragment │ │ │ ├── AboutFragment.java │ │ │ ├── AroundFragment.java │ │ │ ├── BaseFragment.java │ │ │ ├── FriendFragment.java │ │ │ ├── MessageFragment.java │ │ │ ├── PluginFragment.java │ │ │ └── TweetsFragment.java │ │ │ ├── imcloud │ │ │ ├── AVImClientManager.java │ │ │ └── MessageHandler.java │ │ │ ├── model │ │ │ ├── CommentInfo.java │ │ │ ├── FriendsInfo.java │ │ │ ├── ImageInfo.java │ │ │ ├── NewPrimsgInfo.java │ │ │ ├── PluginInfo.java │ │ │ ├── PrimsgInfo.java │ │ │ ├── ResultInfo.java │ │ │ ├── TweetInfo.java │ │ │ ├── UpdateUserInfoResult.java │ │ │ └── UserInfo.java │ │ │ ├── network │ │ │ ├── JsonSyntaxError.java │ │ │ ├── NetworkManager.java │ │ │ ├── PostObjectRequest.java │ │ │ ├── PostUploadRequest.java │ │ │ └── ResponseListener.java │ │ │ ├── plugin │ │ │ ├── DownloadProgressListener.java │ │ │ ├── DownloadThread.java │ │ │ ├── FileDownloader.java │ │ │ └── ZipExtractorTask.java │ │ │ ├── sp │ │ │ └── SPHelper.java │ │ │ ├── utils │ │ │ ├── BitmapUtils.java │ │ │ ├── FileUtils.java │ │ │ ├── GlobalUtils.java │ │ │ ├── LogUtils.java │ │ │ ├── Md5Utils.java │ │ │ ├── MimeUtils.java │ │ │ └── StringUtils.java │ │ │ └── widget │ │ │ ├── citypicker │ │ │ ├── CityPicker.java │ │ │ ├── CitycodeUtil.java │ │ │ └── Cityinfo.java │ │ │ ├── enter │ │ │ ├── AutoHeightGridView.java │ │ │ ├── EmojiFragment.java │ │ │ ├── EmojiTranslate.java │ │ │ ├── EmojiconSpan.java │ │ │ ├── EnterEmojiLayout.java │ │ │ ├── EnterLayout.java │ │ │ ├── EnterLayoutAnimSupportContainer.java │ │ │ ├── MyImageGetter.java │ │ │ └── SimpleTextWatcher.java │ │ │ ├── recycler │ │ │ └── RecyclerItemClickListener.java │ │ │ └── sidebar │ │ │ ├── CustomEditText.java │ │ │ └── SideBar.java │ └── res │ │ ├── drawable-hdpi │ │ ├── a00001.png │ │ ├── a00002.png │ │ ├── alien.png │ │ ├── angry.png │ │ ├── beer.png │ │ ├── birthday.png │ │ ├── blush.png │ │ ├── bomb.png │ │ ├── book.png │ │ ├── broken_heart.png │ │ ├── car.png │ │ ├── cat.png │ │ ├── clap.png │ │ ├── clock10.png │ │ ├── cloud.png │ │ ├── coffee.png │ │ ├── cold_sweat.png │ │ ├── confounded.png │ │ ├── cry.png │ │ ├── disappointed.png │ │ ├── disappointed_relieved.png │ │ ├── dizzy_face.png │ │ ├── dog.png │ │ ├── facepunch.png │ │ ├── fearful.png │ │ ├── fist.png │ │ ├── flushed.png │ │ ├── gem.png │ │ ├── ghost.png │ │ ├── gift.png │ │ ├── grin.png │ │ ├── hankey.png │ │ ├── heart.png │ │ ├── heart_eyes.png │ │ ├── house.png │ │ ├── ic_sex_boy.png │ │ ├── ic_sex_girl.png │ │ ├── iphone.png │ │ ├── joy.png │ │ ├── kissing_face.png │ │ ├── kissing_heart.png │ │ ├── lips.png │ │ ├── mag.png │ │ ├── mask.png │ │ ├── microphone.png │ │ ├── money_with_wings.png │ │ ├── moon.png │ │ ├── mouse2.png │ │ ├── muscle.png │ │ ├── my100.png │ │ ├── ok_hand.png │ │ ├── pensive.png │ │ ├── persevere.png │ │ ├── pig.png │ │ ├── point_down.png │ │ ├── point_left.png │ │ ├── point_right.png │ │ ├── point_up_2.png │ │ ├── rage.png │ │ ├── relieved.png │ │ ├── rose.png │ │ ├── santa.png │ │ ├── scream.png │ │ ├── sleepy.png │ │ ├── smile.png │ │ ├── smiley.png │ │ ├── smiling_imp.png │ │ ├── smirk.png │ │ ├── sob.png │ │ ├── soccer.png │ │ ├── sos.png │ │ ├── star2.png │ │ ├── stuck_out_tongue_closed_eyes.png │ │ ├── stuck_out_tongue_winking_eye.png │ │ ├── sunny.png │ │ ├── sweat.png │ │ ├── umbrella.png │ │ ├── unamused.png │ │ ├── v.png │ │ ├── video_game.png │ │ ├── wink.png │ │ ├── zap.png │ │ └── zzz.png │ │ ├── drawable-xxhdpi │ │ ├── bg_avatar.png │ │ ├── checkbox_follow_fans.png │ │ ├── checkbox_follow_follow.png │ │ ├── header.png │ │ ├── ic_account_circle_white_48dp.png │ │ ├── ic_add_white_36dp.png │ │ ├── ic_apps_black_48dp.png │ │ ├── ic_arrow_back_white_24dp.png │ │ ├── ic_assignment_return_black_48dp.png │ │ ├── ic_cancel_black_24dp.png │ │ ├── ic_comment_black.png │ │ ├── ic_emoji_small.png │ │ ├── ic_favorite_black.png │ │ ├── ic_favorite_black_48dp.png │ │ ├── ic_group_black_48dp.png │ │ ├── ic_home_black_48dp.png │ │ ├── ic_insert_emoticon_white_48dp.png │ │ ├── ic_insert_photo_white_48dp.png │ │ ├── ic_keyboard_delete.png │ │ ├── ic_location_on_black_48dp.png │ │ ├── ic_menu_white_48dp.png │ │ ├── ic_more_grey.png │ │ ├── ic_point_normal.png │ │ ├── ic_point_select.png │ │ ├── ic_popup_attachment_rename.png │ │ ├── ic_search_black_24dp.png │ │ ├── ic_send_white_48dp.png │ │ ├── ic_settings_black_48dp.png │ │ ├── ic_textsms_black_48dp.png │ │ ├── login_bg.png │ │ ├── logoshow.png │ │ ├── open.png │ │ ├── pause.png │ │ ├── play.png │ │ ├── pop_emoji.png │ │ ├── pop_keyboard.png │ │ ├── send.png │ │ ├── user_info_header.jpg │ │ ├── welcome_top.png │ │ ├── welcome_viewpager1.png │ │ ├── welcome_viewpager2.png │ │ ├── welcome_viewpager3.png │ │ └── welcome_viewpager4.png │ │ ├── drawable │ │ ├── badge_background.xml │ │ ├── checkbox_follow.xml │ │ ├── checkbox_pop_emoji.xml │ │ ├── checkbox_upvote.xml │ │ ├── contact_select_pinyin_bg.xml │ │ ├── dividershape.xml │ │ ├── input_bg.xml │ │ ├── linearlayoutclick.xml │ │ ├── msg_item_in_bg.xml │ │ ├── msg_item_out_bg.xml │ │ ├── search_input_bg.xml │ │ ├── signin_button_bg.xml │ │ └── signup_button_bg.xml │ │ ├── layout │ │ ├── bottom_input_layout.xml │ │ ├── city_spinner.xml │ │ ├── comment_list_item.xml │ │ ├── common_enter_emoji.xml │ │ ├── common_point.xml │ │ ├── content_message.xml │ │ ├── content_tweet_detail.xml │ │ ├── download_plugin_list_item.xml │ │ ├── dynamic_list_head.xml │ │ ├── emoji_gridview.xml │ │ ├── emoji_keyboard_content.xml │ │ ├── gridview_emotion_emoji.xml │ │ ├── gridview_photo_item.xml │ │ ├── image_publish.xml │ │ ├── msg_item_in.xml │ │ ├── msg_item_out.xml │ │ ├── plugin_download_item.xml │ │ ├── session_list_item.xml │ │ ├── tweets_list_item.xml │ │ ├── userlist_item.xml │ │ ├── userlist_item_content.xml │ │ ├── welcome_tab1.xml │ │ ├── welcome_tab2.xml │ │ ├── welcome_tab3.xml │ │ ├── yj_activity_choose_location.xml │ │ ├── yj_activity_edit_user_info.xml │ │ ├── yj_activity_main.xml │ │ ├── yj_activity_message.xml │ │ ├── yj_activity_plugin.xml │ │ ├── yj_activity_plugin_download.xml │ │ ├── yj_activity_publish.xml │ │ ├── yj_activity_search_user.xml │ │ ├── yj_activity_signin.xml │ │ ├── yj_activity_tweet_detail.xml │ │ ├── yj_activity_user_info.xml │ │ ├── yj_activity_welcome.xml │ │ ├── yj_content_main.xml │ │ ├── yj_fragment_about.xml │ │ ├── yj_fragment_around.xml │ │ ├── yj_fragment_friend.xml │ │ ├── yj_fragment_message.xml │ │ ├── yj_fragment_plugin.xml │ │ ├── yj_fragment_tweets.xml │ │ ├── yj_item_publish_photo.xml │ │ └── yj_navigation_header.xml │ │ ├── menu │ │ └── navigation_menu.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-v21 │ │ └── styles.xml │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── test │ └── java │ └── me │ └── zq │ └── youjoin │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── material-drawer-library ├── .gitignore ├── build.gradle ├── gradle-mvn-push.gradle ├── gradle.properties ├── proguard-rules.txt └── src │ └── main │ ├── AndroidManifest.xml │ ├── assets │ └── fonts │ │ └── materialdrawerfont.ttf │ ├── java │ └── com │ │ └── mikepenz │ │ └── materialdrawer │ │ ├── AccountHeader.java │ │ ├── AccountHeaderBuilder.java │ │ ├── Drawer.java │ │ ├── DrawerBuilder.java │ │ ├── DrawerUtils.java │ │ ├── MiniDrawer.java │ │ ├── adapter │ │ ├── BaseDrawerAdapter.java │ │ └── DrawerAdapter.java │ │ ├── holder │ │ ├── BadgeStyle.java │ │ ├── ColorHolder.java │ │ ├── DimenHolder.java │ │ ├── ImageHolder.java │ │ └── StringHolder.java │ │ ├── icons │ │ └── MaterialDrawerFont.java │ │ ├── interfaces │ │ ├── ICrossfader.java │ │ └── OnCheckedChangeListener.java │ │ ├── model │ │ ├── AbstractDrawerItem.java │ │ ├── BaseDrawerItem.java │ │ ├── BasePrimaryDrawerItem.java │ │ ├── BaseSecondaryDrawerItem.java │ │ ├── ContainerDrawerItem.java │ │ ├── DividerDrawerItem.java │ │ ├── MiniDrawerItem.java │ │ ├── MiniProfileDrawerItem.java │ │ ├── PrimaryDrawerItem.java │ │ ├── ProfileDrawerItem.java │ │ ├── ProfileSettingDrawerItem.java │ │ ├── SecondaryDrawerItem.java │ │ ├── SecondarySwitchDrawerItem.java │ │ ├── SecondaryToggleDrawerItem.java │ │ ├── SectionDrawerItem.java │ │ ├── SwitchDrawerItem.java │ │ ├── ToggleDrawerItem.java │ │ ├── interfaces │ │ │ ├── Badgeable.java │ │ │ ├── ColorfulBadgeable.java │ │ │ ├── IDrawerItem.java │ │ │ ├── IProfile.java │ │ │ ├── Iconable.java │ │ │ ├── Identifyable.java │ │ │ ├── Nameable.java │ │ │ ├── OnPostBindViewListener.java │ │ │ ├── Selectable.java │ │ │ ├── Tagable.java │ │ │ └── Typefaceable.java │ │ └── utils │ │ │ ├── BadgeDrawableBuilder.java │ │ │ └── ViewHolderFactory.java │ │ ├── util │ │ ├── AbstractDrawerImageLoader.java │ │ ├── DrawerImageLoader.java │ │ ├── DrawerItemViewHelper.java │ │ ├── DrawerUIUtils.java │ │ ├── IdDistributor.java │ │ ├── KeyboardUtil.java │ │ ├── PressedEffectStateListDrawable.java │ │ └── RecyclerViewCacheUtil.java │ │ └── view │ │ └── BezelImageView.java │ └── res │ ├── drawable │ ├── material_drawer_badge.xml │ ├── material_drawer_circle_mask.xml │ ├── material_drawer_shadow_bottom.xml │ ├── material_drawer_shadow_left.9.png │ ├── material_drawer_shadow_right.9.png │ └── material_drawer_shadow_top.xml │ ├── layout │ ├── material_drawer.xml │ ├── material_drawer_compact_header.xml │ ├── material_drawer_header.xml │ ├── material_drawer_item_container.xml │ ├── material_drawer_item_divider.xml │ ├── material_drawer_item_mini.xml │ ├── material_drawer_item_mini_profile.xml │ ├── material_drawer_item_primary.xml │ ├── material_drawer_item_profile.xml │ ├── material_drawer_item_profile_setting.xml │ ├── material_drawer_item_secondary.xml │ ├── material_drawer_item_secondary_switch.xml │ ├── material_drawer_item_secondary_toggle.xml │ ├── material_drawer_item_section.xml │ ├── material_drawer_item_switch.xml │ ├── material_drawer_item_toggle.xml │ ├── material_drawer_recycler_view.xml │ └── material_drawer_slider.xml │ ├── values-sw600dp │ └── dimens.xml │ └── values │ ├── attrs.xml │ ├── colors.xml │ ├── dimens.xml │ ├── ids.xml │ ├── library_materialdrawer_strings.xml │ ├── strings.xml │ └── styles.xml ├── multi-image-selector ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── me │ │ └── nereo │ │ └── multi_image_selector │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── me │ │ └── nereo │ │ └── multi_image_selector │ │ ├── MultiImageSelectorActivity.java │ │ ├── MultiImageSelectorFragment.java │ │ ├── PreviewPicturesActivity.java │ │ ├── adapter │ │ ├── FolderAdapter.java │ │ └── ImageGridAdapter.java │ │ ├── bean │ │ ├── Folder.java │ │ └── Image.java │ │ ├── utils │ │ ├── FileUtils.java │ │ └── TimeUtils.java │ │ └── view │ │ ├── GestureImageView.java │ │ └── SuperViewPager.java │ └── res │ ├── color │ ├── default_text_color.xml │ └── folder_text_color.xml │ ├── drawable-xhdpi │ ├── btn_back.png │ ├── default_check_s.png │ ├── ic_menu_back.png │ └── selector_indicator.png │ ├── drawable-xxhdpi │ ├── asv.png │ ├── asy.png │ ├── btn_selected.png │ ├── btn_unselected.png │ ├── default_check.png │ ├── default_error.png │ ├── icon_photo_choice.png │ └── text_indicator.png │ ├── drawable │ └── action_btn.xml │ ├── layout-v14 │ └── fragment_multi_image.xml │ ├── layout │ ├── activity_default.xml │ ├── activity_preview_pictures.xml │ ├── cmp_customer_actionbar.xml │ ├── fragment_multi_image.xml │ ├── item_image.xml │ ├── list_item_camera.xml │ ├── list_item_folder.xml │ └── list_item_image.xml │ ├── menu │ └── menu_preview_pictures.xml │ ├── values-sw1080dp │ └── dimens.xml │ ├── values-sw360dp │ └── dimens.xml │ ├── values-sw480dp │ └── dimens.xml │ ├── values-sw720dp │ └── dimens.xml │ ├── values-w820dp │ └── dimens.xml │ ├── values-zh │ └── strings.xml │ └── values │ ├── dimens.xml │ └── strings.xml └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | # built application files 2 | *.apk 3 | *.ap_ 4 | 5 | # files for the dex VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # generated files 12 | bin/ 13 | gen/ 14 | 15 | # Local configuration file (sdk path, etc) 16 | local.properties 17 | 18 | # Eclipse project files 19 | .classpath 20 | .project 21 | 22 | # Proguard folder generated by Eclipse 23 | proguard/ 24 | 25 | # Intellij project files 26 | *.iml 27 | *.ipr 28 | *.iws 29 | .idea/ 30 | 31 | 32 | .gradle 33 | .DS_Store 34 | /build 35 | /captures 36 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 YouJoin Studio 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 23 5 | buildToolsVersion '23.0.3' 6 | 7 | defaultConfig { 8 | applicationId "me.zq.youjoin" 9 | minSdkVersion 17 10 | targetSdkVersion 23 11 | versionCode 1 12 | versionName "1.0" 13 | } 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(include: ['*.jar'], dir: 'libs') 24 | androidTestCompile files('libs/junit-4.12.jar') 25 | compile files('libs/com.android.volley-2015.05.28.jar') 26 | compile files('libs/gson-2.4.jar') 27 | compile project(':multi-image-selector') 28 | compile files('libs/pinyin4j-2.5.0.jar') 29 | compile files('libs/nineoldandroids-library-2.4.0.jar') 30 | compile files('libs/systembartint-1.0.3.jar') 31 | compile project(':material-drawer-library') 32 | compile files('libs/avoscloud-push-v3.13.8.jar') 33 | compile files('libs/avoscloud-sdk-v3.13.8.jar') 34 | compile files('libs/fastjson.jar') 35 | compile files('libs/httpmime-4.2.4.jar') 36 | compile files('libs/Java-WebSocket-1.3.1-leancloud.jar') 37 | compile files('libs/protobuf-java-2.6.1.jar') 38 | compile files('libs/okhttp-2.6.0-leancloud.jar') 39 | compile files('libs/okio-1.6.0-leancloud.jar') 40 | compile 'com.android.support:appcompat-v7:23.4.0' 41 | compile 'com.android.support:design:23.4.0' 42 | compile 'com.android.support:cardview-v7:23.4.0' 43 | compile 'com.android.support:recyclerview-v7:23.4.0' 44 | compile 'com.android.support:support-v4:23.4.0' 45 | compile 'com.squareup.picasso:picasso:2.5.2' 46 | compile 'se.emilsjolander:stickylistheaders:2.7.0' 47 | compile 'de.hdodenhof:circleimageview:1.3.0' 48 | compile 'com.borax12.materialdaterangepicker:library:1.2' 49 | compile 'org.greenrobot:eventbus:3.0.0' 50 | compile 'com.jakewharton:butterknife:7.0.1' 51 | compile 'com.github.ybq:Android-SpinKit:1.0.4' 52 | debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4-beta2' 53 | } 54 | -------------------------------------------------------------------------------- /app/libs/Java-WebSocket-1.3.1-leancloud.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/libs/Java-WebSocket-1.3.1-leancloud.jar -------------------------------------------------------------------------------- /app/libs/avoscloud-push-v3.13.8.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/libs/avoscloud-push-v3.13.8.jar -------------------------------------------------------------------------------- /app/libs/avoscloud-sdk-v3.13.8.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/libs/avoscloud-sdk-v3.13.8.jar -------------------------------------------------------------------------------- /app/libs/com.android.volley-2015.05.28.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/libs/com.android.volley-2015.05.28.jar -------------------------------------------------------------------------------- /app/libs/fastjson.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/libs/fastjson.jar -------------------------------------------------------------------------------- /app/libs/gson-2.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/libs/gson-2.4.jar -------------------------------------------------------------------------------- /app/libs/httpmime-4.2.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/libs/httpmime-4.2.4.jar -------------------------------------------------------------------------------- /app/libs/junit-4.12.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/libs/junit-4.12.jar -------------------------------------------------------------------------------- /app/libs/nineoldandroids-library-2.4.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/libs/nineoldandroids-library-2.4.0.jar -------------------------------------------------------------------------------- /app/libs/okhttp-2.6.0-leancloud.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/libs/okhttp-2.6.0-leancloud.jar -------------------------------------------------------------------------------- /app/libs/okio-1.6.0-leancloud.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/libs/okio-1.6.0-leancloud.jar -------------------------------------------------------------------------------- /app/libs/pinyin4j-2.5.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/libs/pinyin4j-2.5.0.jar -------------------------------------------------------------------------------- /app/libs/protobuf-java-2.6.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/libs/protobuf-java-2.6.1.jar -------------------------------------------------------------------------------- /app/libs/systembartint-1.0.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/libs/systembartint-1.0.3.jar -------------------------------------------------------------------------------- /app/src/androidTest/java/me/zq/youjoin/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package me.zq.youjoin; 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/androidTest/java/me/zq/youjoin/ImageInfoTest.java: -------------------------------------------------------------------------------- 1 | package me.zq.youjoin; 2 | 3 | import android.test.AndroidTestCase; 4 | 5 | import me.zq.youjoin.model.ImageInfo; 6 | 7 | /** 8 | * YouJoin-Android 9 | * Created by ZQ on 2015/11/19. 10 | */ 11 | public class ImageInfoTest extends AndroidTestCase { 12 | public void testConstructor(){ 13 | String path = "/storage/emulated/0/Images/123.jpg"; 14 | ImageInfo info = new ImageInfo(path); 15 | assertEquals(info.getFileName(), "123.jpg"); 16 | assertEquals(info.getImagePath(), path); 17 | assertEquals(info.getMime(), "image/jpeg"); 18 | 19 | path = "/storage/emulated/0/Images/234.png"; 20 | info = new ImageInfo(path); 21 | assertEquals(info.getFileName(), "234.png"); 22 | assertEquals(info.getImagePath(), path); 23 | assertEquals(info.getMime(), "image/png"); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/androidTest/java/me/zq/youjoin/StringUtilsTest.java: -------------------------------------------------------------------------------- 1 | package me.zq.youjoin; 2 | 3 | import android.test.AndroidTestCase; 4 | 5 | import java.util.List; 6 | 7 | import me.zq.youjoin.utils.StringUtils; 8 | 9 | /** 10 | * YouJoin-Android 11 | * Created by ZQ on 2015/11/19. 12 | */ 13 | public class StringUtilsTest extends AndroidTestCase { 14 | 15 | /** 16 | * 测试double转String 17 | */ 18 | public void testDouble2String(){ 19 | double test = 113.25666; 20 | String result = StringUtils.double2String(test, 3); 21 | assertEquals(result, "113.256"); 22 | } 23 | 24 | /** 25 | * 测试Json字符串修复 26 | */ 27 | public void testFixJsonString(){ 28 | String jsonString = StringUtils.FixJsonString("123{ \"\":\"\" }"); 29 | assertEquals(jsonString, "{ \"\":\"\" }"); 30 | jsonString = StringUtils.FixJsonString("{ \"\":\"\" }123"); 31 | assertEquals(jsonString, "{ \"\":\"\" }"); 32 | jsonString = StringUtils.FixJsonString("123{ \"\":\"\" }456"); 33 | assertEquals(jsonString, "{ \"\":\"\" }"); 34 | } 35 | 36 | 37 | /** 38 | * 测试参数类型判断 39 | */ 40 | public void testGetParamType(){ 41 | assertEquals(StringUtils.getParamType("11111"), "1"); 42 | assertEquals(StringUtils.getParamType("a123"), "2"); 43 | assertEquals(StringUtils.getParamType("zzq@test.com"), "3"); 44 | assertEquals(StringUtils.getParamType("1a23"), "invalid"); 45 | } 46 | 47 | public void testGetPicUrlList(){ 48 | String pics = "http://192.168.0.103:8088/youjoin-server/upload/16/20151207053324_lufei.jpg;http://192.168.0.103:8088/youjoin-server/upload/16/20151207053324_lufei.jpg;"; 49 | List picList = StringUtils.getPicUrlList(pics); 50 | assertEquals(picList.size(), 2); 51 | assertEquals(picList.get(0), "http://192.168.0.103:8088/youjoin-server/upload/16/20151207053324_lufei.jpg"); 52 | assertEquals(picList.get(1), "http://192.168.0.103:8088/youjoin-server/upload/16/20151207053324_lufei.jpg"); 53 | 54 | pics = "http://192.168.0.103:8088/youjoin-server/upload/16/20151207053324_lufei.jpg"; 55 | picList = StringUtils.getPicUrlList(pics); 56 | assertEquals(picList.size(), 1); 57 | assertEquals(picList.get(0), "http://192.168.0.103:8088/youjoin-server/upload/16/20151207053324_lufei.jpg"); 58 | 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/background.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/btBackDisabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/btBackDisabled.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/btBackDown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/btBackDown.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/btBackNormal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/btBackNormal.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/btMoreDown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/btMoreDown.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/btMoreNormal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/btMoreNormal.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/btPlayDown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/btPlayDown.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/btPlayNormal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/btPlayNormal.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/cell_grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/cell_grid.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/copyright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/copyright.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/ingameFrame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/ingameFrame.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/labelCongratulations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/labelCongratulations.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/labelMixing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/labelMixing.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/labelSuper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/labelSuper.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/levelButtons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/levelButtons.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/levelLabels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/levelLabels.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/loader-anim.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/loader-anim.gif -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/logo.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/logoRibbon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/logoRibbon.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/selectHeaderText.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/selectHeaderText.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/assets/separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreedomZZQ/YouJoin-Android/8fa6494a421f5ebd8f6659d6de04ffaf32c9d3e4/app/src/main/assets/pintu/assets/separator.png -------------------------------------------------------------------------------- /app/src/main/assets/pintu/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 3D拼图 6 | 7 | 8 | 9 | 10 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 58 |
59 |

来源:源码之家

60 |
61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /app/src/main/assets/pintu/js/a.js: -------------------------------------------------------------------------------- 1 | function a_init() { 2 | updateShare(0); 3 | } 4 | 5 | function goHome() { 6 | window.location.href ='http://game.024qianzheng.cn'; 7 | } 8 | 9 | function a_submitScore(score) { 10 | updateShareScore(score); 11 | setTimeout( function() { show_share(); }, 1500 ) 12 | } 13 | 14 | function updateShare(bestScore) { 15 | imgUrl = 'http://game.024qianzheng.cn/3dcube/3dcubeicon.png'; 16 | lineLink = 'http://game.024qianzheng.cn/3dcube/3dcube.htm'; 17 | descContent = "这3D转啊转到我头晕!"; 18 | updateShareScore(bestScore); 19 | appid = ''; 20 | } 21 | 22 | function updateShareScore(bestScore) { 23 | if(bestScore > 0) { 24 | shareTitle = "我在《3D拼图》过了第" + bestScore + "关,这样子拼图好难啊!"; 25 | } 26 | else{ 27 | shareTitle = "另类拼图游戏《3D拼图》好难啊!"; 28 | } 29 | } -------------------------------------------------------------------------------- /app/src/main/assets/pintu/js/store2.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2010-2012 Marcus Westin */ 2 | (function(){function g(){try{return d in b&&b[d]}catch(a){return!1}}var a={},b=window,c=b.document,d="localStorage",e="__storejs__",f;a.disabled=!1,a.set=function(a,b){},a.get=function(a){},a.remove=function(a){},a.clear=function(){},a.transact=function(b,c,d){var e=a.get(b);d==null&&(d=c,c=null),typeof e=="undefined"&&(e=c||{}),d(e),a.set(b,e)},a.getAll=function(){},a.serialize=function(a){return JSON.stringify(a)},a.deserialize=function(a){if(typeof a!="string")return undefined;try{return JSON.parse(a)}catch(b){return a||undefined}};if(g())f=b[d],a.set=function(b,c){return c===undefined?a.remove(b):(f.setItem(b,a.serialize(c)),c)},a.get=function(b){return a.deserialize(f.getItem(b))},a.remove=function(a){f.removeItem(a)},a.clear=function(){f.clear()},a.getAll=function(){var b={};for(var c=0;cdocument.w=window