diff --git a/.travis.yml b/.travis.yml index 288afb4e..a82dba3b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ language: android -sudo: false +dist: trusty +sudo: true jdk: - oraclejdk8 android: @@ -16,10 +17,26 @@ cache: - "${TRAVIS_BUILD_DIR}/gradle/wrapper/dists/" - "$HOME/.gradle/caches/" - "$HOME/.gradle/wrapper/" + +install: + - bundle install + before_script: - bash scripts/prep-key.sh + script: - ./gradlew spotlessCheck - ./gradlew build --stacktrace -after_success: - - bash scripts/upload-apk.sh \ No newline at end of file + +deploy: + - provider: script + skip_cleanup: true + script: bash scripts/upload-apk.sh + on: + all_branches: true + condition: $TRAVIS_BRANCH =~ ^(master|development)$ + - provider: script + skip_cleanup: true + script: bash scripts/upload-gh-pages.sh + on: + all_branches: true \ No newline at end of file diff --git a/Gemfile b/Gemfile new file mode 100644 index 00000000..adc90d98 --- /dev/null +++ b/Gemfile @@ -0,0 +1,3 @@ +source "https://rubygems.org" + +gem "fastlane" \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 57f773ac..c74ca1ba 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,5 +1,5 @@ plugins { - id "com.diffplug.gradle.spotless" version "3.23.1" + id "com.diffplug.gradle.spotless" version "3.24.1" } apply plugin: "com.github.b3er.local.properties" apply plugin: 'com.android.application' @@ -23,8 +23,8 @@ android { applicationId 'org.fossasia.badgemagic' minSdkVersion versions.minSdk targetSdkVersion versions.targetSdk - versionCode 6 - versionName '1.4.0' + versionCode 7 + versionName '1.5.0' vectorDrawables.useSupportLibrary = true } @@ -85,7 +85,7 @@ dependencies { //Android X Libraries implementation 'androidx.appcompat:appcompat:1.1.0-rc01' - implementation 'androidx.recyclerview:recyclerview:1.1.0-beta01' + implementation 'androidx.recyclerview:recyclerview:1.1.0-beta02' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' @@ -93,12 +93,12 @@ dependencies { implementation "org.koin:koin-androidx-viewmodel:${versions.koin_version}" //Material Design - implementation 'com.google.android.material:material:1.1.0-alpha08' + implementation 'com.google.android.material:material:1.1.0-alpha09' //Timber implementation 'com.jakewharton.timber:timber:4.7.1' - implementation 'no.nordicsemi.android.support.v18:scanner:1.4.0' + implementation 'no.nordicsemi.android.support.v18:scanner:1.4.2' implementation 'androidx.legacy:legacy-support-v4:1.0.0' testImplementation 'junit:junit:4.12' diff --git a/app/src/main/java/org/fossasia/badgemagic/viewmodels/DrawViewModel.kt b/app/src/main/java/org/fossasia/badgemagic/viewmodels/DrawViewModel.kt index 14127201..6d41b39f 100644 --- a/app/src/main/java/org/fossasia/badgemagic/viewmodels/DrawViewModel.kt +++ b/app/src/main/java/org/fossasia/badgemagic/viewmodels/DrawViewModel.kt @@ -12,7 +12,7 @@ class DrawViewModel( ) : ViewModel() { var drawModeState: ObservableField = ObservableField(DrawMode.NOTHING) - var drawState: ObservableBoolean = ObservableBoolean(false) + var drawState: ObservableBoolean = ObservableBoolean(true) var eraseState: ObservableBoolean = ObservableBoolean(false) var savedButton: MutableLiveData = MutableLiveData() diff --git a/app/src/main/java/org/fossasia/badgemagic/viewmodels/EditBadgeViewModel.kt b/app/src/main/java/org/fossasia/badgemagic/viewmodels/EditBadgeViewModel.kt index 91e574f8..14dc7653 100644 --- a/app/src/main/java/org/fossasia/badgemagic/viewmodels/EditBadgeViewModel.kt +++ b/app/src/main/java/org/fossasia/badgemagic/viewmodels/EditBadgeViewModel.kt @@ -13,7 +13,7 @@ class EditBadgeViewModel( var drawModeState: ObservableField = ObservableField(DrawMode.NOTHING) var drawingJSON: ObservableField = ObservableField("[]") - var drawState: ObservableBoolean = ObservableBoolean(false) + var drawState: ObservableBoolean = ObservableBoolean(true) var eraseState: ObservableBoolean = ObservableBoolean(false) var savedButton: MutableLiveData = MutableLiveData() diff --git a/app/src/main/java/org/fossasia/badgemagic/viewmodels/EditClipartViewModel.kt b/app/src/main/java/org/fossasia/badgemagic/viewmodels/EditClipartViewModel.kt index b5716a7c..1b61f6bd 100644 --- a/app/src/main/java/org/fossasia/badgemagic/viewmodels/EditClipartViewModel.kt +++ b/app/src/main/java/org/fossasia/badgemagic/viewmodels/EditClipartViewModel.kt @@ -13,7 +13,7 @@ class EditClipartViewModel( var drawModeState: ObservableField = ObservableField(DrawMode.NOTHING) var drawingJSON: ObservableField> = ObservableField(listOf()) - var drawState: ObservableBoolean = ObservableBoolean(false) + var drawState: ObservableBoolean = ObservableBoolean(true) var eraseState: ObservableBoolean = ObservableBoolean(false) var savedButton: MutableLiveData = MutableLiveData() diff --git a/docs/sources/Makefile b/docs/sources/Makefile new file mode 100644 index 00000000..d4bb2cbb --- /dev/null +++ b/docs/sources/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/sources/conf.py b/docs/sources/conf.py new file mode 100644 index 00000000..67322a4c --- /dev/null +++ b/docs/sources/conf.py @@ -0,0 +1,53 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# http://www.sphinx-doc.org/en/master/config + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- Project information ----------------------------------------------------- + +project = 'Badge Magic' +copyright = '2019, FOSSASIA' +author = 'FOSSASIA' + +master_doc = 'index' + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'alabaster' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] diff --git a/docs/sources/index.rst b/docs/sources/index.rst new file mode 100644 index 00000000..e2d33268 --- /dev/null +++ b/docs/sources/index.rst @@ -0,0 +1,20 @@ +.. Badge Magic documentation master file, created by + sphinx-quickstart on Thu Aug 8 09:11:41 2019. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to Badge Magic's documentation! +======================================= + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/sources/make.bat b/docs/sources/make.bat new file mode 100644 index 00000000..922152e9 --- /dev/null +++ b/docs/sources/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/fastlane/Appfile b/fastlane/Appfile new file mode 100644 index 00000000..c90334b4 --- /dev/null +++ b/fastlane/Appfile @@ -0,0 +1,2 @@ +json_key_file("./scripts/fastlane.json") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one +package_name("org.fossasia.badgemagic") # e.g. com.krausefx.app diff --git a/fastlane/Fastfile b/fastlane/Fastfile new file mode 100644 index 00000000..c16a6ece --- /dev/null +++ b/fastlane/Fastfile @@ -0,0 +1,9 @@ +default_platform(:android) +platform :android do + lane :buildAAB do + gradle(task: "bundle",build_type: "Release") + end + lane :uploadToPlaystore do + upload_to_play_store(track: "alpha",aab:"apk/badge-magic-master-app.aab") + end +end \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/changelogs/1.txt b/fastlane/metadata/android/en-US/changelogs/1.txt new file mode 100644 index 00000000..aa949b47 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/1.txt @@ -0,0 +1 @@ +Initial Release \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/changelogs/2.txt b/fastlane/metadata/android/en-US/changelogs/2.txt new file mode 100644 index 00000000..aa949b47 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/2.txt @@ -0,0 +1 @@ +Initial Release \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/changelogs/3.txt b/fastlane/metadata/android/en-US/changelogs/3.txt new file mode 100644 index 00000000..c0ab60fa --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/3.txt @@ -0,0 +1 @@ +- Changes to Interface and bug fixes \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/changelogs/4.txt b/fastlane/metadata/android/en-US/changelogs/4.txt new file mode 100644 index 00000000..c94c6d06 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/4.txt @@ -0,0 +1,3 @@ +- miscellaneous bug fixes +- draw support for cliparts +- edit support for badges \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/changelogs/7.txt b/fastlane/metadata/android/en-US/changelogs/7.txt new file mode 100644 index 00000000..a0992b60 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/7.txt @@ -0,0 +1 @@ +feat: Preselect "Draw" when going to draw screen \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt new file mode 100644 index 00000000..966900e8 --- /dev/null +++ b/fastlane/metadata/android/en-US/full_description.txt @@ -0,0 +1,3 @@ +Badge Magic lets you create scrolling symbols and text on LED name badges through Bluetooth. The app provides options to portray names, clipart and simple animations on LED badges. For the data transfer from the smartphone to the LED badge we use Bluetooth. + +You can purchase a compatible LED Badge at https://sg.pslab.io \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/images/icon.png b/fastlane/metadata/android/en-US/images/icon.png new file mode 100644 index 00000000..76922647 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/icon.png differ diff --git a/fastlane/metadata/android/en-US/images/sevenInchScreenshots/.gitkeep b/fastlane/metadata/android/en-US/images/sevenInchScreenshots/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/fastlane/metadata/android/en-US/images/tenInchScreenshots/.gitkeep b/fastlane/metadata/android/en-US/images/tenInchScreenshots/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/fastlane/metadata/android/en-US/images/tvScreenshots/.gitkeep b/fastlane/metadata/android/en-US/images/tvScreenshots/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/fastlane/metadata/android/en-US/images/wearScreenshots/.gitkeep b/fastlane/metadata/android/en-US/images/wearScreenshots/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/fastlane/metadata/android/en-US/short_description.txt b/fastlane/metadata/android/en-US/short_description.txt new file mode 100644 index 00000000..322bb792 --- /dev/null +++ b/fastlane/metadata/android/en-US/short_description.txt @@ -0,0 +1 @@ +Magically Create Symbols and Text on LED Name Badges using Bluetooth \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/title.txt b/fastlane/metadata/android/en-US/title.txt new file mode 100644 index 00000000..17355f5a --- /dev/null +++ b/fastlane/metadata/android/en-US/title.txt @@ -0,0 +1 @@ +Badge Magic \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/video.txt b/fastlane/metadata/android/en-US/video.txt new file mode 100644 index 00000000..e69de29b diff --git a/scripts/.gitignore b/scripts/.gitignore new file mode 100644 index 00000000..024a5860 --- /dev/null +++ b/scripts/.gitignore @@ -0,0 +1,3 @@ +fastlane.json +*.jks + diff --git a/scripts/upload-apk.sh b/scripts/upload-apk.sh old mode 100644 new mode 100755 index c6101eef..c7d07df0 --- a/scripts/upload-apk.sh +++ b/scripts/upload-apk.sh @@ -1,71 +1,43 @@ #!/bin/sh -set -e git config --global user.name "Travis CI" git config --global user.email "noreply+travis@fossasia.org" -export DEPLOY_BRANCH=${DEPLOY_BRANCH:-development} -export PUBLISH_BRANCH=${PUBLISH_BRANCH:-master} - -if [ "$TRAVIS_PULL_REQUEST" != "false" -o "$TRAVIS_REPO_SLUG" != "fossasia/badge-magic-android" ] || ! [ "$TRAVIS_BRANCH" == "$DEPLOY_BRANCH" -o "$TRAVIS_BRANCH" == "$PUBLISH_BRANCH" ]; then - echo "We upload apk only for changes in development or master, and not PRs. So, let's skip this shall we ? :)" - exit 0 -fi - -./gradlew bundleRelease +bundle exec fastlane buildAAB git clone --quiet --branch=apk https://fossasia:$GITHUB_KEY@github.com/fossasia/badge-magic-android apk > /dev/null cd apk -if [[ "$TRAVIS_BRANCH" == "$PUBLISH_BRANCH" ]]; then - /bin/rm -f * +if [[ $TRAVIS_BRANCH =~ ^(master)$ ]]; then + rm -rf * else - /bin/rm -f badge-magic-dev-* + rm -rf badge-magic-dev* fi find ../app/build/outputs -type f \( -name '*.apk' -o -name '*.aab' \) -exec cp -v {} . \; -#removing unused apps for file in app*; do - if [[ ${file} =~ "unsigned" || ${file} =~ "unaligned" ]]; then - rm ${file} + if [[ $file =~ ".aab" ]]; then + mv $file badge-magic-$TRAVIS_BRANCH-$file else - if [[ "$TRAVIS_BRANCH" == "$PUBLISH_BRANCH" ]]; then - if [[ ${file} =~ ".aab" ]]; then - mv ${file} badge-magic-master-${file} - else - mv ${file} badge-magic-master-${file:4} - fi - elif [[ "$TRAVIS_BRANCH" == "$DEPLOY_BRANCH" ]]; then - if [[ ${file} =~ ".aab" ]]; then - mv ${file} badge-magic-dev-${file} - else - mv ${file} badge-magic-dev-${file:4} - fi - fi + mv $file badge-magic-$TRAVIS_BRANCH-${file:4} fi done -# Create a new branch that will contains only latest apk git checkout --orphan temporary -# Add generated APK git add --all . git commit -am "[Auto] Update Test Apk ($(date +%Y-%m-%d.%H:%M:%S))" -# Delete current apk branch git branch -D apk -# Rename current branch to apk git branch -m apk -# Force push to origin since histories are unrelated git push origin apk --force --quiet > /dev/null -# Publish App to Play Store -if [[ "$TRAVIS_BRANCH" != "$PUBLISH_BRANCH" ]]; then - echo "We publish apk only for changes in master branch. So, let's skip this shall we ? :)" +if [[ $TRAVIS_BRANCH =~ ^(master)$ ]]; then + cd .. + bundle exec fastlane uploadToPlaystore exit 0 fi -gem install fastlane -fastlane supply --aab badge-magic-master-app.aab --skip_upload_apk true --track alpha --json_key ../scripts/fastlane.json --package_name $PACKAGE_NAME +echo "We publish apk only for changes in master branch. So, let's skip this shall we ? :)" \ No newline at end of file diff --git a/scripts/upload-gh-pages.sh b/scripts/upload-gh-pages.sh new file mode 100755 index 00000000..291163f8 --- /dev/null +++ b/scripts/upload-gh-pages.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +git config --global user.name "Travis CI" +git config --global user.email "noreply+travis@fossasia.org" + +sudo pip install Sphinx + +cd docs/sources + +make html + +git clone --quiet --branch=gh-pages https://fossasia:$GITHUB_KEY@github.com/fossasia/badge-magic-android gh-pages > /dev/null +cd gh-pages + +rm -rf * +cp -r ../_build/html/* . + +git checkout --orphan temporary + +git add --all . +git commit -am "[Auto] Update GH-Pages from $TRAVIS_BRANCH ($(date +%Y-%m-%d.%H:%M:%S))" + +git branch -D gh-pages +git branch -m gh-pages + +git push origin gh-pages --force --quiet > /dev/null \ No newline at end of file