├── .eslintrc ├── .github ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── app ├── App_Resources │ ├── Android │ │ ├── app.gradle │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ └── res │ │ │ ├── drawable-hdpi │ │ │ ├── background.png │ │ │ ├── ic_home.png │ │ │ ├── ic_menu.png │ │ │ ├── ic_view_list.png │ │ │ ├── icon.png │ │ │ ├── logo.png │ │ │ ├── round_ballot_black_18.png │ │ │ ├── round_ballot_black_24.png │ │ │ ├── round_ballot_black_36.png │ │ │ ├── round_ballot_black_48.png │ │ │ ├── round_message_black_18.png │ │ │ ├── round_message_black_24.png │ │ │ ├── round_message_black_36.png │ │ │ ├── round_message_black_48.png │ │ │ ├── round_mic_black_18.png │ │ │ ├── round_mic_black_24.png │ │ │ ├── round_mic_black_36.png │ │ │ ├── round_mic_black_48.png │ │ │ ├── round_pause_black_18.png │ │ │ ├── round_pause_black_24.png │ │ │ ├── round_pause_black_36.png │ │ │ ├── round_pause_black_48.png │ │ │ ├── round_play_arrow_black_18.png │ │ │ ├── round_play_arrow_black_24.png │ │ │ ├── round_play_arrow_black_36.png │ │ │ ├── round_play_arrow_black_48.png │ │ │ ├── round_radio_black_18.png │ │ │ ├── round_radio_black_24.png │ │ │ ├── round_radio_black_36.png │ │ │ ├── round_radio_black_48.png │ │ │ ├── round_share_black_18.png │ │ │ ├── round_share_black_24.png │ │ │ ├── round_share_black_36.png │ │ │ └── round_share_black_48.png │ │ │ ├── drawable-ldpi │ │ │ ├── background.png │ │ │ ├── icon.png │ │ │ └── logo.png │ │ │ ├── drawable-mdpi │ │ │ ├── background.png │ │ │ ├── icon.png │ │ │ ├── logo.png │ │ │ ├── round_ballot_black_18.png │ │ │ ├── round_ballot_black_24.png │ │ │ ├── round_ballot_black_36.png │ │ │ ├── round_ballot_black_48.png │ │ │ ├── round_message_black_18.png │ │ │ ├── round_message_black_24.png │ │ │ ├── round_message_black_36.png │ │ │ ├── round_message_black_48.png │ │ │ ├── round_mic_black_18.png │ │ │ ├── round_mic_black_24.png │ │ │ ├── round_mic_black_36.png │ │ │ ├── round_mic_black_48.png │ │ │ ├── round_pause_black_18.png │ │ │ ├── round_pause_black_24.png │ │ │ ├── round_pause_black_36.png │ │ │ ├── round_pause_black_48.png │ │ │ ├── round_play_arrow_black_18.png │ │ │ ├── round_play_arrow_black_24.png │ │ │ ├── round_play_arrow_black_36.png │ │ │ ├── round_play_arrow_black_48.png │ │ │ ├── round_radio_black_18.png │ │ │ ├── round_radio_black_24.png │ │ │ ├── round_radio_black_36.png │ │ │ ├── round_radio_black_48.png │ │ │ ├── round_share_black_18.png │ │ │ ├── round_share_black_24.png │ │ │ ├── round_share_black_36.png │ │ │ └── round_share_black_48.png │ │ │ ├── drawable-nodpi │ │ │ └── splash_screen.xml │ │ │ ├── drawable-xhdpi │ │ │ ├── background.png │ │ │ ├── ic_home.png │ │ │ ├── ic_menu.png │ │ │ ├── ic_view_list.png │ │ │ ├── icon.png │ │ │ ├── logo.png │ │ │ ├── round_ballot_black_18.png │ │ │ ├── round_ballot_black_24.png │ │ │ ├── round_ballot_black_36.png │ │ │ ├── round_ballot_black_48.png │ │ │ ├── round_message_black_18.png │ │ │ ├── round_message_black_24.png │ │ │ ├── round_message_black_36.png │ │ │ ├── round_message_black_48.png │ │ │ ├── round_mic_black_18.png │ │ │ ├── round_mic_black_24.png │ │ │ ├── round_mic_black_36.png │ │ │ ├── round_mic_black_48.png │ │ │ ├── round_pause_black_18.png │ │ │ ├── round_pause_black_24.png │ │ │ ├── round_pause_black_36.png │ │ │ ├── round_pause_black_48.png │ │ │ ├── round_play_arrow_black_18.png │ │ │ ├── round_play_arrow_black_24.png │ │ │ ├── round_play_arrow_black_36.png │ │ │ ├── round_play_arrow_black_48.png │ │ │ ├── round_radio_black_18.png │ │ │ ├── round_radio_black_24.png │ │ │ ├── round_radio_black_36.png │ │ │ ├── round_radio_black_48.png │ │ │ ├── round_share_black_18.png │ │ │ ├── round_share_black_24.png │ │ │ ├── round_share_black_36.png │ │ │ └── round_share_black_48.png │ │ │ ├── drawable-xxhdpi │ │ │ ├── background.png │ │ │ ├── ic_home.png │ │ │ ├── ic_menu.png │ │ │ ├── ic_view_list.png │ │ │ ├── icon.png │ │ │ ├── logo.png │ │ │ ├── round_ballot_black_18.png │ │ │ ├── round_ballot_black_24.png │ │ │ ├── round_ballot_black_36.png │ │ │ ├── round_ballot_black_48.png │ │ │ ├── round_message_black_18.png │ │ │ ├── round_message_black_24.png │ │ │ ├── round_message_black_36.png │ │ │ ├── round_message_black_48.png │ │ │ ├── round_mic_black_18.png │ │ │ ├── round_mic_black_24.png │ │ │ ├── round_mic_black_36.png │ │ │ ├── round_mic_black_48.png │ │ │ ├── round_pause_black_18.png │ │ │ ├── round_pause_black_24.png │ │ │ ├── round_pause_black_36.png │ │ │ ├── round_pause_black_48.png │ │ │ ├── round_play_arrow_black_18.png │ │ │ ├── round_play_arrow_black_24.png │ │ │ ├── round_play_arrow_black_36.png │ │ │ ├── round_play_arrow_black_48.png │ │ │ ├── round_radio_black_18.png │ │ │ ├── round_radio_black_24.png │ │ │ ├── round_radio_black_36.png │ │ │ ├── round_radio_black_48.png │ │ │ ├── round_share_black_18.png │ │ │ ├── round_share_black_24.png │ │ │ ├── round_share_black_36.png │ │ │ └── round_share_black_48.png │ │ │ ├── drawable-xxxhdpi │ │ │ ├── background.png │ │ │ ├── ic_home.png │ │ │ ├── ic_menu.png │ │ │ ├── ic_view_list.png │ │ │ ├── icon.png │ │ │ ├── logo.png │ │ │ ├── round_ballot_black_18.png │ │ │ ├── round_ballot_black_24.png │ │ │ ├── round_ballot_black_36.png │ │ │ ├── round_ballot_black_48.png │ │ │ ├── round_message_black_18.png │ │ │ ├── round_message_black_24.png │ │ │ ├── round_message_black_36.png │ │ │ ├── round_message_black_48.png │ │ │ ├── round_mic_black_18.png │ │ │ ├── round_mic_black_24.png │ │ │ ├── round_mic_black_36.png │ │ │ ├── round_mic_black_48.png │ │ │ ├── round_pause_black_18.png │ │ │ ├── round_pause_black_24.png │ │ │ ├── round_pause_black_36.png │ │ │ ├── round_pause_black_48.png │ │ │ ├── round_play_arrow_black_18.png │ │ │ ├── round_play_arrow_black_24.png │ │ │ ├── round_play_arrow_black_36.png │ │ │ ├── round_play_arrow_black_48.png │ │ │ ├── round_radio_black_18.png │ │ │ ├── round_radio_black_24.png │ │ │ ├── round_radio_black_36.png │ │ │ ├── round_radio_black_48.png │ │ │ ├── round_share_black_18.png │ │ │ ├── round_share_black_24.png │ │ │ ├── round_share_black_36.png │ │ │ └── round_share_black_48.png │ │ │ ├── values-v21 │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ └── iOS │ │ ├── Info.plist │ │ ├── LaunchScreen.storyboard │ │ └── build.xcconfig ├── api │ ├── PodcastService.js │ ├── ShowService.js │ └── api.js ├── app.scss ├── assets │ └── images │ │ ├── blackgradient.png │ │ ├── instagram.png │ │ ├── logo.png │ │ └── microphone.png ├── components │ ├── Home.vue │ ├── Live.vue │ ├── NoConnection.vue │ ├── NoStreaming.vue │ ├── Podcasts.vue │ ├── Schedule.vue │ ├── Social.vue │ └── WriteUs.vue ├── config.js ├── fonts │ ├── .gitkeep │ ├── Socicon.ttf │ └── materialicons.ttf ├── langs │ ├── i18n.js │ ├── locales │ │ ├── en.json │ │ ├── es.json │ │ └── pt.json │ └── utils.js ├── lib │ ├── local-api.js │ └── resources │ │ ├── data.js │ │ └── showsImages │ │ ├── groot.jpg │ │ └── morita.jpg ├── main.js ├── package.json ├── router │ └── index.js ├── sass │ ├── _mixins.scss │ └── styles.scss └── store │ ├── actions.js │ ├── constants.js │ ├── getters.js │ ├── index.js │ ├── mutations.js │ └── state.js ├── babel.config.js ├── design ├── logo-telegram.jpg ├── logo-telegram.png ├── logo128x128.png ├── logo128x128.svg ├── logo520x520.png ├── logo520x520.svg ├── screen_live.png ├── screen_podcasts.png ├── screen_social.png └── screen_write_us.png ├── docs ├── Firebase-configuration-guide.md ├── Guide-to-change-app-colors.md ├── Guide-to-choose-app-social-networks.md ├── Guide-to-choose-the-sections.md ├── Guide-to-configure-your-data-source.md ├── Guide-to-generate-your-radio-app.md ├── Portuguese │ ├── Firebase-configuration-guide_pt.md │ ├── Guide-to-add-nativescript-plugin-firebase_pt.md │ └── images │ │ └── ConfigFirebase │ │ ├── 01s.png │ │ ├── 02s.png │ │ ├── 03s.png │ │ ├── 04s.png │ │ ├── 05s.png │ │ ├── 06s.png │ │ ├── 07s.png │ │ ├── 08s.png │ │ └── 12s.png ├── Spanish │ ├── ConfigFirebaseImage │ │ ├── 01s.png │ │ ├── 02s.png │ │ ├── 03s.png │ │ ├── 04s.png │ │ ├── 05s.png │ │ ├── 06s.png │ │ ├── 07s.png │ │ ├── 08s.png │ │ ├── 09s.png │ │ ├── 10s.png │ │ ├── 11s.png │ │ ├── 12s.png │ │ ├── 13s.png │ │ ├── 14s.png │ │ ├── 15s.png │ │ ├── 16s.png │ │ ├── 17s.png │ │ ├── 18s.png │ │ ├── 19s.png │ │ ├── 20s.png │ │ ├── 21s.png │ │ └── 22s.png │ ├── Firebase-configuration-guide_es.md │ ├── Guide-to-add-nativescript-plugin-firebase_es.md │ └── GuideToAddFirebaseImage │ │ ├── 01s.png │ │ ├── 02s.png │ │ ├── 03s.png │ │ ├── 04s.png │ │ ├── 05s.png │ │ ├── 06s.png │ │ └── 07s.png └── images │ ├── FirebaseConfigurationGuide │ ├── 01s.png │ ├── 02s.png │ ├── 03s.png │ ├── 04s.png │ ├── 05s.png │ ├── 06s.png │ ├── 07s.png │ ├── 08s.png │ ├── 09s.png │ ├── 10s.png │ ├── 11s.png │ ├── 12s.png │ ├── 13s.png │ ├── 14s.png │ ├── 15s.png │ ├── 16s.png │ ├── 17s.png │ ├── 18s.png │ ├── 19s.png │ ├── 20s.png │ ├── 21s.png │ ├── 22s.png │ ├── 23s.png │ ├── 24s.png │ ├── 25s.png │ ├── 26s.png │ └── 27s.png │ ├── Guide-to-change-app-colors │ ├── 01s.png │ ├── 03s.png │ ├── 04s.png │ ├── 05s.png │ ├── 06s.png │ ├── 07s.png │ ├── 10s.png │ ├── 11s.png │ ├── 12s.png │ ├── 13s.png │ ├── 14s.png │ ├── 15s.png │ ├── 16s.png │ ├── 18s.png │ ├── 19s.png │ ├── 20s.png │ ├── 21s.png │ ├── 22s.png │ ├── 23s.png │ ├── 25s.png │ ├── 26s.png │ ├── 27s.png │ ├── 28s.png │ ├── 29s.png │ ├── 30s.png │ ├── 32s.png │ ├── 33s.png │ ├── 34s.png │ ├── 35s.png │ ├── 36s.png │ ├── 37s.png │ ├── 39s.png │ ├── 40s.png │ ├── 41s.png │ ├── 42s.png │ └── 43s.png │ ├── Guide-to-choose-app-social-networks │ ├── 01s.png │ ├── 02s.png │ ├── 03s.png │ ├── 04s.png │ ├── 05s.png │ ├── 06s.png │ ├── 07s.png │ ├── 08s.png │ ├── 09s.png │ └── 10s.png │ ├── Guide-to-choose-the-sections │ ├── 01s.png │ ├── 02s.png │ ├── 03s.png │ └── 04s.png │ └── Guide-to-configure-your-data-source │ ├── 01s.png │ ├── 02s.png │ ├── 03s.png │ ├── 04s.png │ ├── 05s.png │ └── 06s.png ├── firebase.nativescript.json ├── package-lock.json ├── package.json ├── public ├── camba_icon.png └── logo.png ├── tools ├── README.md ├── assets.md ├── create-app.bash ├── guide-to-generate-a-keystore.md └── input-file-design.md └── webpack.config.js /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "node": true, 4 | "es6": true 5 | }, 6 | "parser": "vue-eslint-parser", 7 | "parserOptions": { 8 | "ecmaVersion": 2017, 9 | "sourceType": "module", 10 | "ecmaFeatures": { 11 | "vue": true 12 | } 13 | }, 14 | "extends": [ 15 | "plugin:vue-libs/recommended" 16 | ], 17 | "plugins": [ 18 | "node", 19 | "vue" 20 | ], 21 | "globals": { 22 | "TNS_ENV": true, 23 | "CUSTOMIZATION": true 24 | }, 25 | "rules": { 26 | "max-len": ["error", { "code": 80 }], 27 | "indent": ["error", 2, { 28 | "MemberExpression": "off" 29 | }], 30 | "node/no-extraneous-require": ["error", { 31 | "allowModules": [ 32 | "@vue/cli-test-utils" 33 | ] 34 | }] 35 | }, 36 | "overrides": [ 37 | { 38 | "files": ['**/__tests__/**/*.js', "**/cli-test-utils/**/*.js"], 39 | "rules": { 40 | "node/no-extraneous-require": "off" 41 | } 42 | } 43 | ] 44 | } 45 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Ns-Vue-Radio Contributing Guide 2 | 3 | Hi! We're really excited that you are interested in contributing to Ns-Vue-Radio. Before submitting your contribution, please make sure to take a moment and read through the following guidelines: 4 | 5 | + [Code of Conduct](https://github.com/Cambalab/ns-vue-radio/blob/master/.github/CODE_OF_CONDUCT.md) 6 | + [Issue Reporting Guidelines](#issue-reporting-guidelines) 7 | + [Pull Request Guidelines](#pull-request-guidelines) 8 | + [Development Setup](#development-setup) 9 | + [Project Structure](#project-structure) 10 | 11 | ## Issue Reporting Guidelines 12 | 13 | - Always use our [**bug**](https://github.com/Cambalab/ns-vue-radio/issues/new?assignees=&labels=&template=bug_report.md&title=) or [**feature**](https://github.com/Cambalab/ns-vue-radio/issues/new?assignees=&labels=&template=feature_request.md&title=) templates to create an issue. 14 | 15 | ## Pull Request Guidelines 16 | 17 | + The `master` branch is just a snapshot of the latest stable release. All development should be done in dedicated branches. **Do not submit PRs against the `master` branch.** 18 | 19 | + Checkout a topic branch from the relevant branch, e.g. `develop`, and merge back against that branch. Please follow this convention for the new branch: `issueNumber-githubUsernaame-commitTitle` 20 | 21 | + Most of the contributed work should generally target the `app` or `tools` folder. 22 | 23 | + It's OK to have multiple small commits as you work on the PR - We may squash them before merging if necessary. 24 | 25 | + Make sure `npm run test` passes. (see [**development setup**](#development-setup)) 26 | 27 | + If adding a new feature: 28 | + Provide a convincing reason to add this feature. Ideally, you should open a suggestion issue first and have it approved before working on it. 29 | 30 | + If fixing bug: 31 | + If you are resolving a special issue, please follow the branch naming convention mentioned above. 32 | + Provide a detailed description of the bug in the PR. Live demo preferred. 33 | + Add appropriate test coverage if applicable. 34 | 35 | ## Development Setup 36 | 37 | You will need [**Node.js**](http://nodejs.org) **version 10+**, a G++ compiler, JDK 8, the Android SDK and it's build tools. Here's the official [setup guide](https://docs.nativescript.org/start/ns-setup-linux). 38 | 39 | Assuming you've already configured `tns`, after cloning the forked repository, run: 40 | 41 | ```bash 42 | npm install 43 | ``` 44 | 45 | ### Committing Changes 46 | 47 | We don't expect any strict convention, but we'd be grateful if you summarize what your modifications content is about when writing a commit. 48 | 49 | ### Commonly used scripts 50 | 51 | ``` bash 52 | # Install dependencies 53 | npm install 54 | 55 | # Build for production 56 | tns build --bundle 57 | 58 | # Build for development 59 | tns build --bundle --env.development 60 | 61 | # Build, watch for changes and debug the application 62 | tns debug --bundle 63 | 64 | # Build, watch for changes and debug the application for development 65 | tns debug --bundle --env.development 66 | 67 | # Build, watch for changes and run the application 68 | tns run --bundle 69 | 70 | # Build, watch for changes and run the application for development 71 | tns run --bundle --env.development 72 | 73 | # Build, watch for changes and run the application using json_data 74 | tns run --bundle --env.jsondata 75 | ``` 76 | 77 | ## Project Structure 78 | 79 | + **`src`**: contains the application source code. The codebase is written in ES2015 and VueJs. 80 | 81 | + **`api`**: contains the network configuration and REST services implementation. 82 | 83 | + **`App_Resources`**: you'll probably never (or rarely) have to touch any file in this directory. This is where platform specific code is stored during development or after a building process. 84 | 85 | + **`components`**: contains single file components (`*.vue` files). 86 | 87 | Here we can find `Home`, this is where the rest of the components are instanced as children. The `NoConnection` is similar to a `404` page. The rest (`Live`, `Schedule`, `Podcasts`, `Social`, `WriteUs`) are sections of the application, each with different responsibilities. 88 | 89 | + **`langs`**: related to the i18n feature. Translations are stored in `.json` files and they're accesed using the `$t` global API. 90 | 91 | + **`lib`**: contains utilities AND FIXTURES shared across the entire codebase. 92 | 93 | + **`router`**: simple implementation of the Vue Router. 94 | 95 | + **`store`**: an implementation of a [**vuex**]() store module where programs, podcasts and other kind of data is managed and stored. 96 | 97 | + **`tools`**: related to changes to the automated bash script to generate radio applications. Here we can find the bash tool and usage documentation. 98 | 99 | ## Attribution 100 | 101 | This Contributing Guidelines were adapted from the [Vue.js Contributing Guide][vue-js-contributing-guide]. 102 | 103 | [vue-js-contributing-guide]: https://www.contributor-covenant.org 104 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | 5 | --- 6 | 7 | **Describe the bug** 8 | A clear and concise description of what the bug is. 9 | 10 | **To Reproduce** 11 | Steps to reproduce the behavior: 12 | 1. Go to '...' 13 | 2. Click on '....' 14 | 3. Scroll down to '....' 15 | 4. See error 16 | 17 | **Expected behavior** 18 | A clear and concise description of what you expected to happen. 19 | 20 | **Screenshots** 21 | If applicable, add screenshots to help explain your problem. 22 | 23 | **Smartphone (please complete the following information):** 24 | - Device: [e.g. iPhone6] 25 | - OS: [e.g. iOS8.1] 26 | - Browser [e.g. stock browser, safari] 27 | - Version [e.g. 22] 28 | 29 | **Additional context** 30 | Add any other context about the problem here. 31 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | **Is your feature request related to a problem? Please describe.** 8 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 9 | 10 | **Describe the solution you'd like** 11 | A clear and concise description of what you want to happen. 12 | 13 | **Describe alternatives you've considered** 14 | A clear and concise description of any alternative solutions or features you've considered. 15 | 16 | **Additional context** 17 | Add any other context or screenshots about the feature request here. 18 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Description 2 | 3 | **Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.** 4 | 5 | 13 | 14 | 15 | Fixes #(issue) 16 | 17 | 18 | Closes #(issue) 19 | 20 | ## Type of change 21 | 22 | **Please delete options that are not relevant.** 23 | 24 | 25 | 26 | - [ ] Bug fix (non-breaking change which fixes an issue) 27 | - [ ] New feature (non-breaking change which adds functionality) 28 | - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) 29 | - [ ] This change requires a documentation update 30 | 31 | ## How Has This Been Tested? 32 | 33 | **Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce the cases. Please also list any relevant details for your test configuration** 34 | 35 | 36 | 37 | - [ ] Test A 38 | - [ ] Test B 39 | 40 | 41 | 42 | **Instructions:** 43 | 44 | **1.** First instruction 45 | **2.** Second instruction 46 | **3.** Third instruction 47 | 48 | **Expected result:** a result description 49 | 50 | ## Checklist: 51 | 52 | > The following options in **bold** are required for a PR approval. Please check the boxes only if necessary, it help us minimizing the reviewing process. 53 | 54 | 55 | 56 | - [ ] **I have performed a self-review of my own code** 57 | - [ ] I have commented my code, particularly in hard-to-understand areas 58 | - [ ] I have made corresponding changes to the documentation 59 | - [ ] **My changes generate no new warnings** 60 | - [ ] I have added tests that prove my fix is effective or that my feature works 61 | - [ ] **New and existing unit tests pass locally with my changes** 62 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # JetBrains project files 2 | .idea 3 | 4 | # NPM 5 | node_modules 6 | 7 | # NativeScript application 8 | hooks 9 | platforms 10 | 11 | environments 12 | 13 | # Firebase 14 | google-services.json 15 | 16 | # Assets 17 | app/App_Resources/iOS/Assets.xcassets/ 18 | background.png 19 | icon.png 20 | logo.png 21 | !app/assets/images/logo.png 22 | !public/logo.png 23 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. 6 | 7 | ## Our Standards 8 | 9 | Examples of behavior that contributes to creating a positive environment include: 10 | 11 | * Using welcoming and inclusive language 12 | * Being respectful of differing viewpoints and experiences 13 | * Gracefully accepting constructive criticism 14 | * Focusing on what is best for the community 15 | * Showing empathy towards other community members 16 | 17 | Examples of unacceptable behavior by participants include: 18 | 19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances 20 | * Trolling, insulting/derogatory comments, and personal or political attacks 21 | * Public or private harassment 22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission 23 | * Other conduct which could reasonably be considered inappropriate in a professional setting 24 | 25 | ## Our Responsibilities 26 | 27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. 28 | 29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. 30 | 31 | ## Scope 32 | 33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. 34 | 35 | ## Enforcement 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at info@camba.coop. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. 38 | 39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. 40 | 41 | ## Attribution 42 | 43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] 44 | 45 | [homepage]: http://contributor-covenant.org 46 | [version]: http://contributor-covenant.org/version/1/4/ 47 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | Vue-Admin logo 4 | 5 |

6 | 7 |

Ns-Vue-Radio is a native white-label application built with NativeScript-Vue for community radios

8 | 9 | --- 10 | 11 |
12 | 13 |
14 | 15 | ## Download and Install 16 | 17 | Download the [command line tools](https://developer.android.com/studio/#downloads) from the android website. 18 | 19 | Follow this steps: 20 | - [NativeScript Advanced Setup: Linux](https://docs.nativescript.org/start/ns-setup-linux) 21 | - [Setup Android Emulators](https://docs.nativescript.org/tooling/android-virtual-devices) 22 | 23 | ## Generate your radio application 24 | 25 | Follow instructions in our [guide to generate your radio app](./docs/Guide-to-generate-your-radio-app.md). 26 | 27 | ## FCM Firebase Cloud Messaging 28 | - [Enabling Firebase Cloud Messaging](https://github.com/EddyVerbruggen/nativescript-plugin-firebase/blob/master/docs/MESSAGING.md) 29 | 30 | Don't forget to copy your `google-services.json` to -> `template/app/App_Resources/Android/` folder, follow steps here: 31 | - [firebase conguration guide](./docs/Firebase-configuration-guide.md) 32 | 33 | "nativescript-plugin-firebase": "7.1.2", 34 | 35 | ## Usage 36 | 37 | ``` bash 38 | # Install dependencies 39 | npm install 40 | 41 | # Build for production 42 | tns build --bundle 43 | 44 | # Build for development 45 | tns build --bundle --env.development 46 | 47 | # Build, watch for changes and debug the application 48 | tns debug --bundle 49 | 50 | # Build, watch for changes and debug the application for development 51 | tns debug --bundle --env.development 52 | 53 | # Build, watch for changes and run the application 54 | tns run --bundle 55 | 56 | # Build, watch for changes and run the application for development 57 | tns run --bundle --env.development 58 | 59 | # Build, watch for changes and run the application using json_data 60 | tns run --bundle --env.jsondata 61 | ``` 62 | 63 | - Instructions to debug using [VueDevtools](https://nativescript-vue.org/en/docs/getting-started/vue-devtools/) 64 | 65 | ## Clean the NativeScript application instance 66 | 67 | > i.e. rm -rf platforms 68 | ``` 69 | npm run clean 70 | ``` 71 | 72 | For detailed instructions, see [vue-cli-template](https://github.com/nativescript-vue/vue-cli-template) 73 | 74 | ## Contribution 75 | 76 | License 77 | 78 | Please make sure to read the [**Contributing Guide**](https://github.com/Cambalab/ns-vue-radio/blob/master/.github/CONTRIBUTING.md) before making a pull request. 79 | 80 | ## License 81 | 82 | This software is licensed under the [GNU GPLv3 License](LICENSE), and sponsored by [Cambá](https://www.camba.coop). 83 | 84 | 85 | --- 86 |

87 | 88 | 89 | 90 | With :green_heart: :purple_heart: :heart: by Cambá Coop :earth_americas: Buenos Aires, Argentina 91 | 92 | 93 | 94 |

95 | -------------------------------------------------------------------------------- /app/App_Resources/Android/app.gradle: -------------------------------------------------------------------------------- 1 | // Add your native dependencies here: 2 | 3 | android { 4 | defaultConfig { 5 | generatedDensities = [] 6 | applicationId = "coop.radio.app" 7 | ndk { 8 | abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64' 9 | } 10 | } 11 | aaptOptions { 12 | additionalParameters "--no-version-vectors" 13 | } 14 | } 15 | 16 | project.ext { 17 | googlePlayServicesVersion = "+" 18 | } 19 | -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/background.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/ic_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/ic_home.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/ic_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/ic_menu.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/ic_view_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/ic_view_list.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/logo.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_ballot_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_ballot_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_ballot_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_ballot_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_ballot_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_ballot_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_ballot_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_ballot_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_message_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_message_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_message_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_message_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_message_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_message_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_message_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_message_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_mic_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_mic_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_mic_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_mic_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_mic_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_mic_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_mic_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_mic_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_pause_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_pause_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_pause_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_pause_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_pause_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_pause_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_pause_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_pause_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_play_arrow_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_play_arrow_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_play_arrow_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_play_arrow_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_play_arrow_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_play_arrow_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_play_arrow_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_play_arrow_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_radio_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_radio_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_radio_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_radio_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_radio_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_radio_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_radio_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_radio_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_share_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_share_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_share_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_share_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_share_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_share_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-hdpi/round_share_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-hdpi/round_share_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-ldpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-ldpi/background.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-ldpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-ldpi/icon.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-ldpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-ldpi/logo.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/background.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/icon.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/logo.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_ballot_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_ballot_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_ballot_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_ballot_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_ballot_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_ballot_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_ballot_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_ballot_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_message_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_message_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_message_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_message_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_message_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_message_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_message_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_message_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_mic_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_mic_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_mic_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_mic_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_mic_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_mic_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_mic_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_mic_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_pause_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_pause_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_pause_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_pause_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_pause_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_pause_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_pause_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_pause_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_play_arrow_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_play_arrow_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_play_arrow_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_play_arrow_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_play_arrow_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_play_arrow_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_play_arrow_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_play_arrow_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_radio_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_radio_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_radio_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_radio_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_radio_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_radio_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_radio_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_radio_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_share_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_share_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_share_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_share_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_share_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_share_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-mdpi/round_share_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-mdpi/round_share_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-nodpi/splash_screen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/background.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/ic_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/ic_home.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/ic_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/ic_menu.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/ic_view_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/ic_view_list.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/icon.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_ballot_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_ballot_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_ballot_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_ballot_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_ballot_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_ballot_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_ballot_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_ballot_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_message_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_message_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_message_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_message_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_message_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_message_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_message_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_message_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_mic_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_mic_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_mic_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_mic_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_mic_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_mic_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_mic_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_mic_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_pause_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_pause_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_pause_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_pause_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_pause_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_pause_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_pause_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_pause_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_play_arrow_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_play_arrow_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_play_arrow_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_play_arrow_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_play_arrow_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_play_arrow_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_play_arrow_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_play_arrow_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_radio_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_radio_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_radio_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_radio_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_radio_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_radio_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_radio_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_radio_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_share_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_share_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_share_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_share_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_share_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_share_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xhdpi/round_share_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xhdpi/round_share_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/ic_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/ic_home.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/ic_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/ic_menu.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/ic_view_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/ic_view_list.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/icon.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_ballot_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_ballot_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_ballot_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_ballot_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_ballot_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_ballot_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_ballot_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_ballot_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_message_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_message_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_message_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_message_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_message_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_message_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_message_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_message_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_mic_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_mic_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_mic_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_mic_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_mic_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_mic_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_mic_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_mic_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_pause_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_pause_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_pause_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_pause_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_pause_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_pause_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_pause_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_pause_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_play_arrow_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_play_arrow_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_play_arrow_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_play_arrow_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_play_arrow_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_play_arrow_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_play_arrow_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_play_arrow_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_radio_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_radio_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_radio_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_radio_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_radio_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_radio_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_radio_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_radio_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_share_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_share_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_share_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_share_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_share_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_share_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_share_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxhdpi/round_share_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/ic_home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/ic_home.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/ic_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/ic_menu.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/ic_view_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/ic_view_list.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/icon.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_ballot_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_ballot_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_ballot_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_ballot_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_ballot_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_ballot_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_ballot_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_ballot_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_message_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_message_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_message_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_message_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_message_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_message_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_message_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_message_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_mic_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_mic_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_mic_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_mic_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_mic_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_mic_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_mic_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_mic_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_pause_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_pause_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_pause_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_pause_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_pause_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_pause_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_pause_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_pause_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_play_arrow_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_play_arrow_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_play_arrow_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_play_arrow_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_play_arrow_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_play_arrow_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_play_arrow_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_play_arrow_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_radio_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_radio_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_radio_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_radio_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_radio_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_radio_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_radio_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_radio_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_share_black_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_share_black_18.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_share_black_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_share_black_24.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_share_black_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_share_black_36.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_share_black_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/round_share_black_48.png -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/values-v21/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3d5afe 4 | -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/values-v21/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Radio 4 | Radio 5 | 6 | -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 11 | 14 | 15 | 16 | 19 | 20 | 23 | -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #F5F5F5 4 | #757575 5 | #33B5E5 6 | #272734 7 | -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Radio 4 | Radio 5 | 6 | -------------------------------------------------------------------------------- /app/App_Resources/Android/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 17 | 18 | 20 | 21 | 22 | 29 | 30 | 32 | 33 | 34 | 39 | 40 | 42 | 43 | -------------------------------------------------------------------------------- /app/App_Resources/iOS/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | Radio 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0.0 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIRequiresFullScreen 28 | 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /app/App_Resources/iOS/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /app/App_Resources/iOS/build.xcconfig: -------------------------------------------------------------------------------- 1 | // You can add custom settings here 2 | // for example you can uncomment the following line to force distribution code signing 3 | // CODE_SIGN_IDENTITY = iPhone Distribution 4 | // To build for device with Xcode 8 you need to specify your development team. More info: https://developer.apple.com/library/prerelease/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html 5 | // DEVELOPMENT_TEAM = YOUR_TEAM_ID; 6 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 7 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 8 | -------------------------------------------------------------------------------- /app/api/PodcastService.js: -------------------------------------------------------------------------------- 1 | import api from './api' 2 | import config from '../config' 3 | 4 | const { 5 | endpointUrls: { 6 | podcasts 7 | } 8 | } = config 9 | 10 | export default { 11 | getPodcasts (qty) { 12 | return api.get(podcasts) 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/api/ShowService.js: -------------------------------------------------------------------------------- 1 | import api from './api' 2 | import config from '../config' 3 | 4 | const { 5 | endpointUrls: { 6 | currentShow, 7 | shows 8 | } 9 | } = config 10 | 11 | export default { 12 | getCurrentShow () { 13 | return api.get(currentShow) 14 | }, 15 | getShows () { 16 | return api.get(shows) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/api/api.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios/dist/axios' 2 | import config from '../config' 3 | import LocalApi from '../lib/local-api' 4 | 5 | let api = null 6 | 7 | if (config.jsondata) { 8 | api = new LocalApi() 9 | } else { 10 | api = axios.create({ 11 | baseURL: config.apiUrl, 12 | withCredentials: false, 13 | headers: { 14 | 'Accept': 'application/json', 15 | 'Content-Type': 'application/json' 16 | } 17 | }) 18 | } 19 | 20 | export default api 21 | -------------------------------------------------------------------------------- /app/app.scss: -------------------------------------------------------------------------------- 1 | // NativeScript core theme 2 | // @see https://docs.nativescript.org/ui/theme 3 | @import '~nativescript-theme-core/scss/light'; 4 | 5 | // Override variables here 6 | 7 | @import '~nativescript-theme-core/scss/index'; 8 | 9 | // Global SCSS styling 10 | // @see https://docs.nativescript.org/ui/styling 11 | -------------------------------------------------------------------------------- /app/assets/images/blackgradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/assets/images/blackgradient.png -------------------------------------------------------------------------------- /app/assets/images/instagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/assets/images/instagram.png -------------------------------------------------------------------------------- /app/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/assets/images/logo.png -------------------------------------------------------------------------------- /app/assets/images/microphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/assets/images/microphone.png -------------------------------------------------------------------------------- /app/components/Home.vue: -------------------------------------------------------------------------------- 1 | 34 | 120 | -------------------------------------------------------------------------------- /app/components/NoConnection.vue: -------------------------------------------------------------------------------- 1 | 16 | 68 | -------------------------------------------------------------------------------- /app/components/NoStreaming.vue: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /app/components/Podcasts.vue: -------------------------------------------------------------------------------- 1 | 92 | 174 | -------------------------------------------------------------------------------- /app/components/Schedule.vue: -------------------------------------------------------------------------------- 1 | 63 | 140 | -------------------------------------------------------------------------------- /app/components/Social.vue: -------------------------------------------------------------------------------- 1 | 28 | 74 | -------------------------------------------------------------------------------- /app/components/WriteUs.vue: -------------------------------------------------------------------------------- 1 | 19 | 66 | -------------------------------------------------------------------------------- /app/config.js: -------------------------------------------------------------------------------- 1 | const { 2 | appId, 3 | apiUrl, 4 | name: { 5 | humanReadableName, 6 | applicationName 7 | }, 8 | bottomNavigationBar: { 9 | activeColor: navActiveColor, 10 | backgroundColor: navBackgroundColor, 11 | inactiveColor: navInactiveColor 12 | }, 13 | colors: { 14 | backgroundColor: appBackgroundColor, 15 | primaryText, 16 | secondaryText 17 | }, 18 | phoneNumber, 19 | dataAdapter, 20 | sections, 21 | social: { 22 | facebookUrl, 23 | instagramUrl, 24 | twitterUrl 25 | }, 26 | stream, 27 | currentShowEndpoint, 28 | showsEndpoint, 29 | podcastsEndpoint, 30 | writeEmailTo 31 | } = CUSTOMIZATION 32 | 33 | const config = { 34 | 'appId': appId || 'coop.radio.app', 35 | 'jsondata': false, 36 | 'colors': { 37 | 'appBackgroundColor': { 38 | backgroundColor: appBackgroundColor || '#432f4f' 39 | }, 40 | 'bottomNavigationBar': { 41 | activeColor: navActiveColor || '#E500A2', 42 | backgroundColor: navBackgroundColor || '#1a121f', 43 | inactiveColor: navInactiveColor || '#808080' 44 | }, 45 | 'panelBackgroundColor': { 46 | backgroundColor: navBackgroundColor || '#1a121f' 47 | }, 48 | 'primaryText': { 49 | color: primaryText || '#E500A2' 50 | }, 51 | 'secondaryText': { 52 | color: secondaryText || '#ffffff' 53 | } 54 | }, 55 | 'phoneNumber': phoneNumber || '', 56 | 'name': { 57 | applicationName: applicationName, 58 | humanReadableName: humanReadableName 59 | }, 60 | 'sections': sections || [ 61 | 'Live', 62 | 'Schedule', 63 | 'WriteUs', 64 | 'Podcasts', 65 | 'Social' 66 | ], 67 | 'shareApp': { 68 | 'playStoreUrl': `https://play.google.com/store/apps/details?id=${appId}` 69 | }, 70 | 'socialNetworks': [ 71 | { 72 | link2App: 'com.facebook', 73 | link2Page: facebookUrl, 74 | iconId: '\ue028', 75 | iconColor: '#fafafa', 76 | background: '#365899' 77 | }, 78 | { 79 | link2App: 'com.instagram', 80 | link2Page: instagramUrl, 81 | iconId: '\ue044', 82 | iconColor: '#fafafa', 83 | backgroundImage: '~/assets/images/instagram.png' 84 | }, 85 | { 86 | link2App: 'com.twitter', 87 | link2Page: twitterUrl, 88 | iconId: '\ue08d', 89 | iconColor: '#fafafa', 90 | background: '#006dbf' 91 | } 92 | ], 93 | 'stream': stream, 94 | apiUrl, 95 | 'endpointUrls': { 96 | currentShow: currentShowEndpoint || '/api/programs/current/?radio_name=' + applicationName, 97 | shows: showsEndpoint || '/api/programs/?radio_name=' + applicationName, 98 | podcasts: podcastsEndpoint || '/api/podcasts/?limit=30&radio_name=' + applicationName 99 | }, 100 | 'dataAdapter': dataAdapter || { 101 | podcastsAdapter: (response) => { 102 | return response.data 103 | }, 104 | showsAdapter: (response) => { 105 | return response.data 106 | }, 107 | currentShowAdapter: (response) => { 108 | return response.data 109 | } 110 | }, 111 | 'writeEmailTo': writeEmailTo || ['info@camba.coop'] 112 | } 113 | 114 | export default config 115 | -------------------------------------------------------------------------------- /app/fonts/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/fonts/.gitkeep -------------------------------------------------------------------------------- /app/fonts/Socicon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/fonts/Socicon.ttf -------------------------------------------------------------------------------- /app/fonts/materialicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/fonts/materialicons.ttf -------------------------------------------------------------------------------- /app/langs/i18n.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueI18n from 'vue-i18n' 3 | import en from './locales/en.json' 4 | import es from './locales/es.json' 5 | import pt from './locales/pt.json' 6 | 7 | Vue.use(VueI18n) 8 | 9 | const locale = 'en' 10 | const messages = { 11 | en, 12 | es, 13 | pt 14 | } 15 | 16 | export const i18n = new VueI18n({ 17 | locale, 18 | messages 19 | }) 20 | -------------------------------------------------------------------------------- /app/langs/locales/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "writeUs": "Write us", 3 | "messageToShareApp": "Download the app", 4 | "sendUs": "Send us a message by email or whatsapp by clicking on the buttons below.", 5 | "contactUsViaEmail": "Contact us via Email", 6 | "contactUsViaWhatsapp": "Contact us via Whatsapp", 7 | "thereWasAProblemPlayingTheStream": "There was a problem playing the stream", 8 | "thereWasAProblemPlayingThisPodcast": "There was a problem playing this podcast", 9 | "understood": "Understood", 10 | "error": "Error", 11 | "youAreListeningTo": "You Are Listening to", 12 | "programNotAvailable": "Programming not available", 13 | "live": "Live", 14 | "visitOurSocialNetworks": "Visit our social networks", 15 | "shareApp": "Share application", 16 | "social": "Social", 17 | "schedule": "Schedule", 18 | "thereWasAnErrorWithTheConnection": "There was an error with the connection", 19 | "thereWasAnErrorWithTheStreaming": "There was an error with streaming", 20 | "updateConnection": "Update Connection", 21 | "updateStreaming": "Update Streaming", 22 | "monday": "Monday", 23 | "tuesday": "Tuesday", 24 | "wednesday": "Wednesday", 25 | "thursday": "Thursday", 26 | "friday": "Friday", 27 | "saturday": "Saturday", 28 | "sunday": "Sunday" 29 | } 30 | -------------------------------------------------------------------------------- /app/langs/locales/es.json: -------------------------------------------------------------------------------- 1 | { 2 | "writeUs": "Escríbenos", 3 | "messageToShareApp": "Descargate la app", 4 | "sendUs": "Envianos un mensaje por email o whatsapp haciendo click en los botones de abajo.", 5 | "contactUsViaEmail": "Contáctanos vía Email", 6 | "contactUsViaWhatsapp": "Contáctanos vía Whatsapp", 7 | "thereWasAProblemPlayingTheStream": "Hubo un problema reproduciendo la transmisión", 8 | "thereWasAProblemPlayingThisPodcast": "Hubo un problema reproduciendo este podcast", 9 | "understood": "Entendido", 10 | "error": "Error", 11 | "youAreListeningTo": "Estás escuchando", 12 | "programNotAvailable": "Programación no disponible", 13 | "live": "Vivo", 14 | "visitOurSocialNetworks": "Visitanos en nuestras redes sociales", 15 | "shareApp": "Compartir aplicación", 16 | "social": "Redes", 17 | "schedule": "Programación", 18 | "thereWasAnErrorWithTheConnection": "Se produjo un error de conexión", 19 | "thereWasAnErrorWithTheStreaming": "Se produjo un error con la transmisión", 20 | "updateConnection": "Actualizar conexión", 21 | "updateStreaming": "Actualizar transmisión", 22 | "monday": "Lunes", 23 | "tuesday": "Martes", 24 | "wednesday": "Miércoles", 25 | "thursday": "Jueves", 26 | "friday": "Viernes", 27 | "saturday": "Sábado", 28 | "sunday": "Domingo" 29 | } 30 | -------------------------------------------------------------------------------- /app/langs/locales/pt.json: -------------------------------------------------------------------------------- 1 | { 2 | "writeUs": "Escreva para nós", 3 | "messageToShareApp": "Baixar o aplicativo", 4 | "sendUs": "Envie-nos uma mensagem por e-mail ou whatsapp clicando nos botões abaixo.", 5 | "contactUsViaEmail": "Entre em contato via e-mail", 6 | "contactUsViaWhatsapp": "Entre em contato via Whatsapp", 7 | "thereWasAProblemPlayingTheStream": "Houve um problema ao reproduzir o fluxo", 8 | "thereWasAProblemPlayingThisPodcast": "Houve um problema ao reproduzir este podcast", 9 | "understood": "Entendido", 10 | "error": "Erro", 11 | "youAreListeningTo": "Você está ouvindo", 12 | "programNotAvailable": "Programação não disponível", 13 | "live": "Ao Vivo", 14 | "visitOurSocialNetworks": "Visite nossas redes sociais", 15 | "shareApp": "Compartilhar aplicativo", 16 | "social": "Social", 17 | "schedule": "Programação", 18 | "thereWasAnErrorWithTheConnection": "Houve um erro com a conexão", 19 | "thereWasAnErrorWithTheStreaming": "Houve um erro com a transmissão", 20 | "updateConnection": "Atualizar conexão", 21 | "updateStreaming": "Atualizar transmissão", 22 | "monday": "Segunda", 23 | "tuesday": "Terça", 24 | "wednesday": "Quarta", 25 | "thursday": "Quinta", 26 | "friday": "Sexta", 27 | "saturday": "Sábado", 28 | "sunday": "Domingo" 29 | } 30 | -------------------------------------------------------------------------------- /app/langs/utils.js: -------------------------------------------------------------------------------- 1 | import { i18n } from './i18n' 2 | 3 | export function setLanguage (language) { 4 | i18n.locale = language 5 | 6 | const html = document.querySelector('html') 7 | if (html != null) { 8 | html.setAttribute('lang', language) 9 | } 10 | } 11 | 12 | export function setLanguageAndLocale (language, locale) { 13 | setLanguage(language) 14 | i18n.setLocaleMessage(language, locale) 15 | } 16 | 17 | export async function loadLanguageFile (language = 'en') { 18 | return await loadLanguageDomains(language) 19 | } 20 | 21 | async function loadLanguageDomains (language) { 22 | const locale = await import(`./../langs/locales/${language}.json`) 23 | return locale 24 | } 25 | -------------------------------------------------------------------------------- /app/lib/local-api.js: -------------------------------------------------------------------------------- 1 | import data from './resources/data' 2 | 3 | class LocalApi { 4 | constructor () { 5 | this.data = data 6 | } 7 | 8 | get (id) { 9 | let res = [] 10 | switch (true) { 11 | case id.includes('/api/programs', 0): 12 | res = { 13 | status: 200, 14 | data: this.data.shows 15 | } 16 | break 17 | case id.includes('/api/programs/current', 0): 18 | res = { 19 | status: 200, 20 | data: this.data.currentshow 21 | } 22 | break 23 | case id.includes('/api/podcasts', 0): 24 | res = { 25 | status: 200, 26 | data: { 27 | 'results': this.data.podcasts 28 | } 29 | } 30 | break 31 | default: 32 | res = { 33 | status: 200, 34 | data: {} 35 | } 36 | break 37 | } 38 | return Promise.resolve(res) 39 | } 40 | } 41 | 42 | export default LocalApi 43 | -------------------------------------------------------------------------------- /app/lib/resources/data.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | 'shows': [ 3 | { 4 | 'title': 'Show title', 5 | 'hours': 'From 11:00 - 13:00, on Monday to Friday', 6 | 'content': 'Show description', 7 | 'init_hour': '11:00:00', // hh:mm:ss 8 | 'days': '[u"1", u"2", u"3", u"4", u"5"]', // [Monday, Tuesday, Wednesday, Thursday, Friday] 9 | 'image': '~/lib/resources/showsImages/groot.jpg' // url image 10 | }, 11 | { 12 | 'title': 'Show title', 13 | 'hours': 'From 14:00 - 16:00, on Saturday and Sunday', 14 | 'content': 'Show description', 15 | 'init_hour': '14:00:00', // hh:mm:ss 16 | 'days': '[u"6", u"7"]', // [Saturday, Sunday] 17 | 'image': '~/lib/resources/showsImages/morita.jpg' // url image 18 | } 19 | ], 20 | 'podcasts': [ 21 | { 22 | 'title': 'Event', 23 | 'content': '

This is a event description.

', 24 | 'file_download': 'https://' // audio file 25 | }, 26 | { 27 | 'title': 'News', 28 | 'content': '

This is a news description.

', 29 | 'file_download': 'https://' // audio file 30 | } 31 | ], 32 | 'currentshow': { 33 | 'show': 'Show title' 34 | } 35 | } 36 | 37 | export default data 38 | -------------------------------------------------------------------------------- /app/lib/resources/showsImages/groot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/lib/resources/showsImages/groot.jpg -------------------------------------------------------------------------------- /app/lib/resources/showsImages/morita.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/app/lib/resources/showsImages/morita.jpg -------------------------------------------------------------------------------- /app/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'nativescript-vue' 2 | import { i18n } from './langs/i18n' 3 | import VueDevtools from 'nativescript-vue-devtools' 4 | import store from './store' 5 | import './sass/styles.scss' 6 | import Home from './components/Home.vue' 7 | 8 | if (TNS_ENV !== 'production') { 9 | Vue.use(VueDevtools, { host: 'your-lan-ip' }) 10 | } 11 | 12 | // Prints Vue logs when --env.production is *NOT* set while building 13 | Vue.config.silent = (TNS_ENV === 'production') 14 | 15 | Vue.registerElement('BottomNavigationBar', () => require('nativescript-bottom-navigation').BottomNavigation) 16 | Vue.registerElement('BottomNavigationTab', () => require('nativescript-bottom-navigation').BottomNavigationTab) 17 | Vue.registerElement('OnTabSelectedEventData', () => require('nativescript-bottom-navigation')) 18 | Vue.registerElement('CardView', () => require('nativescript-cardview').CardView) 19 | 20 | const app = new Vue({ 21 | store, 22 | i18n, 23 | render: h => h('frame', [h(Home)]) 24 | }) 25 | 26 | Vue.nextTick(() => { 27 | store.dispatch('loadDefaultLanguage') 28 | app.$start() 29 | }) 30 | -------------------------------------------------------------------------------- /app/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "android": { 3 | "v8Flags": "--expose_gc" 4 | }, 5 | "main": "main", 6 | "name": "radio", 7 | "version": "1.0.0" 8 | } 9 | -------------------------------------------------------------------------------- /app/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'nativescript-vue' 2 | import VueRouter from 'vue-router' 3 | 4 | Vue.use(VueRouter) 5 | 6 | import Home from '../components/Home' 7 | 8 | const router = new VueRouter({ 9 | pageRouting: true, 10 | routes: [ 11 | { 12 | path: '/home', 13 | component: Home, 14 | meta: { 15 | title: 'Home' 16 | } 17 | }, 18 | { path: '*', redirect: '/home' } 19 | ] 20 | }) 21 | 22 | router.replace('/home') 23 | 24 | module.exports = router 25 | -------------------------------------------------------------------------------- /app/sass/_mixins.scss: -------------------------------------------------------------------------------- 1 | // All reusable chunks of css go here 2 | 3 | // Backgrounds 4 | 5 | .orange { 6 | background-color: $orange; 7 | } 8 | 9 | .cyan { 10 | background-color: $cyan; 11 | } 12 | 13 | .yellow { 14 | background-color: $yellow; 15 | } 16 | 17 | .grey { 18 | background-color: $grey; 19 | } 20 | 21 | .blue { 22 | background-color: $blue; 23 | } 24 | 25 | // Text 26 | 27 | .text-orange { 28 | color: $orange; 29 | } 30 | 31 | .text-cyan { 32 | color: $cyan; 33 | } 34 | 35 | .text-yellow { 36 | color: $yellow; 37 | } 38 | 39 | .bold { 40 | font-weight: bold; 41 | } 42 | -------------------------------------------------------------------------------- /app/sass/styles.scss: -------------------------------------------------------------------------------- 1 | // NativeScript core theme 2 | // @see https://docs.nativescript.org/ui/theme 3 | @import '~nativescript-theme-core/scss/skins/dark/index'; 4 | @import '~nativescript-theme-core/scss/index'; 5 | 6 | // COLORS 7 | $cyan: #32DAC4; 8 | $orange: #F63E00; 9 | $yellow: #f9ce35; 10 | $grey: #282928; 11 | $blue: #000028; 12 | $white: #ffffff; 13 | $violet: #432f4f; 14 | $dark-violet: #1a121f; 15 | $red: #E60000; 16 | $purple: #E500A2; 17 | 18 | @import 'mixins'; 19 | 20 | .mdi { 21 | font-family: MaterialDesign, materialicons; 22 | } 23 | 24 | .sci { 25 | font-family: Socicon, Socicon; 26 | } 27 | // Global SCSS styling 28 | // @see https://docs.nativescript.org/ui/styling 29 | -------------------------------------------------------------------------------- /app/store/actions.js: -------------------------------------------------------------------------------- 1 | import { setLanguage, setLanguageAndLocale, loadLanguageFile } from '../langs/utils' 2 | const lang = require('tns-core-modules/platform').device.language 3 | import { SET_LANGUAGE, SUCCESS_LANGUAGE_FETCH, } from './constants' 4 | 5 | export function loadDefaultLanguage ({ dispatch }) { 6 | const currentLanguage = lang.split('-')[0] 7 | dispatch('changeLanguage', currentLanguage) 8 | } 9 | 10 | export async function changeLanguage ({ commit, state }, language) { 11 | if (state.loadedLanguages.includes(language)) { 12 | setLanguage(language) 13 | commit(SET_LANGUAGE, { language }) 14 | return 15 | } 16 | 17 | const locale = await loadLanguageFile(language) 18 | setLanguageAndLocale(language, locale) 19 | commit(SUCCESS_LANGUAGE_FETCH, { language }) 20 | commit(SET_LANGUAGE, { language }) 21 | } 22 | 23 | export const actions = { 24 | loadDefaultLanguage, 25 | changeLanguage 26 | } 27 | -------------------------------------------------------------------------------- /app/store/constants.js: -------------------------------------------------------------------------------- 1 | export const FIREBASE_INIT = 'FIREBASE_INIT' 2 | export const PAUSE = 'PAUSE' 3 | export const PLAY_URL = 'PLAY_URL' 4 | export const SET_CONNECTION = 'SET_CONNECTION' 5 | export const SET_CURRENT_TAB = 'SET_CURRENT_TAB' 6 | export const SET_FOREGROUND = 'SET_FOREGROUND' 7 | export const SET_LANGUAGE = 'SET_LANGUAGE' 8 | export const SET_LAST_MESSAGE_ID = 'SET_LAST_MESSAGE_ID' 9 | export const SET_PLAY_PROMISE = 'SET_PLAY_PROMISE' 10 | export const SET_PLAYER = 'SET_PLAYER' 11 | export const SET_PLAYER_SCREEN = 'SET_PLAYER_SCREEN' 12 | export const SET_PLAYING = 'SET_PLAYING' 13 | export const SET_STREAMING = 'SET_STREAMING' 14 | export const SUCCESS_LANGUAGE_FETCH = 'SUCCESS_LANGUAGE_FETCH' 15 | -------------------------------------------------------------------------------- /app/store/getters.js: -------------------------------------------------------------------------------- 1 | export const getPlayer = state => { 2 | return state.player 3 | } 4 | 5 | export const getPlayPromise = state => { 6 | return state.playPromise 7 | } 8 | 9 | export const getPlayerScreen = state => { 10 | return state.playerScreen 11 | } 12 | 13 | export const getCurrentTab = state => { 14 | return state.currentTab 15 | } 16 | 17 | export const getFirebase = state => { 18 | return state.firebase 19 | } 20 | 21 | export const getForeground = state => { 22 | return state.foreground 23 | } 24 | 25 | export const getLastMessageId = state => { 26 | return state.lastMessageId 27 | } 28 | 29 | export const getConnection = state => { 30 | return state.connection 31 | } 32 | 33 | export const getStreamingUp = state => { 34 | return state.streamingUp 35 | } 36 | 37 | export const getPlaying = state => { 38 | return state.playing 39 | } 40 | -------------------------------------------------------------------------------- /app/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'nativescript-vue' 2 | import Vuex from 'vuex' 3 | import mutations from './mutations' 4 | import * as getters from './getters' 5 | import { actions } from './actions' 6 | import { State } from './state' 7 | // import firebase from 'nativescript-plugin-firebase' 8 | 9 | Vue.use(Vuex) 10 | 11 | const debug = process.env.NODE_ENV !== 'production' 12 | 13 | const store = new Vuex.Store({ 14 | state: new State(), 15 | mutations, 16 | getters, 17 | actions, 18 | strict: debug 19 | }) 20 | 21 | Vue.prototype.$store = store 22 | 23 | export default store 24 | -------------------------------------------------------------------------------- /app/store/mutations.js: -------------------------------------------------------------------------------- 1 | import { i18n } from '../langs/i18n.js' 2 | import { 3 | FIREBASE_INIT, 4 | PLAY_URL, 5 | PAUSE, 6 | SET_CONNECTION, 7 | SET_FOREGROUND, 8 | SET_LANGUAGE, 9 | SET_LAST_MESSAGE_ID, 10 | SET_CURRENT_TAB, 11 | SET_PLAYER, 12 | SUCCESS_LANGUAGE_FETCH, 13 | SET_PLAY_PROMISE, 14 | SET_PLAYER_SCREEN, 15 | SET_STREAMING, 16 | SET_PLAYING 17 | } from './constants' 18 | 19 | 20 | export default { 21 | [SET_PLAYER]: (state, player) => { 22 | state.player = player 23 | }, 24 | [PLAY_URL]: (state, url) => { 25 | const playerOptions = { 26 | audioFile: url, 27 | loop: false, 28 | errorCallback: err => { 29 | console.log('ERROR CALLBACK', err) 30 | state.streamingUp = false 31 | }, 32 | completeCallback: () => { 33 | console.log('COMPLETE CALLBACK') 34 | state.streamingUp = false 35 | }, 36 | infoCallback: info => { 37 | console.log('INFO CALLBACK:', JSON.stringify(info)) 38 | state.streamingUp = false 39 | } 40 | } 41 | state.playPromise = state.player.playFromUrl(playerOptions) 42 | }, 43 | [PAUSE]: state => { 44 | state.player.pause() 45 | }, 46 | [SET_PLAY_PROMISE]: (state, promise) => { 47 | state.playPromise = promise 48 | }, 49 | [SET_PLAYER_SCREEN]: (state, playerScreen) => { 50 | state.playerScreen = playerScreen 51 | }, 52 | [SET_CURRENT_TAB]: (state, newTab) => { 53 | state.currentTab = state.sections[newTab] 54 | }, 55 | [SET_FOREGROUND]: (state, value) => { 56 | state.foreground = value 57 | }, 58 | [SET_LAST_MESSAGE_ID]: (state, value) => { 59 | state.lastMessageId = value 60 | }, 61 | [FIREBASE_INIT]: (state, store) => { 62 | state.firebase 63 | .init({ 64 | // If the app is in the foreground, onMessageReceivedCallback will be 65 | // called when either notification type is received. 66 | onMessageReceivedCallback: function (message) { 67 | const tabName = getTabName(message) 68 | if (message.foreground) { 69 | alert({ 70 | title: message.title, 71 | message: message.body, 72 | okButtonText: 'OK' 73 | }).then(() => { 74 | store.commit(SET_FOREGROUND, true) 75 | changeTab(tabName) 76 | }) 77 | } else { 78 | store.commit(SET_FOREGROUND, false) 79 | if (message.data['google.message_id'] !== store.getters.getLastMessageId) { 80 | changeTab(tabName) 81 | store.commit(SET_LAST_MESSAGE_ID, message.data['google.message_id']) 82 | } 83 | } 84 | } 85 | }) 86 | .then( 87 | () => { 88 | state.firebase.subscribeToTopic('general').then(() => console.log('Subscribed to topic general')) 89 | state.firebase.subscribeToTopic('live').then(() => console.log('Subscribed to topic live')) 90 | state.firebase.subscribeToTopic('schedule').then(() => console.log('Subscribed to topic schedule')) 91 | state.firebase.subscribeToTopic('writeus').then(() => console.log('Subscribed to topic writeus')) 92 | state.firebase.subscribeToTopic('podcasts').then(() => console.log('Subscribed to topic podcasts')) 93 | state.firebase.subscribeToTopic('social').then(() => console.log('Subscribed to topic social')) 94 | }, 95 | error => { 96 | console.log('firebase.init error: ' + error) 97 | } 98 | ) 99 | 100 | function getTabName (message) { 101 | let topic 102 | if (message.from !== undefined) { 103 | topic = message.from.slice(8) 104 | } else { 105 | topic = 'default' 106 | } 107 | const tabName = message.data.topic || topic 108 | return tabName 109 | } 110 | 111 | function changeTab (tabName) { 112 | switch (tabName) { 113 | case 'schedule': 114 | store.commit(SET_CURRENT_TAB, 1) 115 | break 116 | case 'writeus': 117 | store.commit(SET_CURRENT_TAB, 2) 118 | break 119 | case 'podcasts': 120 | store.commit(SET_CURRENT_TAB, 3) 121 | break 122 | case 'social': 123 | store.commit(SET_CURRENT_TAB, 4) 124 | break 125 | default: 126 | store.commit(SET_CURRENT_TAB, 0) 127 | break 128 | } 129 | } 130 | }, 131 | [SET_CONNECTION]: (state, connection) => { 132 | state.connection = connection 133 | }, 134 | [SET_LANGUAGE]: (state, language) => { 135 | state.language = language 136 | }, 137 | [SUCCESS_LANGUAGE_FETCH]: (state, language) => { 138 | state.loadedLanguages.push(language) 139 | }, 140 | [SET_STREAMING]: (state, streamingUp) => { 141 | state.streamingUp = streamingUp 142 | }, 143 | [SET_PLAYING]: (state, playing) => { 144 | state.playing = playing 145 | } 146 | } 147 | -------------------------------------------------------------------------------- /app/store/state.js: -------------------------------------------------------------------------------- 1 | import config from '../config' 2 | import firebase from 'nativescript-plugin-firebase' 3 | 4 | export class State { 5 | player = undefined 6 | playerScreen = 'LIVE' 7 | playing = 'paused' 8 | playPromise = undefined 9 | currentTab = config.sections[0] 10 | firebase = firebase 11 | foreground = true 12 | lastMessageId = 0 13 | connection = true 14 | language = 'en' 15 | sections = config.sections 16 | loadedLanguages = ['en', 'es', 'pt'] 17 | streamingUp = true 18 | } 19 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = function (api) { 2 | api.cache(true) 3 | 4 | return { 5 | presets: [['@babel/env', { targets: { esmodules: true }}]], 6 | plugins: ['@babel/plugin-syntax-dynamic-import', '@babel/plugin-proposal-class-properties'] 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /design/logo-telegram.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/design/logo-telegram.jpg -------------------------------------------------------------------------------- /design/logo-telegram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/design/logo-telegram.png -------------------------------------------------------------------------------- /design/logo128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/design/logo128x128.png -------------------------------------------------------------------------------- /design/logo520x520.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/design/logo520x520.png -------------------------------------------------------------------------------- /design/screen_live.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/design/screen_live.png -------------------------------------------------------------------------------- /design/screen_podcasts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/design/screen_podcasts.png -------------------------------------------------------------------------------- /design/screen_social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/design/screen_social.png -------------------------------------------------------------------------------- /design/screen_write_us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/design/screen_write_us.png -------------------------------------------------------------------------------- /docs/Firebase-configuration-guide.md: -------------------------------------------------------------------------------- 1 | ## Firebase Cloud Message 2 | 3 | * It's necessary to have a [Google account](https://accounts.google.com/signup/v2/webcreateaccount?service=ahsid&continue=https%3A%2F%2Ffirebase.google.com%2F%3Frefresh%3D1&flowName=GlifWebSignIn&flowEntry=SignUp). 4 | 5 | * Go to [firebase console](https://console.firebase.google.com/) 6 | 7 | ![01](./images/FirebaseConfigurationGuide/01s.png) 8 | 9 | * Add the proyect 10 | 11 | ![02](./images/FirebaseConfigurationGuide/02s.png) 12 | 13 | * Add the proyect name and continue. 14 | 15 | ![03](./images/FirebaseConfigurationGuide/03s.png) 16 | 17 | * Create proyect 18 | 19 | ![04](./images/FirebaseConfigurationGuide/04s.png) 20 | 21 | ![05](./images/FirebaseConfigurationGuide/05s.png) 22 | 23 | * Continue 24 | 25 | ![06](./images/FirebaseConfigurationGuide/06s.png) 26 | 27 | * To add Firebase to your Android Application press the Android icon. 28 | 29 | ![07](./images/FirebaseConfigurationGuide/07s.png) 30 | 31 | * Android package name (application id): `org.camba.radio`. 32 | * Register app 33 | 34 | ![08](./images/FirebaseConfigurationGuide/08s.png) 35 | 36 | * Download `google-services.json` file. 37 | 38 | ![09](./images/FirebaseConfigurationGuide/09s.png) 39 | 40 | * Copy `google-services.json` file in `ns-vue-radio/app/App_Resources/Android/` 41 | 42 | * [Add nativescript-plugin-firebase](Guia-para-agregar-nativescript-plugin-firebase.md) 43 | 44 | * Run commands below: 45 | 46 | `npm install` 47 | 48 | `npm run clean` 49 | 50 | `tns build android --bundle` 51 | 52 | `tns run android --bundle` 53 | 54 | * Once the application initialises you're registered in Firebase 55 | 56 | ![10](./images/FirebaseConfigurationGuide/10s.png) 57 | 58 | ![11](./images/FirebaseConfigurationGuide/11s.png) 59 | 60 | ![12](./images/FirebaseConfigurationGuide/12s.png) 61 | 62 | 63 | * Go to `Console>Grow>Cloud Messaging` and press **Send your first message** 64 | 65 | ![13](./images/FirebaseConfigurationGuide/13s.png) 66 | ![14](./images/FirebaseConfigurationGuide/14s.png) 67 | 68 | * Write notification title and content 69 | 70 | ![15](./images/FirebaseConfigurationGuide/15s.png) 71 | 72 | ![16](./images/FirebaseConfigurationGuide/16s.png) 73 | 74 | 75 | ![17](./images/FirebaseConfigurationGuide/17s.png) 76 | 77 | * Next 78 | 79 | ![18](./images/FirebaseConfigurationGuide/18s.png) 80 | 81 | * Topic 82 | 83 | ![19](./images/FirebaseConfigurationGuide/19s.png) 84 | 85 | * Select the tab to open the app when recived the notification. 86 | 87 | ![20](./images/FirebaseConfigurationGuide/20s.png) 88 | 89 | ![21](./images/FirebaseConfigurationGuide/21s.png) 90 | 91 | * Select a date to send the notification 92 | 93 | ![22](./images/FirebaseConfigurationGuide/22s.png) 94 | 95 | ![23](./images/FirebaseConfigurationGuide/23s.png) 96 | 97 | * In custom data set *topic* as **key** and the tab to open app as **value** 98 | 99 | ![24](./images/FirebaseConfigurationGuide/24s.png) 100 | 101 | * Click the Review button 102 | 103 | ![25](./images/FirebaseConfigurationGuide/25s.png) 104 | 105 | * Click the Publish button 106 | 107 | ![26](./images/FirebaseConfigurationGuide/26s.png) 108 | 109 | * And the notification will be send. 110 | 111 | ![27](./images/FirebaseConfigurationGuide/27s.png) 112 | -------------------------------------------------------------------------------- /docs/Guide-to-change-app-colors.md: -------------------------------------------------------------------------------- 1 | ## How to change app colors 2 | 3 | ![03](./images/Guide-to-change-app-colors/03s.png)![04](./images/Guide-to-change-app-colors/04s.png)![05](./images/Guide-to-change-app-colors/05s.png)![06](./images/Guide-to-change-app-colors/06s.png)![07](./images/Guide-to-change-app-colors/07s.png) 4 | 5 | * Go to `app/config` 6 | 7 | ![01](./images/Guide-to-change-app-colors/01s.png) 8 | 9 | * From here you can change the app background color by changing the value of `appBackgroundColor` 10 | 11 | ![10](./images/Guide-to-change-app-colors/10s.png) 12 | 13 | ![11](./images/Guide-to-change-app-colors/11s.png)![12](./images/Guide-to-change-app-colors/12s.png)![13](./images/Guide-to-change-app-colors/13s.png)![14](./images/Guide-to-change-app-colors/14s.png)![15](./images/Guide-to-change-app-colors/15s.png) 14 | 15 | * You can change the app panel background color by changing the value of `panelBackgroundColor` 16 | 17 | ![16](./images/Guide-to-change-app-colors/16s.png) 18 | 19 | ![18](./images/Guide-to-change-app-colors/18s.png)![19](./images/Guide-to-change-app-colors/19s.png)![20](./images/Guide-to-change-app-colors/20s.png)![21](./images/Guide-to-change-app-colors/21s.png)![22](./images/Guide-to-change-app-colors/22s.png) 20 | 21 | * You can change the app panel icon background color by changing the value of `bottomNavigationBar` 22 | 23 | ![23](./images/Guide-to-change-app-colors/23s.png) 24 | 25 | ![25](./images/Guide-to-change-app-colors/25s.png) 26 | 27 | ![26](./images/Guide-to-change-app-colors/26s.png) 28 | 29 | ![27](./images/Guide-to-change-app-colors/27s.png) 30 | 31 | ![28](./images/Guide-to-change-app-colors/28s.png) 32 | 33 | ![29](./images/Guide-to-change-app-colors/29s.png) 34 | 35 | * You can change the app primary text color by changing the value of `primaryTextColorApp` 36 | 37 | ![30](./images/Guide-to-change-app-colors/30s.png) 38 | 39 | ![32](./images/Guide-to-change-app-colors/32s.png)![33](./images/Guide-to-change-app-colors/33s.png)![34](./images/Guide-to-change-app-colors/34s.png)![35](./images/Guide-to-change-app-colors/35s.png)![36](./images/Guide-to-change-app-colors/36s.png) 40 | 41 | * And finally, you can change the app secondary text color by changing the value of `primaryText` 42 | 43 | ![37](./images/Guide-to-change-app-colors/37s.png) 44 | 45 | ![39](./images/Guide-to-change-app-colors/39s.png)![40](./images/Guide-to-change-app-colors/40s.png)![41](./images/Guide-to-change-app-colors/41s.png)![42](./images/Guide-to-change-app-colors/42s.png)![43](./images/Guide-to-change-app-colors/43s.png) 46 | -------------------------------------------------------------------------------- /docs/Guide-to-choose-app-social-networks.md: -------------------------------------------------------------------------------- 1 | ## How to choose the app social networks 2 | 3 | * Go to `app/config.js` 4 | 5 | ![01](./images/Guide-to-choose-app-social-networks/01s.png) 6 | 7 | ![02](./images/Guide-to-choose-app-social-networks/02s.png) 8 | 9 | * Remove the social networks that your app doesn't use 10 | 11 | ![03](./images/Guide-to-choose-app-social-networks/03s.png) 12 | 13 | ![04](./images/Guide-to-choose-app-social-networks/04s.png) 14 | 15 | * Add the social network that your app needs 16 | 17 | - Go to [Social Icon](http://www.socicon.com/chart.php) 18 | 19 | - Search the icon social network 20 | ![05](./images/Guide-to-choose-app-social-networks/05s.png) 21 | 22 | - Put a json with this fields: 23 | ``` 24 | { 25 | link2App: '' 26 | link2Page: '' 27 | iconId: '#\u' 28 | iconColor: '#' 29 | background: '#' 30 | } 31 | ``` 32 | ![06](./images/Guide-to-choose-app-social-networks/06s.png) 33 | 34 | ![07](./images/Guide-to-choose-app-social-networks/07s.png) 35 | 36 | * Or use a background image 37 | - Put a background image 38 | ![08](./images/Guide-to-choose-app-social-networks/08s.png) 39 | 40 | - Use the field 'backgroundImage': 41 | ``` 42 | { 43 | link2App: '' 44 | link2Page: '' 45 | iconId: '#\u' 46 | iconColor: '#' 47 | backgroundImage: '~/' 48 | } 49 | ``` 50 | ![09](./images/Guide-to-choose-app-social-networks/09s.png) 51 | 52 | ![10](./images/Guide-to-choose-app-social-networks/10s.png) 53 | -------------------------------------------------------------------------------- /docs/Guide-to-choose-the-sections.md: -------------------------------------------------------------------------------- 1 | ## How to choose the app sections 2 | 3 | * Go to `app/config.js` 4 | 5 | ![01](./images/Guide-to-choose-the-sections/01s.png) 6 | 7 | ![02](./images/Guide-to-choose-the-sections/02s.png) 8 | 9 | * And remove the sections that your app not use 10 | 11 | ![03](./images/Guide-to-choose-the-sections/03s.png) 12 | 13 | ![04](./images/Guide-to-choose-the-sections/04s.png) 14 | -------------------------------------------------------------------------------- /docs/Guide-to-configure-your-data-source.md: -------------------------------------------------------------------------------- 1 | ## How to configure your data source 2 | 3 | * First step put your radio's stream. 4 | 5 | - Go to `app/config.js` and set your radio's stream in `stream` field 6 | 7 | ![01](./images/Guide-to-configure-your-data-source/01s.png) 8 | 9 | #### You could use the local API 10 | 11 | * Go to `app/lib/resources/data.js` 12 | 13 | ![02](./images/Guide-to-configure-your-data-source/02s.png) 14 | 15 | * And configure the file with your data. 16 | - In *shows* field, set your schedule data. 17 | + `title`: this field is to set the show's title. 18 | + `hours`: this is to set the legible hours, because this is visible in the schedule section. 19 | + `content`: this is the show's description 20 | + `init_hour`: here set the init hour, only for sort the programs in format hh:mm:ss 21 | + `days`: here set the days that is live-on 22 | + `image`: here set the url to program image 23 | ![03](./images/Guide-to-configure-your-data-source/03s.png) 24 | 25 | - In *podcasts* field, set your podcasts' data(ex. news, events, shows or pices of shows). 26 | + `title`: here set podcast's topic. 27 | + `content`: this is the podcast description. 28 | + `file_download`: this is the url to download the podcast audio file. 29 | ![04](./images/Guide-to-configure-your-data-source/04s.png) 30 | - In *currentShow* field, set the current show title. 31 | + `show`: here set the current show. 32 | ![05](./images/Guide-to-configure-your-data-source/05s.png) 33 | 34 | #### Or configure to use your own API 35 | 36 | * Go to `app/config.js` 37 | 38 | * Replace *jsondata* field value from `true` to `false` 39 | 40 | ![06](./images/Guide-to-configure-your-data-source/06s.png) 41 | 42 | * When you're about to run the application (`tns run android`, for example) provide a `--env.apiUrl` flag with your API URL. This is going to be exposed to the `config.js` file. 43 | 44 | * Your API should have the following services: 45 | - `/shows/currentShow`, here the `.status` field, seted in `200` to verify connection and `.data` with the field: 46 | + `show`: here set the current show. 47 | - `/shows/api`, here the `.status` field, seted in `200` to verify connection and `.data` with the programs' list. For each program a json, with the fields: 48 | + `title`: this field is to set the show's title. 49 | + `hours`: this is to set the legible hours, because this is visible in the schedule section. 50 | + `content`: this is the show's description 51 | + `init_hour`: here set the init hour, only for sort the programs in format hh:mm:ss 52 | + `days`: here set the days that is live-on 53 | + `image`: here set the url to program image 54 | - `/podcasts/api/?limit=` to select the 30 last podcasts. `/podcasts/api` here `.data.results` with the podcasts' list. For each podcast a json, with the fields: 55 | + `title`: here set podcast's topic. 56 | + `content`: this is the podcast description. 57 | + `file_download`: this is the url to download the podcast audio file. 58 | -------------------------------------------------------------------------------- /docs/Guide-to-generate-your-radio-app.md: -------------------------------------------------------------------------------- 1 | ## How to generate your radio app 2 | 3 | * Clone the repo 4 | 5 | `git clone https://github.com/Cambalab/ns-vue-radio` 6 | 7 | * Enter the local repo 8 | 9 | `cd ns-vue-radio` 10 | 11 | * You can customize your app 12 | - With the [Guide to choose app sections](./Guide-to-choose-the-sections.md) 13 | - If you have chosen the social section, you can [choose the app social networks](./Guide-to-choose-app-social-networks.md) 14 | - And finally, you can [change the app colors](./Guide-to-change-app-colors.md) 15 | 16 | * [Configure your data source](./Guide-to-configure-your-data-source.md) 17 | 18 | * Install the dependencies 19 | 20 | `npm install` 21 | 22 | * And run the app 23 | 24 | `tns run android --bundle` 25 | -------------------------------------------------------------------------------- /docs/Portuguese/Firebase-configuration-guide_pt.md: -------------------------------------------------------------------------------- 1 | ## Firebase Cloud Message 2 | 3 | * É necessário [uma conta no Google](https:/accounts.google.com/signup/v2/webcreateaccount?service=ahsid&continue=https%3A%2F%2Ffirebase.google.com%2F%3Frefresh%3D1&flowName=GlifWebSignIn&flowEntry=SignUp) 4 | 5 | * Ir ao [console](https:/console.firebase.google.com/) 6 | 7 | ![01](./images/ConfigFirebase/01s.png) 8 | 9 | * Adiciona o projeto 10 | 11 | ![02](./images/ConfigFirebase/02s.png) 12 | ![03](./images/ConfigFirebase/03s.png) 13 | 14 | * Criar o projeto 15 | 16 | ![04](./images/ConfigFirebase/04s.png) 17 | 18 | * Continuar 19 | 20 | ![05](./images/ConfigFirebase/05s.png) 21 | 22 | * Adicione uma aplicação android 23 | 24 | ![06](./images/ConfigFirebase/06s.png) 25 | 26 | * Nome do pacote Android (ID do aplicativo): `org.camba.radio` 27 | * Registrar a aplicação 28 | 29 | ![07](./images/ConfigFirebase/07s.png) 30 | 31 | * Baixe o arquivo `google-services.json` 32 | 33 | ![08](./images/ConfigFirebase/08s.png) 34 | 35 | * Execute o comando: 36 | 37 | `git clone http://gitlab.camba.coop/camba/ns-vue-radio.git ns-vue-radio` 38 | 39 | * Copie o arquivo: 40 | 41 | `google-services.json` 42 | 43 | para 44 | 45 | `ns-vue-radio/app/App_Resources/Android/` 46 | 47 | * [Adicione o nativescript-plugin-firebase](Guia-para-agregar-nativescript-plugin-firebase.md) 48 | 49 | * Execute os comandos: 50 | 51 | `npm install` 52 | 53 | `npm run clean` 54 | 55 | `tns build android --bundle` 56 | 57 | `tns run android --bundle` 58 | 59 | * Uma vez que o aplicativo foi iniciado e o Firebase foi registrado: 60 | 61 | ![10](../Spanish/ConfigFirebaseImage/10s.png) 62 | ![11](../Spanish/ConfigFirebaseImage/11s.png) 63 | ![12](./images/ConfigFirebase/12s.png) 64 | ![13](../Spanish/ConfigFirebaseImage/13s.png) 65 | 66 | * Ir a Console>Crescimento>Cloud Messaging 67 | 68 | ![14](../Spanish/ConfigFirebaseImage/14s.png) 69 | ![15](../Spanish/ConfigFirebaseImage/15s.png) 70 | ![16](../Spanish/ConfigFirebaseImage/16s.png) 71 | 72 | * Escreva o texto da mensagem 73 | 74 | ![17](../Spanish/ConfigFirebaseImage/17s.png) 75 | 76 | * Selecione o aplicativo 77 | 78 | ![18](../Spanish/ConfigFirebaseImage/18s.png) 79 | 80 | * Nas opções avançadas> dados personalizados 81 | 82 | ![19](../Spanish/ConfigFirebaseImage/19s.png) 83 | 84 | * Onde diz chave para escrever: tópico 85 | 86 | ![20](../Spanish/ConfigFirebaseImage/20s.png) 87 | 88 | * Onde diz o valor escrever: o nome do canal que você deseja mostrar depois de visualizar o msg no aplicativo (ao vivo, programação, scripts, podcasts, redes) 89 | 90 | ![21](../Spanish/ConfigFirebaseImage/21s.png) 91 | 92 | * Finalmente, enviamos nossa notificação 93 | 94 | ![22](../Spanish/ConfigFirebaseImage/22s.png) 95 | -------------------------------------------------------------------------------- /docs/Portuguese/Guide-to-add-nativescript-plugin-firebase_pt.md: -------------------------------------------------------------------------------- 1 | ## Firebase Cloud Message 2 | 3 | #### Para adicionar o plug-in do Firebase Cloud Message ao aplicativo de rádio, você precisa: 4 | 5 | * Executar o Comando 6 | 7 | `npm install nativescript-plugin-firebase` 8 | 9 | * Modifique no arquivo `package.json` a versão do nativescript-plugin-firebase, pela versão" 7.1. 10 | 11 | ![01](../Spanish/GuideToAddFirebaseImage/01s.png) 12 | 13 | * Abrir o arquivo `app/components/Home.vue` 14 | - descomentar a linha `// this.$store.commit("FIREBASE_INIT", this.$store);` 15 | 16 | ![02](../Spanish/GuideToAddFirebaseImage/02s.png) 17 | 18 | ![03](../Spanish/GuideToAddFirebaseImage/03s.png) 19 | 20 | * Abrir o arquivo `app/store/index.js` 21 | - descomentar a linha `import firebase from 'nativescript-plugin-firebase'` 22 | 23 | ![04](../Spanish/GuideToAddFirebaseImage/04s.png) 24 | ![05](../Spanish/GuideToAddFirebaseImage/05s.png) 25 | - modificar a linha `firebase: null, //firebase,` por `firebase: firebase,` 26 | 27 | ![06](../Spanish/GuideToAddFirebaseImage/06s.png) 28 | ![07](../Spanish/GuideToAddFirebaseImage/07s.png) 29 | 30 | Com isso, teremos adicionado `nativescript-plugin-firebase`, só precisa configurá-lo, se a [configuração] (Guide-of-configuracion-de-firebase.md) não for feita, o aplicativo não funcionará corretamente. 31 | -------------------------------------------------------------------------------- /docs/Portuguese/images/ConfigFirebase/01s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Portuguese/images/ConfigFirebase/01s.png -------------------------------------------------------------------------------- /docs/Portuguese/images/ConfigFirebase/02s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Portuguese/images/ConfigFirebase/02s.png -------------------------------------------------------------------------------- /docs/Portuguese/images/ConfigFirebase/03s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Portuguese/images/ConfigFirebase/03s.png -------------------------------------------------------------------------------- /docs/Portuguese/images/ConfigFirebase/04s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Portuguese/images/ConfigFirebase/04s.png -------------------------------------------------------------------------------- /docs/Portuguese/images/ConfigFirebase/05s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Portuguese/images/ConfigFirebase/05s.png -------------------------------------------------------------------------------- /docs/Portuguese/images/ConfigFirebase/06s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Portuguese/images/ConfigFirebase/06s.png -------------------------------------------------------------------------------- /docs/Portuguese/images/ConfigFirebase/07s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Portuguese/images/ConfigFirebase/07s.png -------------------------------------------------------------------------------- /docs/Portuguese/images/ConfigFirebase/08s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Portuguese/images/ConfigFirebase/08s.png -------------------------------------------------------------------------------- /docs/Portuguese/images/ConfigFirebase/12s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Portuguese/images/ConfigFirebase/12s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/01s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/01s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/02s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/02s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/03s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/03s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/04s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/04s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/05s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/05s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/06s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/06s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/07s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/07s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/08s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/08s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/09s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/09s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/10s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/10s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/11s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/11s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/12s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/12s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/13s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/13s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/14s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/14s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/15s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/15s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/16s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/16s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/17s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/17s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/18s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/18s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/19s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/19s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/20s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/20s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/21s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/21s.png -------------------------------------------------------------------------------- /docs/Spanish/ConfigFirebaseImage/22s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/ConfigFirebaseImage/22s.png -------------------------------------------------------------------------------- /docs/Spanish/Firebase-configuration-guide_es.md: -------------------------------------------------------------------------------- 1 | ## Firebase Cloud Message 2 | 3 | * Se necesita una [cuenta de Google](https://accounts.google.com/signup/v2/webcreateaccount?service=ahsid&continue=https%3A%2F%2Ffirebase.google.com%2F%3Frefresh%3D1&flowName=GlifWebSignIn&flowEntry=SignUp) 4 | 5 | * Ir a [la consola](https://console.firebase.google.com/) 6 | 7 | ![01](./ConfigFirebaseImage/01s.png) 8 | 9 | * Añadir el proyecto 10 | 11 | ![02](./ConfigFirebaseImage/02s.png) 12 | ![03](./ConfigFirebaseImage/03s.png) 13 | 14 | * Continuar 15 | 16 | ![04](./ConfigFirebaseImage/04s.png) 17 | 18 | * Crear proyecto 19 | 20 | ![05](./ConfigFirebaseImage/05s.png) 21 | 22 | * Continuar 23 | 24 | ![06](./ConfigFirebaseImage/06s.png) 25 | 26 | * Añadir una aplicacion android 27 | 28 | ![07](./ConfigFirebaseImage/07s.png) 29 | 30 | * Nombre del paquete android(id de la aplicación): `org.camba.radio` 31 | * Registrar aplicación 32 | 33 | ![08](./ConfigFirebaseImage/08s.png) 34 | 35 | * Descargar el archivo `google-services.json` 36 | 37 | ![09](./ConfigFirebaseImage/09s.png) 38 | 39 | * Ejecutar el comando: 40 | 41 | `git clone http://gitlab.camba.coop/camba/ns-vue-radio.git ns-vue-radio` 42 | 43 | * Copiar el archivo: 44 | 45 | `google-services.json` 46 | 47 | en 48 | 49 | `ns-vue-radio/app/App_Resources/Android/` 50 | 51 | * [Agregar nativescript-plugin-firebase](Guia-para-agregar-nativescript-plugin-firebase.md) 52 | 53 | * Ejecutar los comandos: 54 | 55 | `npm install` 56 | 57 | `npm run clean` 58 | 59 | `tns build android --bundle` 60 | 61 | `tns run android --bundle` 62 | 63 | * Una vez que la aplicación inició y se registró el Firebase 64 | 65 | ![10](./ConfigFirebaseImage/10s.png) 66 | ![11](./ConfigFirebaseImage/11s.png) 67 | ![12](./ConfigFirebaseImage/12s.png) 68 | ![13](./ConfigFirebaseImage/13s.png) 69 | 70 | * Ir a Consola>Crecimiento>Cloud Messaging 71 | 72 | ![14](./ConfigFirebaseImage/14s.png) 73 | ![15](./ConfigFirebaseImage/15s.png) 74 | ![16](./ConfigFirebaseImage/16s.png) 75 | 76 | * Escribir el texto del mensaje 77 | 78 | ![17](./ConfigFirebaseImage/17s.png) 79 | 80 | * Seleccionar la aplicacion 81 | 82 | ![18](./ConfigFirebaseImage/18s.png) 83 | 84 | * En las opciones avanzadas>datos personalizados 85 | 86 | ![19](./ConfigFirebaseImage/19s.png) 87 | 88 | * Donde dice clave escribir: topic 89 | 90 | ![20](./ConfigFirebaseImage/20s.png) 91 | 92 | * Donde dice valor escribir: el nombre del canal que se quiere que se muestre luego de ver el msj en la aplicacion (vivo, programacion, escribinos, podcasts, redes) 93 | 94 | ![21](./ConfigFirebaseImage/21s.png) 95 | 96 | * Finalmente enviamos nuestra notificación 97 | 98 | ![22](./ConfigFirebaseImage/22s.png) 99 | -------------------------------------------------------------------------------- /docs/Spanish/Guide-to-add-nativescript-plugin-firebase_es.md: -------------------------------------------------------------------------------- 1 | ## Firebase Cloud Message 2 | 3 | #### Para agregar el plugin Firebase Cloud Message a la aplicación de la radio hay que: 4 | 5 | * Ejecutar el comando 6 | 7 | `npm install nativescript-plugin-firebase` 8 | 9 | * Modificar en el archivo `package.json` la version de nativescript-plugin-firebase, por la version "7.1.2" 10 | 11 | ![01](./GuideToAddFirebaseImage/01s.png) 12 | 13 | * Ir al archivo `app/components/Home.vue` 14 | - descomentar la línea `// this.$store.commit("FIREBASE_INIT", this.$store);` 15 | 16 | ![02](./GuideToAddFirebaseImage/02s.png) 17 | 18 | ![03](./GuideToAddFirebaseImage/03s.png) 19 | 20 | * Ir al archivo `app/store/index.js` 21 | - descomentar la línea `import firebase from 'nativescript-plugin-firebase'` 22 | 23 | ![04](./GuideToAddFirebaseImage/04s.png) 24 | ![05](./GuideToAddFirebaseImage/05s.png) 25 | - modificar la línea `firebase: null, //firebase,` por `firebase: firebase,` 26 | 27 | ![06](./GuideToAddFirebaseImage/06s.png) 28 | ![07](./GuideToAddFirebaseImage/07s.png) 29 | 30 | Con esto tendremos agregado `nativescript-plugin-firebase`, sólo falta configurarlo, si no se realiza la [configuración](Guia-de-configuracion-de-firebase.md) la aplicación no va a funcionar conrrectamente. 31 | -------------------------------------------------------------------------------- /docs/Spanish/GuideToAddFirebaseImage/01s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/GuideToAddFirebaseImage/01s.png -------------------------------------------------------------------------------- /docs/Spanish/GuideToAddFirebaseImage/02s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/GuideToAddFirebaseImage/02s.png -------------------------------------------------------------------------------- /docs/Spanish/GuideToAddFirebaseImage/03s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/GuideToAddFirebaseImage/03s.png -------------------------------------------------------------------------------- /docs/Spanish/GuideToAddFirebaseImage/04s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/GuideToAddFirebaseImage/04s.png -------------------------------------------------------------------------------- /docs/Spanish/GuideToAddFirebaseImage/05s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/GuideToAddFirebaseImage/05s.png -------------------------------------------------------------------------------- /docs/Spanish/GuideToAddFirebaseImage/06s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/GuideToAddFirebaseImage/06s.png -------------------------------------------------------------------------------- /docs/Spanish/GuideToAddFirebaseImage/07s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/Spanish/GuideToAddFirebaseImage/07s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/01s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/01s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/02s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/02s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/03s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/03s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/04s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/04s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/05s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/05s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/06s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/06s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/07s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/07s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/08s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/08s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/09s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/09s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/10s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/10s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/11s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/11s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/12s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/12s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/13s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/13s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/14s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/14s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/15s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/15s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/16s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/16s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/17s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/17s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/18s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/18s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/19s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/19s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/20s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/20s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/21s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/21s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/22s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/22s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/23s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/23s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/24s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/24s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/25s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/25s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/26s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/26s.png -------------------------------------------------------------------------------- /docs/images/FirebaseConfigurationGuide/27s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/FirebaseConfigurationGuide/27s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/01s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/01s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/03s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/03s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/04s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/04s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/05s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/05s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/06s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/06s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/07s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/07s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/10s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/10s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/11s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/11s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/12s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/12s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/13s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/13s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/14s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/14s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/15s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/15s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/16s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/16s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/18s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/18s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/19s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/19s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/20s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/20s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/21s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/21s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/22s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/22s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/23s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/23s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/25s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/25s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/26s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/26s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/27s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/27s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/28s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/28s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/29s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/29s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/30s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/30s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/32s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/32s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/33s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/33s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/34s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/34s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/35s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/35s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/36s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/36s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/37s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/37s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/39s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/39s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/40s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/40s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/41s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/41s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/42s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/42s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-change-app-colors/43s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-change-app-colors/43s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-choose-app-social-networks/01s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-choose-app-social-networks/01s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-choose-app-social-networks/02s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-choose-app-social-networks/02s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-choose-app-social-networks/03s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-choose-app-social-networks/03s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-choose-app-social-networks/04s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-choose-app-social-networks/04s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-choose-app-social-networks/05s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-choose-app-social-networks/05s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-choose-app-social-networks/06s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-choose-app-social-networks/06s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-choose-app-social-networks/07s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-choose-app-social-networks/07s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-choose-app-social-networks/08s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-choose-app-social-networks/08s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-choose-app-social-networks/09s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-choose-app-social-networks/09s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-choose-app-social-networks/10s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-choose-app-social-networks/10s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-choose-the-sections/01s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-choose-the-sections/01s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-choose-the-sections/02s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-choose-the-sections/02s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-choose-the-sections/03s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-choose-the-sections/03s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-choose-the-sections/04s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-choose-the-sections/04s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-configure-your-data-source/01s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-configure-your-data-source/01s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-configure-your-data-source/02s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-configure-your-data-source/02s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-configure-your-data-source/03s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-configure-your-data-source/03s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-configure-your-data-source/04s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-configure-your-data-source/04s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-configure-your-data-source/05s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-configure-your-data-source/05s.png -------------------------------------------------------------------------------- /docs/images/Guide-to-configure-your-data-source/06s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/docs/images/Guide-to-configure-your-data-source/06s.png -------------------------------------------------------------------------------- /firebase.nativescript.json: -------------------------------------------------------------------------------- 1 | { 2 | "using_ios": false, 3 | "using_android": true, 4 | "firestore": false, 5 | "realtimedb": false, 6 | "authentication": true, 7 | "remote_config": false, 8 | "messaging": true, 9 | "crashlytics": false, 10 | "crash_reporting": false, 11 | "storage": false, 12 | "facebook_auth": false, 13 | "google_auth": false, 14 | "admob": false, 15 | "invites": false, 16 | "dynamic_links": false, 17 | "ml_kit": false 18 | } 19 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "radio", 3 | "version": "1.0.0", 4 | "description": "A native application built with NativeScript-Vue", 5 | "author": "Camba ", 6 | "license": "GPL-3.0", 7 | "scripts": { 8 | "build": "webpack --env.tnsAction build", 9 | "build:android": "npm run build -- --env.android", 10 | "build:ios": "npm run build -- --env.ios", 11 | "debug": "webpack --watch --env.tnsAction debug", 12 | "debug:android": "npm run debug -- --env.android", 13 | "debug:ios": "npm run debug -- --env.ios", 14 | "watch": "webpack --watch --env.tnsAction run", 15 | "watch:android": "npm run watch -- --env.android", 16 | "watch:ios": "npm run watch -- --env.ios", 17 | "clean": "rimraf platforms" 18 | }, 19 | "nativescript": { 20 | "id": "coop.radio.app", 21 | "tns-ios": { 22 | "version": "6.0.1" 23 | }, 24 | "tns-android": { 25 | "version": "6.0.0" 26 | } 27 | }, 28 | "dependencies": { 29 | "@vue/devtools": "^5.0.0-beta.3", 30 | "axios": "^0.18.0", 31 | "nativescript-appavailability": "^1.3.1", 32 | "nativescript-audio": "^5.0.0", 33 | "nativescript-bottom-navigation": "^1.5.1", 34 | "nativescript-cardview": "^3.1.1", 35 | "nativescript-email": "^1.5.3", 36 | "nativescript-open-app": "git+https://github.com/ludwiktrammer/nativescript-open-app.git", 37 | "nativescript-plugin-firebase": "^9.1.0", 38 | "nativescript-social-share": "^1.5.0", 39 | "nativescript-socket.io": "^0.9.0", 40 | "nativescript-socketio": "^3.3.1", 41 | "nativescript-theme-core": "^1.0.4", 42 | "nativescript-toast": "^1.4.6", 43 | "nativescript-toasty": "^2.0.1", 44 | "nativescript-vue": "^2.0.0", 45 | "nativescript-vue-devtools": "^1.0.0", 46 | "tns-core-modules": "6.0.1", 47 | "vue-i18n": "^8.2.1", 48 | "vue-router": "^3.0.7", 49 | "vuex": "^3.0.1" 50 | }, 51 | "devDependencies": { 52 | "@babel/core": "^7.0.0", 53 | "@babel/plugin-proposal-class-properties": "^7.1.0", 54 | "@babel/plugin-syntax-dynamic-import": "^7.0.0", 55 | "@babel/preset-env": "^7.0.0", 56 | "babel-cli": "^6.26.0", 57 | "babel-loader": "^8.0.2", 58 | "babel-traverse": "6.26.0", 59 | "babel-types": "6.26.0", 60 | "babylon": "6.18.0", 61 | "clean-webpack-plugin": "^0.1.19", 62 | "copy-webpack-plugin": "^4.5.2", 63 | "css-loader": "^1.0.0", 64 | "eslint": "^5.7.0", 65 | "eslint-loader": "^2.1.1", 66 | "eslint-plugin-html": "^4.0.5", 67 | "eslint-plugin-import": "^2.14.0", 68 | "eslint-plugin-jsx-a11y": "^6.1.1", 69 | "eslint-plugin-node": "^7.0.1", 70 | "eslint-plugin-vue-libs": "^3.0.0", 71 | "extract-text-webpack-plugin": "^3.0.2", 72 | "fs-extra": "^5.0.0", 73 | "lazy": "1.0.11", 74 | "nativescript-dev-webpack": "next", 75 | "nativescript-vue-template-compiler": "^2.0.0", 76 | "nativescript-worker-loader": "~0.9.0", 77 | "node-sass": "^4.9.2", 78 | "rimraf": "^2.6.2", 79 | "sass-loader": "^7.1.0", 80 | "terser-webpack-plugin": "^1.1.0", 81 | "vue-eslint-parser": "^3.2.2", 82 | "vue-loader": "^15.2.6", 83 | "webpack": "^4.16.4", 84 | "webpack-bundle-analyzer": "~2.13.1", 85 | "webpack-cli": "^3.1.0", 86 | "winston-color": "^1.0.0" 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /public/camba_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/public/camba_icon.png -------------------------------------------------------------------------------- /public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Cambalab/ns-vue-radio/4de522229f43aaa6caf94801c40eba500bcae3e3/public/logo.png -------------------------------------------------------------------------------- /tools/assets.md: -------------------------------------------------------------------------------- 1 | ## Assets 2 | 3 | ### Generate splash screen 4 | 5 | To generate all splashscreens for Android and iOS platforms and places the generated images in the correct directories under App_Resources/ directory. 6 | 7 | `tns resources generate splashes <../image.png> --background ` 8 | 9 | --background Sets the background color of the splashscreen. When no color is specified, a default value of white is used. is a valid color and can be represented with string, like white, black, blue, or with HEX representation. 10 | 11 | ### App icons generation 12 | 13 | Generates all icons for Android and iOS platforms and places the generated images under App_Resources/. 14 | 15 | `tns resources generate icons <./image>` 16 | -------------------------------------------------------------------------------- /tools/create-app.bash: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ### Parameters ### 4 | 5 | OUTPUT_DIRECTORY=$1 6 | ASSETS_DIRECTORY=$2 7 | SPLASH_BACKGROUND_COLOR=$3 8 | KEYSTORE_PATH=$4 9 | KEYSTORE_PASS=$5 10 | KEYSTORE_ALIAS=$6 11 | KEYSTORE_ALIAS_PASS=$7 12 | CONFIGURATION_FILE=$8 13 | GOOGLE_SERVICES_PATH=$9 14 | 15 | ### Script paths and directories ### 16 | 17 | FULL_PATH=$(realpath $0) 18 | DIRECTORY_PATH=$(dirname $FULL_PATH) 19 | PACKAGE_JSON_PATH=$DIRECTORY_PATH/../package.json 20 | 21 | ### Places google services configuration in the Android directory 22 | 23 | cp $GOOGLE_SERVICES_PATH $DIRECTORY_PATH/../app/App_Resources/Android/ 24 | 25 | # Parses a radio configuration json to string 26 | STRINGIFIED_CONFIGURATION=$(jq '. | tostring' $CONFIGURATION_FILE) 27 | 28 | APP_ID=$( 29 | jq \ 30 | '.client[0].client_info.android_client_info.package_name | tostring' \ 31 | $GOOGLE_SERVICES_PATH | tr -d "\"" 32 | ) 33 | LEGACY_ID=$(jq '.nativescript.id | tostring' $PACKAGE_JSON_PATH | tr -d "\"") 34 | 35 | # Replaces 'app.gradle' and package.json values with a given app id 36 | 37 | sed -i \ 38 | s/$LEGACY_ID/$APP_ID/g \ 39 | $DIRECTORY_PATH/../app/App_Resources/Android/app.gradle 40 | 41 | sed -i \ 42 | s/$LEGACY_ID/$APP_ID/g \ 43 | $PACKAGE_JSON_PATH 44 | 45 | ### App Name ### 46 | 47 | DEFAULT_NAME='Radio' 48 | APP_NAME=$( 49 | jq \ 50 | '.name.humanReadableName | tostring' \ 51 | $CONFIGURATION_FILE | tr -d "\"" 52 | ) 53 | 54 | sed -i \ 55 | "s,${DEFAULT_NAME},${APP_NAME},g" \ 56 | $DIRECTORY_PATH/../app/App_Resources/Android/src/main/res/values/strings.xml 57 | 58 | sed -i \ 59 | "s,${DEFAULT_NAME},${APP_NAME},g" \ 60 | $DIRECTORY_PATH/../app/App_Resources/Android/src/main/res/values-v21/strings.xml 61 | 62 | ### Assets ### 63 | 64 | # Places logo in the assets directory 65 | cp $ASSETS_DIRECTORY/logo.png $DIRECTORY_PATH/../app/assets/images/ 66 | 67 | # Generates a splash screen 68 | tns resources generate splashes \ 69 | $ASSETS_DIRECTORY/splash.png \ 70 | --background $SPLASH_BACKGROUND_COLOR 71 | 72 | # Generates icons 73 | tns resources generate icons $ASSETS_DIRECTORY/icon.png 74 | 75 | ### Build ### 76 | 77 | # Generates an .aab file 78 | tns build android \ 79 | --bundle \ 80 | --release \ 81 | --env.customization="$STRINGIFIED_CONFIGURATION" \ 82 | --env.appId=$APP_ID \ 83 | --compileSdk 28 \ 84 | --key-store-path $KEYSTORE_PATH \ 85 | --key-store-password $KEYSTORE_PASS \ 86 | --key-store-alias $KEYSTORE_ALIAS \ 87 | --key-store-alias-password $KEYSTORE_ALIAS_PASS \ 88 | --aab \ 89 | --copy-to $OUTPUT_DIRECTORY 90 | 91 | # Restores original values to 'app.gradle' and 'package.json' 92 | 93 | sed -i \ 94 | s/$APP_ID/$LEGACY_ID/g \ 95 | $DIRECTORY_PATH/../app/App_Resources/Android/app.gradle 96 | 97 | sed -i \ 98 | s/$APP_ID/$LEGACY_ID/g \ 99 | $PACKAGE_JSON_PATH 100 | 101 | sed -i \ 102 | "s,${APP_NAME},${DEFAULT_NAME},g" \ 103 | $DIRECTORY_PATH/../app/App_Resources/Android/src/main/res/values/strings.xml 104 | 105 | sed -i \ 106 | "s,${APP_NAME},${DEFAULT_NAME},g" \ 107 | $DIRECTORY_PATH/../app/App_Resources/Android/src/main/res/values-v21/strings.xml -------------------------------------------------------------------------------- /tools/guide-to-generate-a-keystore.md: -------------------------------------------------------------------------------- 1 | ## How to generate a keystore 2 | 3 | The keytool command-line utility can generate a keystore. To use keytool to generate a keystore for code signing, run the following command: 4 | 5 | `keytool -genkey -v -keystore -keyalg RSA -keysize 2048 -validity 10000 -alias ` 6 | 7 | The keytool utility will ask you a number of questions, several of which are optional (name of organization, as well as the names of your city/state/country), but the most important ones are the passwords for both the keystore and the alias. 8 | 9 | Put this .jks file somewhere safe, and do not forget the password for the keystore or for the alias. Android requires you to use this exact same .jks file to sign any and all updates to your app. Meaning, if you lose this .jks file, or its password, you will not be able to update your Android app. You’ll have to create a brand new entry in Google Play and your existing users will not be able to upgrade. 10 | -------------------------------------------------------------------------------- /tools/input-file-design.md: -------------------------------------------------------------------------------- 1 | # Input File Design 2 | 3 | The create app script consumes data from a file to configure customization, social media urls and even the streaming url in the vue nativescript application. 4 | 5 | ## Structure 6 | 7 | ### name 8 | 9 | + **Details:** The name of the radio. 10 | + **Type:** `String` 11 | 12 | ### sections 13 | 14 | **Details:** An array with the application sections. The sections can be "Live", "Schedule", "WriteUs", "Podcasts", "Social". 15 | **Type:** `Array` 16 | 17 | ### social 18 | 19 | + **Details:** An object with social media information. 20 | + **Type:** `Object` 21 | + **Structure:** 22 | + **facebookUrl:** `String` 23 | + **instagramUrl:** `String` 24 | + **twitterUrl:** `String` 25 | 26 | ### colors 27 | 28 | + **Details:** An object with colors data. 29 | + **Type:** `Object` 30 | + **Structure:** 31 | + **backgroundColor:** 32 | + **Details:** The background color of the application 33 | + **Type:** `String: hex color` 34 | + **primaryText:** 35 | + **Details:** The primary font color 36 | + **Type:** `String: hex color` 37 | + **secondaryText:** 38 | + **Details:** The secondary font color 39 | + **Type:** `String: hex color` 40 | 41 | ### bottomNavigationBar 42 | 43 | + **Details:** An object with data for the bottom navigation bar. 44 | + **Type:** `Object` 45 | + **Structure:** 46 | + **activeColor:** 47 | + **Details:** The color of the navigation bar icon when it's tapped. 48 | + **Type:** `String: hex color` 49 | + **inactiveColor:** 50 | + **Details:** The color of the navigation bar icon when it's not tapped. 51 | + **Type:** `String: hex color` 52 | + **backgroundColor:** 53 | + **Details:** The background color of the navigation bar 54 | + **Type:** `String: hex color` 55 | 56 | ### contact 57 | 58 | + **Details:** An object with data related to contact the radio administrators. 59 | + **Type:** `Object` 60 | + **Structure:** 61 | + **radioEmails:** 62 | + **Details:** A list of emails to be send emails to. 63 | + **Type:** `Array` 64 | + **whatsAppId:** 65 | + **Details:** a telephone number associated to whatsapp. 66 | + **Type:** `String` 67 | 68 | ### streamingUrl 69 | 70 | + **Details:** the url to the live streaming. 71 | + **Type:** `String` 72 | --------------------------------------------------------------------------------