├── galileo
├── .gitignore
└── src
│ └── main
│ ├── res
│ ├── drawable-hdpi
│ │ └── ic_galileo.png
│ ├── drawable-mdpi
│ │ └── ic_galileo.png
│ ├── drawable-xhdpi
│ │ └── ic_galileo.png
│ ├── drawable-xxhdpi
│ │ └── ic_galileo.png
│ ├── drawable-xxxhdpi
│ │ └── ic_galileo.png
│ ├── xml
│ │ └── file_provider_paths.xml
│ ├── drawable
│ │ ├── card_background.xml
│ │ ├── rounded_corner.xml
│ │ ├── ic_add.xml
│ │ ├── ic_more.xml
│ │ ├── round_shadow.xml
│ │ ├── ic_developer_board.xml
│ │ ├── ic_search.xml
│ │ └── ic_share.xml
│ ├── menu
│ │ └── share.xml
│ └── layout
│ │ ├── galileo_home_activity.xml
│ │ ├── galileo_plugin_activity.xml
│ │ ├── galileo_float.xml
│ │ ├── galileo_home_fragment.xml
│ │ └── item_more.xml
│ ├── java
│ └── com
│ │ └── josedlpozo
│ │ └── galileo
│ │ ├── config
│ │ ├── ConfigRepository.kt
│ │ ├── GalileoInternalConfig.kt
│ │ └── GalileoConfig.kt
│ │ ├── more
│ │ ├── MoreGalileoPlugin.kt
│ │ ├── MoreGalileoItem.kt
│ │ ├── MoreView.kt
│ │ └── PluginActivity.kt
│ │ └── parent
│ │ ├── files
│ │ └── GalileoFileProvider.kt
│ │ ├── extensions
│ │ └── ViewExtensions.kt
│ │ ├── preparator
│ │ └── PluginsPreparator.kt
│ │ ├── home
│ │ ├── HomeActivity.kt
│ │ └── HomeViewModel.kt
│ │ └── SnapshotGenerator.kt
│ └── AndroidManifest.xml
├── galileo-chuck
├── .gitignore
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── res
│ │ ├── drawable
│ │ │ ├── rounded_corner.xml
│ │ │ ├── chuck_ic_https_grey_24dp.xml
│ │ │ └── ic_http_request.xml
│ │ ├── values
│ │ │ └── strings.xml
│ │ └── menu
│ │ │ └── chuck_transaction.xml
│ │ └── java
│ │ └── com
│ │ └── josedlpozo
│ │ └── galileo
│ │ └── chuck
│ │ ├── GalileoChuckPlugin.kt
│ │ ├── data
│ │ ├── HttpTransactionRepository.kt
│ │ └── HttpHeader.kt
│ │ ├── ui
│ │ ├── TransactionListView.kt
│ │ └── TransactionGalileoItem.kt
│ │ └── support
│ │ └── SearchHighlighter.kt
└── build.gradle
├── galileo-core
├── .gitignore
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ └── com
│ │ │ └── josedlpozo
│ │ │ └── galileo
│ │ │ └── core
│ │ │ ├── GalileoItem.kt
│ │ │ ├── FloatItem.kt
│ │ │ ├── GalileoPlugin.kt
│ │ │ ├── EmptyGalileoItem.kt
│ │ │ └── GalileoFloatItem.kt
│ │ └── res
│ │ └── values
│ │ ├── dimens.xml
│ │ ├── integers.xml
│ │ ├── colors.xml
│ │ └── styles.xml
└── build.gradle
├── galileo-flow
├── .gitignore
├── src
│ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── res
│ │ │ ├── drawable
│ │ │ │ └── rounded_corner.xml
│ │ │ └── layout
│ │ │ │ └── galileo_event_detail_activity.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── josedlpozo
│ │ │ └── galileo
│ │ │ └── flow
│ │ │ ├── FlowGalileoPlugin.kt
│ │ │ ├── model
│ │ │ └── BundleItem.kt
│ │ │ ├── ViewExtensions.kt
│ │ │ ├── FlowGalileoItem.kt
│ │ │ └── instances.kt
│ └── test
│ │ └── java
│ │ └── com
│ │ └── josedlpozo
│ │ └── galileo
│ │ └── flow
│ │ ├── FlowEventDataSourceTest.kt
│ │ └── FlowEventModelMapperTest.kt
└── build.gradle
├── galileo-grid
├── .gitignore
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── res
│ │ ├── drawable
│ │ │ ├── ic_qs_grid_on_vector.xml
│ │ │ ├── ic_qs_grid_off_vector.xml
│ │ │ ├── ic_marker_vert.xml
│ │ │ ├── ic_marker_horiz_left.xml
│ │ │ ├── ic_marker_horiz_right.xml
│ │ │ ├── ic_qs_grid_on.xml
│ │ │ └── ic_qs_grid_off.xml
│ │ ├── values
│ │ │ └── strings.xml
│ │ └── layout
│ │ │ ├── card_layout.xml
│ │ │ ├── dialog_color_picker.xml
│ │ │ └── lobsterpicker.xml
│ │ └── java
│ │ └── com
│ │ └── josedlpozo
│ │ └── galileo
│ │ └── grid
│ │ ├── GridGalileoItem.kt
│ │ ├── GridGalileoPlugin.kt
│ │ ├── ui
│ │ └── DesignerTools.kt
│ │ └── utils
│ │ └── ColorUtils.kt
└── build.gradle
├── galileo-lynx
├── .gitignore
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ └── com
│ │ │ └── josedlpozo
│ │ │ └── galileo
│ │ │ └── lynx
│ │ │ ├── LynxGalileoPlugin.kt
│ │ │ ├── LynxGalileoItem.kt
│ │ │ └── GalileoLynx.kt
│ │ └── res
│ │ └── drawable
│ │ └── ic_adb.xml
└── build.gradle
├── galileo-no-op
├── .gitignore
└── src
│ └── main
│ ├── res
│ └── values
│ │ └── strings.xml
│ ├── AndroidManifest.xml
│ └── java
│ └── com
│ └── josedlpozo
│ └── galileo
│ ├── items
│ └── GalileoItem.kt
│ ├── config
│ └── GalileoConfig.kt
│ └── Galileo.kt
├── galileo-realm
├── .gitignore
└── src
│ ├── main
│ ├── res
│ │ ├── values
│ │ │ ├── realm_browser_dimens.xml
│ │ │ ├── realm_browser_colors.xml
│ │ │ └── realm_browser_strings.xml
│ │ ├── drawable
│ │ │ ├── realm_browser_divider.xml
│ │ │ ├── realm_browser_ic_add_white_24dp.xml
│ │ │ ├── realm_browser_ic_menu_white_24dp.xml
│ │ │ ├── realm_browser_ic_warning_black_24dp.xml
│ │ │ ├── realm_browser_ic_share_white_24dp.xml
│ │ │ ├── realm_browser_ic_delete_white_24dp.xml
│ │ │ ├── realm_browser_ic_sort_ascending_white_24dp.xml
│ │ │ ├── realm_browser_ic_sort_descending_white_24dp.xml
│ │ │ ├── realm_browser_ic_save_white_24dp.xml
│ │ │ ├── realm_browser_ic_vpn_key_black_24dp.xml
│ │ │ ├── realm_browser_ic_information_outline_black_24dp.xml
│ │ │ ├── realm_browser_ic_information_outline_white_24dp.xml
│ │ │ └── realm_browser_ic_search_white_24dp.xml
│ │ ├── menu
│ │ │ ├── realm_browser_menu_navigation_view.xml
│ │ │ ├── realm_browser_menu_browseractivity.xml
│ │ │ ├── realm_browser_menu_objectactivity.xml
│ │ │ └── realm_browser_menu_modelsactivity.xml
│ │ └── layout
│ │ │ ├── realm_browser_action_view_switch.xml
│ │ │ ├── realm_browser_fieldview_edittext.xml
│ │ │ ├── realm_browser_fieldview_spinner.xml
│ │ │ ├── realm_browser_fieldview_textview.xml
│ │ │ ├── realm_browser_fieldview.xml
│ │ │ ├── realm_browser_ac_recycler.xml
│ │ │ └── realm_browser_ac_realm_object.xml
│ ├── java
│ │ └── com
│ │ │ └── josedlpozo
│ │ │ └── galileo
│ │ │ └── realm
│ │ │ ├── realmbrowser
│ │ │ ├── models
│ │ │ │ └── model
│ │ │ │ │ ├── Sort.kt
│ │ │ │ │ └── GalileoRealmModel.kt
│ │ │ └── files
│ │ │ │ └── model
│ │ │ │ └── RealmFile.kt
│ │ │ ├── RealmPlugin.kt
│ │ │ └── RealmGalileoItem.kt
│ └── AndroidManifest.xml
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── josedlpozo
│ │ └── galileo
│ │ └── realm
│ │ └── RealmMother.kt
│ └── test
│ └── java
│ └── com
│ └── josedlpozo
│ └── galileo
│ └── realm
│ └── RealmTestModel.kt
├── galileo-sample
├── .gitignore
└── src
│ └── main
│ ├── res
│ ├── values
│ │ ├── strings.xml
│ │ ├── styles.xml
│ │ └── colors.xml
│ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ └── layout
│ │ ├── activity_second.xml
│ │ └── activity_sample.xml
│ ├── java
│ └── com
│ │ └── josedlpozo
│ │ └── galileo
│ │ └── sample
│ │ ├── realm
│ │ └── RealmModels.kt
│ │ └── SecondActivity.kt
│ └── AndroidManifest.xml
├── galileo-chuck-no-op
├── .gitignore
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── josedlpozo
│ │ └── galileo
│ │ └── chuck
│ │ ├── GalileoChuckPlugin.kt
│ │ └── GalileoChuckInterceptor.kt
└── build.gradle
├── galileo-colorpicker
├── .gitignore
├── src
│ └── main
│ │ ├── res
│ │ ├── drawable-hdpi
│ │ │ ├── loop_ring.png
│ │ │ └── color_hex_backer.9.png
│ │ ├── drawable-mdpi
│ │ │ ├── loop_ring.png
│ │ │ └── color_hex_backer.9.png
│ │ ├── drawable-xhdpi
│ │ │ ├── loop_ring.png
│ │ │ └── color_hex_backer.9.png
│ │ ├── drawable-xxhdpi
│ │ │ ├── loop_ring.png
│ │ │ └── color_hex_backer.9.png
│ │ ├── drawable-xxxhdpi
│ │ │ ├── loop_ring.png
│ │ │ └── color_hex_backer.9.png
│ │ ├── values
│ │ │ └── strings.xml
│ │ ├── drawable
│ │ │ ├── ic_qs_colorpicker_off.xml
│ │ │ └── ic_qs_colorpicker_on.xml
│ │ └── layout
│ │ │ └── card_layout.xml
│ │ ├── java
│ │ └── com
│ │ │ └── josedlpozo
│ │ │ └── galileo
│ │ │ └── colorpicker
│ │ │ ├── mapper
│ │ │ └── ColorMapper.java
│ │ │ ├── ColorPickerGalileoPlugin.kt
│ │ │ └── PickerGalileoItem.kt
│ │ └── AndroidManifest.xml
└── build.gradle
├── galileo-flow-no-op
├── .gitignore
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── josedlpozo
│ │ └── galileo
│ │ └── flow
│ │ └── FlowGalileoPlugin.kt
└── build.gradle
├── galileo-grid-no-op
├── .gitignore
├── src
│ └── main
│ │ ├── res
│ │ └── values
│ │ │ └── strings.xml
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── josedlpozo
│ │ └── galileo
│ │ └── grid
│ │ └── GridGalileoPlugin.kt
└── build.gradle
├── galileo-lynx-no-op
├── .gitignore
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── josedlpozo
│ │ └── galileo
│ │ └── lynx
│ │ └── LynxGalileoPlugin.kt
└── build.gradle
├── galileo-preferator
├── .gitignore
├── src
│ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── res
│ │ │ ├── menu
│ │ │ │ └── pref_more_options.xml
│ │ │ ├── drawable
│ │ │ │ ├── ic_arrow_collapse_black_24dp.xml
│ │ │ │ ├── ic_arrow_expand_black_24dp.xml
│ │ │ │ ├── ic_more_vert_black_24dp.xml
│ │ │ │ └── ic_developer_board.xml
│ │ │ └── layout
│ │ │ │ ├── item_editor_int.xml
│ │ │ │ ├── item_editor_float.xml
│ │ │ │ ├── item_editor_string.xml
│ │ │ │ └── item_editor_boolean.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── josedlpozo
│ │ │ └── galileo
│ │ │ └── preferator
│ │ │ ├── PreferatorGalileoPlugin.kt
│ │ │ ├── view
│ │ │ ├── PreferatorGalileoItem.kt
│ │ │ ├── editor
│ │ │ │ ├── BooleanPrefEditor.kt
│ │ │ │ └── StringPrefEditor.kt
│ │ │ └── PreferatorView.kt
│ │ │ ├── model
│ │ │ ├── Type.kt
│ │ │ └── Model.kt
│ │ │ ├── presenter
│ │ │ └── PreferatorPresenter.kt
│ │ │ ├── data
│ │ │ └── PreferatorDataSource.kt
│ │ │ └── SdkFilter.kt
│ └── test
│ │ └── java
│ │ └── com
│ │ └── josedlpozo
│ │ └── galileo
│ │ └── preferator
│ │ └── SdkFilterTest.kt
└── build.gradle
├── galileo-realm-no-op
├── .gitignore
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── josedlpozo
│ │ └── galileo
│ │ └── realm
│ │ └── RealmPlugin.kt
└── build.gradle
├── galileo-remoteconfig
├── .gitignore
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ └── com
│ │ │ └── josedlpozo
│ │ │ └── galileo
│ │ │ └── remoteconfig
│ │ │ ├── RemoteConfigGalileoPlugin.kt
│ │ │ ├── RemoteConfigGalileoItem.kt
│ │ │ ├── RemoteConfigKey.kt
│ │ │ └── view
│ │ │ ├── BooleanPrefEditor.kt
│ │ │ ├── DoublePrefEditor.kt
│ │ │ ├── StringPrefEditor.kt
│ │ │ └── LongPrefEditor.kt
│ │ └── res
│ │ ├── layout
│ │ ├── remote_config_boolean.xml
│ │ └── remote_config_value.xml
│ │ └── drawable
│ │ └── ic_developer_board.xml
└── build.gradle
├── galileo-colorpicker-no-op
├── .gitignore
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── josedlpozo
│ │ └── galileo
│ │ └── colorpicker
│ │ └── ColorPickerGalileoPlugin.kt
└── build.gradle
├── galileo-preferator-no-op
├── .gitignore
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── josedlpozo
│ │ └── galileo
│ │ └── preferator
│ │ └── PreferatorGalileoPlugin.kt
└── build.gradle
├── galileo-remoteconfig-no-op
├── .gitignore
├── consumer-rules.pro
├── src
│ └── main
│ │ ├── res
│ │ └── values
│ │ │ └── strings.xml
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ └── com
│ │ └── josedlpozo
│ │ └── galileo
│ │ └── remoteconfig
│ │ └── RemoteConfigGalileoPlugin.kt
├── proguard-rules.pro
└── build.gradle
├── docs
├── favicon.png
├── siteicon.png
├── touch-icon.png
├── apple-touch-icon.png
├── images
│ ├── _screenshot.png
│ ├── menu.svg
│ ├── emblem.svg
│ └── logo.svg
├── robots.txt
├── _includes
│ ├── relative-src.html
│ ├── syntax-highlight.html
│ └── sidebar.html
├── Gemfile
├── _api
│ ├── _defaults.md
│ ├── books_get.md
│ ├── books_delete.md
│ ├── books_add.md
│ └── books_update.md
├── _preferator
│ ├── _defaults.md
│ └── books_delete.md
├── _documentation
│ ├── _defaults.md
│ └── getting_started.md
├── css
│ ├── editor.css
│ └── style.scss
├── _sass
│ ├── cloudcannon.scss
│ └── _mixins.scss
├── LICENSE
├── search.html
├── _config.yml
└── index.html
├── media
├── galileo.gif
├── galileo-80px.png
├── galileo-256px.png
└── galileo-800px.png
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── .gitignore
├── settings.gradle
├── gradle.properties
└── .travis.yml
/galileo/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-chuck/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-core/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-flow/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-grid/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-lynx/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-no-op/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-realm/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-sample/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-chuck-no-op/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-colorpicker/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-flow-no-op/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-grid-no-op/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-lynx-no-op/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-preferator/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-realm-no-op/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-remoteconfig/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-colorpicker-no-op/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-preferator-no-op/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-remoteconfig-no-op/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/galileo-remoteconfig-no-op/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/docs/favicon.png
--------------------------------------------------------------------------------
/docs/siteicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/docs/siteicon.png
--------------------------------------------------------------------------------
/media/galileo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/media/galileo.gif
--------------------------------------------------------------------------------
/docs/touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/docs/touch-icon.png
--------------------------------------------------------------------------------
/media/galileo-80px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/media/galileo-80px.png
--------------------------------------------------------------------------------
/media/galileo-256px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/media/galileo-256px.png
--------------------------------------------------------------------------------
/media/galileo-800px.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/media/galileo-800px.png
--------------------------------------------------------------------------------
/docs/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/docs/apple-touch-icon.png
--------------------------------------------------------------------------------
/docs/images/_screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/docs/images/_screenshot.png
--------------------------------------------------------------------------------
/docs/robots.txt:
--------------------------------------------------------------------------------
1 | ---
2 | layout: null
3 | sitemap: false
4 | ---
5 | User-agent: *
6 | Sitemap: {{ site.url }}/sitemap.xml
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/galileo-no-op/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | galileo_no_op
3 |
4 |
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | galileo-sample
3 |
4 |
--------------------------------------------------------------------------------
/galileo-grid-no-op/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | galileo-grid-no-op
3 |
4 |
--------------------------------------------------------------------------------
/galileo/src/main/res/drawable-hdpi/ic_galileo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo/src/main/res/drawable-hdpi/ic_galileo.png
--------------------------------------------------------------------------------
/galileo/src/main/res/drawable-mdpi/ic_galileo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo/src/main/res/drawable-mdpi/ic_galileo.png
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/values/realm_browser_dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 16dp
3 |
4 |
--------------------------------------------------------------------------------
/galileo/src/main/res/drawable-xhdpi/ic_galileo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo/src/main/res/drawable-xhdpi/ic_galileo.png
--------------------------------------------------------------------------------
/galileo/src/main/res/drawable-xxhdpi/ic_galileo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo/src/main/res/drawable-xxhdpi/ic_galileo.png
--------------------------------------------------------------------------------
/galileo/src/main/res/drawable-xxxhdpi/ic_galileo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo/src/main/res/drawable-xxxhdpi/ic_galileo.png
--------------------------------------------------------------------------------
/galileo-core/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/galileo-grid/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/galileo-lynx/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/galileo-no-op/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/galileo-remoteconfig-no-op/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | galileo-remoteconfig-no-op
3 |
4 |
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-sample/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-sample/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-sample/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-sample/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/galileo-chuck-no-op/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/galileo-flow-no-op/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/galileo-grid-no-op/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/galileo-lynx-no-op/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/galileo-realm-no-op/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/res/drawable-hdpi/loop_ring.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-colorpicker/src/main/res/drawable-hdpi/loop_ring.png
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/res/drawable-mdpi/loop_ring.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-colorpicker/src/main/res/drawable-mdpi/loop_ring.png
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/res/drawable-xhdpi/loop_ring.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-colorpicker/src/main/res/drawable-xhdpi/loop_ring.png
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/res/drawable-xxhdpi/loop_ring.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-colorpicker/src/main/res/drawable-xxhdpi/loop_ring.png
--------------------------------------------------------------------------------
/galileo-preferator/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-sample/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-sample/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-sample/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/galileo-colorpicker-no-op/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/res/drawable-xxxhdpi/loop_ring.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-colorpicker/src/main/res/drawable-xxxhdpi/loop_ring.png
--------------------------------------------------------------------------------
/galileo-preferator-no-op/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/galileo-remoteconfig/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-sample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-sample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/galileo-remoteconfig-no-op/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
--------------------------------------------------------------------------------
/galileo/src/main/res/xml/file_provider_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/res/drawable-hdpi/color_hex_backer.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-colorpicker/src/main/res/drawable-hdpi/color_hex_backer.9.png
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/res/drawable-mdpi/color_hex_backer.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-colorpicker/src/main/res/drawable-mdpi/color_hex_backer.9.png
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/res/drawable-xhdpi/color_hex_backer.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-colorpicker/src/main/res/drawable-xhdpi/color_hex_backer.9.png
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/res/drawable-xxhdpi/color_hex_backer.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-colorpicker/src/main/res/drawable-xxhdpi/color_hex_backer.9.png
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/res/drawable-xxxhdpi/color_hex_backer.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/josedlpozo/galileo/HEAD/galileo-colorpicker/src/main/res/drawable-xxxhdpi/color_hex_backer.9.png
--------------------------------------------------------------------------------
/docs/_includes/relative-src.html:
--------------------------------------------------------------------------------
1 | {% assign prefix = include.src | slice: 0, 2 %}{% assign protocol = include.src | slice: 0, 4 %}{% unless protocol == 'http' or prefix == "//" %}{{ site.baseurl }}{% endunless %}{{ include.src }}
--------------------------------------------------------------------------------
/docs/Gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 |
3 | gem "jekyll", ">= 3.7.4"
4 | gem "ffi", ">= 1.9.24"
5 |
6 | group :jekyll_plugins do
7 | gem 'jekyll-seo-tag', '2.4.0'
8 | gem 'jekyll-sitemap', '1.2.0'
9 | end
10 |
--------------------------------------------------------------------------------
/docs/_includes/syntax-highlight.html:
--------------------------------------------------------------------------------
1 | {% capture highlight %}
2 | ``` {{ include.block.language }}
3 | {{ include.block.code_block }}
4 | ```
5 | {: title="{{ include.block.title }}" }
6 | {% endcapture %}
7 |
8 | {{ highlight | markdownify }}
--------------------------------------------------------------------------------
/galileo-grid/src/main/res/drawable/ic_qs_grid_on_vector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/docs/images/menu.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/galileo-grid/src/main/res/drawable/ic_qs_grid_off_vector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/galileo/src/main/res/drawable/card_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
7 |
8 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/drawable/realm_browser_divider.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/galileo-preferator/src/main/res/menu/pref_more_options.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/galileo-realm-no-op/src/main/java/com/josedlpozo/galileo/realm/RealmPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.realm
2 |
3 | import com.josedlpozo.galileo.core.EmptyGalileoPlugin
4 | import com.josedlpozo.galileo.core.GalileoPlugin
5 |
6 | val realmPlugin: GalileoPlugin = EmptyGalileoPlugin()
--------------------------------------------------------------------------------
/galileo-flow-no-op/src/main/java/com/josedlpozo/galileo/flow/FlowGalileoPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.flow
2 |
3 | import com.josedlpozo.galileo.core.EmptyGalileoPlugin
4 | import com.josedlpozo.galileo.core.GalileoPlugin
5 |
6 | val flowPlugin: GalileoPlugin = EmptyGalileoPlugin()
--------------------------------------------------------------------------------
/galileo-grid-no-op/src/main/java/com/josedlpozo/galileo/grid/GridGalileoPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.grid
2 |
3 | import com.josedlpozo.galileo.core.EmptyGalileoPlugin
4 | import com.josedlpozo.galileo.core.GalileoPlugin
5 |
6 | val gridPlugin: GalileoPlugin = EmptyGalileoPlugin()
--------------------------------------------------------------------------------
/galileo-lynx-no-op/src/main/java/com/josedlpozo/galileo/lynx/LynxGalileoPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.lynx
2 |
3 | import com.josedlpozo.galileo.core.EmptyGalileoPlugin
4 | import com.josedlpozo.galileo.core.GalileoPlugin
5 |
6 | val lynxPlugin: GalileoPlugin = EmptyGalileoPlugin()
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Aug 30 12:05:24 CEST 2019
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-5.4.1-all.zip
7 |
--------------------------------------------------------------------------------
/docs/_api/_defaults.md:
--------------------------------------------------------------------------------
1 | ---
2 | title:
3 | position:
4 | parameters:
5 | - name:
6 | content:
7 | content_markdown:
8 | left_code_blocks:
9 | - code_block:
10 | title:
11 | language:
12 | right_code_blocks:
13 | - code_block:
14 | title:
15 | language:
16 | ---
17 |
--------------------------------------------------------------------------------
/galileo-chuck-no-op/src/main/java/com/josedlpozo/galileo/chuck/GalileoChuckPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.chuck
2 |
3 | import com.josedlpozo.galileo.core.EmptyGalileoPlugin
4 | import com.josedlpozo.galileo.core.GalileoPlugin
5 |
6 | val chuckPlugin: GalileoPlugin = EmptyGalileoPlugin()
--------------------------------------------------------------------------------
/docs/_preferator/_defaults.md:
--------------------------------------------------------------------------------
1 | ---
2 | title:
3 | position:
4 | parameters:
5 | - name:
6 | content:
7 | content_markdown:
8 | left_code_blocks:
9 | - code_block:
10 | title:
11 | language:
12 | right_code_blocks:
13 | - code_block:
14 | title:
15 | language:
16 | ---
17 |
--------------------------------------------------------------------------------
/galileo/src/main/java/com/josedlpozo/galileo/config/ConfigRepository.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.config
2 |
3 | internal object ConfigRepository {
4 |
5 | var internalConfig: GalileoInternalConfig = GalileoInternalConfig()
6 |
7 | var more: List = listOf()
8 |
9 | }
--------------------------------------------------------------------------------
/docs/_documentation/_defaults.md:
--------------------------------------------------------------------------------
1 | ---
2 | title:
3 | position:
4 | parameters:
5 | - name:
6 | content:
7 | content_markdown:
8 | left_code_blocks:
9 | - code_block:
10 | title:
11 | language:
12 | right_code_blocks:
13 | - code_block:
14 | title:
15 | language:
16 | ---
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/caches/build_file_checksums.ser
5 | /.idea/libraries
6 | /.idea/modules.xml
7 | /.idea/workspace.xml
8 | .DS_Store
9 | /build
10 | /captures
11 | .externalNativeBuild
12 | .idea
13 | galileo-android/build/
14 | docs/_site/
15 | docs/.sass-cache/
16 |
--------------------------------------------------------------------------------
/galileo-core/src/main/java/com/josedlpozo/galileo/core/GalileoItem.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.core
2 |
3 | import android.view.View
4 |
5 | interface GalileoItem {
6 |
7 | val name: String
8 |
9 | val icon: Int
10 |
11 | fun snapshot(): String
12 |
13 | fun view(): View
14 |
15 | }
--------------------------------------------------------------------------------
/galileo-preferator-no-op/src/main/java/com/josedlpozo/galileo/preferator/PreferatorGalileoPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.preferator
2 |
3 | import com.josedlpozo.galileo.core.EmptyGalileoPlugin
4 | import com.josedlpozo.galileo.core.GalileoPlugin
5 |
6 | val preferatorPlugin: GalileoPlugin = EmptyGalileoPlugin()
--------------------------------------------------------------------------------
/galileo-colorpicker-no-op/src/main/java/com/josedlpozo/galileo/colorpicker/ColorPickerGalileoPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.colorpicker
2 |
3 | import com.josedlpozo.galileo.core.EmptyGalileoPlugin
4 | import com.josedlpozo.galileo.core.GalileoPlugin
5 |
6 | val colorPickerPlugin: GalileoPlugin = EmptyGalileoPlugin()
--------------------------------------------------------------------------------
/galileo-remoteconfig-no-op/src/main/java/com/josedlpozo/galileo/remoteconfig/RemoteConfigGalileoPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.remoteconfig
2 |
3 | import com.josedlpozo.galileo.core.EmptyGalileoPlugin
4 | import com.josedlpozo.galileo.core.GalileoPlugin
5 |
6 | val remoteConfigPlugin: GalileoPlugin = EmptyGalileoPlugin()
--------------------------------------------------------------------------------
/galileo-realm/src/main/java/com/josedlpozo/galileo/realm/realmbrowser/models/model/Sort.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.realm.realmbrowser.models.model
2 |
3 | sealed class Sort
4 |
5 | object Asc : Sort()
6 | object Desc : Sort()
7 |
8 | fun Sort.inverse(): Sort = when (this) {
9 | Asc -> Desc
10 | Desc -> Asc
11 | }
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/galileo/src/main/java/com/josedlpozo/galileo/config/GalileoInternalConfig.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.config
2 |
3 | import com.josedlpozo.galileo.core.GalileoPlugin
4 |
5 | internal data class GalileoInternalPlugin(val id: Long, val plugin: GalileoPlugin)
6 |
7 | internal data class GalileoInternalConfig(val plugins: List = listOf())
--------------------------------------------------------------------------------
/docs/_preferator/books_delete.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Preferator
3 | position: 1.0
4 | description: SharedPreferences plugin
5 | parameters:
6 | - name:
7 | content:
8 | content_markdown: |-
9 | This plugin shows you your application shared preferences
10 | left_code_blocks:
11 | - code_block:
12 | right_code_blocks:
13 | - code_block:
14 | ---
15 |
16 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/menu/realm_browser_menu_navigation_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/galileo-sample/src/main/java/com/josedlpozo/galileo/sample/realm/RealmModels.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.sample.realm
2 |
3 | import io.realm.RealmObject
4 | import io.realm.annotations.PrimaryKey
5 |
6 | open class DeveloperModel(@PrimaryKey var id: Int = 0, var name: String = ""): RealmObject()
7 |
8 | open class TeamModel(@PrimaryKey var id: Int = 0, var name: String = ""): RealmObject()
--------------------------------------------------------------------------------
/galileo/src/main/res/menu/share.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
10 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/layout/realm_browser_action_view_switch.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/galileo/src/main/res/layout/galileo_home_activity.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
--------------------------------------------------------------------------------
/galileo-core/src/main/java/com/josedlpozo/galileo/core/FloatItem.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.core
2 |
3 | import android.app.Activity
4 | import android.content.Context
5 | import android.view.View
6 |
7 | interface FloatItem {
8 |
9 | fun onViewCreated(view: View)
10 |
11 | fun onCreate(context: Context)
12 |
13 | fun onResume(activity: Activity)
14 |
15 | fun onPaused()
16 |
17 | }
--------------------------------------------------------------------------------
/galileo-chuck/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/galileo-grid/src/main/res/drawable/ic_marker_vert.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/drawable/realm_browser_ic_add_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/java/com/josedlpozo/galileo/colorpicker/mapper/ColorMapper.java:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.colorpicker.mapper;
2 |
3 | import android.graphics.Color;
4 | import java.nio.ByteBuffer;
5 |
6 | public class ColorMapper {
7 | public static int color(ByteBuffer buffer){
8 | return Color.argb(255, buffer.get() & 0xff, buffer.get() & 0xff, buffer.get() & 0xff);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/galileo-flow/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/galileo-grid/src/main/res/drawable/ic_marker_horiz_left.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/galileo-lynx/src/main/java/com/josedlpozo/galileo/lynx/LynxGalileoPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.lynx
2 |
3 | import android.content.Context
4 | import com.josedlpozo.galileo.core.GalileoItem
5 | import com.josedlpozo.galileo.core.GalileoPlugin
6 |
7 | val lynxPlugin: GalileoPlugin = object : GalileoPlugin() {
8 |
9 | override fun item(context: Context): GalileoItem = LynxGalileoItem(context)
10 |
11 | }
--------------------------------------------------------------------------------
/galileo-realm/src/main/java/com/josedlpozo/galileo/realm/RealmPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.realm
2 |
3 | import android.content.Context
4 | import com.josedlpozo.galileo.core.GalileoItem
5 | import com.josedlpozo.galileo.core.GalileoPlugin
6 |
7 | val realmPlugin: GalileoPlugin = object : GalileoPlugin() {
8 |
9 | override fun item(context: Context): GalileoItem = RealmGalileoItem(context)
10 |
11 | }
--------------------------------------------------------------------------------
/galileo-grid/src/main/res/drawable/ic_marker_horiz_right.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/drawable/realm_browser_ic_menu_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/docs/images/emblem.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/drawable/realm_browser_ic_warning_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/galileo/src/main/res/drawable/rounded_corner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/galileo-chuck/src/main/res/drawable/rounded_corner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/galileo-flow/src/main/res/drawable/rounded_corner.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/galileo-preferator/src/main/res/drawable/ic_arrow_collapse_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/galileo-preferator/src/main/res/drawable/ic_arrow_expand_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/drawable/realm_browser_ic_share_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':galileo', ':galileo-sample', ':galileo-no-op', ':galileo-core', ':galileo-realm', ':galileo-lynx', ':galileo-flow', ':galileo-chuck', ':galileo-remoteconfig', ':galileo-preferator', ':galileo-colorpicker', ':galileo-grid', ':galileo-chuck-no-op', ':galileo-colorpicker-no-op', ':galileo-flow-no-op', ':galileo-grid-no-op', ':galileo-lynx-no-op', ':galileo-preferator-no-op', ':galileo-realm-no-op', ':galileo-remoteconfig-no-op'
2 |
--------------------------------------------------------------------------------
/docs/css/editor.css:
--------------------------------------------------------------------------------
1 | .error, .warning, .info, .success {
2 | border-left: 5px solid #FD0;
3 | padding: 10px 15px;
4 | margin-left: -20px;
5 | margin-right: -15px;
6 | background-color: #FAFAFA;
7 | border-radius: 2px;
8 | }
9 |
10 | p.warning {
11 | border-color: #ffc107;
12 | }
13 |
14 | p.info {
15 | border-color: #56ADEC;
16 | }
17 |
18 | p.error {
19 | border-color: #F20;
20 | }
21 |
22 | p.success {
23 | border-color: #6c0;
24 | }
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/drawable/realm_browser_ic_delete_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/drawable/realm_browser_ic_sort_ascending_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/drawable/realm_browser_ic_sort_descending_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/layout/realm_browser_fieldview_edittext.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/layout/realm_browser_fieldview_spinner.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/galileo-remoteconfig/src/main/java/com/josedlpozo/galileo/remoteconfig/RemoteConfigGalileoPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.remoteconfig
2 |
3 | import android.content.Context
4 | import com.josedlpozo.galileo.core.GalileoItem
5 | import com.josedlpozo.galileo.core.GalileoPlugin
6 |
7 | val remoteConfigPlugin: GalileoPlugin = object : GalileoPlugin() {
8 |
9 | override fun item(context: Context): GalileoItem = RemoteConfigGalileoItem(context)
10 |
11 | }
--------------------------------------------------------------------------------
/galileo/src/main/res/layout/galileo_plugin_activity.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Color picker
3 | Color picker
4 | Press to hide color picker
5 | Press to show color picker
6 | Color value copied to clipboard
7 |
8 |
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/galileo-core/src/main/java/com/josedlpozo/galileo/core/GalileoPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.core
2 |
3 | import android.app.Application
4 | import android.content.Context
5 |
6 | abstract class GalileoPlugin {
7 |
8 | open fun init(application: Application) = Unit
9 |
10 | abstract fun item(context: Context): GalileoItem
11 | }
12 |
13 | abstract class GalileoFloatPlugin : GalileoPlugin() {
14 |
15 | abstract fun floatItem(): GalileoFloatItem
16 |
17 | }
--------------------------------------------------------------------------------
/galileo-chuck/src/main/java/com/josedlpozo/galileo/chuck/GalileoChuckPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.chuck
2 |
3 | import android.content.Context
4 | import com.josedlpozo.galileo.chuck.ui.TransactionGalileoItem
5 | import com.josedlpozo.galileo.core.GalileoItem
6 | import com.josedlpozo.galileo.core.GalileoPlugin
7 |
8 | val chuckPlugin: GalileoPlugin = object : GalileoPlugin() {
9 |
10 | override fun item(context: Context): GalileoItem = TransactionGalileoItem(context)
11 |
12 | }
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/layout/activity_second.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #64b5f6
4 | #2286c3
5 | #2286c3
6 |
7 | @color/colorPrimary
8 | @color/colorPrimaryDark
9 | @color/colorAccent
10 |
11 |
--------------------------------------------------------------------------------
/galileo/src/main/res/drawable/ic_add.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
11 |
13 |
--------------------------------------------------------------------------------
/docs/css/style.scss:
--------------------------------------------------------------------------------
1 | ---
2 | layout: null
3 | sitemap: false
4 | ---
5 |
6 | $brand-colour: #35d69b;
7 |
8 | $nav-header-height: 60px;
9 | $nav-background-color: #f5f5f5;
10 | $nav-width: 210px;
11 |
12 | $space: 20px;
13 |
14 | $mobile-break: 700px;
15 |
16 | {% if site.baseurl %}
17 | $base-url: {{ site.baseurl }};
18 | {% else %}
19 | $base-url: '';
20 | {% endif %}
21 |
22 | @import "mixins";
23 | @import "main";
24 | @import "borland";
25 | @import "monaki";
26 | @import "cloudcannon";
27 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/layout/realm_browser_fieldview_textview.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/menu/realm_browser_menu_browseractivity.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
9 |
--------------------------------------------------------------------------------
/galileo-remoteconfig/src/main/res/layout/remote_config_boolean.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/layout/realm_browser_fieldview.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
12 |
13 |
--------------------------------------------------------------------------------
/galileo/src/main/res/drawable/ic_more.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/galileo-preferator/src/main/java/com/josedlpozo/galileo/preferator/PreferatorGalileoPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.preferator
2 |
3 | import android.content.Context
4 | import com.josedlpozo.galileo.core.GalileoItem
5 | import com.josedlpozo.galileo.core.GalileoPlugin
6 | import com.josedlpozo.galileo.preferator.view.PreferatorGalileoItem
7 |
8 | val preferatorPlugin: GalileoPlugin = object : GalileoPlugin() {
9 |
10 | override fun item(context: Context): GalileoItem = PreferatorGalileoItem(context)
11 |
12 | }
--------------------------------------------------------------------------------
/galileo/src/main/java/com/josedlpozo/galileo/more/MoreGalileoPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.more
2 |
3 | import android.content.Context
4 | import com.josedlpozo.galileo.config.GalileoInternalPlugin
5 | import com.josedlpozo.galileo.core.GalileoItem
6 | import com.josedlpozo.galileo.core.GalileoPlugin
7 |
8 | internal class MoreGalileoPlugin(private val plugins: List = listOf()) : GalileoPlugin() {
9 | override fun item(context: Context): GalileoItem = MoreGalileoItem(plugins, context)
10 | }
--------------------------------------------------------------------------------
/galileo/src/main/res/drawable/round_shadow.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
11 |
12 |
17 |
18 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/drawable/realm_browser_ic_save_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/drawable/realm_browser_ic_vpn_key_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/galileo-core/src/main/java/com/josedlpozo/galileo/core/EmptyGalileoItem.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.core
2 |
3 | import android.content.Context
4 | import android.view.View
5 |
6 | val emptyGalileoItem = object : GalileoItem {
7 | override fun view(): View = throw IllegalAccessException()
8 | override val name: String = "EMPTY"
9 | override val icon: Int = 0
10 | override fun snapshot(): String = ""
11 | }
12 |
13 | class EmptyGalileoPlugin : GalileoPlugin() {
14 | override fun item(context: Context): GalileoItem = emptyGalileoItem
15 | }
--------------------------------------------------------------------------------
/galileo-no-op/src/main/java/com/josedlpozo/galileo/items/GalileoItem.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.items
2 |
3 | import android.view.View
4 |
5 | interface GalileoItem {
6 |
7 | val name: String
8 |
9 | val icon: Int
10 |
11 | fun snapshot(): String
12 |
13 | fun view(): View
14 |
15 | }
16 |
17 | val emptyGalileoItem = object : GalileoItem {
18 | override fun view(): View = throw IllegalAccessException()
19 | override val name: String = "EMPTY"
20 | override val icon: Int = 0
21 | override fun snapshot(): String = ""
22 | }
--------------------------------------------------------------------------------
/galileo/src/main/res/drawable/ic_developer_board.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/galileo-preferator/src/main/res/drawable/ic_more_vert_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/galileo-preferator/src/main/res/drawable/ic_developer_board.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/drawable/realm_browser_ic_information_outline_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/docs/_sass/cloudcannon.scss:
--------------------------------------------------------------------------------
1 | .editor-link {
2 | display: none;
3 | float: right;
4 | margin-top: 0;
5 | border: 0;
6 | border-radius: 2px;
7 | box-sizing: border-box;
8 | font-size: 2rem;
9 | text-decoration: none;
10 | padding: 10px 15px;
11 | margin: 0;
12 | font-size: 18px;
13 | cursor: pointer;
14 | background-color: #f7e064;
15 | color: #333;
16 | box-shadow: 1px 1px 5px 0 rgba(0, 0, 0, 0.2);
17 |
18 | &:hover {
19 | background-color: #f4d525;
20 | color: #333;
21 | }
22 | }
23 |
24 | .cms-editor-active .editor-link {
25 | display: inline-block;
26 | }
--------------------------------------------------------------------------------
/galileo-preferator/src/main/res/layout/item_editor_int.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/galileo-remoteconfig/src/main/res/drawable/ic_developer_board.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/galileo-grid/src/main/java/com/josedlpozo/galileo/grid/GridGalileoItem.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.grid
2 |
3 | import android.content.Context
4 | import android.view.View
5 | import com.josedlpozo.galileo.core.GalileoItem
6 |
7 | class GridGalileoItem(private val context: Context) :
8 | GalileoItem {
9 |
10 | private val view: View by lazy { GridView(context) }
11 |
12 | override val name: String = "Grid"
13 |
14 | override val icon: Int = R.drawable.ic_qs_grid_on
15 |
16 | override fun snapshot(): String = ""
17 |
18 | override fun view(): View = view
19 | }
--------------------------------------------------------------------------------
/galileo-preferator/src/main/res/layout/item_editor_float.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/drawable/realm_browser_ic_information_outline_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/galileo/src/main/res/drawable/ic_search.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/res/drawable/ic_qs_colorpicker_off.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/res/drawable/ic_qs_colorpicker_on.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/drawable/realm_browser_ic_search_white_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/galileo-chuck/src/main/res/drawable/chuck_ic_https_grey_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/galileo-preferator/src/main/res/layout/item_editor_string.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/galileo-chuck/src/main/java/com/josedlpozo/galileo/chuck/data/HttpTransactionRepository.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.chuck.data
2 |
3 | internal object HttpTransactionRepository {
4 |
5 | private const val MAX_SIZE = 300
6 |
7 | private val list : MutableList = mutableListOf()
8 |
9 | fun add(transaction: HttpTransaction) {
10 | list.add(transaction)
11 | if (list.size > MAX_SIZE) {
12 | list.drop(list.size - MAX_SIZE)
13 | }
14 | }
15 |
16 | fun all(): List = list
17 |
18 | fun find(id: Long) : HttpTransaction? = list.find { it.id == id }
19 | }
--------------------------------------------------------------------------------
/galileo-grid/src/main/res/drawable/ic_qs_grid_on.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
--------------------------------------------------------------------------------
/galileo-lynx/src/main/java/com/josedlpozo/galileo/lynx/LynxGalileoItem.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.lynx
2 |
3 | import android.content.Context
4 | import android.view.View
5 | import com.josedlpozo.galileo.core.GalileoItem
6 |
7 | class LynxGalileoItem(private val context: Context) :
8 | GalileoItem {
9 |
10 | private val view: GalileoLynx by lazy {
11 | GalileoLynx(
12 | context
13 | )
14 | }
15 |
16 | override val name: String = "Lynx"
17 |
18 | override val icon: Int = R.drawable.ic_adb
19 |
20 | override fun snapshot(): String = view.snapshot()
21 |
22 | override fun view(): View = view
23 | }
--------------------------------------------------------------------------------
/galileo-grid/src/main/java/com/josedlpozo/galileo/grid/GridGalileoPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.grid
2 |
3 | import android.content.Context
4 | import com.josedlpozo.galileo.core.GalileoFloatItem
5 | import com.josedlpozo.galileo.core.GalileoFloatPlugin
6 | import com.josedlpozo.galileo.core.GalileoItem
7 | import com.josedlpozo.galileo.core.GalileoPlugin
8 | import com.josedlpozo.galileo.grid.overlays.GridOverlay
9 |
10 | val gridPlugin: GalileoPlugin = object : GalileoFloatPlugin() {
11 |
12 | override fun item(context: Context): GalileoItem = GridGalileoItem(context)
13 |
14 | override fun floatItem(): GalileoFloatItem = GridOverlay()
15 |
16 | }
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/java/com/josedlpozo/galileo/colorpicker/ColorPickerGalileoPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.colorpicker
2 |
3 | import android.content.Context
4 | import com.josedlpozo.galileo.colorpicker.overlay.ColorPickerOverlay
5 | import com.josedlpozo.galileo.core.GalileoFloatItem
6 | import com.josedlpozo.galileo.core.GalileoFloatPlugin
7 | import com.josedlpozo.galileo.core.GalileoItem
8 |
9 | val colorPickerPlugin: GalileoFloatPlugin = object : GalileoFloatPlugin() {
10 |
11 | override fun item(context: Context): GalileoItem = PickerGalileoItem(context)
12 |
13 | override fun floatItem(): GalileoFloatItem = ColorPickerOverlay()
14 |
15 | }
--------------------------------------------------------------------------------
/galileo-realm/src/main/java/com/josedlpozo/galileo/realm/RealmGalileoItem.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.realm
2 |
3 | import android.content.Context
4 | import android.view.View
5 | import com.josedlpozo.galileo.core.GalileoItem
6 |
7 | class RealmGalileoItem(private val context: Context) : GalileoItem {
8 |
9 | private val view: RealmView by lazy {
10 | RealmView(
11 | context
12 | )
13 | }
14 |
15 | override val name: String = "RealmBrowser"
16 |
17 | override val icon: Int = R.drawable.realm_browser_ic_rb
18 |
19 | override fun snapshot(): String = view.snapshot()
20 |
21 | override fun view(): View = view
22 | }
--------------------------------------------------------------------------------
/galileo-remoteconfig/src/main/java/com/josedlpozo/galileo/remoteconfig/RemoteConfigGalileoItem.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.remoteconfig
2 |
3 | import android.content.Context
4 | import android.view.View
5 | import com.josedlpozo.galileo.core.GalileoItem
6 |
7 | class RemoteConfigGalileoItem(private val context: Context) :
8 | GalileoItem {
9 |
10 | private val view: RemoteConfigView by lazy { RemoteConfigView(context) }
11 |
12 | override val name: String = "RemoteConfig"
13 |
14 | override val icon: Int = R.drawable.ic_developer_board
15 |
16 | override fun snapshot(): String = view.snapshot()
17 |
18 | override fun view(): View = view
19 | }
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/java/com/josedlpozo/galileo/colorpicker/PickerGalileoItem.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.colorpicker
2 |
3 | import android.content.Context
4 | import android.view.View
5 | import com.josedlpozo.galileo.core.GalileoItem
6 |
7 | class PickerGalileoItem(private val context: Context) :
8 | GalileoItem {
9 |
10 | private val view: View by lazy {
11 | PickerView(
12 | context
13 | )
14 | }
15 |
16 | override val name: String = "Picker"
17 |
18 | override val icon: Int = R.drawable.ic_qs_colorpicker_on
19 |
20 | override fun snapshot(): String = ""
21 |
22 | override fun view(): View = view
23 | }
--------------------------------------------------------------------------------
/galileo-preferator/src/test/java/com/josedlpozo/galileo/preferator/SdkFilterTest.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.preferator
2 |
3 | import org.junit.Assert.assertFalse
4 | import org.junit.Assert.assertTrue
5 | import org.junit.Test
6 |
7 | class SdkFilterTest {
8 |
9 | @Test
10 | fun `given chuck_preferences as name, when calling isSdkPreference, then return true`() {
11 | assertTrue(SdkFilter.isSdkPreference("chuck_preferences"))
12 | }
13 |
14 | @Test
15 | fun `given com test galileo sample as name, when calling isSdkPreference, then return false`() {
16 | assertFalse(SdkFilter.isSdkPreference("com.test.galileo.sample"))
17 | }
18 | }
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/values/realm_browser_colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #eeeeee
4 | #666666
5 | #ffffff
6 |
7 | @color/realm_browser_dark_orange
8 | @color/realm_browser_light_orange
9 |
10 | #FCC397
11 | #F77C88
12 | #9A50A5
13 |
14 |
--------------------------------------------------------------------------------
/galileo-flow/src/main/java/com/josedlpozo/galileo/flow/FlowGalileoPlugin.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.flow
2 |
3 | import android.app.Application
4 | import android.content.Context
5 | import com.josedlpozo.galileo.core.GalileoItem
6 | import com.josedlpozo.galileo.core.GalileoPlugin
7 |
8 | val flowPlugin: GalileoPlugin = object : GalileoPlugin() {
9 |
10 | override fun init(application: Application) {
11 | super.init(application)
12 | application.registerActivityLifecycleCallbacks(
13 | FlowEventTry.flowLifeCycleCallback
14 | )
15 | }
16 |
17 | override fun item(context: Context): GalileoItem = FlowGalileoItem(context)
18 |
19 | }
--------------------------------------------------------------------------------
/galileo-lynx/src/main/res/drawable/ic_adb.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/docs/_includes/sidebar.html:
--------------------------------------------------------------------------------
1 |
21 |
--------------------------------------------------------------------------------
/galileo/src/main/res/layout/galileo_float.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
--------------------------------------------------------------------------------
/galileo-grid/src/main/res/drawable/ic_qs_grid_off.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
--------------------------------------------------------------------------------
/galileo-remoteconfig/src/main/java/com/josedlpozo/galileo/remoteconfig/RemoteConfigKey.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.remoteconfig
2 |
3 | internal open class RemoteConfigKey(open val key: String)
4 |
5 | internal open class RemoteConfigKeyBoolean(override val key: String, val value: Boolean): RemoteConfigKey(key)
6 | internal open class RemoteConfigKeyDouble(override val key: String, val value: Double): RemoteConfigKey(key)
7 | internal open class RemoteConfigKeyLong(override val key: String, val value: Long): RemoteConfigKey(key)
8 | internal open class RemoteConfigKeyString(override val key: String, val value: String): RemoteConfigKey(key)
9 |
10 | internal open class RemoteConfigKeyIgnore(override val key: String): RemoteConfigKey(key)
--------------------------------------------------------------------------------
/galileo-realm/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
8 |
12 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/menu/realm_browser_menu_objectactivity.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
10 |
11 |
16 |
--------------------------------------------------------------------------------
/docs/_sass/_mixins.scss:
--------------------------------------------------------------------------------
1 | @mixin flex-direction($values) {
2 | -webkit-flex-direction: $values;
3 | flex-direction: $values;
4 | }
5 |
6 | @mixin flex-flow($values) {
7 | -webkit-flex-flow: $values;
8 | flex-flow: $values;
9 | }
10 |
11 | @mixin align-items($values) {
12 | -webkit-align-items: $values;
13 | align-items: $values;
14 | }
15 |
16 | @mixin justify-content($values) {
17 | -webkit-justify-content: $values;
18 | justify-content: $values;
19 | }
20 |
21 | @mixin flex($values) {
22 | -webkit-flex: $values;
23 | flex: $values;
24 | }
25 |
26 | @mixin display-flex() {
27 | display: -webkit-flex;
28 | display: flex;
29 | }
30 |
31 | @mixin display-inline-flex() {
32 | display: -webkit-inline-flex;
33 | display: inline-flex;
34 | }
35 |
--------------------------------------------------------------------------------
/galileo-realm/src/androidTest/java/com/josedlpozo/galileo/realm/RealmMother.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.realm
2 |
3 | import io.realm.RealmObject
4 | import io.realm.annotations.PrimaryKey
5 |
6 | open class DeveloperModel(@PrimaryKey var id: Int = 0, var name: String = ""): RealmObject()
7 |
8 | open class TeamModel(@PrimaryKey var id: Int = 0, var name: String = ""): RealmObject()
9 |
10 | val developers = listOf(
11 | DeveloperModel(0, "fpulido"),
12 | DeveloperModel(1, "jmdelpozo"),
13 | DeveloperModel(2, "vfrancisco"),
14 | DeveloperModel(3, "jaznar"),
15 | DeveloperModel(4, "molmedo"),
16 | DeveloperModel(5, "efau")
17 | )
18 |
19 | val teams = listOf(
20 | TeamModel(0, "android"),
21 | TeamModel(1, "ios")
22 | )
23 |
--------------------------------------------------------------------------------
/galileo/src/main/java/com/josedlpozo/galileo/more/MoreGalileoItem.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.more
2 |
3 | import android.content.Context
4 | import android.view.View
5 | import com.josedlpozo.galileo.R
6 | import com.josedlpozo.galileo.config.GalileoInternalPlugin
7 | import com.josedlpozo.galileo.core.GalileoItem
8 |
9 | internal class MoreGalileoItem(private val plugins: List = listOf(), private val context: Context) :
10 | GalileoItem {
11 |
12 | private val view: MoreView by lazy { MoreView(plugins, context) }
13 |
14 | override val name: String = "More"
15 |
16 | override val icon: Int = R.drawable.ic_more
17 |
18 | override fun snapshot(): String = view.snapshot()
19 |
20 | override fun view(): View = view
21 | }
--------------------------------------------------------------------------------
/galileo/src/main/res/drawable/ic_share.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/galileo-chuck/src/main/res/drawable/ic_http_request.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
--------------------------------------------------------------------------------
/galileo-preferator/src/main/java/com/josedlpozo/galileo/preferator/view/PreferatorGalileoItem.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.preferator.view
2 |
3 | import android.content.Context
4 | import android.view.View
5 | import com.josedlpozo.galileo.core.GalileoItem
6 | import com.josedlpozo.galileo.preferator.R
7 | import com.josedlpozo.galileo.preferator.model.PreferatorConfig
8 |
9 | class PreferatorGalileoItem(private val context: Context) :
10 | GalileoItem {
11 |
12 | private val view: PreferatorView by lazy { PreferatorView(context).apply { config = PreferatorConfig() } }
13 |
14 | override val name: String = "Preferator"
15 |
16 | override val icon: Int = R.drawable.ic_developer_board
17 |
18 | override fun snapshot(): String = view.snapshot()
19 |
20 | override fun view(): View = view
21 | }
--------------------------------------------------------------------------------
/galileo-preferator/src/main/java/com/josedlpozo/galileo/preferator/model/Type.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.preferator.model
2 |
3 | internal enum class Type constructor(val typeName: String) {
4 | BOOLEAN("boolean"),
5 | INT("int"),
6 | LONG("long"),
7 | FLOAT("float"),
8 | STRING("string"),
9 | SET("set");
10 |
11 |
12 | companion object {
13 | fun of(value: Any?): Type = when (value) {
14 | is String -> STRING
15 | is Int -> INT
16 | is Boolean -> BOOLEAN
17 | is Long -> LONG
18 | is Float -> FLOAT
19 | is Set<*> -> SET
20 | null -> throw IllegalStateException("Value must not be null")
21 | else -> throw IllegalStateException("Not type matching found for " + value.javaClass.name)
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/galileo-chuck/src/main/java/com/josedlpozo/galileo/chuck/data/HttpHeader.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2017 Jeff Gilfelt.
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 | package com.josedlpozo.galileo.chuck.data
17 |
18 | data class HttpHeader internal constructor(val name: String, val value: String)
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | android.enableJetifier=true
10 | android.useAndroidX=true
11 | org.gradle.jvmargs=-Xmx1536m
12 | # When configured, Gradle will run in incubating parallel mode.
13 | # This option should only be used with decoupled projects. More details, visit
14 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
15 | # org.gradle.parallel=true
16 | VERSION_NAME=0.5.0
17 |
--------------------------------------------------------------------------------
/galileo-remoteconfig-no-op/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/galileo-preferator/src/main/java/com/josedlpozo/galileo/preferator/presenter/PreferatorPresenter.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.preferator.presenter
2 |
3 | import com.josedlpozo.galileo.preferator.data.PreferatorDataSource
4 | import com.josedlpozo.galileo.preferator.model.PreferatorConfig
5 | import com.josedlpozo.galileo.preferator.model.Preferences
6 |
7 | internal class PreferatorPresenter(private val view: View, private val dataSource: PreferatorDataSource) {
8 |
9 | var config: PreferatorConfig = PreferatorConfig()
10 | set(value) {
11 | field = value
12 | start()
13 | }
14 |
15 | interface View {
16 | fun render(preferences: Preferences)
17 | }
18 |
19 | fun start() = dataSource.get(config).also(view::render)
20 |
21 | fun snapshot(): String = dataSource.get(config).items.joinToString("\n\n")
22 |
23 | }
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/layout/realm_browser_ac_recycler.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
11 |
12 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/galileo/src/main/java/com/josedlpozo/galileo/parent/files/GalileoFileProvider.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 josedlpozo.
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 | package com.josedlpozo.galileo.parent.files
17 |
18 | import androidx.core.content.FileProvider
19 |
20 | internal class GalileoFileProvider : FileProvider()
--------------------------------------------------------------------------------
/docs/_api/books_get.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: /books/:id
3 | position: 1.3
4 | type: get
5 | description: Get Book
6 | parameters:
7 | - name:
8 | content:
9 | content_markdown: |-
10 | Returns a specific book from your collection
11 | left_code_blocks:
12 | - code_block: |-
13 | $.get("http://api.myapp.com/books/3", {
14 | token: "YOUR_APP_KEY",
15 | }, function(data) {
16 | alert(data);
17 | });
18 | title: jQuery
19 | language: javascript
20 | right_code_blocks:
21 | - code_block: |2-
22 | {
23 | "id": 3,
24 | "title": "The Book Thief",
25 | "score": 4.3,
26 | "dateAdded": "5/1/2015"
27 | }
28 | title: Response
29 | language: json
30 | - code_block: |2-
31 | {
32 | "error": true,
33 | "message": "Book doesn't exist"
34 | }
35 | title: Error
36 | language: json
37 | ---
--------------------------------------------------------------------------------
/galileo-grid/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Grid overlay
3 |
4 | Line colors
5 | Include keylines
6 | Include custom grid size
7 |
8 | Grid
9 |
10 | Accept
11 | Cancel
12 | Grid and keyline colors
13 |
14 | Grid
15 | Keyline
16 |
17 |
18 | Hide grid in %s
19 | Show grid in %s
20 |
21 |
--------------------------------------------------------------------------------
/galileo-sample/src/main/res/layout/activity_sample.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
22 |
23 |
--------------------------------------------------------------------------------
/galileo-no-op/src/main/java/com/josedlpozo/galileo/config/GalileoConfig.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.config
2 |
3 | import android.content.Context
4 | import com.josedlpozo.galileo.items.GalileoItem
5 |
6 | typealias GalileoPlugin = (Context) -> GalileoItem
7 |
8 | class GalileoConfig internal constructor(
9 | val plugins: List = listOf(),
10 | val openType: GalileoOpenType
11 | )
12 |
13 | sealed class GalileoOpenType {
14 | object Floating : GalileoOpenType()
15 | object Shaking : GalileoOpenType()
16 | object Both : GalileoOpenType()
17 | }
18 |
19 | class GalileoConfigBuilder {
20 |
21 | private val plugins: MutableList = mutableListOf()
22 |
23 | fun add(plugin: GalileoPlugin): GalileoConfigBuilder = this
24 |
25 | fun openType(openType: GalileoOpenType): GalileoConfigBuilder = this
26 |
27 | fun build(): GalileoConfig = GalileoConfig(plugins, GalileoOpenType.Shaking)
28 | }
--------------------------------------------------------------------------------
/galileo/src/main/res/layout/galileo_home_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
16 |
22 |
--------------------------------------------------------------------------------
/docs/_api/books_delete.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: /books/:id
3 | position: 1.5
4 | type: delete
5 | description: Deletes a book
6 | parameters:
7 | - name:
8 | content:
9 | content_markdown: |-
10 | Deletes a book in your collection.
11 | left_code_blocks:
12 | - code_block: |-
13 | $.ajax({
14 | "url": "http://api.myapp.com/books/3",
15 | "type": "DELETE",
16 | "data": {
17 | "token": "YOUR_APP_KEY"
18 | },
19 | "success": function(data) {
20 | alert(data);
21 | }
22 | });
23 | title: jQuery
24 | language: javascript
25 | right_code_blocks:
26 | - code_block: |2-
27 | {
28 | "id": 3,
29 | "status": "deleted"
30 | }
31 | title: Response
32 | language: json
33 | - code_block: |2-
34 | {
35 | "error": true,
36 | "message": "Book doesn't exist"
37 | }
38 | title: Error
39 | language: json
40 | ---
41 |
42 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: android
2 | jdk: oraclejdk8
3 |
4 | before_cache:
5 | - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
6 | - rm -rf $HOME/.gradle/caches/*/plugin-resolution/
7 |
8 | cache:
9 | directories:
10 | - $HOME/.gradle/caches/
11 | - $HOME/.gradle/wrapper/
12 | - $HOME/.android/build-cache
13 |
14 | android:
15 | licenses:
16 | - 'android-sdk-preview-license-.+'
17 | - 'android-sdk-license-.+'
18 | - 'google-gdk-license-.+'
19 | components:
20 | - tools
21 | - platform-tools
22 | - build-tools-29.0.2
23 | - build-tools-28.0.3
24 | - android-29
25 | before_install:
26 | - yes | sdkmanager "platforms;android-29"
27 |
28 | jobs:
29 | include:
30 | - stage: tests
31 | script:
32 | - ./gradlew jacocoTestReport
33 | - bash <(curl -s https://codecov.io/bash)
34 | - stage: deploy
35 | if: tag IS present
36 | script:
37 | - ./gradlew clean install
38 | - ./gradlew upload
39 |
--------------------------------------------------------------------------------
/galileo-flow/src/test/java/com/josedlpozo/galileo/flow/FlowEventDataSourceTest.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.flow
2 |
3 | import arrow.core.fix
4 | import com.josedlpozo.galileo.flow.model.Resumed
5 | import org.junit.Assert.assertEquals
6 | import org.junit.Assert.assertTrue
7 | import org.junit.Assert.fail
8 | import org.junit.Test
9 |
10 | class FlowEventDataSourceTest {
11 |
12 | @Test
13 | fun `given an event to save, when saving, then is saved successfully`() {
14 | val event = Resumed(1234, "", 0)
15 | FlowEventTry.dataSource.add(event)
16 |
17 | FlowEventTry.useCase.get().fix().fold({ fail() }, {
18 | assertEquals(listOf(event), it)
19 | })
20 | }
21 |
22 | @Test
23 | fun `given no events saved, when finding by id, then Try NoSuchElementException`() {
24 | FlowEventTry.useCase.get(1234).fix().fold({
25 | assertTrue(it is NoSuchElementException)
26 | }, { fail() })
27 | }
28 | }
--------------------------------------------------------------------------------
/galileo-preferator/src/main/res/layout/item_editor_boolean.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
16 |
22 |
--------------------------------------------------------------------------------
/galileo-sample/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
12 |
14 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/galileo-core/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 32dp
4 | 16dp
5 | 8dp
6 | 4dp
7 |
8 | 272dp
9 | 144dp
10 | 54dp
11 |
12 | 36dp
13 |
14 | 174dp
15 | 181dp
16 | 10dp
17 | 11dp
18 | 152dp
19 |
20 |
21 | 48dp
22 |
23 |
--------------------------------------------------------------------------------
/galileo-realm/src/test/java/com/josedlpozo/galileo/realm/RealmTestModel.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.realm
2 |
3 | import io.realm.RealmList
4 | import io.realm.RealmObject
5 | import java.util.Date
6 |
7 | open class RealmTestModel(
8 | var anInteger: Int = 0,
9 | var aBoxedInteger: Int? = null,
10 | var aLong: Long = 0,
11 | var aBoxedLong: Long? = null,
12 | var aShort: Short = 0,
13 | var aBoxedShort: Short? = null,
14 | var aByte: Byte = 0,
15 | var aBoxedByte: Byte? = null,
16 | var aDouble: Double = 0.toDouble(),
17 | var aBoxedDouble: Double? = null,
18 | var aFloat: Float = 0.toFloat(),
19 | var aBoxedFloat: Float? = null,
20 | var aBool: Boolean = false,
21 | var aBoxedBool: Boolean? = null,
22 | var aString: String? = null,
23 | var aBlob: ByteArray? = null,
24 | var aDate: Date? = null,
25 | var aStringList: RealmList? = null,
26 | var aRealmList: RealmList? = null,
27 | var anObject: RealmTestModel? = null
28 | ) : RealmObject()
--------------------------------------------------------------------------------
/galileo-chuck-no-op/src/main/java/com/josedlpozo/galileo/chuck/GalileoChuckInterceptor.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2015 Square, Inc, 2017 Jeff Gilfelt, 2018 josedlpozo.
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 | package com.josedlpozo.galileo.chuck
17 |
18 | import okhttp3.Interceptor
19 | import okhttp3.Response
20 |
21 | object GalileoChuckInterceptor : Interceptor {
22 |
23 | override fun intercept(chain: Interceptor.Chain): Response = chain.proceed(chain.request())
24 |
25 | }
--------------------------------------------------------------------------------
/galileo-remoteconfig/src/main/java/com/josedlpozo/galileo/remoteconfig/view/BooleanPrefEditor.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.remoteconfig.view
2 |
3 |
4 | import android.content.Context
5 | import android.util.AttributeSet
6 | import android.view.LayoutInflater
7 | import android.widget.FrameLayout
8 | import android.widget.Switch
9 | import com.josedlpozo.galileo.remoteconfig.R
10 | import com.josedlpozo.galileo.remoteconfig.RemoteConfigKeyBoolean
11 |
12 | internal class BooleanPrefEditor @JvmOverloads constructor(
13 | context: Context,
14 | attrs: AttributeSet? = null,
15 | defStyleAttr: Int = 0,
16 | key: RemoteConfigKeyBoolean
17 | ) : FrameLayout(context, attrs, defStyleAttr) {
18 |
19 | private val valueView: Switch
20 |
21 | init {
22 | LayoutInflater.from(context).inflate(R.layout.remote_config_boolean, this, true)
23 | valueView = findViewById(R.id.pref_value_boolean)
24 | valueView.isChecked = key.value
25 | valueView.text = key.key
26 | valueView.isClickable = false
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/galileo-no-op/src/main/java/com/josedlpozo/galileo/Galileo.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 josedlpozo.
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 | package com.josedlpozo.galileo
17 |
18 | import android.content.Context
19 | import com.josedlpozo.galileo.config.GalileoConfig
20 | import com.josedlpozo.galileo.config.GalileoConfigBuilder
21 |
22 | class Galileo(
23 | private val context: Context,
24 | config: GalileoConfig = GalileoConfigBuilder().build()
25 | ) {
26 |
27 | companion object
28 | }
--------------------------------------------------------------------------------
/galileo-preferator/src/main/java/com/josedlpozo/galileo/preferator/model/Model.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.preferator.model
2 |
3 | import android.content.SharedPreferences
4 | import java.io.Serializable
5 |
6 | typealias PreferenceItem = Pair
7 |
8 | internal data class Preference(val name: String, val items: List = listOf(), val sharedPreferences: SharedPreferences) {
9 | override fun toString(): String {
10 | return "===================================================\n" +
11 | "===================================================\n\n" +
12 | "${name.toUpperCase()} \n\n\n" + items.joinToString("\n", transform = { "${it.first} --> ${it.second}" }) + "\n\n" +
13 | "===================================================\n" +
14 | "===================================================\n"
15 | }
16 | }
17 |
18 | internal data class Preferences(val items: List = listOf())
19 |
20 | data class PreferatorConfig(val showingSdkPreferences: Boolean = false) : Serializable
--------------------------------------------------------------------------------
/galileo-remoteconfig/src/main/java/com/josedlpozo/galileo/remoteconfig/view/DoublePrefEditor.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.remoteconfig.view
2 |
3 |
4 | import android.content.Context
5 | import android.util.AttributeSet
6 | import android.view.LayoutInflater
7 | import android.widget.FrameLayout
8 | import android.widget.TextView
9 | import com.josedlpozo.galileo.remoteconfig.R
10 |
11 | internal class DoublePrefEditor @JvmOverloads constructor(
12 | context: Context,
13 | attrs: AttributeSet? = null,
14 | defStyleAttr: Int = 0,
15 | key: com.josedlpozo.galileo.remoteconfig.RemoteConfigKeyDouble
16 | ) : FrameLayout(context, attrs, defStyleAttr) {
17 |
18 | private val keyView: TextView
19 | private val valueView: TextView
20 |
21 | init {
22 | LayoutInflater.from(context).inflate(R.layout.remote_config_value, this, true)
23 |
24 | keyView = findViewById(R.id.tvKey)
25 | valueView = findViewById(R.id.tvValue)
26 |
27 | keyView.text = key.key
28 | valueView.text = key.value.toString()
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/docs/images/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/menu/realm_browser_menu_modelsactivity.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
11 |
12 |
17 |
18 |
23 |
24 |
--------------------------------------------------------------------------------
/galileo/src/main/java/com/josedlpozo/galileo/config/GalileoConfig.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.config
2 |
3 | import com.josedlpozo.galileo.config.GalileoOpenType.Floating
4 | import com.josedlpozo.galileo.core.GalileoPlugin
5 |
6 | class GalileoConfig internal constructor(
7 | val plugins: List = listOf(),
8 | val openType: GalileoOpenType
9 | )
10 |
11 | sealed class GalileoOpenType {
12 | object Floating : GalileoOpenType()
13 | object Shaking : GalileoOpenType()
14 | object Both : GalileoOpenType()
15 | }
16 |
17 | class GalileoConfigBuilder {
18 |
19 | private val plugins: MutableList = mutableListOf()
20 | private var openType: GalileoOpenType = Floating
21 |
22 | fun add(plugin: GalileoPlugin): GalileoConfigBuilder {
23 | plugins.add(plugin)
24 | return this
25 | }
26 |
27 | fun openType(openType: GalileoOpenType): GalileoConfigBuilder {
28 | this.openType = openType
29 | return this
30 | }
31 |
32 | fun build(): GalileoConfig = GalileoConfig(plugins, openType)
33 | }
--------------------------------------------------------------------------------
/galileo-chuck/src/main/java/com/josedlpozo/galileo/chuck/ui/TransactionListView.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.chuck.ui
2 |
3 | import android.content.Context
4 | import com.josedlpozo.galileo.chuck.data.HttpTransactionRepository
5 |
6 | internal class TransactionListView(context: Context) : androidx.recyclerview.widget.RecyclerView(context) {
7 |
8 | private val adapter: TransactionAdapter by lazy {
9 | TransactionAdapter {
10 | TransactionActivity.start(context, it.id)
11 | }
12 | }
13 |
14 | init {
15 | setAdapter(adapter)
16 | layoutManager = androidx.recyclerview.widget.LinearLayoutManager(context)
17 | addItemDecoration(
18 | androidx.recyclerview.widget.DividerItemDecoration(
19 | getContext(),
20 | androidx.recyclerview.widget.DividerItemDecoration.VERTICAL
21 | )
22 | )
23 |
24 | val items = HttpTransactionRepository.all()
25 | adapter.refresh(items)
26 | if (items.isNotEmpty()) scrollToPosition(items.size - 1)
27 | }
28 |
29 | }
--------------------------------------------------------------------------------
/galileo-sample/src/main/java/com/josedlpozo/galileo/sample/SecondActivity.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 josedlpozo.
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 | package com.josedlpozo.galileo.sample
17 |
18 | import android.os.Bundle
19 | import androidx.appcompat.app.AppCompatActivity
20 |
21 | class SecondActivity : AppCompatActivity() {
22 |
23 | override fun onCreate(savedInstanceState: Bundle?) {
24 | super.onCreate(savedInstanceState)
25 | setContentView(R.layout.activity_second)
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/galileo-remoteconfig/src/main/java/com/josedlpozo/galileo/remoteconfig/view/StringPrefEditor.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.remoteconfig.view
2 |
3 |
4 | import android.content.Context
5 | import android.util.AttributeSet
6 | import android.view.LayoutInflater
7 | import android.widget.FrameLayout
8 | import android.widget.TextView
9 | import com.josedlpozo.galileo.remoteconfig.R
10 | import com.josedlpozo.galileo.remoteconfig.RemoteConfigKeyString
11 |
12 | internal class StringPrefEditor @JvmOverloads constructor(
13 | context: Context,
14 | attrs: AttributeSet? = null,
15 | defStyleAttr: Int = 0,
16 | key: RemoteConfigKeyString
17 | ) : FrameLayout(context, attrs, defStyleAttr) {
18 |
19 | private val keyView: TextView
20 | private val valueView: TextView
21 |
22 | init {
23 | LayoutInflater.from(context).inflate(R.layout.remote_config_value, this, true)
24 |
25 | keyView = findViewById(R.id.tvKey)
26 | valueView = findViewById(R.id.tvValue)
27 |
28 | keyView.text = key.key
29 | valueView.text = key.value
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/galileo-remoteconfig/src/main/res/layout/remote_config_value.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
16 |
17 |
24 |
--------------------------------------------------------------------------------
/galileo-remoteconfig/src/main/java/com/josedlpozo/galileo/remoteconfig/view/LongPrefEditor.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.remoteconfig.view
2 |
3 |
4 | import android.content.Context
5 | import android.util.AttributeSet
6 | import android.view.LayoutInflater
7 | import android.widget.FrameLayout
8 | import android.widget.TextView
9 | import com.josedlpozo.galileo.remoteconfig.R
10 | import com.josedlpozo.galileo.remoteconfig.RemoteConfigKeyLong
11 |
12 | internal class LongPrefEditor @JvmOverloads constructor(
13 | context: Context,
14 | attrs: AttributeSet? = null,
15 | defStyleAttr: Int = 0,
16 | key: RemoteConfigKeyLong
17 | ) : FrameLayout(context, attrs, defStyleAttr) {
18 |
19 | private val keyView: TextView
20 | private val valueView: TextView
21 |
22 | init {
23 | LayoutInflater.from(context).inflate(R.layout.remote_config_value, this, true)
24 |
25 | keyView = findViewById(R.id.tvKey)
26 | valueView = findViewById(R.id.tvValue)
27 |
28 | keyView.text = key.key
29 | valueView.text = key.value.toString()
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/docs/_documentation/getting_started.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: Getting Started
3 | position: 1
4 | parameters:
5 | - name:
6 | content:
7 | content_markdown: |-
8 | Welcome to Galileo.
9 |
10 | Android library that helps you to debug applications directly from your android device. Galileo works based on plugins and it is easy to be extensibled, we are open for new plugins!
11 |
12 | This API is still under development and will evolve.
13 |
14 | Versions are deployed to jCenter, you need this in your gradle files:
15 |
16 | - code_block: |-
17 | repositories {
18 | jcenter()
19 | }
20 | title: jCenter
21 | language: groovy
22 |
23 | - code_block: |-
24 | debugImplementation "com.josedlpozo.galileo:galileo:$GALILEO_VERSION"
25 | releaseImplementation "com.josedlpozo.galileo:galileo-no-op:$GALILEO_VERSION"
26 | title: jCenter
27 | language: groovy
28 |
29 |
30 | left_code_blocks:
31 | - code_block:
32 | title:
33 | language:
34 | right_code_blocks:
35 | - code_block:
36 | title:
37 | language:
38 | ---
--------------------------------------------------------------------------------
/galileo-preferator/src/main/java/com/josedlpozo/galileo/preferator/view/editor/BooleanPrefEditor.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.preferator.view.editor
2 |
3 |
4 | import android.content.Context
5 | import android.util.AttributeSet
6 | import android.view.LayoutInflater
7 | import android.widget.FrameLayout
8 | import android.widget.Switch
9 | import com.josedlpozo.galileo.preferator.R
10 |
11 | internal class BooleanPrefEditor @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0, listener: (Boolean) -> Unit = {}) : FrameLayout(context, attrs, defStyleAttr) {
12 |
13 | private val valueView: Switch
14 |
15 | var value: Boolean
16 | get() = valueView.isChecked
17 | set(value) {
18 | valueView.isChecked = value
19 | }
20 |
21 | init {
22 | LayoutInflater.from(context).inflate(R.layout.item_editor_boolean, this, true)
23 | valueView = findViewById(R.id.pref_value_boolean)
24 | valueView.setOnCheckedChangeListener { _, isChecked ->
25 | listener(isChecked)
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/galileo-core/src/main/res/values/integers.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 | 8
21 | 8
22 |
23 | 20
24 | @integer/galileo_color_picker_sample_width
25 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/layout/realm_browser_ac_realm_object.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
13 |
14 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/docs/_api/books_add.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: /books
3 | position: 1.1
4 | type: post
5 | description: Create Book
6 | parameters:
7 | - name: title
8 | content: The title for the book
9 | - name: score
10 | content: The book's score between 0 and 5
11 | content_markdown: |-
12 | The book will automatically be added to your reading list
13 | {: .success}
14 |
15 | Adds a book to your collection.
16 | left_code_blocks:
17 | - code_block: |-
18 | $.post("http://api.myapp.com/books/", {
19 | "token": "YOUR_APP_KEY",
20 | "title": "The Book Thief",
21 | "score": 4.3
22 | }, function(data) {
23 | alert(data);
24 | });
25 | title: jQuery
26 | language: javascript
27 | right_code_blocks:
28 | - code_block: |-
29 | {
30 | "id": 3,
31 | "title": "The Book Thief",
32 | "score": 4.3,
33 | "dateAdded": "5/1/2015"
34 | }
35 | title: Response
36 | language: json
37 | - code_block: |-
38 | {
39 | "error": true,
40 | "message": "Invalid score"
41 | }
42 | title: Error
43 | language: json
44 | ---
45 |
46 |
47 |
--------------------------------------------------------------------------------
/galileo-flow/src/main/java/com/josedlpozo/galileo/flow/model/BundleItem.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 josedlpozo.
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 | package com.josedlpozo.galileo.flow.model
17 |
18 | import android.os.Bundle
19 |
20 | internal data class BundleItem(val key: String, val value: Any)
21 |
22 | internal val Bundle?.items: List
23 | get() = this?.let { bundle ->
24 | bundle.keySet().map { key ->
25 | bundle[key]?.let {
26 | BundleItem(key, it)
27 | }
28 | }.filterNotNull()
29 | } ?: listOf()
--------------------------------------------------------------------------------
/docs/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 CloudCannon
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/galileo-flow/src/main/java/com/josedlpozo/galileo/flow/ViewExtensions.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.flow
2 |
3 | import android.graphics.Typeface
4 | import android.graphics.drawable.Drawable
5 | import android.text.Spannable
6 | import android.text.SpannableStringBuilder
7 | import android.text.style.StyleSpan
8 | import android.view.View
9 | import androidx.annotation.DimenRes
10 |
11 | internal fun Drawable.tint(color: Int): Drawable {
12 | mutate()
13 | setColorFilter(color, android.graphics.PorterDuff.Mode.SRC_ATOP)
14 | setBounds(0, 0, intrinsicWidth, intrinsicHeight)
15 | return this
16 | }
17 |
18 | internal fun View.padding(@DimenRes dimen: Int) {
19 | val padding = context.resources.getDimension(dimen).toInt()
20 | setPadding(padding, padding, padding, padding)
21 | }
22 |
23 | internal fun SpannableStringBuilder.toBold(text: String): SpannableStringBuilder {
24 | val start = this.indexOf(text)
25 | if (start == -1) return this
26 | setSpan(
27 | StyleSpan(Typeface.BOLD),
28 | start,
29 | start + text.length,
30 | Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
31 | )
32 | return this
33 | }
--------------------------------------------------------------------------------
/docs/_api/books_update.md:
--------------------------------------------------------------------------------
1 | ---
2 | title: /books/:id
3 | position: 1.4
4 | type: put
5 | description: Update Book
6 | parameters:
7 | - name: title
8 | content: The title for the book
9 | - name: score
10 | content: The book's score between 0 and 5
11 | content_markdown: |-
12 | Update an existing book in your collection.
13 | left_code_blocks:
14 | - code_block: |-
15 | $.ajax({
16 | "url": "http://api.myapp.com/books/3",
17 | "type": "PUT",
18 | "data": {
19 | "token": "YOUR_APP_KEY",
20 | "score": 5.0,
21 | "title": "The Book Stealer"
22 | },
23 | "success": function(data) {
24 | alert(data);
25 | }
26 | });
27 | title: jQuery
28 | language: javascript
29 | right_code_blocks:
30 | - code_block: |2-
31 | {
32 | "id": 3,
33 | "title": "The Book Stealer",
34 | "score": 5,
35 | "dateAdded": "5/1/2015"
36 | }
37 | title: Response
38 | language: json
39 | - code_block: |2-
40 | {
41 | "error": true,
42 | "message": "Book doesn't exist"
43 | }
44 | title: Error
45 | language: json
46 | ---
--------------------------------------------------------------------------------
/galileo-chuck/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Share
3 | Share as text
4 | Share as curl command
5 | Yes
6 | No
7 | (encoded or binary body omitted)
8 | Overview
9 | Request
10 | Response
11 | URL
12 | Method
13 | Protocol
14 | Status
15 | SSL
16 | Request time
17 | Response time
18 | Duration
19 | Request size
20 | Response size
21 | Total size
22 |
23 |
--------------------------------------------------------------------------------
/galileo-lynx/src/main/java/com/josedlpozo/galileo/lynx/GalileoLynx.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.lynx
2 |
3 | import android.content.Context
4 | import android.view.View
5 | import android.widget.ImageButton
6 | import com.github.pedrovgs.lynx.LynxConfig
7 | import com.github.pedrovgs.lynx.LynxView
8 | import com.github.pedrovgs.lynx.model.Trace
9 | import com.github.pedrovgs.lynx.model.TraceLevel.ERROR
10 |
11 | internal class GalileoLynx(context: Context) : LynxView(context) {
12 |
13 | private val oldTraces: MutableList = mutableListOf()
14 |
15 | private val shareButton: ImageButton by lazy { findViewById(R.id.ib_share) as ImageButton }
16 |
17 | init {
18 | lynxConfig = LynxConfig().apply {
19 | filterTraceLevel = ERROR
20 | samplingRate = 200
21 | }
22 |
23 | shareButton.visibility = View.GONE
24 | }
25 |
26 | override fun showTraces(traces: MutableList?, removedTraces: Int) {
27 | super.showTraces(traces, removedTraces)
28 | traces?.let {
29 | oldTraces.clear()
30 | oldTraces.addAll(it)
31 | }
32 | }
33 |
34 | fun snapshot(): String = oldTraces.joinToString("\n")
35 |
36 | }
--------------------------------------------------------------------------------
/galileo-flow/src/test/java/com/josedlpozo/galileo/flow/FlowEventModelMapperTest.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.flow
2 |
3 | import com.josedlpozo.galileo.flow.model.Created
4 | import com.josedlpozo.galileo.flow.model.CreatedModel
5 | import com.josedlpozo.galileo.flow.model.Destroyed
6 | import com.josedlpozo.galileo.flow.model.DestroyedModel
7 | import com.josedlpozo.galileo.flow.model.Resumed
8 | import com.josedlpozo.galileo.flow.model.ResumedModel
9 | import com.josedlpozo.galileo.flow.model.toModel
10 | import org.junit.Assert.assertTrue
11 | import org.junit.Test
12 |
13 | class FlowEventModelMapperTest {
14 |
15 | @Test
16 | fun `given a Resumed FlowEvent, when mapped, then return a ResumedModel FlowEventModel`() {
17 | assertTrue(Resumed(123, "", 0).toModel() is ResumedModel)
18 | }
19 |
20 | @Test
21 | fun `given a Destroy FlowEvent, when mapped, then return a DestroyedModel FlowEventModel`() {
22 | assertTrue(Destroyed(123, "", 0).toModel() is DestroyedModel)
23 | }
24 |
25 | @Test
26 | fun `given a Created FlowEvent, when mapped, then return a CreatedModel FlowEventModel`() {
27 | assertTrue(Created(123, "", 0, listOf()).toModel() is CreatedModel)
28 | }
29 | }
--------------------------------------------------------------------------------
/galileo/src/main/java/com/josedlpozo/galileo/parent/extensions/ViewExtensions.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.parent.extensions
2 |
3 | import android.graphics.Typeface
4 | import android.graphics.drawable.Drawable
5 | import androidx.annotation.DimenRes
6 | import android.text.Spannable
7 | import android.text.SpannableStringBuilder
8 | import android.text.style.StyleSpan
9 | import android.view.View
10 |
11 | internal fun Drawable.tint(color: Int) : Drawable {
12 | mutate()
13 | setColorFilter(color, android.graphics.PorterDuff.Mode.SRC_ATOP)
14 | setBounds(0, 0, intrinsicWidth, intrinsicHeight)
15 | return this
16 | }
17 |
18 | internal fun View.padding(@DimenRes dimen: Int) {
19 | val padding = context.resources.getDimension(dimen).toInt()
20 | setPadding(padding, padding, padding, padding)
21 | }
22 |
23 | internal fun SpannableStringBuilder.toBold(text: String): SpannableStringBuilder {
24 | val start = this.indexOf(text)
25 | if (start == -1) return this
26 | setSpan(StyleSpan(Typeface.BOLD), start, start + text.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
27 | return this
28 | }
29 |
30 | internal fun View?.show() = this?.apply { visibility = View.VISIBLE }
31 |
32 | internal fun View?.hide() = this?.apply { visibility = View.GONE }
--------------------------------------------------------------------------------
/galileo-flow/src/main/java/com/josedlpozo/galileo/flow/FlowGalileoItem.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.flow
2 |
3 | import android.content.Context
4 | import android.view.View
5 | import arrow.core.fix
6 | import arrow.core.getOrElse
7 | import com.josedlpozo.galileo.core.GalileoItem
8 | import com.josedlpozo.galileo.flow.model.Created
9 | import java.text.SimpleDateFormat
10 | import java.util.*
11 |
12 | class FlowGalileoItem(private val context: Context) : GalileoItem {
13 |
14 | private val view: View by lazy { FlowView(context) }
15 |
16 | override fun view(): View = view
17 |
18 | override val name: String = "Flow"
19 |
20 | override val icon: Int = R.drawable.ic_activity
21 |
22 | override fun snapshot(): String = FlowEventTry.useCase.get().fix().map {
23 | val formatter = SimpleDateFormat("HH:mm dd-MM-yyyy", Locale.getDefault())
24 | it.joinToString("\n", transform = {
25 | "${formatter.format(it.created)} ${it.name.toUpperCase()} ${it.activityName}" + when (it) {
26 | is Created -> "\n" + it.extras.joinToString(
27 | "\n",
28 | transform = { "${it.key} --> ${it.value}" }) + "\n"
29 | else -> ""
30 | } + "\n"
31 | })
32 | }.getOrElse { "" }
33 | }
--------------------------------------------------------------------------------
/galileo/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
13 |
18 |
19 |
24 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/galileo-grid/src/main/java/com/josedlpozo/galileo/grid/ui/DesignerTools.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 The CyanogenMod Project
3 | *
4 | * Modified Work: Copyright (c) 2018 fr4nk1
5 | *
6 | * Modified Work: Copyright (c) 2018 josedlpozo
7 | *
8 | * Licensed under the Apache License, Version 2.0 (the "License");
9 | * you may not use this file except in compliance with the License.
10 | * You may obtain a copy of the License at
11 | *
12 | * http://www.apache.org/licenses/LICENSE-2.0
13 | *
14 | * Unless required by applicable law or agreed to in writing, software
15 | * distributed under the License is distributed on an "AS IS" BASIS,
16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 | * See the License for the specific language governing permissions and
18 | * limitations under the License.
19 | */
20 | package com.josedlpozo.galileo.grid.ui
21 |
22 | import android.content.Context
23 | import com.josedlpozo.galileo.grid.utils.PreferenceUtils
24 |
25 | internal object DesignerTools {
26 |
27 | fun gridOverlayOn(context: Context): Boolean =
28 | PreferenceUtils.GridPreferences.getGridEnabled(context, false)
29 |
30 | fun setGridOverlayOn(context: Context, value: Boolean) {
31 | PreferenceUtils.GridPreferences.setGridEnabled(context, value)
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/galileo/src/main/java/com/josedlpozo/galileo/parent/preparator/PluginsPreparator.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.parent.preparator
2 |
3 | import com.josedlpozo.galileo.config.ConfigRepository
4 | import com.josedlpozo.galileo.config.GalileoConfig
5 | import com.josedlpozo.galileo.config.GalileoInternalConfig
6 | import com.josedlpozo.galileo.config.GalileoInternalPlugin
7 | import com.josedlpozo.galileo.more.MoreGalileoItem
8 | import com.josedlpozo.galileo.more.MoreGalileoPlugin
9 | import com.josedlpozo.galileo.more.MoreView
10 |
11 | internal object PluginsPreparator {
12 | private const val MAX_ITEMS = 5
13 | private const val MAX_SIZE_LIST = MAX_ITEMS - 1
14 |
15 | fun prepare(config: GalileoConfig) {
16 | ConfigRepository.internalConfig = if (config.plugins.size > MAX_ITEMS) {
17 | val first = config.plugins.take(MAX_SIZE_LIST).map { GalileoInternalPlugin(System.nanoTime(), it) }
18 | val more = config.plugins.drop(MAX_SIZE_LIST).mapIndexed { index, plugin -> GalileoInternalPlugin(index.toLong(), plugin) }
19 | ConfigRepository.more = more
20 | GalileoInternalConfig(first + GalileoInternalPlugin(System.nanoTime(), MoreGalileoPlugin(more)))
21 | } else GalileoInternalConfig(config.plugins.map { GalileoInternalPlugin(System.nanoTime(), it) })
22 | }
23 | }
--------------------------------------------------------------------------------
/galileo-core/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #ff8a80
4 | #c85a54
5 | #ff8a80
6 |
7 | #FFEB3B
8 | #4CAF50
9 | #F44336
10 |
11 | #4CAF50
12 | #9E9E9E
13 | #F44336
14 | #B71C1C
15 | #FF9800
16 | #0D47A1
17 |
18 | #dadada
19 |
20 | #ffffff
21 |
22 | #536dfe
23 | #0097a7
24 |
25 | #803e51b5
26 | #809c25b0
27 |
28 |
--------------------------------------------------------------------------------
/galileo-chuck/src/main/java/com/josedlpozo/galileo/chuck/ui/TransactionGalileoItem.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.chuck.ui
2 |
3 | import android.content.Context
4 | import android.view.View
5 | import com.josedlpozo.galileo.chuck.R
6 | import com.josedlpozo.galileo.chuck.data.HttpTransactionRepository
7 | import com.josedlpozo.galileo.chuck.support.FormatUtils
8 | import com.josedlpozo.galileo.core.GalileoItem
9 |
10 | class TransactionGalileoItem(private val context: Context) :
11 | GalileoItem {
12 |
13 | private val view: TransactionListView by lazy { TransactionListView(context) }
14 |
15 | override val name: String = "Chuck"
16 |
17 | override val icon: Int = R.drawable.ic_http_request
18 |
19 | override fun snapshot(): String {
20 | val transactions = HttpTransactionRepository.all()
21 | return transactions.joinToString("\n\n\n\n", transform = {
22 | "===================================================\n" +
23 | "===================================================\n\n" +
24 | FormatUtils.getShareText(it) + "\n\n" +
25 | "===================================================\n" +
26 | "===================================================\n"
27 | }, postfix = "\n\n")
28 | }
29 |
30 | override fun view(): View = view
31 | }
--------------------------------------------------------------------------------
/galileo-chuck/src/main/java/com/josedlpozo/galileo/chuck/support/SearchHighlighter.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.chuck.support
2 |
3 | import android.graphics.Color
4 | import android.text.SpannableStringBuilder
5 | import android.text.Spanned
6 | import android.text.style.BackgroundColorSpan
7 |
8 |
9 | object SearchHighlighter {
10 |
11 | fun format(text: String, criteria: String): SpannableStringBuilder {
12 | val startIndexes = indexesOf(text, criteria)
13 | return applySpannable(text, startIndexes, criteria.length)
14 | }
15 |
16 | private fun indexesOf(text: String, criteria: String): List {
17 | val startPositions = mutableListOf()
18 | var index = text.indexOf(criteria)
19 | if (index == -1) return startPositions
20 | do {
21 | startPositions.add(index)
22 | index = text.indexOf(criteria, index + 1)
23 | } while (index >= 0)
24 | return startPositions
25 | }
26 |
27 | private fun applySpannable(text: String, indexes: List, length: Int): SpannableStringBuilder {
28 | val builder = SpannableStringBuilder(text)
29 | for (position in indexes) {
30 | builder.setSpan(BackgroundColorSpan(Color.YELLOW), position,
31 | position + length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
32 | }
33 | return builder
34 | }
35 |
36 | }
--------------------------------------------------------------------------------
/galileo-grid/src/main/res/layout/card_layout.xml:
--------------------------------------------------------------------------------
1 |
18 |
28 |
29 |
30 |
31 |
35 |
36 |
--------------------------------------------------------------------------------
/galileo-colorpicker/src/main/res/layout/card_layout.xml:
--------------------------------------------------------------------------------
1 |
18 |
28 |
29 |
30 |
31 |
35 |
36 |
--------------------------------------------------------------------------------
/galileo/src/main/res/layout/item_more.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
17 |
18 |
29 |
30 |
--------------------------------------------------------------------------------
/docs/search.html:
--------------------------------------------------------------------------------
1 | ---
2 | title: Search
3 | sitemap: false
4 | permalink: /search/
5 | ---
6 |
7 |
8 |
Search Results
9 |
10 |
Loading results for ""
11 |
12 |
13 |
14 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/galileo-flow-no-op/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'maven-publish'
5 | apply plugin: 'com.github.dcendents.android-maven'
6 | apply plugin: 'com.jfrog.bintray'
7 |
8 | ext {
9 | bintrayRepo = 'maven'
10 | bintrayName = 'galileo-flow-no-op'
11 |
12 | publishedGroupId = 'com.josedlpozo.galileo.flow'
13 | libraryName = 'galileo-flow-no-op'
14 | artifact = 'galileo-flow-no-op'
15 |
16 | libraryDescription = 'No op Flow plugin for Galileo'
17 |
18 | siteUrl = 'https://github.com/josedlpozo/Galileo'
19 | gitUrl = 'https://github.com/josedlpozo/Galileo.git'
20 |
21 | libraryVersion = VERSION_NAME
22 |
23 | developerId = 'josedlpozo'
24 | developerName = 'Jose del Pozo'
25 | developerEmail = 'josedlpozo@gmail.com'
26 |
27 | licenseName = 'The Apache Software License, Version 2.0'
28 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
29 | allLicenses = ["Apache-2.0"]
30 | }
31 |
32 | android {
33 | compileSdkVersion 29
34 |
35 | defaultConfig {
36 | minSdkVersion 16
37 | targetSdkVersion 29
38 | versionName VERSION_NAME
39 | }
40 | }
41 |
42 | dependencies {
43 | implementation project(':galileo-core')
44 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
45 | }
46 |
47 | apply from: '../upload_library.gradle'
--------------------------------------------------------------------------------
/galileo-grid-no-op/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'maven-publish'
5 | apply plugin: 'com.github.dcendents.android-maven'
6 | apply plugin: 'com.jfrog.bintray'
7 |
8 | ext {
9 | bintrayRepo = 'maven'
10 | bintrayName = 'galileo-grid-no-op'
11 |
12 | publishedGroupId = 'com.josedlpozo.galileo.grid'
13 | libraryName = 'galileo-grid-no-op'
14 | artifact = 'galileo-grid-no-op'
15 |
16 | libraryDescription = 'No op Grid plugin for Galileo'
17 |
18 | siteUrl = 'https://github.com/josedlpozo/Galileo'
19 | gitUrl = 'https://github.com/josedlpozo/Galileo.git'
20 |
21 | libraryVersion = VERSION_NAME
22 |
23 | developerId = 'josedlpozo'
24 | developerName = 'Jose del Pozo'
25 | developerEmail = 'josedlpozo@gmail.com'
26 |
27 | licenseName = 'The Apache Software License, Version 2.0'
28 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
29 | allLicenses = ["Apache-2.0"]
30 | }
31 |
32 | android {
33 | compileSdkVersion 29
34 |
35 | defaultConfig {
36 | minSdkVersion 16
37 | targetSdkVersion 29
38 | versionName VERSION_NAME
39 | }
40 | }
41 |
42 | dependencies {
43 | implementation project(':galileo-core')
44 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
45 | }
46 |
47 | apply from: '../upload_library.gradle'
--------------------------------------------------------------------------------
/galileo-lynx-no-op/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'maven-publish'
5 | apply plugin: 'com.github.dcendents.android-maven'
6 | apply plugin: 'com.jfrog.bintray'
7 |
8 | ext {
9 | bintrayRepo = 'maven'
10 | bintrayName = 'galileo-lynx-no-op'
11 |
12 | publishedGroupId = 'com.josedlpozo.galileo.lynx'
13 | libraryName = 'galileo-lynx-no-op'
14 | artifact = 'galileo-lynx-no-op'
15 |
16 | libraryDescription = 'No op Lynx plugin for Galileo'
17 |
18 | siteUrl = 'https://github.com/josedlpozo/Galileo'
19 | gitUrl = 'https://github.com/josedlpozo/Galileo.git'
20 |
21 | libraryVersion = VERSION_NAME
22 |
23 | developerId = 'josedlpozo'
24 | developerName = 'Jose del Pozo'
25 | developerEmail = 'josedlpozo@gmail.com'
26 |
27 | licenseName = 'The Apache Software License, Version 2.0'
28 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
29 | allLicenses = ["Apache-2.0"]
30 | }
31 |
32 | android {
33 | compileSdkVersion 29
34 |
35 | defaultConfig {
36 | minSdkVersion 16
37 | targetSdkVersion 29
38 | versionName VERSION_NAME
39 | }
40 | }
41 |
42 | dependencies {
43 | implementation project(':galileo-core')
44 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
45 | }
46 |
47 | apply from: '../upload_library.gradle'
--------------------------------------------------------------------------------
/galileo-grid/src/main/res/layout/dialog_color_picker.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
22 |
23 |
27 |
28 |
33 |
34 |
--------------------------------------------------------------------------------
/galileo-realm-no-op/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'maven-publish'
5 | apply plugin: 'com.github.dcendents.android-maven'
6 | apply plugin: 'com.jfrog.bintray'
7 |
8 | ext {
9 | bintrayRepo = 'maven'
10 | bintrayName = 'galileo-realm-no-op'
11 |
12 | publishedGroupId = 'com.josedlpozo.galileo.realm'
13 | libraryName = 'galileo-realm-no-op'
14 | artifact = 'galileo-realm-no-op'
15 |
16 | libraryDescription = 'No op Realm plugin for Galileo'
17 |
18 | siteUrl = 'https://github.com/josedlpozo/Galileo'
19 | gitUrl = 'https://github.com/josedlpozo/Galileo.git'
20 |
21 | libraryVersion = VERSION_NAME
22 |
23 | developerId = 'josedlpozo'
24 | developerName = 'Jose del Pozo'
25 | developerEmail = 'josedlpozo@gmail.com'
26 |
27 | licenseName = 'The Apache Software License, Version 2.0'
28 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
29 | allLicenses = ["Apache-2.0"]
30 | }
31 |
32 | android {
33 | compileSdkVersion 29
34 |
35 | defaultConfig {
36 | minSdkVersion 16
37 | targetSdkVersion 29
38 | versionName VERSION_NAME
39 | }
40 | }
41 |
42 | dependencies {
43 | implementation project(':galileo-core')
44 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
45 | }
46 |
47 | apply from: '../upload_library.gradle'
--------------------------------------------------------------------------------
/galileo-core/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
12 |
13 |
16 |
17 |
20 |
21 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/galileo-core/src/main/java/com/josedlpozo/galileo/core/GalileoFloatItem.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.core
2 |
3 | import android.app.Activity
4 | import android.content.Context
5 | import android.view.View
6 | import android.view.ViewGroup
7 |
8 | abstract class GalileoFloatItem : FloatItem {
9 |
10 | lateinit var view: View
11 | lateinit var layoutParams: ViewGroup.LayoutParams
12 |
13 | override fun onCreate(context: Context) {
14 | onViewCreated(view)
15 | }
16 |
17 | override fun onResume(activity: Activity) {
18 | view.windowToken?.let { removeView() }
19 | activity.window.addContentView(view, layoutParams)
20 | }
21 |
22 | override fun onPaused() {
23 | removeView()
24 | }
25 |
26 | open fun show() {
27 | view.show()
28 | }
29 |
30 | open fun hide() {
31 | view.hide()
32 | }
33 |
34 | fun getApplicationName(context: Context): String {
35 | val applicationInfo = context.applicationInfo
36 | val stringId = applicationInfo.labelRes
37 | return if (stringId == 0) applicationInfo.nonLocalizedLabel.toString() else context.getString(
38 | stringId
39 | )
40 | }
41 |
42 | private fun View?.show() = this?.apply { visibility = View.VISIBLE }
43 |
44 | private fun View?.hide() = this?.apply { visibility = View.GONE }
45 |
46 | private fun removeView() {
47 | (view.parent as? ViewGroup)?.removeView(view)
48 | }
49 | }
--------------------------------------------------------------------------------
/galileo-preferator-no-op/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'maven-publish'
5 | apply plugin: 'com.github.dcendents.android-maven'
6 | apply plugin: 'com.jfrog.bintray'
7 |
8 | ext {
9 | bintrayRepo = 'maven'
10 | bintrayName = 'galileo-preferator-no-op'
11 |
12 | publishedGroupId = 'com.josedlpozo.galileo.preferator'
13 | libraryName = 'galileo-preferator-no-op'
14 | artifact = 'galileo-preferator-no-op'
15 |
16 | libraryDescription = 'No op Preferator plugin for Galileo'
17 |
18 | siteUrl = 'https://github.com/josedlpozo/Galileo'
19 | gitUrl = 'https://github.com/josedlpozo/Galileo.git'
20 |
21 | libraryVersion = VERSION_NAME
22 |
23 | developerId = 'josedlpozo'
24 | developerName = 'Jose del Pozo'
25 | developerEmail = 'josedlpozo@gmail.com'
26 |
27 | licenseName = 'The Apache Software License, Version 2.0'
28 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
29 | allLicenses = ["Apache-2.0"]
30 | }
31 |
32 | android {
33 | compileSdkVersion 29
34 |
35 | defaultConfig {
36 | minSdkVersion 16
37 | targetSdkVersion 29
38 | versionName VERSION_NAME
39 | }
40 | }
41 |
42 | dependencies {
43 | implementation project(':galileo-core')
44 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
45 | }
46 |
47 | apply from: '../upload_library.gradle'
--------------------------------------------------------------------------------
/galileo-colorpicker-no-op/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'maven-publish'
5 | apply plugin: 'com.github.dcendents.android-maven'
6 | apply plugin: 'com.jfrog.bintray'
7 |
8 | ext {
9 | bintrayRepo = 'maven'
10 | bintrayName = 'galileo-colorpicker-no-op'
11 |
12 | publishedGroupId = 'com.josedlpozo.galileo.colorpicker'
13 | libraryName = 'galileo-colorpicker-no-op'
14 | artifact = 'galileo-colorpicker-no-op'
15 |
16 | libraryDescription = 'No op Color picker plugin for Galileo'
17 |
18 | siteUrl = 'https://github.com/josedlpozo/Galileo'
19 | gitUrl = 'https://github.com/josedlpozo/Galileo.git'
20 |
21 | libraryVersion = VERSION_NAME
22 |
23 | developerId = 'josedlpozo'
24 | developerName = 'Jose del Pozo'
25 | developerEmail = 'josedlpozo@gmail.com'
26 |
27 | licenseName = 'The Apache Software License, Version 2.0'
28 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
29 | allLicenses = ["Apache-2.0"]
30 | }
31 |
32 | android {
33 | compileSdkVersion 29
34 |
35 | defaultConfig {
36 | minSdkVersion 16
37 | targetSdkVersion 29
38 | versionName VERSION_NAME
39 | }
40 | }
41 |
42 | dependencies {
43 | implementation project(':galileo-core')
44 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
45 | }
46 |
47 | apply from: '../upload_library.gradle'
--------------------------------------------------------------------------------
/galileo-remoteconfig-no-op/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'maven-publish'
5 | apply plugin: 'com.github.dcendents.android-maven'
6 | apply plugin: 'com.jfrog.bintray'
7 |
8 | ext {
9 | bintrayRepo = 'maven'
10 | bintrayName = 'galileo-remoteconfig-no-op'
11 |
12 | publishedGroupId = 'com.josedlpozo.galileo.remoteconfig'
13 | libraryName = 'galileo-remoteconfig-no-op'
14 | artifact = 'galileo-remoteconfig-no-op'
15 |
16 | libraryDescription = 'No op Remote Config plugin for Galileo'
17 |
18 | siteUrl = 'https://github.com/josedlpozo/Galileo'
19 | gitUrl = 'https://github.com/josedlpozo/Galileo.git'
20 |
21 | libraryVersion = VERSION_NAME
22 |
23 | developerId = 'josedlpozo'
24 | developerName = 'Jose del Pozo'
25 | developerEmail = 'josedlpozo@gmail.com'
26 |
27 | licenseName = 'The Apache Software License, Version 2.0'
28 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
29 | allLicenses = ["Apache-2.0"]
30 | }
31 |
32 | android {
33 | compileSdkVersion 29
34 |
35 | defaultConfig {
36 | minSdkVersion 16
37 | targetSdkVersion 29
38 | versionName VERSION_NAME
39 | }
40 | }
41 |
42 | dependencies {
43 | implementation project(':galileo-core')
44 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
45 | }
46 |
47 | apply from: '../upload_library.gradle'
--------------------------------------------------------------------------------
/galileo-preferator/src/main/java/com/josedlpozo/galileo/preferator/view/editor/StringPrefEditor.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.preferator.view.editor
2 |
3 |
4 | import android.content.Context
5 | import android.text.Editable
6 | import android.text.TextWatcher
7 | import android.util.AttributeSet
8 | import android.view.LayoutInflater
9 | import android.widget.EditText
10 | import android.widget.FrameLayout
11 | import com.josedlpozo.galileo.preferator.R
12 |
13 | internal class StringPrefEditor @JvmOverloads constructor(
14 | context: Context,
15 | attrs: AttributeSet? = null,
16 | defStyleAttr: Int = 0,
17 | listener: (String) -> Unit = {}
18 | ) : FrameLayout(context, attrs, defStyleAttr) {
19 |
20 | private val valueView: EditText
21 |
22 | var value: String
23 | get() = valueView.text.toString()
24 | set(value) = valueView.setText(value)
25 |
26 | init {
27 | LayoutInflater.from(context).inflate(R.layout.item_editor_string, this, true)
28 | valueView = findViewById(R.id.pref_value)
29 | valueView.addTextChangedListener(object : TextWatcher {
30 | override fun onTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {
31 | listener(charSequence.toString())
32 | }
33 |
34 | override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {}
35 |
36 | override fun afterTextChanged(editable: Editable) {}
37 | })
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/galileo/src/main/java/com/josedlpozo/galileo/more/MoreView.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.more
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import com.josedlpozo.galileo.config.GalileoInternalPlugin
6 | import com.josedlpozo.galileo.core.GalileoItem
7 | import com.josedlpozo.galileo.parent.SnapshotGenerator
8 |
9 | internal class MoreView @JvmOverloads internal constructor(plugins: List = listOf(),
10 | context: Context,
11 | attr: AttributeSet? = null,
12 | defStyleAttr: Int = 0) : androidx.recyclerview.widget.RecyclerView(context, attr, defStyleAttr) {
13 |
14 | private val items: List = plugins.map { MoreItems(it.id, it.plugin.item(context)) }
15 |
16 | init {
17 | layoutManager = androidx.recyclerview.widget.LinearLayoutManager(context)
18 | addItemDecoration(
19 | androidx.recyclerview.widget.DividerItemDecoration(
20 | getContext(),
21 | androidx.recyclerview.widget.DividerItemDecoration.VERTICAL
22 | )
23 | )
24 |
25 | adapter = MoreEventAdapter(items) {
26 | PluginActivity.start(context, it.id)
27 | }
28 | }
29 |
30 | fun snapshot(): String = SnapshotGenerator.generate(items.map { it.item })
31 | }
32 |
33 | data class MoreItems(val id: Long, val item: GalileoItem)
--------------------------------------------------------------------------------
/galileo-chuck-no-op/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'maven-publish'
5 | apply plugin: 'com.github.dcendents.android-maven'
6 | apply plugin: 'com.jfrog.bintray'
7 |
8 | ext {
9 | bintrayRepo = 'maven'
10 | bintrayName = 'galileo-chuck-no-op'
11 |
12 | publishedGroupId = 'com.josedlpozo.galileo.chuck'
13 | libraryName = 'galileo-chuck-no-op'
14 | artifact = 'galileo-chuck-no-op'
15 |
16 | libraryDescription = 'No op Chuck plugin for Galileo'
17 |
18 | siteUrl = 'https://github.com/josedlpozo/Galileo'
19 | gitUrl = 'https://github.com/josedlpozo/Galileo.git'
20 |
21 | libraryVersion = VERSION_NAME
22 |
23 | developerId = 'josedlpozo'
24 | developerName = 'Jose del Pozo'
25 | developerEmail = 'josedlpozo@gmail.com'
26 |
27 | licenseName = 'The Apache Software License, Version 2.0'
28 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
29 | allLicenses = ["Apache-2.0"]
30 | }
31 |
32 | android {
33 | compileSdkVersion 29
34 |
35 | defaultConfig {
36 | minSdkVersion 16
37 | targetSdkVersion 29
38 | versionName VERSION_NAME
39 | }
40 | }
41 |
42 | dependencies {
43 | implementation project(':galileo-core')
44 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
45 | implementation "com.squareup.okhttp3:okhttp:4.2.1"
46 | }
47 |
48 | apply from: '../upload_library.gradle'
--------------------------------------------------------------------------------
/galileo-flow/src/main/res/layout/galileo_event_detail_activity.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
12 |
21 |
22 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/galileo-core/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'maven-publish'
5 | apply plugin: 'com.github.dcendents.android-maven'
6 | apply plugin: 'com.jfrog.bintray'
7 |
8 | ext {
9 | bintrayRepo = 'maven'
10 | bintrayName = 'galileo-core'
11 |
12 | publishedGroupId = 'com.josedlpozo.galileo.core'
13 | libraryName = 'Galileo'
14 | artifact = 'galileo-core'
15 |
16 | libraryDescription = 'Core library for Galileo'
17 |
18 | siteUrl = 'https://github.com/josedlpozo/Galileo'
19 | gitUrl = 'https://github.com/josedlpozo/Galileo.git'
20 |
21 | libraryVersion = VERSION_NAME
22 |
23 | developerId = 'josedlpozo'
24 | developerName = 'Jose del Pozo'
25 | developerEmail = 'josedlpozo@gmail.com'
26 |
27 | licenseName = 'The Apache Software License, Version 2.0'
28 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
29 | allLicenses = ["Apache-2.0"]
30 | }
31 |
32 | android {
33 | compileSdkVersion 29
34 |
35 | defaultConfig {
36 | minSdkVersion 16
37 | targetSdkVersion 29
38 | versionName VERSION_NAME
39 | }
40 | }
41 |
42 | dependencies {
43 | implementation fileTree(dir: 'libs', include: ['*.jar'])
44 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
45 | implementation 'androidx.appcompat:appcompat:1.1.0'
46 | implementation 'androidx.core:core-ktx:1.1.0'
47 | }
48 |
49 | apply from: '../upload_library.gradle'
--------------------------------------------------------------------------------
/docs/_config.yml:
--------------------------------------------------------------------------------
1 | # ----
2 | # Site
3 |
4 | title: Aviator
5 | description: Jekyll template for API documentation.
6 | url: https://example.com
7 | google_analytics_key:
8 | permalink: pretty
9 |
10 | # -----
11 | # Build
12 |
13 | timezone: Etc/UTC
14 |
15 | collections:
16 | documentation:
17 | title: Documentation
18 | position: 1
19 | preferator:
20 | title: Preferator
21 | position: 2
22 | api:
23 | title: APIs
24 | position: 3
25 | plugins:
26 | - jekyll-sitemap
27 | - jekyll-seo-tag
28 |
29 | exclude:
30 | - readme.md
31 | - LICENSE
32 |
33 | defaults:
34 | -
35 | scope:
36 | path: ""
37 | values:
38 | layout: default
39 | -
40 | scope:
41 | type: "documentation"
42 | values:
43 | _hide_content: true
44 | -
45 | scope:
46 | type: "api"
47 | values:
48 | _hide_content: true
49 | - scope:
50 | type: "preferator"
51 | values:
52 | _hide_content: true
53 |
54 | # -----------
55 | # CloudCannon
56 |
57 | types:
58 | - get
59 | - put
60 | - delete
61 | - post
62 |
63 | languages:
64 | bash: Bash
65 | c: C
66 | css: CSS
67 | html: HTML
68 | java: Java
69 | javascript: JavaScript
70 | json: JSON
71 | php: PHP
72 | python: Python
73 | ruby: Ruby
74 |
75 | _options:
76 | content_markdown:
77 | format: p h4 h5 h6
78 | bold: true
79 | italic: true
80 | link: true
81 | bulletedlist: true
82 | numberedlist: true
83 | image: true
84 | table: true
85 | styles: /css/editor.css
86 |
--------------------------------------------------------------------------------
/galileo-preferator/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'maven-publish'
5 | apply plugin: 'com.github.dcendents.android-maven'
6 | apply plugin: 'com.jfrog.bintray'
7 |
8 | ext {
9 | bintrayRepo = 'maven'
10 | bintrayName = 'galileo-preferator'
11 |
12 | publishedGroupId = 'com.josedlpozo.galileo.preferator'
13 | libraryName = 'galileo-preferator'
14 | artifact = 'galileo-preferator'
15 |
16 | libraryDescription = 'Preferator plugin for Galileo'
17 |
18 | siteUrl = 'https://github.com/josedlpozo/Galileo'
19 | gitUrl = 'https://github.com/josedlpozo/Galileo.git'
20 |
21 | libraryVersion = VERSION_NAME
22 |
23 | developerId = 'josedlpozo'
24 | developerName = 'Jose del Pozo'
25 | developerEmail = 'josedlpozo@gmail.com'
26 |
27 | licenseName = 'The Apache Software License, Version 2.0'
28 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
29 | allLicenses = ["Apache-2.0"]
30 | }
31 |
32 | android {
33 | compileSdkVersion 29
34 |
35 | defaultConfig {
36 | minSdkVersion 16
37 | targetSdkVersion 29
38 | versionName VERSION_NAME
39 | }
40 |
41 | }
42 |
43 | dependencies {
44 | implementation project(':galileo-core')
45 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
46 | implementation 'androidx.appcompat:appcompat:1.1.0'
47 | testImplementation 'junit:junit:4.12'
48 | }
49 |
50 | apply from: '../upload_library.gradle'
--------------------------------------------------------------------------------
/galileo-colorpicker/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'maven-publish'
5 | apply plugin: 'com.github.dcendents.android-maven'
6 | apply plugin: 'com.jfrog.bintray'
7 |
8 | ext {
9 | bintrayRepo = 'maven'
10 | bintrayName = 'galileo-colorpicker'
11 |
12 | publishedGroupId = 'com.josedlpozo.galileo.colorpicker'
13 | libraryName = 'galileo-colorpicker'
14 | artifact = 'galileo-colorpicker'
15 |
16 | libraryDescription = 'Color picker plugin for Galileo'
17 |
18 | siteUrl = 'https://github.com/josedlpozo/Galileo'
19 | gitUrl = 'https://github.com/josedlpozo/Galileo.git'
20 |
21 | libraryVersion = VERSION_NAME
22 |
23 | developerId = 'josedlpozo'
24 | developerName = 'Jose del Pozo'
25 | developerEmail = 'josedlpozo@gmail.com'
26 |
27 | licenseName = 'The Apache Software License, Version 2.0'
28 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
29 | allLicenses = ["Apache-2.0"]
30 | }
31 |
32 | android {
33 | compileSdkVersion 29
34 |
35 | defaultConfig {
36 | minSdkVersion 16
37 | targetSdkVersion 29
38 | versionName VERSION_NAME
39 | }
40 |
41 | }
42 |
43 | dependencies {
44 | implementation project(':galileo-core')
45 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
46 | implementation 'androidx.appcompat:appcompat:1.1.0'
47 | implementation 'androidx.core:core-ktx:1.1.0'
48 | }
49 |
50 | apply from: '../upload_library.gradle'
--------------------------------------------------------------------------------
/galileo-lynx/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'maven-publish'
5 | apply plugin: 'com.github.dcendents.android-maven'
6 | apply plugin: 'com.jfrog.bintray'
7 |
8 | ext {
9 | bintrayRepo = 'maven'
10 | bintrayName = 'galileo-lynx'
11 |
12 | publishedGroupId = 'com.josedlpozo.galileo.lynx'
13 | libraryName = 'galileo-lynx'
14 | artifact = 'galileo-lynx'
15 |
16 | libraryDescription = 'Lynx plugin for Galileo'
17 |
18 | siteUrl = 'https://github.com/josedlpozo/Galileo'
19 | gitUrl = 'https://github.com/josedlpozo/Galileo.git'
20 |
21 | libraryVersion = VERSION_NAME
22 |
23 | developerId = 'josedlpozo'
24 | developerName = 'Jose del Pozo'
25 | developerEmail = 'josedlpozo@gmail.com'
26 |
27 | licenseName = 'The Apache Software License, Version 2.0'
28 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
29 | allLicenses = ["Apache-2.0"]
30 | }
31 |
32 | android {
33 | compileSdkVersion 29
34 |
35 | defaultConfig {
36 | minSdkVersion 16
37 | targetSdkVersion 29
38 | versionName VERSION_NAME
39 | }
40 |
41 | }
42 |
43 | dependencies {
44 | implementation fileTree(dir: 'libs', include: ['*.jar'])
45 | implementation project(':galileo-core')
46 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
47 | api 'com.github.pedrovgs:lynx:1.1.0'
48 | testImplementation 'junit:junit:4.12'
49 | }
50 |
51 | apply from: '../upload_library.gradle'
--------------------------------------------------------------------------------
/galileo-remoteconfig/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'maven-publish'
5 | apply plugin: 'com.github.dcendents.android-maven'
6 | apply plugin: 'com.jfrog.bintray'
7 |
8 | ext {
9 | bintrayRepo = 'maven'
10 | bintrayName = 'galileo-remoteconfig'
11 |
12 | publishedGroupId = 'com.josedlpozo.galileo.remoteconfig'
13 | libraryName = 'galileo-remoteconfig'
14 | artifact = 'galileo-remoteconfig'
15 |
16 | libraryDescription = 'Remote config plugin for Galileo'
17 |
18 | siteUrl = 'https://github.com/josedlpozo/Galileo'
19 | gitUrl = 'https://github.com/josedlpozo/Galileo.git'
20 |
21 | libraryVersion = VERSION_NAME
22 |
23 | developerId = 'josedlpozo'
24 | developerName = 'Jose del Pozo'
25 | developerEmail = 'josedlpozo@gmail.com'
26 |
27 | licenseName = 'The Apache Software License, Version 2.0'
28 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
29 | allLicenses = ["Apache-2.0"]
30 | }
31 |
32 | android {
33 | compileSdkVersion 29
34 |
35 | defaultConfig {
36 | minSdkVersion 16
37 | targetSdkVersion 29
38 | versionName VERSION_NAME
39 | }
40 |
41 | }
42 |
43 | dependencies {
44 | implementation project(':galileo-core')
45 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
46 | implementation 'com.google.android.material:material:1.0.0'
47 | implementation 'com.google.firebase:firebase-config:19.0.4'
48 | }
49 |
50 | apply from: '../upload_library.gradle'
--------------------------------------------------------------------------------
/galileo/src/main/java/com/josedlpozo/galileo/parent/home/HomeActivity.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 josedlpozo.
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 | package com.josedlpozo.galileo.parent.home
17 |
18 | import android.os.Bundle
19 | import androidx.appcompat.app.AppCompatActivity
20 | import com.josedlpozo.galileo.R
21 | import com.josedlpozo.galileo.config.ConfigRepository
22 |
23 | internal class HomeActivity : AppCompatActivity() {
24 |
25 | override fun onCreate(savedInstanceState: Bundle?) {
26 | super.onCreate(savedInstanceState)
27 | setContentView(R.layout.galileo_home_activity)
28 | val config = ConfigRepository.internalConfig
29 | if (savedInstanceState == null) {
30 | val homeFragment = HomeFragment.newInstance()
31 | homeFragment.items = config.plugins.map { it.plugin.item(this) }
32 | supportFragmentManager.beginTransaction()
33 | .replace(R.id.container, homeFragment)
34 | .commitNow()
35 | }
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/galileo/src/main/java/com/josedlpozo/galileo/parent/home/HomeViewModel.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 josedlpozo.
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 | package com.josedlpozo.galileo.parent.home
17 |
18 | import androidx.lifecycle.MutableLiveData
19 | import androidx.lifecycle.ViewModel
20 | import com.josedlpozo.galileo.core.GalileoItem
21 | import com.josedlpozo.galileo.parent.SnapshotGenerator
22 | import java.io.File
23 |
24 | internal class HomeViewModel : ViewModel() {
25 |
26 | var items: MutableLiveData> = MutableLiveData()
27 | private set
28 |
29 | var shareText: MutableLiveData = MutableLiveData()
30 | private set
31 |
32 | fun start(items: List) {
33 | this.items.value = items
34 | }
35 |
36 | fun share(file: File) {
37 | val items = items.value ?: return
38 |
39 | file.printWriter().use { out ->
40 | out.println(SnapshotGenerator.generate(items))
41 | }
42 |
43 | shareText.value = file
44 | }
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/galileo-preferator/src/main/java/com/josedlpozo/galileo/preferator/data/PreferatorDataSource.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.preferator.data
2 |
3 | import android.content.Context
4 | import android.content.SharedPreferences
5 | import com.josedlpozo.galileo.preferator.SdkFilter
6 | import com.josedlpozo.galileo.preferator.model.PreferatorConfig
7 | import com.josedlpozo.galileo.preferator.model.Preference
8 | import com.josedlpozo.galileo.preferator.model.PreferenceItem
9 | import com.josedlpozo.galileo.preferator.model.Preferences
10 | import java.io.File
11 |
12 | internal class PreferatorDataSource(private val context: Context) {
13 |
14 | fun get(config: PreferatorConfig): Preferences = File(context.applicationInfo.dataDir + "/shared_prefs").list().map(::truncateXmlExtension)
15 | .filter { if (SdkFilter.isSdkPreference(it)) config.showingSdkPreferences else true }
16 | .sortedWith(compareBy({ SdkFilter.isSdkPreference(it) }, { it }))
17 | .map(::extractItems)
18 | .let(::Preferences)
19 |
20 | private fun truncateXmlExtension(it: String): String = if (it.endsWith(".xml"))
21 | it.substring(0, it.indexOf(".xml"))
22 | else
23 | it
24 |
25 | private fun extractItems(prefsName: String): Preference =
26 | (getSharedPreferences(prefsName).all.map { it.key to it.value }.filter { it.second != null } as List).let {
27 | Preference(prefsName, it, getSharedPreferences(prefsName))
28 | }
29 |
30 | private fun getSharedPreferences(name: String): SharedPreferences = context.getSharedPreferences(name, Context.MODE_MULTI_PROCESS)
31 |
32 | }
--------------------------------------------------------------------------------
/galileo/src/main/java/com/josedlpozo/galileo/parent/SnapshotGenerator.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 josedlpozo.
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 | package com.josedlpozo.galileo.parent
17 |
18 | import com.josedlpozo.galileo.core.GalileoItem
19 |
20 | internal object SnapshotGenerator {
21 |
22 | private const val preSeparator = "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
23 |
24 | fun generate(items: List): String = items.joinToString("\n\n\n") {
25 | val snapshot = it.snapshot()
26 | if (snapshot.isEmpty()) return@joinToString ""
27 |
28 | val name = " ${it.name.toUpperCase()} "
29 | "$preSeparator\n" +
30 | "$preSeparator\n" +
31 | "${nameDecorator(name)}$name${nameDecorator(name)}\n" +
32 | "$preSeparator\n" +
33 | "$preSeparator\n\n" + it.snapshot()
34 | }
35 |
36 | private fun nameDecorator(name: String): String =
37 | (0 until ((preSeparator.length - name.length) / 2)).joinToString(separator = "") { "%" }
38 | }
--------------------------------------------------------------------------------
/galileo-flow/src/main/java/com/josedlpozo/galileo/flow/instances.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 josedlpozo.
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 | package com.josedlpozo.galileo.flow
17 |
18 | import arrow.core.ForTry
19 | import arrow.core.Try
20 | import arrow.instances.`try`.monadError.monadError
21 | import com.josedlpozo.galileo.flow.algebras.DefaultFlowEventDataSource
22 | import com.josedlpozo.galileo.flow.algebras.DefaultFlowEventUseCase
23 | import com.josedlpozo.galileo.flow.algebras.FlowEventUseCase
24 |
25 |
26 | internal interface FlowEventInstances {
27 |
28 | val dataSource: DefaultFlowEventDataSource
29 |
30 | val flowLifeCycleCallback: FlowLifeCycleCallback
31 |
32 | val useCase: FlowEventUseCase
33 | }
34 |
35 | internal object FlowEventTry :
36 | FlowEventInstances {
37 |
38 | override val dataSource = DefaultFlowEventDataSource(Try.monadError())
39 |
40 | override val flowLifeCycleCallback = FlowLifeCycleCallback(dataSource)
41 |
42 | override val useCase = DefaultFlowEventUseCase(dataSource)
43 |
44 | }
--------------------------------------------------------------------------------
/galileo-grid/src/main/java/com/josedlpozo/galileo/grid/utils/ColorUtils.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 The CyanogenMod Project
3 | *
4 | * Modified Work: Copyright (c) 2018 fr4nk1
5 | *
6 | * Modified Work: Copyright (c) 2018 josedlpozo
7 | *
8 | * Licensed under the Apache License, Version 2.0 (the "License");
9 | * you may not use this file except in compliance with the License.
10 | * You may obtain a copy of the License at
11 | *
12 | * http://www.apache.org/licenses/LICENSE-2.0
13 | *
14 | * Unless required by applicable law or agreed to in writing, software
15 | * distributed under the License is distributed on an "AS IS" BASIS,
16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 | * See the License for the specific language governing permissions and
18 | * limitations under the License.
19 | */
20 | package com.josedlpozo.galileo.grid.utils
21 |
22 | import android.content.Context
23 | import androidx.core.content.ContextCompat
24 | import com.josedlpozo.galileo.grid.R
25 |
26 | internal object ColorUtils {
27 | fun getGridLineColor(context: Context): Int =
28 | PreferenceUtils.GridPreferences.getGridLineColor(
29 | context,
30 | ContextCompat.getColor(context, R.color.galileocolor_dualColorPickerDefaultPrimaryColor)
31 | )
32 |
33 | fun getKeylineColor(context: Context): Int =
34 | PreferenceUtils.GridPreferences.getKeylineColor(
35 | context,
36 | ContextCompat.getColor(
37 | context,
38 | R.color.galileocolor_dualColorPickerDefaultSecondaryColor
39 | )
40 | )
41 | }
42 |
--------------------------------------------------------------------------------
/galileo-grid/src/main/res/layout/lobsterpicker.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
24 |
25 |
31 |
32 |
37 |
38 |
--------------------------------------------------------------------------------
/galileo-chuck/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'maven-publish'
5 | apply plugin: 'com.github.dcendents.android-maven'
6 | apply plugin: 'com.jfrog.bintray'
7 |
8 | ext {
9 | bintrayRepo = 'maven'
10 | bintrayName = 'galileo-chuck'
11 |
12 | publishedGroupId = 'com.josedlpozo.galileo.chuck'
13 | libraryName = 'galileo-chuck'
14 | artifact = 'galileo-chuck'
15 |
16 | libraryDescription = 'Chuck plugin for Galileo'
17 |
18 | siteUrl = 'https://github.com/josedlpozo/Galileo'
19 | gitUrl = 'https://github.com/josedlpozo/Galileo.git'
20 |
21 | libraryVersion = VERSION_NAME
22 |
23 | developerId = 'josedlpozo'
24 | developerName = 'Jose del Pozo'
25 | developerEmail = 'josedlpozo@gmail.com'
26 |
27 | licenseName = 'The Apache Software License, Version 2.0'
28 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
29 | allLicenses = ["Apache-2.0"]
30 | }
31 |
32 | android {
33 | compileSdkVersion 29
34 |
35 | defaultConfig {
36 | minSdkVersion 16
37 | targetSdkVersion 29
38 | versionName VERSION_NAME
39 | }
40 | }
41 |
42 | dependencies {
43 | implementation project(':galileo-core')
44 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
45 | implementation 'com.google.android.material:material:1.0.0'
46 | implementation 'com.google.code.gson:gson:2.8.5'
47 | implementation "com.squareup.okhttp3:okhttp:4.2.1"
48 | testImplementation 'junit:junit:4.12'
49 | }
50 |
51 | apply from: '../upload_library.gradle'
--------------------------------------------------------------------------------
/galileo-preferator/src/main/java/com/josedlpozo/galileo/preferator/SdkFilter.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.preferator
2 |
3 | import org.intellij.lang.annotations.Language
4 |
5 | internal object SdkFilter {
6 |
7 | // HEY! YOU! Add your sdk here if you want it to be ignored :D
8 | @Language("RegExp")
9 | val ignoredSdkNamePatterns = listOf(
10 | // Adobe Analytics
11 | "APP_MEASUREMENT_CACHE",
12 | // Apptimize
13 | "apptimizenet.(.*)",
14 | // Braze
15 | "com.appboy.(.*)",
16 | // Chromium
17 | "WebViewChromiumPrefs",
18 | // Chuck
19 | "chuck_preferences",
20 | // ComScore
21 | "cSPrefs",
22 | // Custom Activity on Crash
23 | "custom_activity_on_crash",
24 | // Debug drawer
25 | "debug_drawer_(.*)",
26 | // Fabric
27 | "TwitterAdvertisingInfoPreferences",
28 | "io.fabric.sdk.android(.*)",
29 | "com.crashlytics.(.*)",
30 | // Google
31 | "com.google.(.*)",
32 | "fcm.(.*)",
33 | // Layer
34 | "layer(.*)",
35 | // Schibsted
36 | "com.schibsted.spt.tracking.(.*)",
37 | // Swrve
38 | "swrve_(.*)",
39 | // Xiti
40 | "ATPrefs",
41 | "com.josedlpozo.galileo.(.*)"
42 | )
43 |
44 | private val ignoredSdkNameRegexs = ignoredSdkNamePatterns.map { it.toRegex() }
45 |
46 | fun isSdkPreference(name: String): Boolean = ignoredSdkNameRegexs.find { it.matches(name) } != null
47 |
48 | }
--------------------------------------------------------------------------------
/galileo-realm/src/main/java/com/josedlpozo/galileo/realm/realmbrowser/files/model/RealmFile.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * The MIT License (MIT)
3 | *
4 | * Original Work: Copyright (c) 2015 Danylyk Dmytro
5 | *
6 | * Modified Work: Copyright (c) 2015 Rottmann, Jonas
7 | *
8 | * Modified Work: Copyright (c) 2018 vicfran
9 | *
10 | * Modified Work: Copyright (c) 2018 josedlpozo
11 | *
12 | * Permission is hereby granted, free of charge, to any person obtaining a copy
13 | * of this software and associated documentation files (the "Software"), to deal
14 | * in the Software without restriction, including without limitation the rights
15 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16 | * copies of the Software, and to permit persons to whom the Software is
17 | * furnished to do so, subject to the following conditions:
18 | *
19 | * The above copyright notice and this permission notice shall be included in all
20 | * copies or substantial portions of the Software.
21 | *
22 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28 | * SOFTWARE.
29 | */
30 | package com.josedlpozo.galileo.realm.realmbrowser.files.model
31 |
32 | data class RealmFile(val name: String, val size: String, val sizeInByte: Long)
33 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/res/values/realm_browser_strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Lorem ipsum
3 |
4 | Settings
5 | Enable Text Wrapping
6 | Fields
7 | Can\'t open realm instance.
8 |
9 | Save
10 | Model Information
11 | File Information
12 | Sort
13 | Share File
14 | Filter
15 | Delete
16 | About
17 |
18 | https://github.com/jonasrottmann/realm-browser
19 | Version
20 |
21 |
22 | - true
23 | - false
24 |
25 |
--------------------------------------------------------------------------------
/galileo-chuck/src/main/res/menu/chuck_transaction.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
19 |
26 | -
29 |
30 |
31 |
33 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/galileo-grid/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'maven-publish'
5 | apply plugin: 'com.github.dcendents.android-maven'
6 | apply plugin: 'com.jfrog.bintray'
7 |
8 | ext {
9 | bintrayRepo = 'maven'
10 | bintrayName = 'galileo-grid'
11 |
12 | publishedGroupId = 'com.josedlpozo.galileo.grid'
13 | libraryName = 'galileo-grid'
14 | artifact = 'galileo-grid'
15 |
16 | libraryDescription = 'Grid plugin for Galileo'
17 |
18 | siteUrl = 'https://github.com/josedlpozo/Galileo'
19 | gitUrl = 'https://github.com/josedlpozo/Galileo.git'
20 |
21 | libraryVersion = VERSION_NAME
22 |
23 | developerId = 'josedlpozo'
24 | developerName = 'Jose del Pozo'
25 | developerEmail = 'josedlpozo@gmail.com'
26 |
27 | licenseName = 'The Apache Software License, Version 2.0'
28 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
29 | allLicenses = ["Apache-2.0"]
30 | }
31 |
32 | android {
33 | compileSdkVersion 29
34 |
35 | defaultConfig {
36 | minSdkVersion 16
37 | targetSdkVersion 29
38 | versionName VERSION_NAME
39 | }
40 |
41 | }
42 |
43 | dependencies {
44 | implementation project(':galileo-core')
45 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
46 | implementation 'androidx.appcompat:appcompat:1.1.0'
47 | implementation 'androidx.core:core-ktx:1.1.0'
48 | implementation 'com.larswerkman:lobsterpicker:1.0.1'
49 | implementation 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar'
50 | }
51 |
52 | apply from: '../upload_library.gradle'
--------------------------------------------------------------------------------
/galileo/src/main/java/com/josedlpozo/galileo/more/PluginActivity.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.more
2 |
3 | import android.content.Context
4 | import android.content.Intent
5 | import android.os.Bundle
6 | import android.view.MenuItem
7 | import androidx.appcompat.app.AppCompatActivity
8 | import com.josedlpozo.galileo.R
9 | import com.josedlpozo.galileo.config.ConfigRepository
10 | import kotlinx.android.synthetic.main.galileo_plugin_activity.*
11 |
12 | internal class PluginActivity : AppCompatActivity() {
13 |
14 | companion object {
15 | private const val PLUGIN_KEY = "plugin_key"
16 |
17 | fun start(context: Context, position: Long) = Intent(context, PluginActivity::class.java).apply {
18 | putExtra(PLUGIN_KEY, position)
19 | }.also(context::startActivity)
20 | }
21 |
22 | override fun onCreate(savedInstanceState: Bundle?) {
23 | super.onCreate(savedInstanceState)
24 | setContentView(R.layout.galileo_plugin_activity)
25 |
26 | supportActionBar?.setDisplayHomeAsUpEnabled(true)
27 |
28 | val position = intent.getLongExtra(PLUGIN_KEY, 0)
29 | val plugin = ConfigRepository.more.find { it.id == position }
30 | if (plugin == null) finish()
31 | else {
32 | val item = plugin.plugin.item(this)
33 | title = item.name
34 |
35 | linearRoot.addView(item.view())
36 | }
37 | }
38 |
39 | override fun onOptionsItemSelected(item: MenuItem): Boolean = when {
40 | item.itemId == android.R.id.home -> {
41 | finish()
42 | true
43 | }
44 | else -> super.onOptionsItemSelected(item)
45 | }
46 | }
--------------------------------------------------------------------------------
/galileo-preferator/src/main/java/com/josedlpozo/galileo/preferator/view/PreferatorView.kt:
--------------------------------------------------------------------------------
1 | package com.josedlpozo.galileo.preferator.view
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import android.widget.LinearLayout
6 | import android.widget.LinearLayout.VERTICAL
7 | import android.widget.ScrollView
8 | import com.josedlpozo.galileo.preferator.data.PreferatorDataSource
9 | import com.josedlpozo.galileo.preferator.model.PreferatorConfig
10 | import com.josedlpozo.galileo.preferator.model.Preferences
11 | import com.josedlpozo.galileo.preferator.presenter.PreferatorPresenter
12 |
13 | internal class PreferatorView @JvmOverloads internal constructor(context: Context, val attr: AttributeSet? = null, defStyleAttr: Int = 0)
14 | : ScrollView(context, attr, defStyleAttr), PreferatorPresenter.View {
15 |
16 | var config: PreferatorConfig = PreferatorConfig()
17 | set(value) {
18 | presenter.config = value
19 | field = value
20 | }
21 |
22 | private val presenter: PreferatorPresenter by lazy { PreferatorPresenter(this, PreferatorDataSource(context)) }
23 |
24 | private val linearLayout = LinearLayout(context).apply {
25 | orientation = VERTICAL
26 | }
27 |
28 | init {
29 | addView(linearLayout)
30 | }
31 |
32 | override fun render(preferences: Preferences) {
33 | linearLayout.removeAllViews()
34 | preferences.items.map {
35 | val detailView = PreferatorDetailView(context)
36 | detailView.render(it)
37 | linearLayout.addView(detailView)
38 | }
39 | }
40 |
41 | fun snapshot(): String = presenter.snapshot()
42 | }
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | title: API Docs
3 | ---
4 | {% assign sorted_collections = site.collections | sort: "position" %}
5 | {% for collection in sorted_collections %}
6 | {% assign sorted_docs = collection.docs | sort: "position" %}
7 | {% for doc in sorted_docs %}
8 |
9 |
10 |
16 | {% if doc.description %}
17 | {{ doc.description }}
18 | {% endif %}
19 |
20 | {% if doc.parameters and doc.parameters[0].name %}
21 | Parameters
22 |
23 | {% for parameter in doc.parameters %}
24 | - {{ parameter.name }}
25 | - {{ parameter.content }}
26 | {% endfor %}
27 |
28 | {% endif %}
29 |
30 | {{ doc.content_markdown | markdownify | replace: "", "Parameters
" }}
31 |
32 | {% if doc.left_code_blocks and doc.left_code_blocks[0].code_block %}
33 | {% for block in doc.left_code_blocks %}
34 | {% include syntax-highlight.html block=block %}
35 | {% endfor %}
36 | {% endif %}
37 |
38 | {% if doc.right_code_blocks and doc.right_code_blocks[0].code_block %}
39 |
40 | {% for block in doc.right_code_blocks %}
41 | {% include syntax-highlight.html block=block %}
42 | {% endfor %}
43 |
44 | {% endif %}
45 |
46 | {% endfor %}
47 | {% endfor %}
48 |
--------------------------------------------------------------------------------
/galileo-realm/src/main/java/com/josedlpozo/galileo/realm/realmbrowser/models/model/GalileoRealmModel.kt:
--------------------------------------------------------------------------------
1 | /*
2 | * The MIT License (MIT)
3 | *
4 | * Original Work: Copyright (c) 2015 Danylyk Dmytro
5 | *
6 | * Modified Work: Copyright (c) 2015 Rottmann, Jonas
7 | *
8 | * Modified Work: Copyright (c) 2018 vicfran
9 | *
10 | * Modified Work: Copyright (c) 2018 josedlpozo
11 | *
12 | * Permission is hereby granted, free of charge, to any person obtaining a copy
13 | * of this software and associated documentation files (the "Software"), to deal
14 | * in the Software without restriction, including without limitation the rights
15 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16 | * copies of the Software, and to permit persons to whom the Software is
17 | * furnished to do so, subject to the following conditions:
18 | *
19 | * The above copyright notice and this permission notice shall be included in all
20 | * copies or substantial portions of the Software.
21 | *
22 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28 | * SOFTWARE.
29 | */
30 | package com.josedlpozo.galileo.realm.realmbrowser.models.model
31 |
32 | import io.realm.RealmModel
33 |
34 | data class GalileoRealmModel(val klass: Class, val count: Int)
35 |
--------------------------------------------------------------------------------
/galileo-flow/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 | apply plugin: 'kotlin-android-extensions'
4 | apply plugin: 'maven-publish'
5 | apply plugin: 'com.github.dcendents.android-maven'
6 | apply plugin: 'com.jfrog.bintray'
7 |
8 | ext {
9 | bintrayRepo = 'maven'
10 | bintrayName = 'galileo-flow'
11 |
12 | publishedGroupId = 'com.josedlpozo.galileo.flow'
13 | libraryName = 'galileo-flow'
14 | artifact = 'galileo-flow'
15 |
16 | libraryDescription = 'Flow plugin for Galileo'
17 |
18 | siteUrl = 'https://github.com/josedlpozo/Galileo'
19 | gitUrl = 'https://github.com/josedlpozo/Galileo.git'
20 |
21 | libraryVersion = VERSION_NAME
22 |
23 | developerId = 'josedlpozo'
24 | developerName = 'Jose del Pozo'
25 | developerEmail = 'josedlpozo@gmail.com'
26 |
27 | licenseName = 'The Apache Software License, Version 2.0'
28 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
29 | allLicenses = ["Apache-2.0"]
30 | }
31 |
32 | android {
33 | compileSdkVersion 29
34 |
35 | defaultConfig {
36 | minSdkVersion 16
37 | targetSdkVersion 29
38 | versionName VERSION_NAME
39 | }
40 |
41 | }
42 |
43 | dependencies {
44 | implementation project(':galileo-core')
45 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
46 | implementation "io.arrow-kt:arrow-core:0.8.0"
47 | implementation "io.arrow-kt:arrow-typeclasses:0.8.0"
48 | implementation "io.arrow-kt:arrow-instances-core:0.8.0"
49 | implementation 'com.google.android.material:material:1.0.0'
50 | testImplementation 'junit:junit:4.12'
51 | }
52 |
53 | apply from: '../upload_library.gradle'
--------------------------------------------------------------------------------