├── .gitignore ├── README.txt ├── clean_project_files.sh ├── external ├── oak_icon_512.png ├── screenshot1.png ├── screenshot2.png └── screenshot3.png ├── oak-animatedsvgview ├── AndroidManifest.xml ├── pom.xml ├── res │ └── values │ │ └── attrs.xml └── src │ └── main │ └── java │ └── oak │ └── animatedsvgview │ ├── AnimatedSvgView.java │ ├── MathUtil.java │ └── SvgPathParser.java ├── oak-archetype ├── pom.xml └── src │ └── main │ └── resources │ ├── META-INF │ └── maven │ │ └── archetype-metadata.xml │ └── archetype-resources │ ├── .gitignore │ ├── AndroidManifest.xml │ ├── pom.xml │ ├── project.properties │ └── src │ └── main │ ├── assets │ └── fonts │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-Light.ttf │ │ ├── Roboto-Thin.ttf │ │ ├── Roboto.ttf │ │ └── readoutcondenseditalic.ttf │ ├── java │ ├── Datastore.java │ ├── EncryptedPreferencesProvider.java │ ├── EncryptedSharedPreferences.java │ ├── MainApp.java │ ├── RoboGuiceModule.java │ ├── StartupActivity.java │ ├── TabA.java │ ├── TabB.java │ └── TabC.java │ └── res │ ├── drawable-hdpi │ └── ic_launcher.png │ ├── drawable-mdpi │ └── ic_launcher.png │ ├── drawable-xhdpi │ └── ic_launcher.png │ ├── drawable-xxhdpi │ └── ic_launcher.png │ ├── drawable-xxxhdpi │ └── ic_launcher.png │ ├── layout │ ├── simple_list_fragment.xml │ ├── startup_tabs.xml │ └── tab_template.xml │ └── values │ ├── attrs.xml │ ├── colors.xml │ ├── roboguice.xml │ ├── strings.xml │ └── styles.xml ├── oak-aspectratioview ├── AndroidManifest.xml ├── pom.xml ├── res │ └── values │ │ └── attrs.xml └── src │ └── main │ └── java │ └── oak │ └── aspectratioview │ ├── util │ └── RatioSizingUtils.java │ └── widget │ └── AspectRatioLayout.java ├── oak-dagger-api15-archetype ├── pom.xml └── src │ └── main │ └── resources │ ├── META-INF │ └── maven │ │ └── archetype-metadata.xml │ └── archetype-resources │ ├── .gitignore │ ├── AndroidManifest.xml │ ├── pom.xml │ ├── project.properties │ └── src │ └── main │ ├── assets │ └── fonts │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-Light.ttf │ │ ├── Roboto-Thin.ttf │ │ └── Roboto.ttf │ ├── java │ ├── Datastore.java │ ├── EncryptedSharedPreferences.java │ ├── MainApp.java │ ├── StartupActivity.java │ └── dagger │ │ ├── AppModule.java │ │ ├── ForActivity.java │ │ ├── ForApplication.java │ │ ├── IObjectGraph.java │ │ └── Injector.java │ └── res │ ├── drawable-hdpi │ └── ic_launcher.png │ ├── drawable-mdpi │ └── ic_launcher.png │ ├── drawable-xhdpi │ └── ic_launcher.png │ ├── drawable-xxhdpi │ └── ic_launcher.png │ ├── drawable-xxxhdpi │ └── ic_launcher.png │ ├── layout │ └── startup.xml │ └── values │ ├── attrs.xml │ ├── colors.xml │ ├── strings.xml │ └── styles.xml ├── oak-dagger-archetype ├── pom.xml └── src │ └── main │ └── resources │ ├── META-INF │ └── maven │ │ └── archetype-metadata.xml │ └── archetype-resources │ ├── .gitignore │ ├── AndroidManifest.xml │ ├── pom.xml │ ├── project.properties │ └── src │ └── main │ ├── assets │ └── fonts │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-Light.ttf │ │ ├── Roboto-Thin.ttf │ │ └── Roboto.ttf │ ├── java │ ├── Datastore.java │ ├── EncryptedSharedPreferences.java │ ├── MainApp.java │ ├── StartupActivity.java │ └── dagger │ │ ├── AppModule.java │ │ ├── ForActivity.java │ │ ├── ForApplication.java │ │ ├── IObjectGraph.java │ │ └── Injector.java │ └── res │ ├── drawable-hdpi │ └── ic_launcher.png │ ├── drawable-mdpi │ └── ic_launcher.png │ ├── drawable-xhdpi │ └── ic_launcher.png │ ├── drawable-xxhdpi │ └── ic_launcher.png │ ├── drawable-xxxhdpi │ └── ic_launcher.png │ ├── layout │ └── startup.xml │ └── values │ ├── attrs.xml │ ├── colors.xml │ ├── strings.xml │ └── styles.xml ├── oak-demos ├── AndroidManifest.xml ├── assets │ └── fonts │ │ ├── Apple Chancery.ttf │ │ ├── LiberationMono-Regular.ttf │ │ ├── Once_upon_a_time.ttf │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-Light.ttf │ │ ├── Roboto-Thin.ttf │ │ └── Roboto.ttf ├── demos_keystore ├── pom.xml ├── proguard.cfg ├── project.properties ├── res │ ├── drawable-hdpi │ │ ├── attribution.png │ │ ├── cell.png │ │ ├── cell_bottom.png │ │ ├── cell_mid.png │ │ ├── cell_top.png │ │ ├── icon.png │ │ ├── oak_ic_cancel.png │ │ ├── spinner_16_inner_holo.png │ │ ├── spinner_16_outer_holo.png │ │ ├── spinner_48_inner_holo.png │ │ ├── spinner_48_outer_holo.png │ │ ├── spinner_76_inner_holo.png │ │ ├── spinner_76_outer_holo.png │ │ ├── swanky1.png │ │ ├── swanky2.png │ │ ├── swanky3.png │ │ └── swanky4.png │ ├── drawable-ldpi │ │ └── icon.png │ ├── drawable-mdpi │ │ ├── icon.png │ │ ├── spinner_16_inner_holo.png │ │ ├── spinner_16_outer_holo.png │ │ ├── spinner_48_inner_holo.png │ │ ├── spinner_48_outer_holo.png │ │ ├── spinner_76_inner_holo.png │ │ └── spinner_76_outer_holo.png │ ├── drawable-xhdpi │ │ ├── ic_menu_my_calendar.png │ │ ├── ic_menu_search.png │ │ ├── icon.png │ │ ├── loading_00.png │ │ ├── loading_01.png │ │ ├── loading_02.png │ │ ├── loading_03.png │ │ ├── loading_04.png │ │ ├── loading_05.png │ │ ├── loading_06.png │ │ ├── loading_07.png │ │ ├── loading_08.png │ │ ├── loading_09.png │ │ ├── loading_10.png │ │ ├── loading_11.png │ │ ├── loading_12.png │ │ ├── loading_13.png │ │ ├── loading_14.png │ │ ├── loading_15.png │ │ ├── loading_16.png │ │ ├── loading_17.png │ │ ├── loading_18.png │ │ ├── loading_19.png │ │ ├── loading_20.png │ │ ├── oak_ic_cancel.png │ │ ├── spinner_16_inner_holo.png │ │ ├── spinner_16_outer_holo.png │ │ ├── spinner_48_inner_holo.png │ │ ├── spinner_48_outer_holo.png │ │ ├── spinner_76_inner_holo.png │ │ └── spinner_76_outer_holo.png │ ├── drawable │ │ ├── card_bg.xml │ │ ├── progress_large_holo.xml │ │ ├── progress_medium_holo.xml │ │ ├── progress_small_holo.xml │ │ ├── spreadsheetcellselectedshape.xml │ │ ├── spreadsheetcolumncellshape.xml │ │ ├── spreadsheetdatacellshape.xml │ │ ├── spreadsheetfootercellshape.xml │ │ └── spreadsheetheadercellshape.xml │ ├── layout │ │ ├── activity_attribution.xml │ │ ├── activity_fishbowl_svg.xml │ │ ├── activity_fragment_host_demo.xml │ │ ├── activity_full_logo_attribution.xml │ │ ├── activity_viewmodel.xml │ │ ├── activity_web_launch.xml │ │ ├── activity_wta_logo_fragment.xml │ │ ├── aspect_ratio_layout_demo.xml │ │ ├── attribution.xml │ │ ├── button_with_font_demo.xml │ │ ├── cancel_edit_text_demo.xml │ │ ├── change_fonts_demo.xml │ │ ├── check_box_with_font_demo.xml │ │ ├── custom_circular_progress_bar_demo.xml │ │ ├── custom_progress_dialog_activity.xml │ │ ├── filter.xml │ │ ├── filter_header.xml │ │ ├── filter_list_item.xml │ │ ├── font_span.xml │ │ ├── fragment_animated_wta_logo.xml │ │ ├── fragment_color.xml │ │ ├── fragment_show_text.xml │ │ ├── fragment_webview_bak.xml │ │ ├── gradient_text_view_demo.xml │ │ ├── is_package_installed_demo.xml │ │ ├── list_viewmodelitem.xml │ │ ├── masked_image_view_activity.xml │ │ ├── nfc_layout.xml │ │ ├── oak_activity.xml │ │ ├── obscured_prefs_demo.xml │ │ ├── parent_swiping_view_pager_demo.xml │ │ ├── photo_list_item.xml │ │ ├── resizable_header_demo.xml │ │ ├── resizable_header_scrollview_header.xml │ │ ├── resizable_header_scrollview_layout.xml │ │ ├── resized_textview_demo.xml │ │ ├── sticky_spreadsheet_demo.xml │ │ ├── swanky_gallery_demo.xml │ │ ├── test_fragment.xml │ │ ├── test_fragment_web_view.xml │ │ ├── textview_with_font_demo.xml │ │ └── vertical_viewpager_demo.xml │ └── values │ │ ├── arrays.xml │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── roboguice.xml │ │ ├── strings.xml │ │ └── styles.xml └── src │ └── oak │ └── demo │ ├── EncryptedPreferences.java │ ├── EncryptedPreferencesProvider.java │ ├── EncryptedSharedPreferences.java │ ├── OakApplication.java │ ├── OakDemoActivity.java │ ├── OakDemos.java │ ├── RoboGuiceModule.java │ ├── fragmenthostactivity │ ├── FragmentHostDemoActivity.java │ ├── ShowTextFragment.java │ ├── ShowTextSupportFragment.java │ └── SupportFragmentHostDemoActivity.java │ ├── image │ └── SwankyGalleryActivity.java │ ├── listview │ └── SectionActivity.java │ ├── model │ ├── Person.java │ └── PhotoItem.java │ ├── other │ └── ObscuredPrefsActivity.java │ ├── svg │ ├── AnimatedWtaLogoFragment.java │ ├── AttributionActivity.java │ ├── FishbowlLogoPaths.java │ ├── FishbowlSvgActivity.java │ ├── FullLogoAttributionActivity.java │ └── WtaLogoPaths.java │ ├── utils │ ├── ChangeFontsActivity.java │ ├── FontTypeFaceSpanActivity.java │ └── IsPackageInstalledActivity.java │ ├── verticalpager │ ├── ColorFragment.java │ └── HorizonTransform.java │ ├── viewmodel │ ├── StringViewModel.java │ └── ViewModelActivity.java │ ├── web │ └── WebLaunchActivity.java │ └── widget │ ├── AspectRatioLayoutActivity.java │ ├── ButtonWithFontActivity.java │ ├── CancelEditTextActivity.java │ ├── CheckBoxWithFontActivity.java │ ├── CustomCircularProgressBarActivity.java │ ├── CustomProgressDialogActivity.java │ ├── DefaultPromptSpinner.java │ ├── MaskedImageViewActivity.java │ ├── ParentSwipingViewPagerActivity.java │ ├── ParentSwipingWebViewActivity.java │ ├── ResizableHeaderScrollViewActivity.java │ ├── SpreadsheetViewActivity.java │ ├── TextViewWithFontActivity.java │ └── VerticalViewPagerActivity.java ├── oak-distribution ├── README.txt ├── pom.xml └── src │ └── assembly │ └── bin.xml ├── oak-gradle-archetype ├── pom.xml └── src │ └── main │ └── resources │ ├── META-INF │ └── maven │ │ └── archetype-metadata.xml │ └── archetype-resources │ ├── .gitignore │ ├── app │ ├── .gitignore │ ├── build.gradle │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ └── fonts │ │ │ ├── Roboto-Bold.ttf │ │ │ ├── Roboto-Light.ttf │ │ │ ├── Roboto-Thin.ttf │ │ │ └── Roboto.ttf │ │ ├── java │ │ ├── Datastore.java │ │ ├── EncryptedSharedPreferences.java │ │ ├── MainApp.java │ │ ├── StartupActivity.java │ │ └── dagger │ │ │ ├── AppModule.java │ │ │ ├── ForActivity.java │ │ │ ├── ForApplication.java │ │ │ ├── IObjectGraph.java │ │ │ └── Injector.java │ │ └── res │ │ ├── drawable-hdpi │ │ └── ic_launcher.png │ │ ├── drawable-mdpi │ │ └── ic_launcher.png │ │ ├── drawable-xhdpi │ │ └── ic_launcher.png │ │ ├── drawable-xxhdpi │ │ └── ic_launcher.png │ │ ├── drawable-xxxhdpi │ │ └── ic_launcher.png │ │ ├── layout │ │ └── startup.xml │ │ └── values │ │ ├── attrs.xml │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── pom.xml │ ├── project.properties │ └── settings.gradle ├── oak-instrumentation ├── AndroidManifest.xml ├── pom.xml ├── project.properties ├── res │ └── drawable │ │ └── icon.png └── src │ └── main │ └── java │ └── oak │ └── test │ ├── AllTests.java │ └── OakApplicationTests.java ├── oak-library ├── AndroidManifest.xml ├── pom.xml ├── project.properties ├── res │ ├── drawable-xhdpi │ │ ├── back.png │ │ ├── forward.png │ │ └── refresh.png │ ├── drawable-xxhdpi │ │ └── wta_logo_subtitle.png │ ├── drawable │ │ ├── button_bg.xml │ │ ├── button_bg_pressed.xml │ │ ├── resizable_header_bg.xml │ │ └── web_button_bg.xml │ ├── layout │ │ ├── activity_fragment_host.xml │ │ ├── animated_wta_logo_fragment.xml │ │ └── webview.xml │ └── values │ │ ├── attrs.xml │ │ ├── ids.xml │ │ └── strings.xml └── src │ └── main │ └── java │ └── oak │ ├── BaseSectionAdapter.java │ ├── FlushedInputStream.java │ ├── MultiDirectionSlidingDrawer.java │ ├── OAK.java │ ├── Queryable.java │ ├── SectionAdapter.java │ ├── Sectionable.java │ ├── activity │ ├── FragmentHostActivity.java │ └── SupportFragmentHostActivity.java │ ├── svg │ ├── AnimatedSvgView.java │ ├── MathUtil.java │ └── SvgPathParser.java │ ├── util │ ├── CurlRequestInterceptor.java │ ├── RatioSizingUtils.java │ └── ScaleGestureDetector.java │ ├── web │ ├── OakWebViewFragment.java │ └── WebViewActivity.java │ └── widget │ ├── ButtonWithFont.java │ ├── CancelEditText.java │ ├── CheckBoxWithFont.java │ ├── CustomCircularProgressBar.java │ ├── CustomProgressDialog.java │ ├── EdgeyViewPager.java │ ├── MaskedImageView.java │ ├── ResizableHeaderScrollView.java │ ├── SceneAnimation.java │ ├── SectionListView.java │ ├── SwankyGallery.java │ ├── SwankyImageView.java │ ├── TextViewWithFont.java │ ├── VerticalViewPager.java │ └── spreadsheetview │ ├── SpreadsheetCell.java │ ├── SpreadsheetRow.java │ └── SpreadsheetView.java ├── oak-parentswipingviews ├── AndroidManifest.xml ├── pom.xml └── src │ └── main │ └── java │ └── oak │ └── widget │ ├── ParentSwipingViewPager.java │ └── ParentSwipingWebView.java ├── oak-sectionlistview ├── pom.xml └── src │ └── main │ └── java │ └── oak │ └── sectionlistview │ ├── BaseSectionAdapter.java │ ├── Queryable.java │ ├── SectionAdapter.java │ ├── SectionListView.java │ └── Sectionable.java ├── oak-spreadsheetview ├── AndroidManifest.xml ├── pom.xml ├── res │ └── values │ │ └── attrs.xml └── src │ └── main │ └── java │ └── oak │ └── spreadsheetview │ ├── SpreadsheetCell.java │ ├── SpreadsheetRow.java │ └── SpreadsheetView.java ├── oak-utils ├── pom.xml └── src │ └── main │ └── java │ └── oak │ ├── app │ ├── CryptoSharedPreferences.java │ └── OakAsyncLoader.java │ └── util │ ├── Base64.java │ ├── CompatUtils.java │ ├── FontTypefaceSpan.java │ ├── OakUtils.java │ ├── PRNGFixes.java │ └── Result.java ├── oak-viewmodel ├── pom.xml └── src │ └── main │ └── java │ └── oak │ └── viewmodel │ ├── ViewModel.java │ ├── ViewModelAdapter.java │ ├── ViewModelCursorAdapter.java │ └── ViewModelUtil.java ├── oak-viewswithfont ├── AndroidManifest.xml ├── pom.xml ├── res │ └── values │ │ └── attrs.xml └── src │ └── main │ └── java │ └── oak │ └── viewswithfont │ └── widget │ ├── ButtonWithFont.java │ ├── CancelEditText.java │ ├── CheckBoxWithFont.java │ └── TextViewWithFont.java ├── oak-webview ├── AndroidManifest.xml ├── pom.xml ├── res │ ├── drawable-xhdpi │ │ ├── back.png │ │ ├── forward.png │ │ └── refresh.png │ ├── drawable │ │ ├── button_bg.xml │ │ ├── button_bg_pressed.xml │ │ └── web_button_bg.xml │ ├── layout │ │ └── webview.xml │ └── values │ │ ├── ids.xml │ │ └── strings.xml └── src │ └── main │ └── java │ └── oak │ └── webview │ ├── Extras.java │ ├── OakWebViewFragment.java │ └── WebViewActivity.java ├── pom.xml └── src ├── development └── ide │ ├── eclipse │ ├── android.importorder │ └── willowtree-codestyle-eclipse.xml │ └── intellij │ └── willowtree-codestyle-intellij.xml └── site ├── apt ├── OakWebView.apt ├── animatedsvgview.apt ├── beastviewpager.apt ├── cancel_edit_text.apt ├── crypto_prefs.apt ├── dev-doc.apt ├── downloads.apt.vm ├── index.apt ├── obscured_prefs.apt ├── pinnedheader.apt ├── quick-start.apt.vm ├── recommendedlibs.apt ├── section-adapter.apt ├── swankyimageview.apt ├── textviewwithfont.apt ├── user-doc.apt └── utility.apt ├── resources ├── banner_background.png ├── banner_left.png ├── banner_right.png ├── build-ivy.xml ├── cancel_edit_text.png ├── crypto_shared_prefs.png ├── css │ └── site.css ├── downloads │ ├── oak-distribution-1.1.10-SNAPSHOT-bin.tar.gz │ ├── oak-distribution-1.1.10-SNAPSHOT-bin.zip │ ├── oak-distribution-1.1.9-bin.tar.gz │ ├── oak-distribution-1.1.9-bin.zip │ ├── oak-distribution-1.3.7-SNAPSHOT-bin.tar.gz │ ├── oak-distribution-1.3.7-SNAPSHOT-bin.zip │ ├── oak-library-1.1.10-SNAPSHOT.jar │ └── oak-library-1.1.9.jar ├── images │ ├── android-logo.jpg │ └── wta_circle.png ├── obscured_shared_prefs.png ├── section_list_demo.mp4 ├── sectionadapter.png ├── spreedsheet_demo.mp4 ├── svg_demo.mp4 ├── swanky_gallery_demo.mp4 └── vertical_viewpager_demo.mp4 └── site.xml /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | .settings/ 3 | gen/ 4 | bin/ 5 | *.log 6 | proguard/ 7 | local.properties 8 | *.DS_Store 9 | design/ 10 | Tests/ 11 | external_data/ 12 | out/ 13 | *.iml 14 | *.ipr 15 | target/ 16 | .project 17 | .classpath 18 | target/ 19 | classes/ 20 | gen-external-apklibs/ 21 | tmp/ -------------------------------------------------------------------------------- /README.txt: -------------------------------------------------------------------------------- 1 | DEPRECATED. 2 | 3 | This library has been deprecated. We may move individual aspects of this library into small targetted libraries. This page will be updated when that occurs. 4 | 5 | Full site and documentation: 6 | http://willowtreeapps.github.com/OAK/ 7 | 8 | ..or.. 9 | After checking out to your local machine 10 | run "mvn site:run" to view the docs on http://localhost:8080/ 11 | -------------------------------------------------------------------------------- /clean_project_files.sh: -------------------------------------------------------------------------------- 1 | #/bin/sh 2 | 3 | rm -Rf *.ipr 4 | rm -Rf *.iws 5 | rm -Rf *.iml 6 | rm -Rf .idea 7 | rm -Rf */*.iml 8 | rm -Rf */target 9 | rm -Rf */.settings 10 | rm -Rf */.classpath 11 | rm -Rf */.project 12 | rm -Rf .settings 13 | rm -Rf .classpath 14 | rm -Rf .project 15 | -------------------------------------------------------------------------------- /external/oak_icon_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/external/oak_icon_512.png -------------------------------------------------------------------------------- /external/screenshot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/external/screenshot1.png -------------------------------------------------------------------------------- /external/screenshot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/external/screenshot2.png -------------------------------------------------------------------------------- /external/screenshot3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/external/screenshot3.png -------------------------------------------------------------------------------- /oak-animatedsvgview/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /oak-animatedsvgview/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | com.willowtreeapps 6 | oak-project 7 | 1.4.1-SNAPSHOT 8 | 9 | com.willowtreeapps 10 | oak-animatedsvgview 11 | OAK - AnimatedSVGView 12 | aar 13 | A library for shared android functionality 14 | 15 | 16 | 17 | 18 | com.android.support 19 | support-v4 20 | 19.0.0 21 | 22 | 23 | 24 | com.google.android 25 | android 26 | provided 27 | 28 | 29 | 30 | 31 | 32 | 33 | com.jayway.maven.plugins.android.generation2 34 | android-maven-plugin 35 | true 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /oak-animatedsvgview/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/.gitignore: -------------------------------------------------------------------------------- 1 | *.apk 2 | *.ap_ 3 | *.dex 4 | *.class 5 | *.iml 6 | .gitignore~ 7 | .idea/ 8 | .DS_STORE 9 | .classpath 10 | .settings/ 11 | bin/ 12 | gen/ 13 | local.properties 14 | target/ 15 | classes/ 16 | gen-external-apklibs/ 17 | out/ 18 | tmp/ -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/project.properties: -------------------------------------------------------------------------------- 1 | target=android-${platform} -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Bold.ttf -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Light.ttf -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Thin.ttf -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto.ttf -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/readoutcondenseditalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/readoutcondenseditalic.ttf -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/java/Datastore.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | import com.google.inject.Inject; 4 | import com.google.inject.Singleton; 5 | 6 | import android.content.SharedPreferences; 7 | 8 | @Singleton 9 | public class Datastore { 10 | 11 | private static final String DEVICE_VERSION = "DeviceVersion"; 12 | 13 | @Inject EncryptedSharedPreferences encryptedSharedPreferences; 14 | 15 | private SharedPreferences.Editor getEditor() { 16 | return encryptedSharedPreferences.edit(); 17 | } 18 | 19 | private SharedPreferences getPrefs() { 20 | return encryptedSharedPreferences; 21 | } 22 | public int getVersion() { 23 | return getPrefs().getInt(DEVICE_VERSION, 0); 24 | } 25 | public void persistVersion(int version) { 26 | getEditor().putInt(DEVICE_VERSION, version).commit(); 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/java/EncryptedSharedPreferences.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | import android.content.Context; 4 | import android.content.SharedPreferences; 5 | import java.util.Set; 6 | 7 | import oak.CryptoSharedPreferences; 8 | 9 | /** 10 | * Generated from archetypezz 11 | */ 12 | 13 | public final class EncryptedSharedPreferences extends CryptoSharedPreferences { 14 | 15 | public EncryptedSharedPreferences(Context context, SharedPreferences delegate) { 16 | super(context, delegate); 17 | } 18 | 19 | @Override 20 | protected char[] getSpecialCode() { 21 | return "y0urPa$$w0rdH3r3".toCharArray(); 22 | } 23 | 24 | @Override 25 | public Set getStringSet(String s, Set strings) { 26 | return null; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/java/RoboGuiceModule.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | import com.google.inject.AbstractModule; 4 | 5 | /** 6 | * Generated from archetype 7 | */ 8 | public class RoboGuiceModule extends AbstractModule { 9 | 10 | @Override 11 | protected void configure() { 12 | bind(EncryptedSharedPreferences.class).toProvider(EncryptedPreferencesProvider.class); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/java/TabA.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | import com.github.rtyley.android.sherlock.roboguice.fragment.RoboSherlockListFragment; 4 | 5 | import android.os.Bundle; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | import android.widget.ArrayAdapter; 10 | import android.widget.ListAdapter; 11 | import android.widget.ListView; 12 | import android.widget.Toast; 13 | 14 | import oak.widget.TextViewWithFont; 15 | import roboguice.inject.InjectResource; 16 | import roboguice.inject.InjectView; 17 | 18 | public class TabA extends RoboSherlockListFragment { 19 | 20 | private String[] dataArray = new String[]{"This", "Is", "An", "Android", "App!"}; 21 | 22 | @Override 23 | public void onCreate(Bundle savedInstanceState) { 24 | super.onCreate(savedInstanceState); 25 | 26 | ListAdapter listAdapter = new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1, dataArray); 27 | setListAdapter(listAdapter); 28 | } 29 | 30 | @Override 31 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 32 | return inflater.inflate(R.layout.simple_list_fragment, container, false); 33 | } 34 | 35 | @Override 36 | public void onListItemClick(ListView list, View v, int position, long id) { 37 | Toast.makeText(getSherlockActivity(), getListView().getItemAtPosition(position).toString(), Toast.LENGTH_SHORT).show(); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/java/TabB.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | import com.github.rtyley.android.sherlock.roboguice.fragment.RoboSherlockFragment; 4 | 5 | import android.os.Bundle; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | 10 | import oak.widget.TextViewWithFont; 11 | import roboguice.inject.InjectResource; 12 | import roboguice.inject.InjectView; 13 | 14 | public class TabB extends RoboSherlockFragment { 15 | 16 | @InjectView(R.id.display_text) 17 | private TextViewWithFont displayText; 18 | @InjectResource(R.color.custom_green) 19 | private int customGreen; 20 | 21 | @Override 22 | public View onCreateView(LayoutInflater inflater, ViewGroup container, 23 | Bundle savedInstanceState) { 24 | 25 | View newView = inflater.inflate(R.layout.tab_template,container,false); 26 | return newView; 27 | } 28 | 29 | @Override 30 | public void onViewCreated(View view, Bundle savedInstanceState) { 31 | super.onViewCreated(view, savedInstanceState); 32 | //Injection occurs in onViewCreated 33 | 34 | displayText.setText("Here is tab B"); 35 | displayText.setTextColor(customGreen); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/java/TabC.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | import com.github.rtyley.android.sherlock.roboguice.fragment.RoboSherlockFragment; 4 | 5 | import android.os.Bundle; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | 10 | import oak.widget.TextViewWithFont; 11 | import roboguice.inject.InjectResource; 12 | import roboguice.inject.InjectView; 13 | 14 | public class TabC extends RoboSherlockFragment { 15 | 16 | @InjectView(R.id.display_text) 17 | private TextViewWithFont displayText; 18 | @InjectResource(R.color.custom_blue) 19 | private int customBlue; 20 | 21 | @Override 22 | public View onCreateView(LayoutInflater inflater, ViewGroup container, 23 | Bundle savedInstanceState) { 24 | 25 | View newView = inflater.inflate(R.layout.tab_template,container,false); 26 | return newView; 27 | } 28 | 29 | @Override 30 | public void onViewCreated(View view, Bundle savedInstanceState) { 31 | super.onViewCreated(view, savedInstanceState); 32 | //Injection occurs in onViewCreated 33 | 34 | displayText.setText("And then there is tab C"); 35 | displayText.setTextColor(customBlue); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-archetype/src/main/resources/archetype-resources/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-archetype/src/main/resources/archetype-resources/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/res/layout/simple_list_fragment.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 8 | -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/res/layout/startup_tabs.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/res/layout/tab_template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 9 | -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #00edf2 4 | #f20000 5 | #55f200 6 | 7 | -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/res/values/roboguice.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ${package}.RoboGuiceModule 4 | 5 | -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Hello ${artifactId}! 4 | ${artifactId} 5 | 6 | -------------------------------------------------------------------------------- /oak-archetype/src/main/resources/archetype-resources/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 11 | 15 | 18 | 21 | -------------------------------------------------------------------------------- /oak-aspectratioview/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /oak-aspectratioview/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | com.willowtreeapps 6 | oak-project 7 | 1.4.1-SNAPSHOT 8 | 9 | com.willowtreeapps 10 | oak-aspectratioview 11 | OAK - AspectRatioView 12 | aar 13 | A library for shared android functionality 14 | 15 | 16 | 17 | 18 | com.google.android 19 | android 20 | provided 21 | 22 | 23 | 24 | 25 | 26 | 27 | com.jayway.maven.plugins.android.generation2 28 | android-maven-plugin 29 | true 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /oak-aspectratioview/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/.gitignore: -------------------------------------------------------------------------------- 1 | *.apk 2 | *.ap_ 3 | *.dex 4 | *.class 5 | *.iml 6 | .gitignore~ 7 | .idea/ 8 | .DS_STORE 9 | .classpath 10 | .settings/ 11 | bin/ 12 | gen/ 13 | local.properties 14 | target/ 15 | classes/ 16 | gen-external-apklibs/ 17 | out/ 18 | tmp/ -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/project.properties: -------------------------------------------------------------------------------- 1 | target=android-${platform} -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Bold.ttf -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Light.ttf -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Thin.ttf -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto.ttf -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/java/Datastore.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | import android.app.Application; 4 | import android.preference.PreferenceManager; 5 | 6 | import javax.inject.Singleton; 7 | 8 | import android.content.SharedPreferences; 9 | 10 | @Singleton 11 | public class Datastore { 12 | 13 | private static final String DEVICE_VERSION = "DeviceVersion"; 14 | 15 | EncryptedSharedPreferences encryptedSharedPreferences; 16 | 17 | public Datastore(Application app) { 18 | encryptedSharedPreferences = new EncryptedSharedPreferences(app, 19 | PreferenceManager.getDefaultSharedPreferences(app)); 20 | } 21 | 22 | private SharedPreferences.Editor getEditor() { 23 | return encryptedSharedPreferences.edit(); 24 | } 25 | 26 | private SharedPreferences getPrefs() { 27 | return encryptedSharedPreferences; 28 | } 29 | public int getVersion() { 30 | return getPrefs().getInt(DEVICE_VERSION, 0); 31 | } 32 | public void persistVersion(int version) { 33 | getEditor().putInt(DEVICE_VERSION, version).commit(); 34 | } 35 | } 36 | 37 | -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/java/EncryptedSharedPreferences.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | import android.content.Context; 4 | import android.content.SharedPreferences; 5 | import java.util.Set; 6 | 7 | import oak.CryptoSharedPreferences; 8 | 9 | /** 10 | * Generated from archetypezz 11 | */ 12 | 13 | public final class EncryptedSharedPreferences extends CryptoSharedPreferences { 14 | 15 | public EncryptedSharedPreferences(Context context, SharedPreferences delegate) { 16 | super(context, delegate); 17 | } 18 | 19 | @Override 20 | protected char[] getSpecialCode() { 21 | return "y0urPa$$w0rdH3r3".toCharArray(); 22 | } 23 | 24 | @Override 25 | public Set getStringSet(String s, Set strings) { 26 | return null; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/java/StartupActivity.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | 4 | import android.graphics.PixelFormat; 5 | import android.os.Bundle; 6 | import android.support.v4.app.FragmentActivity; 7 | import android.util.Log; 8 | import android.view.Window; 9 | 10 | //We still use FragmentActivity because Support fragments are better than native Fragments, True Story. 11 | public class StartupActivity extends FragmentActivity { 12 | 13 | @Override 14 | public void onCreate(Bundle savedInstanceState) { 15 | super.onCreate(savedInstanceState); 16 | Log.i(MainApp.TAG, "onCreate"); 17 | setContentView(R.layout.startup); 18 | 19 | } 20 | 21 | @Override 22 | public void onAttachedToWindow() { 23 | super.onAttachedToWindow(); 24 | Window window = this.getWindow(); 25 | 26 | // Eliminates color banding 27 | window.setFormat(PixelFormat.RGBA_8888); 28 | } 29 | 30 | } 31 | 32 | -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/java/dagger/ForActivity.java: -------------------------------------------------------------------------------- 1 | package ${package}.dagger; 2 | 3 | import java.lang.annotation.Retention; 4 | 5 | import javax.inject.Qualifier; 6 | 7 | import static java.lang.annotation.RetentionPolicy.RUNTIME; 8 | 9 | /** 10 | * Created by ericrichardson on 7/26/13. 11 | */ 12 | @Qualifier 13 | @Retention(RUNTIME) 14 | public @interface ForActivity { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/java/dagger/ForApplication.java: -------------------------------------------------------------------------------- 1 | package ${package}.dagger; 2 | 3 | import java.lang.annotation.Retention; 4 | 5 | import javax.inject.Qualifier; 6 | 7 | import static java.lang.annotation.RetentionPolicy.RUNTIME; 8 | 9 | /** 10 | * Created by ericrichardson on 7/26/13. 11 | */ 12 | @Qualifier 13 | @Retention(RUNTIME) 14 | public @interface ForApplication { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/java/dagger/IObjectGraph.java: -------------------------------------------------------------------------------- 1 | package ${package}.dagger; 2 | 3 | import dagger.ObjectGraph; 4 | 5 | /** 6 | * Created by Archetype 7 | */ 8 | public interface IObjectGraph { 9 | ObjectGraph getObjectGraph(); 10 | } -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/java/dagger/Injector.java: -------------------------------------------------------------------------------- 1 | package ${package}.dagger; 2 | 3 | import android.content.Context; 4 | 5 | /** 6 | * User: evantatarka Date: 7/30/13 Time: 4:30 PM 7 | */ 8 | public class Injector { 9 | public static void inject(Object toInject, Context context) { 10 | ((IObjectGraph) context.getApplicationContext()).getObjectGraph().inject(toInject); 11 | } 12 | 13 | public static void inject(Context context) { 14 | ((IObjectGraph) context.getApplicationContext()).getObjectGraph().inject(context); 15 | } 16 | 17 | private Context mContext; 18 | 19 | public Injector(Context context) { 20 | mContext = context; 21 | } 22 | 23 | public void inject(Object toInject) { 24 | ((IObjectGraph) mContext.getApplicationContext()).getObjectGraph().inject(toInject); 25 | } 26 | } -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/res/layout/startup.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #00edf2 4 | #f20000 5 | #55f200 6 | 7 | -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Hello ${artifactId}! 4 | ${artifactId} 5 | 6 | -------------------------------------------------------------------------------- /oak-dagger-api15-archetype/src/main/resources/archetype-resources/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 11 | 15 | 18 | 21 | -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/.gitignore: -------------------------------------------------------------------------------- 1 | *.apk 2 | *.ap_ 3 | *.dex 4 | *.class 5 | *.iml 6 | .gitignore~ 7 | .idea/ 8 | .DS_STORE 9 | .classpath 10 | .settings/ 11 | bin/ 12 | gen/ 13 | local.properties 14 | target/ 15 | classes/ 16 | gen-external-apklibs/ 17 | out/ 18 | tmp/ -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/project.properties: -------------------------------------------------------------------------------- 1 | target=android-${platform} -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Bold.ttf -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Light.ttf -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto-Thin.ttf -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-archetype/src/main/resources/archetype-resources/src/main/assets/fonts/Roboto.ttf -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/java/Datastore.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | import android.app.Application; 4 | import android.preference.PreferenceManager; 5 | 6 | import javax.inject.Singleton; 7 | 8 | import android.content.SharedPreferences; 9 | 10 | @Singleton 11 | public class Datastore { 12 | 13 | private static final String DEVICE_VERSION = "DeviceVersion"; 14 | 15 | EncryptedSharedPreferences encryptedSharedPreferences; 16 | 17 | public Datastore(Application app) { 18 | encryptedSharedPreferences = new EncryptedSharedPreferences(app, 19 | PreferenceManager.getDefaultSharedPreferences(app)); 20 | } 21 | 22 | private SharedPreferences.Editor getEditor() { 23 | return encryptedSharedPreferences.edit(); 24 | } 25 | 26 | private SharedPreferences getPrefs() { 27 | return encryptedSharedPreferences; 28 | } 29 | public int getVersion() { 30 | return getPrefs().getInt(DEVICE_VERSION, 0); 31 | } 32 | public void persistVersion(int version) { 33 | getEditor().putInt(DEVICE_VERSION, version).commit(); 34 | } 35 | } 36 | 37 | -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/java/EncryptedSharedPreferences.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | import android.content.Context; 4 | import android.content.SharedPreferences; 5 | import java.util.Set; 6 | 7 | import oak.CryptoSharedPreferences; 8 | 9 | /** 10 | * Generated from archetypezz 11 | */ 12 | 13 | public final class EncryptedSharedPreferences extends CryptoSharedPreferences { 14 | 15 | public EncryptedSharedPreferences(Context context, SharedPreferences delegate) { 16 | super(context, delegate); 17 | } 18 | 19 | @Override 20 | protected char[] getSpecialCode() { 21 | return "y0urPa$$w0rdH3r3".toCharArray(); 22 | } 23 | 24 | @Override 25 | public Set getStringSet(String s, Set strings) { 26 | return null; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/java/StartupActivity.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | 4 | import android.graphics.PixelFormat; 5 | import android.os.Bundle; 6 | import android.support.v4.app.Fragment; 7 | import android.support.v4.app.FragmentTransaction; 8 | import android.util.Log; 9 | import android.view.Window; 10 | import android.support.v7.app.ActionBarActivity; 11 | 12 | public class StartupActivity extends ActionBarActivity { 13 | 14 | @Override 15 | public void onCreate(Bundle savedInstanceState) { 16 | super.onCreate(savedInstanceState); 17 | Log.i(MainApp.TAG, "onCreate"); 18 | setContentView(R.layout.startup); 19 | } 20 | 21 | @Override 22 | public void onAttachedToWindow() { 23 | super.onAttachedToWindow(); 24 | Window window = this.getWindow(); 25 | 26 | // Eliminates color banding 27 | window.setFormat(PixelFormat.RGBA_8888); 28 | } 29 | 30 | } 31 | 32 | -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/java/dagger/AppModule.java: -------------------------------------------------------------------------------- 1 | package ${package}.dagger; 2 | 3 | import android.app.Application; 4 | import android.content.Context; 5 | import dagger.Module; 6 | 7 | import ${package}.Datastore; 8 | import ${package}.MainApp; 9 | import com.squareup.okhttp.OkHttpClient; 10 | 11 | import java.net.URL; 12 | 13 | import javax.inject.Singleton; 14 | 15 | import dagger.Provides; 16 | 17 | @Module(injects = { 18 | Injector.class, 19 | MainApp.class, 20 | }, library = true, complete = true) 21 | public class AppModule { 22 | private final Application application; 23 | private final Injector injector; 24 | 25 | public AppModule(Application application) { 26 | this.application = application; 27 | this.injector = new Injector(application); 28 | } 29 | 30 | /** 31 | * Allow the application context to be injected but require that it be annotated with {@link 32 | * ForApplication @Annotation} to explicitly differentiate it from an activity context. 33 | */ 34 | @Provides 35 | @Singleton 36 | @ForApplication 37 | Context provideApplicationContext() { 38 | return application; 39 | } 40 | 41 | @Provides 42 | @Singleton 43 | Injector providesInjector() { 44 | return injector; 45 | } 46 | 47 | @Provides 48 | @Singleton 49 | OkHttpClient providesOkHttpClient() { 50 | OkHttpClient httpClient = new OkHttpClient(); 51 | URL.setURLStreamHandlerFactory(httpClient); 52 | return httpClient; 53 | } 54 | 55 | @Provides 56 | @Singleton 57 | Datastore providesDatastore() { 58 | return new Datastore(application); 59 | } 60 | 61 | } 62 | 63 | -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/java/dagger/ForActivity.java: -------------------------------------------------------------------------------- 1 | package ${package}.dagger; 2 | 3 | import java.lang.annotation.Retention; 4 | 5 | import javax.inject.Qualifier; 6 | 7 | import static java.lang.annotation.RetentionPolicy.RUNTIME; 8 | 9 | /** 10 | * Created by ericrichardson on 7/26/13. 11 | */ 12 | @Qualifier 13 | @Retention(RUNTIME) 14 | public @interface ForActivity { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/java/dagger/ForApplication.java: -------------------------------------------------------------------------------- 1 | package ${package}.dagger; 2 | 3 | import java.lang.annotation.Retention; 4 | 5 | import javax.inject.Qualifier; 6 | 7 | import static java.lang.annotation.RetentionPolicy.RUNTIME; 8 | 9 | /** 10 | * Created by ericrichardson on 7/26/13. 11 | */ 12 | @Qualifier 13 | @Retention(RUNTIME) 14 | public @interface ForApplication { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/java/dagger/IObjectGraph.java: -------------------------------------------------------------------------------- 1 | package ${package}.dagger; 2 | 3 | import dagger.ObjectGraph; 4 | 5 | /** 6 | * Created by Archetype 7 | */ 8 | public interface IObjectGraph { 9 | ObjectGraph getObjectGraph(); 10 | } -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/java/dagger/Injector.java: -------------------------------------------------------------------------------- 1 | package ${package}.dagger; 2 | 3 | import android.content.Context; 4 | 5 | /** 6 | * User: evantatarka Date: 7/30/13 Time: 4:30 PM 7 | */ 8 | public class Injector { 9 | public static void inject(Object toInject, Context context) { 10 | ((IObjectGraph) context.getApplicationContext()).getObjectGraph().inject(toInject); 11 | } 12 | 13 | public static void inject(Context context) { 14 | ((IObjectGraph) context.getApplicationContext()).getObjectGraph().inject(context); 15 | } 16 | 17 | private Context mContext; 18 | 19 | public Injector(Context context) { 20 | mContext = context; 21 | } 22 | 23 | public void inject(Object toInject) { 24 | ((IObjectGraph) mContext.getApplicationContext()).getObjectGraph().inject(toInject); 25 | } 26 | } -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-archetype/src/main/resources/archetype-resources/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-archetype/src/main/resources/archetype-resources/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-dagger-archetype/src/main/resources/archetype-resources/src/main/res/drawable-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/res/layout/startup.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #00edf2 4 | #f20000 5 | #55f200 6 | 7 | -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Hello ${artifactId}! 4 | ${artifactId} 5 | 6 | -------------------------------------------------------------------------------- /oak-dagger-archetype/src/main/resources/archetype-resources/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 11 | 15 | 18 | 21 | -------------------------------------------------------------------------------- /oak-demos/assets/fonts/Apple Chancery.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/assets/fonts/Apple Chancery.ttf -------------------------------------------------------------------------------- /oak-demos/assets/fonts/LiberationMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/assets/fonts/LiberationMono-Regular.ttf -------------------------------------------------------------------------------- /oak-demos/assets/fonts/Once_upon_a_time.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/assets/fonts/Once_upon_a_time.ttf -------------------------------------------------------------------------------- /oak-demos/assets/fonts/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/assets/fonts/Roboto-Bold.ttf -------------------------------------------------------------------------------- /oak-demos/assets/fonts/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/assets/fonts/Roboto-Light.ttf -------------------------------------------------------------------------------- /oak-demos/assets/fonts/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/assets/fonts/Roboto-Thin.ttf -------------------------------------------------------------------------------- /oak-demos/assets/fonts/Roboto.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/assets/fonts/Roboto.ttf -------------------------------------------------------------------------------- /oak-demos/demos_keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/demos_keystore -------------------------------------------------------------------------------- /oak-demos/proguard.cfg: -------------------------------------------------------------------------------- 1 | -optimizationpasses 5 2 | -dontusemixedcaseclassnames 3 | -dontskipnonpubliclibraryclasses 4 | -dontskipnonpubliclibraryclassmembers 5 | -dontpreverify 6 | -verbose 7 | -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 8 | 9 | -dontwarn com.google.common.collect.MinMaxPriorityQueue 10 | -dontwarn com.google.inject.Inject 11 | -dontwarn roboguice.inject.ContextSingleton 12 | 13 | 14 | -keep public class * extends android.app.Activity 15 | -keep public class * extends android.app.Application 16 | -keep public class * extends android.app.Service 17 | -keep public class * extends android.content.BroadcastReceiver 18 | -keep public class * extends android.content.ContentProvider 19 | -keep public class * extends android.app.backup.BackupAgentHelper 20 | -keep public class * extends android.preference.Preference 21 | 22 | -keepclasseswithmembernames class * { 23 | native ; 24 | } 25 | 26 | -keepclasseswithmembers class * { 27 | public (android.content.Context, android.util.AttributeSet); 28 | } 29 | 30 | -keepclasseswithmembers class * { 31 | public (android.content.Context, android.util.AttributeSet, int); 32 | } 33 | 34 | -keepclassmembers class * extends android.app.Activity { 35 | public void *(android.view.View); 36 | } 37 | 38 | -keepclassmembers enum * { 39 | public static **[] values(); 40 | public static ** valueOf(java.lang.String); 41 | } 42 | 43 | -keep class * implements android.os.Parcelable { 44 | public static final android.os.Parcelable$Creator *; 45 | } 46 | -------------------------------------------------------------------------------- /oak-demos/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 use, 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | 10 | # Indicates whether an apk should be generated for each density. 11 | split.density=false 12 | # Project target. 13 | target=android-16 14 | android.library.reference.0=gen-external-apklibs/com.actionbarsherlock_library_4.1.0 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/attribution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/attribution.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/cell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/cell.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/cell_bottom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/cell_bottom.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/cell_mid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/cell_mid.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/cell_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/cell_top.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/oak_ic_cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/oak_ic_cancel.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/spinner_16_inner_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/spinner_16_inner_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/spinner_16_outer_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/spinner_16_outer_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/spinner_48_inner_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/spinner_48_inner_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/spinner_48_outer_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/spinner_48_outer_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/spinner_76_inner_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/spinner_76_inner_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/spinner_76_outer_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/spinner_76_outer_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/swanky1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/swanky1.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/swanky2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/swanky2.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/swanky3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/swanky3.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-hdpi/swanky4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-hdpi/swanky4.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-ldpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-ldpi/icon.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-mdpi/icon.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-mdpi/spinner_16_inner_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-mdpi/spinner_16_inner_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-mdpi/spinner_16_outer_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-mdpi/spinner_16_outer_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-mdpi/spinner_48_inner_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-mdpi/spinner_48_inner_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-mdpi/spinner_48_outer_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-mdpi/spinner_48_outer_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-mdpi/spinner_76_inner_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-mdpi/spinner_76_inner_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-mdpi/spinner_76_outer_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-mdpi/spinner_76_outer_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/ic_menu_my_calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/ic_menu_my_calendar.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/ic_menu_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/ic_menu_search.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/icon.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_00.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_01.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_02.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_03.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_04.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_05.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_06.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_07.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_08.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_09.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_10.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_11.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_12.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_13.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_14.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_15.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_16.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_17.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_18.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_19.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/loading_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/loading_20.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/oak_ic_cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/oak_ic_cancel.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/spinner_16_inner_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/spinner_16_inner_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/spinner_16_outer_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/spinner_16_outer_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/spinner_48_inner_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/spinner_48_inner_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/spinner_48_outer_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/spinner_48_outer_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/spinner_76_inner_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/spinner_76_inner_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable-xhdpi/spinner_76_outer_holo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-demos/res/drawable-xhdpi/spinner_76_outer_holo.png -------------------------------------------------------------------------------- /oak-demos/res/drawable/card_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /oak-demos/res/drawable/progress_large_holo.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 25 | 26 | 27 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /oak-demos/res/drawable/progress_medium_holo.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 25 | 26 | 27 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /oak-demos/res/drawable/progress_small_holo.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 25 | 26 | 27 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /oak-demos/res/drawable/spreadsheetcellselectedshape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /oak-demos/res/drawable/spreadsheetcolumncellshape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /oak-demos/res/drawable/spreadsheetdatacellshape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /oak-demos/res/drawable/spreadsheetfootercellshape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /oak-demos/res/drawable/spreadsheetheadercellshape.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /oak-demos/res/layout/activity_attribution.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 12 | 13 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /oak-demos/res/layout/oak_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 | 19 | 22 | 25 | 30 | -------------------------------------------------------------------------------- /oak-demos/res/layout/parent_swiping_view_pager_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 | 19 | -------------------------------------------------------------------------------- /oak-demos/res/layout/photo_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 22 | 28 | 29 | 36 | 37 | -------------------------------------------------------------------------------- /oak-demos/res/layout/resizable_header_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 19 | 20 | -------------------------------------------------------------------------------- /oak-demos/res/layout/resizable_header_scrollview_header.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 15 | 16 | 23 | 24 | -------------------------------------------------------------------------------- /oak-demos/res/layout/swanky_gallery_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 | 19 | -------------------------------------------------------------------------------- /oak-demos/res/layout/test_fragment.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 | 19 | 23 | 24 | 28 | 29 | 33 | 34 | 40 | 41 | -------------------------------------------------------------------------------- /oak-demos/res/layout/vertical_viewpager_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 12 | -------------------------------------------------------------------------------- /oak-demos/res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ffffff 4 | #0000ff 5 | #ff0000 6 | #00ff00 7 | 8 | 9 | 0.0 10 | 0.5 11 | 0.51 12 | 1.0 13 | 14 | -------------------------------------------------------------------------------- /oak-demos/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /oak-demos/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ffffffff 4 | #ff000000 5 | #ff333333 6 | #ff0088ff 7 | #ffff0000 8 | #ff0000ff 9 | #ffff0000 10 | #ffff00ff 11 | #ff00ff00 12 | #ffffff00 13 | #0099cc 14 | #D9000000 15 | #26ffffff 16 | #878787 17 | -------------------------------------------------------------------------------- /oak-demos/res/values/roboguice.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | oak.demo.RoboGuiceModule 4 | 5 | -------------------------------------------------------------------------------- /oak-demos/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 13 | 16 | -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/EncryptedPreferences.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011. WillowTree Apps, Inc. 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 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | package oak.demo; 17 | 18 | import android.content.Context; 19 | import android.content.SharedPreferences; 20 | 21 | import java.util.Set; 22 | 23 | import oak.app.CryptoSharedPreferences; 24 | 25 | 26 | /** 27 | * User: mlake Date: 12/19/11 Time: 11:16 AM 28 | */ 29 | // START SNIPPET: encrypted_prefs 30 | public class EncryptedPreferences extends CryptoSharedPreferences { 31 | 32 | public EncryptedPreferences(Context context, SharedPreferences delegate) { 33 | super(context, delegate); 34 | } 35 | 36 | /** 37 | * This should be replaced with a user input pass phrase or an externally 38 | * retrieved pass phrase if possible. 39 | * 40 | * @return 41 | */ 42 | @Override 43 | protected char[] getSpecialCode() { 44 | return "THIS IS MY ENCRYPTING KEY PHRASE@@!".toCharArray(); 45 | } 46 | 47 | @Override 48 | public Set getStringSet(String s, Set strings) { 49 | return null; 50 | } 51 | } 52 | // END SNIPPET: encrypted_prefs -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/EncryptedSharedPreferences.java: -------------------------------------------------------------------------------- 1 | package oak.demo; 2 | 3 | import android.content.Context; 4 | import android.content.SharedPreferences; 5 | 6 | import java.util.Set; 7 | 8 | import oak.app.CryptoSharedPreferences; 9 | 10 | 11 | public final class EncryptedSharedPreferences extends CryptoSharedPreferences { 12 | 13 | public EncryptedSharedPreferences(Context context, SharedPreferences delegate) { 14 | super(context, delegate); 15 | } 16 | 17 | /** 18 | * This should be replaced with a user input pass phrase or an externally 19 | * retrieved pass phrase if possible. 20 | * 21 | * @return 22 | */ 23 | @Override 24 | protected char[] getSpecialCode() { 25 | return "y0urPa$$w0rdH3r3".toCharArray(); 26 | } 27 | 28 | @Override 29 | public Set getStringSet(String s, Set strings) { 30 | return null; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/OakApplication.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011. WillowTree Apps, Inc. 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 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | package oak.demo; 17 | 18 | import android.app.Application; 19 | 20 | import oak.util.PRNGFixes; 21 | 22 | /** 23 | * User: Michael Lake Date: 9/20/11 Time: 10:53 AM 24 | * 25 | * This is just a placeholder class that lets us demonstrate the testing 26 | * framework 27 | */ 28 | public class OakApplication extends Application { 29 | 30 | private String message; 31 | 32 | @Override 33 | public void onCreate() { 34 | super.onCreate(); 35 | 36 | message = "testMessage"; 37 | 38 | /** 39 | * Ensure the keys generated for the CryptoSharedPreferences are strong and sufficiently 40 | * random. 41 | * 42 | * See http://android-developers.blogspot.com/2013/08/some-securerandom-thoughts.html 43 | */ 44 | PRNGFixes.apply(); 45 | 46 | } 47 | 48 | public String getMessage() { 49 | return message; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/RoboGuiceModule.java: -------------------------------------------------------------------------------- 1 | package oak.demo; 2 | 3 | import com.google.inject.AbstractModule; 4 | 5 | /** 6 | * Generated from archetype 7 | */ 8 | public class RoboGuiceModule extends AbstractModule { 9 | 10 | @Override 11 | protected void configure() { 12 | bind(EncryptedSharedPreferences.class).toProvider(EncryptedPreferencesProvider.class); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/image/SwankyGalleryActivity.java: -------------------------------------------------------------------------------- 1 | package oak.demo.image; 2 | 3 | import android.os.Bundle; 4 | import android.widget.Toast; 5 | 6 | import oak.demo.OakDemoActivity; 7 | import oak.demo.R; 8 | import oak.widget.SwankyGallery; 9 | import oak.widget.SwankyGallery.OnGalleryPageSelectedListener; 10 | import oak.widget.SwankyGallery.SwankyAdapter; 11 | import roboguice.inject.InjectView; 12 | 13 | /** 14 | * User: Nate Date: 7/9/12 Time: 11:25 AM 15 | */ 16 | public class SwankyGalleryActivity extends OakDemoActivity { 17 | 18 | @InjectView(R.id.swanky_gallery) SwankyGallery gallery; 19 | 20 | private int[] mImageIds = new int[]{R.drawable.swanky1, R.drawable.swanky2, R.drawable.swanky3, R.drawable.swanky4}; 21 | 22 | @Override 23 | protected void onCreate(Bundle savedInstanceState) { 24 | super.onCreate(savedInstanceState); 25 | setContentView(R.layout.swanky_gallery_demo); 26 | gallery.setAdapter(new SwankyAdapter(this, mImageIds)); 27 | gallery.setOnGalleryPageSelectedListener(new OnGalleryPageSelectedListener() { 28 | @Override 29 | public void onPageSelected(int i) { 30 | Toast.makeText(SwankyGalleryActivity.this, i + " selected", Toast.LENGTH_SHORT).show(); 31 | } 32 | }); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/model/PhotoItem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011. WillowTree Apps, Inc. 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 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | package oak.demo.model; 17 | 18 | public class PhotoItem { 19 | 20 | private String url; 21 | 22 | String title; 23 | 24 | public void setTitle(String title) { 25 | this.title = title; 26 | } 27 | 28 | public String getTitle() { 29 | return title; 30 | } 31 | 32 | public void setUrl(String url) { 33 | this.url = url; 34 | } 35 | 36 | public String getURL() { 37 | return url; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/utils/ChangeFontsActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011. WillowTree Apps, Inc. 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 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | package oak.demo.utils; 17 | 18 | import android.os.Bundle; 19 | 20 | import oak.demo.OakDemoActivity; 21 | import oak.demo.R; 22 | import oak.util.OakUtils; 23 | 24 | /** 25 | * User: Michael Lake Date: 11/21/11 Time: 5:33 PM 26 | */ 27 | 28 | 29 | public class ChangeFontsActivity extends OakDemoActivity { 30 | 31 | @Override 32 | protected void onCreate(Bundle savedInstanceState) { 33 | super.onCreate(savedInstanceState); 34 | setContentView(R.layout.change_fonts_demo); 35 | 36 | OakUtils.changeFonts(findViewById(R.id.root), this, "LiberationMono-Regular.ttf"); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/verticalpager/ColorFragment.java: -------------------------------------------------------------------------------- 1 | package oak.demo.verticalpager; 2 | 3 | import android.os.Bundle; 4 | import android.support.v4.app.Fragment; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | 9 | import java.util.Random; 10 | 11 | import oak.demo.R; 12 | 13 | public class ColorFragment extends Fragment { 14 | 15 | public static int[] colors = new int[]{0xffff0000, 0xff00ff00, 0xff0000ff}; 16 | 17 | public static Fragment newInstance(int color) { 18 | Bundle bundle = new Bundle(); 19 | bundle.putInt("key", color); 20 | ColorFragment colorFragment = new ColorFragment(); 21 | colorFragment.setArguments(bundle); 22 | return colorFragment; 23 | } 24 | 25 | @Override 26 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 27 | return inflater.inflate(R.layout.fragment_color, container, false); 28 | } 29 | 30 | @Override 31 | public void onViewCreated(View view, Bundle savedInstanceState) { 32 | super.onViewCreated(view, savedInstanceState); 33 | view.findViewById(R.id.color).setBackgroundColor(colors[new Random().nextInt(colors.length - 1)]); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/viewmodel/StringViewModel.java: -------------------------------------------------------------------------------- 1 | package oak.demo.viewmodel; 2 | 3 | import android.content.Context; 4 | import android.util.AttributeSet; 5 | import android.widget.RelativeLayout; 6 | import android.widget.TextView; 7 | 8 | import oak.demo.R; 9 | import oak.viewmodel.ViewModel; 10 | 11 | /** 12 | * Created by ericrichardson on 3/7/14. 13 | */ 14 | public class StringViewModel extends RelativeLayout implements ViewModel { 15 | TextView tv; 16 | 17 | public StringViewModel(Context context) { 18 | super(context); 19 | } 20 | 21 | public StringViewModel(Context context, AttributeSet attrs) { 22 | super(context, attrs); 23 | } 24 | 25 | public StringViewModel(Context context, AttributeSet attrs, int defStyle) { 26 | super(context, attrs, defStyle); 27 | } 28 | 29 | @Override 30 | protected void onFinishInflate() { 31 | super.onFinishInflate(); 32 | tv = (TextView) findViewById(R.id.textView); 33 | } 34 | 35 | @Override 36 | public void populate(String item) { 37 | tv.setText(item); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/viewmodel/ViewModelActivity.java: -------------------------------------------------------------------------------- 1 | package oak.demo.viewmodel; 2 | 3 | import android.os.Bundle; 4 | import android.widget.ListView; 5 | 6 | import java.util.ArrayList; 7 | import java.util.List; 8 | 9 | import oak.demo.OakDemoActivity; 10 | import oak.demo.R; 11 | import oak.viewmodel.ViewModelAdapter; 12 | 13 | /** 14 | * Created by ericrichardson on 3/7/14. 15 | */ 16 | public class ViewModelActivity extends OakDemoActivity { 17 | public void onCreate(Bundle savedInstanceState) { 18 | super.onCreate(savedInstanceState); 19 | setContentView(R.layout.activity_viewmodel); 20 | ListView list = (ListView) findViewById(R.id.listView); 21 | List strings = new ArrayList(); 22 | strings.add("Look"); 23 | strings.add("at"); 24 | strings.add("all"); 25 | strings.add("the"); 26 | strings.add("pretty"); 27 | strings.add("strings"); 28 | strings.add("They"); 29 | strings.add("are"); 30 | strings.add("so"); 31 | strings.add("stringy"); 32 | strings.add("mainly"); 33 | strings.add("because"); 34 | strings.add("they"); 35 | strings.add("are"); 36 | strings.add("strings"); 37 | list.setAdapter(new ViewModelAdapter(this, R.layout.list_viewmodelitem, strings)); 38 | } 39 | } -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/web/WebLaunchActivity.java: -------------------------------------------------------------------------------- 1 | package oak.demo.web; 2 | 3 | import android.os.Bundle; 4 | import android.view.View; 5 | 6 | import oak.demo.OakDemoActivity; 7 | import oak.demo.R; 8 | import oak.web.OakWebViewFragment; 9 | import oak.web.WebViewActivity; 10 | 11 | /** 12 | * Created by ericrichardson on 3/19/14. 13 | */ 14 | public class WebLaunchActivity extends OakDemoActivity { 15 | public void onCreate(Bundle savedInstanceState) { 16 | super.onCreate(savedInstanceState); 17 | setContentView(R.layout.activity_web_launch); 18 | findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { 19 | @Override 20 | public void onClick(View view) { 21 | launchWebActivity(); 22 | } 23 | }); 24 | } 25 | 26 | private void launchWebActivity() { 27 | OakWebViewFragment.BundleBuilder builder = new OakWebViewFragment.BundleBuilder("http://willowtreeapps.com") 28 | .fadeControls(true) 29 | .maxControlAlpha(0.9f) 30 | .minControlAlpha(0.4f) 31 | .fadeTimeout(2500); 32 | WebViewActivity.startWebActivity(this, builder.build()); 33 | } 34 | 35 | } -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/widget/AspectRatioLayoutActivity.java: -------------------------------------------------------------------------------- 1 | package oak.demo.widget; 2 | 3 | import android.os.Bundle; 4 | 5 | import oak.demo.OakDemoActivity; 6 | import oak.demo.R; 7 | 8 | /** 9 | * User: tylerromeo Date: 10/16/13 Time: 3:54 PM 10 | */ 11 | public class AspectRatioLayoutActivity extends OakDemoActivity { 12 | 13 | public void onCreate(Bundle savedInstanceState) { 14 | super.onCreate(savedInstanceState); 15 | setContentView(R.layout.aspect_ratio_layout_demo); 16 | } 17 | } -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/widget/ButtonWithFontActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011. WillowTree Apps, Inc. 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 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | package oak.demo.widget; 17 | 18 | import android.os.Bundle; 19 | 20 | import oak.demo.OakDemoActivity; 21 | import oak.demo.R; 22 | 23 | /** 24 | * User: Michael Lake Date: 11/21/11 Time: 5:33 PM 25 | */ 26 | 27 | 28 | public class ButtonWithFontActivity extends OakDemoActivity { 29 | 30 | @Override 31 | protected void onCreate(Bundle savedInstanceState) { 32 | super.onCreate(savedInstanceState); 33 | setContentView(R.layout.button_with_font_demo); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/widget/CheckBoxWithFontActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011. WillowTree Apps, Inc. 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 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | package oak.demo.widget; 17 | 18 | import android.os.Bundle; 19 | 20 | import oak.demo.OakDemoActivity; 21 | import oak.demo.R; 22 | 23 | public class CheckBoxWithFontActivity extends OakDemoActivity { 24 | 25 | @Override 26 | protected void onCreate(Bundle savedInstanceState) { 27 | super.onCreate(savedInstanceState); 28 | setContentView(R.layout.check_box_with_font_demo); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/widget/CustomCircularProgressBarActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011. WillowTree Apps, Inc. 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 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | package oak.demo.widget; 17 | 18 | import android.os.Bundle; 19 | 20 | import oak.demo.OakDemoActivity; 21 | import oak.demo.R; 22 | 23 | /** 24 | * User: Michael Lake Date: 11/21/11 Time: 5:33 PM 25 | */ 26 | 27 | 28 | public class CustomCircularProgressBarActivity extends OakDemoActivity { 29 | 30 | @Override 31 | protected void onCreate(Bundle savedInstanceState) { 32 | super.onCreate(savedInstanceState); 33 | setContentView(R.layout.custom_circular_progress_bar_demo); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/widget/MaskedImageViewActivity.java: -------------------------------------------------------------------------------- 1 | package oak.demo.widget; 2 | 3 | import android.os.Bundle; 4 | 5 | import oak.demo.OakDemoActivity; 6 | import oak.demo.R; 7 | 8 | /** 9 | * User: Nate Date: 7/9/12 Time: 11:25 AM 10 | */ 11 | public class MaskedImageViewActivity extends OakDemoActivity { 12 | 13 | @Override 14 | protected void onCreate(Bundle savedInstanceState) { 15 | super.onCreate(savedInstanceState); 16 | setContentView(R.layout.masked_image_view_activity); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/widget/ResizableHeaderScrollViewActivity.java: -------------------------------------------------------------------------------- 1 | package oak.demo.widget; 2 | 3 | import android.os.Bundle; 4 | import android.view.View; 5 | 6 | import oak.demo.OakDemoActivity; 7 | import oak.demo.R; 8 | import oak.widget.ResizableHeaderScrollView; 9 | 10 | /** 11 | * Created by sean.kenkeremath on 7/29/14. 12 | */ 13 | public class ResizableHeaderScrollViewActivity extends OakDemoActivity { 14 | 15 | @Override 16 | protected void onCreate(Bundle savedInstanceState) { 17 | super.onCreate(savedInstanceState); 18 | setContentView(R.layout.resizable_header_demo); 19 | ResizableHeaderScrollView view = (ResizableHeaderScrollView) findViewById(R.id.scrollview); 20 | view.setHeaderChangeListener(new ResizableHeaderScrollView.HeaderChangeListener() { 21 | 22 | @Override 23 | public void collapse(View header) { 24 | header.findViewById(R.id.header_subtitle).setVisibility(View.GONE); 25 | } 26 | 27 | @Override 28 | public void expand(View header) { 29 | header.findViewById(R.id.header_subtitle).setVisibility(View.VISIBLE); 30 | } 31 | }); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/widget/TextViewWithFontActivity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011. WillowTree Apps, Inc. 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 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | * Unless required by applicable law or agreed to in writing, software 10 | * distributed under the License is distributed on an "AS IS" BASIS, 11 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | * See the License for the specific language governing permissions and 13 | * limitations under the License. 14 | */ 15 | 16 | package oak.demo.widget; 17 | 18 | import android.os.Bundle; 19 | 20 | import oak.demo.OakDemoActivity; 21 | import oak.demo.R; 22 | 23 | /** 24 | * User: Michael Lake Date: 11/21/11 Time: 5:33 PM 25 | */ 26 | 27 | 28 | public class TextViewWithFontActivity extends OakDemoActivity { 29 | 30 | @Override 31 | protected void onCreate(Bundle savedInstanceState) { 32 | super.onCreate(savedInstanceState); 33 | setContentView(R.layout.textview_with_font_demo); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /oak-demos/src/oak/demo/widget/VerticalViewPagerActivity.java: -------------------------------------------------------------------------------- 1 | package oak.demo.widget; 2 | 3 | import android.os.Build; 4 | import android.os.Bundle; 5 | import android.support.v4.app.Fragment; 6 | import android.support.v4.app.FragmentManager; 7 | import android.support.v4.app.FragmentPagerAdapter; 8 | 9 | import java.util.Random; 10 | 11 | import oak.demo.OakDemoActivity; 12 | import oak.demo.R; 13 | import oak.demo.verticalpager.ColorFragment; 14 | import oak.demo.verticalpager.HorizonTransform; 15 | import oak.widget.VerticalViewPager; 16 | 17 | /** 18 | * Created by ericrichardson on 3/5/14. 19 | */ 20 | public class VerticalViewPagerActivity extends OakDemoActivity { 21 | VerticalViewPager pager; 22 | 23 | @Override 24 | protected void onCreate(Bundle savedInstanceState) { 25 | super.onCreate(savedInstanceState); 26 | setContentView(R.layout.vertical_viewpager_demo); 27 | pager = (VerticalViewPager) findViewById(R.id.pager); 28 | pager.setAdapter(new ExampleAdapter(getSupportFragmentManager())); 29 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 30 | pager.setPageTransformer(true, new HorizonTransform()); 31 | } 32 | } 33 | 34 | private class ExampleAdapter extends FragmentPagerAdapter { 35 | 36 | public ExampleAdapter(FragmentManager fm) { 37 | super(fm); 38 | } 39 | 40 | @Override 41 | public Fragment getItem(int position) { 42 | return ColorFragment.newInstance(ColorFragment.colors[new Random().nextInt(ColorFragment.colors.length - 1)]); 43 | } 44 | 45 | 46 | @Override 47 | public int getCount() { 48 | return 10; 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /oak-distribution/README.txt: -------------------------------------------------------------------------------- 1 | 2 | oak-demos*.apk 3 | -A sample application using OAK 4 | 5 | /libs 6 | -Copy its contents to your android libs directory 7 | -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | .DS_Store 5 | -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/assets/fonts/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/assets/fonts/Roboto-Bold.ttf -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/assets/fonts/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/assets/fonts/Roboto-Light.ttf -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/assets/fonts/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/assets/fonts/Roboto-Thin.ttf -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/assets/fonts/Roboto.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/assets/fonts/Roboto.ttf -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/java/Datastore.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | import android.app.Application; 4 | import android.preference.PreferenceManager; 5 | 6 | import javax.inject.Singleton; 7 | 8 | import android.content.SharedPreferences; 9 | 10 | @Singleton 11 | public class Datastore { 12 | 13 | private static final String DEVICE_VERSION = "DeviceVersion"; 14 | 15 | EncryptedSharedPreferences encryptedSharedPreferences; 16 | 17 | public Datastore(Application app) { 18 | encryptedSharedPreferences = new EncryptedSharedPreferences(app, 19 | PreferenceManager.getDefaultSharedPreferences(app)); 20 | } 21 | 22 | private SharedPreferences.Editor getEditor() { 23 | return encryptedSharedPreferences.edit(); 24 | } 25 | 26 | private SharedPreferences getPrefs() { 27 | return encryptedSharedPreferences; 28 | } 29 | public int getVersion() { 30 | return getPrefs().getInt(DEVICE_VERSION, 0); 31 | } 32 | public void persistVersion(int version) { 33 | getEditor().putInt(DEVICE_VERSION, version).commit(); 34 | } 35 | } 36 | 37 | -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/java/EncryptedSharedPreferences.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | import android.content.Context; 4 | import android.content.SharedPreferences; 5 | import java.util.Set; 6 | 7 | import oak.CryptoSharedPreferences; 8 | 9 | /** 10 | * Generated from archetypezz 11 | */ 12 | 13 | public final class EncryptedSharedPreferences extends CryptoSharedPreferences { 14 | 15 | public EncryptedSharedPreferences(Context context, SharedPreferences delegate) { 16 | super(context, delegate); 17 | } 18 | 19 | @Override 20 | protected char[] getSpecialCode() { 21 | return "y0urPa$$w0rdH3r3".toCharArray(); 22 | } 23 | 24 | @Override 25 | public Set getStringSet(String s, Set strings) { 26 | return null; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/java/StartupActivity.java: -------------------------------------------------------------------------------- 1 | package ${package}; 2 | 3 | 4 | import android.graphics.PixelFormat; 5 | import android.os.Bundle; 6 | import android.support.v4.app.Fragment; 7 | import android.support.v4.app.FragmentTransaction; 8 | import android.util.Log; 9 | import android.view.Window; 10 | import android.support.v7.app.ActionBarActivity; 11 | 12 | public class StartupActivity extends ActionBarActivity { 13 | 14 | @Override 15 | public void onCreate(Bundle savedInstanceState) { 16 | super.onCreate(savedInstanceState); 17 | Log.i(MainApp.TAG, "onCreate"); 18 | setContentView(R.layout.startup); 19 | 20 | } 21 | 22 | @Override 23 | public void onAttachedToWindow() { 24 | super.onAttachedToWindow(); 25 | Window window = this.getWindow(); 26 | 27 | // Eliminates color banding 28 | window.setFormat(PixelFormat.RGBA_8888); 29 | } 30 | 31 | } 32 | 33 | -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/java/dagger/ForActivity.java: -------------------------------------------------------------------------------- 1 | package ${package}.dagger; 2 | 3 | import java.lang.annotation.Retention; 4 | 5 | import javax.inject.Qualifier; 6 | 7 | import static java.lang.annotation.RetentionPolicy.RUNTIME; 8 | 9 | /** 10 | * Created by ericrichardson on 7/26/13. 11 | */ 12 | @Qualifier 13 | @Retention(RUNTIME) 14 | public @interface ForActivity { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/java/dagger/ForApplication.java: -------------------------------------------------------------------------------- 1 | package ${package}.dagger; 2 | 3 | import java.lang.annotation.Retention; 4 | 5 | import javax.inject.Qualifier; 6 | 7 | import static java.lang.annotation.RetentionPolicy.RUNTIME; 8 | 9 | /** 10 | * Created by ericrichardson on 7/26/13. 11 | */ 12 | @Qualifier 13 | @Retention(RUNTIME) 14 | public @interface ForApplication { 15 | 16 | } 17 | -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/java/dagger/IObjectGraph.java: -------------------------------------------------------------------------------- 1 | package ${package}.dagger; 2 | 3 | import dagger.ObjectGraph; 4 | 5 | /** 6 | * Created by Archetype 7 | */ 8 | public interface IObjectGraph { 9 | ObjectGraph getObjectGraph(); 10 | } -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/java/dagger/Injector.java: -------------------------------------------------------------------------------- 1 | package ${package}.dagger; 2 | 3 | import android.content.Context; 4 | 5 | /** 6 | * User: evantatarka Date: 7/30/13 Time: 4:30 PM 7 | */ 8 | public class Injector { 9 | public static void inject(Object toInject, Context context) { 10 | ((IObjectGraph) context.getApplicationContext()).getObjectGraph().inject(toInject); 11 | } 12 | 13 | public static void inject(Context context) { 14 | ((IObjectGraph) context.getApplicationContext()).getObjectGraph().inject(context); 15 | } 16 | 17 | private Context mContext; 18 | 19 | public Injector(Context context) { 20 | mContext = context; 21 | } 22 | 23 | public void inject(Object toInject) { 24 | ((IObjectGraph) mContext.getApplicationContext()).getObjectGraph().inject(toInject); 25 | } 26 | } -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/res/drawable-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/res/drawable-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/res/layout/startup.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #00edf2 4 | #f20000 5 | #55f200 6 | 7 | -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Hello ${artifactId}! 4 | ${artifactId} 5 | 6 | -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 11 | 15 | 18 | 21 | -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Settings specified in this file will override any Gradle settings 5 | # configured through the IDE. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | 20 | version=1.0-SNAPSHOT -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-gradle-archetype/src/main/resources/archetype-resources/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Jan 25 22:07:13 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.1-all.zip 7 | -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/project.properties: -------------------------------------------------------------------------------- 1 | target=android-${platform} -------------------------------------------------------------------------------- /oak-gradle-archetype/src/main/resources/archetype-resources/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /oak-instrumentation/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /oak-instrumentation/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 use, 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | 10 | # Indicates whether an apk should be generated for each density. 11 | split.density=false 12 | # Project target. 13 | target=android-16 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /oak-instrumentation/res/drawable/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-instrumentation/res/drawable/icon.png -------------------------------------------------------------------------------- /oak-instrumentation/src/main/java/oak/test/AllTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011. WillowTree Apps 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 oak.test; 18 | 19 | import android.test.suitebuilder.TestSuiteBuilder; 20 | import junit.framework.Test; 21 | import junit.framework.TestSuite; 22 | 23 | /** 24 | * User: Michael Lake 25 | * Date: 9/20/11 26 | * Time: 10:45 AM 27 | */ 28 | public class AllTests extends TestSuite { 29 | 30 | public static Test suite() { 31 | return new TestSuiteBuilder(AllTests.class) 32 | .includeAllPackagesUnderHere() 33 | .build(); 34 | } 35 | } -------------------------------------------------------------------------------- /oak-library/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /oak-library/project.properties: -------------------------------------------------------------------------------- 1 | android.library=true 2 | # Project target. 3 | target=android-16 -------------------------------------------------------------------------------- /oak-library/res/drawable-xhdpi/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-library/res/drawable-xhdpi/back.png -------------------------------------------------------------------------------- /oak-library/res/drawable-xhdpi/forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-library/res/drawable-xhdpi/forward.png -------------------------------------------------------------------------------- /oak-library/res/drawable-xhdpi/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-library/res/drawable-xhdpi/refresh.png -------------------------------------------------------------------------------- /oak-library/res/drawable-xxhdpi/wta_logo_subtitle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-library/res/drawable-xxhdpi/wta_logo_subtitle.png -------------------------------------------------------------------------------- /oak-library/res/drawable/button_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /oak-library/res/drawable/button_bg_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /oak-library/res/drawable/resizable_header_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /oak-library/res/drawable/web_button_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /oak-library/res/layout/activity_fragment_host.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | -------------------------------------------------------------------------------- /oak-library/res/layout/animated_wta_logo_fragment.xml: -------------------------------------------------------------------------------- 1 | 16 | 22 | 23 | 28 | 29 | 36 | 37 | -------------------------------------------------------------------------------- /oak-library/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /oak-library/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | Open in Browser 20 | Refresh 21 | OAK Content Description 22 | This is from a resource in oak-library. 23 | 24 | -------------------------------------------------------------------------------- /oak-library/src/main/java/oak/OAK.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011. WillowTree Apps 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 oak; 18 | 19 | /** 20 | * User: Michael Lake Date: 10/17/11 Time: 12:19 PM 21 | */ 22 | public interface OAK { 23 | static final String LOGTAG = "OAK"; 24 | 25 | public static final String EXTRA_URL = "oak_url"; 26 | 27 | public static final String EXTRA_LAYOUT = "oak_layout"; 28 | public static final String EXTRA_SHOW_CONTROLS = "oak_show_controls"; 29 | public static final String EXTRA_CONTROL_FADE = "oak_control_fade"; 30 | public static final String EXTRA_FADE_MIN = "oak_fade_min"; 31 | public static final String EXTRA_FADE_MAX = "oak_fade_max"; 32 | public static final String EXTRA_FADE_TIMEOUT = "oak_fade_timeout"; 33 | 34 | public static final String EXTRA_OPEN_IN_BROWSER = "oak_open_in_browser"; 35 | public static final String EXTRA_REFRESH_IN_MENU = "oak_refresh_in_menu"; 36 | } 37 | -------------------------------------------------------------------------------- /oak-library/src/main/java/oak/Queryable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011. WillowTree Apps 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 oak; 18 | 19 | /** 20 | * User: Michael Lake Date: 10/18/11 Time: 4:53 PM 21 | */ 22 | public interface Queryable { 23 | 24 | boolean isQueryMatch(CharSequence query); 25 | } 26 | -------------------------------------------------------------------------------- /oak-library/src/main/java/oak/Sectionable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011. WillowTree Apps 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 oak; 18 | 19 | /** 20 | * User: Michael Lake 21 | * Date: 5/18/11 22 | * Time: 10:14 AM 23 | */ 24 | public interface Sectionable { 25 | 26 | String getSection(); 27 | } 28 | -------------------------------------------------------------------------------- /oak-library/src/main/java/oak/widget/CustomProgressDialog.java: -------------------------------------------------------------------------------- 1 | package oak.widget; 2 | 3 | import android.app.Dialog; 4 | import android.content.Context; 5 | import android.graphics.Color; 6 | import android.graphics.drawable.ColorDrawable; 7 | import android.view.ViewGroup; 8 | import android.view.Window; 9 | import android.widget.ImageView; 10 | import android.widget.RelativeLayout; 11 | 12 | /** 13 | * Allows you to create a dialog with a loading animation 14 | * using your own resources. 15 | */ 16 | public class CustomProgressDialog extends Dialog { 17 | 18 | private ImageView mProgressImageView; 19 | private final int mAnimationDuration = 0; 20 | 21 | public CustomProgressDialog(Context context, int[] progressDrawables) { 22 | super(context); 23 | requestWindowFeature(Window.FEATURE_NO_TITLE); 24 | mProgressImageView = new ImageView(context); 25 | RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams( 26 | ViewGroup.LayoutParams.WRAP_CONTENT, 27 | ViewGroup.LayoutParams.WRAP_CONTENT); 28 | mProgressImageView.setLayoutParams(lp); 29 | mProgressImageView.setImageResource(progressDrawables[0]); 30 | setContentView(mProgressImageView); 31 | getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 32 | new SceneAnimation(mProgressImageView, progressDrawables, mAnimationDuration); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /oak-library/src/main/java/oak/widget/spreadsheetview/SpreadsheetRow.java: -------------------------------------------------------------------------------- 1 | package oak.widget.spreadsheetview; 2 | 3 | /** 4 | * Used within SpreadsheetView 5 | */ 6 | public class SpreadsheetRow { 7 | 8 | private String[] values; 9 | private boolean[] selected; 10 | 11 | public SpreadsheetRow(int length){ 12 | values = new String[length]; 13 | selected = new boolean[length]; 14 | for (int i = 0; i < selected.length; i++){ 15 | selected[i] = false; 16 | } 17 | } 18 | 19 | public SpreadsheetRow(String[] values){ 20 | this.values = values; 21 | this.selected = new boolean[values.length]; 22 | for (int i = 0; i < selected.length; i++){ 23 | selected[i] = false; 24 | } 25 | } 26 | 27 | 28 | public String getValueAt(int valueIndex){ 29 | return this.values[valueIndex]; 30 | } 31 | 32 | public void setValue(int valueIndex, String value){ 33 | this.values[valueIndex] = value; 34 | } 35 | 36 | public boolean isSelected(int valueIndex){ 37 | return this.selected[valueIndex]; 38 | } 39 | 40 | public void select(int valueIndex, boolean select){ 41 | this.selected[valueIndex] = select; 42 | } 43 | 44 | public void selectRow(boolean select){ 45 | for (int i = 0; i < selected.length; i++){ 46 | selected[i] = select; 47 | } 48 | } 49 | 50 | public int getLength(){ 51 | return values.length; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /oak-parentswipingviews/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /oak-parentswipingviews/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | com.willowtreeapps 6 | oak-project 7 | 1.4.1-SNAPSHOT 8 | 9 | com.willowtreeapps 10 | oak-parentswipingviews 11 | OAK - ParentSwipingViews 12 | jar 13 | A library for shared android functionality 14 | 15 | 16 | 17 | 18 | com.android.support 19 | support-v4 20 | 19.0.0 21 | 22 | 23 | 24 | com.google.android 25 | android 26 | provided 27 | 28 | 29 | 30 | 31 | 32 | 33 | com.jayway.maven.plugins.android.generation2 34 | android-maven-plugin 35 | 36 | 37 | 10 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /oak-sectionlistview/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | com.willowtreeapps 6 | oak-project 7 | 1.4.1-SNAPSHOT 8 | 9 | com.willowtreeapps 10 | oak-sectionlistview 11 | OAK - SectionListView 12 | jar 13 | A library for shared android functionality 14 | 15 | 16 | 17 | com.google.android 18 | android 19 | provided 20 | 21 | 22 | 23 | 24 | src/main/java/ 25 | 26 | 27 | com.jayway.maven.plugins.android.generation2 28 | android-maven-plugin 29 | true 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /oak-sectionlistview/src/main/java/oak/sectionlistview/Queryable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011. WillowTree Apps 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 oak.sectionlistview; 18 | 19 | /** 20 | * User: Michael Lake Date: 10/18/11 Time: 4:53 PM 21 | */ 22 | public interface Queryable { 23 | 24 | boolean isQueryMatch(CharSequence query); 25 | } 26 | -------------------------------------------------------------------------------- /oak-sectionlistview/src/main/java/oak/sectionlistview/Sectionable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011. WillowTree Apps 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 oak.sectionlistview; 18 | 19 | /** 20 | * User: Michael Lake 21 | * Date: 5/18/11 22 | * Time: 10:14 AM 23 | */ 24 | public interface Sectionable { 25 | 26 | String getSection(); 27 | } 28 | -------------------------------------------------------------------------------- /oak-spreadsheetview/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /oak-spreadsheetview/src/main/java/oak/spreadsheetview/SpreadsheetRow.java: -------------------------------------------------------------------------------- 1 | package oak.spreadsheetview; 2 | 3 | /** 4 | * Used within SpreadsheetView 5 | */ 6 | public class SpreadsheetRow { 7 | 8 | private String[] values; 9 | private boolean[] selected; 10 | 11 | public SpreadsheetRow(int length) { 12 | values = new String[length]; 13 | selected = new boolean[length]; 14 | for (int i = 0; i < selected.length; i++) { 15 | selected[i] = false; 16 | } 17 | } 18 | 19 | public SpreadsheetRow(String[] values) { 20 | this.values = values; 21 | this.selected = new boolean[values.length]; 22 | for (int i = 0; i < selected.length; i++) { 23 | selected[i] = false; 24 | } 25 | } 26 | 27 | 28 | public String getValueAt(int valueIndex) { 29 | return this.values[valueIndex]; 30 | } 31 | 32 | public void setValue(int valueIndex, String value) { 33 | this.values[valueIndex] = value; 34 | } 35 | 36 | public boolean isSelected(int valueIndex) { 37 | return this.selected[valueIndex]; 38 | } 39 | 40 | public void select(int valueIndex, boolean select) { 41 | this.selected[valueIndex] = select; 42 | } 43 | 44 | public void selectRow(boolean select) { 45 | for (int i = 0; i < selected.length; i++) { 46 | selected[i] = select; 47 | } 48 | } 49 | 50 | public int getLength() { 51 | return values.length; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /oak-utils/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | com.willowtreeapps 6 | oak-project 7 | 1.4.1-SNAPSHOT 8 | 9 | com.willowtreeapps 10 | oak-utils 11 | OAK - Util 12 | jar 13 | A library for shared android functionality 14 | 15 | 16 | 17 | 18 | com.android.support 19 | support-v4 20 | 19.0.0 21 | 22 | 23 | 24 | com.google.android 25 | android 26 | provided 27 | 28 | 29 | 30 | 31 | 32 | 33 | com.jayway.maven.plugins.android.generation2 34 | android-maven-plugin 35 | true 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /oak-utils/src/main/java/oak/util/CompatUtils.java: -------------------------------------------------------------------------------- 1 | package oak.util; 2 | 3 | import android.graphics.drawable.Drawable; 4 | import android.os.Build; 5 | import android.view.View; 6 | import android.view.ViewTreeObserver; 7 | 8 | /** 9 | * Created by erichardson on 8/5/14. 10 | */ 11 | @SuppressWarnings("deprecation") 12 | public class CompatUtils { 13 | public static void setBackground(View v, Drawable background) { 14 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 15 | v.setBackground(background); 16 | } else { 17 | v.setBackgroundDrawable(background); 18 | } 19 | } 20 | 21 | public static void removeOnGlobalLayoutListener(View v, ViewTreeObserver.OnGlobalLayoutListener listener) { 22 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 23 | v.getViewTreeObserver().removeOnGlobalLayoutListener(listener); 24 | } else { 25 | v.getViewTreeObserver().removeGlobalOnLayoutListener(listener); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /oak-utils/src/main/java/oak/util/FontTypefaceSpan.java: -------------------------------------------------------------------------------- 1 | package oak.util; 2 | 3 | import android.content.Context; 4 | import android.graphics.Paint; 5 | import android.graphics.Typeface; 6 | import android.text.TextPaint; 7 | import android.text.style.MetricAffectingSpan; 8 | 9 | /** 10 | * User: ericrichardson Date: 5/6/13 Time: 2:10 PM 11 | * Allows you to set custom fonts with a spannable. 12 | * A useful example would be changing ActionBar title fonts! 13 | */ 14 | public class FontTypefaceSpan extends MetricAffectingSpan { 15 | 16 | private Typeface mTypeface; 17 | 18 | public FontTypefaceSpan(Context context, String typefaceName) { 19 | mTypeface = OakUtils.getStaticTypeFace(context, typefaceName); 20 | } 21 | 22 | @Override 23 | public void updateMeasureState(TextPaint p) { 24 | p.setTypeface(mTypeface); 25 | p.setFlags(p.getFlags() | Paint.SUBPIXEL_TEXT_FLAG); 26 | } 27 | 28 | @Override 29 | public void updateDrawState(TextPaint tp) { 30 | tp.setTypeface(mTypeface); 31 | tp.setFlags(tp.getFlags() | Paint.SUBPIXEL_TEXT_FLAG); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /oak-viewmodel/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | com.willowtreeapps 6 | oak-project 7 | 1.4.1-SNAPSHOT 8 | 9 | com.willowtreeapps 10 | oak-viewmodel 11 | OAK - ViewModel 12 | jar 13 | A library for shared android functionality 14 | 15 | 16 | 17 | 18 | com.android.support 19 | support-v4 20 | 19.0.0 21 | 22 | 23 | 24 | com.google.android 25 | android 26 | provided 27 | 28 | 29 | 30 | 31 | 32 | 33 | com.jayway.maven.plugins.android.generation2 34 | android-maven-plugin 35 | true 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /oak-viewmodel/src/main/java/oak/viewmodel/ViewModel.java: -------------------------------------------------------------------------------- 1 | package oak.viewmodel; 2 | 3 | /** 4 | * User: evantatarka Date: 9/25/13 Time: 4:30 PM 5 | *

6 | * An interface to mark a view that implements the ViewModel adapter pattern. All implementations of 7 | * this must subclass an android ViewGroup class as they are expected to be inflated from xml. 8 | *

9 | * You should override {@code onFinishInflate()} to get references to your children views. Then set 10 | * up the display of the view in {@code populate()}. 11 | */ 12 | public interface ViewModel { 13 | /** 14 | * Sets the data of the view to the given item. This is expected to be called multiple times as 15 | * the view is recycled. 16 | * 17 | * @param item the item to populate the view with 18 | */ 19 | void populate(T item); 20 | } 21 | -------------------------------------------------------------------------------- /oak-viewmodel/src/main/java/oak/viewmodel/ViewModelCursorAdapter.java: -------------------------------------------------------------------------------- 1 | package oak.viewmodel; 2 | 3 | import android.content.Context; 4 | import android.database.Cursor; 5 | import android.support.v4.widget.CursorAdapter; 6 | import android.view.LayoutInflater; 7 | import android.view.View; 8 | import android.view.ViewGroup; 9 | 10 | /** 11 | * Created by ericrichardson on 3/6/14. 12 | */ 13 | public class ViewModelCursorAdapter extends CursorAdapter { 14 | int mLayoutId; 15 | 16 | public ViewModelCursorAdapter(Context context, Cursor c, boolean autoRequery, int layoutId) { 17 | super(context, c, autoRequery); 18 | mLayoutId = layoutId; 19 | } 20 | 21 | @Override 22 | public View newView(Context context, Cursor cursor, ViewGroup parent) { 23 | ViewModel view = ViewModelUtil.getViewModel(LayoutInflater.from(mContext), mLayoutId, parent); 24 | return (View) view; 25 | } 26 | 27 | @Override 28 | public void bindView(View view, Context context, Cursor cursor) { 29 | ((ViewModel) view).populate(cursor); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /oak-viewswithfont/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /oak-viewswithfont/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /oak-webview/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /oak-webview/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | com.willowtreeapps 6 | oak-project 7 | 1.4.1-SNAPSHOT 8 | 9 | com.willowtreeapps 10 | oak-webview 11 | OAK - Webview 12 | aar 13 | A library for shared android functionality 14 | 15 | 16 | 17 | com.android.support 18 | support-v4 19 | 19.0.0 20 | 21 | 22 | 23 | 24 | com.google.android 25 | android 26 | provided 27 | 28 | 29 | 30 | 31 | 32 | 33 | com.jayway.maven.plugins.android.generation2 34 | android-maven-plugin 35 | true 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /oak-webview/res/drawable-xhdpi/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-webview/res/drawable-xhdpi/back.png -------------------------------------------------------------------------------- /oak-webview/res/drawable-xhdpi/forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-webview/res/drawable-xhdpi/forward.png -------------------------------------------------------------------------------- /oak-webview/res/drawable-xhdpi/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/oak-webview/res/drawable-xhdpi/refresh.png -------------------------------------------------------------------------------- /oak-webview/res/drawable/button_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /oak-webview/res/drawable/button_bg_pressed.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /oak-webview/res/drawable/web_button_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /oak-webview/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /oak-webview/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | Open in Browser 19 | Refresh 20 | OAK Content Description 21 | This is from a resource in oak-library. 22 | 23 | -------------------------------------------------------------------------------- /oak-webview/src/main/java/oak/webview/Extras.java: -------------------------------------------------------------------------------- 1 | package oak.webview; 2 | 3 | /** 4 | * Created by WillowTree, Inc on 5/18/15. 5 | */ 6 | public class Extras { 7 | public static final String EXTRA_URL = "oak_url"; 8 | 9 | public static final String EXTRA_LAYOUT = "oak_layout"; 10 | public static final String EXTRA_SHOW_CONTROLS = "oak_show_controls"; 11 | public static final String EXTRA_CONTROL_FADE = "oak_control_fade"; 12 | public static final String EXTRA_FADE_MIN = "oak_fade_min"; 13 | public static final String EXTRA_FADE_MAX = "oak_fade_max"; 14 | public static final String EXTRA_FADE_TIMEOUT = "oak_fade_timeout"; 15 | 16 | public static final String EXTRA_OPEN_IN_BROWSER = "oak_open_in_browser"; 17 | public static final String EXTRA_REFRESH_IN_MENU = "oak_refresh_in_menu"; 18 | } 19 | -------------------------------------------------------------------------------- /src/development/ide/eclipse/android.importorder: -------------------------------------------------------------------------------- 1 | #Organize Import Order 2 | #Wed Apr 04 11:32:05 CDT 2007 3 | 4=javax 4 | 3=java 5 | 2=android 6 | 1=org 7 | 0=com 8 | -------------------------------------------------------------------------------- /src/site/apt/OakWebView.apt: -------------------------------------------------------------------------------- 1 | OakWebView 2 | 3 | Allows you to easily pass in an URL, and display it in the OakWebViewFragment which has built in controls. -------------------------------------------------------------------------------- /src/site/apt/animatedsvgview.apt: -------------------------------------------------------------------------------- 1 | AnimatedSvgView 2 | 3 | The given example uses our WillowTree Logo, but using the proper tools you can add in your own 4 | paths to create the logo of your choice. An example is included in the OAK demo app, or check 5 | the About section of Muzei by Roman Nurik. -------------------------------------------------------------------------------- /src/site/apt/beastviewpager.apt: -------------------------------------------------------------------------------- 1 | BeastViewPager 2 | 3 | For when you need a ViewPager in a ViewPager and still maintain scrolling behavior between all children. Also works wonderfully to add a BeastViewPager as a ListView Header without wonkiness. -------------------------------------------------------------------------------- /src/site/apt/cancel_edit_text.apt: -------------------------------------------------------------------------------- 1 | CancelEditText 2 | 3 | 4 | [cancel_edit_text.png] CancelEditText 5 | 6 | %{snippet|id=canceledittext_layout|file=oak-demos/res/layout/cancel_edit_text_demo.xml} -------------------------------------------------------------------------------- /src/site/apt/crypto_prefs.apt: -------------------------------------------------------------------------------- 1 | CryptoSharedPreferences 2 | 3 | A wrapper around SharedPreferences that encrypts / decrypts all shared preferences. 4 | 5 | Warning - do not assume use of this class will prevent access to shared preferences. 6 | If an attacker has enough access to acquire your password store, they have enough access 7 | to acquire your source binary and figure out your encryption key. 8 | 9 | However, this class will prevent casual investigators from acquiring 10 | passwords, and thereby may prevent undesired negative publicity. 11 | 12 | Full disclosure: This code was adapted from {{{http://stackoverflow.com/questions/785973/what-is-the-most-appropriate-way-to-store-user-settings-in-android-application/6393502#6393502}Michael Burton's response on StackOverflow}} 13 | 14 | To use you must extend the CryptoSharedPreferences abstract class and implement the 15 | getSpecialCode() method. Ideally this method would use either user input or an external 16 | source to get the password used to encrypt the shared preferences. The demo has the 17 | value hard-coded and is significantly less secure as a result. 18 | 19 | The demo EncryptedPreferences object is shown below. 20 | 21 | %{snippet|id=encrypted_prefs|file=oak-demos/src/oak/demo/EncryptedPreferences.java} 22 | 23 | The activity using the EncryptedPreferences object. 24 | 25 | %{snippet|id=obscured_prefs|file=oak-demos/src/oak/demo/other/ObscuredPrefsActivity.java} 26 | 27 | Screenshot of demo activity. 28 | 29 | [crypto_shared_prefs.png] Crypto Shared Preferences -------------------------------------------------------------------------------- /src/site/apt/index.apt: -------------------------------------------------------------------------------- 1 | What is OAK Android Kit? 2 | 3 | OAK is a powerful kit of tools and components to use in your Android project (Compatible with API Level 10+) 4 | 5 | OAK is available in multiple modules depending on what type of functionality you require: 6 | 7 | * Oak-Aspect Ratio: A Layout that maintains a given Aspect Ratio 8 | 9 | * Oak-Parent Swiping Views: ViewPager built to work with Nested ViewPagers or inside a ListView Header 10 | 11 | * Oak-Section ListView: A Sectioned Header listview with pinned headers 12 | 13 | * Oak-SpreadsheetView: A View that functions like a spreadsheet 14 | 15 | * Oak-Utils: Base module with commonly used utils and classes 16 | 17 | * Oak-ViewsWithFont: Views with built in xml font support 18 | 19 | * Oak-AnimatedSvgView: View class to handle animated SVGs 20 | 21 | * Oak-WebView: Easy to use webview with navigation controls 22 | 23 | 24 | 25 | How is OAK licensed? 26 | 27 | OAK is licenced under {{{./license.html}Apache 2.0}}: that means it's free. 28 | 29 | How do I get started using OAK? 30 | 31 | Have a look at the {{{./quick-start.html}quick-start guide}}. Simply drop the jar into your android libs dir, or use 32 | your existing Ant or Maven2 build setup to auto-fetch sources and documentation, as well as <>. 33 | 34 | How can I contribute? 35 | 36 | OAK development is meant to be easy for Eclipse, IntelliJ, or Android Studio users. See the {{{./dev-doc.html} developer docs}} 37 | to see how you can make OAK even better. -------------------------------------------------------------------------------- /src/site/apt/obscured_prefs.apt: -------------------------------------------------------------------------------- 1 | 2 | ObscuredSharedPreferences 3 | 4 | Full disclosure: This code was adapted from {{{http://stackoverflow.com/questions/785973/what-is-the-most-appropriate-way-to-store-user-settings-in-android-application/6393502#6393502}Michael Burton's response on StackOverflow}} 5 | 6 | 7 | 8 | [obscured_shared_prefs.png] Obscured Shared Preferences 9 | 10 | 11 | %{snippet|id=obscured_prefs|file=oak-demos/src/oak/demo/other/ObscuredPrefsActivity.java} 12 | -------------------------------------------------------------------------------- /src/site/apt/pinnedheader.apt: -------------------------------------------------------------------------------- 1 | Section Listview 2 | 3 | Similar functionality to that of the listview found in the contacts app. -------------------------------------------------------------------------------- /src/site/apt/recommendedlibs.apt: -------------------------------------------------------------------------------- 1 | Recommended Libraries: 2 | 3 | Below are some commonly used libraries we use at WillowTree Apps. 4 | 5 | * {{{http://square.github.io/dagger/} Dagger}} - Dependency Injection. 6 | 7 | * {{{http://square.github.io/okhttp/} OkHttp}} - Http Client. 8 | 9 | * {{{http://jakewharton.github.io/butterknife/} Butterknife}} - View Injection. 10 | 11 | * {{{http://square.github.io/picasso/} Picasso}} - Image Loading. 12 | 13 | * {{{http://square.github.io/otto/} Otto}} - Event Bus. 14 | 15 | * {{{https://github.com/Netflix/RxJava/tree/master/rxjava-contrib/rxjava-android} RxJava}} 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/site/apt/section-adapter.apt: -------------------------------------------------------------------------------- 1 | SectionAdapter 2 | 3 | Here's what you get with Section adapter: 4 | 5 | * Pinned headers 6 | 7 | * An easy method of putting your data into sectioned data without the hassle of writing 8 | routines to find the position in section, etc. 9 | 10 | * Easily swap out assets depending on whether you're in first of section, end of section, etc. 11 | (note the rounded corner backgrounds for the listview items) 12 | 13 | * ListView searching (optional) 14 | 15 | * Support for "fastscroll" if specified in listview 16 | 17 | 18 | 19 | 20 | [sectionadapter.png] Section adapter 21 | 22 | * The model that you are populating the listview with must implement <> 23 | 24 | %{snippet|id=sectionable|file=oak-demos/src/oak/demo/model/Person.java} 25 | 26 | * Simply pass a List of your <> object model to the adapter.. 27 | 28 | %{snippet|id=sectiontool|file=oak-demos/src/oak/demo/listview/SectionActivity.java} 29 | 30 | -------------------------------------------------------------------------------- /src/site/apt/swankyimageview.apt: -------------------------------------------------------------------------------- 1 | SwankyImageView 2 | 3 | An ImageView that supports pinch-to-zoom, double-tap-to-zoom, and swipe panning. -------------------------------------------------------------------------------- /src/site/apt/textviewwithfont.apt: -------------------------------------------------------------------------------- 1 | TextViewWithFont 2 | 3 | TextViewWithFont allows easier Typeface setting. Simply drop your chosen fonts into assets/fonts and set the oak:font attribute. 4 | 5 | There are also subclasses of TextViewWithFont: 6 | 7 | * CheckBoxWithFont 8 | 9 | * ButtonWithFont 10 | 11 | * CancelEditText 12 | 13 | %{snippet|id=textviewwithfont_layout|file=oak-demos/res/layout/textview_with_font_demo.xml} 14 | -------------------------------------------------------------------------------- /src/site/apt/user-doc.apt: -------------------------------------------------------------------------------- 1 | How to use 2 | 3 | * First and foremost, download the demo app to see the kinds of components available. 4 | 5 | * Check the featured components in the nav box for a quick look at how they can be used. 6 | 7 | * Check out the source code for OAK (which includes the demo app) to see how it all works. 8 | 9 | * Integrate OAK into your own project! -------------------------------------------------------------------------------- /src/site/apt/utility.apt: -------------------------------------------------------------------------------- 1 | Oak Utilities 2 | 3 | Oak includes some often-used utility methods and classes to make common tasks more simple. 4 | 5 | * FontTypefaceSpan - Easily set fonts on any view with Text, including ActionBar Titles 6 | 7 | * OakAsyncLoader - AsyncTaskLoader that works. 8 | 9 | * OakUtils.changeFonts(View root, Context context, String typeface) - Iterates through all children recursively to change all fonts to the specified typeface 10 | 11 | * OakUtils.isPackageInstalled(Context context, String packageName) - Checks if the specified package is installed on the device 12 | 13 | * OakUtils.isValidEmail(String email) - Checks whether the given string is a valid email address 14 | 15 | * OakUtils.isValidPhone(String phone) - Checks whether the given string is a valid phone number -------------------------------------------------------------------------------- /src/site/resources/banner_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/banner_background.png -------------------------------------------------------------------------------- /src/site/resources/banner_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/banner_left.png -------------------------------------------------------------------------------- /src/site/resources/banner_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/banner_right.png -------------------------------------------------------------------------------- /src/site/resources/cancel_edit_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/cancel_edit_text.png -------------------------------------------------------------------------------- /src/site/resources/crypto_shared_prefs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/crypto_shared_prefs.png -------------------------------------------------------------------------------- /src/site/resources/css/site.css: -------------------------------------------------------------------------------- 1 | * { 2 | -webkit-font-smoothing: antialiased; 3 | } 4 | 5 | body { 6 | color: #000; 7 | font-family: Lato, Calibri, Verdana, Arial, sans-serif; 8 | font-size: 14px; 9 | font-style: normal; 10 | font-weight: normal; 11 | line-height: 1; 12 | margin: 0px; 13 | } 14 | 15 | h1, h2, h3, h4, h5, h6 { 16 | background: none; 17 | border: none; 18 | color: #666; 19 | font-family: Lato, Calibri, Verdana, Arial, sans-serif; 20 | font-style: normal; 21 | font-weight: 300; 22 | text-rendering: optimizeLegibility; 23 | } 24 | 25 | p { 26 | font-family: inherit; 27 | font-size: 14px; 28 | font-weight: 300; 29 | margin-bottom: 1.11111em; 30 | text-rendering: optimizeLegibility; 31 | } 32 | 33 | li { 34 | font-family: inherit; 35 | font-size: 14px; 36 | font-weight: 200; 37 | margin-bottom: 1.1em; 38 | text-rendering: optimizeLegibility; 39 | } 40 | 41 | 42 | #banner { 43 | background-image: url("../banner_background.png"); 44 | } 45 | 46 | #breadcrumbs { 47 | background-color: #333333; 48 | } 49 | 50 | #breadcrumbs { 51 | color: #fff; 52 | } 53 | 54 | #breadcrumbs a:link a:visited { 55 | color:#fff; 56 | } 57 | 58 | a:link { 59 | color: #70b3b8; 60 | } 61 | 62 | #navcolumn h5 { 63 | font-family: inherit; 64 | } 65 | 66 | #navcolumn li { 67 | font-family: inherit; 68 | margin: 4px; 69 | } -------------------------------------------------------------------------------- /src/site/resources/downloads/oak-distribution-1.1.10-SNAPSHOT-bin.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/downloads/oak-distribution-1.1.10-SNAPSHOT-bin.tar.gz -------------------------------------------------------------------------------- /src/site/resources/downloads/oak-distribution-1.1.10-SNAPSHOT-bin.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/downloads/oak-distribution-1.1.10-SNAPSHOT-bin.zip -------------------------------------------------------------------------------- /src/site/resources/downloads/oak-distribution-1.1.9-bin.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/downloads/oak-distribution-1.1.9-bin.tar.gz -------------------------------------------------------------------------------- /src/site/resources/downloads/oak-distribution-1.1.9-bin.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/downloads/oak-distribution-1.1.9-bin.zip -------------------------------------------------------------------------------- /src/site/resources/downloads/oak-distribution-1.3.7-SNAPSHOT-bin.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/downloads/oak-distribution-1.3.7-SNAPSHOT-bin.tar.gz -------------------------------------------------------------------------------- /src/site/resources/downloads/oak-distribution-1.3.7-SNAPSHOT-bin.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/downloads/oak-distribution-1.3.7-SNAPSHOT-bin.zip -------------------------------------------------------------------------------- /src/site/resources/downloads/oak-library-1.1.10-SNAPSHOT.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/downloads/oak-library-1.1.10-SNAPSHOT.jar -------------------------------------------------------------------------------- /src/site/resources/downloads/oak-library-1.1.9.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/downloads/oak-library-1.1.9.jar -------------------------------------------------------------------------------- /src/site/resources/images/android-logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/images/android-logo.jpg -------------------------------------------------------------------------------- /src/site/resources/images/wta_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/images/wta_circle.png -------------------------------------------------------------------------------- /src/site/resources/obscured_shared_prefs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/obscured_shared_prefs.png -------------------------------------------------------------------------------- /src/site/resources/section_list_demo.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/section_list_demo.mp4 -------------------------------------------------------------------------------- /src/site/resources/sectionadapter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/sectionadapter.png -------------------------------------------------------------------------------- /src/site/resources/spreedsheet_demo.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/spreedsheet_demo.mp4 -------------------------------------------------------------------------------- /src/site/resources/svg_demo.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/svg_demo.mp4 -------------------------------------------------------------------------------- /src/site/resources/swanky_gallery_demo.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/swanky_gallery_demo.mp4 -------------------------------------------------------------------------------- /src/site/resources/vertical_viewpager_demo.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/willowtreeapps/OAK/635cd72410af280b4afe2ee790f69b1291cc76be/src/site/resources/vertical_viewpager_demo.mp4 --------------------------------------------------------------------------------