├── Readme.txt
├── document
├── cnblogs_api.txt
└── database_design_document.xls
├── src
├── assets
│ ├── webBgLine.png
│ ├── webBgLine@2x.png
│ ├── NewsDetail.html
│ └── css.css
├── res
│ ├── drawable
│ │ ├── Thumbs.db
│ │ ├── btn_add_normal.png
│ │ ├── btn_add_pressed.png
│ │ ├── btn_list_normal.png
│ │ ├── btn_list_pressed.png
│ │ ├── progressbar_moreloading.xml
│ │ ├── progressbar_drawable.xml
│ │ ├── drawable_btn_add_selector.xml
│ │ ├── drawable_btn_list_selector.xml
│ │ ├── drawable_btn_rss.xml
│ │ ├── drawable_btn_back.xml
│ │ ├── drawable_btn_comment.xml
│ │ ├── drawable_btn_refresh.xml
│ │ ├── drawable_btn_weibo.xml
│ │ ├── drawable_btn_search.xml
│ │ ├── toolbar_text_color.xml
│ │ └── home_btn_bg.xml
│ ├── drawable-hdpi
│ │ ├── Thumbs.db
│ │ ├── ember.png
│ │ ├── geotag.png
│ │ ├── gofor.png
│ │ ├── head.png
│ │ ├── icon.png
│ │ ├── jquery.png
│ │ ├── line.png
│ │ ├── splash.png
│ │ ├── download.png
│ │ ├── icon_1_n.png
│ │ ├── icon_2_n.png
│ │ ├── icon_3_n.png
│ │ ├── icon_4_n.png
│ │ ├── icon_5_n.png
│ │ ├── icon_6_n.png
│ │ ├── icon_7_n.png
│ │ ├── icon_8_n.png
│ │ ├── icon_rss.png
│ │ ├── loading.png
│ │ ├── myspace.png
│ │ ├── refresh.png
│ │ ├── regular.png
│ │ ├── bg_banner.png
│ │ ├── bg_search.9.png
│ │ ├── btn_back.9.png
│ │ ├── btn_rss.9.png
│ │ ├── btn_rssed.9.png
│ │ ├── btn_weibo.9.png
│ │ ├── comment.9.png
│ │ ├── digg_this.png
│ │ ├── downloaded.png
│ │ ├── ico_search.png
│ │ ├── sample_face.gif
│ │ ├── stylesheet.png
│ │ ├── home_btn_bg_d.png
│ │ ├── home_btn_bg_n.png
│ │ ├── home_btn_bg_s.png
│ │ ├── ic_menu_star.png
│ │ ├── more_loading.png
│ │ ├── refresh_click.png
│ │ ├── btn_back_hover.9.png
│ │ ├── btn_rss_hover.9.png
│ │ ├── comment_click.9.png
│ │ ├── ic_menu_rotate.png
│ │ ├── ico_search_click.png
│ │ ├── spinner_white_48.png
│ │ ├── btn_weibo_hover.9.png
│ │ ├── ic_menu_allfriends.png
│ │ ├── maintab_toolbar_bg.png
│ │ ├── ic_pulltorefresh_arrow.png
│ │ └── ic_menu_start_conversation.png
│ ├── drawable-ldpi
│ │ └── icon.png
│ ├── drawable-mdpi
│ │ ├── Thumbs.db
│ │ ├── icon.png
│ │ ├── icon_1_n.png
│ │ ├── icon_2_n.png
│ │ ├── icon_3_n.png
│ │ ├── icon_4_n.png
│ │ ├── icon_5_n.png
│ │ ├── icon_6_n.png
│ │ ├── icon_7_n.png
│ │ ├── icon_8_n.png
│ │ ├── home_btn_bg_d.png
│ │ ├── home_btn_bg_n.png
│ │ ├── home_btn_bg_s.png
│ │ └── maintab_toolbar_bg.png
│ ├── drawable-land-hdpi
│ │ └── splash.png
│ ├── values
│ │ ├── drawables.xml
│ │ ├── arrays.xml
│ │ ├── attrs.xml
│ │ ├── colors.xml
│ │ ├── dimens.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ ├── menu
│ │ ├── my_fav_contextmenu.xml
│ │ ├── my_rss_contextmenu.xml
│ │ ├── author_blog_menu.xml
│ │ ├── blog_list_contextmenu.xml
│ │ ├── main_tab_menu.xml
│ │ ├── blog_detail_menu.xml
│ │ └── news_detail_menu.xml
│ ├── layout
│ │ ├── splash.xml
│ │ ├── dialog_clear_cache.xml
│ │ ├── dialog_add_rss.xml
│ │ ├── listview_footer.xml
│ │ ├── more_layout.xml
│ │ ├── top_header.xml
│ │ ├── dialog_set_fontsize.xml
│ │ ├── order_layout.xml
│ │ ├── comment_layout.xml
│ │ ├── recommend_layout.xml
│ │ ├── blog_layout.xml
│ │ ├── news_layout.xml
│ │ ├── web_layout.xml
│ │ ├── my_rss_layout.xml
│ │ ├── blog_detail.xml
│ │ ├── news_detail.xml
│ │ ├── blog_top_view_digg_layout.xml
│ │ ├── dialog_offline_download.xml
│ │ ├── author_order_recommend_news_layout.xml
│ │ ├── rss_list_layout.xml
│ │ ├── rss_cate_layout.xml
│ │ ├── pull_to_refresh_header.xml
│ │ ├── rss_detail.xml
│ │ ├── rsscate_list_item.xml
│ │ ├── more_list_item.xml
│ │ ├── rss_items_layout.xml
│ │ ├── order_list_item.xml
│ │ ├── offline_download_notification.xml
│ │ ├── about_layout.xml
│ │ ├── search_layout.xml
│ │ ├── main.xml
│ │ ├── rsslist_list_item.xml
│ │ ├── notification.xml
│ │ ├── comment_list_item.xml
│ │ ├── author_blog_layout.xml
│ │ ├── rssitems_list_item.xml
│ │ ├── author_blog_list_item.xml
│ │ ├── news_list_item.xml
│ │ ├── search_list_item.xml
│ │ ├── myfav_list_item.xml
│ │ └── blog_list_item.xml
│ ├── anim
│ │ └── rotate.xml
│ ├── xml
│ │ └── preference.xml
│ ├── layout-480x320
│ │ └── about_layout.xml
│ ├── layout-land
│ │ └── about_layout.xml
│ ├── layout-land-480x320
│ │ └── about_layout.xml
│ ├── layout-land-320x240
│ │ └── about_layout.xml
│ └── layout-320x240
│ │ └── about_layout.xml
├── src
│ └── com
│ │ └── cnblogs
│ │ └── android
│ │ ├── WebActivity.java
│ │ ├── core
│ │ ├── Config.java
│ │ ├── BlogHelper.java
│ │ ├── NewsHelper.java
│ │ ├── UserHelper.java
│ │ ├── CommentHelper.java
│ │ ├── FavListHelper.java
│ │ ├── RssCateHelper.java
│ │ ├── RssItemHelper.java
│ │ └── RssListHelper.java
│ │ ├── entity
│ │ ├── Blog.java
│ │ ├── News.java
│ │ ├── Comment.java
│ │ ├── FavList.java
│ │ ├── RssCate.java
│ │ ├── Users.java
│ │ ├── RssItem.java
│ │ ├── App.java
│ │ └── RssList.java
│ │ ├── AboutActivity.java
│ │ ├── BaseActivity.java
│ │ ├── BlogActivity.java
│ │ ├── MainActivity.java
│ │ ├── MoreActivity.java
│ │ ├── MyFavActivity.java
│ │ ├── MyRssActivity.java
│ │ ├── NewsActivity.java
│ │ ├── OrderActivity.java
│ │ ├── SearchActivity.java
│ │ ├── SplashActivity.java
│ │ ├── dal
│ │ ├── DBHelper.java
│ │ ├── FavDalHelper.java
│ │ ├── BlogDalHelper.java
│ │ ├── NewsDalHelper.java
│ │ ├── CommentDalHelper.java
│ │ ├── RssItemDalHelper.java
│ │ └── RssListDalHelper.java
│ │ ├── BaseMainActivity.java
│ │ ├── CommentActivity.java
│ │ ├── RssCateActivity.java
│ │ ├── RssItemsActivity.java
│ │ ├── RssListActivity.java
│ │ ├── SettingActivity.java
│ │ ├── utility
│ │ ├── AppUtil.java
│ │ ├── FileAccess.java
│ │ ├── NetHelper.java
│ │ └── HtmlRegexpUtil.java
│ │ ├── AuthorBlogActivity.java
│ │ ├── AuthorOrderActivity.java
│ │ ├── BlogDetailActivity.java
│ │ ├── NewsDetailActivity.java
│ │ ├── RssDetailActivity.java
│ │ ├── cache
│ │ ├── ImageCacher.java
│ │ └── AsyncImageLoader.java
│ │ ├── NewsRecommendActivity.java
│ │ ├── enums
│ │ ├── EnumResultType.java
│ │ └── EnumActivityType.java
│ │ ├── parser
│ │ ├── BlogXmlParser.java
│ │ ├── NewsXmlParser.java
│ │ ├── BlogListXmlParser.java
│ │ ├── NewsListXmlParser.java
│ │ ├── RssCateXmlParser.java
│ │ ├── RssItemsXmlParser.java
│ │ ├── RssListXmlParser.java
│ │ ├── UserListXmlParser.java
│ │ ├── RssListAddXmlParser.java
│ │ ├── UserDetailXmlParser.java
│ │ ├── CommentListXmlParser.java
│ │ └── AuthorBlogListXmlParser.java
│ │ ├── BlogTopViewDiggActivity.java
│ │ ├── adapter
│ │ ├── BlogListAdapter.java
│ │ ├── MyFavListAdapter.java
│ │ ├── NewsListAdapter.java
│ │ ├── RssItemsAdapter.java
│ │ ├── RssListAdapter.java
│ │ ├── UserListAdapter.java
│ │ ├── CommentListAdapter.java
│ │ ├── RssCateListAdapter.java
│ │ └── AuthorBlogListAdapter.java
│ │ ├── services
│ │ ├── UpdateService.java
│ │ └── DownloadServices.java
│ │ └── controls
│ │ └── PullToRefreshListView.java
├── lib
│ └── org.apache.commons.lang_2.3.0.v201005080501.jar
├── .settings
│ ├── org.eclipse.core.resources.prefs
│ ├── org.eclipse.ltk.core.refactoring.prefs
│ ├── org.eclipse.jdt.ui.prefs
│ └── org.eclipse.jdt.core.prefs
├── default.properties
├── .classpath
├── .project
├── proguard.cfg
└── AndroidManifest.xml
├── .gitignore
└── README.md
/Readme.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/Readme.txt
--------------------------------------------------------------------------------
/document/cnblogs_api.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/document/cnblogs_api.txt
--------------------------------------------------------------------------------
/src/assets/webBgLine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/assets/webBgLine.png
--------------------------------------------------------------------------------
/src/assets/webBgLine@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/assets/webBgLine@2x.png
--------------------------------------------------------------------------------
/src/res/drawable/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable/Thumbs.db
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/Thumbs.db
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/ember.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/ember.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/geotag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/geotag.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/gofor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/gofor.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/head.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/head.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/icon.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/jquery.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/jquery.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/line.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/line.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/splash.png
--------------------------------------------------------------------------------
/src/res/drawable-ldpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-ldpi/icon.png
--------------------------------------------------------------------------------
/src/res/drawable-mdpi/Thumbs.db:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-mdpi/Thumbs.db
--------------------------------------------------------------------------------
/src/res/drawable-mdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-mdpi/icon.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/download.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/icon_1_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/icon_1_n.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/icon_2_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/icon_2_n.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/icon_3_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/icon_3_n.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/icon_4_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/icon_4_n.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/icon_5_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/icon_5_n.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/icon_6_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/icon_6_n.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/icon_7_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/icon_7_n.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/icon_8_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/icon_8_n.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/icon_rss.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/icon_rss.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/loading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/loading.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/myspace.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/myspace.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/refresh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/refresh.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/regular.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/regular.png
--------------------------------------------------------------------------------
/src/res/drawable-mdpi/icon_1_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-mdpi/icon_1_n.png
--------------------------------------------------------------------------------
/src/res/drawable-mdpi/icon_2_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-mdpi/icon_2_n.png
--------------------------------------------------------------------------------
/src/res/drawable-mdpi/icon_3_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-mdpi/icon_3_n.png
--------------------------------------------------------------------------------
/src/res/drawable-mdpi/icon_4_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-mdpi/icon_4_n.png
--------------------------------------------------------------------------------
/src/res/drawable-mdpi/icon_5_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-mdpi/icon_5_n.png
--------------------------------------------------------------------------------
/src/res/drawable-mdpi/icon_6_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-mdpi/icon_6_n.png
--------------------------------------------------------------------------------
/src/res/drawable-mdpi/icon_7_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-mdpi/icon_7_n.png
--------------------------------------------------------------------------------
/src/res/drawable-mdpi/icon_8_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-mdpi/icon_8_n.png
--------------------------------------------------------------------------------
/document/database_design_document.xls:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/document/database_design_document.xls
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/bg_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/bg_banner.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/bg_search.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/bg_search.9.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/btn_back.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/btn_back.9.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/btn_rss.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/btn_rss.9.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/btn_rssed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/btn_rssed.9.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/btn_weibo.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/btn_weibo.9.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/comment.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/comment.9.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/digg_this.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/digg_this.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/downloaded.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/downloaded.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/ico_search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/ico_search.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/sample_face.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/sample_face.gif
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/stylesheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/stylesheet.png
--------------------------------------------------------------------------------
/src/res/drawable-land-hdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-land-hdpi/splash.png
--------------------------------------------------------------------------------
/src/res/drawable/btn_add_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable/btn_add_normal.png
--------------------------------------------------------------------------------
/src/res/drawable/btn_add_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable/btn_add_pressed.png
--------------------------------------------------------------------------------
/src/res/drawable/btn_list_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable/btn_list_normal.png
--------------------------------------------------------------------------------
/src/res/drawable/btn_list_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable/btn_list_pressed.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/home_btn_bg_d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/home_btn_bg_d.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/home_btn_bg_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/home_btn_bg_n.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/home_btn_bg_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/home_btn_bg_s.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/ic_menu_star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/ic_menu_star.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/more_loading.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/more_loading.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/refresh_click.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/refresh_click.png
--------------------------------------------------------------------------------
/src/res/drawable-mdpi/home_btn_bg_d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-mdpi/home_btn_bg_d.png
--------------------------------------------------------------------------------
/src/res/drawable-mdpi/home_btn_bg_n.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-mdpi/home_btn_bg_n.png
--------------------------------------------------------------------------------
/src/res/drawable-mdpi/home_btn_bg_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-mdpi/home_btn_bg_s.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/btn_back_hover.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/btn_back_hover.9.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/btn_rss_hover.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/btn_rss_hover.9.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/comment_click.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/comment_click.9.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/ic_menu_rotate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/ic_menu_rotate.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/ico_search_click.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/ico_search_click.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/spinner_white_48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/spinner_white_48.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/btn_weibo_hover.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/btn_weibo_hover.9.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/ic_menu_allfriends.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/ic_menu_allfriends.png
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/maintab_toolbar_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/maintab_toolbar_bg.png
--------------------------------------------------------------------------------
/src/res/drawable-mdpi/maintab_toolbar_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-mdpi/maintab_toolbar_bg.png
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/WebActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/WebActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/core/Config.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/core/Config.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/entity/Blog.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/entity/Blog.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/entity/News.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/entity/News.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/AboutActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/AboutActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/BaseActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/BaseActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/BlogActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/BlogActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/MainActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/MainActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/MoreActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/MoreActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/MyFavActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/MyFavActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/MyRssActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/MyRssActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/NewsActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/NewsActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/OrderActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/OrderActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/SearchActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/SearchActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/SplashActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/SplashActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/dal/DBHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/dal/DBHelper.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/entity/Comment.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/entity/Comment.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/entity/FavList.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/entity/FavList.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/entity/RssCate.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/entity/RssCate.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/entity/Users.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/entity/Users.java
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/ic_pulltorefresh_arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/ic_pulltorefresh_arrow.png
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/BaseMainActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/BaseMainActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/CommentActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/CommentActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/RssCateActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/RssCateActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/RssItemsActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/RssItemsActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/RssListActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/RssListActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/SettingActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/SettingActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/core/BlogHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/core/BlogHelper.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/core/NewsHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/core/NewsHelper.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/core/UserHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/core/UserHelper.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/dal/FavDalHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/dal/FavDalHelper.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/utility/AppUtil.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/utility/AppUtil.java
--------------------------------------------------------------------------------
/src/res/drawable-hdpi/ic_menu_start_conversation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/res/drawable-hdpi/ic_menu_start_conversation.png
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/AuthorBlogActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/AuthorBlogActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/AuthorOrderActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/AuthorOrderActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/BlogDetailActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/BlogDetailActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/NewsDetailActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/NewsDetailActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/RssDetailActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/RssDetailActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/cache/ImageCacher.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/cache/ImageCacher.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/core/CommentHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/core/CommentHelper.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/core/FavListHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/core/FavListHelper.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/core/RssCateHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/core/RssCateHelper.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/core/RssItemHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/core/RssItemHelper.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/core/RssListHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/core/RssListHelper.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/dal/BlogDalHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/dal/BlogDalHelper.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/dal/NewsDalHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/dal/NewsDalHelper.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/utility/FileAccess.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/utility/FileAccess.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/utility/NetHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/utility/NetHelper.java
--------------------------------------------------------------------------------
/src/res/values/drawables.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | - #00000000
4 |
5 |
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/NewsRecommendActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/NewsRecommendActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/dal/CommentDalHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/dal/CommentDalHelper.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/dal/RssItemDalHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/dal/RssItemDalHelper.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/dal/RssListDalHelper.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/dal/RssListDalHelper.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/enums/EnumResultType.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/enums/EnumResultType.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/parser/BlogXmlParser.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/parser/BlogXmlParser.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/parser/NewsXmlParser.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/parser/NewsXmlParser.java
--------------------------------------------------------------------------------
/src/lib/org.apache.commons.lang_2.3.0.v201005080501.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/lib/org.apache.commons.lang_2.3.0.v201005080501.jar
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/BlogTopViewDiggActivity.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/BlogTopViewDiggActivity.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/adapter/BlogListAdapter.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/adapter/BlogListAdapter.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/adapter/MyFavListAdapter.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/adapter/MyFavListAdapter.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/adapter/NewsListAdapter.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/adapter/NewsListAdapter.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/adapter/RssItemsAdapter.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/adapter/RssItemsAdapter.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/adapter/RssListAdapter.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/adapter/RssListAdapter.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/adapter/UserListAdapter.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/adapter/UserListAdapter.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/cache/AsyncImageLoader.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/cache/AsyncImageLoader.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/enums/EnumActivityType.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/enums/EnumActivityType.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/parser/BlogListXmlParser.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/parser/BlogListXmlParser.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/parser/NewsListXmlParser.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/parser/NewsListXmlParser.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/parser/RssCateXmlParser.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/parser/RssCateXmlParser.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/parser/RssItemsXmlParser.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/parser/RssItemsXmlParser.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/parser/RssListXmlParser.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/parser/RssListXmlParser.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/parser/UserListXmlParser.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/parser/UserListXmlParser.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/services/UpdateService.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/services/UpdateService.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/utility/HtmlRegexpUtil.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/utility/HtmlRegexpUtil.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/adapter/CommentListAdapter.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/adapter/CommentListAdapter.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/adapter/RssCateListAdapter.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/adapter/RssCateListAdapter.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/parser/RssListAddXmlParser.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/parser/RssListAddXmlParser.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/parser/UserDetailXmlParser.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/parser/UserDetailXmlParser.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/services/DownloadServices.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/services/DownloadServices.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/adapter/AuthorBlogListAdapter.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/adapter/AuthorBlogListAdapter.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/parser/CommentListXmlParser.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/parser/CommentListXmlParser.java
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/parser/AuthorBlogListXmlParser.java:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/walkingp/AndroidCnblogs/HEAD/src/src/com/cnblogs/android/parser/AuthorBlogListXmlParser.java
--------------------------------------------------------------------------------
/src/.settings/org.eclipse.core.resources.prefs:
--------------------------------------------------------------------------------
1 | #Sat Feb 11 20:39:23 CST 2012
2 | eclipse.preferences.version=1
3 | encoding//src/com/cnblogs/android/controls/PullToRefreshListView.java=UTF-8
4 |
--------------------------------------------------------------------------------
/src/.settings/org.eclipse.ltk.core.refactoring.prefs:
--------------------------------------------------------------------------------
1 | #Wed Dec 07 20:23:11 CST 2011
2 | eclipse.preferences.version=1
3 | org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
4 |
--------------------------------------------------------------------------------
/src/res/menu/my_fav_contextmenu.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/src/res/menu/my_rss_contextmenu.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/src/res/drawable/progressbar_moreloading.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/res/drawable/progressbar_drawable.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/src/.settings/org.eclipse.jdt.ui.prefs:
--------------------------------------------------------------------------------
1 | #Mon Mar 05 00:49:40 CST 2012
2 | eclipse.preferences.version=1
3 | org.eclipse.jdt.ui.exception.name=e
4 | org.eclipse.jdt.ui.gettersetter.use.is=true
5 | org.eclipse.jdt.ui.keywordthis=false
6 | org.eclipse.jdt.ui.overrideannotation=true
7 |
--------------------------------------------------------------------------------
/src/res/layout/splash.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
--------------------------------------------------------------------------------
/src/res/menu/author_blog_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
--------------------------------------------------------------------------------
/src/res/drawable/drawable_btn_add_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/res/drawable/drawable_btn_list_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/res/anim/rotate.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
--------------------------------------------------------------------------------
/src/default.properties:
--------------------------------------------------------------------------------
1 | # This file is automatically generated by Android Tools.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file must be checked in Version Control Systems.
5 | #
6 | # To customize properties used by the Ant build system use,
7 | # "build.properties", and override values to adapt the script to your
8 | # project structure.
9 |
10 | # Project target.
11 | target=android-4
12 |
--------------------------------------------------------------------------------
/src/res/values/arrays.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | - @string/config_pic_mode
6 | - @string/config_text_mode
7 |
8 |
9 | - 0
10 | - 1
11 |
12 |
--------------------------------------------------------------------------------
/src/res/drawable/drawable_btn_rss.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
7 |
8 |
--------------------------------------------------------------------------------
/src/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/src/res/drawable/drawable_btn_back.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
7 |
8 |
--------------------------------------------------------------------------------
/src/res/drawable/drawable_btn_comment.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
7 |
8 |
--------------------------------------------------------------------------------
/src/res/drawable/drawable_btn_refresh.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
7 |
8 |
--------------------------------------------------------------------------------
/src/res/drawable/drawable_btn_weibo.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
7 |
8 |
--------------------------------------------------------------------------------
/src/res/drawable/drawable_btn_search.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
8 |
9 |
--------------------------------------------------------------------------------
/src/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/res/drawable/toolbar_text_color.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/assets/NewsDetail.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | News Detail
4 |
5 |
6 |
7 |
8 |
9 |
15 |
16 | #content#
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/res/drawable/home_btn_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/res/menu/blog_list_contextmenu.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
--------------------------------------------------------------------------------
/src/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | #Mon Mar 05 00:50:23 CST 2012
2 | eclipse.preferences.version=1
3 | org.eclipse.jdt.core.codeComplete.argumentPrefixes=
4 | org.eclipse.jdt.core.codeComplete.argumentSuffixes=
5 | org.eclipse.jdt.core.codeComplete.fieldPrefixes=_
6 | org.eclipse.jdt.core.codeComplete.fieldSuffixes=
7 | org.eclipse.jdt.core.codeComplete.localPrefixes=
8 | org.eclipse.jdt.core.codeComplete.localSuffixes=
9 | org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
10 | org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
11 | org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
12 | org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
13 |
--------------------------------------------------------------------------------
/src/res/layout/dialog_clear_cache.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
15 |
--------------------------------------------------------------------------------
/src/res/menu/main_tab_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
--------------------------------------------------------------------------------
/src/res/layout/dialog_add_rss.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
13 |
20 |
--------------------------------------------------------------------------------
/src/res/layout/listview_footer.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
12 |
13 |
17 |
18 |
--------------------------------------------------------------------------------
/src/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | AndroidCnblogs
4 |
5 |
6 |
7 |
8 |
9 | com.android.ide.eclipse.adt.ApkBuilder
10 |
11 |
12 |
13 |
14 | com.android.ide.eclipse.adt.ResourceManagerBuilder
15 |
16 |
17 |
18 |
19 | com.android.ide.eclipse.adt.PreCompilerBuilder
20 |
21 |
22 |
23 |
24 | org.eclipse.jdt.core.javabuilder
25 |
26 |
27 |
28 |
29 |
30 | com.android.ide.eclipse.adt.AndroidNature
31 | org.eclipse.jdt.core.javanature
32 |
33 |
34 |
--------------------------------------------------------------------------------
/src/res/layout/more_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
12 |
16 |
17 |
18 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/src/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #ff008800
4 | #ffffffff
5 | #00000000
6 | #ff666666
7 | #ff000000
8 | #eeaaaaaa
9 | #99333333
10 | #66666666
11 | #ffc0c0c0
12 | #ff0000ff
13 |
14 | #ff3E5E00
15 |
16 | #77c0c0c0
17 |
18 | #eecbcbcb
19 | #ffededee
20 |
21 | #776c88ae
22 |
23 | #ffe4e4e4
24 |
25 | #ff999999
26 |
27 | #ff6c88ae
28 |
29 |
--------------------------------------------------------------------------------
/src/res/menu/blog_detail_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
--------------------------------------------------------------------------------
/src/res/menu/news_detail_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
--------------------------------------------------------------------------------
/src/res/layout/top_header.xml:
--------------------------------------------------------------------------------
1 |
6 |
12 |
15 |
23 |
24 |
--------------------------------------------------------------------------------
/src/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 22sp
4 | 10sp
5 | 12sp
6 | 14sp
7 | 16sp
8 | 0.0dip
9 | 1.0dip
10 |
11 | 180dip
12 | 150dip
13 | 30dip
14 |
15 | 45dip
16 | 10dip
17 | 20dip
18 | 50dip
19 |
20 | 30dip
21 | 10dip
22 |
23 | 10dip
24 | 50dip
25 | 200dip
26 |
27 | 2.0px
28 |
29 |
--------------------------------------------------------------------------------
/src/res/layout/dialog_set_fontsize.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
13 |
21 |
26 |
--------------------------------------------------------------------------------
/src/proguard.cfg:
--------------------------------------------------------------------------------
1 | -optimizationpasses 5
2 | -dontusemixedcaseclassnames
3 | -dontskipnonpubliclibraryclasses
4 | -dontpreverify
5 | -verbose
6 | -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
7 |
8 | -keep public class * extends android.app.Activity
9 | -keep public class * extends android.app.Application
10 | -keep public class * extends android.app.Service
11 | -keep public class * extends android.content.BroadcastReceiver
12 | -keep public class * extends android.content.ContentProvider
13 | -keep public class * extends android.app.backup.BackupAgentHelper
14 | -keep public class * extends android.preference.Preference
15 | -keep public class com.android.vending.licensing.ILicensingService
16 |
17 | -keepclasseswithmembernames class * {
18 | native ;
19 | }
20 |
21 | -keepclasseswithmembernames class * {
22 | public (android.content.Context, android.util.AttributeSet);
23 | }
24 |
25 | -keepclasseswithmembernames class * {
26 | public (android.content.Context, android.util.AttributeSet, int);
27 | }
28 |
29 | -keepclassmembers enum * {
30 | public static **[] values();
31 | public static ** valueOf(java.lang.String);
32 | }
33 |
34 | -keep class * implements android.os.Parcelable {
35 | public static final android.os.Parcelable$Creator *;
36 | }
37 |
--------------------------------------------------------------------------------
/src/res/layout/order_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
16 |
17 |
21 |
22 |
23 |
24 |
27 |
28 |
31 |
32 |
--------------------------------------------------------------------------------
/src/res/xml/preference.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
8 |
9 |
10 |
15 |
22 |
23 |
24 |
26 |
28 |
29 |
--------------------------------------------------------------------------------
/src/res/layout/comment_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
16 |
20 |
21 |
22 |
25 |
26 |
29 |
30 |
--------------------------------------------------------------------------------
/src/assets/css.css:
--------------------------------------------------------------------------------
1 | body{font-family:Helvetica,"Microsoft Yahei",Verdana,Helvetica,SimSun,Arial,"Arial Unicode MS",MingLiu,PMingLiu,"MS Gothic",sans-serief;margin:0;padding:0 8px;background-color:#efeff0;color:#333;word-wrap:break-word;}
2 | p{margin-top:0;margin-bottom:5pt;line-height: 1.6em;}
3 | #header{text-align:center;background:transparent url('webBgLine.png') repeat-x scroll center bottom; padding-top:6pt;margin-bottom:5pt;-webkit-background-size:320px 2px;}
4 | #header h3{margin-bottom:0px; margin-top:5px;font-size:16pt;padding:0 5pt;color:#464646;line-height:1.3em;}
5 | .date{color:#8e8e8e;font-size:12pt;padding:8pt 0;}
6 | #content{ font-size:14pt;line-height:1.8;}
7 | img{max-width:310px;height:auto;}
8 | div.bimg{text-align:center;padding:0;}
9 | .photo_title{font-weight:bold;font-size:16pt;margin-top:15px;}
10 | .langs_cn{color:#006200;}
11 | audio{width:100%}
12 | *{-webkit-touch-callout: none; /* prevent callout to copy image, etc when tap to hold */
13 | /*-webkit-text-size-adjust: none;*/ /* prevent webkit from resizing text to fit */
14 | -webkit-tap-highlight-color: rgba(0,0,0,0.15); /* make transparent link selection, adjust last value opacity 0 to 1.0 */
15 | /*-webkit-user-select: none; /* prevent copy paste, to allow, change 'none' to 'text' */
16 | }
17 | @media screen and (-webkit-device-pixel-ratio: 2) {
18 | #header{background-image:transparent url('webBgLine@2x.png') repeat-x scroll center bottom;-webkit-background-size:320px 1px;}
19 | }
20 |
--------------------------------------------------------------------------------
/src/res/layout/recommend_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
12 |
18 |
19 |
23 |
24 |
26 |
30 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/src/res/layout/blog_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
14 |
15 |
19 |
23 |
24 |
25 |
26 |
27 |
30 |
31 |
34 |
35 |
--------------------------------------------------------------------------------
/src/res/layout/news_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
11 |
15 |
16 |
20 |
24 |
25 |
26 |
27 |
30 |
31 |
34 |
35 |
--------------------------------------------------------------------------------
/src/res/layout/web_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
16 |
20 |
21 |
25 |
26 |
27 |
28 |
30 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/entity/RssItem.java:
--------------------------------------------------------------------------------
1 | package com.cnblogs.android.entity;
2 |
3 | import java.util.Date;
4 |
5 | public class RssItem {
6 | private int _id;
7 | private String _title;
8 | private String _link;
9 | private String _description;
10 | private String _category;
11 | private String _author;
12 | private Date _addDate;
13 | private boolean _isReaded;
14 | private boolean _isDigg;
15 | public void SetId(int id) {
16 | _id = id;
17 | }
18 | public int GetId() {
19 | return _id;
20 | }
21 | public void SetTitle(String title) {
22 | _title = title;
23 | }
24 | public String GetTitle() {
25 | return _title;
26 | }
27 | public void SetLink(String link) {
28 | _link = link;
29 | }
30 | public String GetLink() {
31 | return _link;
32 | }
33 | public void SetDescription(String description) {
34 | _description = description;
35 | }
36 | public String GetDescription() {
37 | return _description;
38 | }
39 | public void SetCategory(String category) {
40 | _category = category;
41 | }
42 | public String GetCategory() {
43 | return _category;
44 | }
45 | public void SetAuthor(String author) {
46 | _author = author;
47 | }
48 | public String GetAuthor() {
49 | return _author;
50 | }
51 | public void SetAddDate(Date addDate) {
52 | _addDate = addDate;
53 | }
54 | public Date GetAddDate() {
55 | return _addDate;
56 | }
57 | public void SetIsReaded(boolean isReaded) {
58 | _isReaded = isReaded;
59 | }
60 | public boolean GetIsReaded() {
61 | return _isReaded;
62 | }
63 | public void SetIsDigg(boolean isDigg) {
64 | _isDigg = isDigg;
65 | }
66 | public boolean GetIsDigg() {
67 | return _isDigg;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/src/res/layout/my_rss_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
14 |
15 |
19 |
23 |
24 |
25 |
26 |
27 |
30 |
31 |
34 |
35 |
36 |
39 |
--------------------------------------------------------------------------------
/src/res/layout/blog_detail.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
16 |
20 |
21 |
27 |
28 |
29 |
32 |
35 |
36 |
--------------------------------------------------------------------------------
/src/res/layout/news_detail.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
16 |
17 |
21 |
22 |
28 |
29 |
30 |
33 |
36 |
37 |
--------------------------------------------------------------------------------
/src/res/layout/blog_top_view_digg_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
16 |
20 |
21 |
25 |
29 |
30 |
31 |
32 |
33 |
36 |
37 |
40 |
41 |
--------------------------------------------------------------------------------
/src/res/layout/dialog_offline_download.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
13 |
16 |
21 |
26 |
27 |
31 |
37 |
42 |
--------------------------------------------------------------------------------
/src/res/layout/author_order_recommend_news_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
16 |
20 |
21 |
25 |
29 |
30 |
31 |
32 |
33 |
36 |
37 |
40 |
41 |
--------------------------------------------------------------------------------
/src/res/layout/rss_list_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
16 |
20 |
21 |
25 |
29 |
30 |
31 |
32 |
33 |
36 |
37 |
40 |
41 |
44 |
45 |
--------------------------------------------------------------------------------
/src/res/layout/rss_cate_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
16 |
20 |
21 |
25 |
29 |
30 |
31 |
32 |
33 |
36 |
37 |
40 |
41 |
44 |
45 |
--------------------------------------------------------------------------------
/src/res/layout/pull_to_refresh_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
11 |
12 |
17 |
18 |
25 |
26 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/src/res/layout/rss_detail.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
16 |
17 |
18 |
22 |
26 |
27 |
35 |
36 |
37 |
40 |
43 |
44 |
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/entity/App.java:
--------------------------------------------------------------------------------
1 | package com.cnblogs.android.entity;
2 |
3 | public class App {
4 | private int _appId;
5 | private String _appTitle;
6 | private String _alias;
7 | private String _version;
8 | private int _innerVersion;
9 | private String _updateRemark;
10 | private String _summary;
11 | private String _fileLocalUrl;
12 | private String _link;
13 | private int _downNum;
14 | private String _feedbackUrl;
15 | public void SetAppId(int _appId) {
16 | this._appId = _appId;
17 | }
18 | public int GetAppId() {
19 | return _appId;
20 | }
21 | public void SetAppTitle(String _appTitle) {
22 | this._appTitle = _appTitle;
23 | }
24 | public String GetAppTitle() {
25 | return _appTitle;
26 | }
27 | public void SetAlias(String _alias) {
28 | this._alias = _alias;
29 | }
30 | public String GetAlias() {
31 | return _alias;
32 | }
33 | public void SetVersion(String _version) {
34 | this._version = _version;
35 | }
36 | public String GetVersion() {
37 | return _version;
38 | }
39 | public void SetInnerVersion(int _innerVersion) {
40 | this._innerVersion = _innerVersion;
41 | }
42 | public int GetInnerVersion() {
43 | return _innerVersion;
44 | }
45 | public void SetUpdateRemark(String _updateRemark) {
46 | this._updateRemark = _updateRemark;
47 | }
48 | public String GetUpdateRemark() {
49 | return _updateRemark;
50 | }
51 | public void SetSummary(String _summary) {
52 | this._summary = _summary;
53 | }
54 | public String GetSummary() {
55 | return _summary;
56 | }
57 | public void SetFileLocalUrl(String _fileLocalUrl) {
58 | this._fileLocalUrl = _fileLocalUrl;
59 | }
60 | public String GetFileLocalUrl() {
61 | return _fileLocalUrl;
62 | }
63 | public void SetLink(String _link) {
64 | this._link = _link;
65 | }
66 | public String GetLink() {
67 | return _link;
68 | }
69 | public void SetDownNum(int _downNum) {
70 | this._downNum = _downNum;
71 | }
72 | public int GetDownNum() {
73 | return _downNum;
74 | }
75 | public void SetFeedbackUrl(String _feedbackUrl) {
76 | this._feedbackUrl = _feedbackUrl;
77 | }
78 | public String GetFeedbackUrl() {
79 | return _feedbackUrl;
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/src/res/layout/rsscate_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
15 |
19 |
21 |
24 |
31 |
35 |
40 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/src/res/layout/more_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
15 |
20 |
22 |
25 |
32 |
36 |
41 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/src/res/layout/rss_items_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
16 |
17 |
21 |
25 |
26 |
34 |
35 |
36 |
37 |
40 |
41 |
44 |
45 |
48 |
49 |
--------------------------------------------------------------------------------
/src/res/layout/order_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
15 |
22 |
24 |
27 |
34 |
38 |
43 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/src/res/layout-480x320/about_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
15 |
19 |
21 |
23 |
24 |
28 |
30 |
32 |
33 |
36 |
38 |
42 |
43 |
44 |
45 |
51 |
52 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 博客园Android客户端
2 | ==================
3 | 欢迎加入博客园Android客户端的开发。这份代码是博客园Android客户端的全部源码,同时包含了部分设计图及数据库设计文档,目前博客园Android客户端已经发布了两个版本,由于个人精力有限,同时想借助园友的力量把这个应用做得更完善一些,特将全部源码资料开源。
4 |
5 | Updated: 目前已不再更新
6 |
7 | ##### 请仔细阅读以下内容:
8 |
9 | ##### 1、关于博客园Android客户端源码的使用
10 | 本客户端源码遵循MIT和GPL开源协议,也就是说,你可以自由下载、传播、修改、编译,但不允许修改后及衍生的代码做为闭源的商业软件发布,并且,如果你使用了本程序的代码片断,请保留作者版权。
11 |
12 | ##### 2、我想加入这个开源项目?
13 | 欢迎以下人员加入:
14 | + 对Android开发很感兴趣,学习借鉴一下其他项目的经验;
15 | + 觉得这个Android客户端用着很不爽,想加入自己想要的功能和想法;
16 | + 觉得UI好丑!来设计一下更好的UI;
17 | + 重构达人,看不惯蹩脚的代码,要让应用的性能大幅度提升。
18 |
19 |
20 | ##### 应用主页:
21 | [http://www.walkingp.com/cnblogs/](http://www.walkingp.com/cnblogs/)
22 | ##### 项目主页:
23 | [https://github.com/walkingp/AndroidCnblogs](https://github.com/walkingp/AndroidCnblogs)
24 |
25 | ##### 更多问题可以到讨论小组:
26 | [http://home.cnblogs.com/group/AndroidCnblogs/](http://home.cnblogs.com/group/AndroidCnblogs/)
27 |
28 |
29 | Cnblogs Android Client
30 | ======================
31 | Welcome to the cnblogs android client developer team,this code contains all the source,the design material and the database designment document.The cnblogs android client had realsed two versions,cause the personal idle time is too few,and also wanna get it better by many people.
32 |
33 | ##### Please read the following carefully:
34 |
35 | ##### 1,About the cnblogs android client's code.
36 | The code based under the MIT lisence and GPL lisence,In other words,you can download,broadcast,modify and compile the code in any way,but please don't use them to the business and close source project.
37 |
38 | ##### 2,How can I join in this project?
39 | If you are the one of the following,welcome to join us:
40 | + Very instrested in android develpment,and thirst for learing from the projects;
41 | + This andriod client is shit,wanna the more perfect app with your own idea;
42 | + Don't like the UI,wanna mix your own idea;
43 | + I'm a rework crazy guy,I hate the ugly code,I wanna the more fast performance.
44 |
45 | ##### The homepage:
46 | [http://www.walkingp.com/cnblogs/](http://www.walkingp.com/cnblogs/)
47 | ##### The source:
48 | [https://github.com/walkingp/AndroidCnblogs](https://github.com/walkingp/AndroidCnblogs)
49 |
50 | ##### You can also get more information in the discuss community(in Chinese):
51 | [http://home.cnblogs.com/group/AndroidCnblogs/](http://home.cnblogs.com/group/AndroidCnblogs/)
52 |
--------------------------------------------------------------------------------
/src/res/layout/offline_download_notification.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
13 |
14 |
16 |
18 |
20 |
24 |
25 |
27 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/src/res/layout/about_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
16 |
20 |
22 |
24 |
25 |
29 |
31 |
33 |
34 |
37 |
39 |
43 |
44 |
45 |
46 |
52 |
53 |
--------------------------------------------------------------------------------
/src/res/layout-land/about_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
16 |
20 |
22 |
24 |
25 |
29 |
31 |
33 |
34 |
37 |
39 |
43 |
44 |
45 |
46 |
52 |
53 |
--------------------------------------------------------------------------------
/src/res/layout-land-480x320/about_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
16 |
20 |
22 |
24 |
25 |
29 |
31 |
33 |
34 |
37 |
39 |
43 |
44 |
45 |
46 |
52 |
53 |
--------------------------------------------------------------------------------
/src/res/layout-land-320x240/about_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
15 |
19 |
21 |
23 |
24 |
28 |
30 |
32 |
33 |
36 |
38 |
42 |
43 |
44 |
45 |
52 |
53 |
--------------------------------------------------------------------------------
/src/res/layout-320x240/about_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
16 |
20 |
22 |
24 |
25 |
29 |
31 |
33 |
34 |
37 |
39 |
43 |
44 |
45 |
46 |
53 |
54 |
--------------------------------------------------------------------------------
/src/res/layout/search_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
11 |
15 |
16 |
20 |
21 |
22 |
23 |
32 |
33 |
37 |
49 |
50 |
51 |
52 |
55 |
56 |
59 |
60 |
--------------------------------------------------------------------------------
/src/res/layout/main.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
12 |
17 |
23 |
31 |
37 |
43 |
49 |
55 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/src/res/layout/rsslist_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
15 |
19 |
21 |
22 |
24 |
30 |
34 |
39 |
42 |
45 |
46 |
49 |
50 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/src/res/layout/notification.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
9 |
11 |
15 |
16 |
18 |
20 |
22 |
25 |
26 |
28 |
31 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/entity/RssList.java:
--------------------------------------------------------------------------------
1 | package com.cnblogs.android.entity;
2 |
3 | import java.util.Date;
4 |
5 | public class RssList {
6 | private int _rssId;
7 | private String _title;
8 | private String _link;
9 | private String _description;
10 | private Date _addTime;
11 | private int _orderNum;
12 | private int _rssNum;
13 | private String _guid;
14 | private boolean _isCnblogs;
15 | private String _image;
16 | private Date _updated;
17 | private String _author;
18 | private int _cateId;
19 | private String _cateName;
20 | private boolean _isActive;
21 | public void SetRssId(int rssId) {
22 | _rssId = rssId;
23 | }
24 | public void SetTitle(String title) {
25 | _title = title;
26 | }
27 | public String GetTitle() {
28 | return _title;
29 | }
30 | public int GetRssId() {
31 | return _rssId;
32 | }
33 | public void SetLink(String link) {
34 | _link = link;
35 | }
36 | public String GetLink() {
37 | return _link;
38 | }
39 | public void SetDescription(String description) {
40 | _description = description;
41 | }
42 | public String GetDescription() {
43 | return _description;
44 | }
45 | public void SetAddTime(Date addTime) {
46 | _addTime = addTime;
47 | }
48 | public Date GetAddTime() {
49 | return _addTime;
50 | }
51 | public void SetOrderNum(int orderNum) {
52 | _orderNum = orderNum;
53 | }
54 | public int GetOrderNum() {
55 | return _orderNum;
56 | }
57 | public void SetRssNum(int rssNum) {
58 | _rssNum = rssNum;
59 | }
60 | public int GetRssNum() {
61 | return _rssNum;
62 | }
63 | public void SetGuid(String guid) {
64 | _guid = guid;
65 | }
66 | public String GetGuid() {
67 | return _guid;
68 | }
69 | public void SetIsCnblogs(boolean isCnblogs) {
70 | _isCnblogs = isCnblogs;
71 | }
72 | public boolean GetIsCnblogs() {
73 | return _isCnblogs;
74 | }
75 | public void SetImage(String image) {
76 | _image = image;
77 | }
78 | public String GetImage() {
79 | return _image;
80 | }
81 | public void SetUpdated(Date updated) {
82 | _updated = updated;
83 | }
84 | public Date GetUpdated() {
85 | return _updated;
86 | }
87 | public void SetAuthor(String author) {
88 | _author = author;
89 | }
90 | public String GetAuthor() {
91 | return _author;
92 | }
93 | public void SetCateId(int cateId) {
94 | _cateId = cateId;
95 | }
96 | public int GetCateId() {
97 | return _cateId;
98 | }
99 | public void SetCateName(String cateName) {
100 | _cateName = cateName;
101 | }
102 | public String GetCateName() {
103 | return _cateName;
104 | }
105 | public void SetIsActive(boolean isActive) {
106 | _isActive = isActive;
107 | }
108 | public boolean GetIsActive() {
109 | return _isActive;
110 | }
111 | }
112 |
--------------------------------------------------------------------------------
/src/res/layout/comment_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
14 |
15 |
21 |
25 |
26 |
30 |
34 |
35 |
39 |
43 |
47 |
52 |
53 |
54 |
60 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/src/res/layout/author_blog_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
16 |
20 |
21 |
25 |
29 |
30 |
31 |
32 |
39 |
45 |
47 |
48 |
50 |
55 |
56 |
63 |
64 |
72 |
73 |
79 |
80 |
81 |
82 |
85 |
86 |
87 |
90 |
91 |
94 |
95 |
--------------------------------------------------------------------------------
/src/res/layout/rssitems_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
14 |
16 |
19 |
26 |
30 |
35 |
37 |
43 |
49 |
55 |
62 |
68 |
74 |
79 |
86 |
91 |
92 |
93 |
94 |
95 |
--------------------------------------------------------------------------------
/src/res/layout/author_blog_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
13 |
17 |
24 |
28 |
33 |
39 |
45 |
51 |
58 |
64 |
70 |
76 |
81 |
88 |
93 |
100 |
105 |
112 |
117 |
118 |
119 |
120 |
--------------------------------------------------------------------------------
/src/res/layout/news_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
14 |
16 |
19 |
26 |
27 |
31 |
36 |
40 |
41 |
46 |
52 |
58 |
64 |
71 |
77 |
82 |
89 |
94 |
101 |
106 |
113 |
118 |
119 |
120 |
121 |
122 |
--------------------------------------------------------------------------------
/src/res/layout/search_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
14 |
21 |
23 |
27 |
33 |
34 |
40 |
44 |
51 |
52 |
53 |
59 |
65 |
70 |
75 |
76 |
82 |
88 |
93 |
100 |
105 |
113 |
118 |
119 |
120 |
121 |
122 |
--------------------------------------------------------------------------------
/src/res/layout/myfav_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
14 |
16 |
19 |
26 |
30 |
35 |
41 |
47 |
53 |
59 |
65 |
71 |
77 |
82 |
89 |
94 |
101 |
106 |
113 |
118 |
119 |
124 |
125 |
126 |
127 |
128 |
--------------------------------------------------------------------------------
/src/res/layout/blog_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
14 |
21 |
23 |
26 |
33 |
34 |
38 |
43 |
47 |
48 |
53 |
59 |
65 |
71 |
78 |
84 |
90 |
96 |
101 |
108 |
113 |
120 |
125 |
132 |
137 |
138 |
143 |
144 |
145 |
146 |
147 |
--------------------------------------------------------------------------------
/src/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
68 |
69 |
70 |
71 |
72 |
--------------------------------------------------------------------------------
/src/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | walkingp
4 | walkingp
5 | http://android.walkingp.com/cnblogs/
6 | android_cnblogs
7 |
8 | /sdcard/cnblogs/apk/
9 | /sdcard/cnblogs/images/
10 | /sdcard/cnblogs/apk/cnblogs.apk
11 |
12 | 博客园
13 | 博客
14 | 新闻
15 | 配置
16 | 搜索
17 | 订阅
18 | 更多
19 |
20 | 实用工具箱
21 |
22 | 推荐应用
23 | 查看评论
24 |
25 |
26 | 订阅
27 | 取消
28 | 订阅中心
29 | 手动添加RSS地址
30 | 地址格式不正确
31 | 此地址已经订阅过
32 | 请输入RSS地址,示例:http://cnblogs.com/rss
33 | 订阅成功
34 | 订阅失败
35 | 退订成功
36 | 退订失败
37 | 收藏成功
38 | 收藏失败
39 | 操作成功
40 | 操作失败
41 |
42 |
43 | 用户
44 | 博客
45 | 新闻
46 |
47 |
48 | 排行榜
49 |
50 | 网络异常,请检查网络设置
51 | 没有数据返回
52 | 已经是最后一页了
53 | 程序发生异常
54 | 是否确认退出博客园?
55 | 获得博客内容为空
56 | 目前还没有评论
57 | 用户名不存在,请确认输入是否正确
58 | 输入不可为空
59 | 共搜索到{row}项结果
60 | 已经将内容复制到剪贴板
61 | 已经收藏过了
62 |
63 | 确认退出
64 | 确认
65 | 取消
66 | 保存设置
67 |
68 | 返回
69 | 评论
70 |
71 | 请输入用户名
72 |
73 | 应用名称:
74 | 当前版本:
75 | 关于作者:
76 | walkingp
77 | 关注作者微博
78 | 去打个分,评价一下
79 | market://details?id=com.cnblogs.android
80 |
81 | {n}楼:
82 |
83 |
84 | 选择浏览模式
85 | 选择浏览模式
86 | 建议WIFI下使用图文模式,可显示头像及图片;否则选择文字模式
87 | 图文模式
88 | 文字模式
89 |
90 | 正在获取最新版本……
91 | 当前程序已经是最新版本
92 | 更新版本
93 | 发现一个新版本{version},{updateRemark},是否更新?
94 | 存储卡不可用,请加载存储卡重新下载
95 | 更新路径设置错误,欢迎反馈给作者
96 | 新版博客园下载完成,点击安装
97 | 新版博客园正在下载...
98 | 服务器解析错误,请稍候再试
99 | 阅读模式已更改,将在下次启动时生效
100 | 缓存文件已经清空完成
101 |
102 |
103 | currentTab
104 |
105 | cnblogs_start_tab
106 |
107 | cnblogs_is_view_fullscreen
108 |
109 | cnblogs_webview2_zoom_scale
110 |
111 |
112 | cnblogs_last_search
113 |
114 | 加载更多
115 | 下拉刷新...
116 | 释放刷新...
117 | 数据加载中...
118 | 触摸下拉刷新...
119 |
120 |
121 | 请选择操作
122 | 查看内容
123 | 查看评论
124 | 在浏览器中查看
125 | 分享到……
126 | 离线下载
127 | 关于
128 | 配置
129 | 检查更新
130 | 我的收藏
131 | 查看博主主页
132 | 查看评论者主页
133 | 复制到剪贴板
134 | 返回
135 | 字体大小
136 | 刷新
137 | 查看评论
138 | 查看网页
139 | 分享到
140 | 取消订阅
141 | 删除收藏
142 | 加入收藏
143 |
144 |
145 | 离线下载选项
146 | 下载内容:
147 | 博客
148 | 新闻
149 | 下载条数:
150 | 下载内容条数
151 | 当前选择下载{0}条
152 | 开始下载
153 | 请选择所要下载的内容
154 | 博客园离线下载完成
155 | 博客园正在离线下载内容...
156 | 博客园开始离线下载内容
157 | 博客园离线下载已经完成,{0}
158 |
159 | 设置页面字体大小
160 | 拖动进度条来改变字体大小
161 | 当前字体比例为{0}
162 |
163 | 清空缓存
164 | 此操作将会清空离线下载的博客和新闻内容及其图片文件,同时清空内置浏览器缓存文件。
165 | 当前数据库文件大小为{0},缓存文件大小为{1}
166 |
167 |
--------------------------------------------------------------------------------
/src/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
18 |
19 |
30 |
31 |
44 |
45 |
53 |
54 |
62 |
63 |
71 |
72 |
80 |
81 |
88 |
89 |
98 |
99 |
114 |
115 |
122 |
123 |
130 |
131 |
138 |
139 |
148 |
149 |
156 |
157 |
160 |
161 |
167 |
168 |
178 |
179 |
189 |
190 |
--------------------------------------------------------------------------------
/src/src/com/cnblogs/android/controls/PullToRefreshListView.java:
--------------------------------------------------------------------------------
1 | package com.cnblogs.android.controls;
2 |
3 | import com.cnblogs.android.R;
4 |
5 | import android.content.Context;
6 | import android.util.AttributeSet;
7 | import android.util.Log;
8 | import android.view.LayoutInflater;
9 | import android.view.MotionEvent;
10 | import android.view.View;
11 | import android.view.ViewGroup;
12 | import android.view.animation.LinearInterpolator;
13 | import android.view.animation.RotateAnimation;
14 | import android.widget.AbsListView;
15 | import android.widget.AbsListView.OnScrollListener;
16 | import android.widget.ImageView;
17 | import android.widget.ListAdapter;
18 | import android.widget.ListView;
19 | import android.widget.ProgressBar;
20 | import android.widget.RelativeLayout;
21 | import android.widget.TextView;
22 |
23 | /**
24 | * 重写ListView控件,增加了头部,状态栏等控件。
25 | * (此控件作者为johannilsson,为国内某位作者二次开发,本人又做了一点点的修改;感谢原作者和二次开发作者的辛勤劳动)
26 | * @author johannilsson
27 | * https://github.com/johannilsson/android-pulltorefresh
28 | */
29 | public class PullToRefreshListView extends ListView implements OnScrollListener {
30 |
31 | // 状态
32 | private static final int TAP_TO_REFRESH = 1;
33 | private static final int PULL_TO_REFRESH = 2;
34 | private static final int RELEASE_TO_REFRESH = 3;
35 | private static final int REFRESHING = 4;
36 |
37 | // 数据条数
38 | private int itemRowCount = 0;
39 | // 分页条数
40 | private int pageSize = 0;
41 |
42 | private OnRefreshListener mOnRefreshListener;
43 |
44 | // 监听对ListView的滑动动作
45 | private OnScrollListener mOnScrollListener;
46 | private LayoutInflater mInflater;
47 |
48 | // 顶部刷新时出现的控件
49 | private RelativeLayout mRefreshView;
50 | private TextView mRefreshViewText;
51 | private ImageView mRefreshViewImage;
52 | private ProgressBar mRefreshViewProgress;
53 | private TextView mRefreshViewLastUpdated;
54 |
55 | private int mCurrentScrollState;// 当前滑动状态
56 | private int mRefreshState;// 当前刷新状态
57 |
58 | private RotateAnimation mFlipAnimation;
59 | private RotateAnimation mReverseFlipAnimation;
60 |
61 | private int mRefreshViewHeight;
62 | private int mRefreshOriginalTopPadding;
63 | private int mLastMotionY;
64 |
65 | private boolean mBounceHack;
66 |
67 | public PullToRefreshListView(Context context) {
68 | super(context);
69 | init(context);
70 | }
71 |
72 | public PullToRefreshListView(Context context, AttributeSet attrs) {
73 | super(context, attrs);
74 | init(context);
75 | }
76 |
77 | public PullToRefreshListView(Context context, AttributeSet attrs,
78 | int defStyle) {
79 | super(context, attrs, defStyle);
80 | init(context);
81 | }
82 |
83 | /**
84 | * 初始化控件和动画
85 | *
86 | * @param context
87 | */
88 | private void init(Context context) {
89 | mFlipAnimation = new RotateAnimation(0, -180,
90 | RotateAnimation.RELATIVE_TO_SELF, 0.5f,
91 | RotateAnimation.RELATIVE_TO_SELF, 0.5f);
92 | mFlipAnimation.setInterpolator(new LinearInterpolator());
93 | mFlipAnimation.setDuration(250);
94 | mFlipAnimation.setFillAfter(true);
95 | mReverseFlipAnimation = new RotateAnimation(-180, 0,
96 | RotateAnimation.RELATIVE_TO_SELF, 0.5f,
97 | RotateAnimation.RELATIVE_TO_SELF, 0.5f);
98 | mReverseFlipAnimation.setInterpolator(new LinearInterpolator());
99 | mReverseFlipAnimation.setDuration(250);
100 | mReverseFlipAnimation.setFillAfter(true);
101 |
102 | mInflater = (LayoutInflater) context
103 | .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
104 |
105 | mRefreshView = (RelativeLayout) mInflater.inflate(
106 | R.layout.pull_to_refresh_header, this, false);
107 | mRefreshViewText = (TextView) mRefreshView
108 | .findViewById(R.id.pull_to_refresh_text);
109 | mRefreshViewImage = (ImageView) mRefreshView
110 | .findViewById(R.id.pull_to_refresh_image);
111 | mRefreshViewProgress = (ProgressBar) mRefreshView
112 | .findViewById(R.id.pull_to_refresh_progress);
113 | mRefreshViewLastUpdated = (TextView) mRefreshView
114 | .findViewById(R.id.pull_to_refresh_updated_at);
115 |
116 | mRefreshViewImage.setMinimumHeight(50);
117 | mRefreshView.setOnClickListener(new OnClickRefreshListener());
118 | mRefreshOriginalTopPadding = mRefreshView.getPaddingTop();
119 |
120 | mRefreshState = TAP_TO_REFRESH;
121 |
122 | // 为ListView头部添加view
123 | addHeaderView(mRefreshView);
124 |
125 | super.setOnScrollListener(this);
126 |
127 | measureView(mRefreshView);
128 |
129 | mRefreshViewHeight = mRefreshView.getMeasuredHeight();
130 | }
131 |
132 | @Override
133 | protected void onAttachedToWindow() {
134 | setSelection(1);
135 | }
136 |
137 | @Override
138 | public void setAdapter(ListAdapter adapter) {
139 | super.setAdapter(adapter);
140 |
141 | setSelection(1);
142 | }
143 |
144 | @Override
145 | public void setOnScrollListener(AbsListView.OnScrollListener l) {
146 | mOnScrollListener = l;
147 | }
148 |
149 | public void setOnRefreshListener(OnRefreshListener onRefreshListener) {
150 | mOnRefreshListener = onRefreshListener;
151 | }
152 |
153 | public void setLastUpdated(CharSequence lastUpdated) {
154 | if (lastUpdated != null) {
155 | mRefreshViewLastUpdated.setVisibility(View.VISIBLE);
156 | mRefreshViewLastUpdated.setText(lastUpdated);
157 | } else {
158 | mRefreshViewLastUpdated.setVisibility(View.GONE);
159 | }
160 | }
161 | /**
162 | * 触摸
163 | */
164 | @Override
165 | public boolean onTouchEvent(MotionEvent event) {
166 | final int y = (int) event.getY();
167 | mBounceHack = false;
168 |
169 | switch (event.getAction()) {
170 | case MotionEvent.ACTION_UP :
171 | if (!isVerticalScrollBarEnabled()) {
172 | setVerticalScrollBarEnabled(true);
173 | }
174 | if (getFirstVisiblePosition() == 0
175 | && mRefreshState != REFRESHING) {
176 | if ((mRefreshView.getBottom() >= mRefreshViewHeight || mRefreshView
177 | .getTop() >= 0)
178 | && mRefreshState == RELEASE_TO_REFRESH) {
179 | mRefreshState = REFRESHING;
180 | prepareForRefresh();// 准备刷新
181 | onRefresh();// 刷新
182 | } else if (mRefreshView.getBottom() < mRefreshViewHeight
183 | || mRefreshView.getTop() <= 0) {
184 | resetHeader();// 中止刷新
185 | setSelection(1);
186 | }
187 | }
188 | break;
189 | case MotionEvent.ACTION_DOWN :
190 | mLastMotionY = y;// 获得按下y轴位置
191 | break;
192 | case MotionEvent.ACTION_MOVE :
193 | // 计算边距
194 | applyHeaderPadding(event);
195 | break;
196 | }
197 | return super.onTouchEvent(event);
198 | }
199 |
200 | private void applyHeaderPadding(MotionEvent ev) {
201 | int pointerCount = ev.getHistorySize();
202 |
203 | for (int p = 0; p < pointerCount; p++) {
204 | if (mRefreshState == RELEASE_TO_REFRESH) {
205 | if (isVerticalFadingEdgeEnabled()) {
206 | setVerticalScrollBarEnabled(false);
207 | }
208 |
209 | int historicalY = (int) ev.getHistoricalY(p);
210 |
211 | int topPadding = (int) (((historicalY - mLastMotionY) - mRefreshViewHeight) / 1.7);
212 |
213 | mRefreshView.setPadding(mRefreshView.getPaddingLeft(),
214 | topPadding, mRefreshView.getPaddingRight(),
215 | mRefreshView.getPaddingBottom());
216 | }
217 | }
218 | }
219 |
220 | private void resetHeaderPadding() {
221 | mRefreshView.setPadding(mRefreshView.getPaddingLeft(),
222 | mRefreshOriginalTopPadding, mRefreshView.getPaddingRight(),
223 | mRefreshView.getPaddingBottom());
224 | }
225 |
226 | private void resetHeader() {
227 | if (mRefreshState != TAP_TO_REFRESH) {
228 | mRefreshState = TAP_TO_REFRESH;
229 | resetHeaderPadding();
230 | mRefreshViewText.setText(R.string.pull_to_refresh_tap_label);
231 | mRefreshViewImage
232 | .setImageResource(R.drawable.ic_pulltorefresh_arrow);// 换成箭头
233 | mRefreshViewImage.clearAnimation();// 清除动画
234 | mRefreshViewImage.setVisibility(View.GONE);// 隐藏图标
235 | mRefreshViewProgress.setVisibility(View.GONE);// 隐藏进度条
236 | }
237 | }
238 |
239 | private void measureView(View child) {
240 | ViewGroup.LayoutParams p = child.getLayoutParams();
241 | if (p == null) {
242 | p = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
243 | ViewGroup.LayoutParams.WRAP_CONTENT);
244 | }
245 |
246 | int childWidthSpec = ViewGroup.getChildMeasureSpec(0, 0 + 0, p.width);
247 | int lpHeight = p.height;
248 | int childHeightSpec;
249 | if (lpHeight > 0) {
250 | childHeightSpec = MeasureSpec.makeMeasureSpec(lpHeight,
251 | MeasureSpec.EXACTLY);
252 | } else {
253 | childHeightSpec = MeasureSpec.makeMeasureSpec(0,
254 | MeasureSpec.UNSPECIFIED);
255 | }
256 | child.measure(childWidthSpec, childHeightSpec);
257 | }
258 |
259 | @Override
260 | public void onScroll(AbsListView view, int firstVisibleItem,
261 | int visibleItemCount, int totalItemCount) {
262 | if (mCurrentScrollState == SCROLL_STATE_TOUCH_SCROLL
263 | && mRefreshState != REFRESHING) {
264 | if (firstVisibleItem == 0) {
265 | mRefreshViewImage.setVisibility(View.VISIBLE);
266 | if ((mRefreshView.getBottom() >= mRefreshViewHeight + 20 || mRefreshView
267 | .getTop() >= 0) && mRefreshState != RELEASE_TO_REFRESH) {
268 | mRefreshViewText
269 | .setText(R.string.pull_to_refresh_release_label);
270 | mRefreshViewImage.clearAnimation();
271 | mRefreshViewImage.startAnimation(mFlipAnimation);
272 | mRefreshState = RELEASE_TO_REFRESH;
273 | } else if (mRefreshView.getBottom() < mRefreshViewHeight + 20
274 | && mRefreshState != PULL_TO_REFRESH) {
275 | mRefreshViewText
276 | .setText(R.string.pull_to_refresh_pull_label);
277 | if (mRefreshState != TAP_TO_REFRESH) {
278 | mRefreshViewImage.clearAnimation();
279 | mRefreshViewImage.startAnimation(mReverseFlipAnimation);
280 | }
281 | mRefreshState = PULL_TO_REFRESH;
282 | }
283 | } else {
284 | mRefreshViewImage.setVisibility(View.GONE);
285 | resetHeader();
286 | }
287 | } else if (mCurrentScrollState == SCROLL_STATE_FLING
288 | && firstVisibleItem == 0 && mRefreshState != REFRESHING) {
289 | setSelection(1);
290 | mBounceHack = true;
291 | } else if (mBounceHack && mCurrentScrollState == SCROLL_STATE_FLING) {
292 | setSelection(1);
293 | }
294 |
295 | if (mOnScrollListener != null) {
296 | mOnScrollListener.onScroll(view, firstVisibleItem,
297 | visibleItemCount, totalItemCount);
298 | }
299 | }
300 |
301 | @Override
302 | public void onScrollStateChanged(AbsListView view, int scrollState) {
303 | mCurrentScrollState = scrollState;
304 |
305 | if (mCurrentScrollState == SCROLL_STATE_IDLE) {
306 | mBounceHack = false;
307 | }
308 |
309 | if (mOnScrollListener != null) {
310 | mOnScrollListener.onScrollStateChanged(view, scrollState);
311 | }
312 | }
313 |
314 | public void prepareForRefresh() {
315 | resetHeaderPadding();
316 | mRefreshViewImage.setVisibility(View.GONE);
317 | mRefreshViewImage.setImageDrawable(null);
318 | mRefreshViewProgress.setVisibility(View.VISIBLE);
319 | mRefreshViewText.setText(R.string.pull_to_refresh_refreshing_label);
320 | mRefreshState = REFRESHING;
321 | }
322 |
323 | public void onRefresh() {
324 | if (mOnRefreshListener != null) {
325 | mOnRefreshListener.onRefresh();
326 | }
327 | }
328 |
329 | public void onRefreshComplete(CharSequence lastUpdated) {
330 | setLastUpdated(lastUpdated);
331 | onRefreshComplete();
332 | }
333 |
334 | public void onRefreshComplete() {
335 | resetHeader();
336 | int bottomPosition = mRefreshView.getBottom();
337 | Log.i("bottom", "pull:rows:" + String.valueOf(itemRowCount)
338 | + ",pageSize:" + String.valueOf(pageSize));
339 | if (bottomPosition > 0) {
340 | invalidateViews();
341 | setSelection(1);// 选择第二项
342 | }
343 | // 若数据行数小于本次分页行数,则隐藏顶部和底部控件
344 | if (pageSize > 0 && itemRowCount < pageSize) {
345 | removeHeaderView(mRefreshView);
346 | }
347 | }
348 |
349 | private class OnClickRefreshListener implements OnClickListener {
350 |
351 | @Override
352 | public void onClick(View v) {
353 | if (mRefreshState != REFRESHING) {
354 | prepareForRefresh();
355 | onRefresh();
356 | }
357 | }
358 | }
359 | public void SetDataRow(int row) {
360 | itemRowCount = row;
361 | }
362 | public void SetPageSize(int size) {
363 | pageSize = size;
364 | }
365 | public interface OnRefreshListener {
366 | public void onRefresh();
367 | }
368 | }
369 |
--------------------------------------------------------------------------------