├── .gitignore ├── HelpStackExample ├── AndroidManifest.xml ├── build.gradle ├── crashlytics.properties ├── ic_launcher-web.png ├── proguard-project.txt ├── project.properties ├── res │ ├── layout │ │ ├── activity_main.xml │ │ └── fragment_main.xml │ ├── menu │ │ └── main.xml │ ├── values-v11 │ │ └── styles.xml │ ├── values-v14 │ │ └── styles.xml │ ├── values-w820dp │ │ └── dimens.xml │ ├── values │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ └── xml │ │ └── articles.xml └── src │ └── com │ └── example │ └── helpstackexample │ ├── HSApplication.java │ └── MainActivity.java ├── Images ├── hs_preview.png ├── issuedetail_style.png └── mainlist_style.png ├── License.md ├── README.md ├── Themes ├── HSDarkTheme │ ├── README.md │ ├── screenshot │ │ └── HSDarkTheme.png │ └── values │ │ ├── hs_custom_theme.xml │ │ └── hs_dark_colors.xml ├── HSFacebookTheme │ ├── README.md │ ├── screenshot │ │ └── HSFacebookTheme.png │ └── values │ │ ├── hs_custom_theme.xml │ │ └── hs_fb_colors.xml ├── HSHalloweenTheme │ ├── README.md │ ├── screenshot │ │ └── HSHalloweenTheme.png │ └── values │ │ ├── hs_custom_theme.xml │ │ └── hs_halloween_colors.xml ├── HSLightTheme │ ├── README.md │ ├── screenshot │ │ └── HSLightTheme.png │ └── values │ │ ├── hs_custom_theme.xml │ │ └── hs_light_colors.xml ├── HSPathTheme │ ├── README.md │ ├── screenshot │ │ └── HSPathTheme.png │ └── values │ │ ├── hs_custom_theme.xml │ │ └── hs_path_colors.xml └── HSPinterestTheme │ ├── README.md │ ├── screenshot │ └── HSPinterestTheme.png │ └── values │ ├── hs_custom_theme.xml │ └── hs_pinterest_colors.xml ├── build.gradle ├── helpstack ├── AndroidManifest.xml ├── attachment_icon-web.png ├── build.gradle ├── ic_launcher-web.png ├── libs │ └── gesture-imageview.jar ├── proguard-project.txt ├── project.properties ├── res │ ├── drawable-hdpi │ │ ├── hs_accept.png │ │ ├── hs_accept_light.png │ │ ├── hs_add_attachment_img.png │ │ ├── hs_add_attachment_img_light.png │ │ ├── hs_attachment.png │ │ ├── hs_attachment_light.png │ │ ├── hs_disclosure.png │ │ ├── hs_disclosure_light.png │ │ ├── hs_download.png │ │ ├── hs_download_light.png │ │ ├── hs_forward.png │ │ ├── hs_forward_light.png │ │ ├── hs_launcher.png │ │ ├── hs_search.png │ │ ├── hs_search_light.png │ │ ├── hs_send.png │ │ └── hs_send_light.png │ ├── drawable-mdpi │ │ ├── hs_accept.png │ │ ├── hs_accept_light.png │ │ ├── hs_add_attachment_img.png │ │ ├── hs_add_attachment_img_light.png │ │ ├── hs_attachment.png │ │ ├── hs_attachment_light.png │ │ ├── hs_disclosure.png │ │ ├── hs_disclosure_light.png │ │ ├── hs_download.png │ │ ├── hs_download_light.png │ │ ├── hs_forward.png │ │ ├── hs_forward_light.png │ │ ├── hs_launcher.png │ │ ├── hs_search.png │ │ ├── hs_search_light.png │ │ ├── hs_send.png │ │ └── hs_send_light.png │ ├── drawable-xhdpi │ │ ├── hs_accept.png │ │ ├── hs_accept_light.png │ │ ├── hs_add_attachment_img.png │ │ ├── hs_add_attachment_img_light.png │ │ ├── hs_attachment.png │ │ ├── hs_attachment_light.png │ │ ├── hs_disclosure.png │ │ ├── hs_disclosure_light.png │ │ ├── hs_download.png │ │ ├── hs_download_light.png │ │ ├── hs_forward.png │ │ ├── hs_forward_light.png │ │ ├── hs_launcher.png │ │ ├── hs_search.png │ │ ├── hs_search_light.png │ │ ├── hs_send.png │ │ └── hs_send_light.png │ ├── drawable-xxhdpi │ │ ├── hs_accept.png │ │ ├── hs_accept_light.png │ │ ├── hs_add_attachment_img.png │ │ ├── hs_add_attachment_img_light.png │ │ ├── hs_attachment.png │ │ ├── hs_attachment_light.png │ │ ├── hs_disclosure.png │ │ ├── hs_disclosure_light.png │ │ ├── hs_download.png │ │ ├── hs_download_light.png │ │ ├── hs_forward.png │ │ ├── hs_forward_light.png │ │ ├── hs_launcher.png │ │ ├── hs_search.png │ │ ├── hs_search_light.png │ │ ├── hs_send.png │ │ └── hs_send_light.png │ ├── drawable │ │ ├── brush_blue.xml │ │ ├── brush_green.xml │ │ ├── brush_red.xml │ │ ├── left_chat_bubble.xml │ │ ├── left_chat_bubble_triangle.xml │ │ ├── paint.xml │ │ ├── paint_pressed.xml │ │ ├── right_chat_bubble.xml │ │ └── right_chat_bubble_triangle.xml │ ├── layout │ │ ├── hs_activity_article.xml │ │ ├── hs_activity_attachment.xml │ │ ├── hs_activity_base.xml │ │ ├── hs_activity_edit_attachment.xml │ │ ├── hs_activity_home.xml │ │ ├── hs_activity_image_attachment_display.xml │ │ ├── hs_activity_issue_detail.xml │ │ ├── hs_activity_new_issue.xml │ │ ├── hs_activity_new_user.xml │ │ ├── hs_activity_section.xml │ │ ├── hs_attachment_dialog.xml │ │ ├── hs_custom_searchview.xml │ │ ├── hs_expandable_child_home_default.xml │ │ ├── hs_expandable_child_issue_detail_staff_reply.xml │ │ ├── hs_expandable_child_issue_detail_user_reply.xml │ │ ├── hs_expandable_footer_powered_by_helpstack.xml │ │ ├── hs_expandable_footer_progress_bar.xml │ │ ├── hs_expandable_footer_report_issue.xml │ │ ├── hs_expandable_parent_home_default.xml │ │ ├── hs_expandable_parent_issue_detail_default.xml │ │ ├── hs_fragment_article.xml │ │ ├── hs_fragment_home.xml │ │ ├── hs_fragment_image_attachment_display.xml │ │ ├── hs_fragment_issue_detail.xml │ │ ├── hs_fragment_new_issue.xml │ │ ├── hs_fragment_new_user.xml │ │ ├── hs_fragment_search.xml │ │ ├── hs_fragment_section.xml │ │ └── hs_sectionlist_article.xml │ ├── menu │ │ ├── hs_article.xml │ │ ├── hs_attachment.xml │ │ ├── hs_edit_attachment.xml │ │ ├── hs_home.xml │ │ ├── hs_image_attachment_display.xml │ │ ├── hs_issue_detail.xml │ │ ├── hs_issue_menu.xml │ │ ├── hs_new_issue.xml │ │ ├── hs_search_menu.xml │ │ └── hs_section.xml │ ├── values-v11 │ │ └── styles.xml │ ├── values-v14 │ │ └── styles.xml │ ├── values-w820dp │ │ └── dimens.xml │ └── values │ │ ├── dimens.xml │ │ ├── hs_colors.xml │ │ ├── hs_default_theme.xml │ │ ├── hs_default_theme_base.xml │ │ ├── hs_dimens.xml │ │ └── hs_strings.xml └── src │ └── com │ └── tenmiles │ └── helpstack │ ├── HSHelpStack.java │ ├── activities │ ├── ArticleActivity.java │ ├── EditAttachmentActivity.java │ ├── HSActivityManager.java │ ├── HSActivityParent.java │ ├── HomeActivity.java │ ├── ImageAttachmentDisplayActivity.java │ ├── IssueDetailActivity.java │ ├── NewIssueActivity.java │ ├── NewUserActivity.java │ └── SectionActivity.java │ ├── fragments │ ├── ArticleFragment.java │ ├── HSFragmentManager.java │ ├── HSFragmentParent.java │ ├── HomeFragment.java │ ├── ImageAttachmentDisplayFragment.java │ ├── IssueDetailFragment.java │ ├── NewIssueFragment.java │ ├── NewUserFragment.java │ ├── SearchFragment.java │ ├── SectionFragment.java │ └── TaskFragment.java │ ├── gears │ ├── HSDeskGear.java │ ├── HSEmailGear.java │ ├── HSHappyfoxGear.java │ └── HSZendeskGear.java │ ├── helper │ └── HSBaseExpandableListAdapter.java │ ├── logic │ ├── HSArticleReader.java │ ├── HSGear.java │ ├── HSSource.java │ ├── HSTestDataGear.java │ ├── HSUtils.java │ ├── OnFetchedArraySuccessListener.java │ ├── OnFetchedSuccessListener.java │ └── OnNewTicketFetchedSuccessListener.java │ ├── model │ ├── HSAttachment.java │ ├── HSCachedTicket.java │ ├── HSCachedUser.java │ ├── HSDraft.java │ ├── HSError.java │ ├── HSKBItem.java │ ├── HSTicket.java │ ├── HSTicketUpdate.java │ ├── HSUploadAttachment.java │ └── HSUser.java │ ├── service │ ├── AttachmentDownloadReceiver.java │ └── DownloadAttachmentUtility.java │ └── widget │ ├── DrawingView.java │ └── HSExpandableListView.java └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | */bin/ 2 | */gen/ 3 | .classpath 4 | .settings 5 | .project 6 | local.properties 7 | .DS_Store 8 | lint.xml 9 | com_crashlytics_export_strings.xml 10 | crashlytics-build.properties 11 | .gradle 12 | .idea 13 | build/ 14 | *.iml 15 | gradle/ 16 | gradlew 17 | gradlew.bat 18 | *.swp 19 | -------------------------------------------------------------------------------- /HelpStackExample/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 12 | 13 | 19 | 22 | 23 | 24 | 25 | 26 | 27 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /HelpStackExample/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter(); 4 | maven { url 'https://maven.fabric.io/public' } 5 | } 6 | 7 | dependencies { 8 | classpath 'io.fabric.tools:gradle:1.20.1' 9 | classpath 'com.google.gms:google-services:2.0.0-beta2' 10 | } 11 | } 12 | 13 | apply plugin: 'com.android.application' 14 | apply plugin: 'io.fabric' 15 | 16 | repositories { 17 | mavenCentral() 18 | maven { url 'https://maven.fabric.io/public' } 19 | } 20 | 21 | dependencies { 22 | compile fileTree(dir: 'libs', include: '*.jar') 23 | compile project(':helpstack') 24 | compile 'com.android.support:appcompat-v7:23.0.0' 25 | compile('com.crashlytics.sdk.android:crashlytics:2.6.1@aar') { 26 | transitive = true; 27 | } 28 | } 29 | 30 | android { 31 | compileSdkVersion 23 32 | buildToolsVersion "23.0.0" 33 | 34 | sourceSets { 35 | main { 36 | manifest.srcFile 'AndroidManifest.xml' 37 | java.srcDirs = ['src'] 38 | resources.srcDirs = ['src'] 39 | aidl.srcDirs = ['src'] 40 | renderscript.srcDirs = ['src'] 41 | res.srcDirs = ['res'] 42 | assets.srcDirs = ['assets'] 43 | } 44 | 45 | // Move the tests to tests/java, tests/res, etc... 46 | instrumentTest.setRoot('tests') 47 | 48 | // Move the build types to build-types/ 49 | // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... 50 | // This moves them out of them default location under src//... which would 51 | // conflict with src/ being used by the main source set. 52 | // Adding new build types or product flavors should be accompanied 53 | // by a similar customization. 54 | debug.setRoot('build-types/debug') 55 | release.setRoot('build-types/release') 56 | } 57 | 58 | packagingOptions { 59 | exclude 'META-INF/DEPENDENCIES' 60 | exclude 'META-INF/NOTICE' 61 | exclude 'META-INF/LICENSE' 62 | } 63 | 64 | } 65 | -------------------------------------------------------------------------------- /HelpStackExample/crashlytics.properties: -------------------------------------------------------------------------------- 1 | #Contains API Secret used to validate your application. Commit to internal source control; avoid making secret public. 2 | #Fri Jun 27 11:43:49 GMT+05:30 2014 3 | apiSecret=c98eaf326d4734c1aea8564c59a19ce37e3685ac7772de5b8550562dbd698970 4 | -------------------------------------------------------------------------------- /HelpStackExample/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/happyfoxinc/helpstack-android/0c875e0385e88e96e6020784384b5c1b730fba11/HelpStackExample/ic_launcher-web.png -------------------------------------------------------------------------------- /HelpStackExample/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 | -------------------------------------------------------------------------------- /HelpStackExample/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-17 15 | android.library.reference.1=../helpstack 16 | manifestmerger.enabled=true 17 | -------------------------------------------------------------------------------- /HelpStackExample/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /HelpStackExample/res/layout/fragment_main.xml: -------------------------------------------------------------------------------- 1 | 12 | 13 |