├── settings.gradle
├── android
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── values
│ │ │ │ ├── arrays.xml
│ │ │ │ ├── ids.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── styles.xml
│ │ │ │ └── colors.xml
│ │ │ ├── drawable
│ │ │ │ ├── cool.gif
│ │ │ │ ├── eek.gif
│ │ │ │ ├── good.gif
│ │ │ │ ├── mad.gif
│ │ │ │ ├── wink.gif
│ │ │ │ ├── angel.gif
│ │ │ │ ├── cowboy.gif
│ │ │ │ ├── crying.gif
│ │ │ │ ├── frown.gif
│ │ │ │ ├── laugh.gif
│ │ │ │ ├── silly.gif
│ │ │ │ ├── smile.gif
│ │ │ │ ├── tongue.gif
│ │ │ │ ├── biggrin.gif
│ │ │ │ ├── confused.gif
│ │ │ │ ├── cyclops.gif
│ │ │ │ ├── highfive.gif
│ │ │ │ ├── redface.gif
│ │ │ │ ├── rolleyes.gif
│ │ │ │ ├── victory.gif
│ │ │ │ ├── unknown_avatar.jpg
│ │ │ │ ├── fingers_crossed.gif
│ │ │ │ ├── fab_background.xml
│ │ │ │ ├── selectable_item_background_test.xml
│ │ │ │ ├── send_button_background.xml
│ │ │ │ ├── fadingab__gradient.xml
│ │ │ │ ├── fadingab__gradient_light.xml
│ │ │ │ ├── test.xml
│ │ │ │ ├── selectable_item_background.xml
│ │ │ │ ├── photo_banner_scrim.xml
│ │ │ │ ├── list_selector_background_transition_holo_dark.xml
│ │ │ │ ├── item_background_holo_dark.xml
│ │ │ │ └── item_background_holo_light.xml
│ │ │ ├── xml
│ │ │ │ ├── xda_account_prefs.xml
│ │ │ │ ├── search_forums_searchable.xml
│ │ │ │ ├── xda_authenticator.xml
│ │ │ │ └── global_tracker.xml
│ │ │ ├── drawable-hdpi
│ │ │ │ ├── logo.png
│ │ │ │ ├── ic_pin.png
│ │ │ │ ├── ic_lock.png
│ │ │ │ ├── skip_next.png
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_xda_logo.png
│ │ │ │ ├── chevron_left.png
│ │ │ │ ├── chevron_right.png
│ │ │ │ ├── ic_action_menu.png
│ │ │ │ ├── ic_action_send.png
│ │ │ │ ├── ic_action_star.png
│ │ │ │ ├── ic_feed_icon.png
│ │ │ │ ├── ic_quote_dark.png
│ │ │ │ ├── ic_search_dark.png
│ │ │ │ ├── ic_star_light.png
│ │ │ │ ├── line_divider.png
│ │ │ │ ├── skip_previous.png
│ │ │ │ ├── ic_action_delete.png
│ │ │ │ ├── ic_search_light.png
│ │ │ │ ├── ic_thumb_up_dark.png
│ │ │ │ ├── action_bar_ic_menu.png
│ │ │ │ ├── ic_insert_emoticon.png
│ │ │ │ ├── ic_markunread_light.png
│ │ │ │ ├── ic_mult_quote_dark.png
│ │ │ │ ├── ic_thumb_up_outline.png
│ │ │ │ ├── ic_action_send_light.png
│ │ │ │ ├── ic_star_light_outline.png
│ │ │ │ ├── ic_star_outline_light.png
│ │ │ │ ├── ic_account_circle_light.png
│ │ │ │ ├── ic_action_send_disabled.png
│ │ │ │ ├── ic_action_star_outline.png
│ │ │ │ ├── ic_thumb_up_dark_outline.png
│ │ │ │ └── ic_action_markunread_light.png
│ │ │ ├── drawable-mdpi
│ │ │ │ ├── logo.png
│ │ │ │ ├── ic_pin.png
│ │ │ │ ├── ic_lock.png
│ │ │ │ ├── skip_next.png
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_xda_logo.png
│ │ │ │ ├── chevron_left.png
│ │ │ │ ├── chevron_right.png
│ │ │ │ ├── ic_action_menu.png
│ │ │ │ ├── ic_action_send.png
│ │ │ │ ├── ic_action_star.png
│ │ │ │ ├── ic_feed_icon.png
│ │ │ │ ├── ic_quote_dark.png
│ │ │ │ ├── ic_search_dark.png
│ │ │ │ ├── ic_star_light.png
│ │ │ │ ├── line_divider.png
│ │ │ │ ├── skip_previous.png
│ │ │ │ ├── ic_action_delete.png
│ │ │ │ ├── ic_search_light.png
│ │ │ │ ├── ic_thumb_up_dark.png
│ │ │ │ ├── action_bar_ic_menu.png
│ │ │ │ ├── ic_insert_emoticon.png
│ │ │ │ ├── ic_markunread_light.png
│ │ │ │ ├── ic_mult_quote_dark.png
│ │ │ │ ├── ic_thumb_up_outline.png
│ │ │ │ ├── ic_action_send_light.png
│ │ │ │ ├── ic_star_light_outline.png
│ │ │ │ ├── ic_star_outline_light.png
│ │ │ │ ├── ic_account_circle_light.png
│ │ │ │ ├── ic_action_send_disabled.png
│ │ │ │ ├── ic_action_star_outline.png
│ │ │ │ ├── ic_thumb_up_dark_outline.png
│ │ │ │ └── ic_action_markunread_light.png
│ │ │ ├── drawable-xhdpi
│ │ │ │ ├── add.png
│ │ │ │ ├── forum.png
│ │ │ │ ├── help.png
│ │ │ │ ├── logo.png
│ │ │ │ ├── news.png
│ │ │ │ ├── phone.png
│ │ │ │ ├── reply.png
│ │ │ │ ├── create.png
│ │ │ │ ├── delete.png
│ │ │ │ ├── favorite.png
│ │ │ │ ├── ic_lock.png
│ │ │ │ ├── ic_pin.png
│ │ │ │ ├── message.png
│ │ │ │ ├── person.png
│ │ │ │ ├── settings.png
│ │ │ │ ├── skip_next.png
│ │ │ │ ├── chevron_left.png
│ │ │ │ ├── chevron_right.png
│ │ │ │ ├── delete_light.png
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_quote_dark.png
│ │ │ │ ├── ic_star_light.png
│ │ │ │ ├── ic_xda_logo.png
│ │ │ │ ├── info_outline.png
│ │ │ │ ├── line_divider.png
│ │ │ │ ├── notifications.png
│ │ │ │ ├── skip_previous.png
│ │ │ │ ├── account_circle.png
│ │ │ │ ├── ic_action_menu.png
│ │ │ │ ├── ic_action_send.png
│ │ │ │ ├── ic_action_star.png
│ │ │ │ ├── ic_search_dark.png
│ │ │ │ ├── ic_search_light.png
│ │ │ │ ├── item_checked.9.png
│ │ │ │ ├── item_focused.9.png
│ │ │ │ ├── item_pressed.9.png
│ │ │ │ ├── person_outline.png
│ │ │ │ ├── action_bar_ic_menu.png
│ │ │ │ ├── favorite_outline.png
│ │ │ │ ├── ic_action_delete.png
│ │ │ │ ├── ic_insert_emoticon.png
│ │ │ │ ├── ic_mult_quote_dark.png
│ │ │ │ ├── ic_thumb_up_dark.png
│ │ │ │ ├── item_activated.9.png
│ │ │ │ ├── nav_drawer_closed.png
│ │ │ │ ├── ic_action_send_light.png
│ │ │ │ ├── ic_markunread_light.png
│ │ │ │ ├── ic_thumb_up_outline.png
│ │ │ │ ├── list_focused_holo.9.png
│ │ │ │ ├── ic_account_circle_light.png
│ │ │ │ ├── ic_action_send_disabled.png
│ │ │ │ ├── ic_action_star_outline.png
│ │ │ │ ├── ic_star_light_outline.png
│ │ │ │ ├── ic_star_outline_light.png
│ │ │ │ ├── ic_thumb_up_dark_outline.png
│ │ │ │ ├── list_pressed_holo_dark.9.png
│ │ │ │ ├── ic_action_markunread_light.png
│ │ │ │ ├── list_longpressed_holo_dark.9.png
│ │ │ │ └── list_selector_disabled_holo_dark.9.png
│ │ │ ├── drawable-xxhdpi
│ │ │ │ ├── logo.png
│ │ │ │ ├── ic_lock.png
│ │ │ │ ├── ic_pin.png
│ │ │ │ ├── skip_next.png
│ │ │ │ ├── chevron_left.png
│ │ │ │ ├── ic_feed_icon.png
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_xda_logo.png
│ │ │ │ ├── chevron_right.png
│ │ │ │ ├── ic_action_menu.png
│ │ │ │ ├── ic_action_send.png
│ │ │ │ ├── ic_action_star.png
│ │ │ │ ├── ic_quote_dark.png
│ │ │ │ ├── ic_search_dark.png
│ │ │ │ ├── ic_star_light.png
│ │ │ │ ├── skip_previous.png
│ │ │ │ ├── ic_action_delete.png
│ │ │ │ ├── ic_search_light.png
│ │ │ │ ├── ic_thumb_up_dark.png
│ │ │ │ ├── ic_insert_emoticon.png
│ │ │ │ ├── ic_markunread_light.png
│ │ │ │ ├── ic_mult_quote_dark.png
│ │ │ │ ├── ic_thumb_up_outline.png
│ │ │ │ ├── ic_action_send_light.png
│ │ │ │ ├── ic_action_star_outline.png
│ │ │ │ ├── ic_star_light_outline.png
│ │ │ │ ├── ic_star_outline_light.png
│ │ │ │ ├── ic_account_circle_light.png
│ │ │ │ ├── ic_action_send_disabled.png
│ │ │ │ ├── ic_thumb_up_dark_outline.png
│ │ │ │ └── ic_action_markunread_light.png
│ │ │ ├── drawable-xxxhdpi
│ │ │ │ ├── logo.png
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_insert_emoticon.png
│ │ │ ├── values-v21
│ │ │ │ ├── dimens.xml
│ │ │ │ └── styles.xml
│ │ │ ├── drawable-xhdpi-v19
│ │ │ │ ├── abc_list_longpressed_holo.9.png
│ │ │ │ └── abc_list_pressed_holo_light.9.png
│ │ │ ├── drawable-v21
│ │ │ │ ├── fab_drawable.xml
│ │ │ │ └── fab_background.xml
│ │ │ ├── layout
│ │ │ │ ├── user_profile_header_dummy.xml
│ │ │ │ ├── post_list_section.xml
│ │ │ │ ├── frame_activity.xml
│ │ │ │ ├── avatar_image_view.xml
│ │ │ │ ├── select_emoticon_grid_item.xml
│ │ │ │ ├── quote_mention_fragment.xml
│ │ │ │ ├── action_bar_list_item.xml
│ │ │ │ ├── load_more_progress_bar_only.xml
│ │ │ │ ├── sliding_tabs_default_tab_view.xml
│ │ │ │ ├── default_content_edit_text.xml
│ │ │ │ ├── select_emoticon_fragment.xml
│ │ │ │ ├── list_view_header.xml
│ │ │ │ ├── message_fragment.xml
│ │ │ │ ├── news_fragment.xml
│ │ │ │ ├── forum_fragment.xml
│ │ │ │ ├── quote_post_list_section.xml
│ │ │ │ ├── navigation_drawer_fragment.xml
│ │ │ │ ├── attachment_image_view.xml
│ │ │ │ ├── post_page_dropdown.xml
│ │ │ │ ├── recycler_inside_refresh.xml
│ │ │ │ ├── post_fragment.xml
│ │ │ │ ├── load_more_progress_bar.xml
│ │ │ │ ├── subscribed_fragment.xml
│ │ │ │ ├── default_list_empty_view.xml
│ │ │ │ ├── find_your_device_fragment.xml
│ │ │ │ ├── hierarchy_spinner_item.xml
│ │ │ │ ├── forum_pager_fragment.xml
│ │ │ │ ├── my_device_fragment.xml
│ │ │ │ ├── user_selector_logging_in.xml
│ │ │ │ ├── user_selector_dropdown.xml
│ │ │ │ ├── quote_mention_pager_fragment.xml
│ │ │ │ ├── fragment_user_profile_about.xml
│ │ │ │ ├── thread_fragment.xml
│ │ │ │ ├── user_selector_view.xml
│ │ │ │ ├── subscribed_forum_fragment.xml
│ │ │ │ ├── attachment_file_view.xml
│ │ │ │ ├── message_pager_fragment.xml
│ │ │ │ ├── find_device_suggestion_list_item.xml
│ │ │ │ └── main_activity.xml
│ │ │ ├── menu
│ │ │ │ ├── user_profile_ab.xml
│ │ │ │ ├── create_post_ab.xml
│ │ │ │ ├── post_fragment_cab.xml
│ │ │ │ ├── context_menu.xml
│ │ │ │ ├── create_thread_or_message_ab.xml
│ │ │ │ ├── post_pager_fragment_ab.xml
│ │ │ │ ├── search_ab.xml
│ │ │ │ ├── find_device_ab.xml
│ │ │ │ ├── forum_pager_ab.xml
│ │ │ │ ├── thread_context_menu.xml
│ │ │ │ ├── view_message_fragment_ab.xml
│ │ │ │ ├── forum_fragment_cab.xml
│ │ │ │ ├── thread_fragment_cab.xml
│ │ │ │ └── post_context_menu.xml
│ │ │ ├── layout-v21
│ │ │ │ └── floating_action_button.xml
│ │ │ └── anim
│ │ │ │ ├── slide_in_left.xml
│ │ │ │ ├── slide_in_right.xml
│ │ │ │ ├── slide_out_left.xml
│ │ │ │ └── slide_out_right.xml
│ │ └── java
│ │ │ ├── com
│ │ │ ├── xda
│ │ │ │ └── one
│ │ │ │ │ ├── event
│ │ │ │ │ ├── Event.java
│ │ │ │ │ ├── message
│ │ │ │ │ │ ├── MessageSendingFailedEvent.java
│ │ │ │ │ │ ├── MessageSentEvent.java
│ │ │ │ │ │ ├── MessageDeletedEvent.java
│ │ │ │ │ │ ├── MessageStatusToggledEvent.java
│ │ │ │ │ │ └── MessageEvent.java
│ │ │ │ │ ├── post
│ │ │ │ │ │ ├── PostCreatedEvent.java
│ │ │ │ │ │ └── PostCreationFailedEvent.java
│ │ │ │ │ ├── user
│ │ │ │ │ │ ├── UserLoginEvent.java
│ │ │ │ │ │ ├── UserLoginFailedEvent.java
│ │ │ │ │ │ ├── UserProfileFailedEvent.java
│ │ │ │ │ │ └── UserProfileEvent.java
│ │ │ │ │ ├── forum
│ │ │ │ │ │ ├── ForumSubscriptionChangingFailedEvent.java
│ │ │ │ │ │ └── ForumSubscriptionChangedEvent.java
│ │ │ │ │ └── thread
│ │ │ │ │ │ ├── ThreadSubscriptionChangingFailedEvent.java
│ │ │ │ │ │ └── ThreadSubscriptionChangedEvent.java
│ │ │ │ │ ├── ui
│ │ │ │ │ ├── AboutActivity.java
│ │ │ │ │ ├── HelpActivity.java
│ │ │ │ │ ├── SettingsActivity.java
│ │ │ │ │ ├── BaseActivity.java
│ │ │ │ │ ├── thread
│ │ │ │ │ │ ├── ThreadClickStrategy.java
│ │ │ │ │ │ ├── ThreadLoaderStrategy.java
│ │ │ │ │ │ ├── DefaultThreadLoaderStrategy.java
│ │ │ │ │ │ ├── SubscribedThreadLoaderStrategy.java
│ │ │ │ │ │ ├── ParticipatedThreadLoaderStrategy.java
│ │ │ │ │ │ └── FirstThreadClickStrategy.java
│ │ │ │ │ ├── widget
│ │ │ │ │ │ ├── XDARefreshLayout.java
│ │ │ │ │ │ └── NonSwipeableViewPager.java
│ │ │ │ │ ├── listener
│ │ │ │ │ │ ├── AvatarClickListener.java
│ │ │ │ │ │ ├── NonEmptyTextViewListener.java
│ │ │ │ │ │ ├── MultipleNonEmptyTextViewListener.java
│ │ │ │ │ │ └── RecyclerEndHelper.java
│ │ │ │ │ ├── helper
│ │ │ │ │ │ └── CancellableCallbackHelper.java
│ │ │ │ │ ├── PostFragmentAdapter.java
│ │ │ │ │ ├── UserProfileActivity.java
│ │ │ │ │ ├── ViewMessageActivity.java
│ │ │ │ │ └── PostPageAdapter.java
│ │ │ │ │ ├── api
│ │ │ │ │ ├── misc
│ │ │ │ │ │ ├── Consumer.java
│ │ │ │ │ │ └── EventBus.java
│ │ │ │ │ ├── model
│ │ │ │ │ │ ├── interfaces
│ │ │ │ │ │ │ ├── container
│ │ │ │ │ │ │ │ ├── QuoteContainer.java
│ │ │ │ │ │ │ │ ├── MentionContainer.java
│ │ │ │ │ │ │ │ ├── MessageContainer.java
│ │ │ │ │ │ │ │ ├── UnifiedThreadContainer.java
│ │ │ │ │ │ │ │ └── PostContainer.java
│ │ │ │ │ │ │ ├── Forum.java
│ │ │ │ │ │ │ ├── Quote.java
│ │ │ │ │ │ │ ├── Mention.java
│ │ │ │ │ │ │ ├── News.java
│ │ │ │ │ │ │ ├── Post.java
│ │ │ │ │ │ │ ├── Message.java
│ │ │ │ │ │ │ └── UnifiedThread.java
│ │ │ │ │ │ ├── request
│ │ │ │ │ │ │ ├── RequestThanks.java
│ │ │ │ │ │ │ ├── RequestThreadSubscription.java
│ │ │ │ │ │ │ ├── RequestNewPost.java
│ │ │ │ │ │ │ ├── RequestThread.java
│ │ │ │ │ │ │ ├── RequestMessage.java
│ │ │ │ │ │ │ ├── RequestRegisterUser.java
│ │ │ │ │ │ │ └── RequestPostAttachment.java
│ │ │ │ │ │ └── response
│ │ │ │ │ │ │ ├── container
│ │ │ │ │ │ │ ├── ResponseForumContainer.java
│ │ │ │ │ │ │ ├── ResponseQuoteContainer.java
│ │ │ │ │ │ │ ├── ResponseMessageContainer.java
│ │ │ │ │ │ │ ├── ResponseMentionContainer.java
│ │ │ │ │ │ │ └── ResponseUnifiedThreadContainer.java
│ │ │ │ │ │ │ ├── ResponseUserProfileNotification.java
│ │ │ │ │ │ │ └── ResponseAvatar.java
│ │ │ │ │ └── inteface
│ │ │ │ │ │ ├── NewsClient.java
│ │ │ │ │ │ ├── PrivateMessageClient.java
│ │ │ │ │ │ ├── ThreadClient.java
│ │ │ │ │ │ ├── UserClient.java
│ │ │ │ │ │ ├── ForumClient.java
│ │ │ │ │ │ └── PostClient.java
│ │ │ │ │ ├── model
│ │ │ │ │ ├── misc
│ │ │ │ │ │ └── ForumType.java
│ │ │ │ │ └── augmented
│ │ │ │ │ │ └── container
│ │ │ │ │ │ ├── AugmentedQuoteContainer.java
│ │ │ │ │ │ ├── AugmentedUnifiedThreadContainer.java
│ │ │ │ │ │ ├── AugmentedMentionContainer.java
│ │ │ │ │ │ └── AugmentedMessageContainer.java
│ │ │ │ │ ├── loader
│ │ │ │ │ ├── FindYouDeviceLoader.java
│ │ │ │ │ ├── SubscribedForumLoader.java
│ │ │ │ │ ├── NewsLoader.java
│ │ │ │ │ ├── UserProfileLoader.java
│ │ │ │ │ ├── QuoteLoader.java
│ │ │ │ │ ├── MentionLoader.java
│ │ │ │ │ ├── SubscribedThreadLoader.java
│ │ │ │ │ ├── ParticipatedThreadLoader.java
│ │ │ │ │ ├── ThreadLoader.java
│ │ │ │ │ ├── PostLoader.java
│ │ │ │ │ └── MessageLoader.java
│ │ │ │ │ ├── util
│ │ │ │ │ ├── StringUtils.java
│ │ │ │ │ └── CompatUtils.java
│ │ │ │ │ ├── constants
│ │ │ │ │ └── XDAConstants.java
│ │ │ │ │ └── auth
│ │ │ │ │ └── XDAAuthenticatorActivity.java
│ │ │ ├── dd
│ │ │ │ └── xda
│ │ │ │ │ └── StateManager.java
│ │ │ └── mobsandgeeks
│ │ │ │ └── adapters
│ │ │ │ └── Sectionizer.java
│ │ │ └── android
│ │ │ └── support
│ │ │ └── v7
│ │ │ └── widget
│ │ │ └── XDALinerLayoutManager.java
│ ├── debug
│ │ ├── res
│ │ │ └── values
│ │ │ │ ├── search.xml
│ │ │ │ └── placeholders.xml
│ │ └── AndroidManifest.xml
│ ├── release
│ │ ├── res
│ │ │ └── values
│ │ │ │ ├── search.xml
│ │ │ │ └── placeholders.xml
│ │ └── AndroidManifest.xml
│ ├── simple
│ │ └── java
│ │ │ └── com
│ │ │ └── xda
│ │ │ └── one
│ │ │ └── util
│ │ │ └── CrashUtils.java
│ └── full
│ │ └── java
│ │ └── com
│ │ └── xda
│ │ └── one
│ │ └── util
│ │ └── CrashUtils.java
├── newrelic.properties
├── libs
│ └── kefirbb-1.1-SNAPSHOT.jar
└── lint.xml
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── .gitignore
├── proguard-project.txt
└── README.md
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':android'
--------------------------------------------------------------------------------
/android/src/main/res/values/arrays.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/newrelic.properties:
--------------------------------------------------------------------------------
1 | com.newrelic.application_token=AA31aa88f94b9a9db9fba799fdb1112f100438c79f
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/event/Event.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.event;
2 |
3 | public class Event {
4 |
5 | }
--------------------------------------------------------------------------------
/android/libs/kefirbb-1.1-SNAPSHOT.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/libs/kefirbb-1.1-SNAPSHOT.jar
--------------------------------------------------------------------------------
/android/src/main/res/drawable/cool.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/cool.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/eek.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/eek.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/good.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/good.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/mad.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/mad.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/wink.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/wink.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/angel.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/angel.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/cowboy.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/cowboy.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/crying.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/crying.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/frown.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/frown.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/laugh.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/laugh.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/silly.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/silly.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/smile.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/smile.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/tongue.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/tongue.gif
--------------------------------------------------------------------------------
/android/src/main/res/xml/xda_account_prefs.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/logo.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/logo.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/add.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable/biggrin.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/biggrin.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/confused.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/confused.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/cyclops.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/cyclops.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/highfive.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/highfive.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/redface.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/redface.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/rolleyes.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/rolleyes.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable/victory.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/victory.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_pin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_pin.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_pin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_pin.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/forum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/forum.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/help.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/logo.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/news.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/news.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/phone.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/phone.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/reply.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/reply.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/logo.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_lock.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/skip_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/skip_next.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_lock.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/skip_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/skip_next.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/create.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/create.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/delete.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/favorite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/favorite.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_lock.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_pin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_pin.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/message.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/person.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/person.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/settings.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_lock.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_pin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_pin.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxxhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxxhdpi/logo.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable/unknown_avatar.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/unknown_avatar.jpg
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/AboutActivity.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui;
2 |
3 | public class AboutActivity extends BaseActivity {
4 |
5 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/HelpActivity.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui;
2 |
3 | public class HelpActivity extends BaseActivity {
4 |
5 | }
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_xda_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_xda_logo.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_xda_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_xda_logo.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/skip_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/skip_next.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/skip_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/skip_next.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable/fingers_crossed.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable/fingers_crossed.gif
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/chevron_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/chevron_left.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/chevron_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/chevron_right.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_action_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_action_menu.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_action_send.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_action_send.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_action_star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_action_star.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_feed_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_feed_icon.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_quote_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_quote_dark.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_search_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_search_dark.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_star_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_star_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/line_divider.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/line_divider.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/skip_previous.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/skip_previous.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/chevron_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/chevron_left.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/chevron_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/chevron_right.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_action_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_action_menu.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_action_send.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_action_send.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_action_star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_action_star.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_feed_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_feed_icon.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_quote_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_quote_dark.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_search_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_search_dark.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_star_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_star_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/line_divider.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/line_divider.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/skip_previous.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/skip_previous.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/chevron_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/chevron_left.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/chevron_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/chevron_right.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/delete_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/delete_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_quote_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_quote_dark.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_star_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_star_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_xda_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_xda_logo.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/info_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/info_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/line_divider.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/line_divider.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/notifications.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/notifications.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/skip_previous.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/skip_previous.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/chevron_left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/chevron_left.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_feed_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_feed_icon.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_xda_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_xda_logo.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/SettingsActivity.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui;
2 |
3 | public class SettingsActivity extends BaseActivity {
4 |
5 | }
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_action_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_action_delete.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_search_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_search_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_thumb_up_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_thumb_up_dark.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_action_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_action_delete.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_search_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_search_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_thumb_up_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_thumb_up_dark.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/account_circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/account_circle.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_action_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_action_menu.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_action_send.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_action_send.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_action_star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_action_star.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_search_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_search_dark.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_search_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_search_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/item_checked.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/item_checked.9.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/item_focused.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/item_focused.9.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/item_pressed.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/item_pressed.9.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/person_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/person_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/chevron_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/chevron_right.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_action_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_action_menu.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_action_send.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_action_send.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_action_star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_action_star.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_quote_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_quote_dark.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_search_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_search_dark.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_star_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_star_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/skip_previous.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/skip_previous.png
--------------------------------------------------------------------------------
/android/src/main/res/values-v21/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 56dp
4 |
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/action_bar_ic_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/action_bar_ic_menu.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_insert_emoticon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_insert_emoticon.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_markunread_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_markunread_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_mult_quote_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_mult_quote_dark.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_thumb_up_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_thumb_up_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/action_bar_ic_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/action_bar_ic_menu.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_insert_emoticon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_insert_emoticon.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_markunread_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_markunread_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_mult_quote_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_mult_quote_dark.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_thumb_up_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_thumb_up_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/action_bar_ic_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/action_bar_ic_menu.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/favorite_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/favorite_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_action_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_action_delete.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_insert_emoticon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_insert_emoticon.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_mult_quote_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_mult_quote_dark.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_thumb_up_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_thumb_up_dark.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/item_activated.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/item_activated.9.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/nav_drawer_closed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/nav_drawer_closed.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_action_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_action_delete.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_search_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_search_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_thumb_up_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_thumb_up_dark.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_action_send_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_action_send_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_star_light_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_star_light_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_star_outline_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_star_outline_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_action_send_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_action_send_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_star_light_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_star_light_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_star_outline_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_star_outline_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_action_send_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_action_send_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_markunread_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_markunread_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_thumb_up_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_thumb_up_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/list_focused_holo.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/list_focused_holo.9.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_insert_emoticon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_insert_emoticon.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_markunread_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_markunread_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_mult_quote_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_mult_quote_dark.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_thumb_up_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_thumb_up_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxxhdpi/ic_insert_emoticon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxxhdpi/ic_insert_emoticon.png
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/misc/Consumer.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.misc;
2 |
3 | public interface Consumer {
4 |
5 | public void run(T data);
6 | }
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_account_circle_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_account_circle_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_action_send_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_action_send_disabled.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_action_star_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_action_star_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_thumb_up_dark_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_thumb_up_dark_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_account_circle_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_account_circle_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_action_send_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_action_send_disabled.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_action_star_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_action_star_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_thumb_up_dark_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_thumb_up_dark_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_account_circle_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_account_circle_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_action_send_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_action_send_disabled.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_action_star_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_action_star_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_star_light_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_star_light_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_star_outline_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_star_outline_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_action_send_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_action_send_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_action_star_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_action_star_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_star_light_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_star_light_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_star_outline_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_star_outline_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-hdpi/ic_action_markunread_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-hdpi/ic_action_markunread_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-mdpi/ic_action_markunread_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-mdpi/ic_action_markunread_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_thumb_up_dark_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_thumb_up_dark_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/list_pressed_holo_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/list_pressed_holo_dark.9.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_account_circle_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_account_circle_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_action_send_disabled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_action_send_disabled.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_thumb_up_dark_outline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_thumb_up_dark_outline.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/ic_action_markunread_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/ic_action_markunread_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/list_longpressed_holo_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/list_longpressed_holo_dark.9.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xxhdpi/ic_action_markunread_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xxhdpi/ic_action_markunread_light.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi-v19/abc_list_longpressed_holo.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi-v19/abc_list_longpressed_holo.9.png
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi-v19/abc_list_pressed_holo_light.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi-v19/abc_list_pressed_holo_light.9.png
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/event/message/MessageSendingFailedEvent.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.event.message;
2 |
3 | public class MessageSendingFailedEvent extends MessageEvent {
4 |
5 | }
--------------------------------------------------------------------------------
/android/src/main/res/drawable-xhdpi/list_selector_disabled_holo_dark.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/xda/XDA-One/HEAD/android/src/main/res/drawable-xhdpi/list_selector_disabled_holo_dark.9.png
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/event/post/PostCreatedEvent.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.event.post;
2 |
3 | import com.xda.one.event.Event;
4 |
5 | public class PostCreatedEvent extends Event {
6 |
7 | }
--------------------------------------------------------------------------------
/android/src/debug/res/values/search.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | com.xda.one.dev.search.searchcontentprovider
4 |
--------------------------------------------------------------------------------
/android/src/release/res/values/search.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | com.xda.one.search.searchcontentprovider
4 |
--------------------------------------------------------------------------------
/android/src/release/res/values/placeholders.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/event/post/PostCreationFailedEvent.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.event.post;
2 |
3 | import com.xda.one.event.Event;
4 |
5 | public class PostCreationFailedEvent extends Event {
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/android/src/main/res/drawable/fab_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/event/message/MessageSentEvent.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.event.message;
2 |
3 | public class MessageSentEvent extends MessageEvent {
4 |
5 | public MessageSentEvent() {
6 | super();
7 | }
8 | }
--------------------------------------------------------------------------------
/android/src/main/res/drawable-v21/fab_drawable.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/user_profile_header_dummy.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/android/src/main/res/menu/user_profile_ab.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/res/drawable-v21/fab_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/post_list_section.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Dec 15 12:43:26 EST 2014
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
7 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/frame_activity.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/simple/java/com/xda/one/util/CrashUtils.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.util;
2 |
3 | import android.content.Context;
4 |
5 | public class CrashUtils {
6 |
7 | public static void startCrashlytics(final Context context) {
8 | // Do nothing - this is the simple version
9 | }
10 | }
--------------------------------------------------------------------------------
/android/src/main/res/layout/avatar_image_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
--------------------------------------------------------------------------------
/android/src/main/res/xml/search_forums_searchable.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/event/message/MessageDeletedEvent.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.event.message;
2 |
3 | import com.xda.one.api.model.interfaces.Message;
4 |
5 | public class MessageDeletedEvent extends MessageEvent {
6 |
7 | public MessageDeletedEvent(final Message message) {
8 | super(message);
9 | }
10 | }
--------------------------------------------------------------------------------
/android/src/main/res/drawable/selectable_item_background_test.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/android/src/main/res/drawable/send_button_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/android/src/full/java/com/xda/one/util/CrashUtils.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.util;
2 |
3 | import com.crashlytics.android.Crashlytics;
4 |
5 | import android.content.Context;
6 |
7 | public class CrashUtils {
8 |
9 | public static void startCrashlytics(final Context context) {
10 | Crashlytics.start(context);
11 | }
12 | }
--------------------------------------------------------------------------------
/android/src/main/res/drawable/fadingab__gradient.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
9 |
10 |
--------------------------------------------------------------------------------
/android/src/main/res/layout-v21/floating_action_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/select_emoticon_grid_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/event/message/MessageStatusToggledEvent.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.event.message;
2 |
3 | import com.xda.one.api.model.interfaces.Message;
4 |
5 | public class MessageStatusToggledEvent extends MessageEvent {
6 |
7 | public MessageStatusToggledEvent(final Message message) {
8 | super(message);
9 | }
10 | }
--------------------------------------------------------------------------------
/android/src/main/res/menu/create_post_ab.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/res/menu/post_fragment_cab.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/res/menu/context_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/res/menu/create_thread_or_message_ab.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/event/user/UserLoginEvent.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.event.user;
2 |
3 | import com.xda.one.auth.XDAAccount;
4 | import com.xda.one.event.Event;
5 |
6 | public class UserLoginEvent extends Event {
7 |
8 | public final XDAAccount account;
9 |
10 | public UserLoginEvent(final XDAAccount account) {
11 | this.account = account;
12 | }
13 | }
--------------------------------------------------------------------------------
/android/src/main/res/xml/xda_authenticator.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/BaseActivity.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui;
2 |
3 | import com.xda.one.util.OneApplication;
4 |
5 | import android.support.v7.app.ActionBarActivity;
6 |
7 | public abstract class BaseActivity extends ActionBarActivity {
8 |
9 | public OneApplication getOneApplication() {
10 | return (OneApplication) super.getApplication();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/event/user/UserLoginFailedEvent.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.event.user;
2 |
3 | import com.xda.one.api.misc.Result;
4 | import com.xda.one.event.Event;
5 |
6 | public class UserLoginFailedEvent extends Event {
7 |
8 | public final Result result;
9 |
10 | public UserLoginFailedEvent(final Result result) {
11 | this.result = result;
12 | }
13 | }
--------------------------------------------------------------------------------
/android/src/main/res/layout/quote_mention_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/event/user/UserProfileFailedEvent.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.event.user;
2 |
3 | import com.xda.one.api.misc.Result;
4 | import com.xda.one.event.Event;
5 |
6 | public class UserProfileFailedEvent extends Event {
7 |
8 | public final Result result;
9 |
10 | public UserProfileFailedEvent(final Result result) {
11 | this.result = result;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/action_bar_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
--------------------------------------------------------------------------------
/android/src/main/res/drawable/fadingab__gradient_light.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
12 |
--------------------------------------------------------------------------------
/android/lint.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/src/main/res/menu/post_pager_fragment_ab.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/event/forum/ForumSubscriptionChangingFailedEvent.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.event.forum;
2 |
3 | import com.xda.one.api.model.interfaces.Forum;
4 | import com.xda.one.event.Event;
5 |
6 | public class ForumSubscriptionChangingFailedEvent extends Event {
7 |
8 | public final Forum forum;
9 |
10 | public ForumSubscriptionChangingFailedEvent(final Forum forum) {
11 | this.forum = forum;
12 | }
13 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/interfaces/container/QuoteContainer.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.interfaces.container;
2 |
3 | import com.xda.one.api.model.interfaces.Quote;
4 |
5 | import java.util.List;
6 |
7 | public interface QuoteContainer {
8 |
9 | public List extends Quote> getQuotes();
10 |
11 | public int getTotalPages();
12 |
13 | public int getPerPage();
14 |
15 | public int getCurrentPage();
16 | }
17 |
--------------------------------------------------------------------------------
/android/src/release/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
11 |
12 |
--------------------------------------------------------------------------------
/android/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
11 |
12 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/interfaces/container/MentionContainer.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.interfaces.container;
2 |
3 | import com.xda.one.api.model.interfaces.Mention;
4 |
5 | import java.util.List;
6 |
7 | public interface MentionContainer {
8 |
9 | public List extends Mention> getMentions();
10 |
11 | public int getTotalPages();
12 |
13 | public int getPerPage();
14 |
15 | public int getCurrentPage();
16 | }
17 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/interfaces/container/MessageContainer.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.interfaces.container;
2 |
3 | import com.xda.one.api.model.interfaces.Message;
4 |
5 | import java.util.List;
6 |
7 | public interface MessageContainer {
8 |
9 | public List extends Message> getMessages();
10 |
11 | public int getTotalPages();
12 |
13 | public int getMessagesPerPage();
14 |
15 | public int getCurrentPage();
16 | }
17 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/event/message/MessageEvent.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.event.message;
2 |
3 | import com.xda.one.api.model.interfaces.Message;
4 | import com.xda.one.event.Event;
5 |
6 | public class MessageEvent extends Event {
7 |
8 | public final Message message;
9 |
10 | public MessageEvent() {
11 | message = null;
12 | }
13 |
14 | public MessageEvent(final Message message) {
15 | this.message = message;
16 | }
17 | }
--------------------------------------------------------------------------------
/android/src/main/res/anim/slide_in_left.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
--------------------------------------------------------------------------------
/android/src/main/res/anim/slide_in_right.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
--------------------------------------------------------------------------------
/android/src/main/res/drawable/test.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/interfaces/container/UnifiedThreadContainer.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.interfaces.container;
2 |
3 | import com.xda.one.api.model.interfaces.UnifiedThread;
4 |
5 | import java.util.List;
6 |
7 | public interface UnifiedThreadContainer {
8 |
9 | public List extends UnifiedThread> getThreads();
10 |
11 | public int getTotalPages();
12 |
13 | public int getPerPage();
14 |
15 | public int getCurrentPage();
16 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/event/thread/ThreadSubscriptionChangingFailedEvent.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.event.thread;
2 |
3 | import com.xda.one.api.model.interfaces.UnifiedThread;
4 | import com.xda.one.event.Event;
5 |
6 | public class ThreadSubscriptionChangingFailedEvent extends Event {
7 |
8 | public final UnifiedThread thread;
9 |
10 | public ThreadSubscriptionChangingFailedEvent(final UnifiedThread thread) {
11 | this.thread = thread;
12 | }
13 | }
--------------------------------------------------------------------------------
/android/src/main/res/anim/slide_out_left.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
--------------------------------------------------------------------------------
/android/src/main/res/anim/slide_out_right.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/request/RequestThanks.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 |
5 | public class RequestThanks {
6 |
7 | private final String mPostId;
8 |
9 | public RequestThanks(final int postId) {
10 | mPostId = String.valueOf(postId);
11 | }
12 |
13 | @JsonProperty(value = "postid")
14 | public String getPostId() {
15 | return mPostId;
16 | }
17 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/thread/ThreadClickStrategy.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui.thread;
2 |
3 | import com.xda.one.model.augmented.AugmentedUnifiedThread;
4 |
5 | import android.os.Parcelable;
6 | import android.support.v4.app.Fragment;
7 |
8 | import java.util.List;
9 |
10 | public interface ThreadClickStrategy extends Parcelable {
11 |
12 | void onClick(final Fragment fragment, final List hierarchy,
13 | final AugmentedUnifiedThread unifiedThread);
14 | }
--------------------------------------------------------------------------------
/android/src/main/res/layout/load_more_progress_bar_only.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/res/menu/search_ab.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/request/RequestThreadSubscription.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 |
5 | public class RequestThreadSubscription {
6 |
7 | private final String mThreadId;
8 |
9 | public RequestThreadSubscription(String threadId) {
10 | mThreadId = threadId;
11 | }
12 |
13 | @JsonProperty(value = "threadid")
14 | public String getThreadId() {
15 | return mThreadId;
16 | }
17 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/thread/ThreadLoaderStrategy.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui.thread;
2 |
3 | import com.xda.one.model.augmented.container.AugmentedUnifiedThreadContainer;
4 |
5 | import android.content.Context;
6 | import android.os.Parcelable;
7 | import android.support.v4.content.Loader;
8 |
9 | public interface ThreadLoaderStrategy extends Parcelable {
10 |
11 | Loader createLoader(final Context context,
12 | final int forumId, final int currentPage);
13 | }
--------------------------------------------------------------------------------
/android/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/android/src/main/res/menu/find_device_ab.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/res/menu/forum_pager_ab.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/sliding_tabs_default_tab_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/res/menu/thread_context_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/default_content_edit_text.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/event/forum/ForumSubscriptionChangedEvent.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.event.forum;
2 |
3 | import com.xda.one.api.model.interfaces.Forum;
4 | import com.xda.one.event.Event;
5 |
6 | public class ForumSubscriptionChangedEvent extends Event {
7 |
8 | public final Forum forum;
9 |
10 | public final boolean isNowSubscribed;
11 |
12 | public ForumSubscriptionChangedEvent(final Forum forum, final boolean isNowSubscribed) {
13 | this.forum = forum;
14 | this.isNowSubscribed = isNowSubscribed;
15 | }
16 | }
--------------------------------------------------------------------------------
/android/src/main/res/layout/select_emoticon_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
13 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/inteface/NewsClient.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.inteface;
2 |
3 | import com.xda.one.api.misc.EventBus;
4 | import com.xda.one.api.model.response.container.ResponseNewsContainer;
5 | import com.xda.one.api.model.response.container.ResponsePostContainer;
6 |
7 | import retrofit.Callback;
8 |
9 | public interface NewsClient {
10 |
11 | public EventBus getBus();
12 |
13 | public ResponseNewsContainer getNews(final int page);
14 |
15 | public void getNewsAsync(final int page, final Callback consumer);
16 | }
17 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/list_view_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
--------------------------------------------------------------------------------
/android/src/main/res/drawable/selectable_item_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/model/misc/ForumType.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.model.misc;
2 |
3 | import com.xda.one.R;
4 |
5 | public enum ForumType {
6 | TOP(R.string.forum_home_title),
7 | NEWEST(R.string.forum_home_title),
8 | GENERAL(R.string.forum_home_title),
9 | ALL(R.string.forum_home_title),
10 | CHILD(R.string.placeholder);
11 |
12 | private final int mStringTitleId;
13 |
14 | ForumType(int stringId) {
15 | mStringTitleId = stringId;
16 | }
17 |
18 | public int getStringTitleId() {
19 | return mStringTitleId;
20 | }
21 | }
--------------------------------------------------------------------------------
/android/src/main/res/layout/message_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
14 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/misc/EventBus.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.misc;
2 |
3 | import com.squareup.otto.Bus;
4 | import com.squareup.otto.ThreadEnforcer;
5 | import com.xda.one.event.Event;
6 |
7 | public class EventBus {
8 |
9 | private final Bus mBus = new Bus(ThreadEnforcer.ANY);
10 |
11 | public void register(Object object) {
12 | mBus.register(object);
13 | }
14 |
15 | public void unregister(Object object) {
16 | mBus.unregister(object);
17 | }
18 |
19 | public void post(Event event) {
20 | mBus.post(event);
21 | }
22 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/event/thread/ThreadSubscriptionChangedEvent.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.event.thread;
2 |
3 | import com.xda.one.api.model.interfaces.UnifiedThread;
4 | import com.xda.one.event.Event;
5 |
6 | public class ThreadSubscriptionChangedEvent extends Event {
7 |
8 | public final UnifiedThread thread;
9 |
10 | public final boolean isNowSubscribed;
11 |
12 | public ThreadSubscriptionChangedEvent(final UnifiedThread thread,
13 | final boolean isNowSubscribed) {
14 | this.thread = thread;
15 | this.isNowSubscribed = isNowSubscribed;
16 | }
17 | }
--------------------------------------------------------------------------------
/android/src/main/res/layout/news_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
14 |
--------------------------------------------------------------------------------
/android/src/main/res/xml/global_tracker.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 300
4 |
5 |
6 | true
7 |
8 |
9 |
10 |
11 | XDA-One MainActivity
12 |
13 |
14 |
15 | UA-12268453-6
16 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/interfaces/container/PostContainer.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.interfaces.container;
2 |
3 | import com.xda.one.api.model.interfaces.Post;
4 | import com.xda.one.api.model.response.ResponseUnifiedThread;
5 |
6 | import android.os.Parcelable;
7 |
8 | import java.util.List;
9 |
10 | public interface PostContainer extends Parcelable {
11 |
12 | List extends Post> getPosts();
13 |
14 | int getTotalPages();
15 |
16 | int getPerPage();
17 |
18 | int getCurrentPage();
19 |
20 | int getIndex();
21 |
22 | ResponseUnifiedThread getThread();
23 | }
24 |
--------------------------------------------------------------------------------
/android/src/main/res/menu/view_message_fragment_ab.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/event/user/UserProfileEvent.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.event.user;
2 |
3 | import com.xda.one.api.model.response.ResponseUserProfile;
4 | import com.xda.one.auth.XDAAccount;
5 | import com.xda.one.event.Event;
6 |
7 | public class UserProfileEvent extends Event {
8 |
9 | public final ResponseUserProfile userProfile;
10 |
11 | public final XDAAccount account;
12 |
13 | public UserProfileEvent(final XDAAccount account,
14 | final ResponseUserProfile responseUserProfile) {
15 | this.account = account;
16 | this.userProfile = responseUserProfile;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/interfaces/Forum.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.interfaces;
2 |
3 | import android.os.Parcelable;
4 |
5 | public interface Forum extends Parcelable {
6 |
7 | public String getTitle();
8 |
9 | public int getForumId();
10 |
11 | public int getParentId();
12 |
13 | public String getForumSlug();
14 |
15 | public boolean isSubscribed();
16 |
17 | public void setSubscribed(boolean subs);
18 |
19 | public String getImageUrl();
20 |
21 | public boolean hasChildren();
22 |
23 | public String getWebUri();
24 |
25 | public boolean canContainThreads();
26 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/response/container/ResponseForumContainer.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.response.container;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.xda.one.api.model.response.ResponseForum;
6 |
7 | import java.util.List;
8 |
9 | @JsonIgnoreProperties(ignoreUnknown = true)
10 | public class ResponseForumContainer {
11 |
12 | @JsonProperty(value = "results")
13 | private List mForums;
14 |
15 | public List getForums() {
16 | return mForums;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/forum_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
12 |
15 |
--------------------------------------------------------------------------------
/android/src/main/res/menu/forum_fragment_cab.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/res/menu/thread_fragment_cab.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/quote_post_list_section.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
16 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/request/RequestNewPost.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 |
5 | public class RequestNewPost {
6 |
7 | private final int mPostId;
8 |
9 | private final String mPostMessage;
10 |
11 | public RequestNewPost(int postId, String postMessage) {
12 | mPostId = postId;
13 | mPostMessage = postMessage;
14 | }
15 |
16 | @JsonProperty(value = "postid")
17 | public int getPostId() {
18 | return mPostId;
19 | }
20 |
21 | @JsonProperty(value = "message")
22 | public String getPostMessage() {
23 | return mPostMessage;
24 | }
25 | }
--------------------------------------------------------------------------------
/android/src/main/res/layout/navigation_drawer_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
17 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/interfaces/Quote.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.interfaces;
2 |
3 | import android.os.Parcelable;
4 |
5 | public interface Quote extends Parcelable {
6 |
7 | public String getPageText();
8 |
9 | public int getDateLine();
10 |
11 | public String getPostId();
12 |
13 | public String getType();
14 |
15 | String getUserId();
16 |
17 | public String getUserName();
18 |
19 | public String getQuotedUserId();
20 |
21 | public String getQuotedUserName();
22 |
23 | public int getQuotedUserGroupId();
24 |
25 | public int getQuotedInfractionGroupId();
26 |
27 | public UnifiedThread getThread();
28 |
29 | public String getAvatarUrl();
30 | }
31 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Built application files
2 | *.ap_
3 |
4 | # Files for the Dalvik VM
5 | *.dex
6 |
7 | # Java class files
8 | *.class
9 |
10 | # Generated files
11 | gen/
12 |
13 | # Local configuration file (sdk path, etc)
14 | local.properties
15 | project.properties
16 | .settings/
17 |
18 | # Proguard folder generated by Eclipse
19 | proguard/
20 |
21 | # Log Files
22 | *.log
23 |
24 | # Eclipse stuff
25 | .classpath
26 |
27 | # Idea files
28 | *.iml
29 | .idea
30 |
31 | # Idea Building
32 | build
33 |
34 | # Gradle stuff
35 | .gradle
36 |
37 | # Private files
38 | android/src/full/AndroidManifest.xml
39 | signing.properties
40 | com_crashlytics_export_strings.xml
41 | crashlytics-build.properties
42 | android/crashlytics.properties
43 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/interfaces/Mention.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.interfaces;
2 |
3 | import android.os.Parcelable;
4 |
5 | public interface Mention extends Parcelable {
6 |
7 | public String getPageText();
8 |
9 | public String getDateLine();
10 |
11 | public String getPostId();
12 |
13 | public String getType();
14 |
15 | String getUserId();
16 |
17 | public String getUserName();
18 |
19 | public String getMentionedUserId();
20 |
21 | public String getMentionedUsername();
22 |
23 | public String getMentionedUserGroupId();
24 |
25 | public String getMentionedInfractionGroupId();
26 |
27 | public UnifiedThread getThread();
28 |
29 | String getAvatarUrl();
30 | }
31 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/widget/XDARefreshLayout.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui.widget;
2 |
3 | import com.xda.one.R;
4 |
5 | import android.content.Context;
6 | import android.support.v4.widget.SwipeRefreshLayout;
7 | import android.util.AttributeSet;
8 |
9 | public class XDARefreshLayout extends SwipeRefreshLayout {
10 |
11 | public XDARefreshLayout(Context context) {
12 | super(context);
13 | }
14 |
15 | public XDARefreshLayout(Context context, AttributeSet attrs) {
16 | super(context, attrs);
17 | }
18 |
19 | public void setXDAColourScheme() {
20 | setColorSchemeResources(R.color.colorPrimary, R.color.colorAccent,
21 | R.color.colorPrimaryDark, android.R.color.white);
22 | }
23 | }
--------------------------------------------------------------------------------
/android/src/main/res/layout/attachment_image_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
13 |
14 |
19 |
20 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/post_page_dropdown.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
16 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/recycler_inside_refresh.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
17 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/widget/NonSwipeableViewPager.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui.widget;
2 |
3 | import android.content.Context;
4 | import android.support.v4.view.ViewPager;
5 | import android.util.AttributeSet;
6 | import android.view.MotionEvent;
7 |
8 | public class NonSwipeableViewPager extends ViewPager {
9 |
10 | public NonSwipeableViewPager(Context context) {
11 | super(context);
12 | }
13 |
14 | public NonSwipeableViewPager(Context context, AttributeSet attrs) {
15 | super(context, attrs);
16 | }
17 |
18 | @Override
19 | public boolean onInterceptTouchEvent(final MotionEvent arg0) {
20 | return false;
21 | }
22 |
23 | @Override
24 | public boolean onTouchEvent(final MotionEvent event) {
25 | return false;
26 | }
27 | }
--------------------------------------------------------------------------------
/android/src/main/res/layout/post_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
16 |
17 |
20 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/load_more_progress_bar.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
16 |
17 |
19 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/loader/FindYouDeviceLoader.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.loader;
2 |
3 | import com.xda.one.db.ForumDbHelper;
4 |
5 | import android.content.Context;
6 | import android.database.Cursor;
7 |
8 | public class FindYouDeviceLoader extends AsyncLoader {
9 |
10 | private final ForumDbHelper mForumDbHelper;
11 |
12 | private final String mQuery;
13 |
14 | public FindYouDeviceLoader(final Context context, final String query) {
15 | super(context);
16 |
17 | mForumDbHelper = ForumDbHelper.getInstance(context);
18 | mQuery = query;
19 | }
20 |
21 | @Override
22 | public void releaseResources(final Cursor cursor) {
23 | }
24 |
25 | @Override
26 | public Cursor loadInBackground() {
27 | return mForumDbHelper.searchForums(mQuery);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/listener/AvatarClickListener.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui.listener;
2 |
3 | import com.xda.one.ui.UserProfileActivity;
4 |
5 | import android.content.Context;
6 | import android.content.Intent;
7 | import android.view.View;
8 |
9 | public class AvatarClickListener implements View.OnClickListener {
10 |
11 | private final Context mContext;
12 |
13 | public AvatarClickListener(final Context context) {
14 | mContext = context;
15 | }
16 |
17 | @Override
18 | public void onClick(final View avatar) {
19 | final String userId = (String) avatar.getTag();
20 |
21 | final Intent intent = new Intent(mContext, UserProfileActivity.class);
22 | intent.putExtra(UserProfileActivity.USER_ID_ARGUMENT, userId);
23 | mContext.startActivity(intent);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/util/StringUtils.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.util;
2 |
3 | import android.text.SpannableStringBuilder;
4 | import android.text.Spanned;
5 |
6 | public final class StringUtils {
7 |
8 | private StringUtils() {
9 | throw new UnsupportedOperationException("StringUtil cannot be instantiated");
10 | }
11 |
12 | public static String removeWhiteSpaces(String str) {
13 | return str.replaceAll("\\s+", " ");
14 | }
15 |
16 | public static String trimCharSequence(final String text, final int size) {
17 | return text.length() > size ? text.substring(0, size) : text;
18 | }
19 |
20 | public static Spanned trimCharSequence(final Spanned spanned, final int size) {
21 | return spanned.length() > size ? new SpannableStringBuilder(spanned, 0, size) : spanned;
22 | }
23 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/constants/XDAConstants.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.constants;
2 |
3 | import android.util.Base64;
4 |
5 | public class XDAConstants {
6 |
7 | public static final String RECAPTCHA_PUBLIC_KEY = "6LcVyfcSAAAAAG1QaNlcl6o84brVL9sCVF707V8Q";
8 |
9 | public static final String XDA_FORUM_URL = "http://forum.xda-developers.com";
10 |
11 | public static final String XDA_API_URL = "https://api.xda-developers.com";
12 |
13 | public static final String ENDPOINT_URL = XDA_API_URL + "/v1";
14 |
15 | public static final String USERPASSWORD = "admin" + ":" + "bUnew47ra6reJuph";
16 |
17 | public static final String ENCODED_AUTHORIZATION = Base64
18 | .encodeToString(USERPASSWORD.getBytes(), Base64.NO_WRAP);
19 |
20 | public static final String XDA_NEWS_URL = "http://www.xda-developers.com/";
21 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/listener/NonEmptyTextViewListener.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui.listener;
2 |
3 | import android.text.Editable;
4 | import android.text.TextWatcher;
5 | import android.view.View;
6 |
7 | public class NonEmptyTextViewListener implements TextWatcher {
8 |
9 | private View mView;
10 |
11 | public NonEmptyTextViewListener(final View button) {
12 | mView = button;
13 | }
14 |
15 | @Override
16 | public void afterTextChanged(final Editable s) {
17 | }
18 |
19 | @Override
20 | public void beforeTextChanged(final CharSequence s, final int start, final int count,
21 | final int after) {
22 | }
23 |
24 | @Override
25 | public void onTextChanged(CharSequence s, int start, int before, int count) {
26 | mView.setEnabled(s != null && s.length() != 0);
27 | }
28 | }
--------------------------------------------------------------------------------
/proguard-project.txt:
--------------------------------------------------------------------------------
1 | # To enable ProGuard in your project, edit project.properties
2 | # to define the proguard.config property as described in that file.
3 | #
4 | # Add project specific ProGuard rules here.
5 | # By default, the flags in this file are appended to flags specified
6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt
7 | # You can edit the include path and order by changing the ProGuard
8 | # include property in project.properties.
9 | #
10 | # For more details, see
11 | # http://developer.android.com/guide/developing/tools/proguard.html
12 |
13 | # Add any project specific keep options here:
14 |
15 | # If your project uses WebView with JS, uncomment the following
16 | # and specify the fully qualified class name to the JavaScript interface
17 | # class:
18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
19 | # public *;
20 | #}
21 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/helper/CancellableCallbackHelper.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui.helper;
2 |
3 | import com.xda.one.api.misc.Consumer;
4 |
5 | import android.app.Dialog;
6 | import android.content.DialogInterface;
7 |
8 | public abstract class CancellableCallbackHelper implements Consumer, Runnable,
9 | DialogInterface.OnCancelListener {
10 |
11 | private boolean mCancel;
12 |
13 | public CancellableCallbackHelper(final Dialog dialog) {
14 | dialog.setOnCancelListener(this);
15 | }
16 |
17 | @Override
18 | public final void run(final T data) {
19 | if (!mCancel) {
20 | safeCallback(data);
21 | }
22 | }
23 |
24 | @Override
25 | public void onCancel(final DialogInterface dialog) {
26 | mCancel = true;
27 | }
28 |
29 | public abstract void safeCallback(final T data);
30 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/interfaces/News.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.interfaces;
2 |
3 | import com.xda.one.api.model.response.ResponseAttachment;
4 |
5 | import android.os.Parcelable;
6 |
7 | import java.util.List;
8 |
9 | public interface News extends Parcelable {
10 |
11 | public int getTitle();
12 |
13 | public int getContent();
14 |
15 | public String getUrl();
16 |
17 | public String getThumb();
18 |
19 | public String getPageText();
20 |
21 | public String getUserName();
22 |
23 | public long getDateline();
24 |
25 | public List getAttachments();
26 |
27 | public String getAvatarUrl();
28 |
29 | public int getThanksCount();
30 |
31 | public void setThanksCount(int newCount);
32 |
33 | public boolean isThanked();
34 |
35 | public void setThanked(boolean thanked);
36 | }
37 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/interfaces/Post.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.interfaces;
2 |
3 | import com.xda.one.api.model.response.ResponseAttachment;
4 |
5 | import android.os.Parcelable;
6 |
7 | import java.util.List;
8 |
9 | public interface Post extends Parcelable {
10 |
11 | public int getPostId();
12 |
13 | public int getVisible();
14 |
15 | public String getUserId();
16 |
17 | public String getTitle();
18 |
19 | public String getPageText();
20 |
21 | public String getUserName();
22 |
23 | public long getDateline();
24 |
25 | public List getAttachments();
26 |
27 | public String getAvatarUrl();
28 |
29 | public int getThanksCount();
30 |
31 | public void setThanksCount(int newCount);
32 |
33 | public boolean isThanked();
34 |
35 | public void setThanked(boolean thanked);
36 | }
37 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/loader/SubscribedForumLoader.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.loader;
2 |
3 | import com.xda.one.api.inteface.ForumClient;
4 | import com.xda.one.api.model.response.ResponseForum;
5 | import com.xda.one.api.retrofit.RetrofitForumClient;
6 |
7 | import android.content.Context;
8 |
9 | import java.util.List;
10 |
11 | public class SubscribedForumLoader extends AsyncLoader> {
12 |
13 | private final ForumClient mForumClient;
14 |
15 | public SubscribedForumLoader(Context context) {
16 | super(context);
17 |
18 | mForumClient = RetrofitForumClient.getClient(context);
19 | }
20 |
21 | @Override
22 | public void releaseResources(List data) {
23 | }
24 |
25 | @Override
26 | public List loadInBackground() {
27 | return mForumClient.getSubscribedForums();
28 | }
29 | }
--------------------------------------------------------------------------------
/android/src/main/res/layout/subscribed_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
14 |
20 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/request/RequestThread.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 |
5 | public class RequestThread {
6 |
7 | private final int mForumId;
8 |
9 | private final String mTitle;
10 |
11 | private final String mMessage;
12 |
13 | public RequestThread(final int forumId, final String title, final String message) {
14 | mForumId = forumId;
15 | mTitle = title;
16 | mMessage = message;
17 | }
18 |
19 | @JsonProperty(value = "forumid")
20 | public int getForumId() {
21 | return mForumId;
22 | }
23 |
24 | @JsonProperty(value = "title")
25 | public String getTitle() {
26 | return mTitle;
27 | }
28 |
29 | @JsonProperty(value = "message")
30 | public String getMessage() {
31 | return mMessage;
32 | }
33 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/inteface/PrivateMessageClient.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.inteface;
2 |
3 | import com.xda.one.api.misc.EventBus;
4 | import com.xda.one.api.model.interfaces.Message;
5 | import com.xda.one.api.model.response.container.ResponseMessageContainer;
6 |
7 | public interface PrivateMessageClient {
8 |
9 | public EventBus getBus();
10 |
11 | public ResponseMessageContainer getInboxMessages(int page);
12 |
13 | public ResponseMessageContainer getSentMessages(int page);
14 |
15 | public void sendMessageAsync(final String username, final String subject, final String message);
16 |
17 | public void markMessageReadAsync(final Message message);
18 |
19 | public void markMessageUnreadAsync(final Message message);
20 |
21 | public void deleteMessageAsync(final Message message);
22 |
23 | public void toggleMessageReadAsync(final Message message);
24 | }
--------------------------------------------------------------------------------
/android/src/main/res/layout/default_list_empty_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
14 |
15 |
22 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/loader/NewsLoader.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.loader;
2 |
3 | import com.xda.one.api.inteface.NewsClient;
4 | import com.xda.one.api.model.response.container.ResponseNewsContainer;
5 | import com.xda.one.api.retrofit.RetrofitNewsClient;
6 |
7 | import android.content.Context;
8 |
9 | public class NewsLoader extends AsyncLoader {
10 |
11 | private final NewsClient mNewsClient;
12 |
13 | private int mPage;
14 |
15 | public NewsLoader(Context context, int page) {
16 | super(context);
17 |
18 | mPage = page;
19 | mNewsClient = RetrofitNewsClient.getClient(getContext());
20 | }
21 |
22 | @Override
23 | public void releaseResources(ResponseNewsContainer data) {
24 | }
25 |
26 | @Override
27 | public ResponseNewsContainer loadInBackground() {
28 | return mNewsClient.getNews(mPage);
29 | }
30 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/request/RequestMessage.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 |
5 | public class RequestMessage {
6 |
7 | private final String mUserName;
8 |
9 | private final String mSubject;
10 |
11 | private final String mMessage;
12 |
13 | public RequestMessage(final String userName, final String subject, final String message) {
14 | mUserName = userName;
15 | mSubject = subject;
16 | mMessage = message;
17 | }
18 |
19 | @JsonProperty(value = "message")
20 | public String getMessage() {
21 | return mMessage;
22 | }
23 |
24 | @JsonProperty(value = "subject")
25 | public String getSubject() {
26 | return mSubject;
27 | }
28 |
29 | @JsonProperty(value = "username")
30 | public String getUserName() {
31 | return mUserName;
32 | }
33 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/request/RequestRegisterUser.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonProperty;
4 |
5 | public class RequestRegisterUser {
6 |
7 | private final String mUserName;
8 |
9 | private final String mPassword;
10 |
11 | private final String mEmail;
12 |
13 | public RequestRegisterUser(final String userName, final String password, final String email) {
14 | mUserName = userName;
15 | mPassword = password;
16 | mEmail = email;
17 | }
18 |
19 | @JsonProperty(value = "username")
20 | public String getUserName() {
21 | return mUserName;
22 | }
23 |
24 | @JsonProperty(value = "password")
25 | public String getPassword() {
26 | return mPassword;
27 | }
28 |
29 | @JsonProperty(value = "email")
30 | public String getEmail() {
31 | return mEmail;
32 | }
33 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/response/ResponseUserProfileNotification.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.response;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 |
6 | @JsonIgnoreProperties(ignoreUnknown = true)
7 | public class ResponseUserProfileNotification {
8 |
9 | @JsonProperty("phrase")
10 | private String mPhrase;
11 |
12 | @JsonProperty("link")
13 | private String mLink;
14 |
15 | @JsonProperty("order")
16 | private int mOrder;
17 |
18 | @JsonProperty("total")
19 | private int mTotal;
20 |
21 | public String getPhrase() {
22 | return mPhrase;
23 | }
24 |
25 | public String getLink() {
26 | return mLink;
27 | }
28 |
29 | public int getOrder() {
30 | return mOrder;
31 | }
32 |
33 | public int getTotal() {
34 | return mTotal;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/interfaces/Message.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.interfaces;
2 |
3 | import com.xda.one.parser.TextDataStructure;
4 |
5 | import android.os.Parcelable;
6 |
7 | public interface Message extends Parcelable {
8 |
9 | public int getPmId();
10 |
11 | public String getFromUserId();
12 |
13 | public String getFromUserName();
14 |
15 | public String getTitle();
16 |
17 | public CharSequence getMessageContent();
18 |
19 | public long getDate();
20 |
21 | public boolean isMessageUnread();
22 |
23 | String getToUserArray();
24 |
25 | boolean isShowSignature();
26 |
27 | boolean isAllowSmilie();
28 |
29 | public String getAvatarUrl();
30 |
31 | public String getSubMessage();
32 |
33 | public TextDataStructure getTextDataStructure();
34 |
35 | public int getMessageReadStatus();
36 |
37 | public void setMessageReadStatus(int messageRead);
38 | }
--------------------------------------------------------------------------------
/android/src/main/java/android/support/v7/widget/XDALinerLayoutManager.java:
--------------------------------------------------------------------------------
1 | package android.support.v7.widget;
2 |
3 | import android.content.Context;
4 |
5 | public class XDALinerLayoutManager extends LinearLayoutManager {
6 |
7 | private boolean mListEnd = true;
8 |
9 | public XDALinerLayoutManager(final Context context) {
10 | super(context);
11 | }
12 |
13 | public XDALinerLayoutManager(final Context context, final int orientation,
14 | final boolean reverseLayout) {
15 | super(context, orientation, reverseLayout);
16 | }
17 |
18 | @Override
19 | int scrollBy(final int dy, final RecyclerView.Recycler recycler,
20 | final RecyclerView.State state) {
21 | int scrolled = super.scrollBy(dy, recycler, state);
22 | mListEnd = dy > 0 && dy > scrolled;
23 | return scrolled;
24 | }
25 |
26 | public boolean isListEnd() {
27 | return mListEnd;
28 | }
29 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/response/ResponseAvatar.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.response;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 |
5 | import android.os.Parcel;
6 | import android.text.TextUtils;
7 |
8 | @JsonIgnoreProperties(ignoreUnknown = true)
9 | public final class ResponseAvatar {
10 |
11 | private String mAvatarUrl;
12 |
13 | public ResponseAvatar(final Parcel in) {
14 | mAvatarUrl = in.readString();
15 | }
16 |
17 | public ResponseAvatar() {
18 | }
19 |
20 | public String getAvatarUrl() {
21 | if (TextUtils.isEmpty(mAvatarUrl)) {
22 | return null;
23 | }
24 | return mAvatarUrl;
25 | }
26 |
27 | public void setAvatarUrl(final String avatarUrl) {
28 | mAvatarUrl = avatarUrl;
29 | }
30 |
31 | public void writeToParcel(Parcel dest, int flags) {
32 | dest.writeString(mAvatarUrl);
33 | }
34 | }
--------------------------------------------------------------------------------
/android/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 16dp
5 | 16dp
6 |
7 | 6dp
8 |
9 | 120dp
10 | 150dp
11 | 16dp
12 |
13 | 200dp
14 | 64dp
15 | 3dp
16 | 72dp
17 | 88dp
18 |
19 | 48dp
20 |
21 | 4dp
22 | 8dp
23 | 16dp
24 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/find_your_device_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
18 |
19 |
22 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/hierarchy_spinner_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
20 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/forum_pager_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
16 |
21 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/my_device_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/auth/XDAAuthenticatorActivity.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.auth;
2 |
3 | import com.xda.one.R;
4 |
5 | import android.os.Bundle;
6 | import android.support.v4.app.Fragment;
7 | import android.support.v4.app.FragmentActivity;
8 |
9 | public class XDAAuthenticatorActivity extends FragmentActivity {
10 |
11 | private final String SCREEN_NAME = "XDAAuthenticatorActivity";
12 |
13 | @Override
14 | public void onCreate(final Bundle savedInstanceState) {
15 | super.onCreate(savedInstanceState);
16 | setContentView(R.layout.frame_activity);
17 |
18 | if (savedInstanceState == null) {
19 | final String accountName = getIntent().getStringExtra(LoginFragment.ARG_ACCOUNT_NAME);
20 | final Fragment instance = LoginFragment.createInstance(accountName);
21 | getSupportFragmentManager().beginTransaction().replace(R.id.frame_activity_content,
22 | instance).commit();
23 | }
24 | }
25 | }
--------------------------------------------------------------------------------
/android/src/main/res/drawable/photo_banner_scrim.xml:
--------------------------------------------------------------------------------
1 |
16 |
17 |
18 |
24 |
25 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/user_selector_logging_in.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
14 |
15 |
22 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/user_selector_dropdown.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
16 |
17 |
24 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/util/CompatUtils.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.util;
2 |
3 | import android.annotation.TargetApi;
4 | import android.graphics.drawable.Drawable;
5 | import android.os.Build;
6 | import android.view.View;
7 |
8 | public class CompatUtils {
9 |
10 | public static boolean hasElevation() {
11 | return hasLollipop();
12 | }
13 |
14 | public static boolean hasLollipop() {
15 | return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP;
16 | }
17 |
18 | public static boolean hasJellyBean() {
19 | return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
20 | }
21 |
22 | @SuppressWarnings("deprecation")
23 | @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
24 | public static void setBackground(final View view, final Drawable drawable) {
25 | if (CompatUtils.hasJellyBean()) {
26 | view.setBackground(drawable);
27 | } else {
28 | view.setBackgroundDrawable(drawable);
29 | }
30 | }
31 | }
--------------------------------------------------------------------------------
/android/src/main/res/drawable/list_selector_background_transition_holo_dark.xml:
--------------------------------------------------------------------------------
1 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/quote_mention_pager_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
16 |
21 |
--------------------------------------------------------------------------------
/android/src/main/java/com/dd/xda/StateManager.java:
--------------------------------------------------------------------------------
1 | package com.dd.xda;
2 |
3 | class StateManager {
4 |
5 | private boolean mIsEnabled;
6 |
7 | private float mProgress;
8 |
9 | public StateManager(CircularProgressButton progressButton) {
10 | mIsEnabled = progressButton.isEnabled();
11 | mProgress = progressButton.getProgress();
12 | }
13 |
14 | public void saveProgress(CircularProgressButton progressButton) {
15 | mProgress = progressButton.getProgress();
16 | }
17 |
18 | public boolean isEnabled() {
19 | return mIsEnabled;
20 | }
21 |
22 | public float getProgress() {
23 | return mProgress;
24 | }
25 |
26 | public void checkState(CircularProgressButton progressButton) {
27 | if (progressButton.getProgress() != getProgress()) {
28 | progressButton.setProgress(progressButton.getProgress());
29 | } else if (progressButton.isEnabled() != isEnabled()) {
30 | progressButton.setEnabled(progressButton.isEnabled());
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/loader/UserProfileLoader.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.loader;
2 |
3 | import com.xda.one.api.inteface.UserClient;
4 | import com.xda.one.api.model.response.ResponseUserProfile;
5 | import com.xda.one.api.retrofit.RetrofitUserClient;
6 |
7 | import android.content.Context;
8 |
9 | public class UserProfileLoader extends AsyncLoader {
10 |
11 | private final UserClient mUserClient;
12 |
13 | private final String mUserId;
14 |
15 | public UserProfileLoader(final Context context, final String userId) {
16 | super(context);
17 |
18 | mUserClient = RetrofitUserClient.getClient(context);
19 | mUserId = userId;
20 | }
21 |
22 | @Override
23 | public ResponseUserProfile loadInBackground() {
24 | if (mUserId == null) {
25 | return mUserClient.getUserProfile();
26 | }
27 | return mUserClient.getUserProfile(mUserId);
28 | }
29 |
30 | @Override
31 | protected void releaseResources(final ResponseUserProfile data) {
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/request/RequestPostAttachment.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.request;
2 |
3 | import com.fasterxml.jackson.annotation.JsonInclude;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 |
6 | @JsonInclude(JsonInclude.Include.NON_NULL)
7 | public class RequestPostAttachment {
8 |
9 | private final String mPostId;
10 |
11 | private final String mPostHash;
12 |
13 | private final String mPostStartTime;
14 |
15 | public RequestPostAttachment(String postId, String postHash, String postStartTime) {
16 | mPostId = postId;
17 | mPostHash = postHash;
18 | mPostStartTime = postStartTime;
19 | }
20 |
21 | @JsonProperty(value = "postid")
22 | public String getPostId() {
23 | return mPostId;
24 | }
25 |
26 | @JsonProperty(value = "posthash")
27 | public String getPostHash() {
28 | return mPostHash;
29 | }
30 |
31 | @JsonProperty(value = "poststarttime")
32 | public String getPostStartTime() {
33 | return mPostStartTime;
34 | }
35 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/interfaces/UnifiedThread.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.interfaces;
2 |
3 | import android.os.Parcelable;
4 |
5 | public interface UnifiedThread extends Parcelable {
6 |
7 | public String getThreadId();
8 |
9 | public boolean isAttach();
10 |
11 | public boolean hasAttachment();
12 |
13 | public int getViews();
14 |
15 | public long getLastPost();
16 |
17 | public String getTitle();
18 |
19 | public String getFirstPostContent();
20 |
21 | public String getPostUsername();
22 |
23 | public boolean isSticky();
24 |
25 | public int getTotalPosts();
26 |
27 | public int getLastPostId();
28 |
29 | public String getLastPoster();
30 |
31 | public int getFirstPostId();
32 |
33 | public String getThreadSlug();
34 |
35 | String getForumTitle();
36 |
37 | public int getForumId();
38 |
39 | public int getReplyCount();
40 |
41 | public boolean isSubscribed();
42 |
43 | public String getAvatarUrl();
44 |
45 | public boolean isUnread();
46 |
47 | boolean isOpen();
48 |
49 | public String getWebUri();
50 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/inteface/ThreadClient.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.inteface;
2 |
3 | import com.xda.one.api.misc.Consumer;
4 | import com.xda.one.api.misc.EventBus;
5 | import com.xda.one.api.misc.Result;
6 | import com.xda.one.api.model.interfaces.UnifiedThread;
7 | import com.xda.one.api.model.response.container.ResponseUnifiedThreadContainer;
8 |
9 | public interface ThreadClient {
10 |
11 | public EventBus getBus();
12 |
13 | public ResponseUnifiedThreadContainer getThreads(final int forumId, final int page);
14 |
15 | public ResponseUnifiedThreadContainer getParticipatedThreads(final int page);
16 |
17 | public ResponseUnifiedThreadContainer getSubscribedThreads(final int page);
18 |
19 | public void createThread(final int forumId, final String title, final String message,
20 | final Consumer runnable);
21 |
22 | public void subscribeAsync(final UnifiedThread normalDefaultUnifiedThread);
23 |
24 | public void unsubscribeAsync(final UnifiedThread normalDefaultUnifiedThread);
25 |
26 | public void toggleSubscribeAsync(final UnifiedThread normalDefaultUnifiedThread);
27 | }
--------------------------------------------------------------------------------
/android/src/main/res/layout/fragment_user_profile_about.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
14 |
15 |
21 |
22 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/android/src/main/res/menu/post_context_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/inteface/UserClient.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.inteface;
2 |
3 | import com.xda.one.api.misc.Consumer;
4 | import com.xda.one.api.misc.EventBus;
5 | import com.xda.one.api.misc.Result;
6 | import com.xda.one.api.model.interfaces.container.MentionContainer;
7 | import com.xda.one.api.model.interfaces.container.QuoteContainer;
8 | import com.xda.one.api.model.response.ResponseUserProfile;
9 |
10 | import retrofit.client.Response;
11 |
12 | public interface UserClient {
13 |
14 | public EventBus getBus();
15 |
16 | public void login(final String username, final String password);
17 |
18 | void register(final String email, final String username, final String password,
19 | final String challenge, final String response, final Consumer success,
20 | final Consumer failure);
21 |
22 | public MentionContainer getMentions(final int page);
23 |
24 | public QuoteContainer getQuotes(final int page);
25 |
26 | public ResponseUserProfile getUserProfile();
27 |
28 | public void getUserProfileAsync();
29 |
30 | public ResponseUserProfile getUserProfile(final String userId);
31 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/loader/QuoteLoader.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.loader;
2 |
3 | import com.xda.one.api.inteface.UserClient;
4 | import com.xda.one.api.model.interfaces.container.QuoteContainer;
5 | import com.xda.one.api.retrofit.RetrofitUserClient;
6 | import com.xda.one.model.augmented.container.AugmentedQuoteContainer;
7 |
8 | import android.content.Context;
9 |
10 | public class QuoteLoader extends AsyncLoader {
11 |
12 | private final int mPage;
13 |
14 | private final UserClient mUserClient;
15 |
16 | public QuoteLoader(final Context context, final int page) {
17 | super(context);
18 | mPage = page;
19 | mUserClient = RetrofitUserClient.getClient(getContext());
20 | }
21 |
22 | @Override
23 | public void releaseResources(final AugmentedQuoteContainer data) {
24 | }
25 |
26 | @Override
27 | public AugmentedQuoteContainer loadInBackground() {
28 | final QuoteContainer container = mUserClient.getQuotes(mPage);
29 | if (container == null) {
30 | return null;
31 | }
32 | return new AugmentedQuoteContainer(container, getContext());
33 | }
34 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/loader/MentionLoader.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.loader;
2 |
3 | import com.xda.one.api.inteface.UserClient;
4 | import com.xda.one.api.model.interfaces.container.MentionContainer;
5 | import com.xda.one.api.retrofit.RetrofitUserClient;
6 | import com.xda.one.model.augmented.container.AugmentedMentionContainer;
7 |
8 | import android.content.Context;
9 |
10 | public class MentionLoader extends AsyncLoader {
11 |
12 | private final int mPage;
13 |
14 | private final UserClient mUserClient;
15 |
16 | public MentionLoader(final Context context, final int page) {
17 | super(context);
18 | mPage = page;
19 | mUserClient = RetrofitUserClient.getClient(getContext());
20 | }
21 |
22 | @Override
23 | public void releaseResources(final AugmentedMentionContainer data) {
24 | }
25 |
26 | @Override
27 | public AugmentedMentionContainer loadInBackground() {
28 | final MentionContainer container = mUserClient.getMentions(mPage);
29 | if (container == null) {
30 | return null;
31 | }
32 | return new AugmentedMentionContainer(container, getContext());
33 | }
34 | }
--------------------------------------------------------------------------------
/android/src/main/res/layout/thread_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
13 |
14 |
28 |
29 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/response/container/ResponseQuoteContainer.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.response.container;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.xda.one.api.model.interfaces.container.QuoteContainer;
6 | import com.xda.one.api.model.response.ResponseQuote;
7 |
8 | import java.util.List;
9 |
10 | @JsonIgnoreProperties(ignoreUnknown = true)
11 | public class ResponseQuoteContainer implements QuoteContainer {
12 |
13 | @JsonProperty("results")
14 | private List mQuotes;
15 |
16 | @JsonProperty("total_pages")
17 | private int mTotalPages;
18 |
19 | @JsonProperty("per_page")
20 | private int mPerPage;
21 |
22 | @JsonProperty("current_page")
23 | private int mCurrentPage;
24 |
25 | @Override
26 | public List getQuotes() {
27 | return mQuotes;
28 | }
29 |
30 | @Override
31 | public int getTotalPages() {
32 | return mTotalPages;
33 | }
34 |
35 | @Override
36 | public int getPerPage() {
37 | return mPerPage;
38 | }
39 |
40 | @Override
41 | public int getCurrentPage() {
42 | return mCurrentPage;
43 | }
44 | }
--------------------------------------------------------------------------------
/android/src/main/res/layout/user_selector_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
21 |
22 |
30 |
31 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/subscribed_forum_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
14 |
24 |
25 |
26 |
29 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/loader/SubscribedThreadLoader.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.loader;
2 |
3 | import com.xda.one.api.inteface.ThreadClient;
4 | import com.xda.one.api.model.response.container.ResponseUnifiedThreadContainer;
5 | import com.xda.one.api.retrofit.RetrofitThreadClient;
6 | import com.xda.one.model.augmented.container.AugmentedUnifiedThreadContainer;
7 |
8 | import android.content.Context;
9 |
10 | public class SubscribedThreadLoader extends AsyncLoader {
11 |
12 | private final int mPage;
13 |
14 | private final ThreadClient mThreadClient;
15 |
16 | public SubscribedThreadLoader(final Context context, final int page) {
17 | super(context);
18 |
19 | mPage = page;
20 | mThreadClient = RetrofitThreadClient.getClient(context);
21 | }
22 |
23 | @Override
24 | public void releaseResources(final AugmentedUnifiedThreadContainer data) {
25 | }
26 |
27 | @Override
28 | public AugmentedUnifiedThreadContainer loadInBackground() {
29 | final ResponseUnifiedThreadContainer container = mThreadClient.getSubscribedThreads(mPage);
30 | if (container == null) {
31 | return null;
32 | }
33 | return new AugmentedUnifiedThreadContainer(container, getContext());
34 | }
35 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/loader/ParticipatedThreadLoader.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.loader;
2 |
3 | import com.xda.one.api.inteface.ThreadClient;
4 | import com.xda.one.api.model.response.container.ResponseUnifiedThreadContainer;
5 | import com.xda.one.api.retrofit.RetrofitThreadClient;
6 | import com.xda.one.model.augmented.container.AugmentedUnifiedThreadContainer;
7 |
8 | import android.content.Context;
9 |
10 | public class ParticipatedThreadLoader extends AsyncLoader {
11 |
12 | private final int mPage;
13 |
14 | private final ThreadClient mThreadClient;
15 |
16 | public ParticipatedThreadLoader(final Context context, final int page) {
17 | super(context);
18 | mPage = page;
19 | mThreadClient = RetrofitThreadClient.getClient(getContext());
20 | }
21 |
22 | @Override
23 | public void releaseResources(final AugmentedUnifiedThreadContainer data) {
24 | }
25 |
26 | @Override
27 | public AugmentedUnifiedThreadContainer loadInBackground() {
28 | final ResponseUnifiedThreadContainer container = mThreadClient
29 | .getParticipatedThreads(mPage);
30 | if (container == null) {
31 | return null;
32 | }
33 | return new AugmentedUnifiedThreadContainer(container, getContext());
34 | }
35 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/response/container/ResponseMessageContainer.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.response.container;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.xda.one.api.model.interfaces.container.MessageContainer;
6 | import com.xda.one.api.model.response.ResponseMessage;
7 |
8 | import java.util.List;
9 |
10 | @JsonIgnoreProperties(ignoreUnknown = true)
11 | public class ResponseMessageContainer implements MessageContainer {
12 |
13 | @JsonProperty(value = "results")
14 | private List mMessages;
15 |
16 | @JsonProperty(value = "total_pages")
17 | private int mTotalPages;
18 |
19 | @JsonProperty(value = "per_page")
20 | private int mMessagesPerPage;
21 |
22 | @JsonProperty(value = "current_page")
23 | private int mCurrentPage;
24 |
25 | @Override
26 | public List getMessages() {
27 | return mMessages;
28 | }
29 |
30 | @Override
31 | public int getTotalPages() {
32 | return mTotalPages;
33 | }
34 |
35 | @Override
36 | public int getMessagesPerPage() {
37 | return mMessagesPerPage;
38 | }
39 |
40 | @Override
41 | public int getCurrentPage() {
42 | return mCurrentPage;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/attachment_file_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
14 |
15 |
23 |
24 |
33 |
34 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/loader/ThreadLoader.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.loader;
2 |
3 | import com.xda.one.api.inteface.ThreadClient;
4 | import com.xda.one.api.model.response.container.ResponseUnifiedThreadContainer;
5 | import com.xda.one.api.retrofit.RetrofitThreadClient;
6 | import com.xda.one.model.augmented.container.AugmentedUnifiedThreadContainer;
7 |
8 | import android.content.Context;
9 |
10 | public class ThreadLoader extends AsyncLoader {
11 |
12 | private final int mPage;
13 |
14 | private final ThreadClient mThreadClient;
15 |
16 | private int mForumId;
17 |
18 | public ThreadLoader(final Context context, final int forumId, final int page) {
19 | super(context);
20 | mForumId = forumId;
21 | mPage = page;
22 | mThreadClient = RetrofitThreadClient.getClient(getContext());
23 | }
24 |
25 | @Override
26 | public void releaseResources(final AugmentedUnifiedThreadContainer data) {
27 | }
28 |
29 | @Override
30 | public AugmentedUnifiedThreadContainer loadInBackground() {
31 | final ResponseUnifiedThreadContainer container = mThreadClient.getThreads(mForumId, mPage);
32 | if (container == null) {
33 | return null;
34 | }
35 | return new AugmentedUnifiedThreadContainer(container, getContext());
36 | }
37 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/response/container/ResponseMentionContainer.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.response.container;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.xda.one.api.model.interfaces.Mention;
6 | import com.xda.one.api.model.interfaces.container.MentionContainer;
7 | import com.xda.one.api.model.response.ResponseMention;
8 |
9 | import java.util.ArrayList;
10 | import java.util.List;
11 |
12 | @JsonIgnoreProperties(ignoreUnknown = true)
13 | public class ResponseMentionContainer implements MentionContainer {
14 |
15 | @JsonProperty("results")
16 | private List mMentions = new ArrayList<>();
17 |
18 | @JsonProperty("total_pages")
19 | private int mTotalPages;
20 |
21 | @JsonProperty("per_page")
22 | private int mPerPage;
23 |
24 | @JsonProperty("current_page")
25 | private int mCurrentPage;
26 |
27 | @Override
28 | public List extends Mention> getMentions() {
29 | return mMentions;
30 | }
31 |
32 | @Override
33 | public int getTotalPages() {
34 | return mTotalPages;
35 | }
36 |
37 | @Override
38 | public int getPerPage() {
39 | return mPerPage;
40 | }
41 |
42 | @Override
43 | public int getCurrentPage() {
44 | return mCurrentPage;
45 | }
46 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/thread/DefaultThreadLoaderStrategy.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui.thread;
2 |
3 | import com.xda.one.loader.ThreadLoader;
4 | import com.xda.one.model.augmented.container.AugmentedUnifiedThreadContainer;
5 |
6 | import android.content.Context;
7 | import android.os.Parcel;
8 | import android.os.Parcelable;
9 | import android.support.v4.content.Loader;
10 |
11 | public class DefaultThreadLoaderStrategy implements ThreadLoaderStrategy {
12 |
13 | public static final Parcelable.Creator CREATOR
14 | = new Parcelable.Creator() {
15 | public DefaultThreadLoaderStrategy createFromParcel(Parcel in) {
16 | return new DefaultThreadLoaderStrategy();
17 | }
18 |
19 | public DefaultThreadLoaderStrategy[] newArray(int size) {
20 | return new DefaultThreadLoaderStrategy[size];
21 | }
22 | };
23 |
24 | @Override
25 | public Loader createLoader(final Context context,
26 | final int forumId, final int currentPage) {
27 | return new ThreadLoader(context, forumId, currentPage);
28 | }
29 |
30 | @Override
31 | public int describeContents() {
32 | return 0;
33 | }
34 |
35 | @Override
36 | public void writeToParcel(final Parcel dest, final int flags) {
37 |
38 | }
39 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/inteface/ForumClient.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.inteface;
2 |
3 | import com.xda.one.api.misc.Consumer;
4 | import com.xda.one.api.misc.EventBus;
5 | import com.xda.one.api.misc.Result;
6 | import com.xda.one.api.model.interfaces.Forum;
7 | import com.xda.one.api.model.response.ResponseForum;
8 |
9 | import java.util.List;
10 |
11 | public interface ForumClient {
12 |
13 | public EventBus getBus();
14 |
15 | public List getForums();
16 |
17 | public List getForums(boolean forceReload);
18 |
19 | public List getGeneralForums();
20 |
21 | public List getGeneralForums(boolean forceReload);
22 |
23 | public List getNewestForums();
24 |
25 | public List getNewestForums(boolean forceReload);
26 |
27 | public List getForumChildren(final Forum forum);
28 |
29 | public List getSubscribedForums();
30 |
31 | public List getTopForums();
32 |
33 | public List getTopForums(boolean forceReload);
34 |
35 | public void toggleForumSubscriptionAsync(final Forum forum);
36 |
37 | public void subscribeAsync(final Forum forum);
38 |
39 | public void unsubscribeAsync(final Forum forum);
40 |
41 | public void markReadAsync(final Forum forum, final Consumer callable);
42 | }
43 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/thread/SubscribedThreadLoaderStrategy.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui.thread;
2 |
3 | import com.xda.one.loader.SubscribedThreadLoader;
4 | import com.xda.one.model.augmented.container.AugmentedUnifiedThreadContainer;
5 |
6 | import android.content.Context;
7 | import android.os.Parcel;
8 | import android.os.Parcelable;
9 | import android.support.v4.content.Loader;
10 |
11 | public class SubscribedThreadLoaderStrategy implements ThreadLoaderStrategy {
12 |
13 | public static final Parcelable.Creator CREATOR
14 | = new Parcelable.Creator() {
15 | public SubscribedThreadLoaderStrategy createFromParcel(Parcel in) {
16 | return new SubscribedThreadLoaderStrategy();
17 | }
18 |
19 | public SubscribedThreadLoaderStrategy[] newArray(int size) {
20 | return new SubscribedThreadLoaderStrategy[size];
21 | }
22 | };
23 |
24 | @Override
25 | public Loader createLoader(final Context context,
26 | final int forumId, final int currentPage) {
27 | return new SubscribedThreadLoader(context, currentPage);
28 | }
29 |
30 | @Override
31 | public int describeContents() {
32 | return 0;
33 | }
34 |
35 | @Override
36 | public void writeToParcel(final Parcel dest, final int flags) {
37 |
38 | }
39 | }
--------------------------------------------------------------------------------
/android/src/main/res/layout/message_pager_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
13 |
18 |
19 |
31 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/thread/ParticipatedThreadLoaderStrategy.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui.thread;
2 |
3 | import com.xda.one.loader.ParticipatedThreadLoader;
4 | import com.xda.one.model.augmented.container.AugmentedUnifiedThreadContainer;
5 |
6 | import android.content.Context;
7 | import android.os.Parcel;
8 | import android.os.Parcelable;
9 | import android.support.v4.content.Loader;
10 |
11 | public class ParticipatedThreadLoaderStrategy implements ThreadLoaderStrategy {
12 |
13 | public static final Parcelable.Creator CREATOR
14 | = new Parcelable.Creator() {
15 | public ParticipatedThreadLoaderStrategy createFromParcel(Parcel in) {
16 | return new ParticipatedThreadLoaderStrategy();
17 | }
18 |
19 | public ParticipatedThreadLoaderStrategy[] newArray(int size) {
20 | return new ParticipatedThreadLoaderStrategy[size];
21 | }
22 | };
23 |
24 | @Override
25 | public Loader createLoader(final Context context,
26 | final int forumId, final int currentPage) {
27 | return new ParticipatedThreadLoader(context, currentPage);
28 | }
29 |
30 | @Override
31 | public int describeContents() {
32 | return 0;
33 | }
34 |
35 | @Override
36 | public void writeToParcel(final Parcel dest, final int flags) {
37 |
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/android/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
13 |
14 |
15 |
16 |
17 |
18 |
22 |
23 |
26 |
27 |
29 |
30 |
32 |
33 |
35 |
--------------------------------------------------------------------------------
/android/src/main/java/com/mobsandgeeks/adapters/Sectionizer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2012 Mobs and Geeks
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.mobsandgeeks.adapters;
18 |
19 | /**
20 | * Interface provides mechanism for supplying titles for instances based on the property they are
21 | * compared against. The parameterized type of the Sectionizer should be same as that of the
22 | * {@link SimpleSectionAdapter}.
23 | *
24 | * @author Ragunath Jawahar R
25 | * @version 1.0
26 | */
27 | public interface Sectionizer {
28 |
29 | /**
30 | * Returns the title for the given instance from the data source.
31 | *
32 | * @param instance The instance obtained from the data source of the decorated list adapter.
33 | * @return section title for the given instance.
34 | */
35 | String getSectionTitleForItem(T instance);
36 | }
37 |
--------------------------------------------------------------------------------
/android/src/main/res/layout/find_device_suggestion_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
19 |
20 |
33 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/listener/MultipleNonEmptyTextViewListener.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui.listener;
2 |
3 | import android.text.Editable;
4 | import android.text.TextWatcher;
5 | import android.view.View;
6 | import android.widget.EditText;
7 |
8 | public class MultipleNonEmptyTextViewListener implements TextWatcher {
9 |
10 | private final EditText[] mEditTexts;
11 |
12 | private View mView;
13 |
14 | public MultipleNonEmptyTextViewListener(final View button, final EditText... editTexts) {
15 | if (editTexts == null) {
16 | throw new NullPointerException();
17 | }
18 |
19 | mView = button;
20 | mEditTexts = editTexts;
21 | }
22 |
23 | @Override
24 | public void afterTextChanged(final Editable s) {
25 | }
26 |
27 | @Override
28 | public void beforeTextChanged(final CharSequence s, final int start, final int count,
29 | final int after) {
30 | }
31 |
32 | @Override
33 | public void onTextChanged(CharSequence s, int start, int before, int count) {
34 | for (final EditText editText : mEditTexts) {
35 | if (editText.length() == 0) {
36 | mView.setEnabled(false);
37 | return;
38 | }
39 | }
40 | mView.setEnabled(true);
41 | }
42 |
43 | public void registerAll() {
44 | for (final EditText editText : mEditTexts) {
45 | editText.addTextChangedListener(this);
46 | }
47 | }
48 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/model/response/container/ResponseUnifiedThreadContainer.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.model.response.container;
2 |
3 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4 | import com.fasterxml.jackson.annotation.JsonProperty;
5 | import com.xda.one.api.model.interfaces.container.UnifiedThreadContainer;
6 | import com.xda.one.api.model.response.ResponseUnifiedThread;
7 |
8 | import java.util.List;
9 |
10 | @JsonIgnoreProperties(ignoreUnknown = true)
11 | public class ResponseUnifiedThreadContainer implements UnifiedThreadContainer {
12 |
13 | @JsonProperty(value = "results")
14 | private List mThreads;
15 |
16 | @JsonProperty(value = "total_pages")
17 | private int mTotalPages;
18 |
19 | @JsonProperty(value = "per_page")
20 | private int mPerPage;
21 |
22 | @JsonProperty(value = "current_page")
23 | private int mCurrentPage;
24 |
25 | // This is actually used by Jackson
26 | @SuppressWarnings("unused")
27 | public ResponseUnifiedThreadContainer() {
28 | }
29 |
30 | @Override
31 | public List getThreads() {
32 | return mThreads;
33 | }
34 |
35 | @Override
36 | public int getTotalPages() {
37 | return mTotalPages;
38 | }
39 |
40 | @Override
41 | public int getPerPage() {
42 | return mPerPage;
43 | }
44 |
45 | @Override
46 | public int getCurrentPage() {
47 | return mCurrentPage;
48 | }
49 | }
--------------------------------------------------------------------------------
/android/src/main/res/layout/main_activity.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
14 |
15 |
19 |
20 |
27 |
28 |
29 |
36 |
--------------------------------------------------------------------------------
/android/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | @color/main_xda_color
6 | @color/orange_900
7 | @color/indigo_a700
8 |
9 |
10 | @color/colorAccent
11 | @color/colorPrimary
12 | #8c000000
13 |
14 |
15 | #de7300
16 | #12911D
17 |
18 | #ddd
19 | #E0E0E0
20 |
21 |
22 | #ff9800
23 | #f57C00
24 | #ef6C00
25 | #e65100
26 |
27 | #6200EA
28 |
29 | #304ffe
30 |
31 |
32 | #ff000000
33 | #1f000000
34 | #42000000
35 | #8a000000
36 | #de000000
37 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/listener/RecyclerEndHelper.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui.listener;
2 |
3 | import android.support.v7.widget.RecyclerView;
4 | import android.support.v7.widget.XDALinerLayoutManager;
5 |
6 | public class RecyclerEndHelper extends RecyclerView.OnScrollListener {
7 |
8 | private final Callback mCallback;
9 |
10 | private XDALinerLayoutManager mLayoutManager;
11 |
12 | private boolean mListEnd;
13 |
14 | private int mCurrentScrollState;
15 |
16 | public RecyclerEndHelper(final RecyclerView recyclerView, final Callback callback) {
17 | mCallback = callback;
18 | updateRecyclerView(recyclerView);
19 | }
20 |
21 | private void isScrollCompleted() {
22 | if (mCurrentScrollState == RecyclerView.SCROLL_STATE_IDLE && mListEnd) {
23 | mCallback.onListEndReached();
24 | }
25 | }
26 |
27 | @Override
28 | public void onScrolled(final RecyclerView recyclerView, final int dx, final int dy) {
29 | mListEnd = mLayoutManager.isListEnd();
30 | }
31 |
32 | @Override
33 | public void onScrollStateChanged(final RecyclerView recyclerView, final int newState) {
34 | mCurrentScrollState = newState;
35 | isScrollCompleted();
36 | }
37 |
38 | public void updateRecyclerView(final RecyclerView recyclerView) {
39 | mLayoutManager = (XDALinerLayoutManager) recyclerView.getLayoutManager();
40 | }
41 |
42 | public interface Callback {
43 |
44 | public void onListEndReached();
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/PostFragmentAdapter.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui;
2 |
3 | import com.xda.one.api.model.interfaces.UnifiedThread;
4 | import com.xda.one.api.model.response.container.ResponsePostContainer;
5 |
6 | import android.support.v4.app.Fragment;
7 | import android.support.v4.app.FragmentManager;
8 | import android.support.v4.app.FragmentStatePagerAdapter;
9 |
10 | public class PostFragmentAdapter extends FragmentStatePagerAdapter {
11 |
12 | private final int mCount;
13 |
14 | private ResponsePostContainer mContainerArgument;
15 |
16 | private UnifiedThread mUnifiedThread;
17 |
18 | public PostFragmentAdapter(final FragmentManager fm, final UnifiedThread unifiedThread,
19 | final int count, final ResponsePostContainer containerArgument) {
20 | super(fm);
21 |
22 | mUnifiedThread = unifiedThread;
23 | mCount = count;
24 | mContainerArgument = containerArgument;
25 | }
26 |
27 | @Override
28 | public Fragment getItem(int position) {
29 | if (mContainerArgument != null && mContainerArgument.getCurrentPage() == position + 1) {
30 | return PostFragment.getInstance(mContainerArgument);
31 | }
32 | return PostFragment.getInstance(mUnifiedThread, position + 1);
33 | }
34 |
35 | public void setContainerArgument(final ResponsePostContainer containerArgument) {
36 | mContainerArgument = containerArgument;
37 | }
38 |
39 | @Override
40 | public int getCount() {
41 | return mCount;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/android/src/debug/res/values/placeholders.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Lorem ipsum dolor sit amet, consectetur adipiscing elit.
4 | In auctor varius ligula quis imperdiet. Cras at arcu eget ligula lacinia aliquam. Donec
5 | ultricies neque eu nisl elementum sed luctus leo porta. Nunc gravida molestie sodales. Nam
6 | sit amet lacus a odio dictum dignissim. Pellentesque nec tincidunt urna. Praesent mattis
7 | dignissim ante, eu placerat leo placerat vel. Curabitur nec consequat nisl. Donec dapibus
8 | ante id enim faucibus ut scelerisque risus sollicitudin. Vestibulum ipsum sapien, molestie
9 | vel dignissim eleifend, ultricies vitae libero. Nullam sapien libero, posuere non ornare sed,
10 | tristique non nisi. Proin eu nunc sapien, vitae euismod neque. Fusce scelerisque purus sit
11 | amet leo accumsan scelerisque varius ligula interdum. Maecenas non mauris vitae lacus
12 | vehicula pulvinar sed quis dui. Nullam ultricies mollis tortor vel dictum. Phasellus
13 | tincidunt dui id odio sodales tincidunt. Curabitur malesuada dapibus neque, non malesuada augue
14 | tempus at. Integer et nulla et arcu sollicitudin semper.
15 |
16 |
17 | Lorem ipsum dolor sit amet, consectetur adipiscing elit.
18 | In auctor varius ligula quis imperdiet. Cras at arcu eget ligula lacinia aliquam. Donec
19 |
20 |
21 | Lorem ipsum dolor sit amet
22 |
23 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/api/inteface/PostClient.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.api.inteface;
2 |
3 | import com.xda.one.api.misc.Consumer;
4 | import com.xda.one.api.misc.EventBus;
5 | import com.xda.one.api.misc.Result;
6 | import com.xda.one.api.model.interfaces.Post;
7 | import com.xda.one.api.model.interfaces.UnifiedThread;
8 | import com.xda.one.api.model.response.container.ResponsePostContainer;
9 |
10 | import retrofit.Callback;
11 |
12 | public interface PostClient {
13 |
14 | public EventBus getBus();
15 |
16 | public ResponsePostContainer getPosts(final String threadId, final int page);
17 |
18 | public void getPostsAsync(final String threadId, final int page,
19 | final Callback consumer);
20 |
21 | public void getPostsById(String postId, Consumer consumer,
22 | final Runnable failure);
23 |
24 | public void getUnreadPostFeed(final UnifiedThread unifiedThread,
25 | final Consumer consumer, final Runnable failure);
26 |
27 | public void addAttachmentAsync(final Post post, final Consumer runnable);
28 |
29 | public void createNewPostAsync(final Post post, final String message);
30 |
31 | public void createNewPostAsync(final UnifiedThread unifiedThread, final String message);
32 |
33 | public void addThanksAsync(final Post post, final Consumer runnable);
34 |
35 | public void removeThanksAsync(final Post post, final Consumer runnable);
36 |
37 | public void toggleThanksAsync(final Post post, final Consumer runnable);
38 | }
39 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/UserProfileActivity.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui;
2 |
3 | import com.xda.one.R;
4 |
5 | import android.content.Context;
6 | import android.content.Intent;
7 | import android.os.Bundle;
8 | import android.support.v4.app.Fragment;
9 | import android.support.v4.app.FragmentTransaction;
10 |
11 | public class UserProfileActivity extends BaseActivity {
12 |
13 | public static final String USER_ID_ARGUMENT = "user_id";
14 |
15 | private final String SCREEN_NAME = "ViewMessageActivity";
16 |
17 | public static Intent createIntent(final Context context, final String userId) {
18 | final Intent intent = new Intent(context, UserProfileActivity.class);
19 | intent.putExtra(USER_ID_ARGUMENT, userId);
20 | return intent;
21 | }
22 |
23 | @Override
24 | public void onCreate(Bundle savedInstanceState) {
25 | super.onCreate(savedInstanceState);
26 | setContentView(R.layout.frame_activity);
27 |
28 | if (savedInstanceState == null) {
29 | final String userId = getIntent().getStringExtra(USER_ID_ARGUMENT);
30 | final Fragment fragment = UserProfileFragment.createInstance(userId);
31 | final FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
32 | transaction.replace(R.id.frame_activity_content, fragment).commit();
33 | }
34 |
35 | // Remove the title and subtitle if any
36 | /*final ActionBar actionBar = UIUtils.getSupportActionBar(this);
37 | actionBar.setTitle(null);
38 | actionBar.setSubtitle(null);*/
39 | }
40 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/ViewMessageActivity.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui;
2 |
3 | import com.xda.one.R;
4 | import com.xda.one.model.augmented.AugmentedMessage;
5 |
6 | import android.os.Bundle;
7 | import android.support.v4.app.FragmentTransaction;
8 | import android.view.WindowManager;
9 |
10 | public class ViewMessageActivity extends BaseActivity {
11 |
12 | private static final String MESSAGE_ARGUMENT = "message";
13 |
14 | private ViewMessageFragment mMessageFragment;
15 |
16 | private final String SCREEN_NAME = "ViewMessageActivity";
17 |
18 | @Override
19 | public void onCreate(final Bundle bundle) {
20 | super.onCreate(bundle);
21 | setContentView(R.layout.frame_activity);
22 |
23 | if (bundle == null) {
24 | final AugmentedMessage message = getIntent().getParcelableExtra(MESSAGE_ARGUMENT);
25 | mMessageFragment = ViewMessageFragment.createInstance(message);
26 |
27 | final FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
28 | transaction.replace(R.id.frame_activity_content, mMessageFragment).commit();
29 | } else {
30 | mMessageFragment = (ViewMessageFragment) getSupportFragmentManager()
31 | .findFragmentById(R.id.frame_activity_content);
32 | }
33 | getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
34 |
35 |
36 | }
37 |
38 | @Override
39 | public void onBackPressed() {
40 | mMessageFragment.onBackPressed();
41 | super.onBackPressed();
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | XDA:One
2 | ==========
3 | XDA:One is a native Android application for interfacing with the XDA Developers forum. We welcome all outside contributions. For the XDA thread with discussion of this app, see http://forum.xda-developers.com/general/about-xda/alpha-official-xda-one-forum-app-t2899329
4 |
5 | 
6 |
7 | ### Compiling
8 |
9 | XDA One is developed using the [Android Studio IDE](http://developer.android.com/tools/studio/index.html) and Gradle. A simple debug build can be compiled using the XDA-One:assembleSimpleDebug gradle task.
10 |
11 | For directions/howto on compiling in Android Studio, see https://github.com/xda/XDA-One/wiki/Compiling
12 |
13 | ### Contributing
14 |
15 | XDA One will adopt the "Fork & pull" model of collaboration. Collaborators are encouraged to fork the project and submit pull requests for XDA's review, in order to be integrated back into the main release.
16 |
17 | If you wish to design a major change, please let us know what API endpoints we can create to help your goals. Although we can't promise everything, we will do our best to accomodate new features via the API.
18 |
19 | ### Credits
20 |
21 | * Lalit Maganti (@tilal6991) - Co-author, Lead
22 | * @andriyKan - (Early) Co-author
23 | * @rwestergren - Build maintainer, API Design
24 | * @ddrager - Pushin' bits
25 |
26 | ##### Translators
27 |
28 | * Japanese: @blackzigong
29 | * Slovak: @pasomnica and @pylerSM
30 | * Portuguese: @dragonpt
31 | * French: @Primokorn
32 | * German: @laufersteppenwolf
33 | * Italian: @toyr99
34 | * Dutch: @tjorim
35 | * Russian: @DumF0rGaming
36 | * Czech: @loqan
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/model/augmented/container/AugmentedQuoteContainer.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.model.augmented.container;
2 |
3 | import com.xda.one.R;
4 | import com.xda.one.api.model.interfaces.Quote;
5 | import com.xda.one.api.model.interfaces.container.QuoteContainer;
6 | import com.xda.one.model.augmented.AugmentedQuote;
7 |
8 | import android.content.Context;
9 |
10 | import java.util.ArrayList;
11 | import java.util.List;
12 |
13 | public class AugmentedQuoteContainer implements QuoteContainer {
14 |
15 | private final QuoteContainer mQuoteContainer;
16 |
17 | private final ArrayList mQuotes;
18 |
19 | public AugmentedQuoteContainer(final QuoteContainer quoteContainer, final Context context) {
20 | mQuoteContainer = quoteContainer;
21 |
22 | mQuotes = new ArrayList<>();
23 |
24 | final int primary = context.getResources().getColor(R.color.default_primary_text);
25 | final int secondary = context.getResources().getColor(R.color.default_secondary_text);
26 | for (final Quote quote : quoteContainer.getQuotes()) {
27 | mQuotes.add(new AugmentedQuote(quote, context, primary, secondary));
28 | }
29 | }
30 |
31 | @Override
32 | public List getQuotes() {
33 | return mQuotes;
34 | }
35 |
36 | @Override
37 | public int getTotalPages() {
38 | return mQuoteContainer.getTotalPages();
39 | }
40 |
41 | @Override
42 | public int getPerPage() {
43 | return mQuoteContainer.getPerPage();
44 | }
45 |
46 | @Override
47 | public int getCurrentPage() {
48 | return mQuoteContainer.getCurrentPage();
49 | }
50 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/model/augmented/container/AugmentedUnifiedThreadContainer.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.model.augmented.container;
2 |
3 | import com.xda.one.api.model.interfaces.UnifiedThread;
4 | import com.xda.one.api.model.interfaces.container.UnifiedThreadContainer;
5 | import com.xda.one.model.augmented.AugmentedUnifiedThread;
6 |
7 | import android.content.Context;
8 |
9 | import java.util.ArrayList;
10 | import java.util.List;
11 |
12 | public class AugmentedUnifiedThreadContainer implements UnifiedThreadContainer {
13 |
14 | private final UnifiedThreadContainer mUnifiedThreadContainer;
15 |
16 | private final List mAugmentedThreads;
17 |
18 | public AugmentedUnifiedThreadContainer(final UnifiedThreadContainer container,
19 | final Context context) {
20 | mUnifiedThreadContainer = container;
21 | mAugmentedThreads = new ArrayList<>(mUnifiedThreadContainer.getThreads().size());
22 |
23 | // Augment threads
24 | for (final UnifiedThread thread : container.getThreads()) {
25 | mAugmentedThreads.add(new AugmentedUnifiedThread(thread, context));
26 | }
27 | }
28 |
29 | @Override
30 | public List getThreads() {
31 | return mAugmentedThreads;
32 | }
33 |
34 | @Override
35 | public int getTotalPages() {
36 | return mUnifiedThreadContainer.getTotalPages();
37 | }
38 |
39 | @Override
40 | public int getPerPage() {
41 | return mUnifiedThreadContainer.getPerPage();
42 | }
43 |
44 | @Override
45 | public int getCurrentPage() {
46 | return mUnifiedThreadContainer.getCurrentPage();
47 | }
48 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/model/augmented/container/AugmentedMentionContainer.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.model.augmented.container;
2 |
3 | import com.xda.one.R;
4 | import com.xda.one.api.model.interfaces.Mention;
5 | import com.xda.one.api.model.interfaces.container.MentionContainer;
6 | import com.xda.one.model.augmented.AugmentedMention;
7 |
8 | import android.content.Context;
9 |
10 | import java.util.ArrayList;
11 | import java.util.List;
12 |
13 | public class AugmentedMentionContainer implements MentionContainer {
14 |
15 | private final MentionContainer mMentionContainer;
16 |
17 | private final List mMentions;
18 |
19 | public AugmentedMentionContainer(final MentionContainer container, final Context context) {
20 | mMentionContainer = container;
21 | mMentions = new ArrayList<>();
22 |
23 | final int primary = context.getResources().getColor(R.color.default_primary_text);
24 | final int secondary = context.getResources().getColor(R.color.default_secondary_text);
25 | for (final Mention quote : container.getMentions()) {
26 | mMentions.add(new AugmentedMention(quote, context, primary, secondary));
27 | }
28 | }
29 |
30 | @Override
31 | public List getMentions() {
32 | return mMentions;
33 | }
34 |
35 | @Override
36 | public int getTotalPages() {
37 | return mMentionContainer.getTotalPages();
38 | }
39 |
40 | @Override
41 | public int getPerPage() {
42 | return mMentionContainer.getPerPage();
43 | }
44 |
45 | @Override
46 | public int getCurrentPage() {
47 | return mMentionContainer.getCurrentPage();
48 | }
49 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/loader/PostLoader.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.loader;
2 |
3 | import com.xda.one.api.inteface.PostClient;
4 | import com.xda.one.api.model.response.container.ResponsePostContainer;
5 | import com.xda.one.api.retrofit.RetrofitPostClient;
6 | import com.xda.one.model.augmented.AugmentedPostContainer;
7 |
8 | import android.content.Context;
9 |
10 | public class PostLoader extends AsyncLoader {
11 |
12 | private final PostClient mPostClient;
13 |
14 | private final ResponsePostContainer mResponseContainer;
15 |
16 | private int mPage;
17 |
18 | private String mThreadId;
19 |
20 | public PostLoader(Context context, String threadId, int page) {
21 | super(context);
22 |
23 | mPage = page;
24 | mThreadId = threadId;
25 | mResponseContainer = null;
26 | mPostClient = RetrofitPostClient.getClient(getContext());
27 | }
28 |
29 | public PostLoader(final Context context, final ResponsePostContainer responseContainer) {
30 | super(context);
31 |
32 | mResponseContainer = responseContainer;
33 | mPostClient = RetrofitPostClient.getClient(getContext());
34 | }
35 |
36 | @Override
37 | public void releaseResources(final AugmentedPostContainer data) {
38 | }
39 |
40 | @Override
41 | public AugmentedPostContainer loadInBackground() {
42 | final ResponsePostContainer container = mResponseContainer == null
43 | ? mPostClient.getPosts(mThreadId, mPage)
44 | : mResponseContainer;
45 | if (container == null) {
46 | return null;
47 | }
48 | return new AugmentedPostContainer(container, getContext());
49 | }
50 | }
--------------------------------------------------------------------------------
/android/src/main/res/drawable/item_background_holo_dark.xml:
--------------------------------------------------------------------------------
1 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/android/src/main/res/drawable/item_background_holo_light.xml:
--------------------------------------------------------------------------------
1 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/model/augmented/container/AugmentedMessageContainer.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.model.augmented.container;
2 |
3 | import com.xda.one.api.model.interfaces.Message;
4 | import com.xda.one.api.model.interfaces.container.MessageContainer;
5 | import com.xda.one.api.model.response.container.ResponseMessageContainer;
6 | import com.xda.one.model.augmented.AugmentedMessage;
7 | import com.xda.one.util.Utils;
8 |
9 | import android.content.Context;
10 |
11 | import java.util.ArrayList;
12 | import java.util.List;
13 |
14 | public class AugmentedMessageContainer implements MessageContainer {
15 |
16 | private final MessageContainer mMessageContainer;
17 |
18 | private final List mAugmentedMessages;
19 |
20 | public AugmentedMessageContainer(final Context context, final ResponseMessageContainer
21 | container) {
22 | mMessageContainer = container;
23 | mAugmentedMessages = new ArrayList<>();
24 |
25 | final List extends Message> list = mMessageContainer.getMessages();
26 | if (!Utils.isCollectionEmpty(list)) {
27 | for (final Message responseMessage : list) {
28 | mAugmentedMessages.add(new AugmentedMessage(context, responseMessage));
29 | }
30 | }
31 | }
32 |
33 | @Override
34 | public List getMessages() {
35 | return mAugmentedMessages;
36 | }
37 |
38 | @Override
39 | public int getTotalPages() {
40 | return mMessageContainer.getTotalPages();
41 | }
42 |
43 | @Override
44 | public int getMessagesPerPage() {
45 | return mMessageContainer.getMessagesPerPage();
46 | }
47 |
48 | @Override
49 | public int getCurrentPage() {
50 | return mMessageContainer.getCurrentPage();
51 | }
52 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/thread/FirstThreadClickStrategy.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui.thread;
2 |
3 | import com.xda.one.R;
4 | import com.xda.one.model.augmented.AugmentedUnifiedThread;
5 | import com.xda.one.util.FragmentUtils;
6 |
7 | import android.os.Parcel;
8 | import android.os.Parcelable;
9 | import android.support.v4.app.Fragment;
10 | import android.support.v4.app.FragmentTransaction;
11 |
12 | import java.util.ArrayList;
13 | import java.util.List;
14 |
15 | public class FirstThreadClickStrategy implements ThreadClickStrategy {
16 |
17 | public static final Parcelable.Creator CREATOR
18 | = new Parcelable.Creator() {
19 | public FirstThreadClickStrategy createFromParcel(Parcel in) {
20 | return new FirstThreadClickStrategy();
21 | }
22 |
23 | public FirstThreadClickStrategy[] newArray(int size) {
24 | return new FirstThreadClickStrategy[size];
25 | }
26 | };
27 |
28 | @Override
29 | public void onClick(final Fragment threadFragment, final List hierarchy,
30 | final AugmentedUnifiedThread thread) {
31 | final Fragment fragment = FragmentUtils.switchToPostList(thread,
32 | new ArrayList<>(hierarchy));
33 | fragment.setTargetFragment(threadFragment, 101);
34 | final FragmentTransaction transaction = FragmentUtils
35 | .getDefaultTransaction(threadFragment.getFragmentManager());
36 | transaction.addToBackStack(thread.getTitle());
37 | transaction.replace(R.id.content_frame, fragment).commit();
38 | }
39 |
40 | @Override
41 | public int describeContents() {
42 | return 0;
43 | }
44 |
45 | @Override
46 | public void writeToParcel(Parcel dest, int flags) {
47 | }
48 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/loader/MessageLoader.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.loader;
2 |
3 | import com.xda.one.api.inteface.PrivateMessageClient;
4 | import com.xda.one.api.model.response.container.ResponseMessageContainer;
5 | import com.xda.one.model.augmented.container.AugmentedMessageContainer;
6 |
7 | import android.content.Context;
8 |
9 | import static com.xda.one.api.retrofit.RetrofitPrivateMessageClient.getClient;
10 | import static com.xda.one.ui.MessagePagerFragment.MessageContainerType;
11 |
12 | public class MessageLoader extends AsyncLoader {
13 |
14 | private final int mPage;
15 |
16 | private final MessageContainerType mContainerType;
17 |
18 | private final PrivateMessageClient mMessageClient;
19 |
20 | public MessageLoader(final Context context, int page, final MessageContainerType type) {
21 | super(context);
22 |
23 | mPage = page;
24 | mContainerType = type;
25 | mMessageClient = getClient(getContext());
26 | }
27 |
28 | @Override
29 | public AugmentedMessageContainer loadInBackground() {
30 | final ResponseMessageContainer responseMessageContainer;
31 | switch (mContainerType) {
32 | case INBOX:
33 | responseMessageContainer = mMessageClient.getInboxMessages(mPage);
34 | break;
35 | case OUTBOX:
36 | responseMessageContainer = mMessageClient.getSentMessages(mPage);
37 | break;
38 | default:
39 | throw new IllegalArgumentException();
40 | }
41 | if (responseMessageContainer == null) {
42 | return null;
43 | }
44 | return new AugmentedMessageContainer(getContext(), responseMessageContainer);
45 | }
46 |
47 | @Override
48 | public void releaseResources(AugmentedMessageContainer data) {
49 | }
50 | }
--------------------------------------------------------------------------------
/android/src/main/java/com/xda/one/ui/PostPageAdapter.java:
--------------------------------------------------------------------------------
1 | package com.xda.one.ui;
2 |
3 | import com.xda.one.R;
4 |
5 | import android.content.Context;
6 | import android.support.v7.widget.RecyclerView;
7 | import android.view.LayoutInflater;
8 | import android.view.View;
9 | import android.view.ViewGroup;
10 | import android.widget.TextView;
11 |
12 | public class PostPageAdapter extends RecyclerView.Adapter {
13 |
14 | private final LayoutInflater mLayoutInflater;
15 |
16 | private final int mCount;
17 |
18 | private final View.OnClickListener mOnClickListener;
19 |
20 | public PostPageAdapter(final Context context, final int count,
21 | final View.OnClickListener clickListener) {
22 | mCount = count;
23 | mOnClickListener = clickListener;
24 | mLayoutInflater = LayoutInflater.from(context);
25 | }
26 |
27 | @Override
28 | public PageViewHolder onCreateViewHolder(final ViewGroup parent, final int viewType) {
29 | final View view = mLayoutInflater.inflate(R.layout.post_page_dropdown, parent, false);
30 | return new PageViewHolder(view);
31 | }
32 |
33 | @Override
34 | public void onBindViewHolder(final PageViewHolder holder, final int position) {
35 | final int page = position + 1;
36 | holder.textView.setText("Page " + page);
37 |
38 | holder.itemView.setOnClickListener(mOnClickListener);
39 | }
40 |
41 | @Override
42 | public int getItemCount() {
43 | return mCount;
44 | }
45 |
46 | public static class PageViewHolder extends RecyclerView.ViewHolder {
47 |
48 | private final TextView textView;
49 |
50 | public PageViewHolder(final View itemView) {
51 | super(itemView);
52 |
53 | textView = (TextView) itemView.findViewById(R.id.page_top_textview);
54 | }
55 | }
56 | }
--------------------------------------------------------------------------------