mirror of
https://github.com/ChristianLight/tutor.git
synced 2024-11-16 01:57:16 +00:00
Fix and upgrade Android app to v2.21.1
Also, we introduce tons of cool features, including downloading videos to SD card.
This commit is contained in:
parent
8b8e27a781
commit
a92ff42348
@ -2,6 +2,11 @@
|
|||||||
|
|
||||||
Note: Breaking changes between versions are indicated by "💥".
|
Note: Breaking changes between versions are indicated by "💥".
|
||||||
|
|
||||||
|
## Unreleased
|
||||||
|
|
||||||
|
- [Improvement] Upgrade Android app to v2.21.1 and enable many features, such as downloading videos to SD card. Thanks for the help @ejklock!
|
||||||
|
- [Bugfix] Fix Android app crash when accessing course
|
||||||
|
|
||||||
## v3.12.4 (2020-05-18)
|
## v3.12.4 (2020-05-18)
|
||||||
|
|
||||||
- [Improvement] Add ability to rescore SCORM units
|
- [Improvement] Add ability to rescore SCORM units
|
||||||
|
@ -11,29 +11,15 @@ def android():
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@click.group(help="Build the application")
|
@click.command(help="Build the application")
|
||||||
def build():
|
@click.argument("mode", type=click.Choice(["debug", "release"]))
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
@click.command(help="Build the application in debug mode")
|
|
||||||
@click.pass_obj
|
@click.pass_obj
|
||||||
def debug(context):
|
def build(context, mode):
|
||||||
docker_run(context.root)
|
config = tutor_config.load(context.root)
|
||||||
|
docker_run(context.root, build_command(config, mode))
|
||||||
fmt.echo_info(
|
fmt.echo_info(
|
||||||
"The debuggable APK file is available in {}".format(
|
"The {} APK file is available in {}".format(
|
||||||
tutor_env.data_path(context.root, "android")
|
mode, tutor_env.data_path(context.root, "android")
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@click.command(help="Build the application in release mode")
|
|
||||||
@click.pass_obj
|
|
||||||
def release(context):
|
|
||||||
docker_run(context.root, "./gradlew", "assembleProdRelease")
|
|
||||||
fmt.echo_info(
|
|
||||||
"The production APK file is available in {}".format(
|
|
||||||
tutor_env.data_path(context.root, "android")
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -45,17 +31,31 @@ def pullimage(context):
|
|||||||
utils.execute("docker", "pull", config["DOCKER_IMAGE_ANDROID"])
|
utils.execute("docker", "pull", config["DOCKER_IMAGE_ANDROID"])
|
||||||
|
|
||||||
|
|
||||||
def docker_run(root, *command):
|
def build_command(config, target):
|
||||||
|
gradle_target = {
|
||||||
|
"debug": "assembleProdDebuggable",
|
||||||
|
"release": "assembleProdRelease",
|
||||||
|
}[target]
|
||||||
|
apk_folder = {"debug": "debuggable", "release": "release"}[target]
|
||||||
|
|
||||||
|
command = """
|
||||||
|
sed -i "s/APPLICATION_ID = .*/APPLICATION_ID = \\"{{ LMS_HOST|reverse_host|replace("-", "_") }}\\"/g" constants.gradle
|
||||||
|
./gradlew {gradle_target}
|
||||||
|
cp OpenEdXMobile/build/outputs/apk/prod/{apk_folder}/*.apk /openedx/data/"""
|
||||||
|
command = tutor_env.render_str(config, command)
|
||||||
|
command = command.format(gradle_target=gradle_target, apk_folder=apk_folder)
|
||||||
|
return command
|
||||||
|
|
||||||
|
|
||||||
|
def docker_run(root, command):
|
||||||
config = tutor_config.load(root)
|
config = tutor_config.load(root)
|
||||||
utils.docker_run(
|
utils.docker_run(
|
||||||
"--volume={}:/openedx/config/".format(tutor_env.pathjoin(root, "android")),
|
"--volume={}:/openedx/config/".format(tutor_env.pathjoin(root, "android")),
|
||||||
"--volume={}:/openedx/data/".format(tutor_env.data_path(root, "android")),
|
"--volume={}:/openedx/data/".format(tutor_env.data_path(root, "android")),
|
||||||
config["DOCKER_IMAGE_ANDROID"],
|
config["DOCKER_IMAGE_ANDROID"],
|
||||||
*command
|
command,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
build.add_command(debug)
|
|
||||||
build.add_command(release)
|
|
||||||
android.add_command(build)
|
android.add_command(build)
|
||||||
android.add_command(pullimage)
|
android.add_command(pullimage)
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
APPLICATION_ID={{ LMS_HOST|reverse_host|replace("-", "_") }}
|
|
||||||
RELEASE_STORE_FILE=/openedx/config/app.keystore
|
RELEASE_STORE_FILE=/openedx/config/app.keystore
|
||||||
RELEASE_STORE_PASSWORD={{ ANDROID_RELEASE_STORE_PASSWORD }}
|
RELEASE_STORE_PASSWORD={{ ANDROID_RELEASE_STORE_PASSWORD }}
|
||||||
RELEASE_KEY_PASSWORD={{ ANDROID_RELEASE_KEY_PASSWORD }}
|
RELEASE_KEY_PASSWORD={{ ANDROID_RELEASE_KEY_PASSWORD }}
|
||||||
|
@ -1,6 +1,18 @@
|
|||||||
|
# See docs: https://openedx.atlassian.net/wiki/spaces/LEARNER/pages/48792067/App+Configuration+Flags
|
||||||
API_HOST_URL: '{{ "https" if ACTIVATE_HTTPS else "http" }}://{{ LMS_HOST }}'
|
API_HOST_URL: '{{ "https" if ACTIVATE_HTTPS else "http" }}://{{ LMS_HOST }}'
|
||||||
ENVIRONMENT_DISPLAY_NAME: 'tutor'
|
ENVIRONMENT_DISPLAY_NAME: 'tutor'
|
||||||
PLATFORM_NAME: '{{ PLATFORM_NAME }}'
|
PLATFORM_NAME: '{{ PLATFORM_NAME }}'
|
||||||
PLATFORM_DESTINATION_NAME: '{{ LMS_HOST }}'
|
PLATFORM_DESTINATION_NAME: '{{ LMS_HOST }}'
|
||||||
FEEDBACK_EMAIL_ADDRESS: 'support@{{ LMS_HOST }}'
|
FEEDBACK_EMAIL_ADDRESS: 'support@{{ LMS_HOST }}'
|
||||||
OAUTH_CLIENT_ID: 'android'
|
OAUTH_CLIENT_ID: 'android'
|
||||||
|
|
||||||
|
COURSE_VIDEOS_ENABLED: true
|
||||||
|
CERTIFICATES_ENABLED: true
|
||||||
|
DISCUSSIONS_ENABLED: true
|
||||||
|
DISCOVERY:
|
||||||
|
COURSE:
|
||||||
|
TYPE: native
|
||||||
|
DOWNLOAD_TO_SD_CARD_ENABLED: true
|
||||||
|
NEW_LOGISTRATION_ENABLED: true
|
||||||
|
USER_PROFILES_ENABLED : true
|
||||||
|
VIDEO_TRANSCRIPT_ENABLED: true
|
@ -9,22 +9,23 @@ RUN mkdir /openedx
|
|||||||
|
|
||||||
# Install Android SDK
|
# Install Android SDK
|
||||||
# Inspired from https://github.com/LiveXP/docker-android-sdk/blob/master/Dockerfile
|
# Inspired from https://github.com/LiveXP/docker-android-sdk/blob/master/Dockerfile
|
||||||
ENV ANDROID_SDK_VERSION 4333796
|
ENV ANDROID_SDK_VERSION 6200805
|
||||||
ENV ANDROID_SDK_PATH /openedx/android-sdk
|
ENV ANDROID_SDK_PATH /openedx/android-sdk
|
||||||
ENV ANDROID_HOME /openedx/android-sdk
|
ENV ANDROID_HOME /openedx/android-sdk
|
||||||
RUN mkdir /openedx/android-sdk
|
RUN mkdir ${ANDROID_HOME}
|
||||||
WORKDIR /openedx/android-sdk
|
WORKDIR /openedx/android-sdk
|
||||||
RUN wget https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_VERSION}.zip && \
|
RUN wget https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_VERSION}_latest.zip && \
|
||||||
unzip sdk-tools-linux-${ANDROID_SDK_VERSION}.zip && \
|
unzip commandlinetools-linux-${ANDROID_SDK_VERSION}_latest.zip && \
|
||||||
rm sdk-tools-linux-${ANDROID_SDK_VERSION}.zip
|
rm commandlinetools-linux-${ANDROID_SDK_VERSION}_latest.zip
|
||||||
|
|
||||||
# Accept licenses
|
# Accept licenses
|
||||||
# https://developer.android.com/studio/command-line/sdkmanager
|
# https://developer.android.com/studio/command-line/sdkmanager
|
||||||
RUN yes | /openedx/android-sdk/tools/bin/sdkmanager "platforms;android-27" 1> /dev/null
|
ARG ANDROID_API_LEVEL=28
|
||||||
|
RUN yes | /openedx/android-sdk/tools/bin/sdkmanager --sdk_root=${ANDROID_HOME} --install "platforms;android-$ANDROID_API_LEVEL" 1> /dev/null
|
||||||
|
|
||||||
# Install android app repo
|
# Install android app repo
|
||||||
ARG ANDROID_APP_REPOSITORY=https://github.com/edx/edx-app-android
|
ARG ANDROID_APP_REPOSITORY=https://github.com/edx/edx-app-android
|
||||||
ARG ANDROID_APP_VERSION=release/2.20.2
|
ARG ANDROID_APP_VERSION=release/2.21.1
|
||||||
RUN git clone $ANDROID_APP_REPOSITORY --branch $ANDROID_APP_VERSION /openedx/edx-app-android
|
RUN git clone $ANDROID_APP_REPOSITORY --branch $ANDROID_APP_VERSION /openedx/edx-app-android
|
||||||
WORKDIR /openedx/edx-app-android
|
WORKDIR /openedx/edx-app-android
|
||||||
|
|
||||||
@ -37,5 +38,4 @@ COPY ./edx.properties ./OpenEdXMobile/edx.properties
|
|||||||
RUN mkdir /openedx/config
|
RUN mkdir /openedx/config
|
||||||
RUN ln -s /openedx/config/gradle.properties ./OpenEdXMobile/gradle.properties
|
RUN ln -s /openedx/config/gradle.properties ./OpenEdXMobile/gradle.properties
|
||||||
|
|
||||||
CMD ./gradlew assembleProdDebuggable && \
|
ENTRYPOINT ["sh", "-e", "-c"]
|
||||||
cp OpenEdXMobile/build/outputs/apk/prod/debuggable/*.apk /openedx/data/
|
|
Loading…
Reference in New Issue
Block a user