├── CNBlog ├── Resources │ ├── icon.png │ ├── welcome.png │ ├── drawable │ │ ├── dog.png │ │ ├── msg.png │ │ ├── frame.png │ │ ├── girl.png │ │ ├── good.png │ │ ├── home.png │ │ ├── icon.png │ │ ├── menu.png │ │ ├── share.png │ │ ├── talk.png │ │ ├── watch.png │ │ ├── write.png │ │ ├── article.png │ │ ├── category.png │ │ ├── collect.png │ │ ├── collect3.png │ │ ├── loading.png │ │ ├── setting.png │ │ ├── welcome.png │ │ ├── collect_v1.png │ │ ├── collected.png │ │ ├── subscribe.png │ │ ├── write_comment.png │ │ ├── search_blogger_bg.png │ │ ├── bg_edittext_normal.xml │ │ ├── bg_edittext_focused.xml │ │ ├── bg_edittext.xml │ │ ├── footbar_comments_selector.xml │ │ ├── titlebar_more_selector.xml │ │ ├── titlebar_back_selector.xml │ │ ├── footbar_share_selector.xml │ │ ├── submit_selector.xml │ │ ├── titlebar_search_selector.xml │ │ ├── footbar_collect_selector.xml │ │ ├── titlebar_home_selector.xml │ │ ├── titlebar_menu_selector.xml │ │ ├── footbar_writecomments_selector.xml │ │ ├── setting_item_style.xml │ │ └── button_style.xml │ ├── mipmap-hdpi │ │ ├── more.png │ │ ├── more_on.png │ │ ├── search.png │ │ ├── search_on.png │ │ ├── title_bar_menu.png │ │ └── title_bar_menu_on.png │ ├── mipmap-mdpi │ │ ├── about.png │ │ ├── arrow.png │ │ ├── back.png │ │ ├── login.png │ │ ├── msg.png │ │ ├── back_on.png │ │ ├── submit.png │ │ ├── submit_on.png │ │ ├── blogger_home.png │ │ └── blogger_home_on.png │ ├── mipmap-xhdpi │ │ ├── Icon.png │ │ ├── dog.png │ │ ├── loading.png │ │ ├── load_failed.png │ │ ├── refreshing.png │ │ ├── load_succeed.png │ │ ├── pull_icon_big.png │ │ ├── refresh_failed.png │ │ ├── pullup_icon_big.png │ │ └── refresh_succeed.png │ ├── values │ │ ├── Attrs.xml │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── Strings.xml │ │ ├── styles.xml │ │ ├── ssdk_instapaper_strings.xml │ │ └── ssdk_strings.xml │ ├── animator │ │ ├── popshow_anim.xml │ │ ├── rotating.xml │ │ ├── pophidden_anim.xml │ │ ├── reverse_anim.xml │ │ └── loading_animation.xml │ ├── layout │ │ ├── article_fragment_page.axml │ │ ├── tab_item.axml │ │ ├── loading_dialog.axml │ │ ├── error_page.axml │ │ ├── my_posts.axml │ │ ├── welcome.axml │ │ ├── blogger_article_list_item.axml │ │ ├── page_head.axml │ │ ├── comments_list_item.axml │ │ ├── blogger_search.axml │ │ ├── write_comments.axml │ │ ├── blogger_search_item.axml │ │ ├── refresh_head.axml │ │ ├── load_more.axml │ │ ├── article_comments.axml │ │ ├── article_detail.axml │ │ ├── main.axml │ │ ├── kbarticle_list_item.axml │ │ ├── blogger_homepage.axml │ │ ├── login.axml │ │ ├── article_list_item.axml │ │ └── new_list_item.axml │ └── AboutResources.txt ├── libs │ ├── ShareSDKBinding.dll │ ├── Sino.Droid.AppMsg.dll │ ├── SlidingMenuSharp.dll │ ├── OneKeyShareBinding.dll │ ├── Ultra-Pull-to-Refresh.dll │ ├── UniversalImageLoader.dll │ ├── Microsoft.Threading.Tasks.dll │ ├── System.Net.Http.Extensions.dll │ ├── System.Net.Http.Primitives.dll │ └── Microsoft.Threading.Tasks.Extensions.dll ├── PullableView │ ├── OnRefreshListener.cs │ ├── Pullable.cs │ ├── PullableWebView.cs │ ├── PullableRecyclerView.cs │ └── PullableListView.cs ├── CNBlog.csproj.user ├── CNBlog.droid.csproj.user ├── Utils │ ├── UITimerTask.cs │ ├── UIScheduling.cs │ ├── BaseService.cs │ ├── BlogApplication.cs │ ├── CommonAdapter.cs │ ├── ViewHolder.cs │ └── RoundImageView.cs ├── Assets │ └── AboutAssets.txt ├── Activities │ ├── BaseFragment.cs │ ├── BaseActivity.cs │ ├── WelComeActivity.cs │ ├── LoginActivity.cs │ ├── BookMarksActivity.cs │ ├── MyPostsActivity.cs │ ├── KbArticlesPageFragment.cs │ ├── KbArticleDetailActivity.cs │ ├── BloggerSearchActivity.cs │ ├── MainActivity.cs │ ├── BloggerHomePageActivity.cs │ ├── NewsPageFragment.cs │ └── IndexPageFragment.cs ├── Properties │ ├── AssemblyInfo.cs │ └── AndroidManifest.xml ├── packages.config └── SimpleFragmentPagerAdapter.cs ├── README.md ├── packages ├── Newtonsoft.Json.9.0.1 │ ├── Newtonsoft.Json.9.0.1.nupkg │ ├── lib │ │ ├── net20 │ │ │ └── Newtonsoft.Json.dll │ │ ├── net35 │ │ │ └── Newtonsoft.Json.dll │ │ ├── net40 │ │ │ └── Newtonsoft.Json.dll │ │ ├── net45 │ │ │ └── Newtonsoft.Json.dll │ │ ├── netstandard1.0 │ │ │ └── Newtonsoft.Json.dll │ │ ├── portable-net45+wp80+win8+wpa81 │ │ │ └── Newtonsoft.Json.dll │ │ └── portable-net40+sl5+wp80+win8+wpa81 │ │ │ └── Newtonsoft.Json.dll │ └── tools │ │ └── install.ps1 ├── NineOldAndroids.2.4.0 │ ├── NineOldAndroids.2.4.0.nupkg │ └── lib │ │ └── MonoAndroid23 │ │ └── NineOldAndroids.dll ├── repositories.config ├── Xamarin.Android.Support.v4.24.2.1 │ ├── Xamarin.Android.Support.v4.24.2.1.nupkg │ └── lib │ │ └── MonoAndroid70 │ │ └── Xamarin.Android.Support.v4.dll ├── Xamarin.Android.Support.Compat.24.2.1 │ ├── Xamarin.Android.Support.Compat.24.2.1.nupkg │ └── lib │ │ └── MonoAndroid70 │ │ └── Xamarin.Android.Support.Compat.dll ├── Xamarin.Android.Support.Design.24.2.1 │ ├── Xamarin.Android.Support.Design.24.2.1.nupkg │ └── lib │ │ └── MonoAndroid70 │ │ └── Xamarin.Android.Support.Design.dll ├── Xamarin.Android.Support.Core.UI.24.2.1 │ ├── Xamarin.Android.Support.Core.UI.24.2.1.nupkg │ └── lib │ │ └── MonoAndroid70 │ │ └── Xamarin.Android.Support.Core.UI.dll ├── Xamarin.Android.Support.Fragment.24.2.1 │ ├── Xamarin.Android.Support.Fragment.24.2.1.nupkg │ └── lib │ │ └── MonoAndroid70 │ │ └── Xamarin.Android.Support.Fragment.dll ├── Xamarin.Android.Support.Core.Utils.24.2.1 │ ├── Xamarin.Android.Support.Core.Utils.24.2.1.nupkg │ └── lib │ │ └── MonoAndroid70 │ │ └── Xamarin.Android.Support.Core.Utils.dll ├── Xamarin.Android.Support.Media.Compat.24.2.1 │ ├── Xamarin.Android.Support.Media.Compat.24.2.1.nupkg │ └── lib │ │ └── MonoAndroid70 │ │ └── Xamarin.Android.Support.Media.Compat.dll ├── Xamarin.Android.Support.v7.AppCompat.24.2.1 │ ├── Xamarin.Android.Support.v7.AppCompat.24.2.1.nupkg │ └── lib │ │ └── MonoAndroid70 │ │ └── Xamarin.Android.Support.v7.AppCompat.dll ├── Xamarin.Android.Support.Vector.Drawable.24.2.1 │ ├── Xamarin.Android.Support.Vector.Drawable.24.2.1.nupkg │ ├── build │ │ ├── Xamarin.Android.Support.Tasks.VectorDrawable.dll │ │ └── Xamarin.Android.Support.Vector.Drawable.targets │ └── lib │ │ └── MonoAndroid70 │ │ └── Xamarin.Android.Support.Vector.Drawable.dll ├── Xamarin.Android.Support.v7.RecyclerView.24.2.1 │ ├── Xamarin.Android.Support.v7.RecyclerView.24.2.1.nupkg │ └── lib │ │ └── MonoAndroid70 │ │ └── Xamarin.Android.Support.v7.RecyclerView.dll └── Xamarin.Android.Support.Animated.Vector.Drawable.24.2.1 │ ├── Xamarin.Android.Support.Animated.Vector.Drawable.24.2.1.nupkg │ └── lib │ └── MonoAndroid70 │ └── Xamarin.Android.Support.Animated.Vector.Drawable.dll ├── CNBlogAPI ├── packages.config ├── CNBlogAPI.csproj.user ├── Model │ ├── IdentityAccessToken.cs │ ├── AnonymousAccessToken.cs │ ├── KbArticle.cs │ ├── BookMark.cs │ ├── ArticleComment.cs │ ├── NewInfo.cs │ ├── AccessToken.cs │ ├── Article.cs │ ├── UserInfo.cs │ ├── NewsComment.cs │ └── Blogger.cs ├── ModelHelper │ ├── UrlNoCacheHelper.cs │ └── BloggerHelper.cs ├── Properties │ └── AssemblyInfo.cs ├── OAuthClient.cs ├── Service │ ├── UserService.cs │ ├── NewsService.cs │ └── BookMarkService.cs └── CNBlogAPI.csproj ├── CNBlog.sln └── CNBlog.userprefs /CNBlog/Resources/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/icon.png -------------------------------------------------------------------------------- /CNBlog/Resources/welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/welcome.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/dog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/dog.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/msg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/msg.png -------------------------------------------------------------------------------- /CNBlog/libs/ShareSDKBinding.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/libs/ShareSDKBinding.dll -------------------------------------------------------------------------------- /CNBlog/libs/Sino.Droid.AppMsg.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/libs/Sino.Droid.AppMsg.dll -------------------------------------------------------------------------------- /CNBlog/libs/SlidingMenuSharp.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/libs/SlidingMenuSharp.dll -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Xamarin-Android-CNBlog 2 | Xamarin-Android 实现博客园安卓客户端。 3 | 博客介绍地址:http://www.cnblogs.com/CallMeUncle/p/6186006.html 4 | -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/frame.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/girl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/girl.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/good.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/good.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/home.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/icon.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/menu.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/share.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/talk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/talk.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/watch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/watch.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/write.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/write.png -------------------------------------------------------------------------------- /CNBlog/libs/OneKeyShareBinding.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/libs/OneKeyShareBinding.dll -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/article.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/article.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/category.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/category.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/collect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/collect.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/collect3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/collect3.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/loading.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/setting.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/welcome.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-hdpi/more.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-hdpi/more.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-mdpi/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-mdpi/about.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-mdpi/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-mdpi/arrow.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-mdpi/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-mdpi/back.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-mdpi/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-mdpi/login.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-mdpi/msg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-mdpi/msg.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-xhdpi/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-xhdpi/Icon.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-xhdpi/dog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-xhdpi/dog.png -------------------------------------------------------------------------------- /CNBlog/libs/Ultra-Pull-to-Refresh.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/libs/Ultra-Pull-to-Refresh.dll -------------------------------------------------------------------------------- /CNBlog/libs/UniversalImageLoader.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/libs/UniversalImageLoader.dll -------------------------------------------------------------------------------- /CNBlog/PullableView/OnRefreshListener.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/PullableView/OnRefreshListener.cs -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/collect_v1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/collect_v1.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/collected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/collected.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/subscribe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/subscribe.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-hdpi/more_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-hdpi/more_on.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-hdpi/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-hdpi/search.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-mdpi/back_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-mdpi/back_on.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-mdpi/submit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-mdpi/submit.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/write_comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/write_comment.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-hdpi/search_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-hdpi/search_on.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-mdpi/submit_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-mdpi/submit_on.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-xhdpi/loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-xhdpi/loading.png -------------------------------------------------------------------------------- /CNBlog/libs/Microsoft.Threading.Tasks.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/libs/Microsoft.Threading.Tasks.dll -------------------------------------------------------------------------------- /CNBlog/libs/System.Net.Http.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/libs/System.Net.Http.Extensions.dll -------------------------------------------------------------------------------- /CNBlog/libs/System.Net.Http.Primitives.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/libs/System.Net.Http.Primitives.dll -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-mdpi/blogger_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-mdpi/blogger_home.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-xhdpi/load_failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-xhdpi/load_failed.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-xhdpi/refreshing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-xhdpi/refreshing.png -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/search_blogger_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/drawable/search_blogger_bg.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-hdpi/title_bar_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-hdpi/title_bar_menu.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-mdpi/blogger_home_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-mdpi/blogger_home_on.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-xhdpi/load_succeed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-xhdpi/load_succeed.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-xhdpi/pull_icon_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-xhdpi/pull_icon_big.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-xhdpi/refresh_failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-xhdpi/refresh_failed.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-hdpi/title_bar_menu_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-hdpi/title_bar_menu_on.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-xhdpi/pullup_icon_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-xhdpi/pullup_icon_big.png -------------------------------------------------------------------------------- /CNBlog/Resources/mipmap-xhdpi/refresh_succeed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/Resources/mipmap-xhdpi/refresh_succeed.png -------------------------------------------------------------------------------- /CNBlog/libs/Microsoft.Threading.Tasks.Extensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/CNBlog/libs/Microsoft.Threading.Tasks.Extensions.dll -------------------------------------------------------------------------------- /packages/Newtonsoft.Json.9.0.1/Newtonsoft.Json.9.0.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Newtonsoft.Json.9.0.1/Newtonsoft.Json.9.0.1.nupkg -------------------------------------------------------------------------------- /packages/NineOldAndroids.2.4.0/NineOldAndroids.2.4.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/NineOldAndroids.2.4.0/NineOldAndroids.2.4.0.nupkg -------------------------------------------------------------------------------- /packages/Newtonsoft.Json.9.0.1/lib/net20/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Newtonsoft.Json.9.0.1/lib/net20/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /packages/Newtonsoft.Json.9.0.1/lib/net35/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Newtonsoft.Json.9.0.1/lib/net35/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /packages/Newtonsoft.Json.9.0.1/lib/net40/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Newtonsoft.Json.9.0.1/lib/net40/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /packages/Newtonsoft.Json.9.0.1/lib/net45/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Newtonsoft.Json.9.0.1/lib/net45/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /CNBlogAPI/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /packages/NineOldAndroids.2.4.0/lib/MonoAndroid23/NineOldAndroids.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/NineOldAndroids.2.4.0/lib/MonoAndroid23/NineOldAndroids.dll -------------------------------------------------------------------------------- /packages/Newtonsoft.Json.9.0.1/lib/netstandard1.0/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Newtonsoft.Json.9.0.1/lib/netstandard1.0/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /packages/repositories.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.v4.24.2.1/Xamarin.Android.Support.v4.24.2.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.v4.24.2.1/Xamarin.Android.Support.v4.24.2.1.nupkg -------------------------------------------------------------------------------- /packages/Newtonsoft.Json.9.0.1/lib/portable-net45+wp80+win8+wpa81/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Newtonsoft.Json.9.0.1/lib/portable-net45+wp80+win8+wpa81/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /packages/Newtonsoft.Json.9.0.1/lib/portable-net40+sl5+wp80+win8+wpa81/Newtonsoft.Json.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Newtonsoft.Json.9.0.1/lib/portable-net40+sl5+wp80+win8+wpa81/Newtonsoft.Json.dll -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Compat.24.2.1/Xamarin.Android.Support.Compat.24.2.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Compat.24.2.1/Xamarin.Android.Support.Compat.24.2.1.nupkg -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Design.24.2.1/Xamarin.Android.Support.Design.24.2.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Design.24.2.1/Xamarin.Android.Support.Design.24.2.1.nupkg -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Core.UI.24.2.1/Xamarin.Android.Support.Core.UI.24.2.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Core.UI.24.2.1/Xamarin.Android.Support.Core.UI.24.2.1.nupkg -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.v4.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.v4.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.v4.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.v4.dll -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Fragment.24.2.1/Xamarin.Android.Support.Fragment.24.2.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Fragment.24.2.1/Xamarin.Android.Support.Fragment.24.2.1.nupkg -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Core.Utils.24.2.1/Xamarin.Android.Support.Core.Utils.24.2.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Core.Utils.24.2.1/Xamarin.Android.Support.Core.Utils.24.2.1.nupkg -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Compat.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.Compat.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Compat.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.Compat.dll -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Design.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.Design.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Design.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.Design.dll -------------------------------------------------------------------------------- /CNBlogAPI/CNBlogAPI.csproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ShowAllFiles 5 | 6 | -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Core.UI.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.Core.UI.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Core.UI.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.Core.UI.dll -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Fragment.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.Fragment.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Fragment.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.Fragment.dll -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Media.Compat.24.2.1/Xamarin.Android.Support.Media.Compat.24.2.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Media.Compat.24.2.1/Xamarin.Android.Support.Media.Compat.24.2.1.nupkg -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.v7.AppCompat.24.2.1/Xamarin.Android.Support.v7.AppCompat.24.2.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.v7.AppCompat.24.2.1/Xamarin.Android.Support.v7.AppCompat.24.2.1.nupkg -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Core.Utils.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.Core.Utils.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Core.Utils.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.Core.Utils.dll -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Vector.Drawable.24.2.1/Xamarin.Android.Support.Vector.Drawable.24.2.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Vector.Drawable.24.2.1/Xamarin.Android.Support.Vector.Drawable.24.2.1.nupkg -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.v7.RecyclerView.24.2.1/Xamarin.Android.Support.v7.RecyclerView.24.2.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.v7.RecyclerView.24.2.1/Xamarin.Android.Support.v7.RecyclerView.24.2.1.nupkg -------------------------------------------------------------------------------- /CNBlogAPI/Model/IdentityAccessToken.cs: -------------------------------------------------------------------------------- 1 | namespace CNBlogAPI.Model 2 | { 3 | /// 4 | /// 已登录用户身份标识 5 | /// 6 | public class IdentityAccessToken : AnonymousAccessToken 7 | { 8 | public string refresh_token { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Vector.Drawable.24.2.1/build/Xamarin.Android.Support.Tasks.VectorDrawable.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Vector.Drawable.24.2.1/build/Xamarin.Android.Support.Tasks.VectorDrawable.dll -------------------------------------------------------------------------------- /CNBlog/Resources/values/Attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Media.Compat.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.Media.Compat.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Media.Compat.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.Media.Compat.dll -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.v7.AppCompat.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.v7.AppCompat.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.v7.AppCompat.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.v7.AppCompat.dll -------------------------------------------------------------------------------- /CNBlog/CNBlog.csproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Nexus 4 5 | 6 | -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Vector.Drawable.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.Vector.Drawable.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Vector.Drawable.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.Vector.Drawable.dll -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.v7.RecyclerView.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.v7.RecyclerView.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.v7.RecyclerView.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.v7.RecyclerView.dll -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Animated.Vector.Drawable.24.2.1/Xamarin.Android.Support.Animated.Vector.Drawable.24.2.1.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Animated.Vector.Drawable.24.2.1/Xamarin.Android.Support.Animated.Vector.Drawable.24.2.1.nupkg -------------------------------------------------------------------------------- /packages/Xamarin.Android.Support.Animated.Vector.Drawable.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.Animated.Vector.Drawable.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/54Ezreal/Xamarin-Android-CNBlog/HEAD/packages/Xamarin.Android.Support.Animated.Vector.Drawable.24.2.1/lib/MonoAndroid70/Xamarin.Android.Support.Animated.Vector.Drawable.dll -------------------------------------------------------------------------------- /CNBlog/CNBlog.droid.csproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Nexus 4 5 | ShowAllFiles 6 | 7 | -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/bg_edittext_normal.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/bg_edittext_focused.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/bg_edittext.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/footbar_comments_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/titlebar_more_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CNBlog/Resources/animator/popshow_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 12 | -------------------------------------------------------------------------------- /CNBlog/Resources/animator/rotating.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/titlebar_back_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CNBlog/Resources/animator/pophidden_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 13 | -------------------------------------------------------------------------------- /CNBlog/Resources/animator/reverse_anim.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/footbar_share_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/submit_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/titlebar_search_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CNBlogAPI/Model/AnonymousAccessToken.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | namespace CNBlogAPI.Model 3 | { 4 | /// 5 | /// 匿名用户身份标识(未登录用户) 6 | /// 7 | public class AnonymousAccessToken 8 | { 9 | public string access_token { get; set; } 10 | 11 | public string token_type { get; set; } 12 | 13 | public int expires_in { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/footbar_collect_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/titlebar_home_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/titlebar_menu_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/footbar_writecomments_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /CNBlogAPI/Model/KbArticle.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | namespace CNBlogAPI.Model 3 | { 4 | public class KbArticle 5 | { 6 | public int Id { get; set; } 7 | public string Title { get; set; } 8 | public string Summary { get; set; } 9 | public string Author { get; set; } 10 | public int ViewCount { get; set; } 11 | public int DiggCount { get; set; } 12 | public DateTime DateAdded { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /CNBlogAPI/Model/BookMark.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | namespace CNBlogAPI.Model 3 | { 4 | public class BookMark 5 | { 6 | public int WzLinkId { get; set; } 7 | public string Title { get; set; } 8 | public string LinkUrl { get; set; } 9 | public string Summary { get; set; } 10 | public string[] Tags { get; set; } 11 | public DateTime DateAdded { get; set; } 12 | public bool FromCNBlogs { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /CNBlog/Resources/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3366CC 4 | #FFFFFF 5 | #66CCCC 6 | #FFFFFF 7 | #000000 8 | #aaaaaa 9 | #6593cb 10 | #99CCCC 11 | 12 | 13 | -------------------------------------------------------------------------------- /CNBlog/Utils/UITimerTask.cs: -------------------------------------------------------------------------------- 1 | using Android.OS; 2 | using Java.Util; 3 | 4 | namespace CNBlog.Droid.Utils 5 | { 6 | public class UITimerTask: TimerTask 7 | { 8 | 9 | private Handler handler; 10 | public UITimerTask(Handler uihandler) 11 | { 12 | handler = uihandler; 13 | } 14 | 15 | public override void Run() 16 | { 17 | handler.ObtainMessage().SendToTarget(); 18 | } 19 | 20 | } 21 | } -------------------------------------------------------------------------------- /CNBlog/Resources/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16dp 5 | 16dp 6 | 7 | 12sp 8 | 14sp 9 | 16sp 10 | 18sp 11 | 20sp 12 | -------------------------------------------------------------------------------- /CNBlogAPI/Model/ArticleComment.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace CNBlogAPI.Model 4 | { 5 | public class ArticleComment 6 | { 7 | public int Id { get; set; } 8 | 9 | public string Body { get; set; } 10 | 11 | public string Author { get; set; } 12 | 13 | public string AuthorUrl { get; set; } 14 | 15 | public string FaceUrl { get; set; } 16 | 17 | public int Floor { get; set; } 18 | 19 | public DateTime DateAdded { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /CNBlogAPI/ModelHelper/UrlNoCacheHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace CNBlogAPI.ModelHelper 4 | { 5 | internal static class UrlNoCacheHelper 6 | { 7 | internal static string WithCache(this string url) 8 | { 9 | if (url.Contains("?")) 10 | { 11 | return url + "&t=" + DateTime.Now.Ticks; 12 | } 13 | else 14 | { 15 | return url + "?t=" + DateTime.Now.Ticks; 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /CNBlog/PullableView/Pullable.cs: -------------------------------------------------------------------------------- 1 | namespace CNBlog.Droid.PullableView 2 | { 3 | /// 4 | /// 如需扩展其它View,实现该接口即可 5 | /// 6 | public interface Pullable 7 | { 8 | /// 9 | /// 判断是否可以下拉,如果不需要下拉功能可以直接return false 10 | /// 11 | /// 12 | bool canPullDown(); 13 | 14 | /// 15 | /// 判断是否可以上拉,如果不需要上拉功能可以直接return false 16 | /// 17 | /// 18 | bool canPullUp(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /CNBlogAPI/Model/NewInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | namespace CNBlogAPI.Model 3 | { 4 | public class NewInfo 5 | { 6 | public int Id { get; set; } 7 | public string Title { get; set; } 8 | public string Summary { get; set; } 9 | public int TopicId { get; set; } 10 | public string TopicIcon { get; set; } 11 | public int ViewCount { get; set; } 12 | public int CommentCount { get; set; } 13 | public int DiggCount { get; set; } 14 | public DateTime DateAdded { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /CNBlogAPI/Model/AccessToken.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | namespace CNBlogAPI.Model 3 | { 4 | public class AccessToken 5 | { 6 | public AccessToken() 7 | { 8 | } 9 | public string access_token { get; set; } 10 | 11 | public string token_type { get; set; } 12 | 13 | public int expires_in { get; set; } 14 | 15 | public bool IsIdentityUser { get; set; } 16 | 17 | public DateTime RefreshTime { get; set; } 18 | 19 | public bool CheckTokenIsOverdue() 20 | { 21 | return DateTime.Now > RefreshTime.AddSeconds(expires_in); 22 | } 23 | } 24 | } 25 | 26 | -------------------------------------------------------------------------------- /CNBlog/Resources/animator/loading_animation.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 13 | -------------------------------------------------------------------------------- /CNBlogAPI/Model/Article.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace CNBlogAPI.Model 4 | { 5 | public class Article 6 | { 7 | public int Id { get; set; } 8 | public string Title { get; set; } 9 | public string Url { get; set; } 10 | public string Description { get; set; } 11 | public string Author { get; set; } 12 | public string BlogApp { get; set; } 13 | public string Avatar { get; set; } 14 | public DateTime PostDate { get; set; } 15 | public int ViewCount { get; set; } 16 | public int CommentCount { get; set; } 17 | public int DiggCount { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /CNBlog/Assets/AboutAssets.txt: -------------------------------------------------------------------------------- 1 | Any raw assets you want to be deployed with your application can be placed in 2 | this directory (and child directories) and given a Build Action of "AndroidAsset". 3 | 4 | These files will be deployed with your package and will be accessible using Android's 5 | AssetManager, like this: 6 | 7 | public class ReadAsset : Activity 8 | { 9 | protected override void OnCreate (Bundle bundle) 10 | { 11 | base.OnCreate (bundle); 12 | 13 | InputStream input = Assets.Open ("my_asset.txt"); 14 | } 15 | } 16 | 17 | Additionally, some Android functions will automatically load asset files: 18 | 19 | Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); 20 | -------------------------------------------------------------------------------- /CNBlogAPI/Model/UserInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace CNBlogAPI.Model 4 | { 5 | public class UserInfo 6 | { 7 | public Guid UserId { get; set; } 8 | 9 | public int SpaceUserId { get; set; } 10 | 11 | public int BlogId { get; set; } 12 | 13 | public string DisplayName { get; set; } 14 | 15 | public string Face { get; set; } 16 | 17 | public string Avatar { get; set; } 18 | 19 | /// 20 | /// 园龄 21 | /// 22 | public string Seniority { get; set; } 23 | 24 | public string BlogApp { get; set; } 25 | 26 | public string UName { get; set; } 27 | 28 | public string Pwd { get; set; } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /CNBlog/Resources/layout/article_fragment_page.axml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 8 | 14 | 16 | -------------------------------------------------------------------------------- /CNBlog/Resources/layout/tab_item.axml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | 14 | 22 | 23 | -------------------------------------------------------------------------------- /CNBlog/Resources/layout/loading_dialog.axml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 15 | 22 | -------------------------------------------------------------------------------- /CNBlog/PullableView/PullableWebView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Android.Content; 3 | using Android.Util; 4 | using Android.Webkit; 5 | 6 | namespace CNBlog.Droid.PullableView 7 | { 8 | public class PullableWebView :WebView,Pullable 9 | { 10 | public PullableWebView(Context context) 11 | :base(context) 12 | { 13 | 14 | } 15 | 16 | public PullableWebView(Context context, IAttributeSet attrs) 17 | :base(context,attrs) 18 | { 19 | } 20 | 21 | public PullableWebView(Context context, IAttributeSet attrs, int defStyle) 22 | :base(context,attrs,defStyle) 23 | { 24 | 25 | } 26 | 27 | public bool canPullDown() 28 | { 29 | if (ScrollY == 0) 30 | return true; 31 | else 32 | return false; 33 | } 34 | 35 | public bool canPullUp() 36 | { 37 | //if (ScrollY >=ContentHeight * Scale 38 | // - MeasuredHeight) 39 | // return true; 40 | //else 41 | return false; 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /CNBlog/Resources/layout/error_page.axml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 15 | 23 | -------------------------------------------------------------------------------- /CNBlog/PullableView/PullableRecyclerView.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Android.Content; 3 | using Android.Support.V7.Widget; 4 | using Android.Util; 5 | 6 | namespace CNBlog.Droid.PullableView 7 | { 8 | public class PullableRecyclerView : RecyclerView,Pullable 9 | { 10 | public PullableRecyclerView(Context context) 11 | :base(context) 12 | { 13 | } 14 | 15 | public PullableRecyclerView(Context context, IAttributeSet attrs) 16 | :base(context,attrs) 17 | { 18 | 19 | } 20 | 21 | public PullableRecyclerView(Context context, IAttributeSet attrs, int defStyle) 22 | : base(context, attrs,defStyle) 23 | { 24 | 25 | } 26 | 27 | public Func CanPullDownFunc; 28 | 29 | public Func CanPullUpFunc; 30 | 31 | public bool canPullDown() 32 | { 33 | return CanPullDownFunc(); 34 | } 35 | 36 | public bool canPullUp() 37 | { 38 | return CanPullUpFunc(); 39 | } 40 | 41 | } 42 | } -------------------------------------------------------------------------------- /CNBlog/Resources/layout/my_posts.axml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 9 | 13 | 15 | 20 | 22 | 23 | -------------------------------------------------------------------------------- /CNBlog/Activities/BaseFragment.cs: -------------------------------------------------------------------------------- 1 | using CNBlog.Droid.PullableView; 2 | using CNBlog.Droid.Utils; 3 | using Com.Nostra13.Universalimageloader.Core; 4 | 5 | namespace CNBlog.Droid.Activities 6 | { 7 | public class BaseFragment :Android.Support.V4.App.Fragment 8 | { 9 | protected int pageSize = 15; 10 | protected ImageLoader imgLoader; 11 | protected DisplayImageOptions displayImageOptions; 12 | protected PullableListView plistView; 13 | protected PullToRefreshLayout ptrl; 14 | protected void InitalComponents() 15 | { 16 | BlogApplication.InitImageLoader(this.Context); 17 | imgLoader = ImageLoader.Instance; 18 | displayImageOptions = new DisplayImageOptions.Builder() 19 | .ShowImageForEmptyUri(Resource.Drawable.girl) 20 | .ShowImageOnFail(Resource.Drawable.girl) 21 | .ShowImageOnLoading(Resource.Drawable.girl) 22 | .CacheInMemory(true) 23 | .CacheOnDisk(true) 24 | .ResetViewBeforeLoading() 25 | .Build(); 26 | } 27 | 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /CNBlogAPI/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Resources; 2 | using System.Reflection; 3 | using System.Runtime.CompilerServices; 4 | using System.Runtime.InteropServices; 5 | 6 | // 有关程序集的一般信息由以下 7 | // 控制。更改这些特性值可修改 8 | // 与程序集关联的信息。 9 | [assembly: AssemblyTitle("CNBlogAPI")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("CNBlogAPI")] 14 | [assembly: AssemblyCopyright("版权所有(C) 2016")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | [assembly: NeutralResourcesLanguage("zh-Hans")] 18 | 19 | // 程序集的版本信息由下列四个值组成: 20 | // 21 | // 主版本 22 | // 次版本 23 | // 生成号 24 | // 修订号 25 | // 26 | //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值, 27 | // 方法是按如下所示使用“*”: : 28 | // [assembly: AssemblyVersion("1.0.*")] 29 | [assembly: AssemblyVersion("1.0.0.0")] 30 | [assembly: AssemblyFileVersion("1.0.0.0")] 31 | [assembly: InternalsVisibleTo("CNBlogAPI.Tests")] 32 | [assembly: InternalsVisibleTo("CNBlogAPI.Explorables")] 33 | 34 | -------------------------------------------------------------------------------- /CNBlogAPI/Model/NewsComment.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | namespace CNBlogAPI.Model 3 | { 4 | public class NewsComment 5 | { 6 | public int CommentID 7 | { 8 | get; 9 | set; 10 | } 11 | 12 | public int ContentID 13 | { 14 | get; 15 | set; 16 | } 17 | 18 | public string CommentContent 19 | { 20 | get; 21 | set; 22 | } 23 | 24 | public Guid UserGuid 25 | { 26 | get; 27 | set; 28 | } 29 | 30 | public int UserId 31 | { 32 | get; 33 | set; 34 | } 35 | 36 | public string UserName 37 | { 38 | get; 39 | set; 40 | } 41 | 42 | public string FaceUrl 43 | { 44 | get; 45 | set; 46 | } 47 | 48 | public int Floor 49 | { 50 | get; 51 | set; 52 | } 53 | 54 | public DateTime DateAdded 55 | { 56 | get; 57 | set; 58 | } 59 | 60 | public int AgreeCount 61 | { 62 | get; 63 | set; 64 | } 65 | 66 | public int AntiCount 67 | { 68 | get; 69 | set; 70 | } 71 | 72 | public int ParentCommentID 73 | { 74 | get; 75 | set; 76 | } 77 | 78 | public NewsComment ParentComment 79 | { 80 | get; set; 81 | 82 | } 83 | 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /CNBlogAPI/Model/Blogger.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace CNBlogAPI.Model 4 | { 5 | /// 6 | /// 博主 7 | /// 8 | public class Blogger 9 | { 10 | /// 11 | /// 博客主页。 12 | /// 13 | public Uri Id { get; set; } 14 | 15 | /// 16 | /// 博客标题。 17 | /// 18 | public string Title 19 | { get; set; } 20 | 21 | /// 22 | /// 最后更新日期。 23 | /// 24 | public DateTime Updated 25 | { get; set; } 26 | 27 | /// 28 | /// 博客主页。 29 | /// 30 | public Uri Link 31 | { get; set; } 32 | 33 | /// 34 | /// 用户名。 35 | /// 36 | public string BlogApp 37 | { get; set; } 38 | 39 | /// 40 | /// 头像,可能为空。 41 | /// 42 | public string Avatar 43 | { get; set; } 44 | 45 | /// 46 | /// 发表文章数。 47 | /// 48 | public int PostCount 49 | { get; set; } 50 | 51 | } 52 | } -------------------------------------------------------------------------------- /CNBlog/Resources/layout/welcome.axml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 13 | 20 | 28 | -------------------------------------------------------------------------------- /CNBlog/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using Android.App; 4 | 5 | // Information about this assembly is defined by the following attributes. 6 | // Change them to the values specific to your project. 7 | 8 | [assembly: AssemblyTitle("CNBlog")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("")] 13 | [assembly: AssemblyCopyright("ljl")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". 18 | // The form "{Major}.{Minor}.*" will automatically update the build and revision, 19 | // and "{Major}.{Minor}.{Build}.*" will update just the revision. 20 | 21 | [assembly: AssemblyVersion("1.0.0")] 22 | 23 | // The following attributes are used to specify the signing key for the assembly, 24 | // if desired. See the Mono documentation for more information about signing. 25 | 26 | //[assembly: AssemblyDelaySign(false)] 27 | //[assembly: AssemblyKeyFile("")] 28 | #if DEBUG 29 | [assembly:Application(Debuggable=true)] 30 | #else 31 | [assembly: Application(Debuggable = false)] 32 | #endif 33 | 34 | -------------------------------------------------------------------------------- /CNBlog/Resources/values/Strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | CNBlog 4 | 查询中,请稍候... 5 | 注销中,请稍候... 6 | 正在登录中,请稍候... 7 | 登录失败,请重试 8 | #00000000 9 | 下拉刷新 10 | 释放立即刷新 11 | 正在刷新... 12 | 刷新成功 13 | 刷新失败 14 | 上拉加载更多 15 | 释放立即加载 16 | 正在加载... 17 | 加载成功 18 | 加载失败 19 | 请检查网络连接 20 | 请求失败 21 | 发布评论失败 22 | 发布评论成功 23 | 请先登录 24 | 收藏成功 25 | 收藏失败 26 | 27 | -------------------------------------------------------------------------------- /CNBlog/Resources/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 10 | 11 | 14 | 15 | 16 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /CNBlog/Utils/UIScheduling.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | using Android.OS; 3 | using Java.Util; 4 | 5 | namespace CNBlog.Droid.Utils 6 | { 7 | public class UIScheduling 8 | { 9 | private Handler handler; 10 | private Timer timer; 11 | private UITimerTask mTask; 12 | public UIScheduling(Handler uiHandler) 13 | { 14 | handler = uiHandler; 15 | timer = new Timer(); 16 | } 17 | 18 | public void Schedule(long period) 19 | { 20 | try 21 | { 22 | if (mTask != null) 23 | { 24 | mTask.Cancel(); 25 | mTask = null; 26 | } 27 | mTask = new UITimerTask(handler); 28 | timer.Schedule(mTask, 0, period); 29 | } 30 | catch (System.Exception e) 31 | { 32 | string path = Android.OS.Environment.ExternalStorageDirectory.Path; 33 | string fileName = "/error.txt"; 34 | using (var streamWriter = new StreamWriter(path + fileName, false)) 35 | { 36 | streamWriter.WriteLine(e.InnerException + "," + e.Message + "," + e.StackTrace + "," + e.Source + "," + e.Data); 37 | } 38 | } 39 | } 40 | 41 | public void Cancel() 42 | { 43 | if (mTask != null) 44 | { 45 | mTask.Cancel(); 46 | mTask = null; 47 | } 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /CNBlogAPI/OAuthClient.cs: -------------------------------------------------------------------------------- 1 | using CNBlogAPI.Model; 2 | using Newtonsoft.Json; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Net.Http; 6 | using System.Net.Http.Headers; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace CNBlogAPI 11 | { 12 | public class OAuthClient 13 | { 14 | private HttpClient _httpClient; 15 | 16 | public OAuthClient() 17 | { 18 | _httpClient = new HttpClient(); 19 | } 20 | 21 | public async Task GetAccessToken() 22 | { 23 | var clientId = ""; 24 | var clientSecret = ""; 25 | _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue( 26 | "Basic", 27 | Convert.ToBase64String(Encoding.UTF8.GetBytes(clientId + ":" + clientSecret))); 28 | 29 | var parameters = new Dictionary(); 30 | parameters.Add("grant_type", "client_credentials"); 31 | 32 | var str =await _httpClient.PostAsync("https://api.cnblogs.com/token", new FormUrlEncodedContent(parameters)) 33 | .Result.Content.ReadAsStringAsync(); 34 | 35 | var token = JsonConvert.DeserializeObject(str); 36 | token.RefreshTime = DateTime.Now; 37 | return token; 38 | } 39 | 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /CNBlog/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /CNBlog/Resources/drawable/setting_item_style.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | //按钮四个圆角 10 | //按钮文字和边缘距离(内边距) 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /CNBlog/Resources/layout/blogger_article_list_item.axml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 19 | 28 | 35 | -------------------------------------------------------------------------------- /CNBlog/Resources/layout/page_head.axml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 15 |