diff --git a/.classpath b/.classpath deleted file mode 100644 index 51769745b2c..00000000000 --- a/.classpath +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000000..09e594943c4 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,5 @@ +[*] +max_line_length = 150 + +[*.{kt, kts}] +disabled_rules=no-consecutive-blank-lines,no-wildcard-imports,import-ordering,max-line-length,import-ordering,no-blank-line-before-rbrace,final-newline,indent,no-multi-spaces,comment-spacing,parameter-list-wrapping diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000000..f4e55ec88ec --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,46 @@ +--- +name: Bug report +about: Create a bug report to help us improve +title: "[BUG]" +labels: '' +assignees: '' + +--- + +### Actual behaviour +-Tell us what happens + +### Expected behaviour +-Tell us what should happen + +### Steps to reproduce +1. +2. +3. + + +Can this problem be reproduced with the official owncloud server? +(url: https://ocis.ocis.master.owncloud.works, user: einstein, password: relativity) + + +### Environment data +Android version: + +Device model: + +Stock or customized system: + +ownCloud app version: + +ownCloud server version: + +### Logs +#### Web server error log +``` +Insert your webserver log here +``` + +#### ownCloud log (data/owncloud.log) +``` +Insert your ownCloud log here +``` diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000000..164df7f6e76 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,34 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "[FEATURE REQUEST] " +labels: Feature request +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. + + +### TASKS + +- [ ] Research (if needed) +- [ ] Create branch feature/feature_name +- [ ] Development tasks + - [ ] Implement whatever + - [ ] ... + - [ ] Implement unit tests (if needed) +- [ ] Code review and apply changes requested +- [ ] Design test plan +- [ ] QA +- [ ] Merge branch feature/feature_name into master diff --git a/.github/ISSUE_TEMPLATE/release_template.md b/.github/ISSUE_TEMPLATE/release_template.md new file mode 100644 index 00000000000..f4eb4ab0ad8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/release_template.md @@ -0,0 +1,132 @@ +--- +name: Release +about: List of checklist to accomplish for the ownCloud team to finish the release process +title: "[RELEASE]" +labels: Release +assignees: '' +--- + + + +## Open release + +### TASKS: + + - [ ] [COM] Ping @mmattel about the new release + - [ ] [GIT] Create branch `release/M.m.p` in owncloud/android from `master` + - [ ] [DEV] Update version number and name in build.gradle in owncloudApp module + - [ ] [DIS] Move Calens files from `unreleased` to a new folder like `M.m.p_YYYY-MM-DD` inside the `changelog` folder + - [ ] [DEV] Check and reorder release notes in `ReleaseNotesViewModel.kt` to assure nothing important is missing there + - [ ] [DEV] Code review + - [ ] [DIS] Generate final bundle and APK from last commit in release branch + - [ ] [COM] Prepare post in central.owncloud.org ([Category:News + Tag:android](https://central.owncloud.org/tags/c/news/5/android)) + - [ ] [DIS] Check for new screenshots in Play Store/GitHub/F-Droid and generate them + - [ ] [QA] Design test plan + - [ ] [QA] Regression test execution + - [ ] [QA] QA approval + - [ ] [DIS] Upload release APK and bundle to internal ownCloud instance + - [ ] [COM] Ping @mmattel that we are close to sign the new tags + - [ ] [DIS] Upload and publish release bundle and changelog in Play Store + - [ ] [DIS] Update screenshots in Play Store/GitHub/F-Droid + - [ ] [GIT] Create and sign tag `vM.m.p` in HEAD commit of release branch, in owncloud/android + - [ ] [GIT] Move tag `latest` pointing the same commit as the release commit + - [ ] [DIS] Publish a new [release](https://github.com/owncloud/android/releases) in owncloud/android + - [ ] [DIS] Release published in Play Store + - [ ] [COM] Publish post in central.owncloud.org ([Category:News + Tag:android](https://central.owncloud.org/tags/c/news/5/android)) + - [ ] [COM] Inform via chat that release is out + - [ ] [GIT] Merge `master` into `release/M.m.p`, fixing all the conflicts that could happen, in owncloud/android + - [ ] [GIT] Merge without rebasing `release/M.m.p` branch into `master`, in owncloud/android + - [ ] [COM] Ping @DeepDiver1975 to update release information in https://owncloud.com/mobile-apps/ + + +### QA + +Regression test: + +Bugs & improvements: + +- [ ] (1) ... + +_____ + +## Patch release + +### TASKS: + + - [ ] [GIT] Create branch `release/M.m.p` in owncloud/android from `latest` + - [ ] [DEV] Update version number and name in build.gradle in owncloudApp module + - [ ] [DIS] Update release notes in app and changelog in `unreleased` with the proper content for the release + - [ ] [DIS] Move Calens files from `unreleased` to a new folder like `M.m.p_YYYY-MM-DD` inside the `changelog` folder + - [ ] [DIS] Copy the `unreleased` folder in `master` branch into this branch, to avoid Calens conflicts problems + - [ ] [DEV] Check and reorder release notes in `ReleaseNotesViewModel.kt` to assure nothing important is missing there + - [ ] [DEV] Code review + - [ ] [DIS] Generate final bundle and APK from last commit in the release branch + - [ ] [DIS] Check for new screenshots in Play Store/GitHub/F-Droid and generate them + - [ ] [QA] Design test plan + - [ ] [QA] Test execution + - [ ] [QA] Trigger CI builds for unit tests and UI tests, in case changelog conflicts avoid them in GitHub + - [ ] [QA] QA approval + - [ ] [DIS] Upload release APK and bundle to internal ownCloud instance + - [ ] [DIS] Upload and publish release bundle and changelog in Play Store + - [ ] [DIS] Update screenshots in Play Store/GitHub/F-Droid + - [ ] [GIT] Create and sign tag `vM.m.p` in HEAD commit of release branch, in owncloud/android + - [ ] [GIT] Move tag `latest` pointing the same commit as the release commit + - [ ] [DIS] Publish a new [release](https://github.com/owncloud/android/releases) in owncloud/android + - [ ] [DIS] Release published in Play Store + - [ ] [COM] Inform via chat that release is out + - [ ] [GIT] Merge `master` into `release/M.m.p`, fixing all the conflicts that could happen, in owncloud/android + - [ ] [GIT] Merge without rebasing `release/M.m.p` branch into `master`, in owncloud/android + - [ ] [COM] Ping @DeepDiver1975 to update release information in https://owncloud.com/mobile-apps/ + + +### QA + +QA checks: + +- [ ] Smoke test +- [ ] Upgrade test + +Bugs & improvements: + +- [ ] (1) ... + + +_____ + +## Enterprise release + +### TASKS: + +- [ ] [GIT] Create branch `release/M.m.p_enterprise` in owncloud/android from `latest` (or the corresponding release tag) +- [ ] [DIS] Update release notes in app and changelog in `M.m.p_YYYY-MM-DD` (already released version) with the proper content for the release +- [ ] [DIS] Copy the `unreleased` folder in `master` branch into this branch, to avoid Calens conflicts problems +- [ ] [DEV] Check and reorder release notes in `ReleaseNotesViewModel.kt` to assure nothing important is missing there +- [ ] [DEV] Code review +- [ ] [DIS] Generate final bundle and APK from last commit in the release branch +- [ ] [QA] Design test plan +- [ ] [QA] Test execution +- [ ] [QA] Trigger CI builds for unit tests and UI tests, in case changelog conflicts avoid them in GitHub +- [ ] [QA] QA approval +- [ ] [DIS] Upload release APK and bundle to internal ownCloud instance +- [ ] [GIT] Create and sign tag `vM.m.p_enterprise` in HEAD commit of release branch, in owncloud/android +- [ ] [DEV] Approve and merge changes in ownBrander + - [ ] Feature 1 oB https://github.com/owncloud/ownbrander/pull/ + - [ ] Feature 2 oB https://github.com/owncloud/ownbrander/pull/ + - [ ] Update version number in ownBrander +- [ ] [COM] Ping support team to block oB button +- [ ] [COM] Ping support team to deploy oB +- [ ] [QA] Generate final APKs from signed commit in builder machine and perform some basic checks + - [ ] Installation of APK/bundle generated by builder machine + - [ ] Check Feature 1 oB + - [ ] Check Feature 2 oB + - [ ] App update from previous version (generated in advance) +- [ ] [COM] Notify result in internal chat +- [ ] [COM] Ping support team to enable oB button +- [ ] [GIT] Merge `master` into `release/M.m.p_enterprise`, fixing all the conflicts that could happen, in owncloud/android +- [ ] [GIT] Merge without rebasing `release/M.m.p_enterprise` branch into `master`, in owncloud/android diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000000..36ccc72feb3 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,21 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "gradle" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "daily" + labels: + - "Dependencies" + commit-message: + prefix: "feat" + - package-ecosystem: "github-actions" + directory: "/" # Location of package manifests + schedule: + interval: "weekly" + commit-message: + prefix: "feat" diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000000..cc94eb49653 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,9 @@ +## Related Issues +App: + +- [ ] Add changelog files for the fixed issues in folder changelog/unreleased. More info [here](https://github.com/owncloud/android/tree/master/changelog#create-changelog-items) +- [ ] Add feature to Release Notes in `ReleaseNotesViewModel.kt` creating a new `ReleaseNote()` with String resources (if required) + +_____ + +## QA diff --git a/.github/workflows/android-instrumented-data-tests.yml b/.github/workflows/android-instrumented-data-tests.yml new file mode 100644 index 00000000000..6b952128600 --- /dev/null +++ b/.github/workflows/android-instrumented-data-tests.yml @@ -0,0 +1,46 @@ +name: Android Instrumented Data Tests + +permissions: + contents: read + +on: + pull_request: + +# Cancels other executions in the same branch +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + instrumented-tests: + name: Run Android Instrumented Data Tests + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v5 + + - name: Set up JDK 17 + uses: actions/setup-java@v5 + with: + java-version: '17' + distribution: 'temurin' + + - name: Enable KVM + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + + - name: Run Instrumented Data Tests with emulator + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 33 + target: google_apis + arch: x86_64 + profile: pixel + avd-name: instrumented-tests-avd + force-avd-creation: true + disable-animations: true + emulator-options: -no-window -no-audio -no-boot-anim -accel auto -memory 2048 + script: ./gradlew :ownCloudData:connectedAndroidTest diff --git a/.github/workflows/android-unit-tests.yml b/.github/workflows/android-unit-tests.yml new file mode 100644 index 00000000000..a9e1054ad36 --- /dev/null +++ b/.github/workflows/android-unit-tests.yml @@ -0,0 +1,36 @@ +name: Android Unit Tests + +permissions: + contents: read + +on: + pull_request: + +# Cancels other executions in the same branch +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + unit-tests: + name: Run Android Unit Tests + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v5 + + - name: Set up JDK 17 + uses: actions/setup-java@v5 + with: + java-version: '17' + distribution: 'temurin' + + - name: Set up Gradle + uses: gradle/actions/setup-gradle@v5 + + - name: Build with Gradle + run: ./gradlew assembleDebug + + - name: Run unit tests + run: ./gradlew testDebugUnitTest testMdmDebugUnitTest --continue diff --git a/.github/workflows/build-apk.yml b/.github/workflows/build-apk.yml new file mode 100644 index 00000000000..dbd5330ef12 --- /dev/null +++ b/.github/workflows/build-apk.yml @@ -0,0 +1,140 @@ +name: Build apk + +on: + workflow_dispatch: + inputs: + build_variant: + description: "Variant to build" + type: choice + required: true + default: "originalRelease" + options: + - originalDebug + - originalRelease + - mdmDebug + - mdmRelease + - qaDebug + - qaRelease + version: + description: "Version to build (commit, branch or tag)" + type: string + default: "master" + + # This workflow can be reused via workflow_call. + # It builds an APK from the owncloud/android repository at the requested version + # and exposes the generated artifact name and commit hash as outputs. + workflow_call: + inputs: + build_variant: + description: Variant to build + type: string + default: "originalRelease" + version: + description: "Version to build (commit, branch or tag)" + type: string + default: "master" + outputs: + artifact_name: + description: "Generated APK artifact name" + value: ${{ jobs.build_apk.outputs.artifact_name }} + commit_hash: + description: "Commit hash of the artifact" + value: ${{ jobs.build_apk.outputs.commit_hash }} + +permissions: + contents: read + +# NOTE: +# This workflow intentionally builds unsigned APKs for internal usage. +# No signing step is performed as part of this workflow. + +jobs: + # Builds the requested app variant and publishes the generated APK as an artifact + build_apk: + name: Build APK + runs-on: ubuntu-latest + outputs: + artifact_name: ${{ steps.set_artifact.outputs.artifact_name }} + commit_hash: ${{ steps.commit.outputs.commit_hash }} + + steps: + # Validate build variant (mainly for workflow_call usage) + - name: Validate build variant + run: | + case "${{ inputs.build_variant }}" in + originalDebug|originalRelease|mdmDebug|mdmRelease|qaDebug|qaRelease) ;; + *) echo "Invalid build_variant: ${{ inputs.build_variant }}" && exit 1 ;; + esac + + # Checkout the repo + - name: Checkout current repo + uses: actions/checkout@v5 + with: + repository: owncloud/android + ref: ${{ inputs.version }} + + # Retrieve and expose the app commit hash as a workflow output + - name: Get commit hash + id: commit + run: | + COMMIT_HASH=$(git rev-parse HEAD) + echo "Commit hash: $COMMIT_HASH" + echo "commit_hash=$COMMIT_HASH" >> $GITHUB_OUTPUT + + # Set Java-JDK version + - name: Setup JDK + uses: actions/setup-java@v5 + with: + distribution: 'temurin' + java-version: '17' + + # Cache gradle + - name: Cache Gradle + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + + # Build the apk with the given variant + - name: Build APK + run: ./gradlew clean assemble${{ inputs.build_variant }} + + # Name the output artifact with date, commit, and variant + - name: Set artifact name + id: set_artifact + run: | + DATE=$(date +%Y%m%d_%H%M) + COMMIT=$(git rev-parse --short HEAD) + VARIANT="${{ inputs.build_variant }}" + + # Extract flavor and build type from variant (e.g. qaRelease -> qa / release) + FLAVOR=$(echo "$VARIANT" | sed -E 's/(Release|Debug)//' | tr '[:upper:]' '[:lower:]') + BUILD_TYPE=$(echo "$VARIANT" | grep -qi debug && echo debug || echo release) + NAME="ownCloud-${{ inputs.build_variant }}-${COMMIT}-${DATE}.apk" + + APK_PATH=$(find ./owncloudApp/build/outputs/apk/$FLAVOR/$BUILD_TYPE/ -name "*.apk") + + echo "$APK_PATH" + + # Verify that apk exists + if [ -z "$APK_PATH" ]; then + echo "❌ APK not found in ./owncloudApp/build/outputs/apk/$FLAVOR/$BUILD_TYPE/" + exit 1 + fi + + # Copy to root for an easier handling + cp "$APK_PATH" "./$NAME" + + # Publish as output + echo "artifact_name=$NAME" >> $GITHUB_OUTPUT + + # Publish the artifact + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ steps.set_artifact.outputs.artifact_name }} + path: ./${{ steps.set_artifact.outputs.artifact_name }} diff --git a/.github/workflows/calens.yml b/.github/workflows/calens.yml new file mode 100644 index 00000000000..75467d099cc --- /dev/null +++ b/.github/workflows/calens.yml @@ -0,0 +1,36 @@ +name: Calens Changelog +# This workflow is triggered on pushes to the repository. +on: + push: + branches: + - feature/* + - fix/* + - improvement/* + - release/* + - technical/* + +permissions: + contents: read + +jobs: + build: + permissions: + contents: write + runs-on: ubuntu-22.04 + name: Generate Calens Changelog + steps: + - name: Checkout + uses: actions/checkout@v5 + with: + persist-credentials: false + - name: Run Calens + uses: actionhippie/calens@v1.12.4 + with: + target: CHANGELOG.md + - name: Commit files + uses: GuillaumeFalourd/git-commit-push@v1.3 + with: + email: devops@owncloud.com + name: ownClouders + commit_message: "docs: calens changelog updated" + access_token: ${{ secrets.GH_PAT }} diff --git a/.github/workflows/conventional-commits.yml b/.github/workflows/conventional-commits.yml new file mode 100644 index 00000000000..7ba08da00cd --- /dev/null +++ b/.github/workflows/conventional-commits.yml @@ -0,0 +1,73 @@ +name: Conventional Commits + +on: + pull_request: + # Just some events that could involve commit messages + types: [opened, synchronize, reopened] + +permissions: + # Only need read access to repository contents + contents: read + +jobs: + validate-commit-names: + name: Check Commit Names + runs-on: ubuntu-latest + + steps: + # Checkout the repository + - name: Checkout repository + uses: actions/checkout@v5 + with: + # Limit of validation to skip fetching all existing commits + fetch-depth: 100 + + # Validate commit messages + - name: Validate all commit messages + run: | + echo "Validating all commit names in PR #${{ github.event.pull_request.number }}" + + # Get the base branch and the PR branch + BASE_BRANCH="${{ github.event.pull_request.base.ref }}" + + # Fetch the base branch with no verbosity + git fetch --quiet origin "$BASE_BRANCH" + + # Get all commits in the PR (not the base branch ones) + # --pretty=format:"%s" gets only the commit message + mapfile -t commits_array < <(git log origin/$BASE_BRANCH..HEAD --pretty=format:'%s') + + # Regex pattern for valid Conventional Commit + regex='^(docs|fix|feat|chore|refactor|test|style|build|ci): [a-z].{9,}$' + + # Variable to count errors + fail=0 + + echo "Commit list and validation:" + + # Print and validate + for commitmsg in "${commits_array[@]}"; do + echo "$commitmsg" + + # Skip merge and [tx] commits + if [[ "$commitmsg" =~ ^Merge ]] || [[ "$commitmsg" =~ ^\[tx\] ]]; then + echo " 🚫 Ignored commit" + continue + fi + + # Validate Conventional Commit + if ! [[ "$commitmsg" =~ $regex ]]; then + echo " ❌ Invalid commit" + fail=$((fail+1)) + else + echo " ✅ Valid commit" + fi + done + + # Fail the job if there are any invalid commits + if [[ $fail -gt 0 ]]; then + echo "❌ $fail commit(s) do(es) not follow the Conventional Commits convention" + exit 1 + else + echo "✅ All commits follow the Conventional Commits convention" + fi diff --git a/.github/workflows/detekt.yml b/.github/workflows/detekt.yml new file mode 100644 index 00000000000..5a22550165a --- /dev/null +++ b/.github/workflows/detekt.yml @@ -0,0 +1,37 @@ +name: Detekt + +# Controls when the action will run. Workflow runs when manually triggered using the UI +# or API. +on: + pull_request: + branches: + - "*" + +# Cancels other executions in the same branch +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + Detekt: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v5 + - name: Set up JDK 17 + uses: actions/setup-java@v5 + with: + java-version: '17' + distribution: 'temurin' + + # Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies. + # See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v5 + - name: detekt execution + run: ./gradlew detekt diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml new file mode 100644 index 00000000000..60776cbc06b --- /dev/null +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -0,0 +1,13 @@ +name: "Validate Gradle Wrapper" +on: [pull_request] + +permissions: + contents: read + +jobs: + validation: + name: "Validation" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + - uses: gradle/wrapper-validation-action@v3 diff --git a/.github/workflows/sbom.yml b/.github/workflows/sbom.yml new file mode 100644 index 00000000000..1fc07175391 --- /dev/null +++ b/.github/workflows/sbom.yml @@ -0,0 +1,110 @@ +name: SBOM + +on: + workflow_dispatch: + push: + branches: + - feature/* + - fix/* + - improvement/* + - release/* + - technical/* + - 'dependabot/**' + +# Cancels other executions in the same branch +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: write + +jobs: + sbom: + # Skip if the job was triggered by the SBOM commit or a merge commit in the latest push. + if: "!contains(github.event.head_commit.message, 'Merge pull request') && !contains(github.event.head_commit.message, 'SBOM updated')" + runs-on: ubuntu-latest + + steps: + # Checkout the repository + - name: Checkout repository + uses: actions/checkout@v5 + with: + # Parent commit to compare + fetch-depth: 2 + persist-credentials: false + + + # Cache Gradle dependencies to speed up future builds + - name: Cache Gradle dependencies + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + ~/.gradle/wrapper/dists/ + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + + # Set up Java 17 (required by Gradle and CycloneDX plugin) + - name: Set up JDK 17 + uses: actions/setup-java@v5 + with: + java-version: '17' + distribution: 'temurin' + + # Generate the Software Bill of Materials (SBOM) using CycloneDX Gradle plugin + - name: Generate SBOM (CycloneDX) + run: ./gradlew --no-daemon cyclonedxBom + + # Move the generated SBOM to the root and rename it + - name: Move and rename SBOM to root + run: mv build/reports/bom.json ./sbom.json + + # Install jq (JSON processor) for JSON manipulations + - name: Install jq + run: sudo apt-get update && sudo apt-get install -y jq + + # Creates script to normalize SBOM files to compare + - name: Normalization script + run: | + cat <<'EOF' > normalize-sbom.sh + #!/bin/bash + jq -S ' + del(.serialNumber, .timestamp, .metadata.timestamp) + | .components |= (if type=="array" then sort_by(.["bom-ref"] // "") else . end) + | .dependencies |= (if type=="array" then sort_by(.ref // "") else . end) + ' "$1" > "$2" + EOF + chmod +x normalize-sbom.sh + + # Compares with the HEAD to check if there are changes + - name: Compare with previous SBOM + id: compare + run: | + # Try HEAD first to compare with previous commit's sbom (HEAD~1) + git show HEAD~1:sbom.json > sbom_prev.json 2>/dev/null || echo '{}' > sbom_prev.json + + ./normalize-sbom.sh sbom_prev.json sbom_prev_normalized.json + ./normalize-sbom.sh sbom.json sbom_current_normalized.json + + if diff -q sbom_prev_normalized.json sbom_current_normalized.json; then + echo "no_changes=true" >> $GITHUB_OUTPUT + echo "No changes in SBOM" + else + echo "no_changes=false" >> $GITHUB_OUTPUT + echo "Differences in SBOM" + diff sbom_prev_normalized.json sbom_current_normalized.json || true + fi + + # Commit the SBOM file only if it differs from master to avoid unnecessary commits + - name: Commit and push updated SBOM + if: steps.compare.outputs.no_changes == 'false' + uses: GuillaumeFalourd/git-commit-push@v1.3 + with: + commit_message: "docs: SBOM updated" + files: sbom.json + email: devops@owncloud.com + name: ownClouders + access_token: ${{ secrets.GH_PAT }} diff --git a/.gitignore b/.gitignore index 8346dbfca36..df0cb2de6ea 100644 --- a/.gitignore +++ b/.gitignore @@ -8,35 +8,28 @@ # Java class files *.class -# generated files -bin/ -build/ -*.iml -gen/ -target/ - # Local configuration files (sdk path, etc) local.properties -oc_workaround/local.properties -oc_framework/local.properties -oc_framework-test-project/local.properties -tests/local.properties # Mac .DS_Store files .DS_Store # Proguard README proguard-project.txt -oc_workaround/proguard-project.txt -oc_framework/proguard-project.txt -oc_framework-test-project/proguard-project.txt -tests/proguard-project.txt # Android Studio and Gradle specific entries .gradle -.idea *.iml build -# Actionbarsherlock is now ignored since scripts takes care of init the sub-modules. -actionbarsherlock \ No newline at end of file +# android sdk captures folder +captures + +# ignore lint html and xml output +lint-*ml + +.idea/* +!.idea/codeStyles/ + +# Prevent exidental commits of build folders +owncloudApp/release diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 882f3c27694..00000000000 --- a/.gitmodules +++ /dev/null @@ -1,8 +0,0 @@ -[submodule "owncloud-android-library"] - path = owncloud-android-library - url = git://github.com/owncloud/android-library.git - branch = master -[submodule "ocdoc"] - path = user_manual/ocdoc - url = https://github.com/owncloud/documentation - branch = master diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 00000000000..af4fbad11b6 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,379 @@ + + + + diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 00000000000..79ee123c2b2 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.project b/.project deleted file mode 100644 index 27eaad68f67..00000000000 --- a/.project +++ /dev/null @@ -1,33 +0,0 @@ - - - owncloud-android - - - - - - com.android.ide.eclipse.adt.ResourceManagerBuilder - - - - - com.android.ide.eclipse.adt.PreCompilerBuilder - - - - - org.eclipse.jdt.core.javabuilder - - - - - com.android.ide.eclipse.adt.ApkBuilder - - - - - - com.android.ide.eclipse.adt.AndroidNature - org.eclipse.jdt.core.javanature - - diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 81acefee4a3..00000000000 --- a/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,284 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.compliance=1.6 -org.eclipse.jdt.core.compiler.source=1.6 -org.eclipse.jdt.core.formatter.align_type_members_on_columns=false -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_assignment=0 -org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=0 -org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 -org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 -org.eclipse.jdt.core.formatter.blank_lines_before_method=1 -org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 -org.eclipse.jdt.core.formatter.blank_lines_before_package=0 -org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 -org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 -org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=true -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert -org.eclipse.jdt.core.formatter.comment.line_length=80 -org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true -org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true -org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=2 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off -org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=false -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false -org.eclipse.jdt.core.formatter.indentation.size=4 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.join_lines_in_comments=true -org.eclipse.jdt.core.formatter.join_wrapped_lines=true -org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false -org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false -org.eclipse.jdt.core.formatter.lineSplit=120 -org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false -org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false -org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 -org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true -org.eclipse.jdt.core.formatter.tabulation.char=space -org.eclipse.jdt.core.formatter.tabulation.size=4 -org.eclipse.jdt.core.formatter.use_on_off_tags=false -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true -org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true -org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true diff --git a/.settings/org.eclipse.jdt.ui.prefs b/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 59b47236469..00000000000 --- a/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,3 +0,0 @@ -eclipse.preferences.version=1 -formatter_profile=_'eclipse [spaces-only]' -formatter_settings_version=12 diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 5f42267d7a5..00000000000 --- a/.travis.yml +++ /dev/null @@ -1,12 +0,0 @@ -language: android -android: - components: - - build-tools-22.0.1 - - android-22 -before_install: - - rm pom.xml -script: - - ./setup_env.sh ant - - ant clean - - ant debug - diff --git a/.tx/config b/.tx/config index 7be0c299792..3978bc26966 100644 --- a/.tx/config +++ b/.tx/config @@ -1,8 +1,8 @@ [main] host = https://www.transifex.com -[owncloud.android] -file_filter = res/values-/strings.xml -source_file = res/values/strings.xml +[o:owncloud-org:p:owncloud-android:r:android] +file_filter = owncloudApp/src/main/res/values-/strings.xml +lang_map = af_ZA: af-rZA, am_ET: am-rET, ar_AE: ar-rAE, ar_BH: ar-rBH, ar_DZ: ar-rDZ, ar_EG: ar-rEG, ar_IQ: ar-rIQ, ar_JO: ar-rJO, ar_KW: ar-rKW, ar_LB: ar-rLB, ar_LY: ar-rLY, ar_MA: ar-rMA, ar_OM: ar-rOM, ar_QA: ar-rQA, ar_SA: ar-rSA, ar_SY: ar-rSY, ar_TN: ar-rTN, ar_YE: ar-rYE, arn_CL: arn-rCL, as_IN: as-rIN, az_AZ: az-rAZ, ba_RU: ba-rRU, be_BY: be-rBY, bg_BG: bg-rBG, bn_BD: bn-rBD, bn_IN: bn-rIN, bo_CN: bo-rCN, br_FR: br-rFR, bs_BA: bs-rBA, ca_ES: ca-rES, co_FR: co-rFR, cs_CZ: cs-rCZ, cy_GB: cy-rGB, da_DK: da-rDK, de_AT: de-rAT, de_CH: de-rCH, de_DE: de-rDE, de_LI: de-rLI, de_LU: de-rLU, dsb_DE: dsb-rDE, dv_MV: dv-rMV, el_GR: el-rGR, en_AU: en-rAU, en_BZ: en-rBZ, en_CA: en-rCA, en_GB: en-rGB, en_IE: en-rIE, en_IN: en-rIN, en_JM: en-rJM, en_MY: en-rMY, en_NZ: en-rNZ, en_PH: en-rPH, en_SG: en-rSG, en_TT: en-rTT, en_US: en-rUS, en_ZA: en-rZA, en_ZW: en-rZW, en@pirate: en-rpirate, es_AR: es-rAR, es_BO: es-rBO, es_CL: es-rCL, es_CO: es-rCO, es_CR: es-rCR, es_DO: es-rDO, es_EC: es-rEC, es_ES: es-rES, es_GT: es-rGT, es_HN: es-rHN, es_MX: es-rMX, es_NI: es-rNI, es_PA: es-rPA, es_PE: es-rPE, es_PR: es-rPR, es_PY: es-rPY, es_SV: es-rSV, es_US: es-rUS, es_UY: es-rUY, es_VE: es-rVE, et_EE: et-rEE, eu_ES: eu-rES, fa_IR: fa-rIR, fi_FI: fi-rFI, fil_PH: fil-rPH, fo_FO: fo-rFO, fr_BE: fr-rBE, fr_CA: fr-rCA, fr_CH: fr-rCH, fr_FR: fr-rFR, fr_LU: fr-rLU, fr_MC: fr-rMC, fy_NL: fy-rNL, ga_IE: ga-rIE, gd_GB: gd-rGB, gl_ES: gl-rES, gsw_FR: gsw-rFR, gu_IN: gu-rIN, ha_NG: ha-rNG, he_IL: he-rIL, hi_IN: hi-rIN, hr_BA: hr-rBA, hr_HR: hr-rHR, hsb_DE: hsb-rDE, hu_HU: hu-rHU, hy_AM: hy-rAM, id_ID: id-rID, ig_NG: ig-rNG, ii_CN: ii-rCN, is_IS: is-rIS, it_CH: it-rCH, it_IT: it-rIT, iu_CA: iu-rCA, ja_JP: ja-rJP, ka_GE: ka-rGE, kk_KZ: kk-rKZ, kl_GL: kl-rGL, km_KH: km-rKH, kn_IN: kn-rIN, ko_KR: ko-rKR, kok_IN: kok-rIN, ku_IQ: ku-rIQ, ky_KG: ky-rKG, lb_LU: lb-rLU, lo_LA: lo-rLA, lt_LT: lt-rLT, lv_LV: lv-rLV, mi_NZ: mi-rNZ, mk_MK: mk-rMK, ml_IN: ml-rIN, mn_CN: mn-rCN, mn_MN: mn-rMN, moh_CA: moh-rCA, mr_IN: mr-rIN, ms_BN: ms-rBN, ms_MY: ms-rMY, my_MM: my, mt_MT: mt-rMT, nb_NO: nb-rNO, ne_NP: ne-rNP, nl_BE: nl-rBE, nl_NL: nl-rNL, nn_NO: nn-rNO, nso_ZA: nso-rZA, oc_FR: oc-rFR, or_IN: or-rIN, pa_IN: pa-rIN, pl_PL: pl-rPL, prs_AF: prs-rAF, ps_AF: ps-rAF, pt_BR: pt-rBR, pt_PT: pt-rPT, qut_GT: qut-rGT, quz_BO: quz-rBO, quz_EC: quz-rEC, quz_PE: quz-rPE, rm_CH: rm-rCH, ro_RO: ro-rRO, ru_RU: ru-rRU, rw_RW: rw-rRW, sa_IN: sa-rIN, sah_RU: sah-rRU, se_FI: se-rFI, se_NO: se-rNO, se_SE: se-rSE, si_LK: si-rLK, sk_SK: sk-rSK, sl_SI: sl-rSI, sma_NO: sma-rNO, sma_SE: sma-rSE, smj_NO: smj-rNO, smj_SE: smj-rSE, smn_FI: smn-rFI, sms_FI: sms-rFI, sq_AL: sq-rAL, sr_BA: sr-rBA, sr_CS: sr-rCS, sr_ME: sr-rME, sr_RS: sr-rRS, sr@latin: sr-rSP, sv_FI: sv-rFI, sv_SE: sv-rSE, sw_KE: sw-rKE, syr_SY: syr-rSY, ta_IN: ta-rIN, ta_LK: ta-rLK, te_IN: te-rIN, tg_TJ: tg-rTJ, th_TH: th-rTH, tk_TM: tk-rTM, tn_ZA: tn-rZA, tr_TR: tr-rTR, tt_RU: tt-rRU, tzm_DZ: tzm-rDZ, ug_CN: ug-rCN, uk_UA: uk-rUA, ur_PK: ur-rPK, uz_UZ: uz-rUZ, vi_VN: vi-rVN, wo_SN: wo-rSN, xh_ZA: xh-rZA, yo_NG: yo-rNG, zh_CN: zh-rCN, zh_CN.GB2312:zh-rBG, zh_HK: zh-rHK, zh_MO: zh-rMO, zh_SG: zh-rSG, zh_TW: zh-rTW, zh-Hans: b+zh+Hans, zh-Hant: b+zh+Hant, zu_ZA: zu-rZA +source_file = owncloudApp/src/main/res/values/strings.xml source_lang = en -lang_map = af_ZA: af-rZA, am_ET: am-rET, ar_AE: ar-rAE, ar_BH: ar-rBH, ar_DZ: ar-rDZ, ar_EG: ar-rEG, ar_IQ: ar-rIQ, ar_JO: ar-rJO, ar_KW: ar-rKW, ar_LB: ar-rLB, ar_LY: ar-rLY, ar_MA: ar-rMA, ar_OM: ar-rOM, ar_QA: ar-rQA, ar_SA: ar-rSA, ar_SY: ar-rSY, ar_TN: ar-rTN, ar_YE: ar-rYE, arn_CL: arn-rCL, as_IN: as-rIN, az_AZ: az-rAZ, ba_RU: ba-rRU, be_BY: be-rBY, bg_BG: bg-rBG, bn_BD: bn-rBD, bn_IN: bn-rIN, bo_CN: bo-rCN, br_FR: br-rFR, bs_BA: bs-rBA, ca_ES: ca-rES, co_FR: co-rFR, cs_CZ: cs-rCZ, cy_GB: cy-rGB, da_DK: da-rDK, de_AT: de-rAT, de_CH: de-rCH, de_DE: de-rDE, de_LI: de-rLI, de_LU: de-rLU, dsb_DE: dsb-rDE, dv_MV: dv-rMV, el_GR: el-rGR, en_AU: en-rAU, en_BZ: en-rBZ, en_CA: en-rCA, en_GB: en-rGB, en_IE: en-rIE, en_IN: en-rIN, en_JM: en-rJM, en_MY: en-rMY, en_NZ: en-rNZ, en_PH: en-rPH, en_SG: en-rSG, en_TT: en-rTT, en_US: en-rUS, en_ZA: en-rZA, en_ZW: en-rZW, en@pirate: en-rpirate, es_AR: es-rAR, es_BO: es-rBO, es_CL: es-rCL, es_CO: es-rCO, es_CR: es-rCR, es_DO: es-rDO, es_EC: es-rEC, es_ES: es-rES, es_GT: es-rGT, es_HN: es-rHN, es_MX: es-rMX, es_NI: es-rNI, es_PA: es-rPA, es_PE: es-rPE, es_PR: es-rPR, es_PY: es-rPY, es_SV: es-rSV, es_US: es-rUS, es_UY: es-rUY, es_VE: es-rVE, et_EE: et-rEE, eu_ES: eu-rES, fa_IR: fa-rIR, fi_FI: fi-rFI, fil_PH: fil-rPH, fo_FO: fo-rFO, fr_BE: fr-rBE, fr_CA: fr-rCA, fr_CH: fr-rCH, fr_FR: fr-rFR, fr_LU: fr-rLU, fr_MC: fr-rMC, fy_NL: fy-rNL, ga_IE: ga-rIE, gd_GB: gd-rGB, gl_ES: gl-rES, gsw_FR: gsw-rFR, gu_IN: gu-rIN, ha_NG: ha-rNG, he_IL: he-rIL, hi_IN: hi-rIN, hr_BA: hr-rBA, hr_HR: hr-rHR, hsb_DE: hsb-rDE, hu_HU: hu-rHU, hy_AM: hy-rAM, id_ID: id-rID, ig_NG: ig-rNG, ii_CN: ii-rCN, is_IS: is-rIS, it_CH: it-rCH, it_IT: it-rIT, iu_CA: iu-rCA, ja_JP: ja-rJP, ka_GE: ka-rGE, kk_KZ: kk-rKZ, kl_GL: kl-rGL, km_KH: km-rKH, kn_IN: kn-rIN, ko_KR: ko-rKR, kok_IN: kok-rIN, ku_IQ: ku-rIQ, ky_KG: ky-rKG, lb_LU: lb-rLU, lo_LA: lo-rLA, lt_LT: lt-rLT, lv_LV: lv-rLV, mi_NZ: mi-rNZ, mk_MK: mk-rMK, ml_IN: ml-rIN, mn_CN: mn-rCN, mn_MN: mn-rMN, moh_CA: moh-rCA, mr_IN: mr-rIN, ms_BN: ms-rBN, ms_MY: ms-rMY, my_MM: my, mt_MT: mt-rMT, nb_NO: nb-rNO, ne_NP: ne-rNP, nl_BE: nl-rBE, nl_NL: nl-rNL, nn_NO: nn-rNO, nso_ZA: nso-rZA, oc_FR: oc-rFR, or_IN: or-rIN, pa_IN: pa-rIN, pl_PL: pl-rPL, prs_AF: prs-rAF, ps_AF: ps-rAF, pt_BR: pt-rBR, pt_PT: pt-rPT, qut_GT: qut-rGT, quz_BO: quz-rBO, quz_EC: quz-rEC, quz_PE: quz-rPE, rm_CH: rm-rCH, ro_RO: ro-rRO, ru_RU: ru-rRU, rw_RW: rw-rRW, sa_IN: sa-rIN, sah_RU: sah-rRU, se_FI: se-rFI, se_NO: se-rNO, se_SE: se-rSE, si_LK: si-rLK, sk_SK: sk-rSK, sl_SI: sl-rSI, sma_NO: sma-rNO, sma_SE: sma-rSE, smj_NO: smj-rNO, smj_SE: smj-rSE, smn_FI: smn-rFI, sms_FI: sms-rFI, sq_AL: sq-rAL, sr_BA: sr-rBA, sr_CS: sr-rCS, sr_ME: sr-rME, sr_RS: sr-rRS, sr@latin: sr-rSP, sv_FI: sv-rFI, sv_SE: sv-rSE, sw_KE: sw-rKE, syr_SY: syr-rSY, ta_IN: ta-rIN, ta_LK: ta-rLK, te_IN: te-rIN, tg_TJ: tg-rTJ, th_TH: th-rTH, tk_TM: tk-rTM, tn_ZA: tn-rZA, tr_TR: tr-rTR, tt_RU: tt-rRU, tzm_DZ: tzm-rDZ, ug_CN: ug-rCN, uk_UA: uk-rUA, ur_PK: ur-rPK, uz_UZ: uz-rUZ, vi_VN: vi-rVN, wo_SN: wo-rSN, xh_ZA: xh-rZA, yo_NG: yo-rNG, zh_CN: zh-rCN, zh_CN.GB2312:zh-rBG, zh_HK: zh-rHK, zh_MO: zh-rMO, zh_SG: zh-rSG, zh_TW: zh-rTW, zu_ZA: zu-rZA diff --git a/AndroidManifest.xml b/AndroidManifest.xml deleted file mode 100644 index acb5f1d8a90..00000000000 --- a/AndroidManifest.xml +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CHANGELOG.md b/CHANGELOG.md index 099a445626f..d2eec33fb6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,3487 @@ +# Table of Contents + +* [Changelog for unreleased](#changelog-for-owncloud-android-client-unreleased-unreleased) +* [Changelog for 4.7.0](#changelog-for-owncloud-android-client-470-2025-11-17) +* [Changelog for 4.6.2](#changelog-for-owncloud-android-client-462-2025-08-13) +* [Changelog for 4.6.1](#changelog-for-owncloud-android-client-461-2025-08-01) +* [Changelog for 4.6.0](#changelog-for-owncloud-android-client-460-2025-07-22) +* [Changelog for 4.5.1](#changelog-for-owncloud-android-client-451-2025-04-03) +* [Changelog for 4.5.0](#changelog-for-owncloud-android-client-450-2025-03-24) +* [Changelog for 4.4.1](#changelog-for-owncloud-android-client-441-2024-10-30) +* [Changelog for 4.4.0](#changelog-for-owncloud-android-client-440-2024-09-30) +* [Changelog for 4.3.1](#changelog-for-owncloud-android-client-431-2024-07-22) +* [Changelog for 4.3.0](#changelog-for-owncloud-android-client-430-2024-07-01) +* [Changelog for 4.2.2](#changelog-for-owncloud-android-client-422-2024-05-30) +* [Changelog for 4.2.1](#changelog-for-owncloud-android-client-421-2024-02-22) +* [Changelog for 4.2.0](#changelog-for-owncloud-android-client-420-2024-02-12) +* [Changelog for 4.1.1](#changelog-for-owncloud-android-client-411-2023-10-18) +* [Changelog for 4.1.0](#changelog-for-owncloud-android-client-410-2023-08-23) +* [Changelog for 4.0.0](#changelog-for-owncloud-android-client-400-2023-05-29) +* [Changelog for 3.0.4](#changelog-for-owncloud-android-client-304-2023-03-07) +* [Changelog for 3.0.3](#changelog-for-owncloud-android-client-303-2023-02-13) +* [Changelog for 3.0.2](#changelog-for-owncloud-android-client-302-2023-01-26) +* [Changelog for 3.0.1](#changelog-for-owncloud-android-client-301-2022-12-21) +* [Changelog for 3.0.0](#changelog-for-owncloud-android-client-300-2022-12-12) +* [Changelog for 2.21.2](#changelog-for-owncloud-android-client-2212-2022-09-07) +* [Changelog for 2.21.1](#changelog-for-owncloud-android-client-2211-2022-06-15) +* [Changelog for 2.21.0](#changelog-for-owncloud-android-client-2210-2022-06-07) +* [Changelog for 2.20.0](#changelog-for-owncloud-android-client-2200-2022-02-16) +* [Changelog for 2.19.0](#changelog-for-owncloud-android-client-2190-2021-11-15) +* [Changelog for 2.18.3](#changelog-for-owncloud-android-client-2183-2021-10-27) +* [Changelog for 2.18.1](#changelog-for-owncloud-android-client-2181-2021-07-20) +* [Changelog for 2.18.0](#changelog-for-owncloud-android-client-2180-2021-05-24) +* [Changelog for 2.17 versions and below](#changelog-for-217-versions-and-below) +# Changelog for ownCloud Android Client [unreleased] (UNRELEASED) + +The following sections list the changes in ownCloud Android Client unreleased relevant to +ownCloud admins and users. + +[unreleased]: https://github.com/owncloud/android/compare/v4.7.0...master + +## Summary + +* Bugfix - Edit space option available when there is no connection: [#4742](https://github.com/owncloud/android/issues/4742) +* Change - Migrate tests to the new kotlinx-coroutines-test API: [#4710](https://github.com/owncloud/android/issues/4710) +* Change - Increase rating dialog delay: [#4744](https://github.com/owncloud/android/pull/4744) +* Enhancement - Show members of a space: [#4612](https://github.com/owncloud/android/issues/4612) +* Enhancement - Add a member to a space: [#4613](https://github.com/owncloud/android/issues/4613) +* Enhancement - Set emoji as space image: [#4707](https://github.com/owncloud/android/issues/4707) +* Enhancement - Remove a space member: [#4725](https://github.com/owncloud/android/issues/4725) +* Enhancement - Workflow to build APK: [#4751](https://github.com/owncloud/android/pull/4751) +* Enhancement - Workflow to check Conventional Commits: [#4759](https://github.com/owncloud/android/pull/4759) + +## Details + +* Bugfix - Edit space option available when there is no connection: [#4742](https://github.com/owncloud/android/issues/4742) + + A new condition has been added to hide the edit space option when no network + connection is available. + + https://github.com/owncloud/android/issues/4742 + https://github.com/owncloud/android/pull/4750 + +* Change - Migrate tests to the new kotlinx-coroutines-test API: [#4710](https://github.com/owncloud/android/issues/4710) + + Some tests from view model classes have been refactored in order to use the new + kotlinx-coroutines-test API. + + https://github.com/owncloud/android/issues/4710 + https://github.com/owncloud/android/pull/4722 + +* Change - Increase rating dialog delay: [#4744](https://github.com/owncloud/android/pull/4744) + + The time before the rating dialog appears has been increased to 7 days, in order + to make it less intrusive for the user. + + https://github.com/owncloud/android/pull/4744 + +* Enhancement - Show members of a space: [#4612](https://github.com/owncloud/android/issues/4612) + + A new option to view all members of a space has been added to the bottom sheet, + available when the three-dot menu button is tapped. This new option opens a new + view that shows information like member names, roles, and expiration dates (if + available). + + https://github.com/owncloud/android/issues/4612 + https://github.com/owncloud/android/issues/4763 + https://github.com/owncloud/android/pull/4728 + https://github.com/owncloud/android/pull/4765 + +* Enhancement - Add a member to a space: [#4613](https://github.com/owncloud/android/issues/4613) + + A new option to add members to a space has been added. It will be only visible + for users with proper permissions. + + https://github.com/owncloud/android/issues/4613 + https://github.com/owncloud/android/issues/4740 + https://github.com/owncloud/android/pull/4754 + https://github.com/owncloud/android/pull/4764 + +* Enhancement - Set emoji as space image: [#4707](https://github.com/owncloud/android/issues/4707) + + A new option to set an emoji as space image has been added to the bottom sheet, + available only to users with the required permissions when the three-dot menu + button is tapped. + + https://github.com/owncloud/android/issues/4707 + https://github.com/owncloud/android/pull/4708 + +* Enhancement - Remove a space member: [#4725](https://github.com/owncloud/android/issues/4725) + + A new option to remove members from a space has been added. It will be only + visible for users with proper permissions. + + https://github.com/owncloud/android/issues/4725 + https://github.com/owncloud/android/pull/4768 + +* Enhancement - Workflow to build APK: [#4751](https://github.com/owncloud/android/pull/4751) + + A new workflow to build unsigned APKs has been added, using variant and version + as inputs and generating the artifact and commit hash as outputs. + + https://github.com/owncloud/android/pull/4751 + +* Enhancement - Workflow to check Conventional Commits: [#4759](https://github.com/owncloud/android/pull/4759) + + A new workflow has been added to check that commit names in a PR fits the + Conventional Commits convention. + + https://github.com/owncloud/android/pull/4759 + +# Changelog for ownCloud Android Client [4.7.0] (2025-11-17) + +The following sections list the changes in ownCloud Android Client 4.7.0 relevant to +ownCloud admins and users. + +[4.7.0]: https://github.com/owncloud/android/compare/v4.6.2...v4.7.0 + +## Summary + +* Bugfix - Handling of HTTP code response 413: [#4094](https://github.com/owncloud/android/issues/4094) +* Bugfix - Set authorization header for token request only when necessary: [#4575](https://github.com/owncloud/android/issues/4575) +* Bugfix - Add explicit permission to Detekt workflow: [#4675](https://github.com/owncloud/android/pull/4675) +* Change - SBOM workflow runs on dependabot PRs: [#4664](https://github.com/owncloud/android/pull/4664) +* Enhancement - New layout for spaces list: [#4604](https://github.com/owncloud/android/issues/4604) +* Enhancement - Add account ID to the user information: [#4605](https://github.com/owncloud/android/issues/4605) +* Enhancement - Create a new space: [#4606](https://github.com/owncloud/android/issues/4606) +* Enhancement - Edit a space: [#4607](https://github.com/owncloud/android/issues/4607) +* Enhancement - Disable/Remove a space: [#4611](https://github.com/owncloud/android/issues/4611) +* Enhancement - Update space image: [#4691](https://github.com/owncloud/android/issues/4691) +* Enhancement - Show space quota: [#4693](https://github.com/owncloud/android/issues/4693) +* Enhancement - Add user role to spaces: [#4698](https://github.com/owncloud/android/pull/4698) +* Enhancement - New setting to show disabled spaces: [#4711](https://github.com/owncloud/android/issues/4711) +* Enhancement - Cancellation policy for CI workflows: [#4712](https://github.com/owncloud/android/pull/4712) + +## Details + +* Bugfix - Handling of HTTP code response 413: [#4094](https://github.com/owncloud/android/issues/4094) + + A new exception has been added to handle cases where the payload exceeds the + server limit (HTTP code 413) + + https://github.com/owncloud/android/issues/4094 + https://github.com/owncloud/android/pull/4685 + +* Bugfix - Set authorization header for token request only when necessary: [#4575](https://github.com/owncloud/android/issues/4575) + + A new field has been added to the token request to indicate whether the + authorization header should be applied in case `client_secret_post` method is + supported or not. + + https://github.com/owncloud/android/issues/4575 + https://github.com/owncloud/android/pull/4671 + +* Bugfix - Add explicit permission to Detekt workflow: [#4675](https://github.com/owncloud/android/pull/4675) + + Read permission has been added to the Detekt workflow. Without this explicit + setting, the default permissions would apply, which unnecessarily include write + access. + + https://github.com/owncloud/android/pull/4675 + +* Change - SBOM workflow runs on dependabot PRs: [#4664](https://github.com/owncloud/android/pull/4664) + + Changes to dependency versions will be managed within Dependabot PRs, so they + can be updated together. + + https://github.com/owncloud/android/pull/4664 + https://github.com/owncloud/android/pull/4666 + +* Enhancement - New layout for spaces list: [#4604](https://github.com/owncloud/android/issues/4604) + + A three-dot button has been added to each space card, allowing a bottom sheet + dialog to be opened when clicked. In addition, the spaces layout has been + changed to horizontal. + + https://github.com/owncloud/android/issues/4604 + https://github.com/owncloud/android/pull/4665 + +* Enhancement - Add account ID to the user information: [#4605](https://github.com/owncloud/android/issues/4605) + + The account ID has been added to the Account Manager only for Infinite Scale + users. This information will be used to fetch all permissions related to space + management. + + https://github.com/owncloud/android/issues/4605 + https://github.com/owncloud/android/pull/4661 + +* Enhancement - Create a new space: [#4606](https://github.com/owncloud/android/issues/4606) + + A new floating action button has been added to the spaces list, visible only to + users with right permissions. In addition, a new dialog for space creation has + been implemented and, it is shown when the floating action button is tapped. + + https://github.com/owncloud/android/issues/4606 + https://github.com/owncloud/android/issues/4688 + https://github.com/owncloud/android/pull/4683 + https://github.com/owncloud/android/pull/4694 + +* Enhancement - Edit a space: [#4607](https://github.com/owncloud/android/issues/4607) + + A new edit space option has been added to the bottom sheet, available only to + users with the required permissions when the three-dot menu button is tapped. + + https://github.com/owncloud/android/issues/4607 + https://github.com/owncloud/android/issues/4688 + https://github.com/owncloud/android/issues/4695 + https://github.com/owncloud/android/pull/4687 + https://github.com/owncloud/android/pull/4694 + https://github.com/owncloud/android/pull/4713 + +* Enhancement - Disable/Remove a space: [#4611](https://github.com/owncloud/android/issues/4611) + + New options to disable, enable and remove spaces have been added to the bottom + sheet, available only to users with the required permissions when the three-dot + menu button is tapped. + + https://github.com/owncloud/android/issues/4611 + https://github.com/owncloud/android/pull/4696 + +* Enhancement - Update space image: [#4691](https://github.com/owncloud/android/issues/4691) + + A new option to update the space image has been added to the bottom sheet, + available only to users with the required permissions when the three-dot menu + button is tapped. + + https://github.com/owncloud/android/issues/4691 + https://github.com/owncloud/android/pull/4705 + +* Enhancement - Show space quota: [#4693](https://github.com/owncloud/android/issues/4693) + + The used and total values of the space quota have been added to the bottom sheet + dialog, displayed when the three-dot menu button is tapped. + + https://github.com/owncloud/android/issues/4693 + https://github.com/owncloud/android/pull/4704 + +* Enhancement - Add user role to spaces: [#4698](https://github.com/owncloud/android/pull/4698) + + A new field representing the user role has been added to the space model and to + the spaces table in the database. + + https://github.com/owncloud/android/pull/4698 + +* Enhancement - New setting to show disabled spaces: [#4711](https://github.com/owncloud/android/issues/4711) + + A new setting has been added to the advanced section that allows space managers + to show or hide disabled spaces in the spaces list. + + https://github.com/owncloud/android/issues/4711 + https://github.com/owncloud/android/pull/4714 + +* Enhancement - Cancellation policy for CI workflows: [#4712](https://github.com/owncloud/android/pull/4712) + + A new cancellation policy has been set to CI workflows. Only one concurrent + execution of every workflow in every branch. + + https://github.com/owncloud/android/pull/4712 + +# Changelog for ownCloud Android Client [4.6.2] (2025-08-13) + +The following sections list the changes in ownCloud Android Client 4.6.2 relevant to +ownCloud admins and users. + +[4.6.2]: https://github.com/owncloud/android/compare/v4.6.1...v4.6.2 + +## Summary + +* Bugfix - Removed files in failed uploads: [#4653](https://github.com/owncloud/android/issues/4653) + +## Details + +* Bugfix - Removed files in failed uploads: [#4653](https://github.com/owncloud/android/issues/4653) + + Files have been prevented from being deleted from the source folder on upload + retries by using the createdBy property. + + https://github.com/owncloud/android/issues/4653 + https://github.com/owncloud/android/pull/4657 + +# Changelog for ownCloud Android Client [4.6.1] (2025-08-01) + +The following sections list the changes in ownCloud Android Client 4.6.1 relevant to +ownCloud admins and users. + +[4.6.1]: https://github.com/owncloud/android/compare/v4.6.0...v4.6.1 + +## Summary + +* Bugfix - Crash from Google Play Console in TransferListFragment: [#4650](https://github.com/owncloud/android/issues/4650) +* Bugfix - Mini-fab for creating new document not always available: [#7277](https://github.com/owncloud/enterprise/issues/7277) +* Bugfix - Re-login not working properly when credentials expire: [#7277](https://github.com/owncloud/enterprise/issues/7277) + +## Details + +* Bugfix - Crash from Google Play Console in TransferListFragment: [#4650](https://github.com/owncloud/android/issues/4650) + + In order to prevent app crashes, the account parameter from TransferListFragment + has been removed and the newInstance method has been created to pass parameters + safely. + + https://github.com/owncloud/android/issues/4650 + https://github.com/owncloud/android/pull/4652 + +* Bugfix - Mini-fab for creating new document not always available: [#7277](https://github.com/owncloud/enterprise/issues/7277) + + The productName property has been made nullable to handle cases where it is not + present in the JSON response, allowing the mini-fab for creating new documents + to be properly shown. + + https://github.com/owncloud/enterprise/issues/7277 + https://github.com/owncloud/android/pull/4649 + +* Bugfix - Re-login not working properly when credentials expire: [#7277](https://github.com/owncloud/enterprise/issues/7277) + + The startActivityForResult method has been replaced with startActivity to make + re-login work properly when credentials expire. + + https://github.com/owncloud/enterprise/issues/7277 + https://github.com/owncloud/android/pull/4654 + +# Changelog for ownCloud Android Client [4.6.0] (2025-07-22) + +The following sections list the changes in ownCloud Android Client 4.6.0 relevant to +ownCloud admins and users. + +[4.6.0]: https://github.com/owncloud/android/compare/v4.5.1...v4.6.0 + +## Summary + +* Bugfix - Changes in the automatic uploads algorithm to prevent duplications: [#3983](https://github.com/owncloud/android/issues/3983) +* Bugfix - Token request with Bearer returns error: [#4080](https://github.com/owncloud/android/issues/4080) +* Bugfix - Side menu collapses info in landscape: [#4513](https://github.com/owncloud/android/issues/4513) +* Bugfix - Content in Spaces not shown from third-party apps: [#4522](https://github.com/owncloud/android/issues/4522) +* Bugfix - Add bottom margin for used quota in account dialog: [#4566](https://github.com/owncloud/android/issues/4566) +* Bugfix - Infinite edges in Android 15: [#4576](https://github.com/owncloud/android/issues/4576) +* Bugfix - Crash from Google Play Console in PreviewImageFragment: [#4577](https://github.com/owncloud/android/issues/4577) +* Bugfix - No message when uploading a file with no quota: [#4582](https://github.com/owncloud/android/issues/4582) +* Bugfix - Crash from Google Play Console in PreviewImagePagerAdapter: [#4596](https://github.com/owncloud/android/issues/4596) +* Bugfix - Change space icon in file details view for personal space: [#4624](https://github.com/owncloud/android/issues/4624) +* Change - Bump target SDK to 35: [#4529](https://github.com/owncloud/android/issues/4529) +* Change - Replace dav4android location: [#4536](https://github.com/owncloud/android/issues/4536) +* Change - Modify biometrics fail source string: [#4572](https://github.com/owncloud/android/issues/4572) +* Change - Update CI badges in README file: [#4623](https://github.com/owncloud/android/issues/4623) +* Enhancement - QA variant: [#3791](https://github.com/owncloud/android/issues/3791) +* Enhancement - Shares space in Android native file explorer: [#4515](https://github.com/owncloud/android/issues/4515) +* Enhancement - Accessibility reports in 4.5.1: [#4568](https://github.com/owncloud/android/issues/4568) +* Enhancement - Support for Kiteworks servers without client secret: [#4588](https://github.com/owncloud/android/issues/4588) +* Enhancement - Polish UI and sync operations over Kiteworks servers: [#4591](https://github.com/owncloud/android/issues/4591) +* Enhancement - Integration of instrumented tests in GitHub Actions: [#4595](https://github.com/owncloud/android/issues/4595) +* Enhancement - SBOM (Software Bill of Materials): [#4598](https://github.com/owncloud/android/issues/4598) +* Enhancement - New set of configurations for Kiteworks servers: [#4622](https://github.com/owncloud/android/issues/4622) + +## Details + +* Bugfix - Changes in the automatic uploads algorithm to prevent duplications: [#3983](https://github.com/owncloud/android/issues/3983) + + The timestamp for automatic uploads is now updated at the beginning of the + upload process instead of at the end. Additionally, the filter used in + AutomaticUploadsWorker to select the files to upload has been modified in order + to reduce time and charge when evaluating all files. + + https://github.com/owncloud/android/issues/3983 + https://github.com/owncloud/android/pull/4571 + +* Bugfix - Token request with Bearer returns error: [#4080](https://github.com/owncloud/android/issues/4080) + + A new condition has been added into the network client to check if the network + request comes from TokenRequestRemoteOperation before setting the authorization + header. This allows users to have more than one logged-in account on the same + server. + + https://github.com/owncloud/android/issues/4080 + https://github.com/owncloud/android/pull/4586 + +* Bugfix - Side menu collapses info in landscape: [#4513](https://github.com/owncloud/android/issues/4513) + + Two empty and visual items have been added to prevent the drawer from collapsing + in landscape mode. + + https://github.com/owncloud/android/issues/4513 + https://github.com/owncloud/android/pull/4580 + +* Bugfix - Content in Spaces not shown from third-party apps: [#4522](https://github.com/owncloud/android/issues/4522) + + The root of the spaces has been synchronized before displaying the file list + when a file is shared from a third-party app. + + https://github.com/owncloud/android/issues/4522 + https://github.com/owncloud/android/pull/4574 + +* Bugfix - Add bottom margin for used quota in account dialog: [#4566](https://github.com/owncloud/android/issues/4566) + + Added bottom margin to the container holding used quota view when multi account + is disabled + + https://github.com/owncloud/android/issues/4566 + https://github.com/owncloud/android/pull/4567 + +* Bugfix - Infinite edges in Android 15: [#4576](https://github.com/owncloud/android/issues/4576) + + Infinite edges feature, enabled by default starting from Android 15, has been + disabled in the app. + + https://github.com/owncloud/android/issues/4576 + https://github.com/owncloud/android/pull/4581 + +* Bugfix - Crash from Google Play Console in PreviewImageFragment: [#4577](https://github.com/owncloud/android/issues/4577) + + In order to prevent app crashes when file variable is null, a nullability check + has been added in onPrepareOptionsMenu method from PreviewImageFragment + + https://github.com/owncloud/android/issues/4577 + https://github.com/owncloud/android/pull/4594 + +* Bugfix - No message when uploading a file with no quota: [#4582](https://github.com/owncloud/android/issues/4582) + + A message has been added in the file list when uploading a file (from file + system, camera or shortcut) without available quota + + https://github.com/owncloud/android/issues/4582 + https://github.com/owncloud/android/pull/4587 + +* Bugfix - Crash from Google Play Console in PreviewImagePagerAdapter: [#4596](https://github.com/owncloud/android/issues/4596) + + In order to prevent app crashes, a validation has been added in onPageSelected + method from PreviewImageActivity to ensure the image list contains items before + using it. + + https://github.com/owncloud/android/issues/4596 + https://github.com/owncloud/android/pull/4600 + +* Bugfix - Change space icon in file details view for personal space: [#4624](https://github.com/owncloud/android/issues/4624) + + The space icon in the file details view has been replaced by the folder icon + when the space that contains the file is personal. + + https://github.com/owncloud/android/issues/4624 + https://github.com/owncloud/android/pull/4640 + +* Change - Bump target SDK to 35: [#4529](https://github.com/owncloud/android/issues/4529) + + Target SDK has been upgraded to 35 in order to fulfill Android platform + requirements. + + https://github.com/owncloud/android/issues/4529 + https://github.com/owncloud/android/pull/4556 + +* Change - Replace dav4android location: [#4536](https://github.com/owncloud/android/issues/4536) + + Dav4android location has been moved from GitLab to GitHub. + + https://github.com/owncloud/android/issues/4536 + https://github.com/owncloud/android/pull/4558 + +* Change - Modify biometrics fail source string: [#4572](https://github.com/owncloud/android/issues/4572) + + The string that appears when biometric unlocking is not available has been + changed in order to make it clearer. + + https://github.com/owncloud/android/issues/4572 + https://github.com/owncloud/android/pull/4578 + +* Change - Update CI badges in README file: [#4623](https://github.com/owncloud/android/issues/4623) + + Bitrise badges in README file have been replaced by GitHub Actions badges. + + https://github.com/owncloud/android/issues/4623 + https://github.com/owncloud/android/pull/4637 + +* Enhancement - QA variant: [#3791](https://github.com/owncloud/android/issues/3791) + + A new flavor for QA has been created in order to make automatic tests easier. + + https://github.com/owncloud/android/issues/3791 + https://github.com/owncloud/android/pull/4569 + +* Enhancement - Shares space in Android native file explorer: [#4515](https://github.com/owncloud/android/issues/4515) + + The Shares space has been added to the spaces list shown in the Documents + Provider, the Android native file explorer. + + https://github.com/owncloud/android/issues/4515 + https://github.com/owncloud/android/pull/4579 + +* Enhancement - Accessibility reports in 4.5.1: [#4568](https://github.com/owncloud/android/issues/4568) + + Some content descriptions that were missing have been added to provide a better + accessibility experience. + + https://github.com/owncloud/android/issues/4568 + https://github.com/owncloud/android/pull/4573 + +* Enhancement - Support for Kiteworks servers without client secret: [#4588](https://github.com/owncloud/android/issues/4588) + + Support for connecting to Kiteworks servers without requiring client secret has + been added to the app. + + https://github.com/owncloud/android/issues/4588 + https://github.com/owncloud/android/pull/4589 + +* Enhancement - Polish UI and sync operations over Kiteworks servers: [#4591](https://github.com/owncloud/android/issues/4591) + + The UI and navigation behaviour after performing a sync operation have been + refined for accounts associated with Kiteworks servers. + + https://github.com/owncloud/android/issues/4591 + https://github.com/owncloud/android/pull/4608 + +* Enhancement - Integration of instrumented tests in GitHub Actions: [#4595](https://github.com/owncloud/android/issues/4595) + + A new workflow has been added to run instrumented tests in GitHub Actions in + order to have a more consistent CI pipeline in the project. + + https://github.com/owncloud/android/issues/4595 + https://github.com/owncloud/android/pull/4602 + +* Enhancement - SBOM (Software Bill of Materials): [#4598](https://github.com/owncloud/android/issues/4598) + + SBOM to be generated via GitHub Actions with the list of all dependencies used + in the code, powered by cyclonedx. Finally, it is pushed to the repo's root + folder if changes are detected. + + https://github.com/owncloud/android/issues/4598 + https://github.com/owncloud/android/pull/4641 + +* Enhancement - New set of configurations for Kiteworks servers: [#4622](https://github.com/owncloud/android/issues/4622) + + A new set of configurations in setup file has been added to support the + connection to Kiteworks servers. + + https://github.com/owncloud/android/issues/4622 + https://github.com/owncloud/android/pull/4632 + +# Changelog for ownCloud Android Client [4.5.1] (2025-04-03) + +The following sections list the changes in ownCloud Android Client 4.5.1 relevant to +ownCloud admins and users. + +[4.5.1]: https://github.com/owncloud/android/compare/v4.5.0...v4.5.1 + +## Summary + +* Bugfix - Confusing behaviour when creating new files using apps provider: [#4560](https://github.com/owncloud/android/issues/4560) +* Bugfix - App crashes at start when biometrics fail: [#7134](https://github.com/owncloud/enterprise/issues/7134) + +## Details + +* Bugfix - Confusing behaviour when creating new files using apps provider: [#4560](https://github.com/owncloud/android/issues/4560) + + The error that appeared when creating a new file using the apps provider has + been fixed. Now, the custom tab is opened correctly with the file content. + + https://github.com/owncloud/android/issues/4560 + https://github.com/owncloud/android/pull/4562 + +* Bugfix - App crashes at start when biometrics fail: [#7134](https://github.com/owncloud/enterprise/issues/7134) + + The crash that happened when biometrics failed due to a system error has been + handled. In this case, an error is shown and pattern or passcode unlock are used + instead of biometrics. + + https://github.com/owncloud/enterprise/issues/7134 + https://github.com/owncloud/android/pull/4564 + +# Changelog for ownCloud Android Client [4.5.0] (2025-03-24) + +The following sections list the changes in ownCloud Android Client 4.5.0 relevant to +ownCloud admins and users. + +[4.5.0]: https://github.com/owncloud/android/compare/v4.4.1...v4.5.0 + +## Summary + +* Bugfix - Crash from Google Play Store: [#4333](https://github.com/owncloud/android/issues/4333) +* Bugfix - Navigation in automatic uploads folder picker: [#4340](https://github.com/owncloud/android/issues/4340) +* Bugfix - Downloading non-previewable files in details view leads to empty list: [#4428](https://github.com/owncloud/android/issues/4428) +* Bugfix - Ensure folder size updates automatically after file replacement: [#4505](https://github.com/owncloud/android/issues/4505) +* Change - Replace auto-uploads with automatic uploads: [#4252](https://github.com/owncloud/android/issues/4252) +* Change - Removed survey and chat from feedback: [#4540](https://github.com/owncloud/android/issues/4540) +* Enhancement - Unit tests for repository classes - Part 2: [#4233](https://github.com/owncloud/android/issues/4233) +* Enhancement - Unit tests for repository classes - Part 3: [#4234](https://github.com/owncloud/android/issues/4234) +* Enhancement - Unit tests for repository classes - Part 4: [#4235](https://github.com/owncloud/android/issues/4235) +* Enhancement - Add status message when (un)setting av. offline from preview: [#4382](https://github.com/owncloud/android/issues/4382) +* Enhancement - Quota improvements from GraphAPI: [#4411](https://github.com/owncloud/android/issues/4411) +* Enhancement - Upgraded AGP version to 8.7.2: [#4478](https://github.com/owncloud/android/issues/4478) +* Enhancement - Added text labels for BottomNavigationView: [#4484](https://github.com/owncloud/android/issues/4484) +* Enhancement - OCIS Light Users: [#4490](https://github.com/owncloud/android/issues/4490) +* Enhancement - Enforce OIDC auth flow via branding: [#4500](https://github.com/owncloud/android/issues/4500) +* Enhancement - Detekt: static code analyzer: [#4506](https://github.com/owncloud/android/issues/4506) +* Enhancement - Multi-Personal (1st round): [#4514](https://github.com/owncloud/android/issues/4514) +* Enhancement - Technical improvements for user quota: [#4521](https://github.com/owncloud/android/issues/4521) + +## Details + +* Bugfix - Crash from Google Play Store: [#4333](https://github.com/owncloud/android/issues/4333) + + The androidx-appcompat version has been upgraded from 1.5.1 to 1.6.1 in order to + fix one crash reported by Play Console which is related to the + FileDataStorageManager constructor + + https://github.com/owncloud/android/issues/4333 + https://github.com/owncloud/android/pull/4542 + +* Bugfix - Navigation in automatic uploads folder picker: [#4340](https://github.com/owncloud/android/issues/4340) + + The button in the toolbar for going up when choosing an upload path has been + added when needed, since there were some cases in which it didn't appear. + + https://github.com/owncloud/android/issues/4340 + https://github.com/owncloud/android/pull/4535 + +* Bugfix - Downloading non-previewable files in details view leads to empty list: [#4428](https://github.com/owncloud/android/issues/4428) + + The error that led to an empty file list after downloading a file in details + view, due to the bottom sheet "Open with", has been fixed. + + https://github.com/owncloud/android/issues/4428 + https://github.com/owncloud/android/pull/4548 + +* Bugfix - Ensure folder size updates automatically after file replacement: [#4505](https://github.com/owncloud/android/issues/4505) + + The folder size has been updated automatically after replacing a file during a + move operation, eliminating the need for a manual refresh. + + https://github.com/owncloud/android/issues/4505 + https://github.com/owncloud/android/pull/4553 + +* Change - Replace auto-uploads with automatic uploads: [#4252](https://github.com/owncloud/android/issues/4252) + + Wording change in the feature name, in order to make it clearer in translations + and documentation + + https://github.com/owncloud/android/issues/4252 + https://github.com/owncloud/android/pull/4492 + +* Change - Removed survey and chat from feedback: [#4540](https://github.com/owncloud/android/issues/4540) + + Survey and chat have been removed from the feedback dialog due to they are not + maintained anymore or they have low traffic. + + https://github.com/owncloud/android/issues/4540 + https://github.com/owncloud/android/pull/4549 + +* Enhancement - Unit tests for repository classes - Part 2: [#4233](https://github.com/owncloud/android/issues/4233) + + Unit tests for OCFileRepository class have been completed. + + https://github.com/owncloud/android/issues/4233 + https://github.com/owncloud/android/pull/4389 + +* Enhancement - Unit tests for repository classes - Part 3: [#4234](https://github.com/owncloud/android/issues/4234) + + Unit tests for OCFolderBackupRepository, OCOAuthRepository, + OCServerInfoRepository, OCShareeRepository, OCShareRepository classes have been + completed. + + https://github.com/owncloud/android/issues/4234 + https://github.com/owncloud/android/pull/4523 + +* Enhancement - Unit tests for repository classes - Part 4: [#4235](https://github.com/owncloud/android/issues/4235) + + Unit tests for OCSpacesRepository, OCTransferRepository, OCUserRepository and + OCWebFingerRepository classes have been completed. + + https://github.com/owncloud/android/issues/4235 + https://github.com/owncloud/android/pull/4537 + +* Enhancement - Add status message when (un)setting av. offline from preview: [#4382](https://github.com/owncloud/android/issues/4382) + + A message has been added in all previews when the (un)setting av. offline + buttons are clicked. The options menu has been updated in all previews depending + on the file status. + + https://github.com/owncloud/android/issues/4382 + https://github.com/owncloud/android/pull/4482 + +* Enhancement - Quota improvements from GraphAPI: [#4411](https://github.com/owncloud/android/issues/4411) + + The quota in the drawer has been updated depending on its status and also when a + file is removed, copied, moved and after a refresh operation. In addition, the + quota value for each account has been added in the manage accounts dialog. + + https://github.com/owncloud/android/issues/4411 + https://github.com/owncloud/android/pull/4496 + +* Enhancement - Upgraded AGP version to 8.7.2: [#4478](https://github.com/owncloud/android/issues/4478) + + The Android Gradle Plugin version has been upgraded to 8.7.2, together with + Gradle version (updated to 8.9) and JDK version (updated to JBR 17). + + https://github.com/owncloud/android/issues/4478 + https://github.com/owncloud/android/pull/4507 + +* Enhancement - Added text labels for BottomNavigationView: [#4484](https://github.com/owncloud/android/issues/4484) + + Text labels have been added below the icons, and the active indicator feature is + implemented using the default itemActiveIndicatorStyle for better navigation + experience. + + https://github.com/owncloud/android/issues/4484 + https://github.com/owncloud/android/pull/4498 + +* Enhancement - OCIS Light Users: [#4490](https://github.com/owncloud/android/issues/4490) + + OCIS light users (users without personal space) are now supported in the app + + https://github.com/owncloud/android/issues/4490 + https://github.com/owncloud/android/pull/4518 + +* Enhancement - Enforce OIDC auth flow via branding: [#4500](https://github.com/owncloud/android/issues/4500) + + A new branded parameter `enforce_oidc` has been added to enforce the app to + follow the OIDC auth flow, and `clientId` and `clientSecret` are sent in token + requests when required by server. Moreover, the app now supports branded + redirect URIs with path due to the new branded parameter + `oauth2_redirect_uri_path` (legacy `oauth2_redirect_uri_path` is now + `oauth2_redirect_uri_host`). + + https://github.com/owncloud/android/issues/4500 + https://github.com/owncloud/android/pull/4516 + +* Enhancement - Detekt: static code analyzer: [#4506](https://github.com/owncloud/android/issues/4506) + + The Kotlin static code analyzer Detekt has been introduced with the agreed + rules, and the left code smells have been fixed throughout the whole code. + + https://github.com/owncloud/android/issues/4506 + https://github.com/owncloud/android/pull/4487 + +* Enhancement - Multi-Personal (1st round): [#4514](https://github.com/owncloud/android/issues/4514) + + Support for multi-personal accounts has been added. This first approach displays + all personal spaces in the Spaces tab, not showing project spaces. In addition, + the Personal tab shows an empty view since there is not a single personal space. + + https://github.com/owncloud/android/issues/4514 + https://github.com/owncloud/android/pull/4527/files + +* Enhancement - Technical improvements for user quota: [#4521](https://github.com/owncloud/android/issues/4521) + + A new use case has been added to fetch the user quota as a flow. Also, all + unnecessary calls from DrawerActivity have been removed. + + https://github.com/owncloud/android/issues/4521 + https://github.com/owncloud/android/pull/4525 + +# Changelog for ownCloud Android Client [4.4.1] (2024-10-30) + +The following sections list the changes in ownCloud Android Client 4.4.1 relevant to +ownCloud admins and users. + +[4.4.1]: https://github.com/owncloud/android/compare/v4.4.0...v4.4.1 + +## Summary + +* Bugfix - File size becomes 0 after a local update: [#4495](https://github.com/owncloud/android/issues/4495) + +## Details + +* Bugfix - File size becomes 0 after a local update: [#4495](https://github.com/owncloud/android/issues/4495) + + The local copy of a file is not removed after a local update anymore. Therefore, + the file size has been fixed. + + https://github.com/owncloud/android/issues/4495 + https://github.com/owncloud/android/pull/4502 + +# Changelog for ownCloud Android Client [4.4.0] (2024-09-30) + +The following sections list the changes in ownCloud Android Client 4.4.0 relevant to +ownCloud admins and users. + +[4.4.0]: https://github.com/owncloud/android/compare/v4.3.1...v4.4.0 + +## Summary + +* Bugfix - Rely on `resharing` capability: [#4397](https://github.com/owncloud/android/issues/4397) +* Bugfix - Shares in non-root are updated correctly: [#4432](https://github.com/owncloud/android/issues/4432) +* Bugfix - List filtering not working after rotating device: [#4441](https://github.com/owncloud/android/issues/4441) +* Bugfix - The color of some elements is set up correctly: [#4442](https://github.com/owncloud/android/issues/4442) +* Bugfix - Audio player does not work: [#4474](https://github.com/owncloud/android/issues/4474) +* Bugfix - Buttons visibility in name conflicts dialog: [#4480](https://github.com/owncloud/android/pull/4480) +* Enhancement - Improved "Remove from original folder" option in auto-upload: [#4357](https://github.com/owncloud/android/issues/4357) +* Enhancement - Improved accessibility of information and relationships: [#4362](https://github.com/owncloud/android/issues/4362) +* Enhancement - Changed the color of some elements to improve accessibility: [#4364](https://github.com/owncloud/android/issues/4364) +* Enhancement - Improved SearchView accessibility: [#4365](https://github.com/owncloud/android/issues/4365) +* Enhancement - Roles added to some elements to improve accessibility: [#4373](https://github.com/owncloud/android/issues/4373) +* Enhancement - Hardware keyboard support: [#4438](https://github.com/owncloud/android/pull/4438) +* Enhancement - Hardware keyboard support for passcode view: [#4447](https://github.com/owncloud/android/issues/4447) +* Enhancement - TalkBack announces the view label correctly: [#4458](https://github.com/owncloud/android/issues/4458) + +## Details + +* Bugfix - Rely on `resharing` capability: [#4397](https://github.com/owncloud/android/issues/4397) + + The request to create a new share has been fixed so that it only includes the + share permission by default when the resharing capability is true, and the "can + share" switch in the edition view of private shares is now only shown when + resharing is true. + + https://github.com/owncloud/android/issues/4397 + https://github.com/owncloud/android/pull/4472 + +* Bugfix - Shares in non-root are updated correctly: [#4432](https://github.com/owncloud/android/issues/4432) + + The items of the "Share" view are updated instantly when create/edit a link or + share with users or groups in a non-root file. + + https://github.com/owncloud/android/issues/4432 + https://github.com/owncloud/android/pull/4435 + +* Bugfix - List filtering not working after rotating device: [#4441](https://github.com/owncloud/android/issues/4441) + + Configuration changes have been handled when rotating the device so that list + filtering works. + + https://github.com/owncloud/android/issues/4441 + https://github.com/owncloud/android/pull/4467 + +* Bugfix - The color of some elements is set up correctly: [#4442](https://github.com/owncloud/android/issues/4442) + + The colors of the Manage Accounts header and status bar have been changed to be + consistent with the branding colors. + + https://github.com/owncloud/android/issues/4442 + https://github.com/owncloud/android/pull/4463 + +* Bugfix - Audio player does not work: [#4474](https://github.com/owncloud/android/issues/4474) + + Audio player in Android 14+ devices wasn't working, so some proper permissions + have been added in Manifest so that media can be played correctly in the + foreground and background in all versions. + + https://github.com/owncloud/android/issues/4474 + https://github.com/owncloud/android/pull/4479 + +* Bugfix - Buttons visibility in name conflicts dialog: [#4480](https://github.com/owncloud/android/pull/4480) + + In some languages, labels for the buttons in the name conflicts dialog were too + long and their visibility was very poor. These buttons have been placed in + vertical instead of horizontal to avoid this problem. + + https://github.com/owncloud/android/pull/4480 + +* Enhancement - Improved "Remove from original folder" option in auto-upload: [#4357](https://github.com/owncloud/android/issues/4357) + + The file will be deleted locally after it has been uploaded to the server, + avoiding the loss of the file if an error happens during the upload. + + https://github.com/owncloud/android/issues/4357 + https://github.com/owncloud/android/pull/4437 + +* Enhancement - Improved accessibility of information and relationships: [#4362](https://github.com/owncloud/android/issues/4362) + + Headings have been added to the following views: Share, Edit/Create Share Link, + Standard Toolbar and Manage Accounts. The filename input field and the two + switches are now linked to their labels. The 'contentDescription' attributes of + the buttons in the Edit/Create Share Link view have also been updated. + + https://github.com/owncloud/android/issues/4362 + https://github.com/owncloud/android/issues/4363 + https://github.com/owncloud/android/issues/4371 + https://github.com/owncloud/android/pull/4448 + +* Enhancement - Changed the color of some elements to improve accessibility: [#4364](https://github.com/owncloud/android/issues/4364) + + The color of some UI elements has been changed to meet minimum color contrast + requirements. + + https://github.com/owncloud/android/issues/4364 + https://github.com/owncloud/android/pull/4429 + +* Enhancement - Improved SearchView accessibility: [#4365](https://github.com/owncloud/android/issues/4365) + + The text hint and cross button color of the SearchView has been changed to meet + the color contrast requirements. In addition, the SearchView includes a new + resource with rounded edges, using the same background color (brandable) as the + containing toolbar. + + https://github.com/owncloud/android/issues/4365 + https://github.com/owncloud/android/pull/4433 + +* Enhancement - Roles added to some elements to improve accessibility: [#4373](https://github.com/owncloud/android/issues/4373) + + Roles have been added to specific elements within the following views: Toolbar, + Spaces, Drawer Menu, Manage accounts and Floating Action Button. Improved the + navigation system within the passcode view. + + https://github.com/owncloud/android/issues/4373 + https://github.com/owncloud/android/pull/4454 + https://github.com/owncloud/android/pull/4466 + +* Enhancement - Hardware keyboard support: [#4438](https://github.com/owncloud/android/pull/4438) + + Navigation via hardware keyboard has been improved so that now focus order has a + logical path, every element is reachable and there are no traps. These + improvements have been applied in main file list, spaces list, drawer menu, + share view and image preview. + + https://github.com/owncloud/android/issues/4366 + https://github.com/owncloud/android/issues/4367 + https://github.com/owncloud/android/issues/4368 + https://github.com/owncloud/android/pull/4438 + +* Enhancement - Hardware keyboard support for passcode view: [#4447](https://github.com/owncloud/android/issues/4447) + + Navigation via hardware keyboard has been added to the passcode view. + + https://github.com/owncloud/android/issues/4447 + https://github.com/owncloud/android/pull/4455 + +* Enhancement - TalkBack announces the view label correctly: [#4458](https://github.com/owncloud/android/issues/4458) + + TalkBack no longer announces "ownCloud" every time the screen changes. Now, it + correctly dictates the name of the current view. + + https://github.com/owncloud/android/issues/4458 + https://github.com/owncloud/android/pull/4470 + +# Changelog for ownCloud Android Client [4.3.1] (2024-07-22) + +The following sections list the changes in ownCloud Android Client 4.3.1 relevant to +ownCloud admins and users. + +[4.3.1]: https://github.com/owncloud/android/compare/v4.3.0...v4.3.1 + +## Summary + +* Change - Bump target SDK to 34: [#4434](https://github.com/owncloud/android/issues/4434) + +## Details + +* Change - Bump target SDK to 34: [#4434](https://github.com/owncloud/android/issues/4434) + + Target SDK was upgraded to 34 in order to fulfill Android platform requirements. + + https://github.com/owncloud/android/issues/4434 + https://github.com/owncloud/android/pull/4440 + +# Changelog for ownCloud Android Client [4.3.0] (2024-07-01) + +The following sections list the changes in ownCloud Android Client 4.3.0 relevant to +ownCloud admins and users. + +[4.3.0]: https://github.com/owncloud/android/compare/v4.2.2...v4.3.0 + +## Summary + +* Bugfix - Removed unnecessary requests when the app is installed from scratch: [#4213](https://github.com/owncloud/android/issues/4213) +* Bugfix - "Clear data" button enabled in the app settings in device settings: [#4309](https://github.com/owncloud/android/issues/4309) +* Bugfix - Video streaming in spaces: [#4328](https://github.com/owncloud/android/issues/4328) +* Bugfix - Retried successful uploads are cleaned up from the temporary folder: [#4335](https://github.com/owncloud/android/issues/4335) +* Bugfix - Resolve incorrect truncation of long display names in Manage Accounts: [#4351](https://github.com/owncloud/android/issues/4351) +* Bugfix - Av. offline files are not removed when "Local only" option is clicked: [#4353](https://github.com/owncloud/android/issues/4353) +* Bugfix - Unwanted DELETE operations when synchronization in single file fails: [#6638](https://github.com/owncloud/enterprise/issues/6638) +* Change - Upgrade minimum SDK version to Android 7.0 (v24): [#4230](https://github.com/owncloud/android/issues/4230) +* Change - Automatic discovery of the account in login: [#4301](https://github.com/owncloud/android/issues/4301) +* Change - Add new prefixes in commit messages of 3rd party contributors: [#4346](https://github.com/owncloud/android/pull/4346) +* Change - Kotlinize PreviewTextFragment: [#4356](https://github.com/owncloud/android/issues/4356) +* Enhancement - Add search functionality to spaces list: [#3865](https://github.com/owncloud/android/issues/3865) +* Enhancement - Get personal space quota from GraphAPI: [#3874](https://github.com/owncloud/android/issues/3874) +* Enhancement - Correct "Local only" option in remove dialog: [#3936](https://github.com/owncloud/android/issues/3936) +* Enhancement - Show app provider icon from endpoint: [#4105](https://github.com/owncloud/android/issues/4105) +* Enhancement - Improvements in Manage Accounts view: [#4148](https://github.com/owncloud/android/issues/4148) +* Enhancement - New setting for manual removal of local storage: [#4174](https://github.com/owncloud/android/issues/4174) +* Enhancement - New setting for automatic removal of local files: [#4175](https://github.com/owncloud/android/issues/4175) +* Enhancement - Avoid unnecessary requests when an av. offline folder is refreshed: [#4197](https://github.com/owncloud/android/issues/4197) +* Enhancement - Unit tests for repository classes - Part 1: [#4232](https://github.com/owncloud/android/issues/4232) +* Enhancement - Add a warning in http connections: [#4284](https://github.com/owncloud/android/issues/4284) +* Enhancement - Make dialog more Android-alike: [#4303](https://github.com/owncloud/android/issues/4303) +* Enhancement - Password generator for public links in oCIS: [#4308](https://github.com/owncloud/android/issues/4308) +* Enhancement - New UI for "Manage accounts" view: [#4312](https://github.com/owncloud/android/issues/4312) +* Enhancement - Improvements in remove dialog: [#4342](https://github.com/owncloud/android/issues/4342) +* Enhancement - Content description in UI elements to improve accessibility: [#4360](https://github.com/owncloud/android/issues/4360) +* Enhancement - Added contentDescription attribute in the previewed image: [#4360](https://github.com/owncloud/android/issues/4360) +* Enhancement - Support for URL shortcut files: [#4413](https://github.com/owncloud/android/issues/4413) +* Enhancement - Changes in the Feedback section: [#6594](https://github.com/owncloud/enterprise/issues/6594) + +## Details + +* Bugfix - Removed unnecessary requests when the app is installed from scratch: [#4213](https://github.com/owncloud/android/issues/4213) + + Some requests to the server that were not necessary when installing the app from + scratch have been removed. + + https://github.com/owncloud/android/issues/4213 + https://github.com/owncloud/android/pull/4385 + +* Bugfix - "Clear data" button enabled in the app settings in device settings: [#4309](https://github.com/owncloud/android/issues/4309) + + The "Clear data" button has been enabled to delete the application data from the + app settings in the device settings. Shared preferences, temporary files, + accounts and the local database will be cleared when the button is pressed. + + https://github.com/owncloud/android/issues/4309 + https://github.com/owncloud/android/pull/4350 + +* Bugfix - Video streaming in spaces: [#4328](https://github.com/owncloud/android/issues/4328) + + The URI formed to perform video streaming in spaces has been adapted to oCIS + accounts so that it takes into account the space where the file is located. + + https://github.com/owncloud/android/issues/4328 + https://github.com/owncloud/android/pull/4394 + +* Bugfix - Retried successful uploads are cleaned up from the temporary folder: [#4335](https://github.com/owncloud/android/issues/4335) + + Temporary files related to a failed upload are deleted after retrying it and + being successfully completed. + + https://github.com/owncloud/android/issues/4335 + https://github.com/owncloud/android/pull/4341 + +* Bugfix - Resolve incorrect truncation of long display names in Manage Accounts: [#4351](https://github.com/owncloud/android/issues/4351) + + Resolved the bug where long display names were truncated incorrectly in the + Manage Accounts view. Now, display names are properly truncated in the middle + with ellipsis (...) to maintain readability. + + https://github.com/owncloud/android/issues/4351 + https://github.com/owncloud/android/pull/4380 + +* Bugfix - Av. offline files are not removed when "Local only" option is clicked: [#4353](https://github.com/owncloud/android/issues/4353) + + "Local only" option in remove dialog will be displayed when the selected folder + contains at least one downloaded file, ignoring those available offline. If the + "Local only" option is displayed and clicked, available offline files will not + be deleted. + + https://github.com/owncloud/android/issues/4353 + https://github.com/owncloud/android/pull/4399 + +* Bugfix - Unwanted DELETE operations when synchronization in single file fails: [#6638](https://github.com/owncloud/enterprise/issues/6638) + + A new exception is now thrown and handled when the account of the network client + is null, avoiding DELETE requests to the server when synchronization (PROPFIND) + on a single file responds with 404. Also, when PROPFINDs respond with 404, the + delete operation has been changed to be just local and not remote too. + + https://github.com/owncloud/enterprise/issues/6638 + https://github.com/owncloud/android/pull/4408 + +* Change - Upgrade minimum SDK version to Android 7.0 (v24): [#4230](https://github.com/owncloud/android/issues/4230) + + The minimum Android version will be Android 7.0 Nougat (API 24). The application + will no longer support previous versions. + + https://github.com/owncloud/android/issues/4230 + https://github.com/owncloud/android/pull/4299 + +* Change - Automatic discovery of the account in login: [#4301](https://github.com/owncloud/android/issues/4301) + + Automatic account discovery is done at login. Removed the refresh account button + in the Manage Accounts view. + + https://github.com/owncloud/android/issues/4301 + https://github.com/owncloud/android/pull/4325 + +* Change - Add new prefixes in commit messages of 3rd party contributors: [#4346](https://github.com/owncloud/android/pull/4346) + + Dependaboy and Calens' commit messages with prefixes that fits 'Conventional + Commits' + + https://github.com/owncloud/android/pull/4346 + +* Change - Kotlinize PreviewTextFragment: [#4356](https://github.com/owncloud/android/issues/4356) + + PreviewTextFragment class has been moved from Java to Kotlin. + + https://github.com/owncloud/android/issues/4356 + https://github.com/owncloud/android/pull/4376 + +* Enhancement - Add search functionality to spaces list: [#3865](https://github.com/owncloud/android/issues/3865) + + Search functionality was added in spaces list when you are trying to filter + them. + + https://github.com/owncloud/android/issues/3865 + https://github.com/owncloud/android/pull/4393 + +* Enhancement - Get personal space quota from GraphAPI: [#3874](https://github.com/owncloud/android/issues/3874) + + Personal space quota in an oCIS account has been added from GraphAPI instead of + propfind. + + https://github.com/owncloud/android/issues/3874 + https://github.com/owncloud/android/pull/4401 + +* Enhancement - Correct "Local only" option in remove dialog: [#3936](https://github.com/owncloud/android/issues/3936) + + "Local only" option in remove dialog will only be shown if checking selected + files and folders recursively, at least one file is available locally. + + https://github.com/owncloud/android/issues/3936 + https://github.com/owncloud/android/pull/4289 + +* Enhancement - Show app provider icon from endpoint: [#4105](https://github.com/owncloud/android/issues/4105) + + App provider icon fetched from the server has been added to the "Open in (web)" + option on the bottom sheet that appears when clicking the 3-dots button of a + file. + + https://github.com/owncloud/android/issues/4105 + https://github.com/owncloud/android/pull/4391 + +* Enhancement - Improvements in Manage Accounts view: [#4148](https://github.com/owncloud/android/issues/4148) + + Removed the key icon and avoid overlap account name with icons in Manage + Accounts. Redirect to login when snackbar appears in authentication failure. + + https://github.com/owncloud/android/issues/4148 + https://github.com/owncloud/android/pull/4330 + +* Enhancement - New setting for manual removal of local storage: [#4174](https://github.com/owncloud/android/issues/4174) + + A new icon has been added in Manage Accounts view to delete manually local + files. + + https://github.com/owncloud/android/issues/4174 + https://github.com/owncloud/android/pull/4334 + +* Enhancement - New setting for automatic removal of local files: [#4175](https://github.com/owncloud/android/issues/4175) + + A new setting has been created to delete automatically downloaded files, when + the time since their last usage exceeds the selected time in the setting. + + https://github.com/owncloud/android/issues/4175 + https://github.com/owncloud/android/pull/4320 + +* Enhancement - Avoid unnecessary requests when an av. offline folder is refreshed: [#4197](https://github.com/owncloud/android/issues/4197) + + The available offline folders will only be refreshed when their eTag from the + server and the corresponding one of the local database are different, avoiding + sending unnecessary request. + + https://github.com/owncloud/android/issues/4197 + https://github.com/owncloud/android/pull/4354 + +* Enhancement - Unit tests for repository classes - Part 1: [#4232](https://github.com/owncloud/android/issues/4232) + + Unit tests for OCAppRegistryRepository, OCAuthenticationRepository and + OCCapabilityRepository classes have been completed. + + https://github.com/owncloud/android/issues/4232 + https://github.com/owncloud/android/pull/4281 + +* Enhancement - Add a warning in http connections: [#4284](https://github.com/owncloud/android/issues/4284) + + Warning dialog has been added in the login screen when you are trying to connect + to a http server. + + https://github.com/owncloud/android/issues/4284 + https://github.com/owncloud/android/pull/4345 + +* Enhancement - Make dialog more Android-alike: [#4303](https://github.com/owncloud/android/issues/4303) + + Name conflicts dialog appearance was changed to look Android-alike and more + similar to other dialogs in the app. + + https://github.com/owncloud/android/issues/4303 + https://github.com/owncloud/android/pull/4336 + +* Enhancement - Password generator for public links in oCIS: [#4308](https://github.com/owncloud/android/issues/4308) + + A new password generator has been added to the public links creation view in + oCIS accounts, which creates passwords that fulfill all the policies coming from + server in a cryptographically secure way. + + https://github.com/owncloud/android/issues/4308 + https://github.com/owncloud/android/pull/4349 + +* Enhancement - New UI for "Manage accounts" view: [#4312](https://github.com/owncloud/android/issues/4312) + + A new dialog has been added to substitute the previous view for "Manage + accounts". In addition, all the accounts management related stuff has been + removed from the drawer menu in order not to show repetitive actions and make + this menu simpler. + + https://github.com/owncloud/android/issues/4312 + https://github.com/owncloud/android/pull/4410 + +* Enhancement - Improvements in remove dialog: [#4342](https://github.com/owncloud/android/issues/4342) + + A new remove dialog has been created by adding the thumbnail of the file to be + deleted. Also, when removing files in multiple selection, the number of elements + that are going to be removed is displayed in the dialog. + + https://github.com/owncloud/android/issues/4342 + https://github.com/owncloud/android/issues/4377 + https://github.com/owncloud/android/pull/4348 + https://github.com/owncloud/android/pull/4404 + +* Enhancement - Content description in UI elements to improve accessibility: [#4360](https://github.com/owncloud/android/issues/4360) + + A description of the meaning or action associated with some UI elements has been + included as alternative text to make the application more accessible. Views + improved: toolbar, file list, spaces list, share, drawer menu, manage accounts + and image preview. + + https://github.com/owncloud/android/issues/4360 + https://github.com/owncloud/android/pull/4387 + +* Enhancement - Added contentDescription attribute in the previewed image: [#4360](https://github.com/owncloud/android/issues/4360) + + A contentDescription attribute has been added to previewed image to make the + application more accessible. + + https://github.com/owncloud/android/issues/4360 + https://github.com/owncloud/android/pull/4388 + +* Enhancement - Support for URL shortcut files: [#4413](https://github.com/owncloud/android/issues/4413) + + A new option has been added in the FAB to create a shortcut file with a .url + extension. When the file is clicked, the URL will open in the browser. + + https://github.com/owncloud/android/issues/4413 + https://github.com/owncloud/android/pull/4420 + +* Enhancement - Changes in the Feedback section: [#6594](https://github.com/owncloud/enterprise/issues/6594) + + Based on a brandable parameter, a new dialog has been added to handle feedback. + Within the dialog, links to the survey, GitHub and the open forum Central will + be displayed. + + https://github.com/owncloud/enterprise/issues/6594 + https://github.com/owncloud/android/pull/4423 + +# Changelog for ownCloud Android Client [4.2.2] (2024-05-30) + +The following sections list the changes in ownCloud Android Client 4.2.2 relevant to +ownCloud admins and users. + +[4.2.2]: https://github.com/owncloud/android/compare/v4.2.1...v4.2.2 + +## Summary + +* Bugfix - Downloads not working when `Content-Length` is not received: [#4352](https://github.com/owncloud/android/issues/4352) + +## Details + +* Bugfix - Downloads not working when `Content-Length` is not received: [#4352](https://github.com/owncloud/android/issues/4352) + + The case when Content-Length header is not received in the response of a GET for + a download has been handled, and now the progress bar in images preview and + details view is indeterminate for those cases. + + https://github.com/owncloud/android/issues/4352 + https://github.com/owncloud/android/pull/4415 + +# Changelog for ownCloud Android Client [4.2.1] (2024-02-22) + +The following sections list the changes in ownCloud Android Client 4.2.1 relevant to +ownCloud admins and users. + +[4.2.1]: https://github.com/owncloud/android/compare/v4.2.0...v4.2.1 + +## Summary + +* Bugfix - Some crashes in 4.2.0: [#4318](https://github.com/owncloud/android/issues/4318) + +## Details + +* Bugfix - Some crashes in 4.2.0: [#4318](https://github.com/owncloud/android/issues/4318) + + Several crashes reported by Play Console in version 4.2.0 have been fixed. + + https://github.com/owncloud/android/issues/4318 + https://github.com/owncloud/android/pull/4323 + +# Changelog for ownCloud Android Client [4.2.0] (2024-02-12) + +The following sections list the changes in ownCloud Android Client 4.2.0 relevant to +ownCloud admins and users. + +[4.2.0]: https://github.com/owncloud/android/compare/v4.1.1...v4.2.0 + +## Summary + +* Security - Improve biometric authentication security: [#4180](https://github.com/owncloud/android/issues/4180) +* Bugfix - Fixed AlertDialog title theme in Samsung Devices: [#3192](https://github.com/owncloud/android/issues/3192) +* Bugfix - Some Null Pointer Exceptions in MainFileListViewModel: [#4065](https://github.com/owncloud/android/issues/4065) +* Bugfix - Bugs related to Details view: [#4188](https://github.com/owncloud/android/issues/4188) +* Bugfix - Some Null Pointer Exceptions fixed from Google Play: [#4207](https://github.com/owncloud/android/issues/4207) +* Bugfix - Conflict in copy with files without extension: [#4222](https://github.com/owncloud/android/issues/4222) +* Bugfix - Add "scope" parameter to /token endpoint HTTP requests: [#4260](https://github.com/owncloud/android/pull/4260) +* Bugfix - Fix in the handling of the base URL: [#4279](https://github.com/owncloud/android/issues/4279) +* Bugfix - Handle Http 423 (resource locked): [#4282](https://github.com/owncloud/android/issues/4282) +* Bugfix - Copy folder into descendant in different spaces: [#4293](https://github.com/owncloud/android/issues/4293) +* Change - Android library as a module instead of submodule: [#3962](https://github.com/owncloud/android/issues/3962) +* Change - Migration to Media3 from Exoplayer: [#4157](https://github.com/owncloud/android/issues/4157) +* Enhancement - Koin DSL: [#3966](https://github.com/owncloud/android/pull/3966) +* Enhancement - Unit tests for datasources classes - Part 1 & Fixes: [#4063](https://github.com/owncloud/android/issues/4063) +* Enhancement - Unit tests for datasources classes - Part 3: [#4072](https://github.com/owncloud/android/issues/4072) +* Enhancement - "Apply to all" when many name conflicts arise: [#4078](https://github.com/owncloud/android/issues/4078) +* Enhancement - "Share to" in oCIS accounts allows upload to any space: [#4088](https://github.com/owncloud/android/issues/4088) +* Enhancement - Auto-refresh when a file is uploaded: [#4103](https://github.com/owncloud/android/issues/4103) +* Enhancement - Auto upload in oCIS accounts allows upload to any space: [#4117](https://github.com/owncloud/android/issues/4117) +* Enhancement - Thumbnail improvements in grid view: [#4145](https://github.com/owncloud/android/issues/4145) +* Enhancement - Logging changes: [#4151](https://github.com/owncloud/android/issues/4151) +* Enhancement - Download log files on Android10+ devices: [#4155](https://github.com/owncloud/android/issues/4155) +* Enhancement - Log file sharing allowed within ownCloud Android app: [#4156](https://github.com/owncloud/android/issues/4156) +* Enhancement - New field "last usage" in database: [#4173](https://github.com/owncloud/android/issues/4173) +* Enhancement - Use invoke operator to execute usecases: [#4179](https://github.com/owncloud/android/pull/4179) +* Enhancement - Deep link open app correctly: [#4181](https://github.com/owncloud/android/issues/4181) +* Enhancement - Select user and navigate to file when opening via deep link: [#4194](https://github.com/owncloud/android/issues/4194) +* Enhancement - New branding/MDM parameter to show sensitive auth info in logs: [#4249](https://github.com/owncloud/android/issues/4249) +* Enhancement - Fix in the type handling of the content-type: [#4258](https://github.com/owncloud/android/issues/4258) +* Enhancement - Prevent that two media files are playing at the same time: [#4263](https://github.com/owncloud/android/pull/4263) +* Enhancement - Added icon for .docxf files: [#4267](https://github.com/owncloud/android/issues/4267) +* Enhancement - Manage password policy in live mode: [#4269](https://github.com/owncloud/android/issues/4269) +* Enhancement - New branding/MDM parameter to send `login_hint` and `user` params: [#4288](https://github.com/owncloud/android/issues/4288) + +## Details + +* Security - Improve biometric authentication security: [#4180](https://github.com/owncloud/android/issues/4180) + + Biometric authentication has been improved by checking the result received when + performing a successful authentication. + + https://github.com/owncloud/android/issues/4180 + https://github.com/owncloud/android/pull/4283 + +* Bugfix - Fixed AlertDialog title theme in Samsung Devices: [#3192](https://github.com/owncloud/android/issues/3192) + + Use of device default theme was removed. + + https://github.com/owncloud/android/issues/3192 + https://github.com/owncloud/android/pull/4277 + +* Bugfix - Some Null Pointer Exceptions in MainFileListViewModel: [#4065](https://github.com/owncloud/android/issues/4065) + + The MainFileListViewModel has prevented the fileById variable from crashing when + a null value is found. + + https://github.com/owncloud/android/issues/4065 + https://github.com/owncloud/android/pull/4241 + +* Bugfix - Bugs related to Details view: [#4188](https://github.com/owncloud/android/issues/4188) + + When coming to Details view from video or image previews, now the top bar is + shown correctly and navigation has the correct stack, so the back button has the + expected flow. + + https://github.com/owncloud/android/issues/4188 + https://github.com/owncloud/android/pull/4265 + +* Bugfix - Some Null Pointer Exceptions fixed from Google Play: [#4207](https://github.com/owncloud/android/issues/4207) + + FileDisplayActivity and ReceiverExternalFilesActivity have prevented some + functions from crashing when a null value is found. + + https://github.com/owncloud/android/issues/4207 + https://github.com/owncloud/android/pull/4238 + +* Bugfix - Conflict in copy with files without extension: [#4222](https://github.com/owncloud/android/issues/4222) + + The check of files names that start in the same way has been removed from the + copy network operation, so that the copy use case takes care of that and works + properly with files without extension. + + https://github.com/owncloud/android/issues/4222 + https://github.com/owncloud/android/pull/4294 + +* Bugfix - Add "scope" parameter to /token endpoint HTTP requests: [#4260](https://github.com/owncloud/android/pull/4260) + + The "scope" parameter is now always sent in the body of HTTP requests to the + /token endpoint, which is optional in v1 but required in v2. + + https://github.com/owncloud/android/pull/4260 + +* Bugfix - Fix in the handling of the base URL: [#4279](https://github.com/owncloud/android/issues/4279) + + Base URL has been formatted in GetRemoteAppRegistryOperation when server + instance is installed in subfolder, so that the endpoint is formed correctly. + + https://github.com/owncloud/android/issues/4279 + https://github.com/owncloud/android/pull/4287 + +* Bugfix - Handle Http 423 (resource locked): [#4282](https://github.com/owncloud/android/issues/4282) + + App can gracefully show if the file is locked when done certain operations on + it. + + https://github.com/owncloud/android/issues/4282 + https://github.com/owncloud/android/pull/4285 + +* Bugfix - Copy folder into descendant in different spaces: [#4293](https://github.com/owncloud/android/issues/4293) + + Copying a folder into another folder with the same name in a different space now + works correctly. + + https://github.com/owncloud/android/issues/4293 + https://github.com/owncloud/android/pull/4295 + +* Change - Android library as a module instead of submodule: [#3962](https://github.com/owncloud/android/issues/3962) + + Android library, containing all networking stuff, is now the 5th module in the + app instead of submodule. + + https://github.com/owncloud/android/issues/3962 + https://github.com/owncloud/android/pull/4183 + +* Change - Migration to Media3 from Exoplayer: [#4157](https://github.com/owncloud/android/issues/4157) + + Media3 is the new home for Exoplayer, which has become a part of this library. + Media3 provides a more advanced and optimized media playback experience for + users, with improvements in performance and compatibility. + + https://github.com/owncloud/android/issues/4157 + https://github.com/owncloud/android/pull/4177 + +* Enhancement - Koin DSL: [#3966](https://github.com/owncloud/android/pull/3966) + + Koin DSL makes easier the dependency definition avoiding verbosity by allowing + you to target a class constructor directly + + https://github.com/owncloud/android/pull/3966 + +* Enhancement - Unit tests for datasources classes - Part 1 & Fixes: [#4063](https://github.com/owncloud/android/issues/4063) + + Unit tests for OCLocalAppRegistryDataSource, OCRemoteAppRegistryDataSource, + OCLocalAuthenticationDataSource, OCRemoteAuthenticationDataSource, + OCLocalCapabilitiesDataSource and OCRemoteCapabilitiesDataSource classes have + been done and completed, and several fixes have been applied to all existent + unit test classes for datasources. + + https://github.com/owncloud/android/issues/4063 + https://github.com/owncloud/android/pull/4209 + +* Enhancement - Unit tests for datasources classes - Part 3: [#4072](https://github.com/owncloud/android/issues/4072) + + Unit tests of the OCFolderBackupLocalDataSource, OCRemoteOAuthDataSource, + OCRemoteShareeDataSource, OCLocalShareDataSource, OCRemoteShareDataSource, + OCLocalSpacesDataSource, OCRemoteSpacesDataSource, OCLocalTransferDataSource, + OCLocalUserDataSource, OCRemoteUserDataSource, OCRemoteWebFingerDatasource + classes have been done and completed. + + https://github.com/owncloud/android/issues/4072 + https://github.com/owncloud/android/pull/4143 + +* Enhancement - "Apply to all" when many name conflicts arise: [#4078](https://github.com/owncloud/android/issues/4078) + + A new dialog has been created where a checkbox has been added to be able to + select all the folders or files that have conflicts. + + https://github.com/owncloud/android/issues/4078 + https://github.com/owncloud/android/pull/4138 + +* Enhancement - "Share to" in oCIS accounts allows upload to any space: [#4088](https://github.com/owncloud/android/issues/4088) + + With this improvement, shared stuff from other apps can be uploaded to any space + and not only the personal one in oCIS accounts. + + https://github.com/owncloud/android/issues/4088 + https://github.com/owncloud/android/pull/4160 + +* Enhancement - Auto-refresh when a file is uploaded: [#4103](https://github.com/owncloud/android/issues/4103) + + The file list will be now refreshed automatically when an upload whose + destination folder is the one we are in is completed successfully. + + https://github.com/owncloud/android/issues/4103 + https://github.com/owncloud/android/pull/4199 + +* Enhancement - Auto upload in oCIS accounts allows upload to any space: [#4117](https://github.com/owncloud/android/issues/4117) + + Auto uploads of images and videos can now be uploaded to any space and not only + the personal one in oCIS accounts. + + https://github.com/owncloud/android/issues/4117 + https://github.com/owncloud/android/pull/4214 + +* Enhancement - Thumbnail improvements in grid view: [#4145](https://github.com/owncloud/android/issues/4145) + + Grid view was improved by adding the file name to images when the thumbnail is + null. + + https://github.com/owncloud/android/issues/4145 + https://github.com/owncloud/android/pull/4237 + +* Enhancement - Logging changes: [#4151](https://github.com/owncloud/android/issues/4151) + + - Updating version of com.github.AppDevNext.Logcat:LogcatCoreLib lib. - Adding + the hour, minutes and seconds to the log file. - Printing http logs in one line. + - Printing http logs with 1000000 bytes as max size. - Printing http logs in a + Json format. + + https://github.com/owncloud/android/issues/4151 + https://github.com/owncloud/android/pull/4204 + +* Enhancement - Download log files on Android10+ devices: [#4155](https://github.com/owncloud/android/issues/4155) + + A new icon to download a log file to the Downloads folder of the device has been + added to the log list screen on Android10+ devices. + + https://github.com/owncloud/android/issues/4155 + https://github.com/owncloud/android/pull/4205 + +* Enhancement - Log file sharing allowed within ownCloud Android app: [#4156](https://github.com/owncloud/android/issues/4156) + + Sharing log files to the ownCloud app itself is now possible from the logs + screen. + + https://github.com/owncloud/android/issues/4156 + https://github.com/owncloud/android/pull/4215 + +* Enhancement - New field "last usage" in database: [#4173](https://github.com/owncloud/android/issues/4173) + + To know the last usage of a file, a new field has been created in the database + to handle this specific information. + + https://github.com/owncloud/android/issues/4173 + https://github.com/owncloud/android/pull/4187 + +* Enhancement - Use invoke operator to execute usecases: [#4179](https://github.com/owncloud/android/pull/4179) + + Removes all the "execute" verbosity for use cases by using the "invoke" operator + instead. + + https://github.com/owncloud/android/pull/4179 + +* Enhancement - Deep link open app correctly: [#4181](https://github.com/owncloud/android/issues/4181) + + Opening the app with the deep link correctly and managing if user logged or not. + + https://github.com/owncloud/android/issues/4181 + https://github.com/owncloud/android/pull/4191 + +* Enhancement - Select user and navigate to file when opening via deep link: [#4194](https://github.com/owncloud/android/issues/4194) + + Select the correct user owner of the deep link file, managing possible errors + and navigating to the correct file. + + https://github.com/owncloud/android/issues/4194 + https://github.com/owncloud/android/pull/4212 + +* Enhancement - New branding/MDM parameter to show sensitive auth info in logs: [#4249](https://github.com/owncloud/android/issues/4249) + + A new branding and MDM parameter has been created to decide if the sensitive + information put in the authorization header in HTTP requests is shown or not in + the logs. + + https://github.com/owncloud/android/issues/4249 + https://github.com/owncloud/android/pull/4257 + +* Enhancement - Fix in the type handling of the content-type: [#4258](https://github.com/owncloud/android/issues/4258) + + The content-type `application/jrd+json` has been added to the loggable types + list, so that body in some requests and responses can be correctly logged. + + https://github.com/owncloud/android/issues/4258 + https://github.com/owncloud/android/pull/4266 + +* Enhancement - Prevent that two media files are playing at the same time: [#4263](https://github.com/owncloud/android/pull/4263) + + The player handles the audio focus shifts, pausing one player if another starts. + + https://github.com/owncloud/android/pull/4263 + +* Enhancement - Added icon for .docxf files: [#4267](https://github.com/owncloud/android/issues/4267) + + An icon has been added for files that have a .docxf extension. + + https://github.com/owncloud/android/issues/4267 + https://github.com/owncloud/android/pull/4297 + +* Enhancement - Manage password policy in live mode: [#4269](https://github.com/owncloud/android/issues/4269) + + Password policy for public links is handled in live mode with new items in the + dialog. + + https://github.com/owncloud/android/issues/4269 + https://github.com/owncloud/android/pull/4276 + +* Enhancement - New branding/MDM parameter to send `login_hint` and `user` params: [#4288](https://github.com/owncloud/android/issues/4288) + + A new branding and MDM parameter has been created to decide if `login_hint` and + `user` are sent as parameters in the login request, so that a value is shown in + the Username text field. + + https://github.com/owncloud/android/issues/4288 + https://github.com/owncloud/android/pull/4291 + +# Changelog for ownCloud Android Client [4.1.1] (2023-10-18) + +The following sections list the changes in ownCloud Android Client 4.1.1 relevant to +ownCloud admins and users. + +[4.1.1]: https://github.com/owncloud/android/compare/v4.1.0...v4.1.1 + +## Summary + +* Bugfix - Some Null Pointer Exceptions avoided: [#4158](https://github.com/owncloud/android/issues/4158) +* Bugfix - Thumbnails correctly shown for every user: [#4189](https://github.com/owncloud/android/pull/4189) + +## Details + +* Bugfix - Some Null Pointer Exceptions avoided: [#4158](https://github.com/owncloud/android/issues/4158) + + In the detail screen, in the main file list ViewModel and in the OCFile + repository the app has been prevented from crashing when a null is found. + + https://github.com/owncloud/android/issues/4158 + https://github.com/owncloud/android/pull/4170 + +* Bugfix - Thumbnails correctly shown for every user: [#4189](https://github.com/owncloud/android/pull/4189) + + Due to an error in the request, users that included the '@' character in their + usernames couldn't see the thumbnails of the image files. Now, every user can + see them correctly. + + https://github.com/owncloud/android/pull/4189 + +# Changelog for ownCloud Android Client [4.1.0] (2023-08-23) + +The following sections list the changes in ownCloud Android Client 4.1.0 relevant to +ownCloud admins and users. + +[4.1.0]: https://github.com/owncloud/android/compare/v4.0.0...v4.1.0 + +## Summary + +* Bugfix - Spaces' thumbnails not loaded the first time: [#3959](https://github.com/owncloud/android/issues/3959) +* Bugfix - Bad error message when copying/moving with server down: [#4044](https://github.com/owncloud/android/issues/4044) +* Bugfix - Unnecessary or wrong call: [#4074](https://github.com/owncloud/android/issues/4074) +* Bugfix - Menu option unset av. offline shown when shouldn't: [#4077](https://github.com/owncloud/android/issues/4077) +* Bugfix - List of accounts empty after removing all accounts and adding new ones: [#4114](https://github.com/owncloud/android/issues/4114) +* Bugfix - Crash when the token is expired: [#4116](https://github.com/owncloud/android/issues/4116) +* Change - Upgrade min SDK to Android 6 (API 23): [#3245](https://github.com/owncloud/android/issues/3245) +* Change - Move file menu options filter to use case: [#4009](https://github.com/owncloud/android/issues/4009) +* Change - Gradle Version Catalog: [#4035](https://github.com/owncloud/android/pull/4035) +* Change - Remove "ignore" from the debug flavour Android manifest: [#4064](https://github.com/owncloud/android/pull/4064) +* Change - Not opening browser automatically in login: [#4067](https://github.com/owncloud/android/issues/4067) +* Change - Added new unit tests for providers: [#4073](https://github.com/owncloud/android/issues/4073) +* Change - New detail screen file design: [#4098](https://github.com/owncloud/android/pull/4098) +* Enhancement - Show "More" button for every file list item: [#2885](https://github.com/owncloud/android/issues/2885) +* Enhancement - Added "Open in web" options to main file list: [#3860](https://github.com/owncloud/android/issues/3860) +* Enhancement - Copy/move conflict solved by users: [#3935](https://github.com/owncloud/android/issues/3935) +* Enhancement - Improve grid mode: [#4027](https://github.com/owncloud/android/issues/4027) +* Enhancement - Improve UX of creation dialog: [#4031](https://github.com/owncloud/android/issues/4031) +* Enhancement - File name conflict starting by (1): [#4040](https://github.com/owncloud/android/pull/4040) +* Enhancement - Force security if not protected: [#4061](https://github.com/owncloud/android/issues/4061) +* Enhancement - Prevent http traffic with branding options: [#4066](https://github.com/owncloud/android/issues/4066) +* Enhancement - Unit tests for datasources classes - Part 2: [#4071](https://github.com/owncloud/android/issues/4071) +* Enhancement - Respect app_providers_appsUrl value from capabilities: [#4075](https://github.com/owncloud/android/issues/4075) +* Enhancement - Apply (1) to uploads' name conflicts: [#4079](https://github.com/owncloud/android/issues/4079) +* Enhancement - Support "per app" language change on Android 13+: [#4082](https://github.com/owncloud/android/issues/4082) +* Enhancement - Align Sharing icons with other platforms: [#4101](https://github.com/owncloud/android/issues/4101) + +## Details + +* Bugfix - Spaces' thumbnails not loaded the first time: [#3959](https://github.com/owncloud/android/issues/3959) + + Changing our own lazy image loading with coil library in spaces and file list. + + https://github.com/owncloud/android/issues/3959 + https://github.com/owncloud/android/pull/4084 + +* Bugfix - Bad error message when copying/moving with server down: [#4044](https://github.com/owncloud/android/issues/4044) + + Right now, when we are trying to copy a file to another folder and the server is + downwe receive a correct message. Before the issue the message shown code from + the application. + + https://github.com/owncloud/android/issues/4044 + https://github.com/owncloud/android/pull/4127 + +* Bugfix - Unnecessary or wrong call: [#4074](https://github.com/owncloud/android/issues/4074) + + Removed added path when checking path existence. + + https://github.com/owncloud/android/issues/4074 + https://github.com/owncloud/android/pull/4131 + https://github.com/owncloud/android-library/pull/578 + +* Bugfix - Menu option unset av. offline shown when shouldn't: [#4077](https://github.com/owncloud/android/issues/4077) + + Unset available offline menu option is not shown in files inside an available + offline folder anymore, because content inside an available offline folder + cannot be changed its status, only if the folder changes it. + + https://github.com/owncloud/android/issues/4077 + https://github.com/owncloud/android/pull/4093 + +* Bugfix - List of accounts empty after removing all accounts and adding new ones: [#4114](https://github.com/owncloud/android/issues/4114) + + Now, the account list is shown when User opens the app and was added a new + account. + + https://github.com/owncloud/android/issues/4114 + https://github.com/owncloud/android/pull/4122 + +* Bugfix - Crash when the token is expired: [#4116](https://github.com/owncloud/android/issues/4116) + + Now when the token expires and we switch from grid to list mode on the main + screen the app doesn't crash. + + https://github.com/owncloud/android/issues/4116 + https://github.com/owncloud/android/pull/4132 + +* Change - Upgrade min SDK to Android 6 (API 23): [#3245](https://github.com/owncloud/android/issues/3245) + + The minimum SDK has been updated to API 23, which means that the minimum version + of Android we'll support from now on is Android 6 Marshmallow. + + https://github.com/owncloud/android/issues/3245 + https://github.com/owncloud/android/pull/4036 + https://github.com/owncloud/android-library/pull/566 + +* Change - Move file menu options filter to use case: [#4009](https://github.com/owncloud/android/issues/4009) + + The old class where the menu options for a file or group or files were filtered + has been replaced by a new use case which fits in the architecture of the app. + + https://github.com/owncloud/android/issues/4009 + https://github.com/owncloud/android/pull/4039 + +* Change - Gradle Version Catalog: [#4035](https://github.com/owncloud/android/pull/4035) + + Introduces the Gradle Version Catalog to manage the dependencies in a scalable + way. Now, all the dependencies are declared inside toml file. + + https://github.com/owncloud/android/pull/4035 + +* Change - Remove "ignore" from the debug flavour Android manifest: [#4064](https://github.com/owncloud/android/pull/4064) + + A `tools:ignore` property from the Android manifest specific for the debug + flavour was removed as it is not needed anymore. + + https://github.com/owncloud/android/pull/4064 + +* Change - Not opening browser automatically in login: [#4067](https://github.com/owncloud/android/issues/4067) + + When there is a fixed bearer auth server URL via a branded parameter, the login + screen won't redirect automatically to the browser so that some problems in the + authentication flow are solved. + + https://github.com/owncloud/android/issues/4067 + https://github.com/owncloud/android/pull/4106 + +* Change - Added new unit tests for providers: [#4073](https://github.com/owncloud/android/issues/4073) + + Implementation of tests for the functions within ScopedStorageProvider and + OCSharedPreferencesProvider. + + https://github.com/owncloud/android/issues/4073 + https://github.com/owncloud/android/pull/4091 + +* Change - New detail screen file design: [#4098](https://github.com/owncloud/android/pull/4098) + + The detail view ha been improved. It added new properties like last sync, status + icon on thumbnail, path and creation date + + https://github.com/owncloud/android/issues/4092 + https://github.com/owncloud/android/pull/4098 + +* Enhancement - Show "More" button for every file list item: [#2885](https://github.com/owncloud/android/issues/2885) + + A 3-dot button has been added to every file, where the options that we have in + the 3-dot menu in multiselection for that single file have been added for a + quicker access to them. Also, some options have been reordered. + + https://github.com/owncloud/android/issues/2885 + https://github.com/owncloud/android/pull/4076 + +* Enhancement - Added "Open in web" options to main file list: [#3860](https://github.com/owncloud/android/issues/3860) + + "Open in web" dynamic options (depending on the providers available) are now + shown in the main file list as well, when selecting one single file which has + providers to open it in web. + + https://github.com/owncloud/android/issues/3860 + https://github.com/owncloud/android/pull/4058 + +* Enhancement - Copy/move conflict solved by users: [#3935](https://github.com/owncloud/android/issues/3935) + + A pop-up is displayed in case there is a name conflict with the files been moved + or copied. The pop-up has the options to Skip, Replace and Keep both, to be + consistent with the web client. + + https://github.com/owncloud/android/issues/3935 + https://github.com/owncloud/android/pull/4062 + +* Enhancement - Improve grid mode: [#4027](https://github.com/owncloud/android/issues/4027) + + Grid mode has been improved to show bigger thumbnails in images files. + + https://github.com/owncloud/android/issues/4027 + https://github.com/owncloud/android/pull/4089 + +* Enhancement - Improve UX of creation dialog: [#4031](https://github.com/owncloud/android/issues/4031) + + Creation dialog now shows an error message and disables the confirmation button + when forbidden characters are typed + + https://github.com/owncloud/android/issues/4031 + https://github.com/owncloud/android/pull/4097 + +* Enhancement - File name conflict starting by (1): [#4040](https://github.com/owncloud/android/pull/4040) + + File conflicts now are named with suffix starting in (1) instead of (2). + + https://github.com/owncloud/android/issues/3946 + https://github.com/owncloud/android/pull/4040 + +* Enhancement - Force security if not protected: [#4061](https://github.com/owncloud/android/issues/4061) + + A new branding parameter was created to enforce security protection in the app + if device protection is not enabled. + + https://github.com/owncloud/android/issues/4061 + https://github.com/owncloud/android/pull/4087 + +* Enhancement - Prevent http traffic with branding options: [#4066](https://github.com/owncloud/android/issues/4066) + + Adding branding option for prevent http traffic. + + https://github.com/owncloud/android/issues/4066 + https://github.com/owncloud/android/pull/4110 + +* Enhancement - Unit tests for datasources classes - Part 2: [#4071](https://github.com/owncloud/android/issues/4071) + + Unit tests of the OCLocalFileDataSource and OCRemoteFileDataSource classes have + been done. + + https://github.com/owncloud/android/issues/4071 + https://github.com/owncloud/android/pull/4123 + +* Enhancement - Respect app_providers_appsUrl value from capabilities: [#4075](https://github.com/owncloud/android/issues/4075) + + Now, the app receives the app_providers_appsUrl from the local database. Before + of this issue, the value was hardcoded. + + https://github.com/owncloud/android/issues/4075 + https://github.com/owncloud/android/pull/4113 + +* Enhancement - Apply (1) to uploads' name conflicts: [#4079](https://github.com/owncloud/android/issues/4079) + + When new files were uploaded manually to pC, shared from a 3rd party app or text + shared with oC name conflict happens, (2) was added to the file name instead of + (1). + + Right now if we upload a file with a repeated name, the new file name will end + with (1). + + https://github.com/owncloud/android/issues/4079 + https://github.com/owncloud/android/pull/4129 + +* Enhancement - Support "per app" language change on Android 13+: [#4082](https://github.com/owncloud/android/issues/4082) + + The locales_config.xml file has been created for the application to detect the + language that the user wishes to choose. + + https://github.com/owncloud/android/issues/4082 + https://github.com/owncloud/android/pull/4099 + +* Enhancement - Align Sharing icons with other platforms: [#4101](https://github.com/owncloud/android/issues/4101) + + The share icon has been changed on the screens where it appears to be + synchronized with other platforms. + + https://github.com/owncloud/android/issues/4101 + https://github.com/owncloud/android/pull/4112 + +# Changelog for ownCloud Android Client [4.0.0] (2023-05-29) + +The following sections list the changes in ownCloud Android Client 4.0.0 relevant to +ownCloud admins and users. + +[4.0.0]: https://github.com/owncloud/android/compare/v3.0.4...v4.0.0 + +## Summary + +* Security - Make ShareActivity not-exported: [#4038](https://github.com/owncloud/android/pull/4038) +* Bugfix - Error message for protocol exception: [#3948](https://github.com/owncloud/android/issues/3948) +* Bugfix - Incorrect list of files in av. offline when browsing from details: [#3986](https://github.com/owncloud/android/issues/3986) +* Change - Bump target SDK to 33: [#3617](https://github.com/owncloud/android/issues/3617) +* Change - Use ViewBinding in FolderPickerActivity: [#3796](https://github.com/owncloud/android/issues/3796) +* Change - Use ViewBinding in WhatsNewActivity: [#3796](https://github.com/owncloud/android/issues/3796) +* Enhancement - Support for Markdown files: [#3716](https://github.com/owncloud/android/issues/3716) +* Enhancement - Support for spaces: [#3851](https://github.com/owncloud/android/pull/3851) +* Enhancement - Update label on Camera Uploads: [#3930](https://github.com/owncloud/android/pull/3930) +* Enhancement - Authenticated WebFinger: [#3943](https://github.com/owncloud/android/issues/3943) +* Enhancement - Link in drawer menu: [#3949](https://github.com/owncloud/android/pull/3949) +* Enhancement - Send language header in all requests: [#3980](https://github.com/owncloud/android/issues/3980) +* Enhancement - Open in specific web provider: [#3994](https://github.com/owncloud/android/issues/3994) +* Enhancement - Create file via web: [#3995](https://github.com/owncloud/android/issues/3995) +* Enhancement - Updated WebFinger flow: [#3998](https://github.com/owncloud/android/issues/3998) +* Enhancement - Monochrome icon for the app: [#4001](https://github.com/owncloud/android/pull/4001) +* Enhancement - Add prompt parameter to OIDC flow: [#4011](https://github.com/owncloud/android/pull/4011) +* Enhancement - New setting "Access document provider": [#4032](https://github.com/owncloud/android/pull/4032) + +## Details + +* Security - Make ShareActivity not-exported: [#4038](https://github.com/owncloud/android/pull/4038) + + ShareActivity was made not-exported in the manifest since this property is only + needed for those activities that need to be launched from other external apps, + which is not the case. + + https://github.com/owncloud/android/pull/4038 + +* Bugfix - Error message for protocol exception: [#3948](https://github.com/owncloud/android/issues/3948) + + Previously, when the network connection is lost while uploading a file, "Unknown + error" was shown. Now, we show a more specific error. + + https://github.com/owncloud/android/issues/3948 + https://github.com/owncloud/android/pull/4013 + https://github.com/owncloud/android-library/pull/558 + +* Bugfix - Incorrect list of files in av. offline when browsing from details: [#3986](https://github.com/owncloud/android/issues/3986) + + When opening the details view of a file accessed from the available offline + shortcut, browsing back led to a incorrect list of files. Now, browsing back + leads to the list of available offline files again. + + https://github.com/owncloud/android/issues/3986 + https://github.com/owncloud/android/pull/4026 + +* Change - Bump target SDK to 33: [#3617](https://github.com/owncloud/android/issues/3617) + + Target SDK was upgraded to 33 to keep the app updated with the latest android + changes. A new setting was introduced to manage notifications in an easier way. + + https://github.com/owncloud/android/issues/3617 + https://github.com/owncloud/android/pull/3972 + https://developer.android.com/about/versions/13/behavior-changes-13 + +* Change - Use ViewBinding in FolderPickerActivity: [#3796](https://github.com/owncloud/android/issues/3796) + + The use of findViewById method was replaced by using ViewBinding in the + FolderPickerActivity. + + https://github.com/owncloud/android/issues/3796 + https://github.com/owncloud/android/pull/4014 + +* Change - Use ViewBinding in WhatsNewActivity: [#3796](https://github.com/owncloud/android/issues/3796) + + The use of findViewById method was replaced by using ViewBinding in the + WhatsNewActivity. + + https://github.com/owncloud/android/issues/3796 + https://github.com/owncloud/android/pull/4021 + +* Enhancement - Support for Markdown files: [#3716](https://github.com/owncloud/android/issues/3716) + + Markdown files preview will now be rendered to show its content in a prettier + way. + + https://github.com/owncloud/android/issues/3716 + https://github.com/owncloud/android/pull/4017 + +* Enhancement - Support for spaces: [#3851](https://github.com/owncloud/android/pull/3851) + + Spaces are now supported in oCIS accounts. A new tab has been added, which + allows to list and browse through all the available spaces for the current + account. The supported operations for files in spaces are: download, upload, + remove, rename, create folder, copy and move. The documents provider has been + adapted as well to be able to browse through spaces and perform the operations + already mentioned. + + https://github.com/owncloud/android/pull/3851 + +* Enhancement - Update label on Camera Uploads: [#3930](https://github.com/owncloud/android/pull/3930) + + Update label on camera uploads to avoid confusions with the behavior of original + files. Now, it is clear that original files will be removed. + + https://github.com/owncloud/android/pull/3930 + +* Enhancement - Authenticated WebFinger: [#3943](https://github.com/owncloud/android/issues/3943) + + Authenticated WebFinger was introduced into the authentication flow. Now, + WebFinger is used to retrieve the OpenID Connect issuer and the available + ownCloud instances. For the moment, multiple oC instances are not supported, + only the first available instance is used. + + https://github.com/owncloud/android/issues/3943 + https://github.com/owncloud/android/pull/3945 + https://doc.owncloud.com/ocis/next/deployment/services/s-list/webfinger.html + +* Enhancement - Link in drawer menu: [#3949](https://github.com/owncloud/android/pull/3949) + + Customers will be able now to set a personalized label and link that will appear + in the drawer menu, together with the drawer logo as an icon. + + https://github.com/owncloud/android/issues/3907 + https://github.com/owncloud/android/pull/3949 + +* Enhancement - Send language header in all requests: [#3980](https://github.com/owncloud/android/issues/3980) + + Added Accept-Language header to all requests so the android App can receive + translated content. + + https://github.com/owncloud/android/issues/3980 + https://github.com/owncloud/android/pull/3982 + https://github.com/owncloud/android-library/pull/551 + +* Enhancement - Open in specific web provider: [#3994](https://github.com/owncloud/android/issues/3994) + + We've added the specific web app providers instead of opening the file with the + default web provider. + + The user can open their files with any of the available specific web app + providers from the server. Previously, file was opened with the default one. + + https://github.com/owncloud/android/issues/3994 + https://github.com/owncloud/android/pull/3990 + https://owncloud.dev/services/app-registry/apps/#app-registry + +* Enhancement - Create file via web: [#3995](https://github.com/owncloud/android/issues/3995) + + A new option has been added in the FAB to create new files, for those servers + which support this option and have available app providers that allow the + creation of new files. + + https://github.com/owncloud/android/issues/3995 + https://github.com/owncloud/android/pull/4023 + https://github.com/owncloud/android-library/pull/562 + +* Enhancement - Updated WebFinger flow: [#3998](https://github.com/owncloud/android/issues/3998) + + WebFinger call won't follow redirections. WebFinger will be requested first and + will skip status.php in case it's successful, and in case the lookup server is + not directly accessible, we will continue the authentication flow with the + regular status.php. + + https://github.com/owncloud/android/issues/3998 + https://github.com/owncloud/android/pull/4000 + https://github.com/owncloud/android-library/pull/555 + +* Enhancement - Monochrome icon for the app: [#4001](https://github.com/owncloud/android/pull/4001) + + From Android 13, if the user has enabled themed app icons in their device + settings, the app will be shown with a monochrome icon. + + https://github.com/owncloud/android/pull/4001 + +* Enhancement - Add prompt parameter to OIDC flow: [#4011](https://github.com/owncloud/android/pull/4011) + + Added prompt parameter to the authorization request in case OIDC is supported. + By default, select_account will be sent. It can be changed via branding or MDM. + + https://github.com/owncloud/android/issues/3862 + https://github.com/owncloud/android/issues/3984 + https://github.com/owncloud/android/pull/4011 + +* Enhancement - New setting "Access document provider": [#4032](https://github.com/owncloud/android/pull/4032) + + A new setting has been added in the "More" settings section with a suggested app + to access the document provider. + + https://github.com/owncloud/android/issues/4028 + https://github.com/owncloud/android/pull/4032 + +# Changelog for ownCloud Android Client [3.0.4] (2023-03-07) + +The following sections list the changes in ownCloud Android Client 3.0.4 relevant to +ownCloud admins and users. + +[3.0.4]: https://github.com/owncloud/android/compare/v3.0.3...v3.0.4 + +## Summary + +* Security - Fix for security issues with database: [#3952](https://github.com/owncloud/android/pull/3952) +* Enhancement - HTTP logs show more info: [#547](https://github.com/owncloud/android-library/pull/547) + +## Details + +* Security - Fix for security issues with database: [#3952](https://github.com/owncloud/android/pull/3952) + + Some fixes have been added so that now no part of the app's database can be + accessed from other apps. + + https://github.com/owncloud/android/pull/3952 + +* Enhancement - HTTP logs show more info: [#547](https://github.com/owncloud/android-library/pull/547) + + When enabling HTTP logs, now the URL for each log will be shown as well to make + debugging easier. + + https://github.com/owncloud/android-library/pull/547 + +# Changelog for ownCloud Android Client [3.0.3] (2023-02-13) + +The following sections list the changes in ownCloud Android Client 3.0.3 relevant to +ownCloud admins and users. + +[3.0.3]: https://github.com/owncloud/android/compare/v3.0.2...v3.0.3 + +## Summary + +* Bugfix - Error messages too long in folders operation: [#3852](https://github.com/owncloud/android/pull/3852) +* Bugfix - Fix problems after authentication: [#3889](https://github.com/owncloud/android/pull/3889) +* Bugfix - Toolbar in file details view: [#3899](https://github.com/owncloud/android/pull/3899) + +## Details + +* Bugfix - Error messages too long in folders operation: [#3852](https://github.com/owncloud/android/pull/3852) + + Error messages when trying to perform a non-allowed action for copying and + moving folders have been shortened so that they are shown completely in the + snackbar. + + https://github.com/owncloud/android/issues/3820 + https://github.com/owncloud/android/pull/3852 + +* Bugfix - Fix problems after authentication: [#3889](https://github.com/owncloud/android/pull/3889) + + Client for session are now fetched on demand to avoid reinitialize DI, making + the process smoother + + https://github.com/owncloud/android/pull/3889 + +* Bugfix - Toolbar in file details view: [#3899](https://github.com/owncloud/android/pull/3899) + + When returning from the share screen to details screen, the toolbar didn't show + the correct options and title. Now it does. + + https://github.com/owncloud/android/issues/3866 + https://github.com/owncloud/android/pull/3899 + +# Changelog for ownCloud Android Client [3.0.2] (2023-01-26) + +The following sections list the changes in ownCloud Android Client 3.0.2 relevant to +ownCloud admins and users. + +[3.0.2]: https://github.com/owncloud/android/compare/v3.0.1...v3.0.2 + +## Summary + +* Bugfix - Fix reauthentication prompt: [#534](https://github.com/owncloud/android-library/pull/534) +* Enhancement - Branded scope for OpenID Connect: [#3869](https://github.com/owncloud/android/pull/3869) + +## Details + +* Bugfix - Fix reauthentication prompt: [#534](https://github.com/owncloud/android-library/pull/534) + + Potential fix to oauth error after logging in for first time that makes user to + reauthenticate + + https://github.com/owncloud/android-library/pull/534 + +* Enhancement - Branded scope for OpenID Connect: [#3869](https://github.com/owncloud/android/pull/3869) + + OpenID Connect scope is now brandable via setup.xml file or MDM + + https://github.com/owncloud/android/pull/3869 + +# Changelog for ownCloud Android Client [3.0.1] (2022-12-21) + +The following sections list the changes in ownCloud Android Client 3.0.1 relevant to +ownCloud admins and users. + +[3.0.1]: https://github.com/owncloud/android/compare/v3.0.0...v3.0.1 + +## Summary + +* Bugfix - Fix crash when upgrading from 2.18: [#3837](https://github.com/owncloud/android/pull/3837) +* Bugfix - Fix crash when opening uploads section: [#3841](https://github.com/owncloud/android/pull/3841) + +## Details + +* Bugfix - Fix crash when upgrading from 2.18: [#3837](https://github.com/owncloud/android/pull/3837) + + Upgrading from 2.18 or older versions made the app crash due to camera uploads + data migration. This problem has been solved and now the app upgrades correctly. + + https://github.com/owncloud/android/pull/3837 + +* Bugfix - Fix crash when opening uploads section: [#3841](https://github.com/owncloud/android/pull/3841) + + When upgrading from an old version with uploads with "forget" behaviour, app + crashed when opening the uploads tab. Now, this has been fixed so that it works + correctly. + + https://github.com/owncloud/android/pull/3841 + +# Changelog for ownCloud Android Client [3.0.0] (2022-12-12) + +The following sections list the changes in ownCloud Android Client 3.0.0 relevant to +ownCloud admins and users. + +[3.0.0]: https://github.com/owncloud/android/compare/v2.21.2...v3.0.0 + +## Summary + +* Bugfix - Fix for thumbnails: [#3719](https://github.com/owncloud/android/pull/3719) +* Enhancement - Sync engine rewritten: [#2934](https://github.com/owncloud/android/pull/2934) +* Enhancement - Faster browser authentication: [#3632](https://github.com/owncloud/android/pull/3632) +* Enhancement - Several transfers running simultaneously: [#3710](https://github.com/owncloud/android/pull/3710) +* Enhancement - Empty views improved: [#3728](https://github.com/owncloud/android/pull/3728) +* Enhancement - Automatic conflicts propagation: [#3766](https://github.com/owncloud/android/pull/3766) + +## Details + +* Bugfix - Fix for thumbnails: [#3719](https://github.com/owncloud/android/pull/3719) + + Some thumbnails were not shown in the file list. Now, they are all shown + correctly. + + https://github.com/owncloud/android/issues/2818 + https://github.com/owncloud/android/pull/3719 + +* Enhancement - Sync engine rewritten: [#2934](https://github.com/owncloud/android/pull/2934) + + The whole synchronization engine has been refactored to a new architecture to + make it better structured and more efficient. + + https://github.com/owncloud/android/issues/2818 + https://github.com/owncloud/android/pull/2934 + +* Enhancement - Faster browser authentication: [#3632](https://github.com/owncloud/android/pull/3632) + + Login flow has been improved by saving a click when the server is OAuth2/OIDC + and it is valid. Also, when authenticating again in a OAuth2/OIDC account + already saved in the app, the username is already shown in the browser. + + https://github.com/owncloud/android/issues/3759 + https://github.com/owncloud/android/pull/3632 + +* Enhancement - Several transfers running simultaneously: [#3710](https://github.com/owncloud/android/pull/3710) + + With the sync engine refactor, now several downloads and uploads can run at the + same time, improving efficiency. + + https://github.com/owncloud/android/issues/3426 + https://github.com/owncloud/android/pull/3710 + +* Enhancement - Empty views improved: [#3728](https://github.com/owncloud/android/pull/3728) + + When the list of items is empty, we now show a more attractive view. This + applies to file list, available offline list, shared by link list, uploads list, + logs list and external share list. + + https://github.com/owncloud/android/issues/3026 + https://github.com/owncloud/android/pull/3728 + +* Enhancement - Automatic conflicts propagation: [#3766](https://github.com/owncloud/android/pull/3766) + + Conflicts are now propagated automatically to parent folders, and cleaned when + solved or removed. Before, it was needed to navigate to the file location for + the conflict to propagate. Also, move, copy and remove actions work properly + with conflicts. + + https://github.com/owncloud/android/issues/3005 + https://github.com/owncloud/android/pull/3766 + +# Changelog for ownCloud Android Client [2.21.2] (2022-09-07) + +The following sections list the changes in ownCloud Android Client 2.21.2 relevant to +ownCloud admins and users. + +[2.21.2]: https://github.com/owncloud/android/compare/v2.21.1...v2.21.2 + +## Summary + +* Enhancement - Open in web: [#3672](https://github.com/owncloud/android/issues/3672) +* Enhancement - Shares from propfind: [#3711](https://github.com/owncloud/android/issues/3711) +* Enhancement - Private link capability: [#3732](https://github.com/owncloud/android/issues/3732) + +## Details + +* Enhancement - Open in web: [#3672](https://github.com/owncloud/android/issues/3672) + + OCIS feature, to open files with mime types supported by the server in the web + browser using collaborative or specific tools + + https://github.com/owncloud/android/issues/3672 + https://github.com/owncloud/android/pull/3737 + +* Enhancement - Shares from propfind: [#3711](https://github.com/owncloud/android/issues/3711) + + Added a new property to the propfind, so that, we can get if the files in a + folder are shared directly with just one request. Previously, a propfind and + another additional request were needed to the shares api to retrieve the shares + of the folder. + + https://github.com/owncloud/android/issues/3711 + https://github.com/owncloud/android-library/pull/496 + +* Enhancement - Private link capability: [#3732](https://github.com/owncloud/android/issues/3732) + + Private link capability is now respected. Option is shown/hidden depending on + its value + + https://github.com/owncloud/android/issues/3732 + https://github.com/owncloud/android/pull/3738 + https://github.com/owncloud/android-library/pull/505 + +# Changelog for ownCloud Android Client [2.21.1] (2022-06-15) + +The following sections list the changes in ownCloud Android Client 2.21.1 relevant to +ownCloud admins and users. + +[2.21.1]: https://github.com/owncloud/android/compare/v2.21.0...v2.21.1 + +## Summary + +* Bugfix - Fix crash when opening from details screen: [#3696](https://github.com/owncloud/android/pull/3696) + +## Details + +* Bugfix - Fix crash when opening from details screen: [#3696](https://github.com/owncloud/android/pull/3696) + + Fixed a crash when opening a non downloaded file from the details view. + + https://github.com/owncloud/android/pull/3696 + +# Changelog for ownCloud Android Client [2.21.0] (2022-06-07) + +The following sections list the changes in ownCloud Android Client 2.21.0 relevant to +ownCloud admins and users. + +[2.21.0]: https://github.com/owncloud/android/compare/v2.20.0...v2.21.0 + +## Summary + +* Bugfix - Prevented signed in user in the list of users to be shared: [#1419](https://github.com/owncloud/android/issues/1419) +* Bugfix - Corrupt picture error controlled: [#3441](https://github.com/owncloud/android/issues/3441) +* Bugfix - Security flags for recording screen: [#3468](https://github.com/owncloud/android/issues/3468) +* Bugfix - Crash when changing orientation in Details view: [#3571](https://github.com/owncloud/android/issues/3571) +* Bugfix - Lock displays shown again: [#3591](https://github.com/owncloud/android/issues/3591) +* Enhancement - Support for SVG files added: [#1033](https://github.com/owncloud/android/issues/1033) +* Enhancement - Full name is shown in shares: [#1106](https://github.com/owncloud/android/issues/1106) +* Enhancement - Improved copy/move dialog: [#1414](https://github.com/owncloud/android/issues/1414) +* Enhancement - Share a folder from within the folder: [#1441](https://github.com/owncloud/android/issues/1441) +* Enhancement - New option to show or not hidden files: [#2578](https://github.com/owncloud/android/issues/2578) +* Enhancement - What´s new option: [#3352](https://github.com/owncloud/android/issues/3352) +* Enhancement - First steps in Android Enterprise integration: [#3415](https://github.com/owncloud/android/issues/3415) +* Enhancement - Provide app feedback to MDM admins: [#3420](https://github.com/owncloud/android/issues/3420) +* Enhancement - Lock delay enforced: [#3440](https://github.com/owncloud/android/issues/3440) +* Enhancement - Release Notes: [#3442](https://github.com/owncloud/android/issues/3442) +* Enhancement - Send for file multiselect: [#3491](https://github.com/owncloud/android/issues/3491) +* Enhancement - Improvements for the UI in the passcode screen: [#3516](https://github.com/owncloud/android/issues/3516) +* Enhancement - Extended security enforced: [#3543](https://github.com/owncloud/android/issues/3543) +* Enhancement - Improvements for the UI in the pattern screen: [#3580](https://github.com/owncloud/android/issues/3580) +* Enhancement - Prevent taking screenshots: [#3596](https://github.com/owncloud/android/issues/3596) +* Enhancement - Option to allow screenshots or not in Android Enterprise: [#3625](https://github.com/owncloud/android/issues/3625) +* Enhancement - Thumbnail click action in file detail: [#3653](https://github.com/owncloud/android/pull/3653) + +## Details + +* Bugfix - Prevented signed in user in the list of users to be shared: [#1419](https://github.com/owncloud/android/issues/1419) + + Previously, user list for sharing contains signed in user, now this user is + omitted to avoid errors. + + https://github.com/owncloud/android/issues/1419 + https://github.com/owncloud/android/pull/3643 + +* Bugfix - Corrupt picture error controlled: [#3441](https://github.com/owncloud/android/issues/3441) + + Previously, If a file is not correct or is damaged, it is downloaded but not + previewed. An infinite spinner on a black window is shown instead. Now, an error + appears warning to the user. + + https://github.com/owncloud/android/issues/3441 + https://github.com/owncloud/android/pull/3644 + +* Bugfix - Security flags for recording screen: [#3468](https://github.com/owncloud/android/issues/3468) + + Previously, if passcode or pattern were enabled, no screen from the app could be + viewed from a recording screen app. Now, only the login, passcode and pattern + screens are protected against recording. + + https://github.com/owncloud/android/issues/3468 + https://github.com/owncloud/android/pull/3560 + +* Bugfix - Crash when changing orientation in Details view: [#3571](https://github.com/owncloud/android/issues/3571) + + Previously, the app crashes when changing orientation in Details view after + installing Now, app shows correctly the details after installing. + + https://github.com/owncloud/android/issues/3571 + https://github.com/owncloud/android/pull/3589 + +* Bugfix - Lock displays shown again: [#3591](https://github.com/owncloud/android/issues/3591) + + Previously, if you clicked on passcode or pattern lock to remove it, and then + you clicked on cancel, the lock display was shown again to put the passcode or + pattern. Now, if you cancel it, you come back to settings screen. + + https://github.com/owncloud/android/issues/3591 + https://github.com/owncloud/android/pull/3592 + +* Enhancement - Support for SVG files added: [#1033](https://github.com/owncloud/android/issues/1033) + + SVG files are supported and can be downloaded and viewed. + + https://github.com/owncloud/android/issues/1033 + https://github.com/owncloud/android/pull/3639 + +* Enhancement - Full name is shown in shares: [#1106](https://github.com/owncloud/android/issues/1106) + + Full name is shown when using public share instead of username. + + https://github.com/owncloud/android/issues/1106 + https://github.com/owncloud/android/pull/3636 + +* Enhancement - Improved copy/move dialog: [#1414](https://github.com/owncloud/android/issues/1414) + + Previously,they appeared exactly the same and there was no way of knowing which + was which. Now they are differentiated by the text on the action button. + + https://github.com/owncloud/android/issues/1414 + https://github.com/owncloud/android/pull/3640 + +* Enhancement - Share a folder from within the folder: [#1441](https://github.com/owncloud/android/issues/1441) + + You can share a folder clicking in the share icon inside the folder. + + https://github.com/owncloud/android/issues/1441 + https://github.com/owncloud/android/pull/3659 + +* Enhancement - New option to show or not hidden files: [#2578](https://github.com/owncloud/android/issues/2578) + + Enable it to show hidden files and folders + + https://github.com/owncloud/android/issues/2578 + https://github.com/owncloud/android/pull/3624 + +* Enhancement - What´s new option: [#3352](https://github.com/owncloud/android/issues/3352) + + New option to check what was included in the latest version. + + https://github.com/owncloud/android/issues/3352 + https://github.com/owncloud/android/pull/3616 + +* Enhancement - First steps in Android Enterprise integration: [#3415](https://github.com/owncloud/android/issues/3415) + + Two parameters (server url and server url input visibility) can be now managed + via MDM. These were the first parameters used to test integration with Android + Enterprise and Android Management API. + + https://github.com/owncloud/android/issues/3415 + https://github.com/owncloud/android/pull/3419 + +* Enhancement - Provide app feedback to MDM admins: [#3420](https://github.com/owncloud/android/issues/3420) + + Now, when a MDM configuration is applied for the first time or changed by an IT + administrator, the app sends feedback that will be shown in the EMM console. + + https://github.com/owncloud/android/issues/3420 + https://github.com/owncloud/android/pull/3480 + +* Enhancement - Lock delay enforced: [#3440](https://github.com/owncloud/android/issues/3440) + + A new local setup's option has been added for the application to lock after the + selected interval + + https://github.com/owncloud/android/issues/3440 + https://github.com/owncloud/android/pull/3547 + +* Enhancement - Release Notes: [#3442](https://github.com/owncloud/android/issues/3442) + + New release notes to show news in updates. + + https://github.com/owncloud/android/issues/3442 + https://github.com/owncloud/android/pull/3594 + +* Enhancement - Send for file multiselect: [#3491](https://github.com/owncloud/android/issues/3491) + + Send multiple files at once if they are downloaded. + + https://github.com/owncloud/android/issues/3491 + https://github.com/owncloud/android/pull/3638 + +* Enhancement - Improvements for the UI in the passcode screen: [#3516](https://github.com/owncloud/android/issues/3516) + + Redesign of the passcode screen to have the numeric keyboard in the screen + instead of using the Android one. + + https://github.com/owncloud/android/issues/3516 + https://github.com/owncloud/android/pull/3582 + +* Enhancement - Extended security enforced: [#3543](https://github.com/owncloud/android/issues/3543) + + New extended branding options have been added to make app lock via passcode or + pattern compulsory. + + https://github.com/owncloud/android/issues/3543 + https://github.com/owncloud/android/pull/3544 + +* Enhancement - Improvements for the UI in the pattern screen: [#3580](https://github.com/owncloud/android/issues/3580) + + Redesign of the pattern screen. Cancel button deleted and new back arrow in the + toolbar. + + https://github.com/owncloud/android/issues/3580 + https://github.com/owncloud/android/pull/3587 + +* Enhancement - Prevent taking screenshots: [#3596](https://github.com/owncloud/android/issues/3596) + + New option to prevent taking screenshots. + + https://github.com/owncloud/android/issues/3596 + https://github.com/owncloud/android/pull/3615 + +* Enhancement - Option to allow screenshots or not in Android Enterprise: [#3625](https://github.com/owncloud/android/issues/3625) + + New parameter to manage screenshots can be configured via MDM. + + https://github.com/owncloud/android/issues/3625 + https://github.com/owncloud/android/pull/3627 + +* Enhancement - Thumbnail click action in file detail: [#3653](https://github.com/owncloud/android/pull/3653) + + When a user clicks on a file's detail view thumbnail, the file is automatically + downloaded and previewed. + + https://github.com/owncloud/android/pull/3653 + +# Changelog for ownCloud Android Client [2.20.0] (2022-02-16) + +The following sections list the changes in ownCloud Android Client 2.20.0 relevant to +ownCloud admins and users. + +[2.20.0]: https://github.com/owncloud/android/compare/v2.19.0...v2.20.0 + +## Summary + +* Bugfix - Small glitch when side menu is full of accounts: [#3437](https://github.com/owncloud/android/pull/3437) +* Bugfix - Small bug when privacy policy disabled: [#3542](https://github.com/owncloud/android/pull/3542) +* Enhancement - Permission dialog removal: [#2524](https://github.com/owncloud/android/pull/2524) +* Enhancement - Brute force protection: [#3320](https://github.com/owncloud/android/issues/3320) +* Enhancement - Lock delay for app: [#3344](https://github.com/owncloud/android/issues/3344) +* Enhancement - Allow access from document provider preference: [#3379](https://github.com/owncloud/android/issues/3379) +* Enhancement - Security enforced: [#3434](https://github.com/owncloud/android/pull/3434) +* Enhancement - Respect capability for Avatar support: [#3438](https://github.com/owncloud/android/pull/3438) +* Enhancement - "Open with" action now allows editing: [#3475](https://github.com/owncloud/android/issues/3475) +* Enhancement - Enable logs by default in debug mode: [#3526](https://github.com/owncloud/android/issues/3526) +* Enhancement - Suggest the user to enable enhanced security: [#3539](https://github.com/owncloud/android/pull/3539) + +## Details + +* Bugfix - Small glitch when side menu is full of accounts: [#3437](https://github.com/owncloud/android/pull/3437) + + Previously, when users set up a large number of accounts, the side menu + overlapped the available space quota. Now, everything is contained within a + scroll to avoid this. + + https://github.com/owncloud/android/issues/3060 + https://github.com/owncloud/android/pull/3437 + +* Bugfix - Small bug when privacy policy disabled: [#3542](https://github.com/owncloud/android/pull/3542) + + Previously, when privacy policy setup was disabled, the side menu showed the + privacy policy menu item. Now, option is hidden when privacy policy is disabled. + + https://github.com/owncloud/android/issues/3521 + https://github.com/owncloud/android/pull/3542 + +* Enhancement - Permission dialog removal: [#2524](https://github.com/owncloud/android/pull/2524) + + The old permission request dialog has been removed. It was not needed after + migrating the storage to scoped storage, read and write permissions are + guaranteed in our scoped storage. + + https://github.com/owncloud/android/pull/2524 + +* Enhancement - Brute force protection: [#3320](https://github.com/owncloud/android/issues/3320) + + Previously, when setting passcode lock, an unlimited number of attempts to + unlock the app could be done in a row. Now, from the third incorrect attempt, + there will be an exponential growing waiting time until next unlock attempt. + + https://github.com/owncloud/android/issues/3320 + https://github.com/owncloud/android/pull/3463 + +* Enhancement - Lock delay for app: [#3344](https://github.com/owncloud/android/issues/3344) + + A new preference has been added to choose the interval in which the app will be + unlocked after having unlocked it once, making it more comfortable for those who + access the app frequently and have a security lock set. + + https://github.com/owncloud/android/issues/3344 + https://github.com/owncloud/android/pull/3375 + +* Enhancement - Allow access from document provider preference: [#3379](https://github.com/owncloud/android/issues/3379) + + Previously, files of ownCloud accounts couldn't be accessed via documents + provider when there was a lock set in the app. Now, a new preference has been + added to allow/disallow the access, so users have more control over their files. + + https://github.com/owncloud/android/issues/3379 + https://github.com/owncloud/android/issues/3520 + https://github.com/owncloud/android/pull/3384 + https://github.com/owncloud/android/pull/3538 + +* Enhancement - Security enforced: [#3434](https://github.com/owncloud/android/pull/3434) + + A new branding/MDM option has been added to make app lock via passcode or + pattern compulsory, whichever the user chooses. + + https://github.com/owncloud/android/issues/3400 + https://github.com/owncloud/android/pull/3434 + +* Enhancement - Respect capability for Avatar support: [#3438](https://github.com/owncloud/android/pull/3438) + + Previously, the user's avatar was shown by default. Now, it is shown or not + depending on a new capability. + + https://github.com/owncloud/android/issues/3285 + https://github.com/owncloud/android/pull/3438 + +* Enhancement - "Open with" action now allows editing: [#3475](https://github.com/owncloud/android/issues/3475) + + Previously, when a document file was opened and edited with an external app, + changes weren't saved because it didn't synchronized with the server. Now, when + you edit a document and navigate or refresh in the ownCloud app, it synchronizes + automatically, keeping consistence of your files. + + https://github.com/owncloud/android/issues/3475 + https://github.com/owncloud/android/pull/3499 + +* Enhancement - Enable logs by default in debug mode: [#3526](https://github.com/owncloud/android/issues/3526) + + Now, when the app is built in DEBUG mode, the logs are enabled by default. + + https://github.com/owncloud/android/issues/3526 + https://github.com/owncloud/android/pull/3527 + +* Enhancement - Suggest the user to enable enhanced security: [#3539](https://github.com/owncloud/android/pull/3539) + + When a user sets the passcode or pattern lock on the security screen, the + application suggests the user whether to enable or not a biometric lock to + unlock the application. + + https://github.com/owncloud/android/pull/3539 + +# Changelog for ownCloud Android Client [2.19.0] (2021-11-15) + +The following sections list the changes in ownCloud Android Client 2.19.0 relevant to +ownCloud admins and users. + +[2.19.0]: https://github.com/owncloud/android/compare/v2.18.3...v2.19.0 + +## Summary + +* Bugfix - Crash in FileDataStorageManager: [#2896](https://github.com/owncloud/android/issues/2896) +* Bugfix - Account removed is not removed from the drawer: [#3340](https://github.com/owncloud/android/issues/3340) +* Bugfix - Passcode input misbehaving: [#3342](https://github.com/owncloud/android/issues/3342) +* Bugfix - Lack of back button in Logs view: [#3357](https://github.com/owncloud/android/issues/3357) +* Bugfix - ANR after removing account with too many downloaded files: [#3362](https://github.com/owncloud/android/issues/3362) +* Bugfix - Camera Upload manual retry: [#3418](https://github.com/owncloud/android/pull/3418) +* Bugfix - Device rotation moves to root in folder picker: [#3431](https://github.com/owncloud/android/pull/3431) +* Bugfix - Logging does not stop when the user deactivates it: [#3436](https://github.com/owncloud/android/pull/3436) +* Enhancement - Instant upload only when charging: [#465](https://github.com/owncloud/android/issues/465) +* Enhancement - Scoped Storage: [#2877](https://github.com/owncloud/android/issues/2877) +* Enhancement - Delete old logs every week: [#3328](https://github.com/owncloud/android/issues/3328) +* Enhancement - New Logging Screen 2.0: [#3333](https://github.com/owncloud/android/issues/3333) +* Enhancement - Delete old user directories in order to free memory: [#3336](https://github.com/owncloud/android/pull/3336) + +## Details + +* Bugfix - Crash in FileDataStorageManager: [#2896](https://github.com/owncloud/android/issues/2896) + + A possible null value with the account that caused certain crashes on Android 10 + devices has been controlled. + + https://github.com/owncloud/android/issues/2896 + https://github.com/owncloud/android/pull/3383 + +* Bugfix - Account removed is not removed from the drawer: [#3340](https://github.com/owncloud/android/issues/3340) + + When an account was deleted from the device settings, in the accounts section, + it was not removed from the Navigation Drawer. Now, when deleting an account + from there, the Navigation Drawer is refreshed and the removed account is no + more shown. + + https://github.com/owncloud/android/issues/3340 + https://github.com/owncloud/android/pull/3381 + +* Bugfix - Passcode input misbehaving: [#3342](https://github.com/owncloud/android/issues/3342) + + Passcode text fields have been made not selectable once a number is written on + them, so that we avoid bugs with the digits of the passcode and the way of + entering them. + + https://github.com/owncloud/android/issues/3342 + https://github.com/owncloud/android/pull/3365 + +* Bugfix - Lack of back button in Logs view: [#3357](https://github.com/owncloud/android/issues/3357) + + A new back arrow button has been added in the toolbar in Logs screen, so that + now it's possible to return to the settings screen without the use of physical + buttons of the device. + + https://github.com/owncloud/android/issues/3357 + https://github.com/owncloud/android/pull/3363 + +* Bugfix - ANR after removing account with too many downloaded files: [#3362](https://github.com/owncloud/android/issues/3362) + + Previously, when a user account was deleted, the application could freeze when + trying to delete a large number of files. Now, the application has been fixed so + that it doesn't freeze anymore by doing this. + + https://github.com/owncloud/android/issues/3362 + https://github.com/owncloud/android/pull/3380 + +* Bugfix - Camera Upload manual retry: [#3418](https://github.com/owncloud/android/pull/3418) + + Previously, when users selected to retry a single camera upload, an error + message appeared. Now, the retry of a single upload is enqueued again as + expected. + + https://github.com/owncloud/android/issues/3417 + https://github.com/owncloud/android/pull/3418 + +* Bugfix - Device rotation moves to root in folder picker: [#3431](https://github.com/owncloud/android/pull/3431) + + Previously, when users rotate the device trying to share photos with oC + selecting a non-root folder, folder picker shows the root folder Now, folder + picker shows the folder that the user browsed. + + https://github.com/owncloud/android/issues/3163 + https://github.com/owncloud/android/pull/3431 + +* Bugfix - Logging does not stop when the user deactivates it: [#3436](https://github.com/owncloud/android/pull/3436) + + Previously, when users disabled the logging option in the settings, the + application would not stop logging and the size of the log files would increase. + Now, the option to disable it works perfectly and no logs are collected if + disabled. + + https://github.com/owncloud/android/issues/3325 + https://github.com/owncloud/android/pull/3436 + +* Enhancement - Instant upload only when charging: [#465](https://github.com/owncloud/android/issues/465) + + A new option has been added in the auto upload pictures/videos screen, so that + now it's possible to upload pictures or videos only when charging. + + https://github.com/owncloud/android/issues/465 + https://github.com/owncloud/android/issues/3315 + https://github.com/owncloud/android/pull/3385 + +* Enhancement - Scoped Storage: [#2877](https://github.com/owncloud/android/issues/2877) + + The way to store files in the device has changed completely. Previously, the + files were stored in the shared storage. That means that apps that had access to + the shared storage, could read, write or do whatever they wanted with the + ownCloud files. + + Now, ownCloud files are stored in the Scoped Storage, so they are safer. Other + apps can access ownCloud files using the Documents Provider, which is the native + way to do it, and that means that the ownCloud app has full control of its + files. + + Furthermore, if the app is removed, the files downloaded to ownCloud are removed + too. So, files are not lost or forgotten in the device after uninstalling the + app. + + https://github.com/owncloud/android/issues/2877 + https://github.com/owncloud/android/pull/3269 + +* Enhancement - Delete old logs every week: [#3328](https://github.com/owncloud/android/issues/3328) + + Previously, logs were stored but never deleted. It used a lot of storage when + logs were enabled for some time. Now, the logs are removed periodically every + week. + + https://github.com/owncloud/android/issues/3328 + https://github.com/owncloud/android/pull/3337 + +* Enhancement - New Logging Screen 2.0: [#3333](https://github.com/owncloud/android/issues/3333) + + A new option has been added to the logging screen, so that now it's possible to + share/delete log files or open them. + + https://github.com/owncloud/android/issues/3333 + https://github.com/owncloud/android/pull/3408 + +* Enhancement - Delete old user directories in order to free memory: [#3336](https://github.com/owncloud/android/pull/3336) + + Previously, when users deleted an account the synchronized files of this account + stayed on the SD-Card. So if the user didn't want them anymore he had to delete + them manually. Now, the app automatically removes the files associated with an + account. + + https://github.com/owncloud/android/issues/125 + https://github.com/owncloud/android/pull/3336 + +# Changelog for ownCloud Android Client [2.18.3] (2021-10-27) + +The following sections list the changes in ownCloud Android Client 2.18.3 relevant to +ownCloud admins and users. + +[2.18.3]: https://github.com/owncloud/android/compare/v2.18.1...v2.18.3 + +## Summary + +* Enhancement - Privacy policy button more accessible: [#3423](https://github.com/owncloud/android/pull/3423) + +## Details + +* Enhancement - Privacy policy button more accessible: [#3423](https://github.com/owncloud/android/pull/3423) + + The privacy policy button has been removed from "More" settings section, and it + has been added to general settings screen as well as to the drawer menu, so that + it is easier and more accessible for users. + + https://github.com/owncloud/android/issues/3422 + https://github.com/owncloud/android/pull/3423 + +# Changelog for ownCloud Android Client [2.18.1] (2021-07-20) + +The following sections list the changes in ownCloud Android Client 2.18.1 relevant to +ownCloud admins and users. + +[2.18.1]: https://github.com/owncloud/android/compare/v2.18.0...v2.18.1 + +## Summary + +* Security - Add PKCE support: [#3310](https://github.com/owncloud/android/pull/3310) +* Enhancement - Replace picker to select camera folder with native one: [#2899](https://github.com/owncloud/android/issues/2899) +* Enhancement - Hide "More" section if all options are disabled: [#3271](https://github.com/owncloud/android/issues/3271) +* Enhancement - Note icon in music player to be branded: [#3272](https://github.com/owncloud/android/issues/3272) + +## Details + +* Security - Add PKCE support: [#3310](https://github.com/owncloud/android/pull/3310) + + PKCE (Proof Key for Code Exchange) support defined in RFC-7636 was added to + prevent authorization code interception attacks. + + https://github.com/owncloud/android/pull/3310 + +* Enhancement - Replace picker to select camera folder with native one: [#2899](https://github.com/owncloud/android/issues/2899) + + The custom picker to select the camera folder was replaced with the native one. + Now, it is ready for scoped storage and some problems to select a folder in the + SD Card were fixed. Also, a new field to show the last synchronization timestamp + was added. + + https://github.com/owncloud/android/issues/2899 + https://github.com/owncloud/android/pull/3293 + +* Enhancement - Hide "More" section if all options are disabled: [#3271](https://github.com/owncloud/android/issues/3271) + + A blank view was shown when all options in "More" subsection were disabled. Now, + the subsection is only shown if at least one option is enabled. + + https://github.com/owncloud/android/issues/3271 + https://github.com/owncloud/android/pull/3296 + +* Enhancement - Note icon in music player to be branded: [#3272](https://github.com/owncloud/android/issues/3272) + + The note icon in the music player will have the same color as the toolbar, so + branded apps can have the icon tinted using their custom theme. + + https://github.com/owncloud/android/issues/3272 + https://github.com/owncloud/android/pull/3297 + +# Changelog for ownCloud Android Client [2.18.0] (2021-05-24) + +The following sections list the changes in ownCloud Android Client 2.18.0 relevant to +ownCloud admins and users. + + + +## Summary + +* Bugfix - Snackbar in passcode view is not displayed: [#2722](https://github.com/owncloud/android/issues/2722) +* Bugfix - Fixed problem when a file is edited externally: [#2752](https://github.com/owncloud/android/issues/2752) +* Bugfix - Fix navbar is visible in file preview screen after rotation: [#3184](https://github.com/owncloud/android/pull/3184) +* Bugfix - Fix a bug when some fields where not retrieved from OIDC Discovery: [#3202](https://github.com/owncloud/android/pull/3202) +* Bugfix - Fix permissions were displayed in share creation view after rotation: [#3204](https://github.com/owncloud/android/issues/3204) +* Change - Error handling for pattern lock: [#3215](https://github.com/owncloud/android/issues/3215) +* Change - Hide biometrical if device does not support it: [#3217](https://github.com/owncloud/android/issues/3217) +* Enhancement - Settings accessible even when no account is attached: [#2638](https://github.com/owncloud/android/issues/2638) +* Enhancement - Support for apk files: [#2691](https://github.com/owncloud/android/issues/2691) +* Enhancement - Move to AndroidX Preference and new structure for settings: [#2867](https://github.com/owncloud/android/issues/2867) +* Enhancement - Replace blank view in music player with cover art: [#3121](https://github.com/owncloud/android/issues/3121) +* Enhancement - Align previews actions: [#3155](https://github.com/owncloud/android/issues/3155) +* Enhancement - Fixed account for camera uploads: [#3166](https://github.com/owncloud/android/issues/3166) + +## Details + +* Bugfix - Snackbar in passcode view is not displayed: [#2722](https://github.com/owncloud/android/issues/2722) + + Snackbar telling about an error in a failed enter or reenter of the passcode + wasn't visible. Now, the message is shown in a text just below the passcode + input. + + https://github.com/owncloud/android/issues/2722 + https://github.com/owncloud/android/pull/3210 + +* Bugfix - Fixed problem when a file is edited externally: [#2752](https://github.com/owncloud/android/issues/2752) + + If an external editor modifies a file, the new size will not match when it is + assembled in server side. Fixed by removing the if-match header from the proper + place + + https://github.com/owncloud/android/issues/2752 + https://github.com/owncloud/android/pull/3220 + +* Bugfix - Fix navbar is visible in file preview screen after rotation: [#3184](https://github.com/owncloud/android/pull/3184) + + Glitch was fixed where the navigation bar became visible in a file preview + screen when rotating the device. + + https://github.com/owncloud/android/issues/3139 + https://github.com/owncloud/android/pull/3184 + +* Bugfix - Fix a bug when some fields where not retrieved from OIDC Discovery: [#3202](https://github.com/owncloud/android/pull/3202) + + Problem when requesting the OIDC discovery was fixed. Some fields were handled + as mandatory, but they are recommended according to the docs. It prevented from + a proper login. Now it is possible to login as expected when some fields are not + retrieved. + + https://github.com/owncloud/android/pull/3202 + https://github.com/owncloud/android-library/pull/392 + +* Bugfix - Fix permissions were displayed in share creation view after rotation: [#3204](https://github.com/owncloud/android/issues/3204) + + Permissions view was shown when creating a share for a file after rotation. + Capabilities were taken into account just once. Now, the permissions view is + shown only when capabilities match. + + https://github.com/owncloud/android/issues/3204 + https://github.com/owncloud/android/pull/3234 + +* Change - Error handling for pattern lock: [#3215](https://github.com/owncloud/android/issues/3215) + + Error messages when an incorrect pattern was entered were shown in a snackbar. + Now, they are displayed in a text below the pattern input, just like in the + passcode screen. + + https://github.com/owncloud/android/issues/3215 + https://github.com/owncloud/android/pull/3221 + +* Change - Hide biometrical if device does not support it: [#3217](https://github.com/owncloud/android/issues/3217) + + Biometric lock preference in "Security" settings subsection was shown even when + the device didn't support biometrics (if it was Android 6.0 or later versions). + Now, the preference is only shown if the device has the suitable hardware for + it. + + https://github.com/owncloud/android/issues/3217 + https://github.com/owncloud/android/pull/3230 + +* Enhancement - Settings accessible even when no account is attached: [#2638](https://github.com/owncloud/android/issues/2638) + + Now, settings can be accessed via a button in the login screen, removing the + necessity to have an attached account. However, auto picture and video uploads + won't be available until an account is registered in the app. + + https://github.com/owncloud/android/issues/2638 + https://github.com/owncloud/android/pull/3218 + +* Enhancement - Support for apk files: [#2691](https://github.com/owncloud/android/issues/2691) + + Apk files could be installed from the app after being downloaded. Installation + process will be triggered by the system. + + https://github.com/owncloud/android/issues/2691 + https://github.com/owncloud/android/pull/3156 + https://github.com/owncloud/android/pull/3162 + +* Enhancement - Move to AndroidX Preference and new structure for settings: [#2867](https://github.com/owncloud/android/issues/2867) + + Settings have been updated to use the current Android's recommendation, AndroidX + framework. In addition, they have been reorganized into subsections for a better + understanding and navigation structure. Also, new features have been added: now, + source path and behaviour in auto uploads can be chosen differently for pictures + and videos. + + https://github.com/owncloud/android/issues/2867 + https://github.com/owncloud/android/pull/3143 + +* Enhancement - Replace blank view in music player with cover art: [#3121](https://github.com/owncloud/android/issues/3121) + + Blank view in the music preview player with styled up cover art was replaced. + For music files that does not have cover art embodied, it is displayed a + placeholder. + + https://github.com/owncloud/android/issues/3121 + https://github.com/owncloud/android/pull/3182 + +* Enhancement - Align previews actions: [#3155](https://github.com/owncloud/android/issues/3155) + + Behaviour was aligned through every preview fragment. Images, videos, audios and + texts show the same actions now. + + https://github.com/owncloud/android/issues/3155 + https://github.com/owncloud/android/pull/3177 + +* Enhancement - Fixed account for camera uploads: [#3166](https://github.com/owncloud/android/issues/3166) + + Camera uploads will be uploaded to a fixed account independently of the current + account. Removing the account attached to camera uploads will disable this + feature. User will be warned when removing an account that has camera uploads + attached. + + https://github.com/owncloud/android/issues/3166 + https://github.com/owncloud/android/pull/3226 + +# Changelog for 2.17 versions and below + +## 2.17 (March 2021) +- Toolbar redesign +- Show thumbnails for every supported file type +- Fix 301 redirections +- Fix a crash related to pictures preview +- Fix two bugs when sharing files with ownCloud +- Improvements in OAuth2, including + + Fix a crash when migrating from OAuth2 to OIDC + + Fix a crash when disabling OAuth2 + + Fix a bug where token was not refreshed properly + + Log authentication requests + + Support OIDC Dynamic Client Registration + +## 2.17 beta v1 (March 2021) +- Toolbar redesign +- Show thumbnails for every supported file type +- Fix 301 redirections +- Fix a crash related to pictures preview +- Fix a bug when sharing files with ownCloud +- Improvements in OAuth2, including + + Fix a crash when migrating from OAuth2 to OIDC + + Fix a crash when disabling OAuth2 + + Fix a bug where token was not refreshed properly + + Log authentication requests + + Support OIDC Dynamic Client Registration + +## 2.16.0 (January 2021) +- Native Android ShareSheet +- Option to log HTTP requests and responses +- Move sort menu from toolbar to files view +- Update background images +- Search when sharing with ownCloud +- Bug fixes, including: + + Fix a crash while accessing a WebDAV folder + + Fix some crashes when rotating the device + + Fix a glitch where image was not refreshed properly + + Fix some issues when using OCIS + +## 2.15.3 (October 2020) +- Bug fixes, including: + + Fix a crash related to downloads notifications + + Potential fix for ANR when retrying camera uploads + + Removal of legacy header http.protocol.single-cookie-header + +## 2.15.2 (September 2020) +- Update logcat library +- Bug fixes, including: + + Fixed a crash when browsing up + + Fixed a crash when logging camera upload request + + Fixed a crash related with available offline files + + Fixed a crash related with database migration + +## 2.15.1 (July 2020) +- Android 10: TLS 1.3 supported +- Update network libraries to more recent versions, OkHttp + dav4jvm (old dav4Android) +- Rearchitecture of avatar and quota features +- Bug fixes, including: + + Fixed some authentication problems regarding password edition + + Fixed available offline bad behaviour when the amount of files is huge + + Fixed a crash related with FileDataStorageManager + + Fixed problem related with server setting `version.hide` to allow users login if such setting is enabled. + +## 2.15 (June 2020) +- Login rearchitecture +- Support for OpenId Connect +- Native biometrical lock +- UI improvements, including: + + New bottom navigation bar +- Support for usernames with '+' (Available since oC 10.4.1) +- Chunking adaption to oCIS +- End of support for Android KitKat (4.4) +- End of support for servers older than 10 version +- Bug fixes, including: + + Fix crash when changing orientation in some operations + + Fix OAuth2 token is not renewed after being revoked + + Fix occasional crash when opening share by link + + Fix navigation loop in shared by link and Av. Offline options + +## 2.15 beta v2 (May 2020) +- Login rearchitecture +- Support for OpenId Connect +- Native biometrical lock +- UI improvements, including: + + New bottom navigation bar +- Support for usernames with '+' (Available since oC 10.4.1) +- Chunking adaption to oCIS +- End of support for Android KitKat (4.4) +- End of support for servers older than 10 version +- Bug fixes, including: + + Fix crash when changing orientation in some operations + + Fix OAuth2 token is not renewed after being revoked + +## 2.15 beta v1 (May 2020) +- Login rearchitecture +- Support for OpenId Connect +- Native biometrical lock +- UI improvements, including: + + New bottom navigation bar +- Support for usernames with '+' (Available since oC 10.4.1) +- End of support for Android KitKat (4.4) +- End of support for servers older than 10 version +- Bug fixes, including: + + Fix crash when changing orientation in some operations + + Fix OAuth2 token is not renewed after being revoked + +## 2.14.2 (January 2020) +- Fix crash triggered when trying to connect to server secured with self signed certificate + +## 2.14.1 (December 2019) +- Some improvements in wizard + +## 2.14 (December 2019) +- Splash screen +- Shortcut to shared by link files from side menu (contribution) +- Use new server parameter to set a minimum number of characters for searching users, groups or federated shares +- End of support for SAML authentication. +- UI improvements, including: + + Mix files and folders when sorting them by date (contribution) or size + + Redesign logs view with new tabs, filters and share options (contribution) + + Resize cloud image in side menu to not overlap the new side menu options +- Bug fixes, including: + + Avoid overwritten files with the same name during copy or move operations + + Retry camera uploads when recovering wifi connectivity and "Upload with wifi only" option is enabled + +## 2.13.1 (October 2019) +- Improve oAuth user experience flow and wording when token expires or becomes invalid + +## 2.13 (September 2019) +- Copy and move files from other third-party apps or internal storage to an ownCloud account through Downloads or Files app +- Save files in an ownCloud account from third-party apps +- Copy and move files within the same ownCloud account through Downloads or Files app +- Add more logs coverage to gather information about known but difficult to reproduce issues +- UI improvements, including: + + Show date and size for every file in Available Offline option from side menu + +## 2.12 (August 2019) +- Shares rearchitecture +- UI improvements, including: + + Private link accessible when share API is disabled +- Bug fixes, including: + + Fix images not detected in Android 9 gallery after being downloaded + +## 2.12 beta v1 (August 2019) +- Shares rearchitecture +- UI improvements, including: + + Private link accessible when share API is disabled +- Bug fixes, including: + + Fix images not detected in Android 9 gallery after being downloaded + +## 2.11.1 (June 2019) +- Fix crash triggered when notifying upload results + +## 2.11 (June 2019) +- Replace ownCloud file picker with the Android native one when uploading files (contribution) +- Send logs to support, enable it via new developer menu (contribution) +- Logs search (contribution) +- Shortcut to available offline files from side menu +- Document provider: files and folders rename, edition and deletion. +- Document provider: folder creation +- Document provider: multiaccount support +- UI improvements, including: + + Notch support + + Batched permission errors when deleting multiple files (contribution) +- Bug fixes, including: + + Fix just created folder disappears when synchronizing parent folder + + Fix crash when clearing successful/failed uploads (contribution) + + Fix download progress bar still visible after successful download + + Fix UI glitch in warning icon when sharing a file publicly (contribution) + + Fix crash when sharing files with ownCloud and creating new folder (contribution) + + Fix canceling dialog in settings turns on setting (contribution) + + Bring back select all and select inverse icons to the app bar (contribution) + + Fix folder with brackets [ ] does not show the content + + Fix login fails with "§" in password + +## 2.11 beta v1 (May 2019) +- Send logs to support, enable it via new developer menu (contribution) +- Logs search (contribution) +- Shortcut to available offline files from side menu +- Document provider: files and folders rename, edition and deletion. +- Document provider: folder creation +- Document provider: multiaccount support +- UI improvements, including: + + Notch support +- Bug fixes, including: + + Fix download progress bar still visible after successful download + + Fix UI glitch in warning icon when sharing a file publicly (contribution) + + Fix crash when sharing files with ownCloud and creating new folder (contribution) + + Fix canceling dialog in settings turns on setting (contribution) + + Bring back select all and select inverse icons to the app bar (contribution) + + Fix folder with brackets [ ] does not show the content + + Fix login fails with "§" in password + +## 2.10.1 (April 2019) +- Content provider improvements + +## 2.10.0 (March 2019) +- Android 9 (P) support (contribution) +- Allow light filtering apps (optional) +- Show additional info (user ID, email) when sharing with users with same display name +- Support more options to enforce password when sharing publicly +- Select all and inverse when uploading files (contribution) +- Sorting options in sharing view (contribution) +- Batched notifications for file deletions (contribution) +- Commit hash in settings (contribution) +- UI improvements, including: + + Disable log in button when credentials are empty (contribution) + + Warning to properly set camera folder in camera uploads +- Bug fixes, including: + + Some camera upload issues in Android 9 (P) (contribution) + + Fix eye icon not visible to show/hide password in public shares (contribution) + + Fix welcome wizard rotation (contribution) + +## 2.10.0 beta v1 (February 2019) +- Android 9 (P) support (contribution) +- Select all and inverse when uploading files (contribution) +- Sorting options in sharing view (contribution) +- Batched notifications for file deletions (contribution) +- Commit hash in settings (contribution) +- UI improvements, including: + + Disable log in button when credentials are empty (contribution) + + Warning to properly set camera folder in camera uploads +- Bug fixes, including: + + Some camera upload issues in Android 9 (P) (contribution) + + Fix eye icon not visible to show/hide password in public shares (contribution) + + Fix welcome wizard rotation (contribution) + +## 2.9.3 (November 2018) +- Bug fixes for users with username containing @ character + +## 2.9.2 (November 2018) +- Bug fixes for users with username containing spaces + +## 2.9.1 (November 2018) +- Bug fixes for LDAP users using uid: + + Fix login not working + + Fix empty list of files + +## 2.9.0 (November 2018) +- Search in current folder +- Select all/inverse files (contribution) +- Improve available offline files synchronization and conflict resolution (Android 5 or higher required) +- Sort files in file picker when uploading (contribution) +- Access ownCloud files from files apps, even with files not downloaded +- New login view +- Show re-shares +- Switch apache and jackrabbit deprecated network libraries to more modern and active library, OkHttp + Dav4Android +- UI improvements, including: + + Change edit share icon + + New gradient in top of the list of files (contribution) + + More accurate message when creating folders with the same name (contribution) +- Bug fixes, including: + + Fix some crashes: + - When rebooting the device + - When copying, moving files or choosing a folder within camera uploads feature + - When creating private/public link + + Fix some failing downloads + + Fix pattern lock being asked very often after disabling fingerprint lock (contribution) + +## 2.9.0 beta v2 (October 2018) +- Bug fixes, including: + + Fix some crashes: + - When rebooting the device + - When copying, moving files or choosing a folder within camera uploads feature + + Fix some failing downloads + + Fix pattern lock being asked very often after disabling fingerprint lock + +## 2.9.0 beta v1 (September 2018) +- Switch apache and jackrabbit deprecated libraries to more modern and active library, OkHttp +- Search in current folder +- Select all/inverse files +- New login view +- Show re-shares +- UI improvements, including: + + Change edit share icon + + New gradient in top of the list of files + +## 2.8.0 (July 2018) +- Side menu redesign +- User quota in side menu +- Descending option when sorting +- New downloaded/offline icons and pins +- One panel design for tablets +- Custom tabs for OAuth +- Improve public link sharing permissions for folders +- Redirect to login view when SAML session expires +- UI improvements, including: + + Fab button above snackbar + + Toggle to control password visibility when sharing via link + + Adaptive icons support (Android 8 required) +- Bug fixes, including: + + Fix block for deleted basic/oauth accounts + + Fix available offline when renaming files + + Fix camera directory not selectable in root + + Fix guest account showing an empty file list + + Hide keyboard when going back from select user view + + Fix black "downloading screen" message when downloading an image offline + + Show proper timestamp in uploads/downloads notification + + Fix sharing when disabling files versioning app in server + +## 2.8.0 beta v1 (May 2018) +- Side menu redesign +- User quota in side menu +- Descending option when sorting +- New downloaded/offline icons and pins +- One panel design for tablets +- Custom tabs for OAuth +- UI improvements, including: + + Fab button above snackbar + + Toggle to control password visibility when sharing via link +- Bug fixes, including: + + Fix block for deleted basic/oauth accounts + + Fix available offline when renaming files + + Fix camera directory not selectable in root + + Fix guest account showing an empty file list + + Hide keyboard when going back from select user view + + Fix black "downloading screen" message when downloading an image offline. + +## 2.7.0 (April 2018) +- Fingerprint lock +- Pattern lock (contribution) +- Upload picture directly from camera (contribution) +- GIF support +- New features wizard +- UI improvements, including: + + Display file size during upload (contribution) + + Animations when switching folders +- Bug fixes, including: + + Hide always visible notification in Android 8 + +## 2.7.0 beta v1 (March 2018) +- Fingerprint lock +- Pattern lock (contribution) +- Upload picture directly from camera (contribution) +- GIF support +- New features wizard +- UI improvements, including: + + Display file size during upload (contribution) +- Bug fixes, including: + + Hide always visible notification in Android 8 + +## 2.6.0 (February 2018) +- Camera uploads, replacing instant uploads (Android 5 or higher required) +- Android 8 support +- Notification channels (Android 8 required) +- Private link (OC X required) +- Fixed typos in some translations + +## 2.5.1 beta v1 (November 2017) +- Camera uploads (replacing instant uploads) +- Android O support +- Notification channels (Android O required) +- Private link (OC X required) +- Fixed typos in some translations + +## 2.5.0 (October 2017) +- OAuth2 support +- Show file listing option (anonymous upload) when sharing a folder (OC X required) +- First approach to fix instant uploads +- UI improvements, including: + + Hide share icon when resharing is forbidden + + Improve feedback when uploading infected files +- Bug fixes + +## 2.4.0 (May 2017) +- Video streaming +- Multiple public links per file (OC X required) +- Share with custom groups (OC X required) +- Automated retry of failed transfers in Android 6 and 7 +- Save shared text as new file +- File count per section in uploads view +- UI improvements, including: + + Share view update +- Bug fixes + +## 2.3.0 (March 2017) +- Included privacy policy. +- Error messages improvement. +- Design/UI improvement: snackbars replace toasts. +- Bugs fixed, including: + + Crash when other app uses same account name. + +## 2.2.0 (December 2016) +- Set folders as Available Offline +- New navigation drawer, with avatar and account switch. +- New account manager, accessible from navigation drawer. +- Set edit permissions in federated shares of folders (OC server >= 9.1) +- Monitor and revoke session from web UI (OC server >= 9.1) +- Improved look and contents of file menu. +- Bugs fixed, including: + + Keep modification time of uploaded files. + + Stop audio when file is deleted. + + Upload of big files. + +## 2.1.2 (September 2016) +- Instant uploads fixed in Android 6. + +## 2.1.1 (September 2016) +- Instant uploads work in Android 7. +- Select your camera folder to upload pictures or videos from any + camera app. +- Multi-Window support for Android 7. +- Size of folders shown in list of files. +- Sort by size your list of files. + +## 2.1.0 (August 2016) +- Select and handle multiple files +- Sync files on tap +- Access files through Documents Provider +- "Can share" option for federated shares (server 9.1+) +- Full name shown instead of user name +- New icon +- Style and sorting fixes +- Bugs fixed, including: + + Icon "available offline" shown when set + + Trim blanks of username in login view + + Protect password field from suggestions + +## 2.0.1 (June 2016) +- Favorite files are now called AVAILABLE OFFLINE +- New overlay icons +- Bugs fixed, including: + + Upload content from other apps works again + + Passwords with non-alphanumeric characters work fine + + Sending files from other apps does not duplicate them + + Favorite setting is not lost after uploading + + Instant uploads waiting for Wi-Fi are not shown as failed + +## 2.0.0 (April 2016) +- Uploads view: track the progress of your uploads and handle failures +- Federated sharing: share files with users in other ownCloud servers +- Improvements on the UI following material design lines +- Set a shared-by-link folder as editable +- Wifi-only for instant uploads stop on Wifi loss +- Be warned of server certificate changed in any action +- Improvements when other apps send files to ownCloud +- Bug fixing + +## 1.9.1 (February 2016) +- Set and edit permissions on internal shared data +- Instant uploads: avoid file duplications, set policy in app settings +- Control duplication of files uploaded via 'Upload' button +- Select view mode: either list or grid per folder +- More Material Design: buttons and checkboxes +- Fixed battery drain in automatic synchronization +- Security fixes related to passcode +- Wording fixes + +## 1.9.0 (December 2015) +- Share privately with users or groups in your server +- Share link with password protection and expiration date +- Fully sync a folder in two ways (manually) +- Detect share configuration in server +- Fingerprints in untrusted certificate dialog +- Thumbnail in details view +- OC color in notifications +- Fixed video preview +- Fixed sorting with accents +- Error shown when no app can "open with" a file +- Fixed relative date in some languages +- Media scanner triggered after uploads + ## 1.8.0 (September 2015) - New MATERIAL DESIGN theme - Updated FILE TYPE ICONS @@ -25,7 +3509,7 @@ - Bugs fixed: + Frequent crashes in folder with several images + Sync error in servers with huge quota and external storage enable - + Share by link error + + Share by link error + Some other crashes and minor bugs ## 1.7.1 (April 2015) @@ -49,12 +3533,9 @@ - Uploads: + Local thumbnails in section "Files" + Multiple selection in "Content from other apps" (Android 4.3+) -- Gallery: +- Gallery: + proper handling of EXIF + obey sorting in the list of files - Settings view updated - Improved subjects in e-mails - Bugs fixed - - - diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1dc53b42e5a..c2d2e417049 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,74 +1,96 @@ ## Submitting issues -If you have questions about how to use ownCloud, please direct these to the [mailing list][mailinglist] or our [forum][forum]. We are also available on [IRC][irc]. +If you have questions about how to use ownCloud, please join our [forum][forum]. ### Guidelines -* [Report the issue](https://github.com/owncloud/android/issues/new) using our [template][template], it includes all the informations we need to track down the issue. -* This repository is *only* for issues within the ownCloud Android app code. Issues in other compontents should be reported in their own repositores: - - [ownCloud code](https://github.com/owncloud/core/issues) - - [iOS client](https://github.com/owncloud/ios-issues/issues) - - [Desktop client](https://github.com/owncloud/mirall/issues) - - [ownCloud apps](https://github.com/owncloud/apps/issues) (e.g. Calendar, Contacts...) -* Search the existing issues first, it's likely that your issue was already reported. +* [Report the issue](https://github.com/owncloud/android/issues/new) using on of our [templates][template], they include all the information we need to track down the issue. +* This repository is *only* for issues within the ownCloud Android app code. Issues in other components should be reported in their own repositories: + - [ownCloud core](https://github.com/owncloud/core/issues) + - [oCIS](https://github.com/owncloud/ocis/issues) + - [iOS client](https://github.com/owncloud/ios-app/issues) + - [Desktop client](https://github.com/owncloud/client/issues) +* Search the [existing issues](https://github.com/owncloud/android/issues) first, it's likely that your issue was already reported. If your issue appears to be a bug, and hasn't been reported, open a new issue. Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues. -[template]: https://raw.github.com/owncloud/android/master/issue_template.md -[mailinglist]: https://mail.kde.org/mailman/listinfo/owncloud -[forum]: http://forum.owncloud.org/ -[irc]: http://webchat.freenode.net/?channels=owncloud&uio=d4 +[template]: https://github.com/owncloud/android/tree/master/.github/ISSUE_TEMPLATE +[forum]: https://central.owncloud.org/ ## Contributing to Source Code Thanks for wanting to contribute source code to ownCloud. That's great! -Before we're able to merge your code into the ownCloud app for Android, you need to sign our [Contributor Agreement][agreement]. +Before we're able to merge your code into the ownCloud app for Android, please, check the [contribution guidelines][contribution]. ### Guidelines -* Contribute your code in the branch 'master'. It will give us a better chance to test your code before merging it with stable code. -* For your first contribution, start a pull request on master and send us the signed [Contributor Agreement][agreement]. +* Contribute your code in a feature, fix, improvement or technical enhancement branch by using one of the following branch names: + + - ```feature/feature_name``` → new features in the app + - ```fix/fix_name``` → fixing problems or bugs, always welcome! + - ```improvement/improvement_name``` → make even better an existing feature + - ```technical/technical_description``` → code review, DB... technical stuff improved + + Please, use the mentioned prefixes because CI system is ready to match with them. Be sure your feature, fix, improvement or technical branches are updated with latest changes in official `android/master`, it will give us a better chance to test your code before merging it with stable code. +* Once you are done with your code, start a pull request to merge your contribution into official `android/master`. * Keep on using pull requests for your next contributions although you own write permissions. +* Important to mention that ownCloud Android team uses OneFlow as branching model. It's something as useful as easy: -[agreement]: http://owncloud.org/about/contributor-agreement/ + * `master` will stay as main branch. Everything will work around it. + * Feature branch: new branch created from `master`. Once it is finished and DoD accomplished, rebased and merged into `master`. + * Release branch: will work as any feature branch. Before rebasing and merging into `master`, release tag must be signed. + * Hotfix branch: created from latest tag. Once it is finished, tag must be signed. Then, rebased and merged into `master`. + * The way to get an specific version is browsing through the tags. -### 1. Fork and download android/master repository: + Interesting [link](https://www.endoflineblog.com/oneflow-a-git-branching-model-and-workflow) about this. -NOTE: You must have the git installation folder in your environment variable PATH to perform the next operations. +[contribution]: https://owncloud.com/contribute/ -* In a web browser, go to https://github.com/owncloud/android, and click the 'Fork' button near the top right corner. -* In a command line prompt, clone your new repo: ```git clone git@github.com:YOURGITHUBNAME/android.git```. -* Move to the project folder with ```cd android```. -* Checkout the remote branch 'master' in your own local branch: ```git checkout -b master remotes/origin/master```. -* Pull any changes from your remote branch 'master': ```git pull origin master``` -* Make official ownCloud repo known as upstream: ```git remote add upstream git@github.com:owncloud/android.git``` -* Make sure to get the latest changes from official android/master branch: ```git pull upstream master``` +### 1. Fork and download android/master repository: +* Please follow [SETUP.md](https://github.com/owncloud/android/blob/master/SETUP.md) to setup ownCloud Android app work environment. -### 7. Create pull request: +### 2. Create pull request: -NOTE: You must sign the [Contributor Agreement][1] before your changes can be accepted! +NOTE: You must sign the [CLA](https://cla-assistant.io/owncloud/android) before your changes can be accepted! -* Commit your changes locally: "git commit -a" -* Push your changes to your GitHub repo: "git push" +* Create new feature, fix, improvement or technical enhancement branch from your master branch: ```git checkout -b feature/feature_name``` +* Register your changes: `git add filename` +* Commit your changes locally. Please, if posible use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) to add descriptive messages to the commits. Take the simplest approach: + - Feature commits: `feat: brief description of the changes performed` + - Fix commits: `fix: brief description of applied fix` + - Test commits: `test: brief description of developed tests` + - Calens commits: `chore: add calens file` + + Submit the commit with ```git commit -m "commit message"``` +* Push your changes to your GitHub repo: ```git push origin feature/feature_name``` * Browse to https://github.com/YOURGITHUBNAME/android/pulls and issue pull request * Enter description and send pull request. -### 8. Create another pull request: +### 3. Update your contribution branch with master changes: + +It is possible you see the next message from time to time. -To make sure your new pull request does not contain commits which are already contained in previous PRs, create a new branch which is a clone of upstream/master. + -* git fetch upstream -* git checkout -b my_new_master_branch upstream/master -* If you want to rename that branch later: "git checkout -b my_new_master_branch_with_new_name" -* Push branch to server: "git push -u origin name_of_local_master_branch" -* Use GitHub to issue PR +To fix this and make sure your contribution branch is updated with official android/master, you need to perform the next steps: +* Checkout your master branch: ```git checkout master``` +* Get and apply official android/master branch changes in your master branch: ```git fetch upstream``` + ```git rebase upstream/master```. Now you have your master branch updated with official master branch changes. +* Checkout your contribution branch: ```git checkout feature/feature_name``` +* Rebase contribution branch with master to put your contribution commits after the last commit of master branch, ensuring a clean commits history: ```git rebase master```. If there's some conflicts, solve it by using rebase in different steps. +* Push branch to server: ```git push -f origin feature/feature_name```. At this point, the message ```This branch is out-of-date with the base branch``` should disappear. +## Versioning +In order to check or review the stable versions, all available tags can be fetched with the command `git fetch --tags` and listed with the command `git tag`. The tag `latest` is also available pointing to the latest released version. ## Translations Please submit translations via [Transifex][transifex]. [transifex]: https://www.transifex.com/projects/p/owncloud/ +## Code of conduct +Please, read the [ownCloud code of conduct]. Being respectful and polite with other members of the community and staff is necessary to develop a better product together. + +[ownCloud code of conduct]: https://owncloud.com/contribute/code-of-conduct/ diff --git a/README.md b/README.md index e3ff5353110..17bce512f13 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,35 @@ -#This is the Android client for [ownCloud][0] +[![Android Unit Tests](https://github.com/owncloud/android/actions/workflows/android-unit-tests.yml/badge.svg)](https://github.com/owncloud/android/actions/workflows/android-unit-tests.yml) [![Android Instrumented Data Tests](https://github.com/owncloud/android/actions/workflows/android-instrumented-data-tests.yml/badge.svg)](https://github.com/owncloud/android/actions/workflows/android-instrumented-data-tests.yml) [![Detekt](https://github.com/owncloud/android/actions/workflows/detekt.yml/badge.svg)](https://github.com/owncloud/android/actions/workflows/detekt.yml) [![Conventional Commits](https://github.com/owncloud/android/actions/workflows/conventional-commits.yml/badge.svg)](https://github.com/owncloud/android/actions/workflows/conventional-commits.yml) -The app performs file synchronization with an ownCloud server. Other ownCloud features may be added in the future, but they are not a priority right now. +# [ownCloud](https://owncloud.org) Android app -## Build Status on -Git master: ![Build Status](https://api.travis-ci.org/owncloud/android.svg?branch=master) + -Git stable: ![Build Status](https://api.travis-ci.org/owncloud/android.svg?branch=stable) +| | | | | +| ---------------------------------------------- | -------------------------------------------- | ------------------------------------------- | ------------------------------------------- | -## Development +## Join development! -### Project Setup -Make sure you read [SETUP.md][1] when you start working on this project. +**Start contributing:** Make sure you read [SETUP.md](https://github.com/owncloud/android/blob/master/SETUP.md) when you start working on this project. Basically: Fork this repository and contribute back using pull requests to the master branch. +Easy starting points are also reviewing [pull requests](https://github.com/owncloud/android/pulls) and working on [contributions are welcome](https://github.com/owncloud/android/issues?q=is%3Aopen+is%3Aissue+label%3A%22Contributions+are+welcome%22). -[0]: https://github.com/owncloud/core -[1]: https://github.com/owncloud/android/blob/master/SETUP.md +**Forum:** [#Android](https://central.owncloud.org/c/android) -### Contributing -Please see [Contribution Guidelines](https://owncloud.org/contribute/). Fork this repository and contribute back using -[pull requests](https://github.com/owncloud/android/pulls). All pull requests should be based on, and targeted to, the ['master'](https://github.com/owncloud/android/tree/master) branch. +**License:** [GPLv2](https://github.com/owncloud/android/blob/master/LICENSE.txt) + +## Join testing! + +If you are interested in testing the new features before being released and give us your feedback, please try out our beta channels: + +**Play Store** + +1. Download ownCloud app from Play Store. +2. Go to ownCloud tab in Play Store and scroll down to the end of the view. +3. Press the **I'M IN** button to join the beta program and your final app will be replaced with the beta one. + +Note: If you want to use the ownCloud production version you have to leave the beta program, uninstall the app, and reinstall the production version. + +**F-Droid** + +1. Go to ownCloud tab in F-Droid. +2. Open versions section. +3. Download the latest version that contains beta in the name. diff --git a/SETUP.md b/SETUP.md index 0f1bc8ed853..424f134e22e 100644 --- a/SETUP.md +++ b/SETUP.md @@ -1,7 +1,8 @@ +### Setup Information These instructions will help you to set up your development environment, get the source code of the ownCloud for Android app and build it by yourself. If you want to help developing the app take a look to the [contribution guidelines][0]. -Sections 1) and 2) are common for any environment. The rest of the sections describe how to set up a project in different tool environments. Choose the build tool or IDE you prefer and follow the instructions in its specific section. Nowadays we recommend to use Android Studio (section 2), but the decision is up to you. +Sections 1) and 2) are common for any environment. The rest of the sections describe how to set up a project in different tool environments. Nowadays we recommend to use Android Studio (section 2), but you can also build the app from the command line (section 3). If you have any problem, remove the 'android' folder, start again from 1) and work your way down. If something still does not work as described here, please open a new issue describing exactly what you did, what happened, and what should have happened. @@ -10,16 +11,15 @@ If you have any problem, remove the 'android' folder, start again from 1) and wo There are some tools needed, no matter what is your specific IDE or build tool of preference. -[git][1] is used to access to the different versions of the ownCloud's source code. Download and install the version appropiate for your operating system from [here][2]. Add the full path to the 'bin/' directory from your git installation into the PATH variable of your environment so that it can be used from any location. +[git][1] is used to access to the different versions of the ownCloud's source code. Download and install the version appropriate for your operating system from [here][2]. Add the full path to the 'bin/' directory from your git installation into the PATH variable of your environment so that it can be used from any location. The [Android SDK][3] is necessary to build the app. There are different options to install it in your system, depending of the IDE you decide to use. Check Google documentation about [installation][4] for more details on these options. After installing it, add the full path to the directories 'tools/' and 'platform-tools/' from your Android SDK installation into the PATH variable of your environment. Open a terminal and type 'android' to start the Android SDK Manager. To build the ownCloud for Android app you will need to install at least the next SDK packages: * Android SDK Tools and Android SDK Platform-tools (already installed); upgrade to their last versions is usually a good idea. -* Android SDK Build-Tools; any version from 20 or later should work fine; avoid preview versions, if any available. -* Android 4.4.2 (API 19), SDK Platform; needed for build/test ownCloud app. -* Android 5.1.1 (API 22), SDK Platform; needed to build the Android Support Library (not neeeded if working with Android Studio or gradle) and build the owncloud app. +* No longer need to specify a version for the build tools, Gradle plugin uses the minimum required version by default. +* Android 12.0 (API 31), SDK Platform; needed to build the owncloud app. Install any other package you consider interesting, such as emulators. @@ -34,39 +34,32 @@ Next steps will assume you have a Github account and that you will get the code * In a web browser, go to https://github.com/owncloud/android, and click the 'Fork' button near the top right corner. * Open a terminal and go on with the next steps in it. -* Clone your forked repository: ```git clone git@github.com:YOURGITHUBNAME/android.git```. +* Clone your forked repository: ```git clone https://github.com/YOURGITHUBNAME/android.git```. * Move to the project folder with ```cd android```. -* Checkout the remote branch 'master' in your own local branch 'master': ```git checkout master remotes/origin/master```. -* Pull any changes from your remote branch 'master': ```git pull origin master``` -* Make official ownCloud repo known as upstream: ```git remote add upstream git@github.com:owncloud/android.git``` -* Make sure to get the latest changes from official android/master branch: ```git pull upstream master``` +* Fetch and apply any changes from your remote branch 'master': ```git fetch``` + ```git rebase``` +* Make official ownCloud repo known as upstream: ```git remote add upstream https://github.com/owncloud/android.git``` +* Make sure to get and apply the latest changes from official android/master branch: ```git fetch upstream``` + ```git rebase upstream/master``` -At this point you can continue using different tools to build the project. Section 2, 3, 4, 5 and 6 describe the existing alternatives. +At this point you can continue using different tools to build the project. Section 2 and 3 describe the existing alternatives. ### 2. Working with Android Studio. -[Android Studio][5] is currently the official Android IDE. Due to this, we recommend it as the IDE to use in your development environment. Follow the installation instructions [here][6]. +[Android Studio][5] is currently the official Android IDE. Due to this, we recommend it as the IDE to use in your development environment. We recommend to use the last version available in the stable channel of Android Studio updates. See what update channel is your Android Studio checking for updates in the menu path 'Help'/'Check for Update...'/link 'Updates' in the dialog. To set up the project in Android Studio follow the next steps: -* Complete the setup of project properties running: - - Windows: ```setup_env.bat gradle``` - - Mac OS/Linux: ```./setup_env.sh gradle``` * Open Android Studio and select 'Import Project (Eclipse ADT, Gradle, etc)'. Browse through your file system to the folder 'android' where the project is located. Android Studio will then create the '.iml' files it needs. If you ever close the project but the files are still there, you just select 'Open Project...'. The file chooser will show an Android face as the folder icon, which you can select to reopen the project. * Android Studio will try to build the project directly after importing it. To build it manually, follow the menu path 'Build'/'Make Project', or just click the 'Play' button in the tool bar to build and run it in a mobile device or an emulator. The resulting APK file will be saved in the 'build/outputs/apk/' subdirectory in the project folder. ### 3. Working in a terminal with Gradle: -[Gradle][7] is the build system used by Android Studio to manage the building operations on Android apps. You do not need to install Gradle in your system, and Google recommends not to do it, but instead trusting on the Graddle wrapper included in the project [8]. +[Gradle][6] is the build system used by Android Studio to manage the building operations on Android apps. You do not need to install Gradle in your system, and Google recommends not to do it, but instead trusting on the [Gradle wrapper][7] included in the project. * Open a terminal and go to the 'android' directory that contains the repository. -* Complete the setup of project properties running: - - Windows: ```setup_env.bat gradle``` - - Mac OS/Linux: ```./setup_env.sh gradle``` * Run the 'clean' and 'build' tasks using the Gradle wrapper provided - Windows: ```gradlew.bat clean build``` - Mac OS/Linux: ```./gradlew clean build``` @@ -76,85 +69,11 @@ The first time the Gradle wrapper is called, the correct Gradle version will be The generated APK file is saved in android/build/outputs/apk as android-debug.apk -### 4. Building with Eclipse: - -[Eclipse][9] is still an option to work with Android apps, although the [ADT Plugin][10] needed is not in active development anymore. Next steps have been tested in Eclipse Luna. - -* Open a terminal and go to the 'android' directory that contains the repository. -* Resolve necessary dependencies running: - - Windows: ```setup_env.bat ant``` - - Mac OS/Linux: ```./setup_env.sh ant``` -* Open Eclipse and follow the menu path 'File'/'New'/'Project' -* Choose the option 'Android'/'Android Project from Existing Code' and click 'Next' -* Choose 'android/' folder as root -* Choose the projects with the next names under the 'New Project Name' column: -** owncloud-android -** android-support-appcompat-v7-exploded-aar -** owncloud-android-workaround-accounts (optional) -** ownCloud Android Library -** ownCloud Sample Client (optional) -** ownCloud Android library test project (optional) -** ownCloud Android library test cases (optional) -* Do not choose the project owncloud-android-tests; it's obsolete. -* Do not enable 'Copy projects into workspace'. -* Click the 'Finish' button. -* Wait for a while; if 'Build automatically' is enabled in Eclipse, some errors could appear during the creation of the projects, but all of them should finally disappear. -* If any error persists, clean and build manually the next projects in order: -** ownCloud Android Library -** android-support-appcompat-v7-exploded-aar -** owncloud-android -* If any error on those projects persists, check the project properties. In the 'Android' section, API Level should be -** ownCloud Android Library -> API level 19 -** android-support-appcompat-v7-exploded-aa -> API level 22 -** owncloud-android -> API level 22 ; in this project, two library projects should appear referred in the bottom of the dialog: libs\android-support-appcompat-v7-exploded-aar and owncloud-android-library. Add them if needed. -* After those actions you should be good to go. HAVE FUN! - - -### 5. Building in command line with Ant: - -[Ant][10] can be used to build the ownCloud for Android app in a terminal. Be sure that the PATH variable in your environment contains the full path to the 'bin/' subdirectory in your Ant installation. Define also an ANDROID_HOME variable in your environment with the full path to your Android SDK (see section 1). Then follow the next steps: - -* Open a terminal and go to the 'android' directory that contains the repository. -* Resolve necessary dependencies running: - - Windows: ```setup_env.bat ant``` - - Mac OS/Linux: ```./setup_env.sh ant``` -* Run ```ant clean```. -* Run ```ant debug``` to generate a debuggable version of the ownCloud app. - -The resulting APKs will be saved in the 'bin/' subdirectory of the project. - - -### 6. Building in command line with maven: - -** Currently these build instructions DO NOT WORK. There is no estimation time to fix it. Unless some volunteer contributor fixes this build option, and given that Maven is a minority option in Android environments, we will probably remove this option. - -NOTE: You must have mvn (version >= 3.1.1) in your environment path. Current Android 'platforms-tools' need to be installed. - -Download/install Android plugin for Maven, then build ownCloud with mvn: - -* Resolve necessary dependencies running: - - Windows: "setup_env.bat maven" - - Mac OS/Linux: "./setup_env.sh maven" - -* cd .. -* git clone https://github.com/mosabua/maven-android-sdk-deployer.git -* cd maven-android-sdk-deployer -* mvn -pl com.simpligility.android.sdk-deployer:android-22 -am install -* cd ../android/owncloud-android-library -* mvn install -* cd .. - -Now you can create ownCloud APK using "mvn package" and find it as ownCloud.apk under the target - - [0]: https://github.com/owncloud/android/blob/master/CONTRIBUTING.md [1]: https://git-scm.com/ [2]: https://git-scm.com/downloads [3]: https://developer.android.com/sdk/index.html [4]: https://developer.android.com/sdk/installing/index.html -[5]: https://developer.android.com/tools/studio/index.html -[6]: https://developer.android.com/sdk/installing/index.html?pkg=studio -[7]: https://gradle.org/ -[8]: https://docs.gradle.org/current/userguide/gradle_wrapper.html -[9]: https://eclipse.org/ -[10]: http://developer.android.com/sdk/installing/installing-adt.html +[5]: https://developer.android.com/studio +[6]: https://gradle.org/ +[7]: https://docs.gradle.org/current/userguide/gradle_wrapper.html diff --git a/THIRD_PARTY.txt b/THIRD_PARTY.txt index 6fd3e5b3d13..57bd31e343e 100644 --- a/THIRD_PARTY.txt +++ b/THIRD_PARTY.txt @@ -1,7 +1,7 @@ ################################################################### - ownCloud Android client + ownCloud Android client - Copyright (C) 2012-2013 ownCloud Inc. + Copyright (C) 2020 ownCloud GmbH. Copyright (C) 2012 Bartek Przybylski ################################################################### @@ -11,7 +11,7 @@ ########### This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License verions 2, +it under the terms of the GNU General Public License version 2, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, @@ -20,7 +20,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. The source distribution of this program should include a full copy -of the GNU GPL version 2 license in the LICENSE.txt file located +of the GNU GPL version 2 license in the LICENSE.txt file located in its root directory. If not, see . @@ -30,20 +30,12 @@ in its root directory. If not, see . Both the source and binary distributions of this software contain some third party software. All the third party software included -or linked is redistributed under the terms and conditions of their -original licenses. These licenses are compatible the GPL license +or linked is redistributed under the terms and conditions of their +original licenses. These licenses are compatible the GPL license that govern this software, for the purposes they are being used. The third party software included and used by this project is: - * Apache JackRabbit, version 2.2.5. - Copyright (C) 2004-2010 The Apache Software Foundation. - Licensed under Apache License, Version 2.0. - Placed at libs/jackrabbit-webdav-2.2.5-jar-with-dependencies.jar - The jar file must be included in the ownCloud client APK. - Original license document included at libs/LICENSE.txt - See http://jackrabbit.apache.org/ - * Transifex client. Copyright (C) Transifex. Licensed under GNU General Public License. @@ -51,12 +43,37 @@ The third party software included and used by this project is: Used as a helper tool, not included in the ownCloud client APK. Original license document included at third_party/transifex-client/LICENSE. See http://help.transifex.com/features/client/ - - * TouchImageView, commit 6dbeac4f11936185ba374c73144ac431c23c9aab - Copyright (c) 2012 Michael Ortiz - Licensed under MIT License - JAR file libs/touch-image-view.jar has been generated by ownCloud Inc., including without - modifications com.ortiz.touch.ExtendedViewPager and com.ortiz.touch.TouchImageView classes. - See https://github.com/MikeOrtiz/TouchImageView - - \ No newline at end of file + + * floatingactionbutton 1.10.1. + Copyright (c) 2014 Jerzy Chalupski + Licensed under Apache License, Version 2.0. + placed at libs/com-getbase-floatingactionbutton-1-10-0-exploded-aar has been exploded by ownCloud GmbH. + See https://github.com/futuresimple/android-floating-action-button + +* PatternLockView, version 1.0.0 + Copyright (C) 2017 aritraroy + Licensed under Apache License, Version 2.0. + Included in the ownCloud client APK. + See https://github.com/aritraroy/PatternLockView + + * Glide, version 4.6.1 + Copyright (C) 2014 Google, Inc. + Licensed under BSD, part MIT and Apache 2.0. + Included in the ownCloud client APK. + See https://github.com/bumptech/glide + + * PhotoView, version 2.0.0 + Copyright (C) 2017 Chris Banes + Licensed under Apache License, Version 2.0. + Included in the ownCloud client APK. + See https://github.com/chrisbanes/PhotoView + + * OkHttp, version 4.6.0 + Licensed under Apache License, Version 2.0. + Included in the ownCloud client APK. + See https://github.com/square/okhttp + + * Dav4Jvm + Licensed under Mozilla Public License, Version 2.0. + Included in the ownCloud client APK. + See https://gitlab.com/bitfireAT/dav4jvm diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md new file mode 100644 index 00000000000..951f36de9a5 --- /dev/null +++ b/TROUBLESHOOTING.md @@ -0,0 +1,4 @@ +#Troubleshooting + +Check the documentation for troubleshooting information: +https://doc.owncloud.com/android/troubleshooting.html \ No newline at end of file diff --git a/androidx.databinding_viewbinding_7.4.2@aar b/androidx.databinding_viewbinding_7.4.2@aar new file mode 100644 index 00000000000..e69de29bb2d diff --git a/automationTest/.classpath b/automationTest/.classpath deleted file mode 100644 index c52bcedcbe6..00000000000 --- a/automationTest/.classpath +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/automationTest/.gitignore b/automationTest/.gitignore deleted file mode 100644 index 487ae52fe62..00000000000 --- a/automationTest/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ - -target/ -ScreenShots/ -.DS_Store -Users/ \ No newline at end of file diff --git a/automationTest/.project b/automationTest/.project deleted file mode 100644 index b1e58409f8a..00000000000 --- a/automationTest/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - androidtest - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - - diff --git a/automationTest/.settings/org.eclipse.jdt.core.prefs b/automationTest/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 62492222ad2..00000000000 --- a/automationTest/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.7 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.7 diff --git a/automationTest/.settings/org.eclipse.m2e.core.prefs b/automationTest/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index f897a7f1cb2..00000000000 --- a/automationTest/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/automationTest/README.md b/automationTest/README.md deleted file mode 100644 index 899bb8dc799..00000000000 --- a/automationTest/README.md +++ /dev/null @@ -1,20 +0,0 @@ -** Work in progress - -This project contains a set of automatic tests operating in the UI level. - -Tests are to be run with the tool Appium. Check [here][0] to install it and all its dependencies (including Maven). - -You will need to modify the constants in automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/Config.java to assign appropiate values for your test server and accounts. -You will need to include the ownCloud.apk to test in automationTest/src/test/resources/. - -To run the tests from command line, plug a device to your computer or start and emulator. Then type - -mvn clean tests - -To run only one category of the test - -mvn clean -Dtest=RunSmokeTests test - -The project may also be imported in Eclipse, with the appropiate plug-ins, and run from it. - -[0]: http://appium.io/slate/en/master/?java#about-appium \ No newline at end of file diff --git a/automationTest/pom.xml b/automationTest/pom.xml deleted file mode 100644 index 548da37e84c..00000000000 --- a/automationTest/pom.xml +++ /dev/null @@ -1,78 +0,0 @@ - - -4.0.0 - -com.owncloud -androidtest -1.0-SNAPSHOT - - - - - org.apache.maven.plugins - maven-surefire-plugin - 2.18.1 - - - **/*Test**.java - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.3 - - 1.7 - 1.7 - - - - - - - - junit - junit - 4.11 - - - org.seleniumhq.selenium - selenium-java - 2.45.0 - - - io.selendroid - 0.9.0 - selendroid-standalone - - - io.selendroid - 0.9.0 - selendroid-client - - - io.appium - java-client - 2.2.0 - - - commons-lang - commons-lang - 2.6 - - - org.apache.httpcomponents - httpclient - 4.3.1 - - - com.google.android - android - 4.1.1.4 - provided - - - \ No newline at end of file diff --git a/automationTest/resources/.gitignore b/automationTest/resources/.gitignore deleted file mode 100644 index 86d0cb2726c..00000000000 --- a/automationTest/resources/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -# Ignore everything in this directory -* -# Except this file -!.gitignore \ No newline at end of file diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/actions/Actions.java b/automationTest/src/test/java/com/owncloud/android/test/ui/actions/Actions.java deleted file mode 100644 index ecec7f5625f..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/actions/Actions.java +++ /dev/null @@ -1,244 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.actions; - -import java.util.HashMap; - -import org.openqa.selenium.By; -import org.openqa.selenium.NoSuchElementException; -import org.openqa.selenium.ScreenOrientation; -import org.openqa.selenium.remote.RemoteWebElement; -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import org.openqa.selenium.support.ui.ExpectedConditions; -import org.openqa.selenium.support.ui.WebDriverWait; -import com.owncloud.android.test.ui.models.CertificatePopUp; -import com.owncloud.android.test.ui.models.ElementMenuOptions; -import com.owncloud.android.test.ui.models.GmailSendMailView; -import com.owncloud.android.test.ui.models.ShareView; -import com.owncloud.android.test.ui.models.UploadFilesView; -import com.owncloud.android.test.ui.models.LoginForm; -import com.owncloud.android.test.ui.models.FileListView; -import com.owncloud.android.test.ui.models.MenuList; -import com.owncloud.android.test.ui.models.NewFolderPopUp; -import com.owncloud.android.test.ui.models.RemoveConfirmationView; -import com.owncloud.android.test.ui.models.SettingsView; -import com.owncloud.android.test.ui.models.WaitAMomentPopUp; -import com.owncloud.android.test.ui.testSuites.Common; -import com.owncloud.android.test.ui.testSuites.Config; - -public class Actions { - - public static FileListView login(String url, String user, String password, - Boolean isTrusted, AndroidDriver driver) - throws InterruptedException { - LoginForm loginForm = new LoginForm(driver); - CertificatePopUp certificatePopUp = loginForm.typeHostUrl(url); - if(!isTrusted){ - WebDriverWait wait = new WebDriverWait(driver, 30); - //sometimes the certificate has been already accept - //and it doesn't appear again - try { - wait.until(ExpectedConditions - .visibilityOf(certificatePopUp.getOkButtonElement())); - //we need to repaint the screen - //because of some element are misplaced - driver.rotate(ScreenOrientation.LANDSCAPE); - driver.rotate(ScreenOrientation.PORTRAIT); - certificatePopUp.clickOnOkButton(); - }catch (NoSuchElementException e) { - - } - - } - loginForm.typeUserName(user); - loginForm.typePassword(password); - //TODO. Assert related to check the connection? - return loginForm.clickOnConnectButton(); - } - - public static WaitAMomentPopUp createFolder(String folderName, - FileListView fileListView){ - NewFolderPopUp newFolderPopUp = fileListView.clickOnNewFolderButton(); - newFolderPopUp.typeNewFolderName(folderName); - WaitAMomentPopUp waitAMomentPopUp = newFolderPopUp - .clickOnNewFolderOkButton(); - //TODO. assert here - return waitAMomentPopUp; - } - - - public static AndroidElement scrollTillFindElement (String elementName, - AndroidElement element, AndroidDriver driver) { - AndroidElement fileElement; - - if(element.getAttribute("scrollable").equals("true")){ - HashMap scrollObject = new HashMap(); - scrollObject.put("text", elementName); - scrollObject.put("element", ( (RemoteWebElement) element).getId()); - driver.executeScript("mobile: scrollTo", scrollObject); - } - try { - fileElement = (AndroidElement) driver - .findElementByName(elementName); - } catch (NoSuchElementException e) { - fileElement = null; - } - return fileElement; - } - - - public static void deleteAccount (int accountPosition,FileListView fileListView) { - MenuList menulist = fileListView.clickOnMenuButton(); - SettingsView settingView = menulist.clickOnSettingsButton(); - deleteAccount(accountPosition,settingView); - } - - public static void deleteAccount (int accountPosition, SettingsView settingsView) { - settingsView.tapOnAccountElement(accountPosition,1, 1000); - settingsView.clickOnDeleteAccountElement(); - } - - public static void clickOnMainLayout(AndroidDriver driver){ - driver.tap(1, 0, 0, 1); - } - - - public static AndroidElement deleteElement(String elementName, - FileListView fileListView, AndroidDriver driver) throws Exception{ - AndroidElement fileElement; - WaitAMomentPopUp waitAMomentPopUp; - try{ - //To open directly the "file list view" and - //we don't need to know in which view we are - driver.startActivity("com.owncloud.android", - ".ui.activity.FileDisplayActivity"); - fileElement = (AndroidElement) driver - .findElementByName(elementName); - ElementMenuOptions menuOptions = fileListView - .longPressOnElement(elementName); - RemoveConfirmationView removeConfirmationView = menuOptions - .clickOnRemove();; - waitAMomentPopUp = removeConfirmationView - .clickOnRemoteAndLocalButton(); - Common.waitTillElementIsNotPresent( - waitAMomentPopUp.getWaitAMomentTextElement(), 100); - }catch(NoSuchElementException e){ - fileElement=null; - } - return fileElement; - } - - public static AndroidElement shareLinkElementByGmail(String elementName, - FileListView fileListView, AndroidDriver driver, Common common) - throws Exception{ - try{ - //To open directly the "file list view" and - //we don't need to know in which view we are - driver.startActivity("com.owncloud.android", - ".ui.activity.FileDisplayActivity"); - ElementMenuOptions menuOptions = fileListView - .longPressOnElement(elementName); - ShareView shareView = menuOptions.clickOnShareLinkElement(); - Actions.scrollTillFindElement("Gmail", shareView - .getListViewLayout(), driver).click(); - GmailSendMailView gmailSendMailView = new GmailSendMailView(driver); - gmailSendMailView.typeToEmailAdress(Config.gmailAccount); - gmailSendMailView.clickOnSendButton(); - Common.waitTillElementIsNotPresentWithoutTimeout(fileListView - .getProgressCircular(), 1000); - common.wait.until(ExpectedConditions.visibilityOf( - fileListView.getFileElementLayout() - .findElement(By.id(FileListView - .getSharedElementIndicator())))); - - }catch(NoSuchElementException e){ - return null; - } - return (AndroidElement) fileListView.getFileElementLayout() - .findElement(By.id(FileListView.getSharedElementIndicator())); - } - - public static AndroidElement shareLinkElementByCopyLink(String elementName, - FileListView fileListView, AndroidDriver driver, Common common) - throws Exception{ - try{ - //To open directly the "file list view" and - //we don't need to know in which view we are - driver.startActivity("com.owncloud.android", - ".ui.activity.FileDisplayActivity"); - ElementMenuOptions menuOptions = fileListView - .longPressOnElement(elementName); - ShareView shareView = menuOptions.clickOnShareLinkElement(); - Actions.scrollTillFindElement("Copy link", shareView.getListViewLayout(), - driver).click(); - WaitAMomentPopUp waitAMomentPopUp = new WaitAMomentPopUp(driver); - Common.waitTillElementIsNotPresentWithoutTimeout(waitAMomentPopUp - .getWaitAMomentTextElement(), 100); - common.wait.until(ExpectedConditions.visibilityOf( - fileListView.getFileElementLayout() - .findElement(By.id(FileListView.getSharedElementIndicator())))); - }catch(NoSuchElementException e){ - return null; - } - return (AndroidElement) fileListView.getFileElementLayout() - .findElement(By.id(FileListView.getSharedElementIndicator())); - } - - - public static void unshareLinkElement(String elementName, - FileListView fileListView, AndroidDriver driver, Common common) - throws Exception{ - try{ - //To open directly the "file list view" and - //we don't need to know in which view we are - driver.startActivity("com.owncloud.android", - ".ui.activity.FileDisplayActivity"); - ElementMenuOptions menuOptions = fileListView - .longPressOnElement(elementName); - WaitAMomentPopUp waitAMomentPopUp = menuOptions - .clickOnUnshareLinkElement(); - Common.waitTillElementIsNotPresentWithoutTimeout(waitAMomentPopUp - .getWaitAMomentTextElement(), 100); - Common.waitTillElementIsNotPresent((AndroidElement) fileListView - .getFileElementLayout() - .findElement(By.id(FileListView.getSharedElementIndicator()) - ),100); - }catch(NoSuchElementException e){ - - } - } - - - public static FileListView uploadFile(String elementName, - FileListView fileListView) throws InterruptedException{ - fileListView.clickOnUploadButton(); - UploadFilesView uploadFilesView = fileListView - .clickOnFilesElementUploadFile(); - uploadFilesView.clickOnFileName(elementName); - FileListView fileListViewAfterUploadFile = uploadFilesView - .clickOnUploadButton(); - //TO DO. detect when the file is successfully uploaded - Thread.sleep(15000); - return fileListViewAfterUploadFile; - } - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/FailingTestCategory.java b/automationTest/src/test/java/com/owncloud/android/test/ui/groups/FailingTestCategory.java deleted file mode 100644 index 2a91e7ffc94..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/FailingTestCategory.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ -package com.owncloud.android.test.ui.groups; - -public interface FailingTestCategory extends IgnoreTestCategory {} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/FlexibleCategories.java b/automationTest/src/test/java/com/owncloud/android/test/ui/groups/FlexibleCategories.java deleted file mode 100644 index 94a019afffd..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/FlexibleCategories.java +++ /dev/null @@ -1,138 +0,0 @@ -package com.owncloud.android.test.ui.groups; - -import java.lang.annotation.Annotation; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -import org.junit.Test; -import org.junit.experimental.categories.Categories.CategoryFilter; -import org.junit.experimental.categories.Categories.ExcludeCategory; -import org.junit.experimental.categories.Categories.IncludeCategory; -import org.junit.experimental.categories.Category; -import org.junit.runner.Description; -import org.junit.runner.manipulation.NoTestsRemainException; -import org.junit.runners.Suite; -import org.junit.runners.model.InitializationError; -import org.junit.runners.model.RunnerBuilder; - -/** - * This class is based on org.junit.experimental.categories.Categories from JUnit 4.10. - * - * All anotations and inner classes from the original class Categories are removed, - * since they will be re-used. - * Unfortunately sub-classing Categories did not work. - */ -public class FlexibleCategories extends Suite { - - /** - * Specifies the package which should be scanned for test classes (e.g. @TestScanPackage("my.package")). - * This annotation is required. - */ - @Retention(RetentionPolicy.RUNTIME) - public @interface TestScanPackage { - public String value(); - } - - /** - * Specifies the prefix of matching class names (e.g. @TestClassPrefix("Test")). - * This annotation is optional (default: ""). - */ - @Retention(RetentionPolicy.RUNTIME) - public @interface TestClassPrefix { - public String value(); - } - - /** - * Specifies the suffix of matching class names (e.g. @TestClassSuffix("Test")). - * This annotation is optional (default: "Test"). - */ - @Retention(RetentionPolicy.RUNTIME) - public @interface TestClassSuffix { - public String value(); - } - - /** - * Specifies an annotation for methods which must be present in a matching class (e.g. @TestMethodAnnotationFilter(Test.class)). - * This annotation is optional (default: org.junit.Test.class). - */ - @Retention(RetentionPolicy.RUNTIME) - public @interface TestMethodAnnotation { - public Class value(); - } - - public FlexibleCategories(Class clazz, RunnerBuilder builder) - throws InitializationError { - this(builder, clazz, PatternClasspathClassesFinder.getSuiteClasses( - getTestScanPackage(clazz), getTestClassPrefix(clazz), getTestClassSuffix(clazz), - getTestMethodAnnotation(clazz))); - try { - filter(new CategoryFilter(getIncludedCategory(clazz), - getExcludedCategory(clazz))); - } catch (NoTestsRemainException e) { - // Ignore all classes with no matching tests. - } - assertNoCategorizedDescendentsOfUncategorizeableParents(getDescription()); - } - - public FlexibleCategories(RunnerBuilder builder, Class clazz, - Class[] suiteClasses) throws InitializationError { - super(builder, clazz, suiteClasses); - } - - private static String getTestScanPackage(Class clazz) throws InitializationError { - TestScanPackage annotation = clazz.getAnnotation(TestScanPackage.class); - if (annotation == null) { - throw new InitializationError("No package given to scan for tests!\nUse the annotation @TestScanPackage(\"my.package\") on the test suite " + clazz + "."); - } - return annotation.value(); - } - - private static String getTestClassPrefix(Class clazz) { - TestClassPrefix annotation = clazz.getAnnotation(TestClassPrefix.class); - return annotation == null ? "" : annotation.value(); - } - - private static String getTestClassSuffix(Class clazz) { - TestClassSuffix annotation = clazz.getAnnotation(TestClassSuffix.class); - return annotation == null ? "Test" : annotation.value(); - } - - private static Class getTestMethodAnnotation(Class clazz) { - TestMethodAnnotation annotation = clazz.getAnnotation(TestMethodAnnotation.class); - return annotation == null ? Test.class : annotation.value(); - } - - private Class getIncludedCategory(Class clazz) { - IncludeCategory annotation= clazz.getAnnotation(IncludeCategory.class); - return annotation == null ? null : annotation.value(); - } - - private Class getExcludedCategory(Class clazz) { - ExcludeCategory annotation= clazz.getAnnotation(ExcludeCategory.class); - return annotation == null ? null : annotation.value(); - } - - private void assertNoCategorizedDescendentsOfUncategorizeableParents(Description description) throws InitializationError { - if (!canHaveCategorizedChildren(description)) - assertNoDescendantsHaveCategoryAnnotations(description); - for (Description each : description.getChildren()) - assertNoCategorizedDescendentsOfUncategorizeableParents(each); - } - - private void assertNoDescendantsHaveCategoryAnnotations(Description description) throws InitializationError { - for (Description each : description.getChildren()) { - if (each.getAnnotation(Category.class) != null) - throw new InitializationError("Category annotations on Parameterized classes are not supported on individual methods."); - assertNoDescendantsHaveCategoryAnnotations(each); - } - } - - // If children have names like [0], our current magical category code can't determine their - // parentage. - private static boolean canHaveCategorizedChildren(Description description) { - for (Description each : description.getChildren()) - if (each.getTestClass() == null) - return false; - return true; - } -} \ No newline at end of file diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/IgnoreTestCategory.java b/automationTest/src/test/java/com/owncloud/android/test/ui/groups/IgnoreTestCategory.java deleted file mode 100644 index 2586edb7d57..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/IgnoreTestCategory.java +++ /dev/null @@ -1,24 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.groups; - -public interface IgnoreTestCategory {} - diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/InProgressCategory.java b/automationTest/src/test/java/com/owncloud/android/test/ui/groups/InProgressCategory.java deleted file mode 100644 index 850ff45139f..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/InProgressCategory.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.owncloud.android.test.ui.groups; - -public interface InProgressCategory extends IgnoreTestCategory{ - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/NoIgnoreTestCategory.java b/automationTest/src/test/java/com/owncloud/android/test/ui/groups/NoIgnoreTestCategory.java deleted file mode 100644 index 321fb088554..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/NoIgnoreTestCategory.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.groups; - -public interface NoIgnoreTestCategory { - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/OtherTestCategory.java b/automationTest/src/test/java/com/owncloud/android/test/ui/groups/OtherTestCategory.java deleted file mode 100644 index b14c36e48b6..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/OtherTestCategory.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.groups; - -public interface OtherTestCategory extends IgnoreTestCategory {} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/PatternClasspathClassesFinder.java b/automationTest/src/test/java/com/owncloud/android/test/ui/groups/PatternClasspathClassesFinder.java deleted file mode 100644 index b59888309de..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/PatternClasspathClassesFinder.java +++ /dev/null @@ -1,141 +0,0 @@ -package com.owncloud.android.test.ui.groups; - -import java.io.File; -import java.io.IOException; -import java.lang.annotation.Annotation; -import java.lang.reflect.Method; -import java.net.URL; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.List; - -/** - * - * Modified version of ClasspathClassesFinder from: - * http://linsolas.free.fr/wordpress/index.php/2011/02/how-to-categorize-junit-tests-with-maven/ - * - * The difference is, that it does not search for annotated classes but for classes with a certain - * class name prefix and suffix. - */ -public final class PatternClasspathClassesFinder { - - /** - * Get the list of classes of a given package name, and that are annotated - * by a given annotation. - * - * @param packageName - * The package name of the classes. - * @param classPrefix - * The prefix of the class name. - * @param classSuffix - * The suffix of the class name. - * @param methodAnnotation - * Only return classes containing methods annotated with methodAnnotation. - * @return The List of classes that matches the requirements. - */ - public static Class[] getSuiteClasses(String packageName, - String classPrefix, String classSuffix, - Class methodAnnotation) { - try { - return getClasses(packageName, classPrefix, classSuffix, methodAnnotation); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - /** - * Get the list of classes of a given package name, and that are annotated - * by a given annotation. - * - * @param packageName - * The package name of the classes. - * @param classPrefix - * The prefix of the class name. - * @param classSuffix - * The suffix of the class name. - * @param methodAnnotation - * Only return classes containing methods annotated with methodAnnotation. - * @return The List of classes that matches the requirements. - * @throws ClassNotFoundException - * If something goes wrong... - * @throws IOException - * If something goes wrong... - */ - private static Class[] getClasses(String packageName, - String classPrefix, String classSuffix, - Class methodAnnotation) - throws ClassNotFoundException, IOException { - ClassLoader classLoader = Thread.currentThread() - .getContextClassLoader(); - String path = packageName.replace('.', '/'); - // Get classpath - Enumeration resources = classLoader.getResources(path); - List dirs = new ArrayList(); - while (resources.hasMoreElements()) { - URL resource = resources.nextElement(); - dirs.add(new File(resource.getFile())); - } - // For each classpath, get the classes. - ArrayList> classes = new ArrayList>(); - for (File directory : dirs) { - classes.addAll(findClasses(directory, packageName, classPrefix, classSuffix, methodAnnotation)); - } - return classes.toArray(new Class[classes.size()]); - } - - /** - * Find classes, in a given directory (recursively), for a given package - * name, that are annotated by a given annotation. - * - * @param directory - * The directory where to look for. - * @param packageName - * The package name of the classes. - * @param classPrefix - * The prefix of the class name. - * @param classSuffix - * The suffix of the class name. - * @param methodAnnotation - * Only return classes containing methods annotated with methodAnnotation. - * @return The List of classes that matches the requirements. - * @throws ClassNotFoundException - * If something goes wrong... - */ - private static List> findClasses(File directory, - String packageName, String classPrefix, String classSuffix, - Class methodAnnotation) - throws ClassNotFoundException { - List> classes = new ArrayList>(); - if (!directory.exists()) { - return classes; - } - File[] files = directory.listFiles(); - for (File file : files) { - if (file.isDirectory()) { - classes.addAll(findClasses(file, - packageName + "." + file.getName(), classPrefix, classSuffix, methodAnnotation)); - } else if (file.getName().startsWith(classPrefix) && file.getName().endsWith(classSuffix + ".class")) { - // We remove the .class at the end of the filename to get the - // class name... - Class clazz = Class.forName(packageName - + '.' - + file.getName().substring(0, - file.getName().length() - 6)); - - // Check, if class contains test methods (prevent "No runnable methods" exception): - boolean classHasTest = false; - for (Method method : clazz.getMethods()) { - if (method.getAnnotation(methodAnnotation) != null) { - classHasTest = true; - break; - } - } - if (classHasTest) { - classes.add(clazz); - } - } - } - return classes; - } -} \ No newline at end of file diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/SmokeTestCategory.java b/automationTest/src/test/java/com/owncloud/android/test/ui/groups/SmokeTestCategory.java deleted file mode 100644 index ebac5fecf45..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/SmokeTestCategory.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.groups; - -public interface SmokeTestCategory { - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/UnfinishedTestCategory.java b/automationTest/src/test/java/com/owncloud/android/test/ui/groups/UnfinishedTestCategory.java deleted file mode 100644 index 2a1451d557a..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/groups/UnfinishedTestCategory.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.groups; - -public interface UnfinishedTestCategory extends IgnoreTestCategory{ - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/CertificatePopUp.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/CertificatePopUp.java deleted file mode 100644 index 1908ac9feb0..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/CertificatePopUp.java +++ /dev/null @@ -1,49 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -import org.openqa.selenium.support.PageFactory; - -public class CertificatePopUp { - final AndroidDriver driver; - - @AndroidFindBy(name = "OK") - private AndroidElement okButton; - - public CertificatePopUp (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public void clickOnOkButton () { - okButton.click(); - } - - public AndroidElement getOkButtonElement () { - return okButton; - } - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/ElementMenuOptions.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/ElementMenuOptions.java deleted file mode 100644 index 7480360706e..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/ElementMenuOptions.java +++ /dev/null @@ -1,94 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -import org.openqa.selenium.support.PageFactory; - -public class ElementMenuOptions { - - final AndroidDriver driver; - - @AndroidFindBy(name = "Share link") - private AndroidElement shareLinkElement; - - @AndroidFindBy(name = "Unshare link") - private AndroidElement unshareLinkElement; - - @AndroidFindBy(name = "Details") - private AndroidElement detailsFileElement; - - @AndroidFindBy(name = "Rename") - private AndroidElement renameFileElement; - - @AndroidFindBy(name = "Remove") - private AndroidElement removeFileElement; - - @AndroidFindBy(name = "Move") - private AndroidElement moveElement; - - public ElementMenuOptions (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public FileDetailsView clickOnDetails () { - detailsFileElement.click(); - FileDetailsView fileDetailsView = new FileDetailsView(driver); - return fileDetailsView; - } - - public RemoveConfirmationView clickOnRemove () { - removeFileElement.click(); - RemoveConfirmationView removeConfirmationView = - new RemoveConfirmationView(driver); - return removeConfirmationView; - } - - - public MoveView clickOnMove () { - moveElement.click(); - MoveView moveView = new MoveView(driver); - return moveView; - } - - public NewFolderPopUp clickOnRename () { - renameFileElement.click(); - NewFolderPopUp newFolderPopUp = new NewFolderPopUp(driver); - return newFolderPopUp; - } - - public ShareView clickOnShareLinkElement () { - shareLinkElement.click(); - ShareView shareView = new ShareView(driver); - return shareView; - } - - public WaitAMomentPopUp clickOnUnshareLinkElement () { - unshareLinkElement.click(); - WaitAMomentPopUp waitAMomentPopUp = new WaitAMomentPopUp(driver); - return waitAMomentPopUp; - } -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/FileDetailsView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/FileDetailsView.java deleted file mode 100644 index 46da42fd29d..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/FileDetailsView.java +++ /dev/null @@ -1,61 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -import org.openqa.selenium.support.CacheLookup; -import org.openqa.selenium.support.PageFactory; - -public class FileDetailsView { - final AndroidDriver driver; - - @CacheLookup - @AndroidFindBy(name = "Keep file up to date") - private AndroidElement keepFileUpToDateCheckbox; - - @AndroidFindBy(id = "com.owncloud.android:id/fdProgressBar") - private AndroidElement progressBar; - - public FileDetailsView (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public void checkKeepFileUpToDateCheckbox () { - if(keepFileUpToDateCheckbox.getAttribute("checked").equals("false")){ - keepFileUpToDateCheckbox.click(); - } - } - - public void unCheckKeepFileUpToDateCheckbox () { - if(keepFileUpToDateCheckbox.getAttribute("checked").equals("true")){ - keepFileUpToDateCheckbox.click(); - } - } - - public AndroidElement getProgressBar (){ - return progressBar; - } -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/FileListView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/FileListView.java deleted file mode 100644 index 3c33864e0b8..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/FileListView.java +++ /dev/null @@ -1,211 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import java.util.List; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.android.AndroidKeyCode; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -import org.openqa.selenium.NoSuchElementException; -import org.openqa.selenium.support.CacheLookup; -import org.openqa.selenium.support.PageFactory; -import org.openqa.selenium.Point; - -import com.owncloud.android.test.ui.actions.Actions; - -public class FileListView { - final AndroidDriver driver; - - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".description(\"More options\")") - private AndroidElement menuButton; - - @CacheLookup - @AndroidFindBy(id = "com.owncloud.android:id/list_root") - private AndroidElement filesLayout; - - @CacheLookup - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".resourceId(\"android:id/action_bar_title\")") - private AndroidElement titleText; - - @AndroidFindBy(id = "android:id/progress_circular") - private AndroidElement progressCircular; - - @CacheLookup - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".description(\"New folder\")") - private AndroidElement newFolderButton; - - @CacheLookup - @AndroidFindBy(uiAutomator = "new UiSelector().description(\"Upload\")") - private AndroidElement uploadButton; - - private AndroidElement waitAMomentText; - - @AndroidFindBy(id = "com.owncloud.android:id/ListItemLayout") - private List listItemLayout; - - @AndroidFindBy(id = "com.owncloud.android:id/list_root") - private AndroidElement listRootLayout; - - @AndroidFindBy(name = "Files") - private AndroidElement filesElementUploadFile; - - @CacheLookup - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".description(\"List Layout\")") - private AndroidElement listLayout; - - @AndroidFindBy(uiAutomator = "new UiSelector().className(\"android.widget.FrameLayout\").index(0)") - private AndroidElement deviceScreen; - - private AndroidElement fileElement; - - private AndroidElement fileElementLayout; - - private static String localFileIndicator = - "com.owncloud.android:id/localFileIndicator"; - private static String favoriteFileIndicator = - "com.owncloud.android:id/favoriteIcon"; - private static String sharedElementIndicator = - "com.owncloud.android:id/sharedIcon"; - - - public FileListView (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public MenuList clickOnMenuButton () { - //if the menu option is not in the actionBar, it is opening again - try { - menuButton.click(); - } catch (NoSuchElementException e){ - driver.sendKeyEvent(AndroidKeyCode.MENU); - } - MenuList menuList = new MenuList (driver); - return menuList; - } - - public SettingsView getSettingsView () { - SettingsView settingsView = new SettingsView(driver); - return settingsView; - } - - public NewFolderPopUp clickOnNewFolderButton () { - newFolderButton.click(); - NewFolderPopUp newFolderPopUp = new NewFolderPopUp(driver); - return newFolderPopUp; - } - - public void clickOnUploadButton () { - uploadButton.click(); - } - - public UploadFilesView clickOnFilesElementUploadFile () { - filesElementUploadFile.click(); - UploadFilesView uploadFilesView = new UploadFilesView(driver); - return uploadFilesView; - } - - public AndroidElement getTitleTextElement () { - return titleText; - } - - public AndroidElement getUploadButton () { - return uploadButton; - } - - public AndroidElement getWaitAMomentTextElement () { - return waitAMomentText; - } - - public AndroidElement getListRootElement () { - return listRootLayout; - } - - public List getListItemLayout () { - return listItemLayout; - } - - public AndroidElement getFileElement () { - return fileElement; - } - - public ElementMenuOptions longPressOnElement (String elementName) { - scrollTillFindElement(elementName).tap(1, 1000); - //fileElement.tap(1, 1000); - ElementMenuOptions menuOptions = new ElementMenuOptions(driver); - return menuOptions; - } - - public AndroidElement scrollTillFindElement (String elementName) { - fileElement = Actions - .scrollTillFindElement (elementName,filesLayout,driver); - try { - fileElementLayout = (AndroidElement) driver - .findElementByAndroidUIAutomator("new UiSelector()" - + ".description(\"LinearLayout-"+ elementName +"\")"); - } catch (NoSuchElementException e) { - fileElementLayout = null; - } - return fileElement; - } - - public AndroidElement getFileElementLayout () { - return fileElementLayout; - } - - public AndroidElement getProgressCircular () { - return progressCircular; - } - - public static String getLocalFileIndicator() { - return localFileIndicator; - } - - public static String getFavoriteFileIndicator() { - return favoriteFileIndicator; - } - - public static String getSharedElementIndicator() { - return sharedElementIndicator; - } - public void pulldownToRefresh () throws InterruptedException { - Point listLocation = listLayout.getLocation(); - driver.swipe(listLocation.getX(),listLocation.getY(), - listLocation.getX(),listLocation.getY()+1000, 5000); - } - - - - public void pulldownToSeeNotification () throws InterruptedException { - Point listLocation = deviceScreen.getLocation(); - driver.swipe(listLocation.getX(),listLocation.getY(), - listLocation.getX(),listLocation.getY()+1000, 5000); - } - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/GmailEmailListView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/GmailEmailListView.java deleted file mode 100644 index a6b6975141a..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/GmailEmailListView.java +++ /dev/null @@ -1,58 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -import org.openqa.selenium.NoSuchElementException; -import org.openqa.selenium.support.PageFactory; - -public class GmailEmailListView { - - final AndroidDriver driver; - - @AndroidFindBy(uiAutomator = "new UiSelector().description(\"" - + "me about UploadFile, on May 11, conversation read\")") - private AndroidElement emailAmericanFormatDate; - @AndroidFindBy(uiAutomator = "new UiSelector().description(\"" - + "me about UploadFile, on 11 May, conversation read\")") - private AndroidElement emailEuropeanFormatDate; - - - public GmailEmailListView (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public GmailEmailView clickOnEmail (){ - try{ - emailAmericanFormatDate.click(); - }catch (NoSuchElementException e) { - emailEuropeanFormatDate.click(); - } - GmailEmailView gmailEmailView = new GmailEmailView(driver); - return gmailEmailView; - } - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/GmailEmailView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/GmailEmailView.java deleted file mode 100644 index 6d6acd79736..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/GmailEmailView.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -import org.openqa.selenium.support.CacheLookup; -import org.openqa.selenium.support.PageFactory; - -import com.owncloud.android.test.ui.testSuites.Config; - -public class GmailEmailView { - final AndroidDriver driver; - - @CacheLookup - @AndroidFindBy(name = Config.fileToTestSendByEmailName) - private AndroidElement fileButton; - - public GmailEmailView (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public ImageView clickOnfileButton (){ - fileButton.click(); - ImageView imageView = new ImageView(driver); - return imageView; - } -} \ No newline at end of file diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/GmailSendMailView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/GmailSendMailView.java deleted file mode 100644 index a8688157cf1..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/GmailSendMailView.java +++ /dev/null @@ -1,63 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -import org.openqa.selenium.support.CacheLookup; -import org.openqa.selenium.support.PageFactory; - -public class GmailSendMailView { - final AndroidDriver driver; - - @CacheLookup - @AndroidFindBy(uiAutomator = "new UiSelector().description(\"To\")") - private AndroidElement toTextField; - - @CacheLookup - @AndroidFindBy(name = "Subject") - private AndroidElement subjectTextField; - - @CacheLookup - @AndroidFindBy(uiAutomator = "new UiSelector().description(\"Send\")") - private AndroidElement sendButton; - - public GmailSendMailView (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public void typeToEmailAdress (String email) { - toTextField.sendKeys(email + "\n"); - } - - public void clickOnSendButton () { - sendButton.click(); - } - - public void typeSubject (String subject) { - subjectTextField.clear(); - subjectTextField.sendKeys(subject); - } -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/ImageView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/ImageView.java deleted file mode 100644 index c0f13fcc14e..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/ImageView.java +++ /dev/null @@ -1,80 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; -import org.openqa.selenium.support.CacheLookup; -import org.openqa.selenium.support.PageFactory; - -import com.owncloud.android.test.ui.actions.Actions; -import com.owncloud.android.test.ui.testSuites.Common; - - -public class ImageView { - final AndroidDriver driver; - - @CacheLookup - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".description(\"More options\")") - private AndroidElement optionsButton; - - @AndroidFindBy(name = "Share") - private AndroidElement shareButton; - - @AndroidFindBy(name = "ownCloud") - private AndroidElement ownCloudButton; - - @AndroidFindBy(name = "Share with ownCloud") - private AndroidElement shareWithOwnCloudButton; - - @AndroidFindBy(name = "Just once") - private AndroidElement justOnceButton; - - @AndroidFindBy(id = "android:id/resolver_list") - private AndroidElement sharingAppsLayout; - - public ImageView (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public void clickOnOptionsButton(){ - optionsButton.click(); - } - - public void clickOnShareButton(){ - shareButton.click(); - } - - public void clickOnOwnCloudButton(){ - if(Common.isElementPresent(ownCloudButton)){ - Actions.scrollTillFindElement("ownCloud",sharingAppsLayout,driver); - ownCloudButton.click(); - }else if(Common.isElementPresent(shareWithOwnCloudButton)){} - } - - public void clickOnJustOnceButton(){ - justOnceButton.click(); - } -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/LoginForm.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/LoginForm.java deleted file mode 100644 index aaef6aedfd5..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/LoginForm.java +++ /dev/null @@ -1,115 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import org.openqa.selenium.support.CacheLookup; -import org.openqa.selenium.support.PageFactory; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -public class LoginForm { - final AndroidDriver driver; - - @CacheLookup - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".description(\"Server address\")") - private AndroidElement hostUrlInput; - - @CacheLookup - @AndroidFindBy(uiAutomator = "new UiSelector().description(\"Username\")") - private AndroidElement userNameInput; - - @CacheLookup - @AndroidFindBy(uiAutomator = "new UiSelector().description(\"Password\")") - private AndroidElement passwordInput; - - @CacheLookup - @AndroidFindBy(uiAutomator = "new UiSelector().description(\"Connect\")") - private AndroidElement connectButton; - - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".description(\"Testing connection\")") - private AndroidElement serverStatusText; - - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".description(\"Wrong username or password\")") - private AndroidElement authStatusText; - - public LoginForm (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public CertificatePopUp typeHostUrl (String hostUrl) { - hostUrlInput.clear(); - hostUrlInput.sendKeys(hostUrl + "\n"); - CertificatePopUp certificatePopUp = new CertificatePopUp(driver); - return certificatePopUp; - } - - public void clickOnUserName () { - userNameInput.click(); - } - - public void typeUserName (String userName) { - userNameInput.clear(); - //using the \n , it not need to hide the keyboard - //which sometimes gives problems - userNameInput.sendKeys(userName + "\n"); - //driver.hideKeyboard(); - } - - public void typePassword (String password) { - passwordInput.clear(); - passwordInput.sendKeys(password + "\n"); - //driver.hideKeyboard(); - } - - public FileListView clickOnConnectButton () { - connectButton.click(); - FileListView fileListView = new FileListView(driver); - return fileListView; - } - - public AndroidElement gethostUrlInput () { - return hostUrlInput; - } - - public AndroidElement getUserNameInput () { - return userNameInput; - } - - public AndroidElement getPasswordInput () { - return passwordInput; - } - - - public AndroidElement getServerStatusTextElement () { - return serverStatusText; - } - - public AndroidElement getAuthStatusText () { - return authStatusText; - } -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/MenuList.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/MenuList.java deleted file mode 100644 index 132e6717cfd..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/MenuList.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import org.openqa.selenium.support.PageFactory; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -public class MenuList { - - final AndroidDriver driver; - - @AndroidFindBy(name = "Settings") - private AndroidElement settingsButton; - - public MenuList (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public SettingsView clickOnSettingsButton () { - settingsButton.click(); - SettingsView settingsView = new SettingsView(driver); - return settingsView; - } -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/MoveView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/MoveView.java deleted file mode 100644 index 222a268effb..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/MoveView.java +++ /dev/null @@ -1,57 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -import org.openqa.selenium.support.CacheLookup; -import org.openqa.selenium.support.PageFactory; - -import com.owncloud.android.test.ui.actions.Actions; - -public class MoveView { - final AndroidDriver driver; - - @CacheLookup - @AndroidFindBy(id = "com.owncloud.android:id/list_root") - private AndroidElement filesLayout; - - @AndroidFindBy(name = "Choose") - private AndroidElement chooseButton; - - public MoveView (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public WaitAMomentPopUp clickOnChoose () { - chooseButton.click(); - WaitAMomentPopUp waitAMomentPopUp = new WaitAMomentPopUp(driver); - return waitAMomentPopUp; - } - - public AndroidElement scrollTillFindElement (String elementName) { - return Actions.scrollTillFindElement (elementName,filesLayout,driver); - } -} \ No newline at end of file diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/NewFolderPopUp.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/NewFolderPopUp.java deleted file mode 100644 index fb280662728..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/NewFolderPopUp.java +++ /dev/null @@ -1,58 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import org.openqa.selenium.support.PageFactory; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -public class NewFolderPopUp { - - final AndroidDriver driver; - - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".resourceId(\"android:id/button1\")") - private AndroidElement newFolderOkButton; - - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".resourceId(\"com.owncloud.android:id/user_input\")") - private AndroidElement newFolderNameField; - - public NewFolderPopUp (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public void typeNewFolderName (String newFolderName) { - newFolderNameField.clear(); - newFolderNameField.sendKeys(newFolderName + "\n"); - //driver.hideKeyboard(); - } - - public WaitAMomentPopUp clickOnNewFolderOkButton () { - newFolderOkButton.click(); - WaitAMomentPopUp waitAMomentPopUp = new WaitAMomentPopUp(driver); - return waitAMomentPopUp; - } -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/NotificationView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/NotificationView.java deleted file mode 100644 index 35de73c861b..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/NotificationView.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.owncloud.android.test.ui.models; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -import org.openqa.selenium.support.PageFactory; - -public class NotificationView { -final AndroidDriver driver; - - @AndroidFindBy(name = "Upload succeeded") - private static AndroidElement uploadSucceededNotification; - - @AndroidFindBy(name = "Uploading ?") - private static AndroidElement uploadingNotification; - - @AndroidFindBy(uiAutomator = "new UiSelector().description(\"Clear all notifications.\")") - private AndroidElement clearAllNotificationButton; - - @AndroidFindBy(uiAutomator = "new UiSelector().className(\"android.widget.FrameLayout\").index(0)") - private AndroidElement notificationArea; - - - public NotificationView (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - - public AndroidElement getUploadSucceededNotification() { - return uploadSucceededNotification; - } - - public AndroidElement getUploadingNotification() { - return uploadingNotification; - } - - public AndroidElement getClearAllNotificationButton() { - return clearAllNotificationButton; - } - - public void tapOnClearAllNotification () { - clearAllNotificationButton.tap(1, 1000); - } - - public void tapOnBottomNotificationArea(){ - //TODO. it is not working - notificationArea.getSize(); - notificationArea.tap(1, 1000); - } - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/PassCodeRequestView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/PassCodeRequestView.java deleted file mode 100644 index 52744cb5689..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/PassCodeRequestView.java +++ /dev/null @@ -1,60 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import org.openqa.selenium.support.PageFactory; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -public class PassCodeRequestView { -final AndroidDriver driver; - - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".className(\"android.widget.EditText\").index(0)") - private AndroidElement codeElement1; - - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".className(\"android.widget.EditText\").index(1)") - private AndroidElement codeElement2; - - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".className(\"android.widget.EditText\").index(2)") - private AndroidElement codeElement3; - - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".className(\"android.widget.EditText\").index(3)") - private AndroidElement codeElement4; - - public PassCodeRequestView (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public void enterPasscode(String codeNumber1, String codeNumber2, - String codeNumber3, String codeNumber4){ - codeElement1 - .sendKeys(codeNumber1 + codeNumber1 + codeNumber1 + codeNumber1); - } - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/PassCodeView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/PassCodeView.java deleted file mode 100644 index 6f84fca582f..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/PassCodeView.java +++ /dev/null @@ -1,71 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -import org.openqa.selenium.support.PageFactory; - -public class PassCodeView { - final AndroidDriver driver; - - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".className(\"android.widget.EditText\").index(0)") - private AndroidElement codeElement1; - - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".className(\"android.widget.EditText\").index(1)") - private AndroidElement codeElement2; - - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".className(\"android.widget.EditText\").index(2)") - private AndroidElement codeElement3; - - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".className(\"android.widget.EditText\").index(3)") - private AndroidElement codeElement4; - - @AndroidFindBy(name = "Cancel") - private AndroidElement cancelButton; - - public PassCodeView (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public PassCodeView enterPasscode(String codeNumber1, String codeNumber2, - String codeNumber3, String codeNumber4){ - codeElement1 - .sendKeys(codeNumber1 + codeNumber1 + codeNumber1 + codeNumber1); - return this; - } - public SettingsView reenterPasscode(String codeNumber1, - String codeNumber2, String codeNumber3, String codeNumber4){ - codeElement1 - .sendKeys(codeNumber1 + codeNumber1 + codeNumber1 + codeNumber1); - SettingsView settingsView = new SettingsView(driver); - return settingsView; - } - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/RemoveConfirmationView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/RemoveConfirmationView.java deleted file mode 100644 index 5b0c06617be..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/RemoveConfirmationView.java +++ /dev/null @@ -1,46 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -import org.openqa.selenium.support.PageFactory; - -public class RemoveConfirmationView { - final AndroidDriver driver; - - @AndroidFindBy(name = "Remote and local") - private AndroidElement remoteAndLocalButton; - - public RemoveConfirmationView (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public WaitAMomentPopUp clickOnRemoteAndLocalButton () { - remoteAndLocalButton.click(); - WaitAMomentPopUp waitAMomentPopUp = new WaitAMomentPopUp(driver); - return waitAMomentPopUp; - } -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/SettingsView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/SettingsView.java deleted file mode 100644 index 900c03b2a04..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/SettingsView.java +++ /dev/null @@ -1,101 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -import org.openqa.selenium.support.CacheLookup; -import org.openqa.selenium.support.PageFactory; - -import com.owncloud.android.test.ui.testSuites.Config; - -public class SettingsView { - final AndroidDriver driver; - - @CacheLookup - @AndroidFindBy(name = Config.userAccount) - private AndroidElement accountElement; - - @CacheLookup - @AndroidFindBy(name = Config.userAccount2) - private AndroidElement accountElement2; - - @AndroidFindBy(name = "Delete account") - private AndroidElement deleteAccountElement; - - @AndroidFindBy(name = "Change password") - private AndroidElement changePasswordElement; - - @AndroidFindBy(name = "Add account") - private AndroidElement addAccountElement; - - @AndroidFindBy(uiAutomator = "new UiSelector()" - + ".className(\"android.widget.CheckBox\").index(0)") - private AndroidElement passcodeCheckbox; - - public SettingsView (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public void tapOnAccountElement (int accountPosition, int fingers, int milliSeconds) { - if(accountPosition==1) - accountElement.tap(fingers, milliSeconds); - else - accountElement2.tap(fingers, milliSeconds); - } - - public void tapOnAddAccount (int fingers, int milliSeconds) { - addAccountElement.tap(fingers, milliSeconds); - } - - public LoginForm clickOnDeleteAccountElement () { - deleteAccountElement.click(); - LoginForm loginForm = new LoginForm(driver); - return loginForm; - } - - public LoginForm clickOnChangePasswordElement () { - changePasswordElement.click(); - LoginForm loginForm = new LoginForm(driver); - return loginForm; - } - - public PassCodeView EnablePassCode(){ - if(!passcodeCheckbox.isSelected()){ - passcodeCheckbox.click(); - } - PassCodeView passcodeview = new PassCodeView(driver); - return passcodeview; - } - - public PassCodeView DisablePassCode(){ - if(passcodeCheckbox.isSelected()){ - passcodeCheckbox.click(); - } - PassCodeView passcodeview = new PassCodeView(driver); - return passcodeview; - } - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/ShareView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/ShareView.java deleted file mode 100644 index 650671ba35a..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/ShareView.java +++ /dev/null @@ -1,48 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -import org.openqa.selenium.support.CacheLookup; -import org.openqa.selenium.support.FindBy; -import org.openqa.selenium.support.PageFactory; - -public class ShareView { - final AndroidDriver driver; - - @CacheLookup - @FindBy(id = "android:id/select_dialog_listview") - private AndroidElement listViewLayout; - - public ShareView (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public AndroidElement getListViewLayout () { - return listViewLayout; - } - - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/UploadFilesView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/UploadFilesView.java deleted file mode 100644 index 599e90c1da3..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/UploadFilesView.java +++ /dev/null @@ -1,67 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -import org.openqa.selenium.support.CacheLookup; -import org.openqa.selenium.support.PageFactory; - -import com.owncloud.android.test.ui.actions.Actions; - -public class UploadFilesView{ - final AndroidDriver driver; - - @CacheLookup - @AndroidFindBy(id = "com.owncloud.android:id/list_root") - private AndroidElement filesLayout; - - @CacheLookup - @AndroidFindBy(id = "com.owncloud.android:id/upload_files_btn_upload") - private AndroidElement uploadButton; - - private AndroidElement fileElement; - - public UploadFilesView (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public FileListView clickOnUploadButton () { - uploadButton.click(); - FileListView fileListView = new FileListView (driver); - return fileListView; - } - - //change to scrollTillFindElement - public void scrollTillFindFile (String fileName) { - fileElement = Actions - .scrollTillFindElement(fileName,filesLayout,driver); - } - - public void clickOnFileName (String fileName) { - scrollTillFindFile(fileName); - fileElement.click(); - } -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/UploadView.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/UploadView.java deleted file mode 100644 index 5975c9af7dc..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/UploadView.java +++ /dev/null @@ -1,46 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -import org.openqa.selenium.support.CacheLookup; -import org.openqa.selenium.support.PageFactory; - -public class UploadView { - final AndroidDriver driver; - - @CacheLookup - @AndroidFindBy(name = "Upload") - private AndroidElement uploadButton; - - public UploadView (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public void clickOUploadButton () { - uploadButton.click(); - } -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/models/WaitAMomentPopUp.java b/automationTest/src/test/java/com/owncloud/android/test/ui/models/WaitAMomentPopUp.java deleted file mode 100644 index d296235b571..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/models/WaitAMomentPopUp.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.models; - -import org.openqa.selenium.support.PageFactory; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; -import io.appium.java_client.pagefactory.AndroidFindBy; -import io.appium.java_client.pagefactory.AppiumFieldDecorator; - -public class WaitAMomentPopUp { - final AndroidDriver driver; - - @AndroidFindBy(name = "Wait a moment") - private AndroidElement waitAMomentText; - - public WaitAMomentPopUp (AndroidDriver driver) { - this.driver = driver; - PageFactory.initElements(new AppiumFieldDecorator(driver), this); - } - - public AndroidElement getWaitAMomentTextElement () { - return waitAMomentText; - } -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/.gitignore b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/.gitignore deleted file mode 100644 index fa0f66dfc9e..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/.gitignore +++ /dev/null @@ -1 +0,0 @@ -Config.java \ No newline at end of file diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/Common.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/Common.java deleted file mode 100644 index 7510cd99b26..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/Common.java +++ /dev/null @@ -1,203 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - -import static org.junit.Assert.*; - -import java.io.File; -import java.io.IOException; -import java.net.URL; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.concurrent.TimeUnit; - -import org.apache.commons.io.FileUtils; -import org.openqa.selenium.By; -import org.openqa.selenium.NoSuchElementException; -import org.openqa.selenium.OutputType; -import org.openqa.selenium.TimeoutException; -import org.openqa.selenium.remote.DesiredCapabilities; -import org.openqa.selenium.remote.RemoteWebDriver; -import org.openqa.selenium.support.ui.WebDriverWait; - -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; - -public class Common{ - AndroidDriver driver; - static int waitingTime = 30; - - public WebDriverWait wait; - - protected AndroidDriver setUpCommonDriver () throws Exception { - File rootPath = new File(System.getProperty("user.dir")); - File appDir = new File(rootPath,"src/test/resources"); - File app = new File(appDir,"ownCloud.apk"); - DesiredCapabilities capabilities = new DesiredCapabilities(); - capabilities.setCapability("platformName", "Android"); - capabilities.setCapability("deviceName", "test"); - capabilities.setCapability("app", app.getAbsolutePath()); - capabilities.setCapability("appPackage", "com.owncloud.android"); - capabilities.setCapability("appActivity", - ".ui.activity.FileDisplayActivity"); - capabilities.setCapability("appWaitActivity", - ".authentication.AuthenticatorActivity"); - driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), - capabilities); - driver.manage().timeouts().implicitlyWait(waitingTime, - TimeUnit.SECONDS); - wait = new WebDriverWait(driver, waitingTime, 50); - return driver; - - } - - protected boolean waitForTextPresent(String text, AndroidElement element) - throws InterruptedException{ - for (int second = 0;;second++){ - if (second >= waitingTime) - return false; - try{ - if (text.equals(element.getText())) - break; - } catch (Exception e){ - - } - Thread.sleep(1000); - } - return true; - } - - protected boolean isElementPresent(AndroidElement element, By by) { - try { - element.findElement(by); - return true; - } catch (NoSuchElementException e) { - return false; - } - } - - public static boolean isElementPresent(AndroidElement element) { - try{ - element.isDisplayed(); - } catch (NoSuchElementException e){ - return false; - } - return true; - } - - //pollingTime in milliseconds - public static void waitTillElementIsNotPresent (AndroidElement element, - int pollingTime) throws Exception { - for (int time = 0;time <= waitingTime * 1000;time += pollingTime){ - try{ - element.isDisplayed(); - } catch (NoSuchElementException e){ - return; - } - Thread.sleep(pollingTime); - } - throw new TimeoutException(); - } - - public static void waitTillElementIsNotPresentWithoutTimeout ( - AndroidElement element,int pollingTime) - throws InterruptedException { - for (int time = 0;time <= waitingTime * 1000;time += pollingTime){ - try{ - element.isDisplayed(); - } catch (NoSuchElementException e){ - return; - } - Thread.sleep(pollingTime); - } - } - - public static void waitTillElementIsPresent ( - AndroidElement element,int pollingTime) - throws InterruptedException { - for (int time = 0;time <= waitingTime * 1000;time += pollingTime){ - try{ - if(element.isDisplayed()){ - return; - } - } catch (NoSuchElementException e){ - - } - Thread.sleep(pollingTime); - } - } - - protected void takeScreenShotOnFailed (String testName) - throws IOException { - File file = ((RemoteWebDriver) driver) - .getScreenshotAs(OutputType.FILE); - SimpleDateFormat dt1 = new SimpleDateFormat("yyyy-MM-dd"); - Date today = Calendar.getInstance().getTime(); - String screenShotName = "ScreenShots/" + dt1.format(today) + "/" - + testName + ".png"; - FileUtils.copyFile(file, new File(screenShotName)); - } - - protected void assertIsInFileListView() throws InterruptedException { - //waitForTextPresent("Wrong username or password", - // changePasswordForm.getAuthStatusText()); - Thread.sleep(2000); - assertTrue(waitForTextPresent("ownCloud", (AndroidElement) driver - .findElementByAndroidUIAutomator("new UiSelector()" - + ".resourceId(\"android:id/action_bar_title\")"))); - assertTrue(isElementPresent((AndroidElement) driver - .findElementByAndroidUIAutomator("new UiSelector()" - + ".description(\"Upload\")"))); - } - - protected void assertIsNotInFileListView() throws InterruptedException { - AndroidElement fileElement; - assertTrue(waitForTextPresent("ownCloud", (AndroidElement) driver - .findElementByAndroidUIAutomator("new UiSelector()" - + ".resourceId(\"android:id/action_bar_title\")"))); - try { - fileElement = (AndroidElement) driver - .findElementByAndroidUIAutomator("new UiSelector()" - + ".description(\"Upload\")"); - } catch (NoSuchElementException e) { - fileElement = null; - } - assertNull(fileElement); - } - - protected void assertIsPasscodeRequestView() throws InterruptedException { - assertTrue(waitForTextPresent("ownCloud", (AndroidElement) driver - .findElementByAndroidUIAutomator("new UiSelector()" - + ".resourceId(\"android:id/action_bar_title\")"))); - assertTrue(((AndroidElement) driver.findElementByAndroidUIAutomator( - "new UiSelector().text(\"Please, insert your pass code\")")) - .isDisplayed()); - - } - - protected void assertIsInSettingsView() throws InterruptedException { - assertTrue(waitForTextPresent("Settings", (AndroidElement) driver - .findElementByAndroidUIAutomator("new UiSelector()" - + ".resourceId(\"android:id/action_bar_title\")"))); - } - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/Config.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/Config.java deleted file mode 100644 index 4674fab2094..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/Config.java +++ /dev/null @@ -1,54 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - -public final class Config { - - //without http or https - public static final String URL = "owncloudServerVar"; - public static boolean isTrusted = true; - - //without http or https - public static final String URL2 = "owncloudServer2Var"; - public static boolean isTrusted2 = true; - - public static final String user = "owncloudUserVar"; - public static final String password = "owncloudPasswordVar"; - public static final String user2 = "owncloudUser2Var"; - public static final String password2 = "owncloudPassword2Var"; - public static final String userAccount = user + "@"+ URL; - public static final String userAccount2 = user2 + "@"+ URL2; - - public static final String gmailAccount = "gmailAccountVar"; - - public static final String fileWhichIsInTheServer1 ="test"; - public static final String fileWhichIsInTheServer2 ="test"; - - public static final String fileToTestName = "test"; - public static final String fileToTestSendByEmailName = "test"; - public static final String bigFileToTestName = "test"; - - public static final String passcode1 = "passcode1"; - public static final String passcode2 = "passcode2"; - public static final String passcode3 = "passcode3"; - public static final String passcode4 = "passcode4"; - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/CreateFolderTestSuite.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/CreateFolderTestSuite.java deleted file mode 100644 index 13948755548..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/CreateFolderTestSuite.java +++ /dev/null @@ -1,94 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - -import static org.junit.Assert.*; -import io.appium.java_client.android.AndroidDriver; - -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; -import org.junit.runners.MethodSorters; -import org.junit.FixMethodOrder; -import org.junit.Test; - -import com.owncloud.android.test.ui.actions.Actions; -import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory; -import com.owncloud.android.test.ui.groups.SmokeTestCategory; -import com.owncloud.android.test.ui.models.FileListView; -import com.owncloud.android.test.ui.models.WaitAMomentPopUp; - - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class CreateFolderTestSuite{ - - AndroidDriver driver; - Common common; - private Boolean folderHasBeenCreated = false; - private final String FOLDER_NAME = "testCreateFolder"; - private String CurrentCreatedFolder = ""; - - @Rule public TestName name = new TestName(); - - @Before - public void setUp() throws Exception { - common=new Common(); - driver=common.setUpCommonDriver(); - } - - @Test - @Category({NoIgnoreTestCategory.class, SmokeTestCategory.class}) - public void testCreateNewFolder () throws Exception { - String NEW_FOLDER_NAME = "testCreateFolder"; - - FileListView fileListView = Actions.login(Config.URL, - Config.user,Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - //check if the folder already exists and if true, delete them - Actions.deleteElement(NEW_FOLDER_NAME, fileListView, driver); - - WaitAMomentPopUp waitAMomentPopUp = Actions - .createFolder(NEW_FOLDER_NAME, fileListView); - Common.waitTillElementIsNotPresentWithoutTimeout(waitAMomentPopUp - .getWaitAMomentTextElement(), 100); - fileListView.scrollTillFindElement(FOLDER_NAME); - assertNotNull(fileListView.getFileElement()); - assertTrue( - folderHasBeenCreated=fileListView.getFileElement().isDisplayed()); - CurrentCreatedFolder = FOLDER_NAME; - assertEquals(FOLDER_NAME , fileListView.getFileElement().getText()); - } - - @After - public void tearDown() throws Exception { - common.takeScreenShotOnFailed(name.getMethodName()); - if (folderHasBeenCreated) { - FileListView fileListView = new FileListView(driver); - Actions.deleteElement(CurrentCreatedFolder, fileListView, driver); - } - driver.removeApp("com.owncloud.android"); - driver.quit(); - } - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/DeleteFileTestSuite.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/DeleteFileTestSuite.java deleted file mode 100644 index 5970ec970b5..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/DeleteFileTestSuite.java +++ /dev/null @@ -1,87 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - -import static org.junit.Assert.*; -import io.appium.java_client.android.AndroidDriver; - -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; -import org.junit.runners.MethodSorters; -import org.junit.FixMethodOrder; -import org.junit.Test; -import org.openqa.selenium.By; -import org.openqa.selenium.support.ui.ExpectedConditions; - -import com.owncloud.android.test.ui.actions.Actions; -import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory; -import com.owncloud.android.test.ui.groups.SmokeTestCategory; -import com.owncloud.android.test.ui.models.FileListView; - - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class DeleteFileTestSuite{ - - AndroidDriver driver; - Common common; - private final String FILE_NAME = Config.fileToTestName; - - @Rule public TestName name = new TestName(); - - @Before - public void setUp() throws Exception { - common=new Common(); - driver=common.setUpCommonDriver(); - } - - @Test - @Category({NoIgnoreTestCategory.class, SmokeTestCategory.class}) - public void testDeleteFile () throws Exception { - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - //TODO. if the file already exists, do not upload - FileListView fileListViewAfterUploadFile = Actions - .uploadFile(FILE_NAME, fileListView); - - fileListViewAfterUploadFile.scrollTillFindElement(FILE_NAME); - Common.waitTillElementIsNotPresentWithoutTimeout( - fileListViewAfterUploadFile.getProgressCircular(), 1000); - common.wait.until(ExpectedConditions.visibilityOf( - fileListViewAfterUploadFile.getFileElementLayout() - .findElement(By.id(FileListView.getLocalFileIndicator())))); - - Actions.deleteElement(FILE_NAME,fileListViewAfterUploadFile, driver); - assertFalse(fileListViewAfterUploadFile.getFileElement().isDisplayed()); - } - - @After - public void tearDown() throws Exception { - common.takeScreenShotOnFailed(name.getMethodName()); - driver.removeApp("com.owncloud.android"); - driver.quit(); - } - -} \ No newline at end of file diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/DeleteFolderTestSuite.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/DeleteFolderTestSuite.java deleted file mode 100644 index 375de02a9ab..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/DeleteFolderTestSuite.java +++ /dev/null @@ -1,92 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - -import static org.junit.Assert.*; -import io.appium.java_client.android.AndroidDriver; - -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; -import org.junit.runners.MethodSorters; -import org.junit.FixMethodOrder; -import org.junit.Test; - -import com.owncloud.android.test.ui.actions.Actions; -import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory; -import com.owncloud.android.test.ui.groups.SmokeTestCategory; -import com.owncloud.android.test.ui.models.FileListView; -import com.owncloud.android.test.ui.models.WaitAMomentPopUp; - - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class DeleteFolderTestSuite{ - AndroidDriver driver; - Common common; - private Boolean folderHasBeenCreated = false; - private final String FOLDER_NAME = "testCreateFolder"; - - @Rule public TestName name = new TestName(); - - - @Before - public void setUp() throws Exception { - common=new Common(); - driver=common.setUpCommonDriver(); - } - - @Test - @Category({NoIgnoreTestCategory.class, SmokeTestCategory.class}) - public void testDeleteFolder () throws Exception { - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - //TODO. if the folder already exists, do no created - //create the folder - WaitAMomentPopUp waitAMomentPopUp = Actions - .createFolder(FOLDER_NAME, fileListView); - Common.waitTillElementIsNotPresentWithoutTimeout( - waitAMomentPopUp.getWaitAMomentTextElement(), 100); - fileListView.scrollTillFindElement(FOLDER_NAME); - assertTrue( - folderHasBeenCreated = fileListView.getFileElement().isDisplayed()); - - //delete the folder - Actions.deleteElement(FOLDER_NAME, fileListView, driver); - assertFalse( - folderHasBeenCreated =fileListView.getFileElement().isDisplayed()); - } - - @After - public void tearDown() throws Exception { - common.takeScreenShotOnFailed(name.getMethodName()); - if(folderHasBeenCreated){ - FileListView fileListView = new FileListView(driver); - Actions.deleteElement(FOLDER_NAME, fileListView, driver); - } - driver.removeApp("com.owncloud.android"); - driver.quit(); - } - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/LoginTestSuite.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/LoginTestSuite.java deleted file mode 100644 index d9a95535c0a..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/LoginTestSuite.java +++ /dev/null @@ -1,181 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - -import static org.junit.Assert.*; -import io.appium.java_client.android.AndroidDriver; - -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; -import org.junit.runners.MethodSorters; -import org.junit.FixMethodOrder; -import org.junit.Test; -import org.openqa.selenium.ScreenOrientation; - -import com.owncloud.android.test.ui.actions.Actions; -import com.owncloud.android.test.ui.groups.*; -import com.owncloud.android.test.ui.models.LoginForm; -import com.owncloud.android.test.ui.models.FileListView; -import com.owncloud.android.test.ui.models.MenuList; -import com.owncloud.android.test.ui.models.SettingsView; - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class LoginTestSuite{ - AndroidDriver driver; - Common common; - - @Rule public TestName name = new TestName(); - - @Before - public void setUp() throws Exception { - common=new Common(); - driver=common.setUpCommonDriver(); - } - - @Test - @Category({NoIgnoreTestCategory.class}) - public void test1LoginPortrait () throws Exception { - driver.rotate(ScreenOrientation.PORTRAIT); - - Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - } - - @Test - @Category({NoIgnoreTestCategory.class}) - public void test2LoginLandscape () throws Exception { - driver.rotate(ScreenOrientation.LANDSCAPE); - Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - } - - @Test - @Category({NoIgnoreTestCategory.class, SmokeTestCategory.class}) - public void testLoginAndShowFiles () throws Exception { - driver.rotate(ScreenOrientation.PORTRAIT); - - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - fileListView.scrollTillFindElement(Config.fileWhichIsInTheServer1); - assertTrue(fileListView.getFileElement().isDisplayed()); - } - - - - @Test - @Category({NoIgnoreTestCategory.class, SmokeTestCategory.class}) - public void test3MultiAccountRotate () throws Exception { - driver.rotate(ScreenOrientation.LANDSCAPE); - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - driver.rotate(ScreenOrientation.PORTRAIT); - MenuList menu = fileListView.clickOnMenuButton(); - SettingsView settingsView = menu.clickOnSettingsButton(); - - settingsView.tapOnAddAccount(1, 1000); - fileListView = Actions.login(Config.URL2, Config.user2, - Config.password2, Config.isTrusted2, driver); - common.assertIsInSettingsView(); - } - - @Test - @Category({NoIgnoreTestCategory.class, SmokeTestCategory.class}) - public void testMultiAccountAndShowFiles () throws Exception { - driver.rotate(ScreenOrientation.LANDSCAPE); - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - fileListView.scrollTillFindElement(Config.fileWhichIsInTheServer1); - assertTrue(fileListView.getFileElement().isDisplayed()); - - driver.rotate(ScreenOrientation.PORTRAIT); - MenuList menu = fileListView.clickOnMenuButton(); - SettingsView settingsView = menu.clickOnSettingsButton(); - - settingsView.tapOnAddAccount(1, 1000); - fileListView = Actions.login(Config.URL2, Config.user2, - Config.password2, Config.isTrusted2, driver); - common.assertIsInSettingsView(); - settingsView.tapOnAccountElement(2,1, 100); - common.assertIsInFileListView(); - - fileListView.scrollTillFindElement(Config.fileWhichIsInTheServer2); - assertTrue(fileListView.getFileElement().isDisplayed()); - } - - @Test - @Category({NoIgnoreTestCategory.class}) - public void test4ExistingAccountRotate () throws Exception { - driver.rotate(ScreenOrientation.PORTRAIT); - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - driver.rotate(ScreenOrientation.LANDSCAPE); - MenuList menu = fileListView.clickOnMenuButton(); - SettingsView settingsView = menu.clickOnSettingsButton(); - settingsView.tapOnAddAccount(1, 1000); - - LoginForm loginForm = new LoginForm(driver); - fileListView = Actions.login(Config.URL, Config.user,Config.password, - Config.isTrusted, driver); - assertTrue(common.waitForTextPresent("An account for the same user and" - + " server already exists in the device", - loginForm.getAuthStatusText())); - } - - @Test - @Category({NoIgnoreTestCategory.class}) - public void test5ChangePasswordWrong () throws Exception { - driver.rotate(ScreenOrientation.PORTRAIT); - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - MenuList menu = fileListView.clickOnMenuButton(); - SettingsView settingsView = menu.clickOnSettingsButton(); - settingsView.tapOnAccountElement(1,1, 1000); - LoginForm changePasswordForm = settingsView - .clickOnChangePasswordElement(); - changePasswordForm.typePassword("WrongPassword"); - changePasswordForm.clickOnConnectButton(); - assertTrue(common.waitForTextPresent("Wrong username or password", - changePasswordForm.getAuthStatusText())); - } - - - @After - public void tearDown() throws Exception { - common.takeScreenShotOnFailed(name.getMethodName()); - driver.removeApp("com.owncloud.android"); - driver.quit(); - } - - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/LogoutTestSuite.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/LogoutTestSuite.java deleted file mode 100644 index 8927dacecf1..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/LogoutTestSuite.java +++ /dev/null @@ -1,77 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - - -import static org.junit.Assert.*; -import io.appium.java_client.android.AndroidDriver; - -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; - -import com.owncloud.android.test.ui.actions.Actions; -import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory; -import com.owncloud.android.test.ui.groups.SmokeTestCategory; -import com.owncloud.android.test.ui.models.LoginForm; -import com.owncloud.android.test.ui.models.FileListView; -import com.owncloud.android.test.ui.models.MenuList; -import com.owncloud.android.test.ui.models.SettingsView; - -public class LogoutTestSuite{ - - AndroidDriver driver; - Common common; - - @Rule public TestName name = new TestName(); - - @Before - public void setUp() throws Exception { - common=new Common(); - driver=common.setUpCommonDriver(); - } - - @Test - @Category({NoIgnoreTestCategory.class, SmokeTestCategory.class}) - public void testLogout () throws Exception { - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - MenuList menulist = fileListView.clickOnMenuButton(); - SettingsView settingsView = menulist.clickOnSettingsButton(); - settingsView.tapOnAccountElement(1,1, 1000); - LoginForm loginForm = settingsView.clickOnDeleteAccountElement(); - assertEquals("Server address https://…", - loginForm.gethostUrlInput().getText()); - assertEquals("Username", loginForm.getUserNameInput().getText()); - assertEquals("", loginForm.getPasswordInput().getText()); - } - - @After - public void tearDown() throws Exception { - common.takeScreenShotOnFailed(name.getMethodName()); - //driver.removeApp("com.owncloud.android"); - driver.quit(); - } -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/MoveFileTestSuite.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/MoveFileTestSuite.java deleted file mode 100644 index 38c004b580f..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/MoveFileTestSuite.java +++ /dev/null @@ -1,120 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - -import static org.junit.Assert.*; -import io.appium.java_client.android.AndroidDriver; - -import org.junit.After; -import org.junit.Before; -import org.junit.FixMethodOrder; -import org.junit.Rule; -import org.junit.Test; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; -import org.junit.runners.MethodSorters; - -import com.owncloud.android.test.ui.actions.Actions; -import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory; -import com.owncloud.android.test.ui.groups.SmokeTestCategory; -import com.owncloud.android.test.ui.models.ElementMenuOptions; -import com.owncloud.android.test.ui.models.FileListView; -import com.owncloud.android.test.ui.models.MoveView; -import com.owncloud.android.test.ui.models.WaitAMomentPopUp; - - - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class MoveFileTestSuite{ - AndroidDriver driver; - Common common; - private String FOLDER_WHERE_MOVE = "folderWhereMove"; - private String FILE_NAME = Config.fileToTestName; - @Rule public TestName name = new TestName(); - - @Before - public void setUp() throws Exception { - common=new Common(); - driver=common.setUpCommonDriver(); - } - - @Test - @Category({NoIgnoreTestCategory.class, SmokeTestCategory.class}) - public void testMoveFile () throws Exception { - WaitAMomentPopUp waitAMomentPopUp; - - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - //Common.waitTillElementIsNotPresentWithoutTimeout( - //fileListView.getProgressCircular(), 1000); - - //check if the folder already exists and if true, delete them - Actions.deleteElement(FOLDER_WHERE_MOVE, fileListView, driver); - Actions.deleteElement(FILE_NAME, fileListView, driver); - - //Create the folder where the other is gone to be moved - waitAMomentPopUp = Actions - .createFolder(FOLDER_WHERE_MOVE, fileListView); - Common.waitTillElementIsNotPresentWithoutTimeout( - waitAMomentPopUp.getWaitAMomentTextElement(), 100); - fileListView.scrollTillFindElement(FOLDER_WHERE_MOVE); - assertTrue(fileListView.getFileElement().isDisplayed()); - - FileListView fileListViewAfterUploadFile = Actions - .uploadFile(FILE_NAME, fileListView); - fileListViewAfterUploadFile.scrollTillFindElement(FILE_NAME); - assertTrue(fileListViewAfterUploadFile.getFileElement().isDisplayed()); - - //select to move the file - ElementMenuOptions menuOptions = fileListView - .longPressOnElement(FILE_NAME); - MoveView moveView = menuOptions.clickOnMove(); - - //to move to a folder - moveView.scrollTillFindElement(FOLDER_WHERE_MOVE).tap(1,1); - waitAMomentPopUp = moveView.clickOnChoose(); - Common.waitTillElementIsNotPresentWithoutTimeout( - waitAMomentPopUp.getWaitAMomentTextElement(), 100); - - //check that the folder moved is inside the other - fileListView.scrollTillFindElement(FOLDER_WHERE_MOVE).tap(1,1); - Common.waitTillElementIsNotPresentWithoutTimeout(fileListView.getProgressCircular(), - 1000); - Thread.sleep(1000); - fileListView.scrollTillFindElement(FILE_NAME); - assertEquals(FILE_NAME , fileListView.getFileElement().getText()); - - } - - @After - public void tearDown() throws Exception { - common.takeScreenShotOnFailed(name.getMethodName()); - FileListView fileListView = new FileListView(driver); - driver.sendKeyEvent(android.view.KeyEvent.KEYCODE_BACK); - Actions.deleteElement(FOLDER_WHERE_MOVE, fileListView, driver); - Actions.deleteElement(FILE_NAME, fileListView, driver); - driver.removeApp("com.owncloud.android"); - driver.quit(); - } - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/MoveFolderTestSuite.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/MoveFolderTestSuite.java deleted file mode 100644 index a6f8769f571..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/MoveFolderTestSuite.java +++ /dev/null @@ -1,122 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - -import static org.junit.Assert.*; -import io.appium.java_client.android.AndroidDriver; - -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; -import org.junit.runners.MethodSorters; -import org.junit.FixMethodOrder; -import org.junit.Test; - -import com.owncloud.android.test.ui.actions.Actions; -import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory; -import com.owncloud.android.test.ui.groups.SmokeTestCategory; -import com.owncloud.android.test.ui.models.ElementMenuOptions; -import com.owncloud.android.test.ui.models.FileListView; -import com.owncloud.android.test.ui.models.MoveView; -import com.owncloud.android.test.ui.models.WaitAMomentPopUp; - - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class MoveFolderTestSuite{ - AndroidDriver driver; - Common common; - private String FOLDER_TO_MOVE = "folderToMove"; - private String FOLDER_WHERE_MOVE = "folderWhereMove"; - - @Rule public TestName name = new TestName(); - - @Before - public void setUp() throws Exception { - common=new Common(); - driver=common.setUpCommonDriver(); - } - - @Test - @Category({NoIgnoreTestCategory.class, SmokeTestCategory.class}) - public void testMoveFolder () throws Exception { - WaitAMomentPopUp waitAMomentPopUp; - - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - //Common.waitTillElementIsNotPresentWithoutTimeout( - //fileListView.getProgressCircular(), 1000); - - //check if the folder already exists and if true, delete them - Actions.deleteElement(FOLDER_WHERE_MOVE, fileListView, driver); - Actions.deleteElement(FOLDER_TO_MOVE, fileListView, driver); - - //Create the folder where the other is gone to be moved - waitAMomentPopUp = Actions - .createFolder(FOLDER_WHERE_MOVE, fileListView); - Common.waitTillElementIsNotPresentWithoutTimeout( - waitAMomentPopUp.getWaitAMomentTextElement(), 100); - fileListView.scrollTillFindElement(FOLDER_WHERE_MOVE); - assertTrue(fileListView.getFileElement().isDisplayed()); - - //Create the folder which is going to be moved - waitAMomentPopUp = Actions.createFolder(FOLDER_TO_MOVE, fileListView); - Common.waitTillElementIsNotPresent( - waitAMomentPopUp.getWaitAMomentTextElement(), 100); - fileListView.scrollTillFindElement(FOLDER_TO_MOVE); - assertTrue(fileListView.getFileElement().isDisplayed()); - - //select to move the folder - ElementMenuOptions menuOptions = fileListView - .longPressOnElement(FOLDER_TO_MOVE); - MoveView moveView = menuOptions.clickOnMove(); - - //to move to a folder - moveView.scrollTillFindElement(FOLDER_WHERE_MOVE).tap(1,1); - waitAMomentPopUp = moveView.clickOnChoose(); - Common.waitTillElementIsNotPresentWithoutTimeout(waitAMomentPopUp - .getWaitAMomentTextElement(), 100); - - //check that the folder moved is inside the other - fileListView.scrollTillFindElement(FOLDER_WHERE_MOVE).tap(1,1); - Common.waitTillElementIsNotPresentWithoutTimeout(fileListView.getProgressCircular(), - 1000); - Thread.sleep(1000); - fileListView.scrollTillFindElement(FOLDER_TO_MOVE); - assertEquals(FOLDER_TO_MOVE , fileListView.getFileElement().getText()); - } - - @After - public void tearDown() throws Exception { - common.takeScreenShotOnFailed(name.getMethodName()); - FileListView fileListView = new FileListView(driver); - driver.sendKeyEvent(android.view.KeyEvent.KEYCODE_BACK); - Actions.deleteElement(FOLDER_WHERE_MOVE, fileListView, driver); - Actions.deleteElement(FOLDER_TO_MOVE, fileListView, driver); - driver.removeApp("com.owncloud.android"); - driver.quit(); - } - - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/PasscodeTestSuite.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/PasscodeTestSuite.java deleted file mode 100644 index 9f671ce8063..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/PasscodeTestSuite.java +++ /dev/null @@ -1,98 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - -import io.appium.java_client.android.AndroidDriver; - -import org.junit.After; -import org.junit.Before; -import org.junit.FixMethodOrder; -import org.junit.Rule; -import org.junit.Test; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; -import org.junit.runners.MethodSorters; -import org.openqa.selenium.ScreenOrientation; - -import com.owncloud.android.test.ui.actions.Actions; -import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory; -import com.owncloud.android.test.ui.models.FileListView; -import com.owncloud.android.test.ui.models.MenuList; -import com.owncloud.android.test.ui.models.PassCodeRequestView; -import com.owncloud.android.test.ui.models.PassCodeView; -import com.owncloud.android.test.ui.models.SettingsView; - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class PasscodeTestSuite { - AndroidDriver driver; - Common common; - - @Rule public TestName name = new TestName(); - - @Before - public void setUp() throws Exception { - common=new Common(); - driver=common.setUpCommonDriver(); - } - - @Test - @Category({NoIgnoreTestCategory.class}) - public void testPincodeEnable () throws Exception { - driver.rotate(ScreenOrientation.PORTRAIT); - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - MenuList menu = fileListView.clickOnMenuButton(); - SettingsView settingsView = menu.clickOnSettingsButton(); - - PassCodeView passCodeview = settingsView.EnablePassCode(); - PassCodeView passCodeview2 = passCodeview.enterPasscode( - Config.passcode1, Config.passcode2, Config.passcode3, - Config.passcode4); - passCodeview2.reenterPasscode(Config.passcode1, Config.passcode2, - Config.passcode3, Config.passcode4); - - driver.sendKeyEvent(android.view.KeyEvent.KEYCODE_HOME); - //TO DO. Open the app instead of start an activity - driver.startActivity("com.owncloud.android", - ".ui.activity.FileDisplayActivity"); - //here we check that we are not in the fileDisplayActivity, - //because pincode is asked - common.assertIsNotInFileListView(); - common.assertIsPasscodeRequestView(); - - PassCodeRequestView passCodeReequestView = new - PassCodeRequestView(driver); - passCodeReequestView.enterPasscode(Config.passcode1, Config.passcode2, - Config.passcode3, Config.passcode4); - common.assertIsInFileListView(); - } - - - @After - public void tearDown() throws Exception { - common.takeScreenShotOnFailed(name.getMethodName()); - driver.removeApp("com.owncloud.android"); - driver.quit(); - } - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RefreshFolderTestSuite.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RefreshFolderTestSuite.java deleted file mode 100644 index 850a7572712..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RefreshFolderTestSuite.java +++ /dev/null @@ -1,77 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - -import static org.junit.Assert.*; -import io.appium.java_client.android.AndroidDriver; - -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; -import org.junit.runners.MethodSorters; -import org.junit.FixMethodOrder; -import org.junit.Test; - -import com.owncloud.android.test.ui.actions.Actions; -import com.owncloud.android.test.ui.groups.UnfinishedTestCategory; -import com.owncloud.android.test.ui.models.FileListView; - - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class RefreshFolderTestSuite{ - AndroidDriver driver; - Common common; - - @Rule public TestName name = new TestName(); - - @Before - public void setUp() throws Exception { - common=new Common(); - driver=common.setUpCommonDriver(); - } - - - @Test - @Category({UnfinishedTestCategory.class}) - public void testPulldownToRefreshFolder () throws Exception { - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - //TODO. Remove the sleep and check why is not working the assert - //when using waitTillElementIsNotPresent - Thread.sleep(5000); - //waitTillElementIsNotPresentWithoutTimeout(fileListView.getProgressCircular(), 1000); - fileListView.pulldownToRefresh(); - assertTrue(fileListView.getProgressCircular().isDisplayed()); - //TODO insert a file in the web, and check that it's shown here - } - - - @After - public void tearDown() throws Exception { - common.takeScreenShotOnFailed(name.getMethodName()); - driver.removeApp("com.owncloud.android"); - driver.quit(); - } - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RenameFileTestSuite.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RenameFileTestSuite.java deleted file mode 100644 index d82cd1191b7..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RenameFileTestSuite.java +++ /dev/null @@ -1,114 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - -import static org.junit.Assert.*; -import io.appium.java_client.android.AndroidDriver; - -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; -import org.junit.runners.MethodSorters; -import org.junit.FixMethodOrder; -import org.junit.Test; -import org.openqa.selenium.By; -import org.openqa.selenium.support.ui.ExpectedConditions; - -import com.owncloud.android.test.ui.actions.Actions; -import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory; -import com.owncloud.android.test.ui.groups.SmokeTestCategory; -import com.owncloud.android.test.ui.models.ElementMenuOptions; -import com.owncloud.android.test.ui.models.FileListView; -import com.owncloud.android.test.ui.models.NewFolderPopUp; -import com.owncloud.android.test.ui.models.WaitAMomentPopUp; - - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class RenameFileTestSuite{ - - AndroidDriver driver; - Common common; - private Boolean fileHasBeenCreated = false; - private final String OLD_FILE_NAME = Config.fileToTestName; - private final String FILE_NAME = "newNameFile"; - private String CurrentCreatedFile = ""; - - @Rule public TestName name = new TestName(); - - @Before - public void setUp() throws Exception { - common=new Common(); - driver=common.setUpCommonDriver(); - } - - @Test - @Category({NoIgnoreTestCategory.class, SmokeTestCategory.class}) - public void testRenameFile () throws Exception { - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - //TODO. if the file already exists, do not upload - FileListView fileListViewAfterUploadFile = Actions - .uploadFile(OLD_FILE_NAME, fileListView); - - //check if the file with the new name already exists, if true delete it - Actions.deleteElement(FILE_NAME, fileListView, driver); - - fileListViewAfterUploadFile.scrollTillFindElement(OLD_FILE_NAME); - assertTrue(fileHasBeenCreated = fileListViewAfterUploadFile - .getFileElement().isDisplayed()); - CurrentCreatedFile = OLD_FILE_NAME; - Common.waitTillElementIsNotPresentWithoutTimeout(fileListViewAfterUploadFile - .getProgressCircular(), 1000); - common.wait.until(ExpectedConditions.visibilityOf( - fileListViewAfterUploadFile.getFileElementLayout() - .findElement(By.id(FileListView.getLocalFileIndicator())))); - ElementMenuOptions menuOptions = fileListViewAfterUploadFile - .longPressOnElement(OLD_FILE_NAME); - NewFolderPopUp newFolderPopUp = menuOptions.clickOnRename(); - newFolderPopUp.typeNewFolderName(FILE_NAME); - WaitAMomentPopUp waitAMomentPopUp = newFolderPopUp - .clickOnNewFolderOkButton(); - Common.waitTillElementIsNotPresentWithoutTimeout(waitAMomentPopUp - .getWaitAMomentTextElement(), 100); - fileListViewAfterUploadFile.scrollTillFindElement(FILE_NAME); - assertNotNull(fileListViewAfterUploadFile.getFileElement()); - assertTrue(fileListViewAfterUploadFile.getFileElement().isDisplayed()); - assertEquals(FILE_NAME , fileListViewAfterUploadFile.getFileElement() - .getText()); - CurrentCreatedFile = FILE_NAME; - } - - @After - public void tearDown() throws Exception { - common.takeScreenShotOnFailed(name.getMethodName()); - if (fileHasBeenCreated) { - FileListView fileListView = new FileListView(driver); - Actions.deleteElement(CurrentCreatedFile,fileListView, driver); - } - driver.removeApp("com.owncloud.android"); - driver.quit(); - } - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RenameFolderTestSuite.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RenameFolderTestSuite.java deleted file mode 100644 index 271295f00c0..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RenameFolderTestSuite.java +++ /dev/null @@ -1,112 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - -import static org.junit.Assert.*; -import io.appium.java_client.android.AndroidDriver; - -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; -import org.junit.runners.MethodSorters; -import org.junit.FixMethodOrder; -import org.junit.Test; - -import com.owncloud.android.test.ui.actions.Actions; -import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory; -import com.owncloud.android.test.ui.groups.SmokeTestCategory; -import com.owncloud.android.test.ui.models.ElementMenuOptions; -import com.owncloud.android.test.ui.models.FileListView; -import com.owncloud.android.test.ui.models.NewFolderPopUp; -import com.owncloud.android.test.ui.models.WaitAMomentPopUp; - - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class RenameFolderTestSuite{ - - AndroidDriver driver; - Common common; - private Boolean folderHasBeenCreated = false; - private final String OLD_FOLDER_NAME = "beforeRemoving"; - private final String FOLDER_NAME = "testCreateFolder"; - private String CurrentCreatedFolder = ""; - - @Rule public TestName name = new TestName(); - - - @Before - public void setUp() throws Exception { - common=new Common(); - driver=common.setUpCommonDriver(); - } - - @Test - @Category({NoIgnoreTestCategory.class, SmokeTestCategory.class}) - public void testRenameFolder () throws Exception { - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - //TODO. if the folder already exists, do no created - //create the folder to rename - WaitAMomentPopUp waitAMomentPopUp = Actions - .createFolder(OLD_FOLDER_NAME, fileListView); - Common.waitTillElementIsNotPresentWithoutTimeout( - waitAMomentPopUp.getWaitAMomentTextElement(), 100); - fileListView.scrollTillFindElement(OLD_FOLDER_NAME); - - assertTrue( - folderHasBeenCreated = fileListView.getFileElement().isDisplayed()); - - //check if the folder with the new name already exists - //and if true, delete them - Actions.deleteElement(FOLDER_NAME, fileListView, driver); - - CurrentCreatedFolder = OLD_FOLDER_NAME; - ElementMenuOptions menuOptions = fileListView - .longPressOnElement(OLD_FOLDER_NAME); - NewFolderPopUp FolderPopUp = menuOptions.clickOnRename(); - FolderPopUp.typeNewFolderName(FOLDER_NAME); - FolderPopUp.clickOnNewFolderOkButton(); - CurrentCreatedFolder = FOLDER_NAME; - Common.waitTillElementIsNotPresentWithoutTimeout(waitAMomentPopUp - .getWaitAMomentTextElement(), 100); - fileListView.scrollTillFindElement(FOLDER_NAME); - assertNotNull(fileListView.getFileElement()); - assertTrue( - folderHasBeenCreated = fileListView.getFileElement().isDisplayed()); - assertEquals(FOLDER_NAME , fileListView.getFileElement().getText()); - } - - @After - public void tearDown() throws Exception { - common.takeScreenShotOnFailed(name.getMethodName()); - if(folderHasBeenCreated){ - FileListView fileListView = new FileListView(driver); - Actions.deleteElement(CurrentCreatedFolder, fileListView, driver); - } - driver.removeApp("com.owncloud.android"); - driver.quit(); - } - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RunFailingTests.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RunFailingTests.java deleted file mode 100644 index 9633abca3ef..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RunFailingTests.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - - -import org.junit.experimental.categories.Categories.ExcludeCategory; -import org.junit.experimental.categories.Categories.IncludeCategory; -import org.junit.runner.RunWith; - -import com.owncloud.android.test.ui.groups.FailingTestCategory; -import com.owncloud.android.test.ui.groups.FlexibleCategories; -import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory; -import com.owncloud.android.test.ui.groups.FlexibleCategories.TestClassPrefix; -import com.owncloud.android.test.ui.groups.FlexibleCategories.TestClassSuffix; -import com.owncloud.android.test.ui.groups.FlexibleCategories.TestScanPackage; - - -@RunWith(FlexibleCategories.class) -@ExcludeCategory(NoIgnoreTestCategory.class) -@IncludeCategory(FailingTestCategory.class) -@TestScanPackage("com.owncloud.android.test.ui.testSuites") -@TestClassPrefix("") -@TestClassSuffix("TestSuite") -public class RunFailingTests { - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RunInProgressTest.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RunInProgressTest.java deleted file mode 100644 index 9fb14a053f1..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RunInProgressTest.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.owncloud.android.test.ui.testSuites; - -import org.junit.experimental.categories.Categories.IncludeCategory; -import org.junit.runner.RunWith; -import com.owncloud.android.test.ui.groups.FlexibleCategories; -import com.owncloud.android.test.ui.groups.InProgressCategory; -import com.owncloud.android.test.ui.groups.FlexibleCategories.TestClassPrefix; -import com.owncloud.android.test.ui.groups.FlexibleCategories.TestClassSuffix; -import com.owncloud.android.test.ui.groups.FlexibleCategories.TestScanPackage; - - -@RunWith(FlexibleCategories.class) -@IncludeCategory(InProgressCategory.class) -@TestScanPackage("com.owncloud.android.test.ui.testSuites") -@TestClassPrefix("") -@TestClassSuffix("TestSuite") -public class RunInProgressTest { - -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RunNoIgnoreTests.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RunNoIgnoreTests.java deleted file mode 100644 index 4d904387608..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RunNoIgnoreTests.java +++ /dev/null @@ -1,42 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - -import org.junit.experimental.categories.Categories.ExcludeCategory; -import org.junit.experimental.categories.Categories.IncludeCategory; -import org.junit.runner.RunWith; - -import com.owncloud.android.test.ui.groups.FlexibleCategories; -import com.owncloud.android.test.ui.groups.IgnoreTestCategory; -import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory; -import com.owncloud.android.test.ui.groups.FlexibleCategories.TestClassPrefix; -import com.owncloud.android.test.ui.groups.FlexibleCategories.TestClassSuffix; -import com.owncloud.android.test.ui.groups.FlexibleCategories.TestScanPackage; - - -@RunWith(FlexibleCategories.class) -@ExcludeCategory(IgnoreTestCategory.class) -@IncludeCategory(NoIgnoreTestCategory.class) -@TestScanPackage("com.owncloud.android.test.ui.testSuites") -@TestClassPrefix("") -@TestClassSuffix("TestSuite") -public class RunNoIgnoreTests { -} \ No newline at end of file diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RunSmokeTests.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RunSmokeTests.java deleted file mode 100644 index 5c2e6ebdba0..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/RunSmokeTests.java +++ /dev/null @@ -1,42 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - -import org.junit.experimental.categories.Categories.ExcludeCategory; -import org.junit.experimental.categories.Categories.IncludeCategory; -import org.junit.runner.RunWith; - -import com.owncloud.android.test.ui.groups.FlexibleCategories; -import com.owncloud.android.test.ui.groups.IgnoreTestCategory; -import com.owncloud.android.test.ui.groups.SmokeTestCategory; -import com.owncloud.android.test.ui.groups.FlexibleCategories.TestClassPrefix; -import com.owncloud.android.test.ui.groups.FlexibleCategories.TestClassSuffix; -import com.owncloud.android.test.ui.groups.FlexibleCategories.TestScanPackage; - - -@RunWith(FlexibleCategories.class) -@ExcludeCategory(IgnoreTestCategory.class) -@IncludeCategory(SmokeTestCategory.class) -@TestScanPackage("com.owncloud.android.test.ui.testSuites") -@TestClassPrefix("") -@TestClassSuffix("TestSuite") -public class RunSmokeTests { -} \ No newline at end of file diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/ShareLinkFileTestSuite.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/ShareLinkFileTestSuite.java deleted file mode 100644 index 5e604cd3263..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/ShareLinkFileTestSuite.java +++ /dev/null @@ -1,133 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - -import static org.junit.Assert.*; -import io.appium.java_client.android.AndroidDriver; -import io.appium.java_client.android.AndroidElement; - -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; - -import com.owncloud.android.test.ui.actions.Actions; -import com.owncloud.android.test.ui.groups.IgnoreTestCategory; -import com.owncloud.android.test.ui.groups.InProgressCategory; -import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory; -import com.owncloud.android.test.ui.groups.SmokeTestCategory; -import com.owncloud.android.test.ui.models.FileListView;; - -public class ShareLinkFileTestSuite{ - - AndroidDriver driver; - Common common; - private final String FILE_NAME = Config.fileToTestName; - private Boolean fileHasBeenCreated = false; - - @Rule public TestName name = new TestName(); - - @Before - public void setUp() throws Exception { - common=new Common(); - driver=common.setUpCommonDriver(); - } - - @Test - @Category({NoIgnoreTestCategory.class}) - public void testShareLinkFileByGmail () throws Exception { - AndroidElement sharedElementIndicator; - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - //TODO. if the file already exists, do not upload - FileListView fileListViewAfterUploadFile = Actions - .uploadFile(FILE_NAME, fileListView); - - fileListViewAfterUploadFile.scrollTillFindElement(FILE_NAME); - assertTrue(fileHasBeenCreated = fileListViewAfterUploadFile - .getFileElement().isDisplayed()); - - sharedElementIndicator = Actions.shareLinkElementByGmail(FILE_NAME, - fileListViewAfterUploadFile,driver,common); - assertTrue(sharedElementIndicator.isDisplayed()); - } - - @Test - @Category({NoIgnoreTestCategory.class, SmokeTestCategory.class}) - public void testShareLinkFileByCopyLink () throws Exception { - AndroidElement sharedElementIndicator; - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - //TODO. if the file already exists, do not upload - FileListView fileListViewAfterUploadFile = Actions - .uploadFile(FILE_NAME, fileListView); - - fileListViewAfterUploadFile.scrollTillFindElement(FILE_NAME); - assertTrue(fileHasBeenCreated = fileListViewAfterUploadFile - .getFileElement().isDisplayed()); - - sharedElementIndicator = Actions.shareLinkElementByCopyLink(FILE_NAME, - fileListViewAfterUploadFile,driver,common); - assertTrue(sharedElementIndicator.isDisplayed()); - } - - @Test - @Category({IgnoreTestCategory.class, SmokeTestCategory.class}) - public void testUnshareLinkFile () throws Exception { - AndroidElement sharedElementIndicator; - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - //TODO. if the file already exists, do not upload - FileListView fileListViewAfterUploadFile = Actions - .uploadFile(FILE_NAME, fileListView); - - fileListViewAfterUploadFile.scrollTillFindElement(FILE_NAME); - assertTrue(fileHasBeenCreated = fileListViewAfterUploadFile - .getFileElement().isDisplayed()); - - sharedElementIndicator = Actions.shareLinkElementByCopyLink(FILE_NAME, - fileListViewAfterUploadFile,driver,common); - assertTrue(sharedElementIndicator.isDisplayed()); - Actions.unshareLinkElement(FILE_NAME, - fileListViewAfterUploadFile,driver,common); - assertFalse(sharedElementIndicator.isDisplayed()); - - } - - @After - public void tearDown() throws Exception { - common.takeScreenShotOnFailed(name.getMethodName()); - if (fileHasBeenCreated) { - FileListView fileListView = new FileListView(driver); - Actions.deleteElement(FILE_NAME,fileListView, driver); - } - driver.removeApp("com.owncloud.android"); - driver.quit(); - } -} diff --git a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/UploadTestSuite.java b/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/UploadTestSuite.java deleted file mode 100644 index d8ffeff5722..00000000000 --- a/automationTest/src/test/java/com/owncloud/android/test/ui/testSuites/UploadTestSuite.java +++ /dev/null @@ -1,285 +0,0 @@ -/** - * ownCloud Android client application - * - * @author purigarcia - * Copyright (C) 2015 ownCloud Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - */ - -package com.owncloud.android.test.ui.testSuites; - - -import static org.junit.Assert.*; -import io.appium.java_client.MobileBy; -import io.appium.java_client.android.AndroidDriver; - -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.experimental.categories.Category; -import org.junit.rules.TestName; -import org.junit.runners.MethodSorters; -import org.junit.FixMethodOrder; -import org.junit.Test; -import org.openqa.selenium.By; -import org.openqa.selenium.NoSuchElementException; -import org.openqa.selenium.support.ui.ExpectedConditions; - -import com.owncloud.android.test.ui.actions.Actions; -import com.owncloud.android.test.ui.groups.FailingTestCategory; -import com.owncloud.android.test.ui.groups.InProgressCategory; -import com.owncloud.android.test.ui.groups.NoIgnoreTestCategory; -import com.owncloud.android.test.ui.groups.SmokeTestCategory; -import com.owncloud.android.test.ui.groups.UnfinishedTestCategory; -import com.owncloud.android.test.ui.models.FileDetailsView; -import com.owncloud.android.test.ui.models.ElementMenuOptions; -import com.owncloud.android.test.ui.models.GmailEmailListView; -import com.owncloud.android.test.ui.models.GmailEmailView; -import com.owncloud.android.test.ui.models.ImageView; -import com.owncloud.android.test.ui.models.FileListView; -import com.owncloud.android.test.ui.models.NotificationView; -import com.owncloud.android.test.ui.models.SettingsView; -import com.owncloud.android.test.ui.models.UploadView; - - -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -@Category({NoIgnoreTestCategory.class}) -public class UploadTestSuite{ - - AndroidDriver driver; - Common common; - String FILE_NAME = Config.fileToTestName; - String BIG_FILE_NAME = Config.bigFileToTestName; - String FILE_GMAIL_NAME = Config.fileToTestSendByEmailName; - private Boolean fileHasBeenUploadedFromGmail = false; - private Boolean fileHasBeenUploaded = false; - - @Rule public TestName name = new TestName(); - - - @Before - public void setUp() throws Exception { - common=new Common(); - driver=common.setUpCommonDriver(); - } - - @Test - @Category({NoIgnoreTestCategory.class, SmokeTestCategory.class}) - public void testUploadFile () throws Exception { - - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - //check if the file already exists and if true, delete it - Actions.deleteElement(FILE_NAME, fileListView, driver); - - FileListView fileListViewAfterUploadFile = Actions - .uploadFile(FILE_NAME, fileListView); - - fileListViewAfterUploadFile.scrollTillFindElement(FILE_NAME); - assertTrue(fileListViewAfterUploadFile.getFileElement().isDisplayed()); - Common.waitTillElementIsNotPresentWithoutTimeout( - fileListViewAfterUploadFile.getProgressCircular(), 1000); - common.wait.until(ExpectedConditions.visibilityOf( - fileListViewAfterUploadFile.getFileElementLayout() - .findElement(By.id(FileListView.getLocalFileIndicator())))); - assertTrue(fileListViewAfterUploadFile.getFileElementLayout() - .findElement(By.id(FileListView.getLocalFileIndicator())) - .isDisplayed()); - fileListView = new FileListView(driver); - fileListView.scrollTillFindElement(FILE_NAME); - assertTrue( - fileHasBeenUploaded = fileListView.getFileElement().isDisplayed()); - } - - - - @Test - @Category({UnfinishedTestCategory.class}) - public void testUploadBigFile () throws Exception { - - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - //check if the file already exists and if true, delete it - Actions.deleteElement(BIG_FILE_NAME, fileListView, driver); - - FileListView fileListViewAfterUploadFile = Actions - .uploadFile(BIG_FILE_NAME, fileListView); - - - driver.openNotifications(); - NotificationView notificationView = new NotificationView(driver); - - try{ - if(notificationView.getUploadingNotification().isDisplayed()){ - Common.waitTillElementIsPresent( - notificationView.getUploadSucceededNotification(),300000); - driver.sendKeyEvent(android.view.KeyEvent.KEYCODE_HOME); - driver.startActivity("com.owncloud.android", - ".ui.activity.FileDisplayActivity"); - - } - } catch (NoSuchElementException e) { - driver.sendKeyEvent(android.view.KeyEvent.KEYCODE_HOME); - driver.startActivity("com.owncloud.android", - ".ui.activity.FileDisplayActivity"); - } - - fileListViewAfterUploadFile.scrollTillFindElement(BIG_FILE_NAME); - - assertTrue(fileListViewAfterUploadFile.getFileElement().isDisplayed()); - - Common.waitTillElementIsNotPresentWithoutTimeout( - fileListViewAfterUploadFile.getProgressCircular(), 1000); - common.wait.until(ExpectedConditions.visibilityOf( - fileListViewAfterUploadFile.getFileElementLayout() - .findElement(By.id(FileListView.getLocalFileIndicator())))); - assertTrue(fileListViewAfterUploadFile.getFileElementLayout() - .findElement(By.id(FileListView.getLocalFileIndicator())) - .isDisplayed()); - fileListView = new FileListView(driver); - fileListView.scrollTillFindElement(BIG_FILE_NAME); - assertTrue( - fileHasBeenUploaded = fileListView.getFileElement().isDisplayed()); - } - - - @Test - @Category(UnfinishedTestCategory.class) - public void testUploadFromGmail () throws Exception { - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - driver.startActivity("com.google.android.gm", - ".ConversationListActivityGmail"); - GmailEmailListView gmailEmailListView = new GmailEmailListView(driver); - Thread.sleep(3000); - GmailEmailView gmailEmailView = gmailEmailListView.clickOnEmail(); - ImageView imageView = gmailEmailView.clickOnfileButton(); - imageView.clickOnOptionsButton(); - imageView.clickOnShareButton(); - imageView.clickOnOwnCloudButton(); - //justonce button do not appear always - try{ - imageView.clickOnJustOnceButton(); - }catch (NoSuchElementException e) { - } - UploadView uploadView = new UploadView(driver); - uploadView.clickOUploadButton(); - driver.sendKeyEvent(android.view.KeyEvent.KEYCODE_HOME); - driver.startActivity("com.owncloud.android", - ".ui.activity.FileDisplayActivity"); - common.wait.until(ExpectedConditions - .visibilityOfAllElementsLocatedBy(By.name(FILE_GMAIL_NAME))); - assertEquals(Config.fileToTestSendByEmailName , - driver.findElementByName(FILE_GMAIL_NAME).getText()); - fileListView = new FileListView(driver); - fileListView.scrollTillFindElement(FILE_GMAIL_NAME); - assertTrue(fileHasBeenUploadedFromGmail = fileListView - .getFileElement().isDisplayed()); - //TODO. correct assert if fileListView is shown in grid mode - } - - - @Test - @Category({FailingTestCategory.class}) - public void testKeepFileUpToDate () throws Exception { - - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - Common.waitTillElementIsNotPresentWithoutTimeout(fileListView.getProgressCircular(), - 1000); - - FileListView fileListViewAfterUploadFile = Actions - .uploadFile(FILE_NAME, fileListView); - fileListViewAfterUploadFile.scrollTillFindElement(FILE_NAME); - assertTrue(fileHasBeenUploaded = fileListViewAfterUploadFile - .getFileElement().isDisplayed()); - - ElementMenuOptions menuOptions = fileListViewAfterUploadFile - .longPressOnElement(FILE_NAME); - FileDetailsView fileDetailsView = menuOptions.clickOnDetails(); - fileDetailsView.checkKeepFileUpToDateCheckbox(); - Thread.sleep(3000); - driver.sendKeyEvent(android.view.KeyEvent.KEYCODE_BACK); - assertTrue(common.isElementPresent( - fileListViewAfterUploadFile.getFileElementLayout(), - MobileBy.id(FileListView.getFavoriteFileIndicator()))); - assertTrue(fileListViewAfterUploadFile.getFileElementLayout() - .findElement(By.id(FileListView.getFavoriteFileIndicator())) - .isDisplayed()); - } - - @Test - @Category({NoIgnoreTestCategory.class}) - public void testKeepFileUpToDateAndRefresh () throws Exception { - - FileListView fileListView = Actions.login(Config.URL, Config.user, - Config.password, Config.isTrusted, driver); - common.assertIsInFileListView(); - - Common.waitTillElementIsNotPresentWithoutTimeout(fileListView.getProgressCircular(), - 1000); - - FileListView fileListViewAfterUploadFile = Actions - .uploadFile(FILE_NAME, fileListView); - fileListViewAfterUploadFile.scrollTillFindElement(FILE_NAME); - assertTrue(fileHasBeenUploaded = fileListViewAfterUploadFile - .getFileElement().isDisplayed()); - - ElementMenuOptions menuOptions = fileListViewAfterUploadFile - .longPressOnElement(FILE_NAME); - FileDetailsView fileDetailsView = menuOptions.clickOnDetails(); - fileDetailsView.checkKeepFileUpToDateCheckbox(); - Thread.sleep(3000); - driver.sendKeyEvent(android.view.KeyEvent.KEYCODE_BACK); - - fileListViewAfterUploadFile.pulldownToRefresh(); - //assertTrue(fileListView.getProgressCircular().isDisplayed()); - Common.waitTillElementIsNotPresentWithoutTimeout(fileListView.getProgressCircular(), - 100); - - assertTrue(common.isElementPresent( - fileListViewAfterUploadFile.getFileElementLayout(), - MobileBy.id(FileListView.getFavoriteFileIndicator()))); - assertTrue(fileListViewAfterUploadFile.getFileElementLayout() - .findElement(By.id(FileListView.getFavoriteFileIndicator())) - .isDisplayed()); - } - - - @After - public void tearDown() throws Exception { - common.takeScreenShotOnFailed(name.getMethodName()); - FileListView fileListView = new FileListView(driver); - if (fileHasBeenUploadedFromGmail) { - Actions.deleteElement(FILE_GMAIL_NAME,fileListView, driver); - } - if(fileHasBeenUploaded){ - Actions.deleteElement(FILE_NAME,fileListView, driver); - Actions.deleteElement(BIG_FILE_NAME,fileListView, driver); - } - - //driver.removeApp("com.owncloud.android"); - driver.quit(); - } - - -} - diff --git a/automationTest/src/test/resources/.gitignore b/automationTest/src/test/resources/.gitignore deleted file mode 100644 index 86d0cb2726c..00000000000 --- a/automationTest/src/test/resources/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -# Ignore everything in this directory -* -# Except this file -!.gitignore \ No newline at end of file diff --git a/build.gradle b/build.gradle index a0db0184c09..0726164c029 100644 --- a/build.gradle +++ b/build.gradle @@ -1,70 +1,57 @@ buildscript { - repositories { - mavenCentral() - } - dependencies { - classpath 'com.android.tools.build:gradle:1.2.3' + ext { + // SDK + sdkCompileVersion = 35 + sdkMinVersion = 24 + sdkTargetVersion = 35 } -} - -apply plugin: 'com.android.application' + repositories { + google() + maven { url "https://plugins.gradle.org/m2/" } + } -repositories { - mavenCentral() - - flatDir { - dirs 'libs' + dependencies { + classpath libs.android.gradlePlugin + classpath libs.kotlin.gradlePlugin + classpath libs.ktlint.gradlePlugin } } -dependencies { - compile name: 'touch-image-view' - compile 'com.android.support:support-v4:22.2.1' - compile project(':owncloud-android-library') - compile 'com.jakewharton:disklrucache:2.0.2' - compile 'com.android.support:appcompat-v7:22.2.1' +plugins { + alias libs.plugins.sonarqube + alias libs.plugins.ksp apply false + alias libs.plugins.detekt + alias libs.plugins.cyclonedx } -android { - compileSdkVersion 22 - buildToolsVersion "22.0.1" - sourceSets { - main { - manifest.srcFile 'AndroidManifest.xml' - java.srcDirs = ['src'] - resources.srcDirs = ['src'] - aidl.srcDirs = ['src'] - renderscript.srcDirs = ['src'] - res.srcDirs = ['res'] - assets.srcDirs = ['res'] +allprojects { + repositories { + google() + mavenCentral() + maven { + url "https://jitpack.io" } - - // Move the tests to tests/java, tests/res, etc... - instrumentTest.setRoot('tests') - - // Move the build types to build-types/ - // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... - // This moves them out of them default location under src//... which would - // conflict with src/ being used by the main source set. - // Adding new build types or product flavors should be accompanied - // by a similar customization. - debug.setRoot('build-types/debug') - release.setRoot('build-types/release') } +} - android { - lintOptions { - abortOnError false - } - } - - productFlavors { - } +subprojects { + apply plugin: "com.google.devtools.ksp" + apply plugin: "org.jlleitschuh.gradle.ktlint" + apply plugin: "org.sonarqube" + apply plugin: "io.gitlab.arturbosch.detekt" +} - packagingOptions { - exclude 'META-INF/LICENSE.txt' +sonarqube { + properties { + property "sonar.projectKey", "owncloud_android" + property "sonar.organization", "owncloud-1" + property "sonar.projectVersion", getBranchName() + property "sonar.host.url", "https://sonarcloud.io" } } - +def getBranchName() { + def name = "git rev-parse --abbrev-ref HEAD".execute() + return name.text.toString().trim() +} diff --git a/build.xml b/build.xml deleted file mode 100644 index 2221a7d799b..00000000000 --- a/build.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/changelog/2.18.0_2021-05-24/3121 b/changelog/2.18.0_2021-05-24/3121 new file mode 100644 index 00000000000..564abdeeb07 --- /dev/null +++ b/changelog/2.18.0_2021-05-24/3121 @@ -0,0 +1,6 @@ +Enhancement: Replace blank view in music player with cover art + +Blank view in the music preview player with styled up cover art was replaced. +For music files that does not have cover art embodied, it is displayed a placeholder. + +https://github.com/owncloud/android/issues/3121 https://github.com/owncloud/android/pull/3182 diff --git a/changelog/2.18.0_2021-05-24/3143 b/changelog/2.18.0_2021-05-24/3143 new file mode 100644 index 00000000000..30243062ae8 --- /dev/null +++ b/changelog/2.18.0_2021-05-24/3143 @@ -0,0 +1,8 @@ +Enhancement: Move to AndroidX Preference and new structure for settings + +Settings have been updated to use the current Android's recommendation, AndroidX framework. +In addition, they have been reorganized into subsections for a better understanding and +navigation structure. Also, new features have been added: now, source path and behaviour +in auto uploads can be chosen differently for pictures and videos. + +https://github.com/owncloud/android/issues/2867 https://github.com/owncloud/android/pull/3143 diff --git a/changelog/2.18.0_2021-05-24/3162 b/changelog/2.18.0_2021-05-24/3162 new file mode 100644 index 00000000000..27d03aa2ad1 --- /dev/null +++ b/changelog/2.18.0_2021-05-24/3162 @@ -0,0 +1,7 @@ +Enhancement: Support for apk files + +Apk files could be installed from the app after being downloaded. Installation process will be triggered by the system. + +https://github.com/owncloud/android/issues/2691 +https://github.com/owncloud/android/pull/3156 +https://github.com/owncloud/android/pull/3162 diff --git a/changelog/2.18.0_2021-05-24/3177 b/changelog/2.18.0_2021-05-24/3177 new file mode 100644 index 00000000000..2220b653c6d --- /dev/null +++ b/changelog/2.18.0_2021-05-24/3177 @@ -0,0 +1,7 @@ +Enhancement: Align previews actions + +Behaviour was aligned through every preview fragment. Images, videos, audios and texts show the same actions now. + + +https://github.com/owncloud/android/issues/3155 +https://github.com/owncloud/android/pull/3177 \ No newline at end of file diff --git a/changelog/2.18.0_2021-05-24/3184 b/changelog/2.18.0_2021-05-24/3184 new file mode 100644 index 00000000000..b94a9a34ae9 --- /dev/null +++ b/changelog/2.18.0_2021-05-24/3184 @@ -0,0 +1,6 @@ +Bugfix: Fix navbar is visible in file preview screen after rotation + +Glitch was fixed where the navigation bar became visible in a file preview +screen when rotating the device. + +https://github.com/owncloud/android/pull/3184 https://github.com/owncloud/android/issues/3139 diff --git a/changelog/2.18.0_2021-05-24/3202 b/changelog/2.18.0_2021-05-24/3202 new file mode 100644 index 00000000000..6ac642e30cb --- /dev/null +++ b/changelog/2.18.0_2021-05-24/3202 @@ -0,0 +1,8 @@ +Bugfix: Fix a bug when some fields where not retrieved from OIDC Discovery + +Problem when requesting the OIDC discovery was fixed. Some fields were handled +as mandatory, but they are recommended according to the docs. It prevented from +a proper login. Now it is possible to login as expected when some fields are not retrieved. + +https://github.com/owncloud/android/pull/3202 +https://github.com/owncloud/android-library/pull/392 diff --git a/changelog/2.18.0_2021-05-24/3210 b/changelog/2.18.0_2021-05-24/3210 new file mode 100644 index 00000000000..0ae6e38c980 --- /dev/null +++ b/changelog/2.18.0_2021-05-24/3210 @@ -0,0 +1,6 @@ +Bugfix: Snackbar in passcode view is not displayed + +Snackbar telling about an error in a failed enter or reenter of the passcode +wasn't visible. Now, the message is shown in a text just below the passcode input. + +https://github.com/owncloud/android/issues/2722 https://github.com/owncloud/android/pull/3210 diff --git a/changelog/2.18.0_2021-05-24/3218 b/changelog/2.18.0_2021-05-24/3218 new file mode 100644 index 00000000000..fcf5bd62148 --- /dev/null +++ b/changelog/2.18.0_2021-05-24/3218 @@ -0,0 +1,7 @@ +Enhancement: Settings accessible even when no account is attached + +Now, settings can be accessed via a button in the login screen, removing the necessity to +have an attached account. However, auto picture and video uploads won't be available until +an account is registered in the app. + +https://github.com/owncloud/android/issues/2638 https://github.com/owncloud/android/pull/3218 diff --git a/changelog/2.18.0_2021-05-24/3220 b/changelog/2.18.0_2021-05-24/3220 new file mode 100644 index 00000000000..8dc7e4328c1 --- /dev/null +++ b/changelog/2.18.0_2021-05-24/3220 @@ -0,0 +1,8 @@ +Bugfix: Fixed problem when a file is edited externally + +If an external editor modifies a file, the new size will not match when it is +assembled in server side. Fixed by removing the if-match header from the proper place + +https://github.com/owncloud/android/issues/2752 +https://github.com/owncloud/android/pull/3220 + diff --git a/changelog/2.18.0_2021-05-24/3221 b/changelog/2.18.0_2021-05-24/3221 new file mode 100644 index 00000000000..ba09e4d49fb --- /dev/null +++ b/changelog/2.18.0_2021-05-24/3221 @@ -0,0 +1,6 @@ +Change: Error handling for pattern lock + +Error messages when an incorrect pattern was entered were shown in a snackbar. Now, +they are displayed in a text below the pattern input, just like in the passcode screen. + +https://github.com/owncloud/android/issues/3215 https://github.com/owncloud/android/pull/3221 diff --git a/changelog/2.18.0_2021-05-24/3226 b/changelog/2.18.0_2021-05-24/3226 new file mode 100644 index 00000000000..7abb7c68ad8 --- /dev/null +++ b/changelog/2.18.0_2021-05-24/3226 @@ -0,0 +1,8 @@ +Enhancement: Fixed account for camera uploads + +Camera uploads will be uploaded to a fixed account independently of the current account. +Removing the account attached to camera uploads will disable this feature. +User will be warned when removing an account that has camera uploads attached. + +https://github.com/owncloud/android/issues/3166 +https://github.com/owncloud/android/pull/3226 diff --git a/changelog/2.18.0_2021-05-24/3230 b/changelog/2.18.0_2021-05-24/3230 new file mode 100644 index 00000000000..ed898abd699 --- /dev/null +++ b/changelog/2.18.0_2021-05-24/3230 @@ -0,0 +1,7 @@ +Change: Hide biometrical if device does not support it + +Biometric lock preference in "Security" settings subsection was shown even when the +device didn't support biometrics (if it was Android 6.0 or later versions). Now, the +preference is only shown if the device has the suitable hardware for it. + +https://github.com/owncloud/android/issues/3217 https://github.com/owncloud/android/pull/3230 diff --git a/changelog/2.18.0_2021-05-24/3234 b/changelog/2.18.0_2021-05-24/3234 new file mode 100644 index 00000000000..43eb3092c8e --- /dev/null +++ b/changelog/2.18.0_2021-05-24/3234 @@ -0,0 +1,6 @@ +Bugfix: Fix permissions were displayed in share creation view after rotation + +Permissions view was shown when creating a share for a file after rotation. +Capabilities were taken into account just once. Now, the permissions view is shown only when capabilities match. + +https://github.com/owncloud/android/issues/3204 https://github.com/owncloud/android/pull/3234 diff --git a/changelog/2.18.1_2021-07-20/3293 b/changelog/2.18.1_2021-07-20/3293 new file mode 100644 index 00000000000..69c4f2c9fa0 --- /dev/null +++ b/changelog/2.18.1_2021-07-20/3293 @@ -0,0 +1,7 @@ +Enhancement: Replace picker to select camera folder with native one + +The custom picker to select the camera folder was replaced with the native one. Now, it is ready for +scoped storage and some problems to select a folder in the SD Card were fixed. Also, a new field to show +the last synchronization timestamp was added. + +https://github.com/owncloud/android/issues/2899 https://github.com/owncloud/android/pull/3293 \ No newline at end of file diff --git a/changelog/2.18.1_2021-07-20/3296 b/changelog/2.18.1_2021-07-20/3296 new file mode 100644 index 00000000000..4dc42fa01fd --- /dev/null +++ b/changelog/2.18.1_2021-07-20/3296 @@ -0,0 +1,6 @@ +Enhancement: Hide "More" section if all options are disabled + +A blank view was shown when all options in "More" subsection were disabled. Now, the +subsection is only shown if at least one option is enabled. + +https://github.com/owncloud/android/issues/3271 https://github.com/owncloud/android/pull/3296 diff --git a/changelog/2.18.1_2021-07-20/3297 b/changelog/2.18.1_2021-07-20/3297 new file mode 100644 index 00000000000..12fcc89a872 --- /dev/null +++ b/changelog/2.18.1_2021-07-20/3297 @@ -0,0 +1,6 @@ +Enhancement: Note icon in music player to be branded + +The note icon in the music player will have the same color as the toolbar, +so branded apps can have the icon tinted using their custom theme. + +https://github.com/owncloud/android/issues/3272 https://github.com/owncloud/android/pull/3297 diff --git a/changelog/2.18.1_2021-07-20/3310 b/changelog/2.18.1_2021-07-20/3310 new file mode 100644 index 00000000000..1f5bc0f491e --- /dev/null +++ b/changelog/2.18.1_2021-07-20/3310 @@ -0,0 +1,5 @@ +Security: Add PKCE support + +PKCE (Proof Key for Code Exchange) support defined in RFC-7636 was added to prevent authorization code interception attacks. + +https://github.com/owncloud/android/pull/3310 \ No newline at end of file diff --git a/changelog/2.18.3_2021-10-27/3423 b/changelog/2.18.3_2021-10-27/3423 new file mode 100644 index 00000000000..7e3a67348de --- /dev/null +++ b/changelog/2.18.3_2021-10-27/3423 @@ -0,0 +1,8 @@ +Enhancement: Privacy policy button more accessible + +The privacy policy button has been removed from "More" settings section, +and it has been added to general settings screen as well as to the drawer menu, so +that it is easier and more accessible for users. + +https://github.com/owncloud/android/pull/3423 +https://github.com/owncloud/android/issues/3422 \ No newline at end of file diff --git a/changelog/2.19.0_2021-11-15/3336 b/changelog/2.19.0_2021-11-15/3336 new file mode 100644 index 00000000000..9d6d0b00cc6 --- /dev/null +++ b/changelog/2.19.0_2021-11-15/3336 @@ -0,0 +1,9 @@ +Enhancement: Delete old user directories in order to free memory + +Previously, when users deleted an account the synchronized files of this account +stayed on the SD-Card. So if the user didn't want them anymore he had to delete +them manually. Now, the app automatically removes the files associated with an +account. + +https://github.com/owncloud/android/pull/3336 +https://github.com/owncloud/android/issues/125 diff --git a/changelog/2.19.0_2021-11-15/3337 b/changelog/2.19.0_2021-11-15/3337 new file mode 100644 index 00000000000..843672fab25 --- /dev/null +++ b/changelog/2.19.0_2021-11-15/3337 @@ -0,0 +1,6 @@ +Enhancement: Delete old logs every week + +Previously, logs were stored but never deleted. It used a lot of storage when logs were enabled for some time. Now, the +logs are removed periodically every week. + +https://github.com/owncloud/android/issues/3328 https://github.com/owncloud/android/pull/3337 diff --git a/changelog/2.19.0_2021-11-15/3363 b/changelog/2.19.0_2021-11-15/3363 new file mode 100644 index 00000000000..5244ed4e7cf --- /dev/null +++ b/changelog/2.19.0_2021-11-15/3363 @@ -0,0 +1,8 @@ +Bugfix: Lack of back button in Logs view + +A new back arrow button has been added in the toolbar in Logs +screen, so that now it's possible to return to the settings screen without +the use of physical buttons of the device. + +https://github.com/owncloud/android/issues/3357 +https://github.com/owncloud/android/pull/3363 \ No newline at end of file diff --git a/changelog/2.19.0_2021-11-15/3365 b/changelog/2.19.0_2021-11-15/3365 new file mode 100644 index 00000000000..c73d1c1a2e6 --- /dev/null +++ b/changelog/2.19.0_2021-11-15/3365 @@ -0,0 +1,8 @@ +Bugfix: Passcode input misbehaving + +Passcode text fields have been made not selectable once a number is written on +them, so that we avoid bugs with the digits of the passcode and the way of +entering them. + +https://github.com/owncloud/android/issues/3342 +https://github.com/owncloud/android/pull/3365 \ No newline at end of file diff --git a/changelog/2.19.0_2021-11-15/3380 b/changelog/2.19.0_2021-11-15/3380 new file mode 100644 index 00000000000..32f5c1017ea --- /dev/null +++ b/changelog/2.19.0_2021-11-15/3380 @@ -0,0 +1,8 @@ +Bugfix: ANR after removing account with too many downloaded files + +Previously, when a user account was deleted, the application could freeze when trying to delete a large number of files. +Now, the application has been fixed so that it doesn't freeze anymore by doing this. + +https://github.com/owncloud/android/issues/3362 +https://github.com/owncloud/android/pull/3380 + diff --git a/changelog/2.19.0_2021-11-15/3381 b/changelog/2.19.0_2021-11-15/3381 new file mode 100644 index 00000000000..70a38118925 --- /dev/null +++ b/changelog/2.19.0_2021-11-15/3381 @@ -0,0 +1,7 @@ +Bugfix: Account removed is not removed from the drawer + +When an account was deleted from the device settings, in the accounts section, it was not removed from the Navigation Drawer. +Now, when deleting an account from there, the Navigation Drawer is refreshed and the removed account is no more shown. + +https://github.com/owncloud/android/issues/3340 +https://github.com/owncloud/android/pull/3381 diff --git a/changelog/2.19.0_2021-11-15/3383 b/changelog/2.19.0_2021-11-15/3383 new file mode 100644 index 00000000000..04cfc52a120 --- /dev/null +++ b/changelog/2.19.0_2021-11-15/3383 @@ -0,0 +1,7 @@ +Bugfix: Crash in FileDataStorageManager + +A possible null value with the account +that caused certain crashes on Android 10 devices has been controlled. + +https://github.com/owncloud/android/issues/2896 +https://github.com/owncloud/android/pull/3383 diff --git a/changelog/2.19.0_2021-11-15/3385 b/changelog/2.19.0_2021-11-15/3385 new file mode 100644 index 00000000000..d463333d3ea --- /dev/null +++ b/changelog/2.19.0_2021-11-15/3385 @@ -0,0 +1,9 @@ +Enhancement: Instant upload only when charging + +A new option has been added in the auto upload pictures/videos +screen, so that now it's possible to upload pictures or videos +only when charging. + +https://github.com/owncloud/android/issues/465 +https://github.com/owncloud/android/issues/3315 +https://github.com/owncloud/android/pull/3385 diff --git a/changelog/2.19.0_2021-11-15/3396 b/changelog/2.19.0_2021-11-15/3396 new file mode 100644 index 00000000000..1c02e4f0594 --- /dev/null +++ b/changelog/2.19.0_2021-11-15/3396 @@ -0,0 +1,15 @@ +Enhancement: Scoped Storage + +The way to store files in the device has changed completely. +Previously, the files were stored in the shared storage. That means that apps that had +access to the shared storage, could read, write or do whatever they wanted with the ownCloud files. + +Now, ownCloud files are stored in the Scoped Storage, so they are safer. +Other apps can access ownCloud files using the Documents Provider, which is the native way +to do it, and that means that the ownCloud app has full control of its files. + +Furthermore, if the app is removed, the files downloaded to ownCloud are removed too. +So, files are not lost or forgotten in the device after uninstalling the app. + +https://github.com/owncloud/android/issues/2877 +https://github.com/owncloud/android/pull/3269 \ No newline at end of file diff --git a/changelog/2.19.0_2021-11-15/3408 b/changelog/2.19.0_2021-11-15/3408 new file mode 100644 index 00000000000..9e596ad15aa --- /dev/null +++ b/changelog/2.19.0_2021-11-15/3408 @@ -0,0 +1,8 @@ +Enhancement: New Logging Screen 2.0 + +A new option has been added to the logging screen, +so that now it's possible to share/delete log files +or open them. + +https://github.com/owncloud/android/issues/3333 +https://github.com/owncloud/android/pull/3408 diff --git a/changelog/2.19.0_2021-11-15/3418 b/changelog/2.19.0_2021-11-15/3418 new file mode 100644 index 00000000000..5239fc4d2cb --- /dev/null +++ b/changelog/2.19.0_2021-11-15/3418 @@ -0,0 +1,7 @@ +Bugfix: Camera Upload manual retry + +Previously, when users selected to retry a single camera upload, an error message appeared. +Now, the retry of a single upload is enqueued again as expected. + +https://github.com/owncloud/android/pull/3418 +https://github.com/owncloud/android/issues/3417 diff --git a/changelog/2.19.0_2021-11-15/3431 b/changelog/2.19.0_2021-11-15/3431 new file mode 100644 index 00000000000..0d52cb8933c --- /dev/null +++ b/changelog/2.19.0_2021-11-15/3431 @@ -0,0 +1,8 @@ +Bugfix: Device rotation moves to root in folder picker + +Previously, when users rotate the device trying to share photos with oC selecting a non-root folder, +folder picker shows the root folder +Now, folder picker shows the folder that the user browsed. + +https://github.com/owncloud/android/pull/3431 +https://github.com/owncloud/android/issues/3163 diff --git a/changelog/2.19.0_2021-11-15/3436 b/changelog/2.19.0_2021-11-15/3436 new file mode 100644 index 00000000000..b8fca595429 --- /dev/null +++ b/changelog/2.19.0_2021-11-15/3436 @@ -0,0 +1,8 @@ +Bugfix: Logging does not stop when the user deactivates it + +Previously, when users disabled the logging option in the settings, +the application would not stop logging and the size of the log files would increase. +Now, the option to disable it works perfectly and no logs are collected if disabled. + +https://github.com/owncloud/android/pull/3436 +https://github.com/owncloud/android/issues/3325 diff --git a/changelog/2.20.0_2022-02-16/2524 b/changelog/2.20.0_2022-02-16/2524 new file mode 100644 index 00000000000..ab4864a2435 --- /dev/null +++ b/changelog/2.20.0_2022-02-16/2524 @@ -0,0 +1,7 @@ +Enhancement: Permission dialog removal + +The old permission request dialog has been removed. +It was not needed after migrating the storage to scoped storage, +read and write permissions are guaranteed in our scoped storage. + +https://github.com/owncloud/android/pull/2524 \ No newline at end of file diff --git a/changelog/2.20.0_2022-02-16/3375 b/changelog/2.20.0_2022-02-16/3375 new file mode 100644 index 00000000000..03e5add394c --- /dev/null +++ b/changelog/2.20.0_2022-02-16/3375 @@ -0,0 +1,9 @@ +Enhancement: Lock delay for app + +A new preference has been added to choose the interval in which the +app will be unlocked after having unlocked it once, making it more +comfortable for those who access the app frequently and have a security +lock set. + +https://github.com/owncloud/android/issues/3344 +https://github.com/owncloud/android/pull/3375 \ No newline at end of file diff --git a/changelog/2.20.0_2022-02-16/3434 b/changelog/2.20.0_2022-02-16/3434 new file mode 100644 index 00000000000..659f261d594 --- /dev/null +++ b/changelog/2.20.0_2022-02-16/3434 @@ -0,0 +1,7 @@ +Enhancement: Security enforced + +A new branding/MDM option has been added to make app +lock via passcode or pattern compulsory, whichever the user chooses. + +https://github.com/owncloud/android/pull/3434 +https://github.com/owncloud/android/issues/3400 diff --git a/changelog/2.20.0_2022-02-16/3437 b/changelog/2.20.0_2022-02-16/3437 new file mode 100644 index 00000000000..71900e6e2cb --- /dev/null +++ b/changelog/2.20.0_2022-02-16/3437 @@ -0,0 +1,8 @@ +Bugfix: Small glitch when side menu is full of accounts + +Previously, when users set up a large number of accounts, +the side menu overlapped the available space quota. +Now, everything is contained within a scroll to avoid this. + +https://github.com/owncloud/android/pull/3437 +https://github.com/owncloud/android/issues/3060 diff --git a/changelog/2.20.0_2022-02-16/3438 b/changelog/2.20.0_2022-02-16/3438 new file mode 100644 index 00000000000..eced7ccf63b --- /dev/null +++ b/changelog/2.20.0_2022-02-16/3438 @@ -0,0 +1,7 @@ +Enhancement: Respect capability for Avatar support + +Previously, the user's avatar was shown by default. +Now, it is shown or not depending on a new capability. + +https://github.com/owncloud/android/pull/3438 +https://github.com/owncloud/android/issues/3285 diff --git a/changelog/2.20.0_2022-02-16/3463 b/changelog/2.20.0_2022-02-16/3463 new file mode 100644 index 00000000000..ca546811960 --- /dev/null +++ b/changelog/2.20.0_2022-02-16/3463 @@ -0,0 +1,9 @@ +Enhancement: Brute force protection + +Previously, when setting passcode lock, an unlimited number of attempts +to unlock the app could be done in a row. Now, from the third incorrect +attempt, there will be an exponential growing waiting time until next +unlock attempt. + +https://github.com/owncloud/android/issues/3320 +https://github.com/owncloud/android/pull/3463 \ No newline at end of file diff --git a/changelog/2.20.0_2022-02-16/3499 b/changelog/2.20.0_2022-02-16/3499 new file mode 100644 index 00000000000..627fa47b0a3 --- /dev/null +++ b/changelog/2.20.0_2022-02-16/3499 @@ -0,0 +1,9 @@ +Enhancement: "Open with" action now allows editing + +Previously, when a document file was opened and edited with an external +app, changes weren't saved because it didn't synchronized with the server. +Now, when you edit a document and navigate or refresh in the ownCloud app, +it synchronizes automatically, keeping consistence of your files. + +https://github.com/owncloud/android/issues/3475 +https://github.com/owncloud/android/pull/3499 \ No newline at end of file diff --git a/changelog/2.20.0_2022-02-16/3527 b/changelog/2.20.0_2022-02-16/3527 new file mode 100644 index 00000000000..788ef6584f2 --- /dev/null +++ b/changelog/2.20.0_2022-02-16/3527 @@ -0,0 +1,6 @@ +Enhancement: Enable logs by default in debug mode + +Now, when the app is built in DEBUG mode, the logs are enabled by default. + +https://github.com/owncloud/android/issues/3526 +https://github.com/owncloud/android/pull/3527 \ No newline at end of file diff --git a/changelog/2.20.0_2022-02-16/3538 b/changelog/2.20.0_2022-02-16/3538 new file mode 100644 index 00000000000..90613b7a7d5 --- /dev/null +++ b/changelog/2.20.0_2022-02-16/3538 @@ -0,0 +1,10 @@ +Enhancement: Allow access from document provider preference + +Previously, files of ownCloud accounts couldn't be accessed via documents provider +when there was a lock set in the app. Now, a new preference has been +added to allow/disallow the access, so users have more control over their files. + +https://github.com/owncloud/android/issues/3379 +https://github.com/owncloud/android/issues/3520 +https://github.com/owncloud/android/pull/3384 +https://github.com/owncloud/android/pull/3538 \ No newline at end of file diff --git a/changelog/2.20.0_2022-02-16/3539 b/changelog/2.20.0_2022-02-16/3539 new file mode 100644 index 00000000000..81c411bc998 --- /dev/null +++ b/changelog/2.20.0_2022-02-16/3539 @@ -0,0 +1,7 @@ +Enhancement: Suggest the user to enable enhanced security + +When a user sets the passcode or pattern lock +on the security screen, the application suggests the user +whether to enable or not a biometric lock to unlock the application. + +https://github.com/owncloud/android/pull/3539 diff --git a/changelog/2.20.0_2022-02-16/3542 b/changelog/2.20.0_2022-02-16/3542 new file mode 100644 index 00000000000..e04610713e6 --- /dev/null +++ b/changelog/2.20.0_2022-02-16/3542 @@ -0,0 +1,8 @@ +Bugfix: Small bug when privacy policy disabled + +Previously, when privacy policy setup was disabled, +the side menu showed the privacy policy menu item. +Now, option is hidden when privacy policy is disabled. + +https://github.com/owncloud/android/pull/3542 +https://github.com/owncloud/android/issues/3521 diff --git a/changelog/2.21.0_2022-06-07/3419 b/changelog/2.21.0_2022-06-07/3419 new file mode 100644 index 00000000000..55b083bf591 --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3419 @@ -0,0 +1,8 @@ +Enhancement: First steps in Android Enterprise integration + +Two parameters (server url and server url input visibility) can be now +managed via MDM. These were the first parameters used to test integration +with Android Enterprise and Android Management API. + +https://github.com/owncloud/android/issues/3415 +https://github.com/owncloud/android/pull/3419 \ No newline at end of file diff --git a/changelog/2.21.0_2022-06-07/3440 b/changelog/2.21.0_2022-06-07/3440 new file mode 100644 index 00000000000..542c056f46b --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3440 @@ -0,0 +1,7 @@ +Enhancement: Lock delay enforced + +A new local setup's option has been added for the +application to lock after the selected interval + +https://github.com/owncloud/android/issues/3440 +https://github.com/owncloud/android/pull/3547 diff --git a/changelog/2.21.0_2022-06-07/3480 b/changelog/2.21.0_2022-06-07/3480 new file mode 100644 index 00000000000..cff20be96b3 --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3480 @@ -0,0 +1,8 @@ +Enhancement: Provide app feedback to MDM admins + +Now, when a MDM configuration is applied for the first time +or changed by an IT administrator, the app sends feedback that +will be shown in the EMM console. + +https://github.com/owncloud/android/issues/3420 +https://github.com/owncloud/android/pull/3480 \ No newline at end of file diff --git a/changelog/2.21.0_2022-06-07/3544 b/changelog/2.21.0_2022-06-07/3544 new file mode 100644 index 00000000000..c69940581c9 --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3544 @@ -0,0 +1,7 @@ +Enhancement: Extended security enforced + +New extended branding options have been added to make app +lock via passcode or pattern compulsory. + +https://github.com/owncloud/android/issues/3543 +https://github.com/owncloud/android/pull/3544 diff --git a/changelog/2.21.0_2022-06-07/3560 b/changelog/2.21.0_2022-06-07/3560 new file mode 100644 index 00000000000..3b6549f56e5 --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3560 @@ -0,0 +1,8 @@ +Bugfix: Security flags for recording screen + +Previously, if passcode or pattern were enabled, no screen from the app could be viewed +from a recording screen app. Now, only the login, passcode and pattern screens are protected +against recording. + +https://github.com/owncloud/android/issues/3468 +https://github.com/owncloud/android/pull/3560 \ No newline at end of file diff --git a/changelog/2.21.0_2022-06-07/3582 b/changelog/2.21.0_2022-06-07/3582 new file mode 100644 index 00000000000..7578f5dcdc8 --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3582 @@ -0,0 +1,6 @@ +Enhancement: Improvements for the UI in the passcode screen + +Redesign of the passcode screen to have the numeric keyboard in the screen instead of using the Android one. + +https://github.com/owncloud/android/issues/3516 +https://github.com/owncloud/android/pull/3582 \ No newline at end of file diff --git a/changelog/2.21.0_2022-06-07/3587 b/changelog/2.21.0_2022-06-07/3587 new file mode 100644 index 00000000000..b24d32ea490 --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3587 @@ -0,0 +1,7 @@ +Enhancement: Improvements for the UI in the pattern screen + +Redesign of the pattern screen. +Cancel button deleted and new back arrow in the toolbar. + +https://github.com/owncloud/android/issues/3580 +https://github.com/owncloud/android/pull/3587 \ No newline at end of file diff --git a/changelog/2.21.0_2022-06-07/3589 b/changelog/2.21.0_2022-06-07/3589 new file mode 100644 index 00000000000..cd17910cdf4 --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3589 @@ -0,0 +1,7 @@ +Bugfix: Crash when changing orientation in Details view + +Previously, the app crashes when changing orientation in Details view after installing +Now, app shows correctly the details after installing. + +https://github.com/owncloud/android/issues/3571 +https://github.com/owncloud/android/pull/3589 diff --git a/changelog/2.21.0_2022-06-07/3592 b/changelog/2.21.0_2022-06-07/3592 new file mode 100644 index 00000000000..013bceae727 --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3592 @@ -0,0 +1,8 @@ +Bugfix: Lock displays shown again + +Previously, if you clicked on passcode or pattern lock to remove it, and then you clicked on cancel, +the lock display was shown again to put the passcode or pattern. Now, if you cancel it, you come back +to settings screen. + +https://github.com/owncloud/android/issues/3591 +https://github.com/owncloud/android/pull/3592 \ No newline at end of file diff --git a/changelog/2.21.0_2022-06-07/3594 b/changelog/2.21.0_2022-06-07/3594 new file mode 100644 index 00000000000..a85257294b2 --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3594 @@ -0,0 +1,6 @@ +Enhancement: Release Notes + +New release notes to show news in updates. + +https://github.com/owncloud/android/issues/3442 +https://github.com/owncloud/android/pull/3594 \ No newline at end of file diff --git a/changelog/2.21.0_2022-06-07/3615 b/changelog/2.21.0_2022-06-07/3615 new file mode 100644 index 00000000000..0e0c150970f --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3615 @@ -0,0 +1,6 @@ +Enhancement: Prevent taking screenshots + +New option to prevent taking screenshots. + +https://github.com/owncloud/android/issues/3596 +https://github.com/owncloud/android/pull/3615 diff --git a/changelog/2.21.0_2022-06-07/3616 b/changelog/2.21.0_2022-06-07/3616 new file mode 100644 index 00000000000..5953d88aef3 --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3616 @@ -0,0 +1,6 @@ +Enhancement: What´s new option + +New option to check what was included in the latest version. + +https://github.com/owncloud/android/issues/3352 +https://github.com/owncloud/android/pull/3616 \ No newline at end of file diff --git a/changelog/2.21.0_2022-06-07/3624 b/changelog/2.21.0_2022-06-07/3624 new file mode 100644 index 00000000000..ec892e4c485 --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3624 @@ -0,0 +1,6 @@ +Enhancement: New option to show or not hidden files + +Enable it to show hidden files and folders + +https://github.com/owncloud/android/issues/2578 +https://github.com/owncloud/android/pull/3624 \ No newline at end of file diff --git a/changelog/2.21.0_2022-06-07/3627 b/changelog/2.21.0_2022-06-07/3627 new file mode 100644 index 00000000000..b87cef187f7 --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3627 @@ -0,0 +1,6 @@ +Enhancement: Option to allow screenshots or not in Android Enterprise + +New parameter to manage screenshots can be configured via MDM. + +https://github.com/owncloud/android/issues/3625 +https://github.com/owncloud/android/pull/3627 \ No newline at end of file diff --git a/changelog/2.21.0_2022-06-07/3636 b/changelog/2.21.0_2022-06-07/3636 new file mode 100644 index 00000000000..c12cfb2fd31 --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3636 @@ -0,0 +1,6 @@ +Enhancement: Full name is shown in shares + +Full name is shown when using public share instead of username. + +https://github.com/owncloud/android/issues/1106 +https://github.com/owncloud/android/pull/3636 \ No newline at end of file diff --git a/changelog/2.21.0_2022-06-07/3638 b/changelog/2.21.0_2022-06-07/3638 new file mode 100644 index 00000000000..191f360cfb5 --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3638 @@ -0,0 +1,6 @@ +Enhancement: Send for file multiselect + +Send multiple files at once if they are downloaded. + +https://github.com/owncloud/android/issues/3491 +https://github.com/owncloud/android/pull/3638 \ No newline at end of file diff --git a/changelog/2.21.0_2022-06-07/3639 b/changelog/2.21.0_2022-06-07/3639 new file mode 100644 index 00000000000..b5bcb3804ca --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3639 @@ -0,0 +1,6 @@ +Enhancement: Support for SVG files added + +SVG files are supported and can be downloaded and viewed. + +https://github.com/owncloud/android/issues/1033 +https://github.com/owncloud/android/pull/3639 diff --git a/changelog/2.21.0_2022-06-07/3640 b/changelog/2.21.0_2022-06-07/3640 new file mode 100644 index 00000000000..5350a9a284d --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3640 @@ -0,0 +1,7 @@ +Enhancement: Improved copy/move dialog + +Previously,they appeared exactly the same and there was no way of knowing which was which. +Now they are differentiated by the text on the action button. + +https://github.com/owncloud/android/issues/1414 +https://github.com/owncloud/android/pull/3640 diff --git a/changelog/2.21.0_2022-06-07/3643 b/changelog/2.21.0_2022-06-07/3643 new file mode 100644 index 00000000000..4e9520cdbaa --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3643 @@ -0,0 +1,7 @@ +Bugfix: Prevented signed in user in the list of users to be shared + +Previously, user list for sharing contains signed in user, +now this user is omitted to avoid errors. + +https://github.com/owncloud/android/issues/1419 +https://github.com/owncloud/android/pull/3643 diff --git a/changelog/2.21.0_2022-06-07/3644 b/changelog/2.21.0_2022-06-07/3644 new file mode 100644 index 00000000000..bb463bfb279 --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3644 @@ -0,0 +1,9 @@ +Bugfix: Corrupt picture error controlled + +Previously, If a file is not correct or is damaged, +it is downloaded but not previewed. +An infinite spinner on a black window is shown instead. +Now, an error appears warning to the user. + +https://github.com/owncloud/android/issues/3441 +https://github.com/owncloud/android/pull/3644 diff --git a/changelog/2.21.0_2022-06-07/3653 b/changelog/2.21.0_2022-06-07/3653 new file mode 100644 index 00000000000..df16ea37578 --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3653 @@ -0,0 +1,6 @@ +Enhancement: Thumbnail click action in file detail + +When a user clicks on a file's detail view thumbnail, +the file is automatically downloaded and previewed. + +https://github.com/owncloud/android/pull/3653 diff --git a/changelog/2.21.0_2022-06-07/3659 b/changelog/2.21.0_2022-06-07/3659 new file mode 100644 index 00000000000..7de5b02b5cd --- /dev/null +++ b/changelog/2.21.0_2022-06-07/3659 @@ -0,0 +1,6 @@ +Enhancement: Share a folder from within the folder + +You can share a folder clicking in the share icon inside the folder. + +https://github.com/owncloud/android/issues/1441 +https://github.com/owncloud/android/pull/3659 diff --git a/changelog/2.21.1_2022-06-15/3696 b/changelog/2.21.1_2022-06-15/3696 new file mode 100644 index 00000000000..e3627f28422 --- /dev/null +++ b/changelog/2.21.1_2022-06-15/3696 @@ -0,0 +1,5 @@ +Bugfix: Fix crash when opening from details screen + +Fixed a crash when opening a non downloaded file from the details view. + +https://github.com/owncloud/android/pull/3696 diff --git a/changelog/2.21.2_2022-09-07/3711 b/changelog/2.21.2_2022-09-07/3711 new file mode 100644 index 00000000000..47580dfca31 --- /dev/null +++ b/changelog/2.21.2_2022-09-07/3711 @@ -0,0 +1,7 @@ +Enhancement: Shares from propfind + +Added a new property to the propfind, so that, we can get if the files in a folder are shared directly with just one request. +Previously, a propfind and another additional request were needed to the shares api to retrieve the shares of the folder. + +https://github.com/owncloud/android/issues/3711 +https://github.com/owncloud/android-library/pull/496 diff --git a/changelog/2.21.2_2022-09-07/3737 b/changelog/2.21.2_2022-09-07/3737 new file mode 100644 index 00000000000..2e75427652b --- /dev/null +++ b/changelog/2.21.2_2022-09-07/3737 @@ -0,0 +1,6 @@ +Enhancement: Open in web + +oCIS feature, to open files with mime types supported by the server in the web browser using collaborative or specific tools + +https://github.com/owncloud/android/issues/3672 +https://github.com/owncloud/android/pull/3737 diff --git a/changelog/2.21.2_2022-09-07/3738 b/changelog/2.21.2_2022-09-07/3738 new file mode 100644 index 00000000000..e6db75c28d5 --- /dev/null +++ b/changelog/2.21.2_2022-09-07/3738 @@ -0,0 +1,7 @@ +Enhancement: Private link capability + +Private link capability is now respected. Option is shown/hidden depending on its value + +https://github.com/owncloud/android/issues/3732 +https://github.com/owncloud/android/pull/3738 +https://github.com/owncloud/android-library/pull/505 diff --git a/changelog/3.0.0_2022-12-12/2934 b/changelog/3.0.0_2022-12-12/2934 new file mode 100644 index 00000000000..bca620750d2 --- /dev/null +++ b/changelog/3.0.0_2022-12-12/2934 @@ -0,0 +1,7 @@ +Enhancement: Sync engine rewritten + +The whole synchronization engine has been refactored to a new architecture to make it +better structured and more efficient. + +https://github.com/owncloud/android/pull/2934 +https://github.com/owncloud/android/issues/2818 diff --git a/changelog/3.0.0_2022-12-12/3632 b/changelog/3.0.0_2022-12-12/3632 new file mode 100644 index 00000000000..85ebf48a4c4 --- /dev/null +++ b/changelog/3.0.0_2022-12-12/3632 @@ -0,0 +1,8 @@ +Enhancement: Faster browser authentication + +Login flow has been improved by saving a click when the server is OAuth2/OIDC and it is valid. Also, +when authenticating again in a OAuth2/OIDC account already saved in the app, the username is already shown +in the browser. + +https://github.com/owncloud/android/pull/3632 +https://github.com/owncloud/android/issues/3759 diff --git a/changelog/3.0.0_2022-12-12/3710 b/changelog/3.0.0_2022-12-12/3710 new file mode 100644 index 00000000000..de0c1ceadf9 --- /dev/null +++ b/changelog/3.0.0_2022-12-12/3710 @@ -0,0 +1,7 @@ +Enhancement: Several transfers running simultaneously + +With the sync engine refactor, now several downloads and uploads can run at the same time, improving +efficiency. + +https://github.com/owncloud/android/pull/3710 +https://github.com/owncloud/android/issues/3426 diff --git a/changelog/3.0.0_2022-12-12/3719 b/changelog/3.0.0_2022-12-12/3719 new file mode 100644 index 00000000000..e7d896b809c --- /dev/null +++ b/changelog/3.0.0_2022-12-12/3719 @@ -0,0 +1,6 @@ +Bugfix: Fix for thumbnails + +Some thumbnails were not shown in the file list. Now, they are all shown correctly. + +https://github.com/owncloud/android/pull/3719 +https://github.com/owncloud/android/issues/2818 diff --git a/changelog/3.0.0_2022-12-12/3728 b/changelog/3.0.0_2022-12-12/3728 new file mode 100644 index 00000000000..d88e29b3b61 --- /dev/null +++ b/changelog/3.0.0_2022-12-12/3728 @@ -0,0 +1,7 @@ +Enhancement: Empty views improved + +When the list of items is empty, we now show a more attractive view. This applies to file list, +available offline list, shared by link list, uploads list, logs list and external share list. + +https://github.com/owncloud/android/pull/3728 +https://github.com/owncloud/android/issues/3026 diff --git a/changelog/3.0.0_2022-12-12/3766 b/changelog/3.0.0_2022-12-12/3766 new file mode 100644 index 00000000000..204d6d31204 --- /dev/null +++ b/changelog/3.0.0_2022-12-12/3766 @@ -0,0 +1,8 @@ +Enhancement: Automatic conflicts propagation + +Conflicts are now propagated automatically to parent folders, and cleaned when solved or removed. Before, +it was needed to navigate to the file location for the conflict to propagate. Also, move, copy and remove +actions work properly with conflicts. + +https://github.com/owncloud/android/pull/3766 +https://github.com/owncloud/android/issues/3005 diff --git a/changelog/3.0.1_2022-12-21/3837 b/changelog/3.0.1_2022-12-21/3837 new file mode 100644 index 00000000000..7f7fc196ebe --- /dev/null +++ b/changelog/3.0.1_2022-12-21/3837 @@ -0,0 +1,6 @@ +Bugfix: Fix crash when upgrading from 2.18 + +Upgrading from 2.18 or older versions made the app crash due to camera uploads data migration. +This problem has been solved and now the app upgrades correctly. + +https://github.com/owncloud/android/pull/3837 diff --git a/changelog/3.0.1_2022-12-21/3841 b/changelog/3.0.1_2022-12-21/3841 new file mode 100644 index 00000000000..c34ae3c6d93 --- /dev/null +++ b/changelog/3.0.1_2022-12-21/3841 @@ -0,0 +1,6 @@ +Bugfix: Fix crash when opening uploads section + +When upgrading from an old version with uploads with "forget" behaviour, app crashed +when opening the uploads tab. Now, this has been fixed so that it works correctly. + +https://github.com/owncloud/android/pull/3841 diff --git a/changelog/3.0.2_2023-01-26/3869 b/changelog/3.0.2_2023-01-26/3869 new file mode 100644 index 00000000000..0e10dd94f2a --- /dev/null +++ b/changelog/3.0.2_2023-01-26/3869 @@ -0,0 +1,5 @@ +Enhancement: Branded scope for OpenID Connect + +OpenID Connect scope is now brandable via setup.xml file or MDM + +https://github.com/owncloud/android/pull/3869 diff --git a/changelog/3.0.2_2023-01-26/534 b/changelog/3.0.2_2023-01-26/534 new file mode 100644 index 00000000000..c50cd261e3f --- /dev/null +++ b/changelog/3.0.2_2023-01-26/534 @@ -0,0 +1,5 @@ +Bugfix: Fix reauthentication prompt + +Potential fix to oauth error after logging in for first time that makes user to reauthenticate + +https://github.com/owncloud/android-library/pull/534 diff --git a/changelog/3.0.3_2023-02-13/3852 b/changelog/3.0.3_2023-02-13/3852 new file mode 100644 index 00000000000..6ee8fd08749 --- /dev/null +++ b/changelog/3.0.3_2023-02-13/3852 @@ -0,0 +1,7 @@ +Bugfix: Error messages too long in folders operation + +Error messages when trying to perform a non-allowed action for copying and moving folders +have been shortened so that they are shown completely in the snackbar. + +https://github.com/owncloud/android/pull/3852 +https://github.com/owncloud/android/issues/3820 diff --git a/changelog/3.0.3_2023-02-13/3889 b/changelog/3.0.3_2023-02-13/3889 new file mode 100644 index 00000000000..16ece13faa0 --- /dev/null +++ b/changelog/3.0.3_2023-02-13/3889 @@ -0,0 +1,5 @@ +Bugfix: Fix problems after authentication + +Client for session are now fetched on demand to avoid reinitialize DI, making the process smoother + +https://github.com/owncloud/android/pull/3889 diff --git a/changelog/3.0.3_2023-02-13/3899 b/changelog/3.0.3_2023-02-13/3899 new file mode 100644 index 00000000000..54ef933714b --- /dev/null +++ b/changelog/3.0.3_2023-02-13/3899 @@ -0,0 +1,7 @@ +Bugfix: Toolbar in file details view + +When returning from the share screen to details screen, the toolbar didn't show +the correct options and title. Now it does. + +https://github.com/owncloud/android/pull/3899 +https://github.com/owncloud/android/issues/3866 diff --git a/changelog/3.0.4_2023-03-07/3952 b/changelog/3.0.4_2023-03-07/3952 new file mode 100644 index 00000000000..03bd0b557b4 --- /dev/null +++ b/changelog/3.0.4_2023-03-07/3952 @@ -0,0 +1,6 @@ +Security: Fix for security issues with database + +Some fixes have been added so that now no part of the app's database +can be accessed from other apps. + +https://github.com/owncloud/android/pull/3952 diff --git a/changelog/3.0.4_2023-03-07/547 b/changelog/3.0.4_2023-03-07/547 new file mode 100644 index 00000000000..f992364a39e --- /dev/null +++ b/changelog/3.0.4_2023-03-07/547 @@ -0,0 +1,6 @@ +Enhancement: HTTP logs show more info + +When enabling HTTP logs, now the URL for each log will be shown as well to +make debugging easier. + +https://github.com/owncloud/android-library/pull/547 diff --git a/changelog/4.0.0_2023-05-29/3851 b/changelog/4.0.0_2023-05-29/3851 new file mode 100644 index 00000000000..cd3813eac4a --- /dev/null +++ b/changelog/4.0.0_2023-05-29/3851 @@ -0,0 +1,9 @@ +Enhancement: Support for spaces + +Spaces are now supported in oCIS accounts. A new tab has been added, which allows to list and +browse through all the available spaces for the current account. The supported operations +for files in spaces are: download, upload, remove, rename, create folder, copy and move. The +documents provider has been adapted as well to be able to browse through spaces and perform +the operations already mentioned. + +https://github.com/owncloud/android/pull/3851 diff --git a/changelog/4.0.0_2023-05-29/3930 b/changelog/4.0.0_2023-05-29/3930 new file mode 100644 index 00000000000..909f53cbcbf --- /dev/null +++ b/changelog/4.0.0_2023-05-29/3930 @@ -0,0 +1,6 @@ +Enhancement: Update label on Camera Uploads + +Update label on camera uploads to avoid confusions with the behavior of original files. +Now, it is clear that original files will be removed. + +https://github.com/owncloud/android/pull/3930 diff --git a/changelog/4.0.0_2023-05-29/3945 b/changelog/4.0.0_2023-05-29/3945 new file mode 100644 index 00000000000..c78802490a8 --- /dev/null +++ b/changelog/4.0.0_2023-05-29/3945 @@ -0,0 +1,9 @@ +Enhancement: Authenticated WebFinger + +Authenticated WebFinger was introduced into the authentication flow. +Now, WebFinger is used to retrieve the OpenID Connect issuer and the available ownCloud instances. +For the moment, multiple oC instances are not supported, only the first available instance is used. + +https://github.com/owncloud/android/issues/3943 +https://github.com/owncloud/android/pull/3945 +https://doc.owncloud.com/ocis/next/deployment/services/s-list/webfinger.html diff --git a/changelog/4.0.0_2023-05-29/3949 b/changelog/4.0.0_2023-05-29/3949 new file mode 100644 index 00000000000..72b53603c35 --- /dev/null +++ b/changelog/4.0.0_2023-05-29/3949 @@ -0,0 +1,7 @@ +Enhancement: Link in drawer menu + +Customers will be able now to set a personalized label and link that will +appear in the drawer menu, together with the drawer logo as an icon. + +https://github.com/owncloud/android/pull/3949 +https://github.com/owncloud/android/issues/3907 diff --git a/changelog/4.0.0_2023-05-29/3973 b/changelog/4.0.0_2023-05-29/3973 new file mode 100644 index 00000000000..eb8493b5498 --- /dev/null +++ b/changelog/4.0.0_2023-05-29/3973 @@ -0,0 +1,8 @@ +Change: Bump target SDK to 33 + +Target SDK was upgraded to 33 to keep the app updated with the latest android changes. +A new setting was introduced to manage notifications in an easier way. + +https://github.com/owncloud/android/issues/3617 +https://github.com/owncloud/android/pull/3972 +https://developer.android.com/about/versions/13/behavior-changes-13 diff --git a/changelog/4.0.0_2023-05-29/3982 b/changelog/4.0.0_2023-05-29/3982 new file mode 100644 index 00000000000..bc0e816a564 --- /dev/null +++ b/changelog/4.0.0_2023-05-29/3982 @@ -0,0 +1,7 @@ +Enhancement: Send language header in all requests + +Added Accept-Language header to all requests so the android App can receive translated content. + +https://github.com/owncloud/android/issues/3980 +https://github.com/owncloud/android/pull/3982 +https://github.com/owncloud/android-library/pull/551 diff --git a/changelog/4.0.0_2023-05-29/3990 b/changelog/4.0.0_2023-05-29/3990 new file mode 100644 index 00000000000..e568aa2bf55 --- /dev/null +++ b/changelog/4.0.0_2023-05-29/3990 @@ -0,0 +1,10 @@ +Enhancement: Open in specific web provider + +We've added the specific web app providers instead of opening the file with the default web provider. + +The user can open their files with any of the available specific web app providers from the server. +Previously, file was opened with the default one. + +https://github.com/owncloud/android/issues/3994 +https://github.com/owncloud/android/pull/3990 +https://owncloud.dev/services/app-registry/apps/#app-registry diff --git a/changelog/4.0.0_2023-05-29/4000 b/changelog/4.0.0_2023-05-29/4000 new file mode 100644 index 00000000000..7ba929e7519 --- /dev/null +++ b/changelog/4.0.0_2023-05-29/4000 @@ -0,0 +1,9 @@ +Enhancement: Updated WebFinger flow + +WebFinger call won't follow redirections. WebFinger will be requested first and will skip status.php +in case it's successful, and in case the lookup server is not directly accessible, we will continue +the authentication flow with the regular status.php. + +https://github.com/owncloud/android/issues/3998 +https://github.com/owncloud/android/pull/4000 +https://github.com/owncloud/android-library/pull/555 diff --git a/changelog/4.0.0_2023-05-29/4001 b/changelog/4.0.0_2023-05-29/4001 new file mode 100644 index 00000000000..fbcc4f0a781 --- /dev/null +++ b/changelog/4.0.0_2023-05-29/4001 @@ -0,0 +1,6 @@ +Enhancement: Monochrome icon for the app + +From Android 13, if the user has enabled themed app icons in their device settings, +the app will be shown with a monochrome icon. + +https://github.com/owncloud/android/pull/4001 diff --git a/changelog/4.0.0_2023-05-29/4011 b/changelog/4.0.0_2023-05-29/4011 new file mode 100644 index 00000000000..a4c9a43f08f --- /dev/null +++ b/changelog/4.0.0_2023-05-29/4011 @@ -0,0 +1,8 @@ +Enhancement: Add prompt parameter to OIDC flow + +Added prompt parameter to the authorization request in case OIDC is supported. +By default, select_account will be sent. It can be changed via branding or MDM. + +https://github.com/owncloud/android/pull/4011 +https://github.com/owncloud/android/issues/3862 +https://github.com/owncloud/android/issues/3984 diff --git a/changelog/4.0.0_2023-05-29/4013 b/changelog/4.0.0_2023-05-29/4013 new file mode 100644 index 00000000000..a42b529c01f --- /dev/null +++ b/changelog/4.0.0_2023-05-29/4013 @@ -0,0 +1,8 @@ +Bugfix: Error message for protocol exception + +Previously, when the network connection is lost while uploading a file, "Unknown error" was +shown. Now, we show a more specific error. + +https://github.com/owncloud/android/issues/3948 +https://github.com/owncloud/android/pull/4013 +https://github.com/owncloud/android-library/pull/558 diff --git a/changelog/4.0.0_2023-05-29/4014 b/changelog/4.0.0_2023-05-29/4014 new file mode 100644 index 00000000000..45d51c08b98 --- /dev/null +++ b/changelog/4.0.0_2023-05-29/4014 @@ -0,0 +1,7 @@ +Change: Use ViewBinding in FolderPickerActivity + +The use of findViewById method was replaced by using ViewBinding in the +FolderPickerActivity. + +https://github.com/owncloud/android/issues/3796 +https://github.com/owncloud/android/pull/4014 diff --git a/changelog/4.0.0_2023-05-29/4017 b/changelog/4.0.0_2023-05-29/4017 new file mode 100644 index 00000000000..2648dc5290c --- /dev/null +++ b/changelog/4.0.0_2023-05-29/4017 @@ -0,0 +1,6 @@ +Enhancement: Support for Markdown files + +Markdown files preview will now be rendered to show its content in a prettier way. + +https://github.com/owncloud/android/issues/3716 +https://github.com/owncloud/android/pull/4017 diff --git a/changelog/4.0.0_2023-05-29/4021 b/changelog/4.0.0_2023-05-29/4021 new file mode 100644 index 00000000000..c2aece5ed71 --- /dev/null +++ b/changelog/4.0.0_2023-05-29/4021 @@ -0,0 +1,7 @@ +Change: Use ViewBinding in WhatsNewActivity + +The use of findViewById method was replaced by using ViewBinding in the +WhatsNewActivity. + +https://github.com/owncloud/android/issues/3796 +https://github.com/owncloud/android/pull/4021 diff --git a/changelog/4.0.0_2023-05-29/4023 b/changelog/4.0.0_2023-05-29/4023 new file mode 100644 index 00000000000..b23cb64956d --- /dev/null +++ b/changelog/4.0.0_2023-05-29/4023 @@ -0,0 +1,9 @@ +Enhancement: Create file via web + +A new option has been added in the FAB to create new files, for those servers +which support this option and have available app providers that allow the creation +of new files. + +https://github.com/owncloud/android/issues/3995 +https://github.com/owncloud/android/pull/4023 +https://github.com/owncloud/android-library/pull/562 diff --git a/changelog/4.0.0_2023-05-29/4026 b/changelog/4.0.0_2023-05-29/4026 new file mode 100644 index 00000000000..3f151e4d26f --- /dev/null +++ b/changelog/4.0.0_2023-05-29/4026 @@ -0,0 +1,8 @@ +Bugfix: Incorrect list of files in av. offline when browsing from details + +When opening the details view of a file accessed from the available offline shortcut, +browsing back led to a incorrect list of files. Now, browsing back leads to the +list of available offline files again. + +https://github.com/owncloud/android/issues/3986 +https://github.com/owncloud/android/pull/4026 diff --git a/changelog/4.0.0_2023-05-29/4032 b/changelog/4.0.0_2023-05-29/4032 new file mode 100644 index 00000000000..5de774954e6 --- /dev/null +++ b/changelog/4.0.0_2023-05-29/4032 @@ -0,0 +1,7 @@ +Enhancement: New setting "Access document provider" + +A new setting has been added in the "More" settings section with a +suggested app to access the document provider. + +https://github.com/owncloud/android/pull/4032 +https://github.com/owncloud/android/issues/4028 diff --git a/changelog/4.0.0_2023-05-29/4038 b/changelog/4.0.0_2023-05-29/4038 new file mode 100644 index 00000000000..8f18510da70 --- /dev/null +++ b/changelog/4.0.0_2023-05-29/4038 @@ -0,0 +1,7 @@ +Security: Make ShareActivity not-exported + +ShareActivity was made not-exported in the manifest since this property is only +needed for those activities that need to be launched from other external apps, which +is not the case. + +https://github.com/owncloud/android/pull/4038 diff --git a/changelog/4.1.0_2023-08-23/4035 b/changelog/4.1.0_2023-08-23/4035 new file mode 100644 index 00000000000..6151699e693 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4035 @@ -0,0 +1,6 @@ +Change: Gradle Version Catalog + +Introduces the Gradle Version Catalog to manage the dependencies in a scalable way. +Now, all the dependencies are declared inside toml file. + +https://github.com/owncloud/android/pull/4035 diff --git a/changelog/4.1.0_2023-08-23/4036 b/changelog/4.1.0_2023-08-23/4036 new file mode 100644 index 00000000000..5dce06738e8 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4036 @@ -0,0 +1,8 @@ +Change: Upgrade min SDK to Android 6 (API 23) + +The minimum SDK has been updated to API 23, which means that the minimum +version of Android we'll support from now on is Android 6 Marshmallow. + +https://github.com/owncloud/android/issues/3245 +https://github.com/owncloud/android/pull/4036 +https://github.com/owncloud/android-library/pull/566 diff --git a/changelog/4.1.0_2023-08-23/4039 b/changelog/4.1.0_2023-08-23/4039 new file mode 100644 index 00000000000..3182ba645f4 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4039 @@ -0,0 +1,7 @@ +Change: Move file menu options filter to use case + +The old class where the menu options for a file or group or files were filtered +has been replaced by a new use case which fits in the architecture of the app. + +https://github.com/owncloud/android/issues/4009 +https://github.com/owncloud/android/pull/4039 diff --git a/changelog/4.1.0_2023-08-23/4040 b/changelog/4.1.0_2023-08-23/4040 new file mode 100644 index 00000000000..007d6ae2eca --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4040 @@ -0,0 +1,6 @@ +Enhancement: File name conflict starting by (1) + +File conflicts now are named with suffix starting in (1) instead of (2). + +https://github.com/owncloud/android/pull/4040 +https://github.com/owncloud/android/issues/3946 diff --git a/changelog/4.1.0_2023-08-23/4058 b/changelog/4.1.0_2023-08-23/4058 new file mode 100644 index 00000000000..18c98f38c53 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4058 @@ -0,0 +1,8 @@ +Enhancement: Added "Open in web" options to main file list + +"Open in web" dynamic options (depending on the providers available) are now shown +in the main file list as well, when selecting one single file which has providers +to open it in web. + +https://github.com/owncloud/android/issues/3860 +https://github.com/owncloud/android/pull/4058 diff --git a/changelog/4.1.0_2023-08-23/4062 b/changelog/4.1.0_2023-08-23/4062 new file mode 100644 index 00000000000..3a83f66c1fe --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4062 @@ -0,0 +1,7 @@ +Enhancement: Copy/move conflict solved by users + +A pop-up is displayed in case there is a name conflict with the files been moved or copied. +The pop-up has the options to Skip, Replace and Keep both, to be consistent with the web client. + +https://github.com/owncloud/android/issues/3935 +https://github.com/owncloud/android/pull/4062 diff --git a/changelog/4.1.0_2023-08-23/4064 b/changelog/4.1.0_2023-08-23/4064 new file mode 100644 index 00000000000..a7ef93331bf --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4064 @@ -0,0 +1,6 @@ +Change: Remove "ignore" from the debug flavour Android manifest + +A `tools:ignore` property from the Android manifest specific for the debug flavour +was removed as it is not needed anymore. + +https://github.com/owncloud/android/pull/4064 diff --git a/changelog/4.1.0_2023-08-23/4076 b/changelog/4.1.0_2023-08-23/4076 new file mode 100644 index 00000000000..b8aaf479beb --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4076 @@ -0,0 +1,8 @@ +Enhancement: Show "More" button for every file list item + +A 3-dot button has been added to every file, where the options that we have +in the 3-dot menu in multiselection for that single file have been added for a +quicker access to them. Also, some options have been reordered. + +https://github.com/owncloud/android/issues/2885 +https://github.com/owncloud/android/pull/4076 diff --git a/changelog/4.1.0_2023-08-23/4084 b/changelog/4.1.0_2023-08-23/4084 new file mode 100644 index 00000000000..c84ac614fc9 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4084 @@ -0,0 +1,6 @@ +Bugfix: Spaces' thumbnails not loaded the first time + +Changing our own lazy image loading with coil library in spaces and file list. + +https://github.com/owncloud/android/issues/3959 +https://github.com/owncloud/android/pull/4084 diff --git a/changelog/4.1.0_2023-08-23/4087 b/changelog/4.1.0_2023-08-23/4087 new file mode 100644 index 00000000000..3b96933dcea --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4087 @@ -0,0 +1,6 @@ +Enhancement: Force security if not protected + +A new branding parameter was created to enforce security protection in the app if device protection is not enabled. + +https://github.com/owncloud/android/issues/4061 +https://github.com/owncloud/android/pull/4087 diff --git a/changelog/4.1.0_2023-08-23/4089 b/changelog/4.1.0_2023-08-23/4089 new file mode 100644 index 00000000000..17eb324ebde --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4089 @@ -0,0 +1,6 @@ +Enhancement: Improve grid mode + +Grid mode has been improved to show bigger thumbnails in images files. + +https://github.com/owncloud/android/issues/4027 +https://github.com/owncloud/android/pull/4089 diff --git a/changelog/4.1.0_2023-08-23/4091 b/changelog/4.1.0_2023-08-23/4091 new file mode 100644 index 00000000000..9fa42ecdf92 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4091 @@ -0,0 +1,6 @@ +Change: Added new unit tests for providers + +Implementation of tests for the functions within ScopedStorageProvider and OCSharedPreferencesProvider. + +https://github.com/owncloud/android/issues/4073 +https://github.com/owncloud/android/pull/4091 diff --git a/changelog/4.1.0_2023-08-23/4092 b/changelog/4.1.0_2023-08-23/4092 new file mode 100644 index 00000000000..c87f5ea0a28 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4092 @@ -0,0 +1,6 @@ +Change: New detail screen file design + +the detail view ha been improved. It added new properties like last sync, status icon on thumbnail, path and creation date + +https://github.com/owncloud/android/pull/4098 +https://github.com/owncloud/android/issues/4092 diff --git a/changelog/4.1.0_2023-08-23/4093 b/changelog/4.1.0_2023-08-23/4093 new file mode 100644 index 00000000000..ecdb3ff209a --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4093 @@ -0,0 +1,8 @@ +Bugfix: Menu option unset av. offline shown when shouldn't + +Unset available offline menu option is not shown in files inside an available +offline folder anymore, because content inside an available offline folder +cannot be changed its status, only if the folder changes it. + +https://github.com/owncloud/android/issues/4077 +https://github.com/owncloud/android/pull/4093 diff --git a/changelog/4.1.0_2023-08-23/4097 b/changelog/4.1.0_2023-08-23/4097 new file mode 100644 index 00000000000..3235d0908a7 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4097 @@ -0,0 +1,6 @@ +Enhancement: Improve UX of creation dialog + +Creation dialog now shows an error message and disables the confirmation button when forbidden characters are typed + +https://github.com/owncloud/android/issues/4031 +https://github.com/owncloud/android/pull/4097 diff --git a/changelog/4.1.0_2023-08-23/4099 b/changelog/4.1.0_2023-08-23/4099 new file mode 100644 index 00000000000..92c9b4c34a8 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4099 @@ -0,0 +1,6 @@ +Enhancement: Support "per app" language change on Android 13+ + +The locales_config.xml file has been created for the application to detect the language that the user wishes to choose. + +https://github.com/owncloud/android/issues/4082 +https://github.com/owncloud/android/pull/4099 diff --git a/changelog/4.1.0_2023-08-23/4106 b/changelog/4.1.0_2023-08-23/4106 new file mode 100644 index 00000000000..673852c4777 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4106 @@ -0,0 +1,7 @@ +Change: Not opening browser automatically in login + +When there is a fixed bearer auth server URL via a branded parameter, the login screen won't redirect +automatically to the browser so that some problems in the authentication flow are solved. + +https://github.com/owncloud/android/issues/4067 +https://github.com/owncloud/android/pull/4106 diff --git a/changelog/4.1.0_2023-08-23/4110 b/changelog/4.1.0_2023-08-23/4110 new file mode 100644 index 00000000000..6fa55b21cb1 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4110 @@ -0,0 +1,6 @@ +Enhancement: Prevent http traffic with branding options + +Adding branding option for prevent http traffic. + +https://github.com/owncloud/android/issues/4066 +https://github.com/owncloud/android/pull/4110 \ No newline at end of file diff --git a/changelog/4.1.0_2023-08-23/4112 b/changelog/4.1.0_2023-08-23/4112 new file mode 100644 index 00000000000..63c2b483326 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4112 @@ -0,0 +1,6 @@ +Enhancement: Align Sharing icons with other platforms + +The share icon has been changed on the screens where it appears to be synchronized with other platforms. + +https://github.com/owncloud/android/issues/4101 +https://github.com/owncloud/android/pull/4112 diff --git a/changelog/4.1.0_2023-08-23/4113 b/changelog/4.1.0_2023-08-23/4113 new file mode 100644 index 00000000000..e91b92287f0 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4113 @@ -0,0 +1,6 @@ +Enhancement: Respect app_providers_appsUrl value from capabilities + +Now, the app receives the app_providers_appsUrl from the local database. Before of this issue, the value was hardcoded. + +https://github.com/owncloud/android/issues/4075 +https://github.com/owncloud/android/pull/4113 diff --git a/changelog/4.1.0_2023-08-23/4122 b/changelog/4.1.0_2023-08-23/4122 new file mode 100644 index 00000000000..cc918b83578 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4122 @@ -0,0 +1,6 @@ +Bugfix: List of accounts empty after removing all accounts and adding new ones + +Now, the account list is shown when User opens the app and was added a new account. + +https://github.com/owncloud/android/issues/4114 +https://github.com/owncloud/android/pull/4122 diff --git a/changelog/4.1.0_2023-08-23/4123 b/changelog/4.1.0_2023-08-23/4123 new file mode 100644 index 00000000000..8563f587224 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4123 @@ -0,0 +1,6 @@ +Enhancement: Unit tests for datasources classes - Part 2 + +Unit tests of the OCLocalFileDataSource and OCRemoteFileDataSource classes have been done. + +https://github.com/owncloud/android/issues/4071 +https://github.com/owncloud/android/pull/4123 \ No newline at end of file diff --git a/changelog/4.1.0_2023-08-23/4127 b/changelog/4.1.0_2023-08-23/4127 new file mode 100644 index 00000000000..f8a296dcc29 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4127 @@ -0,0 +1,7 @@ +Bugfix: Bad error message when copying/moving with server down + +Right now, when we are trying to copy a file to another folder and the server is downwe receive a correct message. +Before the issue the message shown code from the application. + +https://github.com/owncloud/android/issues/4044 +https://github.com/owncloud/android/pull/4127 diff --git a/changelog/4.1.0_2023-08-23/4129 b/changelog/4.1.0_2023-08-23/4129 new file mode 100644 index 00000000000..7b52d37f790 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4129 @@ -0,0 +1,10 @@ +Enhancement: Apply (1) to uploads' name conflicts + +When new files were uploaded manually to pC, shared from a 3rd party app or text shared with oC +name conflict happens, (2) was added to the file name instead of (1). + +Right now if we upload a file with a repeated name, the new file name will end with (1). + + +https://github.com/owncloud/android/issues/4079 +https://github.com/owncloud/android/pull/4129 diff --git a/changelog/4.1.0_2023-08-23/4131 b/changelog/4.1.0_2023-08-23/4131 new file mode 100644 index 00000000000..05e3dfbafcd --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4131 @@ -0,0 +1,7 @@ +Bugfix: unnecessary or wrong call + +Removed added path when checking path existence. + +https://github.com/owncloud/android/issues/4074 +https://github.com/owncloud/android/pull/4131 +https://github.com/owncloud/android-library/pull/578 diff --git a/changelog/4.1.0_2023-08-23/4132 b/changelog/4.1.0_2023-08-23/4132 new file mode 100644 index 00000000000..60a41a29f01 --- /dev/null +++ b/changelog/4.1.0_2023-08-23/4132 @@ -0,0 +1,8 @@ +Bugfix: Crash when the token is expired + + +Now when the token expires and we switch +from grid to list mode on the main screen the app doesn't crash. + +https://github.com/owncloud/android/issues/4116 +https://github.com/owncloud/android/pull/4132 diff --git a/changelog/4.1.1_2023-10-18/4170 b/changelog/4.1.1_2023-10-18/4170 new file mode 100644 index 00000000000..e7ad28c99a7 --- /dev/null +++ b/changelog/4.1.1_2023-10-18/4170 @@ -0,0 +1,6 @@ +Bugfix: Some Null Pointer Exceptions avoided + +in the detail screen, in the main file list ViewModel and in the OCFile repository the app has been prevented from crashing when a null is found. + +https://github.com/owncloud/android/issues/4158 +https://github.com/owncloud/android/pull/4170 diff --git a/changelog/4.1.1_2023-10-18/4189 b/changelog/4.1.1_2023-10-18/4189 new file mode 100644 index 00000000000..2f0d3bede90 --- /dev/null +++ b/changelog/4.1.1_2023-10-18/4189 @@ -0,0 +1,6 @@ +Bugfix: Thumbnails correctly shown for every user + +Due to an error in the request, users that included the '@' character in their usernames couldn't +see the thumbnails of the image files. Now, every user can see them correctly. + +https://github.com/owncloud/android/pull/4189 diff --git a/changelog/4.2.0_2024-02-12/3966 b/changelog/4.2.0_2024-02-12/3966 new file mode 100644 index 00000000000..df68f2c91d1 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/3966 @@ -0,0 +1,5 @@ +Enhancement: Koin DSL + +Koin DSL makes easier the dependency definition avoiding verbosity by allowing you to target a class constructor directly + +https://github.com/owncloud/android/pull/3966 diff --git a/changelog/4.2.0_2024-02-12/4138 b/changelog/4.2.0_2024-02-12/4138 new file mode 100644 index 00000000000..bdfd816ab3a --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4138 @@ -0,0 +1,6 @@ +Enhancement: "Apply to all" when many name conflicts arise + +A new dialog has been created where a checkbox has been added to be able to select all the folders or files that have conflicts. + +https://github.com/owncloud/android/issues/4078 +https://github.com/owncloud/android/pull/4138 \ No newline at end of file diff --git a/changelog/4.2.0_2024-02-12/4143 b/changelog/4.2.0_2024-02-12/4143 new file mode 100644 index 00000000000..30b6577074e --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4143 @@ -0,0 +1,8 @@ +Enhancement: Unit tests for datasources classes - Part 3 + +Unit tests of the OCFolderBackupLocalDataSource, OCRemoteOAuthDataSource, OCRemoteShareeDataSource, OCLocalShareDataSource, +OCRemoteShareDataSource, OCLocalSpacesDataSource, OCRemoteSpacesDataSource, OCLocalTransferDataSource, OCLocalUserDataSource, +OCRemoteUserDataSource, OCRemoteWebFingerDatasource classes have been done and completed. + +https://github.com/owncloud/android/issues/4072 +https://github.com/owncloud/android/pull/4143 diff --git a/changelog/4.2.0_2024-02-12/4160 b/changelog/4.2.0_2024-02-12/4160 new file mode 100644 index 00000000000..5524ff0159a --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4160 @@ -0,0 +1,6 @@ +Enhancement: "Share to" in oCIS accounts allows upload to any space + +With this improvement, shared stuff from other apps can be uploaded to any space and not only the personal one in oCIS accounts. + +https://github.com/owncloud/android/issues/4088 +https://github.com/owncloud/android/pull/4160 diff --git a/changelog/4.2.0_2024-02-12/4177 b/changelog/4.2.0_2024-02-12/4177 new file mode 100644 index 00000000000..1fb7636f0fb --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4177 @@ -0,0 +1,8 @@ +Change: Migration to Media3 from Exoplayer + +Media3 is the new home for Exoplayer, which has become a part of this library. +Media3 provides a more advanced and optimized media playback experience for users, +with improvements in performance and compatibility. + +https://github.com/owncloud/android/issues/4157 +https://github.com/owncloud/android/pull/4177 diff --git a/changelog/4.2.0_2024-02-12/4179 b/changelog/4.2.0_2024-02-12/4179 new file mode 100644 index 00000000000..58653721149 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4179 @@ -0,0 +1,5 @@ +Enhancement: Use invoke operator to execute usecases + +Removes all the "execute" verbosity for use cases by using the "invoke" operator instead. + +https://github.com/owncloud/android/pull/4179 diff --git a/changelog/4.2.0_2024-02-12/4183 b/changelog/4.2.0_2024-02-12/4183 new file mode 100644 index 00000000000..1978f4d0f9e --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4183 @@ -0,0 +1,6 @@ +Change: Android library as a module instead of submodule + +Android library, containing all networking stuff, is now the 5th module in the app instead of submodule. + +https://github.com/owncloud/android/issues/3962 +https://github.com/owncloud/android/pull/4183 diff --git a/changelog/4.2.0_2024-02-12/4187 b/changelog/4.2.0_2024-02-12/4187 new file mode 100644 index 00000000000..eff45a4bab5 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4187 @@ -0,0 +1,6 @@ +Enhancement: New field "last usage" in database + +To know the last usage of a file, a new field has been created in the database to handle this specific information. + +https://github.com/owncloud/android/issues/4173 +https://github.com/owncloud/android/pull/4187 diff --git a/changelog/4.2.0_2024-02-12/4191 b/changelog/4.2.0_2024-02-12/4191 new file mode 100644 index 00000000000..f90e1b0986b --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4191 @@ -0,0 +1,6 @@ +Enhancement: Deep link open app correctly + +Opening the app with the deep link correctly and managing if user logged or not. + +https://github.com/owncloud/android/issues/4181 +https://github.com/owncloud/android/pull/4191 diff --git a/changelog/4.2.0_2024-02-12/4199 b/changelog/4.2.0_2024-02-12/4199 new file mode 100644 index 00000000000..961dc41f012 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4199 @@ -0,0 +1,7 @@ +Enhancement: Auto-refresh when a file is uploaded + +The file list will be now refreshed automatically when an upload whose destination folder +is the one we are in is completed successfully. + +https://github.com/owncloud/android/issues/4103 +https://github.com/owncloud/android/pull/4199 diff --git a/changelog/4.2.0_2024-02-12/4204 b/changelog/4.2.0_2024-02-12/4204 new file mode 100644 index 00000000000..21610b86da4 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4204 @@ -0,0 +1,10 @@ +Enhancement: Logging changes + +- Updating version of com.github.AppDevNext.Logcat:LogcatCoreLib lib. +- Adding the hour, minutes and seconds to the log file. +- Printing http logs in one line. +- Printing http logs with 1000000 bytes as max size. +- Printing http logs in a Json format. + +https://github.com/owncloud/android/issues/4151 +https://github.com/owncloud/android/pull/4204 diff --git a/changelog/4.2.0_2024-02-12/4205 b/changelog/4.2.0_2024-02-12/4205 new file mode 100644 index 00000000000..74f95a60627 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4205 @@ -0,0 +1,7 @@ +Enhancement: Download log files on Android10+ devices + +A new icon to download a log file to the Downloads folder of the device has been added to the log list screen +on Android10+ devices. + +https://github.com/owncloud/android/issues/4155 +https://github.com/owncloud/android/pull/4205 diff --git a/changelog/4.2.0_2024-02-12/4209 b/changelog/4.2.0_2024-02-12/4209 new file mode 100644 index 00000000000..bac92ded45c --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4209 @@ -0,0 +1,9 @@ +Enhancement: Unit tests for datasources classes - Part 1 & Fixes + +Unit tests for OCLocalAppRegistryDataSource, OCRemoteAppRegistryDataSource, OCLocalAuthenticationDataSource, +OCRemoteAuthenticationDataSource, OCLocalCapabilitiesDataSource and OCRemoteCapabilitiesDataSource classes have +been done and completed, and several fixes have been applied to all existent unit test classes for +datasources. + +https://github.com/owncloud/android/issues/4063 +https://github.com/owncloud/android/pull/4209 diff --git a/changelog/4.2.0_2024-02-12/4212 b/changelog/4.2.0_2024-02-12/4212 new file mode 100644 index 00000000000..fa5ffd474ce --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4212 @@ -0,0 +1,6 @@ +Enhancement: Select user and navigate to file when opening via deep link + +Select the correct user owner of the deep link file, managing possible errors and navigating to the correct file. + +https://github.com/owncloud/android/issues/4194 +https://github.com/owncloud/android/pull/4212 diff --git a/changelog/4.2.0_2024-02-12/4214 b/changelog/4.2.0_2024-02-12/4214 new file mode 100644 index 00000000000..8aa97ce7125 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4214 @@ -0,0 +1,6 @@ +Enhancement: Auto upload in oCIS accounts allows upload to any space + +Auto uploads of images and videos can now be uploaded to any space and not only the personal one in oCIS accounts. + +https://github.com/owncloud/android/issues/4117 +https://github.com/owncloud/android/pull/4214 diff --git a/changelog/4.2.0_2024-02-12/4215 b/changelog/4.2.0_2024-02-12/4215 new file mode 100644 index 00000000000..f207b6bd787 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4215 @@ -0,0 +1,6 @@ +Enhancement: Log file sharing allowed within ownCloud Android app + +Sharing log files to the ownCloud app itself is now possible from the logs screen. + +https://github.com/owncloud/android/issues/4156 +https://github.com/owncloud/android/pull/4215 diff --git a/changelog/4.2.0_2024-02-12/4237 b/changelog/4.2.0_2024-02-12/4237 new file mode 100644 index 00000000000..5e8e0f998ac --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4237 @@ -0,0 +1,6 @@ +Enhancement: Thumbnail improvements in grid view + +Grid view was improved by adding the file name to images when the thumbnail is null. + +https://github.com/owncloud/android/issues/4145 +https://github.com/owncloud/android/pull/4237 diff --git a/changelog/4.2.0_2024-02-12/4238 b/changelog/4.2.0_2024-02-12/4238 new file mode 100644 index 00000000000..563ff5020fe --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4238 @@ -0,0 +1,6 @@ +Bugfix: Some Null Pointer Exceptions fixed from Google Play + +FileDisplayActivity and ReceiverExternalFilesActivity have prevented some functions from crashing when a null value is found. + +https://github.com/owncloud/android/issues/4207 +https://github.com/owncloud/android/pull/4238 diff --git a/changelog/4.2.0_2024-02-12/4241 b/changelog/4.2.0_2024-02-12/4241 new file mode 100644 index 00000000000..43a0baea611 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4241 @@ -0,0 +1,6 @@ +Bugfix: Some Null Pointer Exceptions in MainFileListViewModel + +The MainFileListViewModel has prevented the fileById variable from crashing when a null value is found. + +https://github.com/owncloud/android/issues/4065 +https://github.com/owncloud/android/pull/4241 diff --git a/changelog/4.2.0_2024-02-12/4257 b/changelog/4.2.0_2024-02-12/4257 new file mode 100644 index 00000000000..ffbbd4c7b5a --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4257 @@ -0,0 +1,7 @@ +Enhancement: New branding/MDM parameter to show sensitive auth info in logs + +A new branding and MDM parameter has been created to decide if the sensitive information put in the +authorization header in HTTP requests is shown or not in the logs. + +https://github.com/owncloud/android/issues/4249 +https://github.com/owncloud/android/pull/4257 diff --git a/changelog/4.2.0_2024-02-12/4260 b/changelog/4.2.0_2024-02-12/4260 new file mode 100644 index 00000000000..9e11fd2d78f --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4260 @@ -0,0 +1,6 @@ +Bugfix: Add "scope" parameter to /token endpoint HTTP requests + +The "scope" parameter is now always sent in the body of HTTP requests to the /token endpoint, +which is optional in v1 but required in v2. + +https://github.com/owncloud/android/pull/4260 diff --git a/changelog/4.2.0_2024-02-12/4263 b/changelog/4.2.0_2024-02-12/4263 new file mode 100644 index 00000000000..3bbad65dd29 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4263 @@ -0,0 +1,5 @@ +Enhancement: Prevent that two media files are playing at the same time + +The player handles the audio focus shifts, pausing one player if another starts. + +https://github.com/owncloud/android/pull/4263 diff --git a/changelog/4.2.0_2024-02-12/4265 b/changelog/4.2.0_2024-02-12/4265 new file mode 100644 index 00000000000..f219b6ade4d --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4265 @@ -0,0 +1,7 @@ +Bugfix: Bugs related to Details view + +When coming to Details view from video or image previews, now the top bar is shown correctly +and navigation has the correct stack, so the back button has the expected flow. + +https://github.com/owncloud/android/issues/4188 +https://github.com/owncloud/android/pull/4265 diff --git a/changelog/4.2.0_2024-02-12/4266 b/changelog/4.2.0_2024-02-12/4266 new file mode 100644 index 00000000000..09259ed25d3 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4266 @@ -0,0 +1,7 @@ +Enhancement: Fix in the type handling of the content-type + +The content-type `application/jrd+json` has been added to the loggable types list, so that body in +some requests and responses can be correctly logged. + +https://github.com/owncloud/android/issues/4258 +https://github.com/owncloud/android/pull/4266 diff --git a/changelog/4.2.0_2024-02-12/4276 b/changelog/4.2.0_2024-02-12/4276 new file mode 100644 index 00000000000..78edb722004 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4276 @@ -0,0 +1,6 @@ +Enhancement: Manage password policy in live mode + +Password policy for public links is handled in live mode with new items in the dialog. + +https://github.com/owncloud/android/issues/4269 +https://github.com/owncloud/android/pull/4276 diff --git a/changelog/4.2.0_2024-02-12/4277 b/changelog/4.2.0_2024-02-12/4277 new file mode 100644 index 00000000000..1b1cde38bb5 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4277 @@ -0,0 +1,6 @@ +Bugfix: Fixed AlertDialog title theme in Samsung Devices + +Use of device default theme was removed. + +https://github.com/owncloud/android/issues/3192 +https://github.com/owncloud/android/pull/4277 diff --git a/changelog/4.2.0_2024-02-12/4283 b/changelog/4.2.0_2024-02-12/4283 new file mode 100644 index 00000000000..cf3a805630a --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4283 @@ -0,0 +1,7 @@ +Security: Improve biometric authentication security + +Biometric authentication has been improved by checking the result received when performing a successful +authentication. + +https://github.com/owncloud/android/issues/4180 +https://github.com/owncloud/android/pull/4283 diff --git a/changelog/4.2.0_2024-02-12/4285 b/changelog/4.2.0_2024-02-12/4285 new file mode 100644 index 00000000000..feb9fe15bb3 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4285 @@ -0,0 +1,6 @@ +Bugfix: Handle Http 423 (resource locked) + +App can gracefully show if the file is locked when done certain operations on it. + +https://github.com/owncloud/android/issues/4282 +https://github.com/owncloud/android/pull/4285 diff --git a/changelog/4.2.0_2024-02-12/4287 b/changelog/4.2.0_2024-02-12/4287 new file mode 100644 index 00000000000..3864427a7c6 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4287 @@ -0,0 +1,7 @@ +Bugfix: Fix in the handling of the base URL + +Base URL has been formatted in GetRemoteAppRegistryOperation +when server instance is installed in subfolder, so that the endpoint is formed correctly. + +https://github.com/owncloud/android/issues/4279 +https://github.com/owncloud/android/pull/4287 diff --git a/changelog/4.2.0_2024-02-12/4291 b/changelog/4.2.0_2024-02-12/4291 new file mode 100644 index 00000000000..981f6a79e9e --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4291 @@ -0,0 +1,7 @@ +Enhancement: New branding/MDM parameter to send `login_hint` and `user` params + +A new branding and MDM parameter has been created to decide if `login_hint` and `user` are +sent as parameters in the login request, so that a value is shown in the Username text field. + +https://github.com/owncloud/android/issues/4288 +https://github.com/owncloud/android/pull/4291 diff --git a/changelog/4.2.0_2024-02-12/4294 b/changelog/4.2.0_2024-02-12/4294 new file mode 100644 index 00000000000..ba4d97f4375 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4294 @@ -0,0 +1,8 @@ +Bugfix: Conflict in copy with files without extension + +The check of files names that start in the same way has been removed from the copy +network operation, so that the copy use case takes care of that and works properly with +files without extension. + +https://github.com/owncloud/android/issues/4222 +https://github.com/owncloud/android/pull/4294 diff --git a/changelog/4.2.0_2024-02-12/4295 b/changelog/4.2.0_2024-02-12/4295 new file mode 100644 index 00000000000..faa1db7e745 --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4295 @@ -0,0 +1,6 @@ +Bugfix: Copy folder into descendant in different spaces + +Copying a folder into another folder with the same name in a different space now works correctly. + +https://github.com/owncloud/android/issues/4293 +https://github.com/owncloud/android/pull/4295 diff --git a/changelog/4.2.0_2024-02-12/4297 b/changelog/4.2.0_2024-02-12/4297 new file mode 100644 index 00000000000..4868d0a75eb --- /dev/null +++ b/changelog/4.2.0_2024-02-12/4297 @@ -0,0 +1,6 @@ +Enhancement: Added icon for .docxf files + +An icon has been added for files that have a .docxf extension. + +https://github.com/owncloud/android/issues/4267 +https://github.com/owncloud/android/pull/4297 diff --git a/changelog/4.2.1_2024-02-22/4323 b/changelog/4.2.1_2024-02-22/4323 new file mode 100644 index 00000000000..261f21dc889 --- /dev/null +++ b/changelog/4.2.1_2024-02-22/4323 @@ -0,0 +1,6 @@ +Bugfix: Some crashes in 4.2.0 + +Several crashes reported by Play Console in version 4.2.0 have been fixed. + +https://github.com/owncloud/android/issues/4318 +https://github.com/owncloud/android/pull/4323 diff --git a/changelog/4.2.2_2024-05-30/4415 b/changelog/4.2.2_2024-05-30/4415 new file mode 100644 index 00000000000..d7098b46337 --- /dev/null +++ b/changelog/4.2.2_2024-05-30/4415 @@ -0,0 +1,7 @@ +Bugfix: Downloads not working when `Content-Length` is not received + +The case when Content-Length header is not received in the response of a GET for a download has been +handled, and now the progress bar in images preview and details view is indeterminate for those cases. + +https://github.com/owncloud/android/issues/4352 +https://github.com/owncloud/android/pull/4415 diff --git a/changelog/4.3.0_2024-07-01/4281 b/changelog/4.3.0_2024-07-01/4281 new file mode 100644 index 00000000000..6bee1fd8872 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4281 @@ -0,0 +1,6 @@ +Enhancement: Unit tests for repository classes - Part 1 + +Unit tests for OCAppRegistryRepository, OCAuthenticationRepository and OCCapabilityRepository classes have been completed. + +https://github.com/owncloud/android/issues/4232 +https://github.com/owncloud/android/pull/4281 diff --git a/changelog/4.3.0_2024-07-01/4289 b/changelog/4.3.0_2024-07-01/4289 new file mode 100644 index 00000000000..65b2c8f3be7 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4289 @@ -0,0 +1,6 @@ +Enhancement: Correct "Local only" option in remove dialog + +"Local only" option in remove dialog will only be shown if checking selected files and folders recursively, at least one file is available locally. + +https://github.com/owncloud/android/issues/3936 +https://github.com/owncloud/android/pull/4289 diff --git a/changelog/4.3.0_2024-07-01/4299 b/changelog/4.3.0_2024-07-01/4299 new file mode 100644 index 00000000000..05e1f434686 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4299 @@ -0,0 +1,6 @@ +Change: Upgrade minimum SDK version to Android 7.0 (v24) + +The minimum Android version will be Android 7.0 Nougat (API 24). The application will no longer support previous versions. + +https://github.com/owncloud/android/issues/4230 +https://github.com/owncloud/android/pull/4299 diff --git a/changelog/4.3.0_2024-07-01/4320 b/changelog/4.3.0_2024-07-01/4320 new file mode 100644 index 00000000000..c0ded6c67c4 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4320 @@ -0,0 +1,6 @@ +Enhancement: New setting for automatic removal of local files + +A new setting has been created to delete automatically downloaded files, when the time since their last usage exceeds the selected time in the setting. + +https://github.com/owncloud/android/issues/4175 +https://github.com/owncloud/android/pull/4320 diff --git a/changelog/4.3.0_2024-07-01/4325 b/changelog/4.3.0_2024-07-01/4325 new file mode 100644 index 00000000000..6ecd1a53065 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4325 @@ -0,0 +1,6 @@ +Change: Automatic discovery of the account in login + +Automatic account discovery is done at login. Removed the refresh account button in the Manage Accounts view. + +https://github.com/owncloud/android/issues/4301 +https://github.com/owncloud/android/pull/4325 diff --git a/changelog/4.3.0_2024-07-01/4330 b/changelog/4.3.0_2024-07-01/4330 new file mode 100644 index 00000000000..83a15537d6f --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4330 @@ -0,0 +1,7 @@ +Enhancement: Improvements in Manage Accounts view + +Removed the key icon and avoid overlap account name with icons in Manage Accounts. +Redirect to login when snackbar appears in authentication failure. + +https://github.com/owncloud/android/issues/4148 +https://github.com/owncloud/android/pull/4330 diff --git a/changelog/4.3.0_2024-07-01/4334 b/changelog/4.3.0_2024-07-01/4334 new file mode 100644 index 00000000000..89be1a9a3dd --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4334 @@ -0,0 +1,6 @@ +Enhancement: New setting for manual removal of local storage + +A new icon has been added in Manage Accounts view to delete manually local files. + +https://github.com/owncloud/android/issues/4174 +https://github.com/owncloud/android/pull/4334 diff --git a/changelog/4.3.0_2024-07-01/4336 b/changelog/4.3.0_2024-07-01/4336 new file mode 100644 index 00000000000..5fe383a54ce --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4336 @@ -0,0 +1,6 @@ +Enhancement: Make dialog more Android-alike + +Name conflicts dialog appearance was changed to look Android-alike and more similar to other dialogs in the app. + +https://github.com/owncloud/android/issues/4303 +https://github.com/owncloud/android/pull/4336 diff --git a/changelog/4.3.0_2024-07-01/4341 b/changelog/4.3.0_2024-07-01/4341 new file mode 100644 index 00000000000..06049fff366 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4341 @@ -0,0 +1,6 @@ +Bugfix: Retried successful uploads are cleaned up from the temporary folder + +Temporary files related to a failed upload are deleted after retrying it and being successfully completed. + +https://github.com/owncloud/android/issues/4335 +https://github.com/owncloud/android/pull/4341 diff --git a/changelog/4.3.0_2024-07-01/4345 b/changelog/4.3.0_2024-07-01/4345 new file mode 100644 index 00000000000..20a821c7d0e --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4345 @@ -0,0 +1,6 @@ +Enhancement: Add a warning in http connections + +Warning dialog has been added in the login screen when you are trying to connect to a http server. + +https://github.com/owncloud/android/issues/4284 +https://github.com/owncloud/android/pull/4345 diff --git a/changelog/4.3.0_2024-07-01/4346 b/changelog/4.3.0_2024-07-01/4346 new file mode 100644 index 00000000000..51de5e6688e --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4346 @@ -0,0 +1,5 @@ +Change: Add new prefixes in commit messages of 3rd party contributors + +Dependaboy and Calens' commit messages with prefixes that fits 'Conventional Commits' + +https://github.com/owncloud/android/pull/4346 diff --git a/changelog/4.3.0_2024-07-01/4349 b/changelog/4.3.0_2024-07-01/4349 new file mode 100644 index 00000000000..f7436b62cdd --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4349 @@ -0,0 +1,7 @@ +Enhancement: Password generator for public links in oCIS + +A new password generator has been added to the public links creation view in oCIS accounts, which creates +passwords that fulfill all the policies coming from server in a cryptographically secure way. + +https://github.com/owncloud/android/issues/4308 +https://github.com/owncloud/android/pull/4349 diff --git a/changelog/4.3.0_2024-07-01/4350 b/changelog/4.3.0_2024-07-01/4350 new file mode 100644 index 00000000000..370c7aee6e8 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4350 @@ -0,0 +1,7 @@ +Bugfix: "Clear data" button enabled in the app settings in device settings + +The "Clear data" button has been enabled to delete the application data from the app settings in the device settings. +Shared preferences, temporary files, accounts and the local database will be cleared when the button is pressed. + +https://github.com/owncloud/android/issues/4309 +https://github.com/owncloud/android/pull/4350 diff --git a/changelog/4.3.0_2024-07-01/4351 b/changelog/4.3.0_2024-07-01/4351 new file mode 100644 index 00000000000..592a382e281 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4351 @@ -0,0 +1,7 @@ +Bugfix: Resolve incorrect truncation of long display names in Manage Accounts + +Resolved the bug where long display names were truncated incorrectly in the Manage Accounts view. +Now, display names are properly truncated in the middle with ellipsis (...) to maintain readability. + +https://github.com/owncloud/android/issues/4351 +https://github.com/owncloud/android/pull/4380 diff --git a/changelog/4.3.0_2024-07-01/4354 b/changelog/4.3.0_2024-07-01/4354 new file mode 100644 index 00000000000..94c800e9c8f --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4354 @@ -0,0 +1,7 @@ +Enhancement: Avoid unnecessary requests when an av. offline folder is refreshed + +The available offline folders will only be refreshed when their eTag from the server and the corresponding one of the local database are different, +avoiding sending unnecessary request. + +https://github.com/owncloud/android/issues/4197 +https://github.com/owncloud/android/pull/4354 diff --git a/changelog/4.3.0_2024-07-01/4376 b/changelog/4.3.0_2024-07-01/4376 new file mode 100644 index 00000000000..e3ebe0f22e8 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4376 @@ -0,0 +1,6 @@ +Change: Kotlinize PreviewTextFragment + +PreviewTextFragment class has been moved from Java to Kotlin. + +https://github.com/owncloud/android/issues/4356 +https://github.com/owncloud/android/pull/4376 diff --git a/changelog/4.3.0_2024-07-01/4385 b/changelog/4.3.0_2024-07-01/4385 new file mode 100644 index 00000000000..b68d3211435 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4385 @@ -0,0 +1,6 @@ +Bugfix: Removed unnecessary requests when the app is installed from scratch + +Some requests to the server that were not necessary when installing the app from scratch have been removed. + +https://github.com/owncloud/android/issues/4213 +https://github.com/owncloud/android/pull/4385 diff --git a/changelog/4.3.0_2024-07-01/4387 b/changelog/4.3.0_2024-07-01/4387 new file mode 100644 index 00000000000..b5c793b415c --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4387 @@ -0,0 +1,7 @@ +Enhancement: Content description in UI elements to improve accessibility + +A description of the meaning or action associated with some UI elements has been included as alternative text to make the application more accessible. +Views improved: toolbar, file list, spaces list, share, drawer menu, manage accounts and image preview. + +https://github.com/owncloud/android/issues/4360 +https://github.com/owncloud/android/pull/4387 diff --git a/changelog/4.3.0_2024-07-01/4388 b/changelog/4.3.0_2024-07-01/4388 new file mode 100644 index 00000000000..327f5b4bae8 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4388 @@ -0,0 +1,6 @@ +Enhancement: Added contentDescription attribute in the previewed image + +A contentDescription attribute has been added to previewed image to make the application more accessible. + +https://github.com/owncloud/android/issues/4360 +https://github.com/owncloud/android/pull/4388 diff --git a/changelog/4.3.0_2024-07-01/4391 b/changelog/4.3.0_2024-07-01/4391 new file mode 100644 index 00000000000..448aebea2cb --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4391 @@ -0,0 +1,6 @@ +Enhancement: Show app provider icon from endpoint + +App provider icon fetched from the server has been added to the "Open in (web)" option on the bottom sheet that appears when clicking the 3-dots button of a file. + +https://github.com/owncloud/android/issues/4105 +https://github.com/owncloud/android/pull/4391 diff --git a/changelog/4.3.0_2024-07-01/4393 b/changelog/4.3.0_2024-07-01/4393 new file mode 100644 index 00000000000..50a456a0642 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4393 @@ -0,0 +1,6 @@ +Enhancement: Add search functionality to spaces list + +Search functionality was added in spaces list when you are trying to filter them. + +https://github.com/owncloud/android/issues/3865 +https://github.com/owncloud/android/pull/4393 diff --git a/changelog/4.3.0_2024-07-01/4394 b/changelog/4.3.0_2024-07-01/4394 new file mode 100644 index 00000000000..a6564b5567d --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4394 @@ -0,0 +1,7 @@ +Bugfix: Video streaming in spaces + +The URI formed to perform video streaming in spaces has been adapted to oCIS accounts so that it takes into account the +space where the file is located. + +https://github.com/owncloud/android/issues/4328 +https://github.com/owncloud/android/pull/4394 diff --git a/changelog/4.3.0_2024-07-01/4399 b/changelog/4.3.0_2024-07-01/4399 new file mode 100644 index 00000000000..2b26aa79558 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4399 @@ -0,0 +1,7 @@ +Bugfix: Av. offline files are not removed when "Local only" option is clicked + +"Local only" option in remove dialog will be displayed when the selected folder contains at least one downloaded file, ignoring those available offline. +If the "Local only" option is displayed and clicked, available offline files will not be deleted. + +https://github.com/owncloud/android/issues/4353 +https://github.com/owncloud/android/pull/4399 diff --git a/changelog/4.3.0_2024-07-01/4401 b/changelog/4.3.0_2024-07-01/4401 new file mode 100644 index 00000000000..5832d6b5628 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4401 @@ -0,0 +1,6 @@ +Enhancement: Get personal space quota from GraphAPI + +Personal space quota in an oCIS account has been added from GraphAPI instead of propfind. + +https://github.com/owncloud/android/issues/3874 +https://github.com/owncloud/android/pull/4401 diff --git a/changelog/4.3.0_2024-07-01/4404 b/changelog/4.3.0_2024-07-01/4404 new file mode 100644 index 00000000000..d8316ee1e41 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4404 @@ -0,0 +1,9 @@ +Enhancement: Improvements in remove dialog + +A new remove dialog has been created by adding the thumbnail of the file to be deleted. +Also, when removing files in multiple selection, the number of elements that are going to be removed is displayed in the dialog. + +https://github.com/owncloud/android/issues/4342 +https://github.com/owncloud/android/pull/4348 +https://github.com/owncloud/android/issues/4377 +https://github.com/owncloud/android/pull/4404 diff --git a/changelog/4.3.0_2024-07-01/4408 b/changelog/4.3.0_2024-07-01/4408 new file mode 100644 index 00000000000..74a7dfad944 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4408 @@ -0,0 +1,8 @@ +Bugfix: Unwanted DELETE operations when synchronization in single file fails + +A new exception is now thrown and handled when the account of the network client is null, avoiding +DELETE requests to the server when synchronization (PROPFIND) on a single file responds with 404. Also, +when PROPFINDs respond with 404, the delete operation has been changed to be just local and not remote too. + +https://github.com/owncloud/enterprise/issues/6638 +https://github.com/owncloud/android/pull/4408 diff --git a/changelog/4.3.0_2024-07-01/4410 b/changelog/4.3.0_2024-07-01/4410 new file mode 100644 index 00000000000..8199fb4ab6a --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4410 @@ -0,0 +1,8 @@ +Enhancement: New UI for "Manage accounts" view + +A new dialog has been added to substitute the previous view for "Manage accounts". In addition, +all the accounts management related stuff has been removed from the drawer menu in order not to +show repetitive actions and make this menu simpler. + +https://github.com/owncloud/android/issues/4312 +https://github.com/owncloud/android/pull/4410 diff --git a/changelog/4.3.0_2024-07-01/4420 b/changelog/4.3.0_2024-07-01/4420 new file mode 100644 index 00000000000..93e01533ef5 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4420 @@ -0,0 +1,6 @@ +Enhancement: Support for URL shortcut files + +A new option has been added in the FAB to create a shortcut file with a .url extension. When the file is clicked, the URL will open in the browser. + +https://github.com/owncloud/android/issues/4413 +https://github.com/owncloud/android/pull/4420 diff --git a/changelog/4.3.0_2024-07-01/4423 b/changelog/4.3.0_2024-07-01/4423 new file mode 100644 index 00000000000..4a41d96eee3 --- /dev/null +++ b/changelog/4.3.0_2024-07-01/4423 @@ -0,0 +1,6 @@ +Enhancement: Changes in the Feedback section + +Based on a brandable parameter, a new dialog has been added to handle feedback. Within the dialog, links to the survey, GitHub and the open forum Central will be displayed. + +https://github.com/owncloud/enterprise/issues/6594 +https://github.com/owncloud/android/pull/4423 diff --git a/changelog/4.3.1_2024-07-22/4440 b/changelog/4.3.1_2024-07-22/4440 new file mode 100644 index 00000000000..ab60e62e898 --- /dev/null +++ b/changelog/4.3.1_2024-07-22/4440 @@ -0,0 +1,6 @@ +Change: Bump target SDK to 34 + +Target SDK was upgraded to 34 in order to fulfill Android platform requirements. + +https://github.com/owncloud/android/issues/4434 +https://github.com/owncloud/android/pull/4440 diff --git a/changelog/4.4.0_2024-09-30/4429 b/changelog/4.4.0_2024-09-30/4429 new file mode 100644 index 00000000000..0e908d2ec6b --- /dev/null +++ b/changelog/4.4.0_2024-09-30/4429 @@ -0,0 +1,6 @@ +Enhancement: Changed the color of some elements to improve accessibility + +The color of some UI elements has been changed to meet minimum color contrast requirements. + +https://github.com/owncloud/android/issues/4364 +https://github.com/owncloud/android/pull/4429 diff --git a/changelog/4.4.0_2024-09-30/4433 b/changelog/4.4.0_2024-09-30/4433 new file mode 100644 index 00000000000..e6baf5f3cef --- /dev/null +++ b/changelog/4.4.0_2024-09-30/4433 @@ -0,0 +1,7 @@ +Enhancement: Improved SearchView accessibility + +The text hint and cross button color of the SearchView has been changed to meet the color contrast requirements. +In addition, the SearchView includes a new resource with rounded edges, using the same background color (brandable) as the containing toolbar. + +https://github.com/owncloud/android/issues/4365 +https://github.com/owncloud/android/pull/4433 diff --git a/changelog/4.4.0_2024-09-30/4435 b/changelog/4.4.0_2024-09-30/4435 new file mode 100644 index 00000000000..ae238bdf783 --- /dev/null +++ b/changelog/4.4.0_2024-09-30/4435 @@ -0,0 +1,6 @@ +Bugfix: Shares in non-root are updated correctly + +The items of the "Share" view are updated instantly when create/edit a link or share with users or groups in a non-root file. + +https://github.com/owncloud/android/issues/4432 +https://github.com/owncloud/android/pull/4435 \ No newline at end of file diff --git a/changelog/4.4.0_2024-09-30/4437 b/changelog/4.4.0_2024-09-30/4437 new file mode 100644 index 00000000000..e259e7c374b --- /dev/null +++ b/changelog/4.4.0_2024-09-30/4437 @@ -0,0 +1,6 @@ +Enhancement: Improved "Remove from original folder" option in auto-upload + +The file will be deleted locally after it has been uploaded to the server, avoiding the loss of the file if an error happens during the upload. + +https://github.com/owncloud/android/issues/4357 +https://github.com/owncloud/android/pull/4437 diff --git a/changelog/4.4.0_2024-09-30/4438 b/changelog/4.4.0_2024-09-30/4438 new file mode 100644 index 00000000000..532bd7df6b2 --- /dev/null +++ b/changelog/4.4.0_2024-09-30/4438 @@ -0,0 +1,10 @@ +Enhancement: Hardware keyboard support + +Navigation via hardware keyboard has been improved so that now focus order has a logical path, every element +is reachable and there are no traps. These improvements have been applied in main file list, spaces list, +drawer menu, share view and image preview. + +https://github.com/owncloud/android/pull/4438 +https://github.com/owncloud/android/issues/4366 +https://github.com/owncloud/android/issues/4367 +https://github.com/owncloud/android/issues/4368 diff --git a/changelog/4.4.0_2024-09-30/4448 b/changelog/4.4.0_2024-09-30/4448 new file mode 100644 index 00000000000..3f6662d2dc9 --- /dev/null +++ b/changelog/4.4.0_2024-09-30/4448 @@ -0,0 +1,10 @@ +Enhancement: Improved accessibility of information and relationships + +Headings have been added to the following views: Share, Edit/Create Share Link, Standard Toolbar and Manage Accounts. +The filename input field and the two switches are now linked to their labels. +The 'contentDescription' attributes of the buttons in the Edit/Create Share Link view have also been updated. + +https://github.com/owncloud/android/issues/4362 +https://github.com/owncloud/android/issues/4363 +https://github.com/owncloud/android/issues/4371 +https://github.com/owncloud/android/pull/4448 diff --git a/changelog/4.4.0_2024-09-30/4454 b/changelog/4.4.0_2024-09-30/4454 new file mode 100644 index 00000000000..c3f88bac6c3 --- /dev/null +++ b/changelog/4.4.0_2024-09-30/4454 @@ -0,0 +1,8 @@ +Enhancement: Roles added to some elements to improve accessibility + +Roles have been added to specific elements within the following views: Toolbar, Spaces, Drawer Menu, Manage accounts and Floating Action Button. +Improved the navigation system within the passcode view. + +https://github.com/owncloud/android/issues/4373 +https://github.com/owncloud/android/pull/4454 +https://github.com/owncloud/android/pull/4466 diff --git a/changelog/4.4.0_2024-09-30/4455 b/changelog/4.4.0_2024-09-30/4455 new file mode 100644 index 00000000000..397188ea260 --- /dev/null +++ b/changelog/4.4.0_2024-09-30/4455 @@ -0,0 +1,6 @@ +Enhancement: Hardware keyboard support for passcode view + +Navigation via hardware keyboard has been added to the passcode view. + +https://github.com/owncloud/android/issues/4447 +https://github.com/owncloud/android/pull/4455 diff --git a/changelog/4.4.0_2024-09-30/4463 b/changelog/4.4.0_2024-09-30/4463 new file mode 100644 index 00000000000..bf2ff5d461d --- /dev/null +++ b/changelog/4.4.0_2024-09-30/4463 @@ -0,0 +1,6 @@ +Bugfix: The color of some elements is set up correctly + +The colors of the Manage Accounts header and status bar have been changed to be consistent with the branding colors. + +https://github.com/owncloud/android/issues/4442 +https://github.com/owncloud/android/pull/4463 diff --git a/changelog/4.4.0_2024-09-30/4467 b/changelog/4.4.0_2024-09-30/4467 new file mode 100644 index 00000000000..0eeb0ef41dc --- /dev/null +++ b/changelog/4.4.0_2024-09-30/4467 @@ -0,0 +1,6 @@ +Bugfix: List filtering not working after rotating device + +Configuration changes have been handled when rotating the device so that list filtering works. + +https://github.com/owncloud/android/issues/4441 +https://github.com/owncloud/android/pull/4467 diff --git a/changelog/4.4.0_2024-09-30/4470 b/changelog/4.4.0_2024-09-30/4470 new file mode 100644 index 00000000000..b282b4164b3 --- /dev/null +++ b/changelog/4.4.0_2024-09-30/4470 @@ -0,0 +1,6 @@ +Enhancement: TalkBack announces the view label correctly + +TalkBack no longer announces "ownCloud" every time the screen changes. Now, it correctly dictates the name of the current view. + +https://github.com/owncloud/android/issues/4458 +https://github.com/owncloud/android/pull/4470 diff --git a/changelog/4.4.0_2024-09-30/4472 b/changelog/4.4.0_2024-09-30/4472 new file mode 100644 index 00000000000..935a3e29764 --- /dev/null +++ b/changelog/4.4.0_2024-09-30/4472 @@ -0,0 +1,8 @@ +Bugfix: Rely on `resharing` capability + +The request to create a new share has been fixed so that it only includes the share permission +by default when the resharing capability is true, and the "can share" switch in the edition view +of private shares is now only shown when resharing is true. + +https://github.com/owncloud/android/issues/4397 +https://github.com/owncloud/android/pull/4472 diff --git a/changelog/4.4.0_2024-09-30/4479 b/changelog/4.4.0_2024-09-30/4479 new file mode 100644 index 00000000000..978b60bb827 --- /dev/null +++ b/changelog/4.4.0_2024-09-30/4479 @@ -0,0 +1,7 @@ +Bugfix: Audio player does not work + +Audio player in Android 14+ devices wasn't working, so some proper permissions have been added +in Manifest so that media can be played correctly in the foreground and background in all versions. + +https://github.com/owncloud/android/issues/4474 +https://github.com/owncloud/android/pull/4479 diff --git a/changelog/4.4.0_2024-09-30/4480 b/changelog/4.4.0_2024-09-30/4480 new file mode 100644 index 00000000000..2c152e83f54 --- /dev/null +++ b/changelog/4.4.0_2024-09-30/4480 @@ -0,0 +1,7 @@ +Bugfix: Buttons visibility in name conflicts dialog + +In some languages, labels for the buttons in the name conflicts dialog were too long and their +visibility was very poor. These buttons have been placed in vertical instead of horizontal to avoid +this problem. + +https://github.com/owncloud/android/pull/4480 diff --git a/changelog/4.4.1_2024-10-30/4502 b/changelog/4.4.1_2024-10-30/4502 new file mode 100644 index 00000000000..8151bea5f10 --- /dev/null +++ b/changelog/4.4.1_2024-10-30/4502 @@ -0,0 +1,6 @@ +Bugfix: File size becomes 0 after a local update + +The local copy of a file is not removed after a local update anymore. Therefore, the file size has been fixed. + +https://github.com/owncloud/android/issues/4495 +https://github.com/owncloud/android/pull/4502 diff --git a/changelog/4.5.0_2025-03-24/4389 b/changelog/4.5.0_2025-03-24/4389 new file mode 100644 index 00000000000..1a9bb42118a --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4389 @@ -0,0 +1,6 @@ +Enhancement: Unit tests for repository classes - Part 2 + +Unit tests for OCFileRepository class have been completed. + +https://github.com/owncloud/android/issues/4233 +https://github.com/owncloud/android/pull/4389 diff --git a/changelog/4.5.0_2025-03-24/4482 b/changelog/4.5.0_2025-03-24/4482 new file mode 100644 index 00000000000..5ca06e49a17 --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4482 @@ -0,0 +1,7 @@ +Enhancement: Add status message when (un)setting av. offline from preview + +A message has been added in all previews when the (un)setting av. offline buttons are clicked. +The options menu has been updated in all previews depending on the file status. + +https://github.com/owncloud/android/issues/4382 +https://github.com/owncloud/android/pull/4482 diff --git a/changelog/4.5.0_2025-03-24/4484 b/changelog/4.5.0_2025-03-24/4484 new file mode 100644 index 00000000000..405ee38a12d --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4484 @@ -0,0 +1,7 @@ +Enhancement: Added text labels for BottomNavigationView + +Text labels have been added below the icons, and the active indicator feature is implemented using the default itemActiveIndicatorStyle for better navigation experience. + + +https://github.com/owncloud/android/issues/4484 +https://github.com/owncloud/android/pull/4498 diff --git a/changelog/4.5.0_2025-03-24/4487 b/changelog/4.5.0_2025-03-24/4487 new file mode 100644 index 00000000000..ea233bb9b43 --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4487 @@ -0,0 +1,7 @@ +Enhancement: Detekt: static code analyzer + +The Kotlin static code analyzer Detekt has been introduced with the agreed rules, and +the left code smells have been fixed throughout the whole code. + +https://github.com/owncloud/android/issues/4506 +https://github.com/owncloud/android/pull/4487 diff --git a/changelog/4.5.0_2025-03-24/4492 b/changelog/4.5.0_2025-03-24/4492 new file mode 100644 index 00000000000..3eb5162e14d --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4492 @@ -0,0 +1,6 @@ +Change: replace auto-uploads with automatic uploads + +Wording change in the feature name, in order to make it clearer in translations and documentation + +https://github.com/owncloud/android/issues/4252 +https://github.com/owncloud/android/pull/4492 diff --git a/changelog/4.5.0_2025-03-24/4496 b/changelog/4.5.0_2025-03-24/4496 new file mode 100644 index 00000000000..28c51469d0c --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4496 @@ -0,0 +1,7 @@ +Enhancement: Quota improvements from GraphAPI + +The quota in the drawer has been updated depending on its status and also when a file is removed, copied, moved and after a refresh operation. +In addition, the quota value for each account has been added in the manage accounts dialog. + +https://github.com/owncloud/android/issues/4411 +https://github.com/owncloud/android/pull/4496 diff --git a/changelog/4.5.0_2025-03-24/4507 b/changelog/4.5.0_2025-03-24/4507 new file mode 100644 index 00000000000..9b9367603a3 --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4507 @@ -0,0 +1,7 @@ +Enhancement: Upgraded AGP version to 8.7.2 + +The Android Gradle Plugin version has been upgraded to 8.7.2, together with Gradle version (updated to 8.9) and +JDK version (updated to JBR 17). + +https://github.com/owncloud/android/issues/4478 +https://github.com/owncloud/android/pull/4507 diff --git a/changelog/4.5.0_2025-03-24/4516 b/changelog/4.5.0_2025-03-24/4516 new file mode 100644 index 00000000000..1bb48453012 --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4516 @@ -0,0 +1,9 @@ +Enhancement: Enforce OIDC auth flow via branding + +A new branded parameter `enforce_oidc` has been added to enforce the app to follow the OIDC auth flow, +and `clientId` and `clientSecret` are sent in token requests when required by server. Moreover, the +app now supports branded redirect URIs with path due to the new branded parameter +`oauth2_redirect_uri_path` (legacy `oauth2_redirect_uri_path` is now `oauth2_redirect_uri_host`). + +https://github.com/owncloud/android/issues/4500 +https://github.com/owncloud/android/pull/4516 diff --git a/changelog/4.5.0_2025-03-24/4518 b/changelog/4.5.0_2025-03-24/4518 new file mode 100644 index 00000000000..5bb03006a0b --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4518 @@ -0,0 +1,6 @@ +Enhancement: oCIS Light Users + +oCIS light users (users without personal space) are now supported in the app + +https://github.com/owncloud/android/issues/4490 +https://github.com/owncloud/android/pull/4518 diff --git a/changelog/4.5.0_2025-03-24/4523 b/changelog/4.5.0_2025-03-24/4523 new file mode 100644 index 00000000000..9dadb4b2bd4 --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4523 @@ -0,0 +1,7 @@ +Enhancement: Unit tests for repository classes - Part 3 + +Unit tests for OCFolderBackupRepository, OCOAuthRepository, OCServerInfoRepository, +OCShareeRepository, OCShareRepository classes have been completed. + +https://github.com/owncloud/android/issues/4234 +https://github.com/owncloud/android/pull/4523 diff --git a/changelog/4.5.0_2025-03-24/4525 b/changelog/4.5.0_2025-03-24/4525 new file mode 100644 index 00000000000..20f5b8e346b --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4525 @@ -0,0 +1,7 @@ +Enhancement: Technical improvements for user quota + +A new use case has been added to fetch the user quota as a flow. +Also, all unnecessary calls from DrawerActivity have been removed. + +https://github.com/owncloud/android/issues/4521 +https://github.com/owncloud/android/pull/4525 diff --git a/changelog/4.5.0_2025-03-24/4527 b/changelog/4.5.0_2025-03-24/4527 new file mode 100644 index 00000000000..c95b07638ba --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4527 @@ -0,0 +1,8 @@ +Enhancement: Multi-Personal (1st round) + +Support for multi-personal accounts has been added. This first approach displays all personal +spaces in the Spaces tab, not showing project spaces. In addition, the Personal tab shows +an empty view since there is not a single personal space. + +https://github.com/owncloud/android/issues/4514 +https://github.com/owncloud/android/pull/4527/files diff --git a/changelog/4.5.0_2025-03-24/4535 b/changelog/4.5.0_2025-03-24/4535 new file mode 100644 index 00000000000..8612f747c82 --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4535 @@ -0,0 +1,7 @@ +Bugfix: Navigation in automatic uploads folder picker + +The button in the toolbar for going up when choosing an upload path has been added +when needed, since there were some cases in which it didn't appear. + +https://github.com/owncloud/android/issues/4340 +https://github.com/owncloud/android/pull/4535 diff --git a/changelog/4.5.0_2025-03-24/4537 b/changelog/4.5.0_2025-03-24/4537 new file mode 100644 index 00000000000..e82244408b9 --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4537 @@ -0,0 +1,7 @@ +Enhancement: Unit tests for repository classes - Part 4 + +Unit tests for OCSpacesRepository, OCTransferRepository, +OCUserRepository and OCWebFingerRepository classes have been completed. + +https://github.com/owncloud/android/issues/4235 +https://github.com/owncloud/android/pull/4537 diff --git a/changelog/4.5.0_2025-03-24/4542 b/changelog/4.5.0_2025-03-24/4542 new file mode 100644 index 00000000000..04bd4510925 --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4542 @@ -0,0 +1,8 @@ +Bugfix: Crash from Google Play Store + +The androidx-appcompat version has been upgraded from 1.5.1 to 1.6.1 +in order to fix one crash reported by Play Console which is related to +the FileDataStorageManager constructor + +https://github.com/owncloud/android/issues/4333 +https://github.com/owncloud/android/pull/4542 diff --git a/changelog/4.5.0_2025-03-24/4548 b/changelog/4.5.0_2025-03-24/4548 new file mode 100644 index 00000000000..65a073e2dd6 --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4548 @@ -0,0 +1,7 @@ +Bugfix: Downloading non-previewable files in details view leads to empty list + +The error that led to an empty file list after downloading a file in details view, +due to the bottom sheet "Open with", has been fixed. + +https://github.com/owncloud/android/issues/4428 +https://github.com/owncloud/android/pull/4548 diff --git a/changelog/4.5.0_2025-03-24/4549 b/changelog/4.5.0_2025-03-24/4549 new file mode 100644 index 00000000000..d5f0f771e0c --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4549 @@ -0,0 +1,7 @@ +Change: Removed survey and chat from feedback + +Survey and chat have been removed from the feedback dialog due to they are +not maintained anymore or they have low traffic. + +https://github.com/owncloud/android/issues/4540 +https://github.com/owncloud/android/pull/4549 diff --git a/changelog/4.5.0_2025-03-24/4553 b/changelog/4.5.0_2025-03-24/4553 new file mode 100644 index 00000000000..5fbf524c461 --- /dev/null +++ b/changelog/4.5.0_2025-03-24/4553 @@ -0,0 +1,7 @@ +Bugfix: Ensure folder size updates automatically after file replacement + +The folder size has been updated automatically after replacing a file during a move operation, +eliminating the need for a manual refresh. + +https://github.com/owncloud/android/issues/4505 +https://github.com/owncloud/android/pull/4553 diff --git a/changelog/4.5.1_2025-04-03/4562 b/changelog/4.5.1_2025-04-03/4562 new file mode 100644 index 00000000000..272924c9751 --- /dev/null +++ b/changelog/4.5.1_2025-04-03/4562 @@ -0,0 +1,7 @@ +Bugfix: Confusing behaviour when creating new files using apps provider + +The error that appeared when creating a new file using the apps provider has been fixed. +Now, the custom tab is opened correctly with the file content. + +https://github.com/owncloud/android/issues/4560 +https://github.com/owncloud/android/pull/4562 diff --git a/changelog/4.5.1_2025-04-03/4564 b/changelog/4.5.1_2025-04-03/4564 new file mode 100644 index 00000000000..d97ddf6181a --- /dev/null +++ b/changelog/4.5.1_2025-04-03/4564 @@ -0,0 +1,7 @@ +Bugfix: App crashes at start when biometrics fail + +The crash that happened when biometrics failed due to a system error has been handled. +In this case, an error is shown and pattern or passcode unlock are used instead of biometrics. + +https://github.com/owncloud/enterprise/issues/7134 +https://github.com/owncloud/android/pull/4564 diff --git a/changelog/4.6.0_2025-07-22/4556 b/changelog/4.6.0_2025-07-22/4556 new file mode 100644 index 00000000000..263122ea737 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4556 @@ -0,0 +1,6 @@ +Change: Bump target SDK to 35 + +Target SDK has been upgraded to 35 in order to fulfill Android platform requirements. + +https://github.com/owncloud/android/issues/4529 +https://github.com/owncloud/android/pull/4556 diff --git a/changelog/4.6.0_2025-07-22/4558 b/changelog/4.6.0_2025-07-22/4558 new file mode 100644 index 00000000000..e85bb5891e9 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4558 @@ -0,0 +1,6 @@ +Change: Replace dav4android location + +dav4android location has been moved from GitLab to GitHub. + +https://github.com/owncloud/android/issues/4536 +https://github.com/owncloud/android/pull/4558 diff --git a/changelog/4.6.0_2025-07-22/4567 b/changelog/4.6.0_2025-07-22/4567 new file mode 100644 index 00000000000..799e3fcbbb0 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4567 @@ -0,0 +1,6 @@ +Bugfix: Add bottom margin for used quota in account dialog + +Added bottom margin to the container holding used quota view when multi account is disabled + +https://github.com/owncloud/android/issues/4566 +https://github.com/owncloud/android/pull/4567 diff --git a/changelog/4.6.0_2025-07-22/4569 b/changelog/4.6.0_2025-07-22/4569 new file mode 100644 index 00000000000..7914c7d8817 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4569 @@ -0,0 +1,6 @@ +Enhancement: QA variant + +A new flavor for QA has been created in order to make automatic tests easier. + +https://github.com/owncloud/android/issues/3791 +https://github.com/owncloud/android/pull/4569 diff --git a/changelog/4.6.0_2025-07-22/4571 b/changelog/4.6.0_2025-07-22/4571 new file mode 100644 index 00000000000..d3097798a92 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4571 @@ -0,0 +1,7 @@ +Bugfix: Changes in the automatic uploads algorithm to prevent duplications + +The timestamp for automatic uploads is now updated at the beginning of the upload process instead of at the end. Additionally, the filter +used in AutomaticUploadsWorker to select the files to upload has been modified in order to reduce time and charge when evaluating all files. + +https://github.com/owncloud/android/issues/3983 +https://github.com/owncloud/android/pull/4571 diff --git a/changelog/4.6.0_2025-07-22/4573 b/changelog/4.6.0_2025-07-22/4573 new file mode 100644 index 00000000000..6b98f7c2216 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4573 @@ -0,0 +1,6 @@ +Enhancement: Accessibility reports in 4.5.1 + +Some content descriptions that were missing have been added to provide a better accessibility experience. + +https://github.com/owncloud/android/issues/4568 +https://github.com/owncloud/android/pull/4573 diff --git a/changelog/4.6.0_2025-07-22/4574 b/changelog/4.6.0_2025-07-22/4574 new file mode 100644 index 00000000000..1adfb985583 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4574 @@ -0,0 +1,7 @@ +Bugfix: Content in Spaces not shown from third-party apps + +The root of the spaces has been synchronized before displaying +the file list when a file is shared from a third-party app. + +https://github.com/owncloud/android/issues/4522 +https://github.com/owncloud/android/pull/4574 diff --git a/changelog/4.6.0_2025-07-22/4578 b/changelog/4.6.0_2025-07-22/4578 new file mode 100644 index 00000000000..52775433ce7 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4578 @@ -0,0 +1,7 @@ +Change: Modify biometrics fail source string + +The string that appears when biometric unlocking is not +available has been changed in order to make it clearer. + +https://github.com/owncloud/android/issues/4572 +https://github.com/owncloud/android/pull/4578 diff --git a/changelog/4.6.0_2025-07-22/4579 b/changelog/4.6.0_2025-07-22/4579 new file mode 100644 index 00000000000..4f04e743682 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4579 @@ -0,0 +1,7 @@ +Enhancement: Shares space in Android native file explorer + +The Shares space has been added to the spaces list shown in the Documents Provider, the Android +native file explorer. + +https://github.com/owncloud/android/issues/4515 +https://github.com/owncloud/android/pull/4579 diff --git a/changelog/4.6.0_2025-07-22/4580 b/changelog/4.6.0_2025-07-22/4580 new file mode 100644 index 00000000000..1c5a99d65c2 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4580 @@ -0,0 +1,6 @@ +Bugfix: Side menu collapses info in landscape + +Two empty and visual items have been added to prevent the drawer from collapsing in landscape mode. + +https://github.com/owncloud/android/issues/4513 +https://github.com/owncloud/android/pull/4580 diff --git a/changelog/4.6.0_2025-07-22/4581 b/changelog/4.6.0_2025-07-22/4581 new file mode 100644 index 00000000000..b0caadfb56e --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4581 @@ -0,0 +1,6 @@ +Bugfix: Infinite edges in Android 15 + +Infinite edges feature, enabled by default starting from Android 15, has been disabled in the app. + +https://github.com/owncloud/android/issues/4576 +https://github.com/owncloud/android/pull/4581 diff --git a/changelog/4.6.0_2025-07-22/4586 b/changelog/4.6.0_2025-07-22/4586 new file mode 100644 index 00000000000..39e2e9ec1f7 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4586 @@ -0,0 +1,7 @@ +Bugfix: Token request with Bearer returns error + +A new condition has been added into the network client to check if the network request comes from TokenRequestRemoteOperation +before setting the authorization header. This allows users to have more than one logged-in account on the same server. + +https://github.com/owncloud/android/issues/4080 +https://github.com/owncloud/android/pull/4586 diff --git a/changelog/4.6.0_2025-07-22/4587 b/changelog/4.6.0_2025-07-22/4587 new file mode 100644 index 00000000000..1e299474557 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4587 @@ -0,0 +1,6 @@ +Bugfix: No message when uploading a file with no quota + +A message has been added in the file list when uploading a file (from file system, camera or shortcut) without available quota + +https://github.com/owncloud/android/issues/4582 +https://github.com/owncloud/android/pull/4587 diff --git a/changelog/4.6.0_2025-07-22/4589 b/changelog/4.6.0_2025-07-22/4589 new file mode 100644 index 00000000000..308552ac049 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4589 @@ -0,0 +1,6 @@ +Enhancement: Support for Kiteworks servers without client secret + +Support for connecting to Kiteworks servers without requiring client secret has been added to the app. + +https://github.com/owncloud/android/issues/4588 +https://github.com/owncloud/android/pull/4589 diff --git a/changelog/4.6.0_2025-07-22/4594 b/changelog/4.6.0_2025-07-22/4594 new file mode 100644 index 00000000000..bad58f4f330 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4594 @@ -0,0 +1,7 @@ +Bugfix: Crash from Google Play Console in PreviewImageFragment + +In order to prevent app crashes when file variable is null, a nullability check +has been added in onPrepareOptionsMenu method from PreviewImageFragment + +https://github.com/owncloud/android/issues/4577 +https://github.com/owncloud/android/pull/4594 diff --git a/changelog/4.6.0_2025-07-22/4599 b/changelog/4.6.0_2025-07-22/4599 new file mode 100644 index 00000000000..255bd1a7f06 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4599 @@ -0,0 +1,6 @@ +Enhancement: SBOM (Software Bill of Materials) + +SBOM to be generated via GitHub Actions with the list of all dependencies used in the code, powered by cyclonedx. Finally, it is pushed to the repo's root folder if changes are detected. + +https://github.com/owncloud/android/issues/4598 +https://github.com/owncloud/android/pull/4641 diff --git a/changelog/4.6.0_2025-07-22/4600 b/changelog/4.6.0_2025-07-22/4600 new file mode 100644 index 00000000000..4f97e4cf860 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4600 @@ -0,0 +1,7 @@ +Bugfix: Crash from Google Play Console in PreviewImagePagerAdapter + +In order to prevent app crashes, a validation has been added in onPageSelected method +from PreviewImageActivity to ensure the image list contains items before using it. + +https://github.com/owncloud/android/issues/4596 +https://github.com/owncloud/android/pull/4600 diff --git a/changelog/4.6.0_2025-07-22/4602 b/changelog/4.6.0_2025-07-22/4602 new file mode 100644 index 00000000000..f73a0befc19 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4602 @@ -0,0 +1,7 @@ +Enhancement: Integration of instrumented tests in GitHub Actions + +A new workflow has been added to run instrumented tests in GitHub Actions +in order to have a more consistent CI pipeline in the project. + +https://github.com/owncloud/android/issues/4595 +https://github.com/owncloud/android/pull/4602 diff --git a/changelog/4.6.0_2025-07-22/4608 b/changelog/4.6.0_2025-07-22/4608 new file mode 100644 index 00000000000..4578a420543 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4608 @@ -0,0 +1,7 @@ +Enhancement: Polish UI and sync operations over Kiteworks servers + +The UI and navigation behaviour after performing a sync operation +have been refined for accounts associated with Kiteworks servers. + +https://github.com/owncloud/android/issues/4591 +https://github.com/owncloud/android/pull/4608 diff --git a/changelog/4.6.0_2025-07-22/4632 b/changelog/4.6.0_2025-07-22/4632 new file mode 100644 index 00000000000..7ada92c2713 --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4632 @@ -0,0 +1,6 @@ +Enhancement: New set of configurations for Kiteworks servers + +A new set of configurations in setup file has been added to support the connection to Kiteworks servers. + +https://github.com/owncloud/android/issues/4622 +https://github.com/owncloud/android/pull/4632 diff --git a/changelog/4.6.0_2025-07-22/4637 b/changelog/4.6.0_2025-07-22/4637 new file mode 100644 index 00000000000..a59f38fd27f --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4637 @@ -0,0 +1,6 @@ +Change: Update CI badges in README file + +Bitrise badges in README file have been replaced by GitHub Actions badges. + +https://github.com/owncloud/android/issues/4623 +https://github.com/owncloud/android/pull/4637 diff --git a/changelog/4.6.0_2025-07-22/4640 b/changelog/4.6.0_2025-07-22/4640 new file mode 100644 index 00000000000..ae1180ec91d --- /dev/null +++ b/changelog/4.6.0_2025-07-22/4640 @@ -0,0 +1,7 @@ +Bugfix: Change space icon in file details view for personal space + +The space icon in the file details view has been replaced by the +folder icon when the space that contains the file is personal. + +https://github.com/owncloud/android/issues/4624 +https://github.com/owncloud/android/pull/4640 diff --git a/changelog/4.6.1_2025-08-01/4649 b/changelog/4.6.1_2025-08-01/4649 new file mode 100644 index 00000000000..cd3ab1d8f3a --- /dev/null +++ b/changelog/4.6.1_2025-08-01/4649 @@ -0,0 +1,7 @@ +Bugfix: Mini-fab for creating new document not always available + +The productName property has been made nullable to handle cases where it is not present +in the JSON response, allowing the mini-fab for creating new documents to be properly shown. + +https://github.com/owncloud/enterprise/issues/7277 +https://github.com/owncloud/android/pull/4649 diff --git a/changelog/4.6.1_2025-08-01/4652 b/changelog/4.6.1_2025-08-01/4652 new file mode 100644 index 00000000000..00345667db3 --- /dev/null +++ b/changelog/4.6.1_2025-08-01/4652 @@ -0,0 +1,7 @@ +Bugfix: Crash from Google Play Console in TransferListFragment + +In order to prevent app crashes, the account parameter from TransferListFragment has +been removed and the newInstance method has been created to pass parameters safely. + +https://github.com/owncloud/android/issues/4650 +https://github.com/owncloud/android/pull/4652 diff --git a/changelog/4.6.1_2025-08-01/4654 b/changelog/4.6.1_2025-08-01/4654 new file mode 100644 index 00000000000..48b9f9bcbff --- /dev/null +++ b/changelog/4.6.1_2025-08-01/4654 @@ -0,0 +1,7 @@ +Bugfix: Re-login not working properly when credentials expire + +The startActivityForResult method has been replaced with startActivity +to make re-login work properly when credentials expire. + +https://github.com/owncloud/enterprise/issues/7277 +https://github.com/owncloud/android/pull/4654 diff --git a/changelog/4.6.2_2025-08-13/4657 b/changelog/4.6.2_2025-08-13/4657 new file mode 100644 index 00000000000..85062029174 --- /dev/null +++ b/changelog/4.6.2_2025-08-13/4657 @@ -0,0 +1,6 @@ +Bugfix: Removed files in failed uploads + +Files have been prevented from being deleted from the source folder on upload retries by using the createdBy property. + +https://github.com/owncloud/android/issues/4653 +https://github.com/owncloud/android/pull/4657 diff --git a/changelog/4.7.0_2025-11-17/4661 b/changelog/4.7.0_2025-11-17/4661 new file mode 100644 index 00000000000..6435890365d --- /dev/null +++ b/changelog/4.7.0_2025-11-17/4661 @@ -0,0 +1,7 @@ +Enhancement: Add account ID to the user information + +The account ID has been added to the Account Manager only for Infinite Scale users. +This information will be used to fetch all permissions related to space management. + +https://github.com/owncloud/android/issues/4605 +https://github.com/owncloud/android/pull/4661 diff --git a/changelog/4.7.0_2025-11-17/4664 b/changelog/4.7.0_2025-11-17/4664 new file mode 100644 index 00000000000..4cf7c618d5a --- /dev/null +++ b/changelog/4.7.0_2025-11-17/4664 @@ -0,0 +1,6 @@ +Change: SBOM workflow runs on dependabot PRs + +Changes to dependency versions will be managed within Dependabot PRs, so they can be updated together. + +https://github.com/owncloud/android/pull/4664 +https://github.com/owncloud/android/pull/4666 diff --git a/changelog/4.7.0_2025-11-17/4665 b/changelog/4.7.0_2025-11-17/4665 new file mode 100644 index 00000000000..5ef2754dbf0 --- /dev/null +++ b/changelog/4.7.0_2025-11-17/4665 @@ -0,0 +1,7 @@ +Enhancement: New layout for spaces list + +A three-dot button has been added to each space card, allowing a bottom sheet dialog to +be opened when clicked. In addition, the spaces layout has been changed to horizontal. + +https://github.com/owncloud/android/issues/4604 +https://github.com/owncloud/android/pull/4665 diff --git a/changelog/4.7.0_2025-11-17/4671 b/changelog/4.7.0_2025-11-17/4671 new file mode 100644 index 00000000000..350fedaba7b --- /dev/null +++ b/changelog/4.7.0_2025-11-17/4671 @@ -0,0 +1,7 @@ +Bugfix: Set authorization header for token request only when necessary + +A new field has been added to the token request to indicate whether the authorization +header should be applied in case `client_secret_post` method is supported or not. + +https://github.com/owncloud/android/issues/4575 +https://github.com/owncloud/android/pull/4671 diff --git a/changelog/4.7.0_2025-11-17/4675 b/changelog/4.7.0_2025-11-17/4675 new file mode 100644 index 00000000000..708b47f6690 --- /dev/null +++ b/changelog/4.7.0_2025-11-17/4675 @@ -0,0 +1,5 @@ +Bugfix: Add explicit permission to Detekt workflow + +Read permission has been added to the Detekt workflow. Without this explicit setting, the default permissions would apply, which unnecessarily include write access. + +https://github.com/owncloud/android/pull/4675 diff --git a/changelog/4.7.0_2025-11-17/4683 b/changelog/4.7.0_2025-11-17/4683 new file mode 100644 index 00000000000..605eafd840e --- /dev/null +++ b/changelog/4.7.0_2025-11-17/4683 @@ -0,0 +1,9 @@ +Enhancement: Create a new space + +A new floating action button has been added to the spaces list, visible only to users with right permissions. +In addition, a new dialog for space creation has been implemented and, it is shown when the floating action button is tapped. + +https://github.com/owncloud/android/issues/4606 +https://github.com/owncloud/android/issues/4688 +https://github.com/owncloud/android/pull/4683 +https://github.com/owncloud/android/pull/4694 diff --git a/changelog/4.7.0_2025-11-17/4685 b/changelog/4.7.0_2025-11-17/4685 new file mode 100644 index 00000000000..b4755352896 --- /dev/null +++ b/changelog/4.7.0_2025-11-17/4685 @@ -0,0 +1,6 @@ +Bugfix: Handling of HTTP code response 413 + +A new exception has been added to handle cases where the payload exceeds the server limit (HTTP code 413) + +https://github.com/owncloud/android/issues/4094 +https://github.com/owncloud/android/pull/4685 diff --git a/changelog/4.7.0_2025-11-17/4687 b/changelog/4.7.0_2025-11-17/4687 new file mode 100644 index 00000000000..b81803da360 --- /dev/null +++ b/changelog/4.7.0_2025-11-17/4687 @@ -0,0 +1,11 @@ +Enhancement: Edit a space + +A new edit space option has been added to the bottom sheet, available only to users +with the required permissions when the three-dot menu button is tapped. + +https://github.com/owncloud/android/issues/4607 +https://github.com/owncloud/android/issues/4688 +https://github.com/owncloud/android/issues/4695 +https://github.com/owncloud/android/pull/4687 +https://github.com/owncloud/android/pull/4694 +https://github.com/owncloud/android/pull/4713 diff --git a/changelog/4.7.0_2025-11-17/4696 b/changelog/4.7.0_2025-11-17/4696 new file mode 100644 index 00000000000..885f287614b --- /dev/null +++ b/changelog/4.7.0_2025-11-17/4696 @@ -0,0 +1,7 @@ +Enhancement: Disable/Remove a space + +New options to disable, enable and remove spaces have been added to the bottom sheet, available only to users +with the required permissions when the three-dot menu button is tapped. + +https://github.com/owncloud/android/issues/4611 +https://github.com/owncloud/android/pull/4696 diff --git a/changelog/4.7.0_2025-11-17/4698 b/changelog/4.7.0_2025-11-17/4698 new file mode 100644 index 00000000000..9ec0d4b1158 --- /dev/null +++ b/changelog/4.7.0_2025-11-17/4698 @@ -0,0 +1,5 @@ +Enhancement: Add user role to spaces + +A new field representing the user role has been added to the space model and to the spaces table in the database. + +https://github.com/owncloud/android/pull/4698 diff --git a/changelog/4.7.0_2025-11-17/4704 b/changelog/4.7.0_2025-11-17/4704 new file mode 100644 index 00000000000..d2f2840e6c4 --- /dev/null +++ b/changelog/4.7.0_2025-11-17/4704 @@ -0,0 +1,7 @@ +Enhancement: Show space quota + +The used and total values of the space quota have been added to the bottom +sheet dialog, displayed when the three-dot menu button is tapped. + +https://github.com/owncloud/android/issues/4693 +https://github.com/owncloud/android/pull/4704 diff --git a/changelog/4.7.0_2025-11-17/4705 b/changelog/4.7.0_2025-11-17/4705 new file mode 100644 index 00000000000..84baad63235 --- /dev/null +++ b/changelog/4.7.0_2025-11-17/4705 @@ -0,0 +1,7 @@ +Enhancement: Update space image + +A new option to update the space image has been added to the bottom sheet, available +only to users with the required permissions when the three-dot menu button is tapped. + +https://github.com/owncloud/android/issues/4691 +https://github.com/owncloud/android/pull/4705 diff --git a/changelog/4.7.0_2025-11-17/4712 b/changelog/4.7.0_2025-11-17/4712 new file mode 100644 index 00000000000..099798abcf5 --- /dev/null +++ b/changelog/4.7.0_2025-11-17/4712 @@ -0,0 +1,5 @@ +Enhancement: Cancellation policy for CI workflows + +A new cancellation policy has been set to CI workflows. Only one concurrent execution of every workflow in every branch. + +https://github.com/owncloud/android/pull/4712 diff --git a/changelog/4.7.0_2025-11-17/4714 b/changelog/4.7.0_2025-11-17/4714 new file mode 100644 index 00000000000..cfcf01a0bdf --- /dev/null +++ b/changelog/4.7.0_2025-11-17/4714 @@ -0,0 +1,7 @@ +Enhancement: New setting to show disabled spaces + +A new setting has been added to the advanced section that allows space +managers to show or hide disabled spaces in the spaces list. + +https://github.com/owncloud/android/issues/4711 +https://github.com/owncloud/android/pull/4714 diff --git a/changelog/CHANGELOG.tmpl b/changelog/CHANGELOG.tmpl new file mode 100644 index 00000000000..352139319b9 --- /dev/null +++ b/changelog/CHANGELOG.tmpl @@ -0,0 +1,574 @@ +# Table of Contents + +{{ range . -}} + * [Changelog for {{ .Version }}](#changelog-for-owncloud-android-client-{{ .Version | replace "." ""}}-{{ .Date | lower -}}) +{{ end -}} + * [Changelog for 2.17 versions and below](#changelog-for-217-versions-and-below) +{{ $allVersions := . }} +{{- range $index, $changes := . }}{{ with $changes -}} +# Changelog for ownCloud Android Client [{{ .Version }}] ({{ .Date }}) + +The following sections list the changes in ownCloud Android Client {{ .Version }} relevant to +ownCloud admins and users. + +{{/* creating version compare links */ -}} +{{ $next := add1 $index -}} +{{ if ne (len $allVersions) $next -}} +{{ $previousVersion := (index $allVersions $next).Version -}} +{{ if eq .Version "unreleased" -}} +[{{ .Version }}]: https://github.com/owncloud/android/compare/v{{ $previousVersion }}...master + +{{- else -}} +[{{ .Version }}]: https://github.com/owncloud/android/compare/v{{ $previousVersion }}...v{{ .Version }} +{{- end -}} +{{ end -}} + +{{- /* last version managed by calens, end of the loop */ -}} +{{ if eq .Version "2.16" -}} +[{{ .Version }}]: https://github.com/owncloud/android/compare/v2.16...v{{ .Version }} +{{- end }} + +## Summary +{{ range $entry := .Entries }}{{ with $entry }} +* {{ .Type }} - {{ .Title }}: [#{{ .PrimaryID }}]({{ .PrimaryURL }}) +{{- end }}{{ end }} + +## Details +{{ range $entry := .Entries }}{{ with $entry }} +* {{ .Type }} - {{ .Title }}: [#{{ .PrimaryID }}]({{ .PrimaryURL }}) +{{ range $par := .Paragraphs }} + {{ wrapIndent $par 80 3 }} +{{ end -}} +{{ range $url := .IssueURLs }} + {{ $url -}} +{{ end -}} +{{ range $url := .PRURLs }} + {{ $url -}} +{{ end -}} +{{ range $url := .OtherURLs }} + {{ $url -}} +{{ end }} +{{ end }}{{ end }} +{{ end }}{{ end -}} + +{{/* Start of old changelog */ -}} +# Changelog for 2.17 versions and below + +## 2.17 (March 2021) +- Toolbar redesign +- Show thumbnails for every supported file type +- Fix 301 redirections +- Fix a crash related to pictures preview +- Fix two bugs when sharing files with ownCloud +- Improvements in OAuth2, including + + Fix a crash when migrating from OAuth2 to OIDC + + Fix a crash when disabling OAuth2 + + Fix a bug where token was not refreshed properly + + Log authentication requests + + Support OIDC Dynamic Client Registration + +## 2.17 beta v1 (March 2021) +- Toolbar redesign +- Show thumbnails for every supported file type +- Fix 301 redirections +- Fix a crash related to pictures preview +- Fix a bug when sharing files with ownCloud +- Improvements in OAuth2, including + + Fix a crash when migrating from OAuth2 to OIDC + + Fix a crash when disabling OAuth2 + + Fix a bug where token was not refreshed properly + + Log authentication requests + + Support OIDC Dynamic Client Registration + +## 2.16.0 (January 2021) +- Native Android ShareSheet +- Option to log HTTP requests and responses +- Move sort menu from toolbar to files view +- Update background images +- Search when sharing with ownCloud +- Bug fixes, including: + + Fix a crash while accessing a WebDAV folder + + Fix some crashes when rotating the device + + Fix a glitch where image was not refreshed properly + + Fix some issues when using OCIS + +## 2.15.3 (October 2020) +- Bug fixes, including: + + Fix a crash related to downloads notifications + + Potential fix for ANR when retrying camera uploads + + Removal of legacy header http.protocol.single-cookie-header + +## 2.15.2 (September 2020) +- Update logcat library +- Bug fixes, including: + + Fixed a crash when browsing up + + Fixed a crash when logging camera upload request + + Fixed a crash related with available offline files + + Fixed a crash related with database migration + +## 2.15.1 (July 2020) +- Android 10: TLS 1.3 supported +- Update network libraries to more recent versions, OkHttp + dav4jvm (old dav4Android) +- Rearchitecture of avatar and quota features +- Bug fixes, including: + + Fixed some authentication problems regarding password edition + + Fixed available offline bad behaviour when the amount of files is huge + + Fixed a crash related with FileDataStorageManager + + Fixed problem related with server setting `version.hide` to allow users login if such setting is enabled. + +## 2.15 (June 2020) +- Login rearchitecture +- Support for OpenId Connect +- Native biometrical lock +- UI improvements, including: + + New bottom navigation bar +- Support for usernames with '+' (Available since oC 10.4.1) +- Chunking adaption to oCIS +- End of support for Android KitKat (4.4) +- End of support for servers older than 10 version +- Bug fixes, including: + + Fix crash when changing orientation in some operations + + Fix OAuth2 token is not renewed after being revoked + + Fix occasional crash when opening share by link + + Fix navigation loop in shared by link and Av. Offline options + +## 2.15 beta v2 (May 2020) +- Login rearchitecture +- Support for OpenId Connect +- Native biometrical lock +- UI improvements, including: + + New bottom navigation bar +- Support for usernames with '+' (Available since oC 10.4.1) +- Chunking adaption to oCIS +- End of support for Android KitKat (4.4) +- End of support for servers older than 10 version +- Bug fixes, including: + + Fix crash when changing orientation in some operations + + Fix OAuth2 token is not renewed after being revoked + +## 2.15 beta v1 (May 2020) +- Login rearchitecture +- Support for OpenId Connect +- Native biometrical lock +- UI improvements, including: + + New bottom navigation bar +- Support for usernames with '+' (Available since oC 10.4.1) +- End of support for Android KitKat (4.4) +- End of support for servers older than 10 version +- Bug fixes, including: + + Fix crash when changing orientation in some operations + + Fix OAuth2 token is not renewed after being revoked + +## 2.14.2 (January 2020) +- Fix crash triggered when trying to connect to server secured with self signed certificate + +## 2.14.1 (December 2019) +- Some improvements in wizard + +## 2.14 (December 2019) +- Splash screen +- Shortcut to shared by link files from side menu (contribution) +- Use new server parameter to set a minimum number of characters for searching users, groups or federated shares +- End of support for SAML authentication. +- UI improvements, including: + + Mix files and folders when sorting them by date (contribution) or size + + Redesign logs view with new tabs, filters and share options (contribution) + + Resize cloud image in side menu to not overlap the new side menu options +- Bug fixes, including: + + Avoid overwritten files with the same name during copy or move operations + + Retry camera uploads when recovering wifi connectivity and "Upload with wifi only" option is enabled + +## 2.13.1 (October 2019) +- Improve oAuth user experience flow and wording when token expires or becomes invalid + +## 2.13 (September 2019) +- Copy and move files from other third-party apps or internal storage to an ownCloud account through Downloads or Files app +- Save files in an ownCloud account from third-party apps +- Copy and move files within the same ownCloud account through Downloads or Files app +- Add more logs coverage to gather information about known but difficult to reproduce issues +- UI improvements, including: + + Show date and size for every file in Available Offline option from side menu + +## 2.12 (August 2019) +- Shares rearchitecture +- UI improvements, including: + + Private link accessible when share API is disabled +- Bug fixes, including: + + Fix images not detected in Android 9 gallery after being downloaded + +## 2.12 beta v1 (August 2019) +- Shares rearchitecture +- UI improvements, including: + + Private link accessible when share API is disabled +- Bug fixes, including: + + Fix images not detected in Android 9 gallery after being downloaded + +## 2.11.1 (June 2019) +- Fix crash triggered when notifying upload results + +## 2.11 (June 2019) +- Replace ownCloud file picker with the Android native one when uploading files (contribution) +- Send logs to support, enable it via new developer menu (contribution) +- Logs search (contribution) +- Shortcut to available offline files from side menu +- Document provider: files and folders rename, edition and deletion. +- Document provider: folder creation +- Document provider: multiaccount support +- UI improvements, including: + + Notch support + + Batched permission errors when deleting multiple files (contribution) +- Bug fixes, including: + + Fix just created folder disappears when synchronizing parent folder + + Fix crash when clearing successful/failed uploads (contribution) + + Fix download progress bar still visible after successful download + + Fix UI glitch in warning icon when sharing a file publicly (contribution) + + Fix crash when sharing files with ownCloud and creating new folder (contribution) + + Fix canceling dialog in settings turns on setting (contribution) + + Bring back select all and select inverse icons to the app bar (contribution) + + Fix folder with brackets [ ] does not show the content + + Fix login fails with "§" in password + +## 2.11 beta v1 (May 2019) +- Send logs to support, enable it via new developer menu (contribution) +- Logs search (contribution) +- Shortcut to available offline files from side menu +- Document provider: files and folders rename, edition and deletion. +- Document provider: folder creation +- Document provider: multiaccount support +- UI improvements, including: + + Notch support +- Bug fixes, including: + + Fix download progress bar still visible after successful download + + Fix UI glitch in warning icon when sharing a file publicly (contribution) + + Fix crash when sharing files with ownCloud and creating new folder (contribution) + + Fix canceling dialog in settings turns on setting (contribution) + + Bring back select all and select inverse icons to the app bar (contribution) + + Fix folder with brackets [ ] does not show the content + + Fix login fails with "§" in password + +## 2.10.1 (April 2019) +- Content provider improvements + +## 2.10.0 (March 2019) +- Android 9 (P) support (contribution) +- Allow light filtering apps (optional) +- Show additional info (user ID, email) when sharing with users with same display name +- Support more options to enforce password when sharing publicly +- Select all and inverse when uploading files (contribution) +- Sorting options in sharing view (contribution) +- Batched notifications for file deletions (contribution) +- Commit hash in settings (contribution) +- UI improvements, including: + + Disable log in button when credentials are empty (contribution) + + Warning to properly set camera folder in camera uploads +- Bug fixes, including: + + Some camera upload issues in Android 9 (P) (contribution) + + Fix eye icon not visible to show/hide password in public shares (contribution) + + Fix welcome wizard rotation (contribution) + +## 2.10.0 beta v1 (February 2019) +- Android 9 (P) support (contribution) +- Select all and inverse when uploading files (contribution) +- Sorting options in sharing view (contribution) +- Batched notifications for file deletions (contribution) +- Commit hash in settings (contribution) +- UI improvements, including: + + Disable log in button when credentials are empty (contribution) + + Warning to properly set camera folder in camera uploads +- Bug fixes, including: + + Some camera upload issues in Android 9 (P) (contribution) + + Fix eye icon not visible to show/hide password in public shares (contribution) + + Fix welcome wizard rotation (contribution) + +## 2.9.3 (November 2018) +- Bug fixes for users with username containing @ character + +## 2.9.2 (November 2018) +- Bug fixes for users with username containing spaces + +## 2.9.1 (November 2018) +- Bug fixes for LDAP users using uid: + + Fix login not working + + Fix empty list of files + +## 2.9.0 (November 2018) +- Search in current folder +- Select all/inverse files (contribution) +- Improve available offline files synchronization and conflict resolution (Android 5 or higher required) +- Sort files in file picker when uploading (contribution) +- Access ownCloud files from files apps, even with files not downloaded +- New login view +- Show re-shares +- Switch apache and jackrabbit deprecated network libraries to more modern and active library, OkHttp + Dav4Android +- UI improvements, including: + + Change edit share icon + + New gradient in top of the list of files (contribution) + + More accurate message when creating folders with the same name (contribution) +- Bug fixes, including: + + Fix some crashes: + - When rebooting the device + - When copying, moving files or choosing a folder within camera uploads feature + - When creating private/public link + + Fix some failing downloads + + Fix pattern lock being asked very often after disabling fingerprint lock (contribution) + +## 2.9.0 beta v2 (October 2018) +- Bug fixes, including: + + Fix some crashes: + - When rebooting the device + - When copying, moving files or choosing a folder within camera uploads feature + + Fix some failing downloads + + Fix pattern lock being asked very often after disabling fingerprint lock + +## 2.9.0 beta v1 (September 2018) +- Switch apache and jackrabbit deprecated libraries to more modern and active library, OkHttp +- Search in current folder +- Select all/inverse files +- New login view +- Show re-shares +- UI improvements, including: + + Change edit share icon + + New gradient in top of the list of files + +## 2.8.0 (July 2018) +- Side menu redesign +- User quota in side menu +- Descending option when sorting +- New downloaded/offline icons and pins +- One panel design for tablets +- Custom tabs for OAuth +- Improve public link sharing permissions for folders +- Redirect to login view when SAML session expires +- UI improvements, including: + + Fab button above snackbar + + Toggle to control password visibility when sharing via link + + Adaptive icons support (Android 8 required) +- Bug fixes, including: + + Fix block for deleted basic/oauth accounts + + Fix available offline when renaming files + + Fix camera directory not selectable in root + + Fix guest account showing an empty file list + + Hide keyboard when going back from select user view + + Fix black "downloading screen" message when downloading an image offline + + Show proper timestamp in uploads/downloads notification + + Fix sharing when disabling files versioning app in server + +## 2.8.0 beta v1 (May 2018) +- Side menu redesign +- User quota in side menu +- Descending option when sorting +- New downloaded/offline icons and pins +- One panel design for tablets +- Custom tabs for OAuth +- UI improvements, including: + + Fab button above snackbar + + Toggle to control password visibility when sharing via link +- Bug fixes, including: + + Fix block for deleted basic/oauth accounts + + Fix available offline when renaming files + + Fix camera directory not selectable in root + + Fix guest account showing an empty file list + + Hide keyboard when going back from select user view + + Fix black "downloading screen" message when downloading an image offline. + +## 2.7.0 (April 2018) +- Fingerprint lock +- Pattern lock (contribution) +- Upload picture directly from camera (contribution) +- GIF support +- New features wizard +- UI improvements, including: + + Display file size during upload (contribution) + + Animations when switching folders +- Bug fixes, including: + + Hide always visible notification in Android 8 + +## 2.7.0 beta v1 (March 2018) +- Fingerprint lock +- Pattern lock (contribution) +- Upload picture directly from camera (contribution) +- GIF support +- New features wizard +- UI improvements, including: + + Display file size during upload (contribution) +- Bug fixes, including: + + Hide always visible notification in Android 8 + +## 2.6.0 (February 2018) +- Camera uploads, replacing instant uploads (Android 5 or higher required) +- Android 8 support +- Notification channels (Android 8 required) +- Private link (OC X required) +- Fixed typos in some translations + +## 2.5.1 beta v1 (November 2017) +- Camera uploads (replacing instant uploads) +- Android O support +- Notification channels (Android O required) +- Private link (OC X required) +- Fixed typos in some translations + +## 2.5.0 (October 2017) +- OAuth2 support +- Show file listing option (anonymous upload) when sharing a folder (OC X required) +- First approach to fix instant uploads +- UI improvements, including: + + Hide share icon when resharing is forbidden + + Improve feedback when uploading infected files +- Bug fixes + +## 2.4.0 (May 2017) +- Video streaming +- Multiple public links per file (OC X required) +- Share with custom groups (OC X required) +- Automated retry of failed transfers in Android 6 and 7 +- Save shared text as new file +- File count per section in uploads view +- UI improvements, including: + + Share view update +- Bug fixes + +## 2.3.0 (March 2017) +- Included privacy policy. +- Error messages improvement. +- Design/UI improvement: snackbars replace toasts. +- Bugs fixed, including: + + Crash when other app uses same account name. + +## 2.2.0 (December 2016) +- Set folders as Available Offline +- New navigation drawer, with avatar and account switch. +- New account manager, accessible from navigation drawer. +- Set edit permissions in federated shares of folders (OC server >= 9.1) +- Monitor and revoke session from web UI (OC server >= 9.1) +- Improved look and contents of file menu. +- Bugs fixed, including: + + Keep modification time of uploaded files. + + Stop audio when file is deleted. + + Upload of big files. + +## 2.1.2 (September 2016) +- Instant uploads fixed in Android 6. + +## 2.1.1 (September 2016) +- Instant uploads work in Android 7. +- Select your camera folder to upload pictures or videos from any + camera app. +- Multi-Window support for Android 7. +- Size of folders shown in list of files. +- Sort by size your list of files. + +## 2.1.0 (August 2016) +- Select and handle multiple files +- Sync files on tap +- Access files through Documents Provider +- "Can share" option for federated shares (server 9.1+) +- Full name shown instead of user name +- New icon +- Style and sorting fixes +- Bugs fixed, including: + + Icon "available offline" shown when set + + Trim blanks of username in login view + + Protect password field from suggestions + +## 2.0.1 (June 2016) +- Favorite files are now called AVAILABLE OFFLINE +- New overlay icons +- Bugs fixed, including: + + Upload content from other apps works again + + Passwords with non-alphanumeric characters work fine + + Sending files from other apps does not duplicate them + + Favorite setting is not lost after uploading + + Instant uploads waiting for Wi-Fi are not shown as failed + +## 2.0.0 (April 2016) +- Uploads view: track the progress of your uploads and handle failures +- Federated sharing: share files with users in other ownCloud servers +- Improvements on the UI following material design lines +- Set a shared-by-link folder as editable +- Wifi-only for instant uploads stop on Wifi loss +- Be warned of server certificate changed in any action +- Improvements when other apps send files to ownCloud +- Bug fixing + +## 1.9.1 (February 2016) +- Set and edit permissions on internal shared data +- Instant uploads: avoid file duplications, set policy in app settings +- Control duplication of files uploaded via 'Upload' button +- Select view mode: either list or grid per folder +- More Material Design: buttons and checkboxes +- Fixed battery drain in automatic synchronization +- Security fixes related to passcode +- Wording fixes + +## 1.9.0 (December 2015) +- Share privately with users or groups in your server +- Share link with password protection and expiration date +- Fully sync a folder in two ways (manually) +- Detect share configuration in server +- Fingerprints in untrusted certificate dialog +- Thumbnail in details view +- OC color in notifications +- Fixed video preview +- Fixed sorting with accents +- Error shown when no app can "open with" a file +- Fixed relative date in some languages +- Media scanner triggered after uploads + +## 1.8.0 (September 2015) +- New MATERIAL DESIGN theme +- Updated FILE TYPE ICONS +- Preview TXT files within the app +- COPY files & folders +- Preview the full file/folder name from the long press menu +- Set a file as FAVORITE (kept-in-sync) from the CONTEXT MENU +- Updated CONFLICT RESOLUTION dialog (wording) +- Updated background for images with TRANSPARENCY in GALLERY +- Hidden files will not enforce list view instead of GRID VIEW (folders from Picasa & others) +- Security: + + Updated network stack with security fixes (Jackrabbit 2.10.1) +- Bugs fixed: + + Fixed crash when ETag is lost + + Passcode creation not restarted on device rotation + + Recovered share icon shown on folders 'shared with me' + + User name added to subject when sending a share link through e-mail (fixed on SAMLed apps) + +## 1.7.2 (July 2015) +- New navigation drawer +- Improved Passcode +- Automatic grid view just for folders full of images +- More characters allowed in file names +- Support for servers in same domain, different path +- Bugs fixed: + + Frequent crashes in folder with several images + + Sync error in servers with huge quota and external storage enable + + Share by link error + + Some other crashes and minor bugs + +## 1.7.1 (April 2015) + +- Share link even with password enforced by server +- Get the app ready for oc 8.1 servers +- Added option to create new folder in uploads from external apps +- Improved management of deleted users +- Bugs fixed + + Fixed crash on Android 2.x devices + + Improvements on uploads + +## 1.7.0 (February 2015) + +- Download full folders +- Grid view for images +- Remote thumbnails (OC Server 8.0+) +- Added number of files and folders at the end of the list +- "Open with" in contextual menu +- Downloads added to Media Provider +- Uploads: + + Local thumbnails in section "Files" + + Multiple selection in "Content from other apps" (Android 4.3+) +- Gallery: + + proper handling of EXIF + + obey sorting in the list of files +- Settings view updated +- Improved subjects in e-mails +- Bugs fixed diff --git a/changelog/README.md b/changelog/README.md new file mode 100644 index 00000000000..1e122f7315c --- /dev/null +++ b/changelog/README.md @@ -0,0 +1,17 @@ +# Changelog + +We are using [calens](https://github.com/restic/calens) to properly generate a +changelog before we are tagging a new release. + +## Create Changelog items +Create a file according to the [template](TEMPLATE.md) for each +feature, fix, change... in the [unreleased](./unreleased) folder. The file should be named after +the # of the merged PR it is describing. The following change types are possible: `Bugfix, Change, Enhancement, Security`. + +## Automated Changelog build and commit +- After each merge to master, the CHANGELOG.md file is automatically updated and the new version will be committed to master while skipping CI. + +## Create a new Release +- Copy the files from the [unreleased](./unreleased) folder into a folder matching the schema `0.3.0_2020-01-10` + + diff --git a/changelog/TEMPLATE.md b/changelog/TEMPLATE.md new file mode 100644 index 00000000000..f010762f447 --- /dev/null +++ b/changelog/TEMPLATE.md @@ -0,0 +1,33 @@ +``` +Bugfix/Change/Enhancement/Security: Title (Present tense - Max length: 80 chars) + +Description of the new bugfix, change or feature (Present perfect passive tense) + +https://github.com/owncloud/android/issues/ +https://github.com/owncloud/android/pull/ +``` + +*Note: The last section is a list of issue URLs, PR URLs and other URLs. The first issue ID (or the first PR ID, in case there aren't any issue links) is used as the primary ID.* + +## Examples + +``` +Bugfix: Side menu collapses info in landscape + +Two empty and visual items have been added to prevent the drawer from collapsing in landscape mode. + +https://github.com/owncloud/android/issues/4513 +https://github.com/owncloud/android/pull/4580 +``` + +``` +Enhancement: Create a new space + +A new floating action button has been added to the spaces list, visible only to users with right permissions. +In addition, a new dialog for space creation has been implemented and, it is shown when the floating action button is tapped. + +https://github.com/owncloud/android/issues/4606 +https://github.com/owncloud/android/issues/4688 +https://github.com/owncloud/android/pull/4683 +https://github.com/owncloud/android/pull/4694 +``` diff --git a/changelog/unreleased/4708 b/changelog/unreleased/4708 new file mode 100644 index 00000000000..8a036669811 --- /dev/null +++ b/changelog/unreleased/4708 @@ -0,0 +1,7 @@ +Enhancement: Set emoji as space image + +A new option to set an emoji as space image has been added to the bottom sheet, available +only to users with the required permissions when the three-dot menu button is tapped. + +https://github.com/owncloud/android/issues/4707 +https://github.com/owncloud/android/pull/4708 diff --git a/changelog/unreleased/4722 b/changelog/unreleased/4722 new file mode 100644 index 00000000000..7fe78a4a3c7 --- /dev/null +++ b/changelog/unreleased/4722 @@ -0,0 +1,6 @@ +Change: Migrate tests to the new kotlinx-coroutines-test API + +Some tests from view model classes have been refactored in order to use the new kotlinx-coroutines-test API. + +https://github.com/owncloud/android/issues/4710 +https://github.com/owncloud/android/pull/4722 diff --git a/changelog/unreleased/4728 b/changelog/unreleased/4728 new file mode 100644 index 00000000000..ee1d036f6a3 --- /dev/null +++ b/changelog/unreleased/4728 @@ -0,0 +1,9 @@ +Enhancement: Show members of a space + +A new option to view all members of a space has been added to the bottom sheet, available when the three-dot menu button is tapped. +This new option opens a new view that shows information like member names, roles, and expiration dates (if available). + +https://github.com/owncloud/android/issues/4612 +https://github.com/owncloud/android/issues/4763 +https://github.com/owncloud/android/pull/4728 +https://github.com/owncloud/android/pull/4765 diff --git a/changelog/unreleased/4744 b/changelog/unreleased/4744 new file mode 100644 index 00000000000..3c013bb1786 --- /dev/null +++ b/changelog/unreleased/4744 @@ -0,0 +1,5 @@ +Change: Increase rating dialog delay + +The time before the rating dialog appears has been increased to 7 days, in order to make it less intrusive for the user. + +https://github.com/owncloud/android/pull/4744 diff --git a/changelog/unreleased/4750 b/changelog/unreleased/4750 new file mode 100644 index 00000000000..c987f6d98b0 --- /dev/null +++ b/changelog/unreleased/4750 @@ -0,0 +1,6 @@ +Bugfix: Edit space option available when there is no connection + +A new condition has been added to hide the edit space option when no network connection is available. + +https://github.com/owncloud/android/issues/4742 +https://github.com/owncloud/android/pull/4750 diff --git a/changelog/unreleased/4751 b/changelog/unreleased/4751 new file mode 100644 index 00000000000..d12b44415fc --- /dev/null +++ b/changelog/unreleased/4751 @@ -0,0 +1,5 @@ +Enhancement: Workflow to build APK + +A new workflow to build unsigned APKs has been added, using variant and version as inputs and generating the artifact and commit hash as outputs. + +https://github.com/owncloud/android/pull/4751 diff --git a/changelog/unreleased/4754 b/changelog/unreleased/4754 new file mode 100644 index 00000000000..0cccde0cee4 --- /dev/null +++ b/changelog/unreleased/4754 @@ -0,0 +1,8 @@ +Enhancement: Add a member to a space + +A new option to add members to a space has been added. It will be only visible for users with proper permissions. + +https://github.com/owncloud/android/issues/4613 +https://github.com/owncloud/android/issues/4740 +https://github.com/owncloud/android/pull/4754 +https://github.com/owncloud/android/pull/4764 diff --git a/changelog/unreleased/4759 b/changelog/unreleased/4759 new file mode 100644 index 00000000000..e6880b66c78 --- /dev/null +++ b/changelog/unreleased/4759 @@ -0,0 +1,5 @@ +Enhancement: Workflow to check Conventional Commits + +A new workflow has been added to check that commit names in a PR fits the Conventional Commits convention. + +https://github.com/owncloud/android/pull/4759 diff --git a/changelog/unreleased/4768 b/changelog/unreleased/4768 new file mode 100644 index 00000000000..4667a44717a --- /dev/null +++ b/changelog/unreleased/4768 @@ -0,0 +1,6 @@ +Enhancement: Remove a space member + +A new option to remove members from a space has been added. It will be only visible for users with proper permissions. + +https://github.com/owncloud/android/issues/4725 +https://github.com/owncloud/android/pull/4768 diff --git a/check_code_script.sh b/check_code_script.sh new file mode 100755 index 00000000000..414cebbc4a2 --- /dev/null +++ b/check_code_script.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +check_license_in_file() { + if ! head -n 20 $FILE | grep -q "This program is free software: you can redistribute it and/or modify" + then + if ! head -n 20 $FILE | grep -q "Licensed under the Apache License, Version 2.0" + then + echo "$FILE does not contain a current copyright header" + fi + fi +} + + +for DIRS in owncloudApp/src owncloudData/src owncloudDomain/src owncloudTestUtil/src +do + for FILE in $(find $DIRS -name "*.java" -o -name "*.kt") + do + check_license_in_file + done +done + +./gradlew ktlintFormat diff --git a/config/detekt/detekt.yml b/config/detekt/detekt.yml new file mode 100644 index 00000000000..07ec58ebdf4 --- /dev/null +++ b/config/detekt/detekt.yml @@ -0,0 +1,926 @@ +build: + maxIssues: 0 + excludeCorrectable: false + weights: + # complexity: 2 + # LongParameterList: 1 + # style: 1 + # comments: 1 + +config: + validation: true + warningsAsErrors: false + # when writing own rules with new properties, exclude the property path e.g.: 'my_rule_set,.*>.*>[my_property]' + excludes: '' + +processors: + active: true + exclude: + - 'DetektProgressListener' + # - 'KtFileCountProcessor' + # - 'PackageCountProcessor' + # - 'ClassCountProcessor' + # - 'FunctionCountProcessor' + # - 'PropertyCountProcessor' + # - 'ProjectComplexityProcessor' + # - 'ProjectCognitiveComplexityProcessor' + # - 'ProjectLLOCProcessor' + # - 'ProjectCLOCProcessor' + # - 'ProjectLOCProcessor' + # - 'ProjectSLOCProcessor' + # - 'LicenseHeaderLoaderExtension' + +console-reports: + active: true + exclude: + - 'ProjectStatisticsReport' + - 'ComplexityReport' + - 'NotificationReport' + - 'FindingsReport' + - 'FileBasedFindingsReport' + # - 'LiteFindingsReport' + +output-reports: + active: true + exclude: + # - 'TxtOutputReport' + # - 'XmlOutputReport' + # - 'HtmlOutputReport' + +comments: + active: false + AbsentOrWrongFileLicense: + active: false + licenseTemplateFile: 'license.template' + licenseTemplateIsRegex: false + CommentOverPrivateFunction: + active: false + CommentOverPrivateProperty: + active: false + DeprecatedBlockTag: + active: false + EndOfSentenceFormat: + active: false + endOfSentenceFormat: '([.?!][ \t\n\r\f<])|([.?!:]$)' + KDocReferencesNonPublicProperty: + active: false + OutdatedDocumentation: + active: false + matchTypeParameters: true + matchDeclarationsOrder: true + allowParamOnConstructorProperties: false + UndocumentedPublicClass: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + searchInNestedClass: true + searchInInnerClass: true + searchInInnerObject: true + searchInInnerInterface: true + UndocumentedPublicFunction: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + UndocumentedPublicProperty: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + +complexity: + active: true + CognitiveComplexMethod: + active: false + threshold: 20 + ComplexCondition: + active: true + threshold: 6 + ComplexInterface: + active: false + threshold: 10 + includeStaticDeclarations: false + includePrivateDeclarations: false + CyclomaticComplexMethod: + active: false + threshold: 15 + ignoreSingleWhenExpression: false + ignoreSimpleWhenEntries: false + ignoreNestingFunctions: false + nestingFunctions: + - 'also' + - 'apply' + - 'forEach' + - 'isNotNull' + - 'ifNull' + - 'let' + - 'run' + - 'use' + - 'with' + LabeledExpression: + active: false + ignoredLabels: [] + LargeClass: + active: false + threshold: 600 + LongMethod: + active: true + threshold: 100 + LongParameterList: + active: false + functionThreshold: 6 + constructorThreshold: 7 + ignoreDefaultParameters: false + ignoreDataClasses: true + ignoreAnnotatedParameter: [] + MethodOverloading: + active: true + threshold: 6 + NamedArguments: + active: false + threshold: 3 + ignoreArgumentsMatchingNames: false + NestedBlockDepth: + active: false + threshold: 5 + NestedScopeFunctions: + active: false + threshold: 1 + functions: ['kotlin.apply', 'kotlin.run', 'kotlin.with', 'kotlin.let', 'kotlin.also'] + ReplaceSafeCallChainWithRun: + active: false + StringLiteralDuplication: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + threshold: 3 + ignoreAnnotation: true + excludeStringsWithLessThan5Characters: true + ignoreStringsRegex: '$^' + TooManyFunctions: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + thresholdInFiles: 11 + thresholdInClasses: 11 + thresholdInInterfaces: 11 + thresholdInObjects: 11 + thresholdInEnums: 11 + ignoreDeprecated: false + ignorePrivate: false + ignoreOverridden: false + +coroutines: + active: true + GlobalCoroutineUsage: + active: true + InjectDispatcher: + active: false + dispatcherNames: + - 'IO' + - 'Default' + - 'Unconfined' + RedundantSuspendModifier: + active: true + SleepInsteadOfDelay: + active: true + SuspendFunWithCoroutineScopeReceiver: + active: true + SuspendFunWithFlowReturnType: + active: true + +empty-blocks: + active: true + EmptyCatchBlock: + active: true + allowedExceptionNameRegex: '_|(ignore|expected).*' + EmptyClassBlock: + active: true + EmptyDefaultConstructor: + active: true + EmptyDoWhileBlock: + active: true + EmptyElseBlock: + active: true + EmptyFinallyBlock: + active: true + EmptyForBlock: + active: true + EmptyFunctionBlock: + active: true + ignoreOverridden: true + EmptyIfBlock: + active: true + EmptyInitBlock: + active: true + EmptyKtFile: + active: true + EmptySecondaryConstructor: + active: true + EmptyTryBlock: + active: true + EmptyWhenBlock: + active: true + EmptyWhileBlock: + active: true + +exceptions: + active: true + ExceptionRaisedInUnexpectedLocation: + active: false + methodNames: + - 'equals' + - 'finalize' + - 'hashCode' + - 'toString' + InstanceOfCheckForException: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + NotImplementedDeclaration: + active: true + ObjectExtendsThrowable: + active: true + PrintStackTrace: + active: true + RethrowCaughtException: + active: true + ReturnFromFinally: + active: true + ignoreLabeled: false + SwallowedException: + active: true + ignoredExceptionTypes: + - 'InterruptedException' + - 'MalformedURLException' + - 'NumberFormatException' + - 'ParseException' + allowedExceptionNameRegex: '_|(ignore|expected).*' + ThrowingExceptionFromFinally: + active: true + ThrowingExceptionInMain: + active: false + ThrowingExceptionsWithoutMessageOrCause: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + exceptions: + - 'ArrayIndexOutOfBoundsException' + - 'Exception' + - 'IllegalArgumentException' + - 'IllegalMonitorStateException' + - 'IllegalStateException' + - 'IndexOutOfBoundsException' + - 'NullPointerException' + - 'RuntimeException' + - 'Throwable' + ThrowingNewInstanceOfSameException: + active: true + TooGenericExceptionCaught: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + exceptionNames: + - 'ArrayIndexOutOfBoundsException' + - 'Error' + - 'Exception' + - 'IllegalMonitorStateException' + - 'IndexOutOfBoundsException' + - 'NullPointerException' + - 'RuntimeException' + - 'Throwable' + allowedExceptionNameRegex: '_|(ignore|expected).*' + TooGenericExceptionThrown: + active: false + exceptionNames: + - 'Error' + - 'Exception' + - 'RuntimeException' + - 'Throwable' + +formatting: + active: false + AnnotationOnSeparateLine: + active: true + indentSize: 4 + AnnotationSpacing: + active: true + ArgumentListWrapping: + active: true + indentSize: 4 + maxLineLength: 120 + BlockCommentInitialStarAlignment: + active: true + ChainWrapping: + active: true + indentSize: 4 + ClassName: + active: false + CommentSpacing: + active: true + CommentWrapping: + active: true + indentSize: 4 + ContentReceiverMapping: + active: false + maxLineLength: 120 + indentSize: 4 + DiscouragedCommentLocation: + active: false + EnumEntryNameCase: + active: true + EnumWrapping: + active: false + intentSize: 4 + Filename: + active: true + FinalNewline: + active: true + insertFinalNewLine: true + FunKeywordSpacing: + active: true + FunctionName: + active: false + FunctionReturnTypeSpacing: + active: true + maxLineLength: 120 + FunctionSignature: + active: false + forceMultilineWhenParameterCountGreaterOrEqualThan: 2147483647 + functionBodyExpressionWrapping: 'default' + maxLineLength: 120 + indentSize: 4 + FunctionStartOfBodySpacing: + active: true + FunctionTypeReferenceSpacing: + active: true + IfElseBracing: + active: false + IfElseWrapping: + active: false + indentSize: 4 + ImportOrdering: + active: true + layout: '*,java.**,javax.**,kotlin.**,^' + Indentation: + active: true + indentSize: 4 + KdocWrapping: + active: true + indentSize: 4 + MaximumLineLength: + active: true + maxLineLength: 120 + ignoreBackTickedIdentifier: false + ModifierListSpacing: + active: true + MultiLineIfElse: + active: true + indentSize: 4 + MultilineExpressionWrapping: + active: false + indentSize: 4 + NoBlankLineBeforeRbrace: + active: true + NoBlankLineInList: + active: false + NoBlankLinesInChainedMethodCalls: + active: true + NoConsecutiveBlankLines: + active: true + NoConsecutiveComments: + active: false + NoEmptyClassBody: + active: true + NoEmptyFirstLineInClassBody: + active: false + indentSize: 4 + NoEmptyFirstLineInMethodBlock: + active: true + NoLineBreakAfterElse: + active: true + NoLineBreakBeforeAssignment: + active: true + NoMultipleSpaces: + active: true + NoSemicolons: + active: true + NoSingleLineBlockComment: + active: false + indentSize: 4 + NoTrailingSpaces: + active: true + NoUnitReturn: + active: true + NoUnusedImports: + active: true + NoWildcardImports: + active: true + packagesToUseImportOnDemandProperty: 'java.util.*,kotlinx.android.synthetic.**' + NullableTypeSpacing: + active: true + PackageName: + active: true + ParameterListSpacing: + active: false + ParameterListWrapping: + active: true + maxLineLength: 120 + indentSize: 4 + ParameterWrapping: + active: true + indentSize: 4 + MaxLineLength: 120 + PropertyName: + active: false + PropertyWrapping: + active: true + indentSize: 4 + maxLineLength: 120 + SpacingAroundAngleBrackets: + active: true + SpacingAroundColon: + active: true + SpacingAroundComma: + active: true + SpacingAroundCurly: + active: true + SpacingAroundDot: + active: true + SpacingAroundDoubleColon: + active: true + SpacingAroundKeyword: + active: true + SpacingAroundOperators: + active: true + SpacingAroundParens: + active: true + SpacingAroundRangeOperator: + active: true + SpacingAroundUnaryOperator: + active: true + SpacingBetweenDeclarationsWithAnnotations: + active: true + SpacingBetweenDeclarationsWithComments: + active: true + SpacingBetweenFunctionNameAndOpeningParenthesis: + active: true + StringTemplate: + active: true + StringTemplateIndent: + active: false + indentSize: 4 + TrailingCommaOnCallSite: + active: false + useTrailingCommaOnCallSite: true + TrailingCommaOnDeclarationSite: + active: false + useTrailingCommaOnDeclarationSite: true + TryCatchFinallySpacing: + active: false + indentSize: 4 + TypeArgumentListSpacing: + active: false + indentSize: 4 + TypeParameterListSpacing: + active: false + indentSize: 4 + UnnecessaryParenthesesBeforeTrailingLambda: + active: true + Wrapping: + active: true + indentSize: 4 + maxLineLength: 120 + +libraries: + active: false + ForbiddenPublicDataClass: + active: true + ignorePackages: ['*.internal', '*.internal.*'] + LibraryCodeMustSpecifyReturnType: + active: true + allowOmitUnit: false + LibraryEntitiesShouldNotBePublic: + active: true + +naming: + active: true + BooleanPropertyNaming: + active: false + allowedPattern: '^(is|has|are)' + ClassNaming: + active: true + classPattern: '[A-Z][a-zA-Z0-9]*' + ConstructorParameterNaming: + active: true + parameterPattern: '[a-z][A-Za-z0-9]*' + privateParameterPattern: '[a-z][A-Za-z0-9]*' + excludeClassPattern: '$^' + EnumNaming: + active: true + enumEntryPattern: '[A-Z][_a-zA-Z0-9]*' + ForbiddenClassName: + active: false + forbiddenName: [] + FunctionMaxLength: + active: false + maximumFunctionNameLength: 30 + FunctionMinLength: + active: false + minimumFunctionNameLength: 3 + FunctionNaming: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + functionPattern: '[a-z][a-zA-Z0-9]*' + excludeClassPattern: '$^' + FunctionParameterNaming: + active: true + parameterPattern: '[a-z][A-Za-z0-9]*' + excludeClassPattern: '$^' + InvalidPackageDeclaration: + active: true + rootPackage: '' + requireRootInDeclaration: false + LambdaParameterNaming: + active: true + parameterPattern: '[a-z][A-Za-z0-9]*|_' + MatchingDeclarationName: + active: true + mustBeFirst: false + MemberNameEqualsClassName: + active: true + ignoreOverridden: true + NoNameShadowing: + active: true + NonBooleanPropertyPrefixedWithIs: + active: false + ObjectPropertyNaming: + active: true + constantPattern: '[A-Za-z][_A-Za-z0-9]*' + propertyPattern: '[A-Za-z][_A-Za-z0-9]*' + privatePropertyPattern: '(_)?[A-Za-z][_A-Za-z0-9]*' + PackageNaming: + active: true + packagePattern: '[a-z]+(\.[a-z][A-Za-z0-9]*)*' + TopLevelPropertyNaming: + active: true + constantPattern: '[A-Z][_A-Z0-9]*' + propertyPattern: '[A-Za-z][_A-Za-z0-9]*' + privatePropertyPattern: '_?[A-Za-z][_A-Za-z0-9]*' + VariableMaxLength: + active: false + maximumVariableNameLength: 64 + VariableMinLength: + active: false + minimumVariableNameLength: 1 + VariableNaming: + active: true + variablePattern: '[a-z][A-Za-z0-9]*' + privateVariablePattern: '(_)?[a-z][A-Za-z0-9]*' + excludeClassPattern: '$^' + +performance: + active: true + ArrayPrimitive: + active: true + CouldBeSequence: + active: false + threshold: 3 + ForEachOnRange: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + SpreadOperator: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + UnnecessaryPartOfBinaryExpression: + active: true + UnnecessaryTemporaryInstantiation: + active: true + +potential-bugs: + active: true + AvoidReferentialEquality: + active: true + forbiddenTypePatterns: + - 'kotlin.String' + CastNullableToNonNullableType: + active: true + CastToNullableType: + active: false + Deprecation: + active: false + DontDowncastCollectionTypes: + active: true + DoubleMutabilityForCollection: + active: true + mutableTypes: + - 'kotlin.collections.MutableList' + - 'kotlin.collections.MutableMap' + - 'kotlin.collections.MutableSet' + - 'java.util.ArrayList' + - 'java.util.LinkedHashSet' + - 'java.util.HashSet' + - 'java.util.LinkedHashMap' + - 'java.util.HashMap' + ElseCaseInsteadOfExhaustiveWhen: + active: true + ignoredSubjectTypes: [] + EqualsAlwaysReturnsTrueOrFalse: + active: true + EqualsWithHashCodeExist: + active: true + ExitOutsideMain: + active: true + ExplicitGarbageCollectionCall: + active: true + HasPlatformType: + active: true + IgnoredReturnValue: + active: false + restrictToConfig: true + returnValueAnnotations: + - '*.CheckResult' + - '*.CheckReturnValue' + ignoreReturnValueAnnotations: + - '*.CanIgnoreReturnValue' + ignoreFunctionCall: [] + ImplicitDefaultLocale: + active: true + ImplicitUnitReturnType: + active: true + allowExplicitReturnType: false + InvalidRange: + active: true + IteratorHasNextCallsNextMethod: + active: true + IteratorNotThrowingNoSuchElementException: + active: true + LateinitUsage: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + ignoreOnClassesPattern: '' + MapGetWithNotNullAssertionOperator: + active: true + MissingPackageDeclaration: + active: true + NullCheckOnMutableProperty: + active: false + NullableToStringCall: + active: true + PropertyUsedBeforeDeclaration: + active: true + UnconditionalJumpStatementInLoop: + active: true + UnnecessaryNotNullCheck: + active: true + UnnecessaryNotNullOperator: + active: true + UnnecessarySafeCall: + active: true + UnreachableCatchBlock: + active: true + UnreachableCode: + active: true + UnsafeCallOnNullableType: + active: false + UnsafeCast: + active: true + UnusedUnaryOperator: + active: true + UselessPostfixExpression: + active: true + WrongEqualsTypeParameter: + active: true + +style: + active: true + AlsoCouldBeApply: + active: true + BracesOnIfStatements: + active: true + singleLine: 'consistent' + multiLine: 'consistent' + BracesOnWhenStatements: + active: true + singleLine: 'consistent' + multiLine: 'consistent' + CanBeNonNullable: + active: true + CascadingCallWrapping: + active: false + includeElvis: true + ClassOrdering: + active: true + CollapsibleIfStatements: + active: true + DataClassContainsFunctions: + active: false + allowOperators: false + conversionFunctionPrefix: ['to'] + DataClassShouldBeImmutable: + active: false + DestructuringDeclarationWithTooManyEntries: + active: false + maxDestructuringEntries: 3 + DoubleNegativeLambda: + active: true + negativeFunctions: ['takeUnless', 'none'] + negativeFunctionNameParts: ['not', 'non'] + EqualsNullCall: + active: true + EqualsOnSignatureLine: + active: true + ExplicitCollectionElementAccessMethod: + active: true + ExplicitItLambdaParameter: + active: true + ExpressionBodySyntax: + active: true + includeLineWrapping: true + ForbiddenAnnotation: + active: false + annotations: ['java.lang.SuppressWarnings', 'java.lang.Deprecated', 'java.lang.annotation.Documented', 'java.lang.annotation.Target', 'java.lang.annotation.Retention', 'java.lang.annotation.Repeatable', 'java.lang.annotation.Inherited'] + ForbiddenComment: + active: true + allowedPatterns: '' + comments: ['FIXME:', 'STOPSHIP:', 'TODO:'] + ForbiddenImport: + active: false + imports: [] + forbiddenPatterns: '' + ForbiddenMethodCall: + active: true + methods: ['kotlin.io.print', 'kotlin.io.println'] + ForbiddenSuppress: + active: false + rules: [] + ForbiddenVoid: + active: true + ignoreOverridden: false + ignoreUsageInGenerics: false + FunctionOnlyReturningConstant: + active: true + ignoreOverridableFunction: true + ignoreActualFunction: true + excludedFunctions: [] + LoopWithTooManyJumpStatements: + active: false + maxJumpCount: 1 + MagicNumber: + active: false + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + ignoreNumbers: + - '-1' + - '0' + - '1' + - '2' + ignoreHashCodeFunction: true + ignorePropertyDeclaration: false + ignoreLocalVariableDeclaration: false + ignoreConstantDeclaration: true + ignoreCompanionObjectPropertyDeclaration: true + ignoreAnnotation: false + ignoreNamedArgument: true + ignoreEnums: false + ignoreRanges: false + ignoreExtensionFunctions: true + MandatoryBracesLoops: + active: true + MaxLineLength: + active: true + maxLineLength: 150 + excludePackageStatements: true + excludeImportStatements: true + excludeCommentStatements: false + MayBeConst: + active: true + ModifierOrder: + active: true + MultilineLambdaItParameter: + active: false + MultilineRawStringIndentation: + active: false + indentSize: 4 + trimmingMethods: ['trimIndent', 'trimMargin'] + NestedClassesVisibility: + active: true + NewLineAtEndOfFile: + active: true + NoTabs: + active: false + NullableBooleanCheck: + active: true + ObjectLiteralToLambda: + active: true + OptionalAbstractKeyword: + active: true + OptionalUnit: + active: true + PreferToOverPairSyntax: + active: true + ProtectedMemberInFinalClass: + active: true + RedundantExplicitType: + active: true + RedundantHigherOrderMapUsage: + active: true + RedundantVisibilityModifierRule: + active: true + ReturnCount: + active: false + max: 2 + excludedFunctions: ['equals'] + excludeLabeled: false + excludeReturnFromLambda: true + excludeGuardClauses: false + SafeCast: + active: true + SerialVersionUIDInSerializableClass: + active: true + SpacingBetweenPackageAndImports: + active: true + StringShouldBeRawString: + active: false + maxEscapedCharacterCount: 2 + ignoredCharacters: [] + ThrowsCount: + active: false + max: 2 + excludeGuardClauses: false + TrailingWhitespace: + active: true + TrimMultilineRawString: + active: false + trimmingMethods: ['trimIndent', 'trimMargin'] + UnderscoresInNumericLiterals: + active: false + acceptableLength: 4 + allowNonStandardGrouping: false + UnnecessaryAbstractClass: + active: true + UnnecessaryAnnotationUseSiteTarget: + active: false + UnnecessaryApply: + active: true + UnnecessaryBackticks: + active: false + UnnecessaryBracesAroundTrailingLambda: + active: true + UnnecessaryFilter: + active: true + UnnecessaryInheritance: + active: true + UnnecessaryInnerClass: + active: true + UnnecessaryLet: + active: true + UnnecessaryParentheses: + active: false + allowForUnclearPrecedence: true + UntilInsteadOfRangeTo: + active: true + UnusedImports: + active: true + UnusedParameter: + active: true + allowedNames: 'ignored|expected' + UnusedPrivateClass: + active: true + UnusedPrivateMember: + active: true + allowedNames: '(_|ignored|expected|serialVersionUID)' + UnusedPrivateProperty: + active: true + allowedNames: '_|ignored|expected|serialVersionUID' + UseAnyOrNoneInsteadOfFind: + active: true + UseArrayLiteralsInAnnotations: + active: true + UseCheckNotNull: + active: false + UseCheckOrError: + active: false + UseDataClass: + active: true + allowVars: true + UseEmptyCounterpart: + active: true + UseIfEmptyOrIfBlank: + active: true + UseIfInsteadOfWhen: + active: true + ignoreWhenContainingVariableDeclaration: false + UseIsNullOrEmpty: + active: true + UseLet: + active: true + UseOrEmpty: + active: true + UseRequire: + active: false + UseRequireNotNull: + active: false + UseSumOfInsteadOfFlatMapSize: + active: false + UselessCallOnNotNull: + active: true + UtilityClassWithPublicConstructor: + active: true + VarCouldBeVal: + active: true + ignoreLateinitVar: false + WildcardImport: + active: true + excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**'] + excludeImports: + - 'java.util.*' diff --git a/dependencies.txt b/dependencies.txt new file mode 100644 index 00000000000..5bdf68c0c55 --- /dev/null +++ b/dependencies.txt @@ -0,0 +1,12 @@ + +Welcome to Gradle 7.5! + +Here are the highlights of this release: + - Support for Java 18 + - Support for building with Groovy 4 + - Much more responsive continuous builds + - Improved diagnostics for dependency resolution + +For more details see https://docs.gradle.org/7.5/release-notes.html + +Starting a Gradle Daemon (subsequent builds will be faster) diff --git a/doc/icon-hires.png b/doc/icon-hires.png new file mode 100644 index 00000000000..d5f6930e1be Binary files /dev/null and b/doc/icon-hires.png differ diff --git a/doc/icon-playstore.png b/doc/icon-playstore.png new file mode 100644 index 00000000000..accd7c8b083 Binary files /dev/null and b/doc/icon-playstore.png differ diff --git a/doc/icon.svg b/doc/icon.svg new file mode 100644 index 00000000000..844660a4409 --- /dev/null +++ b/doc/icon.svg @@ -0,0 +1,73 @@ + +image/svg+xml \ No newline at end of file diff --git a/docs_resources/detail_view_device.png b/docs_resources/detail_view_device.png new file mode 100644 index 00000000000..5f327cf02fb Binary files /dev/null and b/docs_resources/detail_view_device.png differ diff --git a/docs_resources/filelist_device.png b/docs_resources/filelist_device.png new file mode 100644 index 00000000000..cb61ca1381b Binary files /dev/null and b/docs_resources/filelist_device.png differ diff --git a/docs_resources/out_of_date_branch.png b/docs_resources/out_of_date_branch.png new file mode 100644 index 00000000000..297b9edaecd Binary files /dev/null and b/docs_resources/out_of_date_branch.png differ diff --git a/docs_resources/photos_device.png b/docs_resources/photos_device.png new file mode 100644 index 00000000000..2e5ec6b03d4 Binary files /dev/null and b/docs_resources/photos_device.png differ diff --git a/docs_resources/share_device.png b/docs_resources/share_device.png new file mode 100644 index 00000000000..13e43eeeb4c Binary files /dev/null and b/docs_resources/share_device.png differ diff --git a/docs_resources/spaces_device.png b/docs_resources/spaces_device.png new file mode 100644 index 00000000000..af27002c702 Binary files /dev/null and b/docs_resources/spaces_device.png differ diff --git a/fastlane/metadata/android/de-DE/full_description.txt b/fastlane/metadata/android/de-DE/full_description.txt new file mode 100644 index 00000000000..c671deacee8 --- /dev/null +++ b/fastlane/metadata/android/de-DE/full_description.txt @@ -0,0 +1,13 @@ +Willkommen bei der ownCloud Android App – Zusammen mit einem ownCloud Server haben Sie in wenigen Minuten Ihre private Filesync und –share Cloud. + +Sie suchen eine private Filesync und –share Software? Gute Neuigkeiten, die ownCloud Android App erlaubt es Ihnen Android Geräte mit einem privaten ownCloud Server in Ihrem Datenzentrum zu verbinden. ownCloud ist eine Open Source Filesync und –share Software für jedermann, von Privatpersonen mit kostenfreiem ownCloud Server bis hin zu Großunternehmen und Service Providern mit der ownCloud Enterprise Edition. ownCloud bietet eine sichere und flexible Filesync und –share Lösung – auf Servern die Sie kontrollieren. + +Mit der ownCloud Android App können Sie alle in ownCloud synchronisierten Dateien durchsuchen, neue Dateien erstellen und bearbeiten, diese Dateien und Ordner mit Kollegen teilen und die Inhalte dieser Ordner über alle Ihre Geräte hinweg synchron halten. Kopieren Sie einfach eine Datei in ein Verzeichnis auf Ihrem Server, ownCloud übernimmt für Sie den Rest. + +ownCloud bietet die Möglichkeit die richtigen Dateien zur richtigen Zeit in die richtigen Hände zu geben, gleich ob Sie ein Mobilgerät, den Desktop oder Web Client verwenden. Auf jedem Gerät und in einer leicht bedienbaren, sicheren, privaten und kontrollierten Lösung. + +Falls Sie Probleme haben sich mit dem ownCloud Server zu verbinden oder mit diesem zu synchronisieren kontaktieren Sie uns bitte auf https://github.com/owncloud/android/issues (englisch). Oftmals ist auch bereits eine Lösung in unserem Forum zu finden: https://central.owncloud.org (deutsch & englisch) + +Besuchen Sie uns unter www.ownCloud.com für weitere Informationen zu ownCloud und den ownCloud Subscriptions. Für mehr Informationen zur freien Open Source Software ownCloud Server besuchen Sie bitte www.owncloud.org . + +***Falls es zu Log-In Problemen nach einem Update kommt und Sie die ownCloud Workaround App auf Ihrem Gerät installiert haben versuchen Sie bitte die Workaround App zu deinstallieren und anschließend neu zu installieren*** diff --git a/fastlane/metadata/android/de-DE/short_description.txt b/fastlane/metadata/android/de-DE/short_description.txt new file mode 100644 index 00000000000..753cf71abb1 --- /dev/null +++ b/fastlane/metadata/android/de-DE/short_description.txt @@ -0,0 +1 @@ +Client zum Synchronisieren von Daten 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 00000000000..4cece333475 --- /dev/null +++ b/fastlane/metadata/android/en-US/full_description.txt @@ -0,0 +1,13 @@ +Welcome to the ownCloud Android App – Add an ownCloud server, and have your private file sync and share cloud up and running in no time. + +Do you need private file sync and share software? Then good news, because the ownCloud Android App enables you to connect Android devices to a private ownCloud Server running in your data center. ownCloud is open source file sync and share software for everyone from individuals operating the free ownCloud server, to large enterprises and service providers operating under the ownCloud Enterprise Subscription. ownCloud provides a safe, secure and compliant file sync and share solution – on servers you control. + +With the ownCloud Android App you can browse all of your ownCloud synced files, create and edit new files, share these files and folders with co-workers, and keep the contents of those folders in sync across all of your devices. Simply copy a file into a directory on your server and ownCloud does the rest. + +Whether using a mobile device, a desktop, or the web client, ownCloud provides the ability to put the right files in the right hands at the right time on any device in one simple-to-use, secure, private and controlled solution. After all, with ownCloud, it’s Your Cloud, Your Data, Your Way. + +Should you have any problem connecting or synchronizing with your ownCloud server, please contact us on https://github.com/owncloud/android/issues or check https://central.owncloud.org. + +Visit us at www.ownCloud.com for more information about ownCloud and the ownCloud Subscriptions. For more information on the free and open source ownCloud Server, visit www.ownCloud.org. + +*** If you are experiencing login issues after an update and the ownCloud Workaround App is installed in your device, please, try to uninstall and reinstall the Workaround App *** diff --git a/fastlane/metadata/android/en-US/images/featureGraphic.jpeg b/fastlane/metadata/android/en-US/images/featureGraphic.jpeg new file mode 100644 index 00000000000..96a9ddf5f5e Binary files /dev/null and b/fastlane/metadata/android/en-US/images/featureGraphic.jpeg differ 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 00000000000..d4c8ac67b3e Binary files /dev/null and b/fastlane/metadata/android/en-US/images/icon.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/1_login.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/1_login.png new file mode 100644 index 00000000000..3ee33b8f51f Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/1_login.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/2_list_view.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/2_list_view.png new file mode 100644 index 00000000000..cb61ca1381b Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/2_list_view.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/3_grid_view.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/3_grid_view.png new file mode 100644 index 00000000000..2e5ec6b03d4 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/3_grid_view.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/4_drawer.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/4_drawer.png new file mode 100644 index 00000000000..e8174b468bc Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/4_drawer.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/5_spaces.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/5_spaces.png new file mode 100644 index 00000000000..af27002c702 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/5_spaces.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/6_uploads.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/6_uploads.png new file mode 100644 index 00000000000..c5c82978ef6 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/6_uploads.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/7_share.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/7_share.png new file mode 100644 index 00000000000..13e43eeeb4c Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/7_share.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/8_settings.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/8_settings.png new file mode 100644 index 00000000000..1c6092a1d62 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/8_settings.png differ 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 00000000000..27aab68fc7c --- /dev/null +++ b/fastlane/metadata/android/en-US/short_description.txt @@ -0,0 +1 @@ +File synchronization client diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 00000000000..022f0d32f33 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,6 @@ +android.defaults.buildfeatures.buildconfig=true +android.enableJetifier=true +android.nonFinalResIds=false +android.nonTransitiveRClass=false +android.useAndroidX=true +org.gradle.jvmargs=-Xmx1536M diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000000..8970936b65d --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,134 @@ +[versions] +androidGradlePlugin = "8.7.2" +androidxActivity = "1.6.1" +androidxAnnotation = "1.6.0" +androidxAppCompat = "1.6.1" +androidxArch = "2.2.0" +androidxBiometric = "1.1.0" +androidxBrowser = "1.5.0" +androidxContraintLayout = "2.1.4" +androidxCore = "1.10.1" +androidxEmojiPicker = "1.6.0" +androidxEnterpriseFeedback = "1.1.0" +androidxEspresso = "3.5.1" +androidxFragment = "1.5.7" +androidxLegacy = "1.0.0" +androidxLifecycle = "2.5.1" +androidxLifecycleExtensions = "2.2.0" +androidxRoom = "2.5.1" +androidxSqlite = "2.3.1" +androidxTest = "1.4.0" +androidxTestExt = "1.1.5" +androidxTestMonitor = "1.6.1" +androidxTestUiAutomator ="2.2.0" +androidxWork = "2.8.1" +coil = "2.2.2" +cyclonedx = "2.3.1" +detekt = "1.23.3" +dexopener = "2.0.5" +disklrucache = "2.0.2" +media3 ="1.1.1" +floatingactionbutton = "1.10.1" +glide = "4.15.1" +glideToVectorYou = "v2.0.0" +junit4 = "4.13.2" +koin = "3.3.3" +kotlin = "1.9.20" +kotlinxCoroutines = "1.9.0" +ksp = "1.9.20-1.0.14" +ktlint = "11.1.0" +markwon = "4.6.2" +material = "1.8.0" +mockk = "1.13.3" +moshi = "1.15.0" +patternlockview = "a90b0d4bf0" +photoView = "2.3.0" +preference = "1.2.0" +sonarqube = "4.0.0.2929" +stetho = "1.6.0" +timber = "5.0.1" + +[libraries] +androidx-annotation = { group = "androidx.annotation", name = "annotation", version.ref = "androidxAnnotation" } +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidxAppCompat" } +androidx-arch-core-testing = { group = "androidx.arch.core", name = "core-testing", version.ref = "androidxArch" } +androidx-biometric = { group = "androidx.biometric", name = "biometric", version.ref = "androidxBiometric" } +androidx-browser = { group = "androidx.browser", name = "browser", version.ref = "androidxBrowser" } +androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "androidxContraintLayout" } +androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidxCore" } +androidx-emoji2-emojipicker = { group = "androidx.emoji2", name = "emoji2-emojipicker", version.ref = "androidxEmojiPicker" } +androidx-enterprise-feedback = { group = "androidx.enterprise", name = "enterprise-feedback", version.ref = "androidxEnterpriseFeedback" } +androidx-fragment-ktx = { group = "androidx.fragment", name = "fragment-ktx", version.ref = "androidxFragment" } +androidx-fragment-testing = { group = "androidx.fragment", name = "fragment-testing", version.ref = "androidxFragment" } +androidx-legacy-support = { group = "androidx.legacy", name = "legacy-support-v4", version.ref = "androidxLegacy" } +androidx-lifecycle-common-java8 = { group = "androidx.lifecycle", name = "lifecycle-common-java8", version.ref = "androidxLifecycle" } +androidx-lifecycle-extensions = { group = "androidx.lifecycle", name = "lifecycle-extensions", version.ref = "androidxLifecycleExtensions" } +androidx-lifecycle-livedata-ktx = { group = "androidx.lifecycle", name = "lifecycle-livedata-ktx", version.ref = "androidxLifecycle" } +androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "androidxLifecycle" } +androidx-lifecycle-viewmodel-ktx = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "androidxLifecycle" } +androidx-preference-ktx = { group = "androidx.preference", name = "preference-ktx", version.ref = "preference" } +androidx-room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "androidxRoom" } +androidx-room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "androidxRoom" } +androidx-room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "androidxRoom" } +androidx-room-testing = { group = "androidx.room", name = "room-testing", version.ref = "androidxRoom" } +androidx-sqlite-ktx = { group = "androidx.sqlite", name = "sqlite-ktx", version.ref = "androidxSqlite" } +androidx-test-core = { group = "androidx.test", name = "core", version.ref = "androidxTest" } +androidx-test-espresso-contrib = { group = "androidx.test.espresso", name = "espresso-contrib", version.ref = "androidxEspresso" } +androidx-test-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "androidxEspresso" } +androidx-test-espresso-intents = { group = "androidx.test.espresso", name = "espresso-intents", version.ref = "androidxEspresso" } +androidx-test-espresso-web = { group = "androidx.test.espresso", name = "espresso-web", version.ref = "androidxEspresso" } +androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidxTestExt" } +androidx-test-monitor = { group = "androidx.test", name = "monitor", version.ref = "androidxTestMonitor" } +androidx-test-rules = { group = "androidx.test", name = "rules", version.ref = "androidxTest" } +androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = "androidxTest" } +androidx-test-uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref = "androidxTestUiAutomator" } +androidx-work-runtime-ktx = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "androidxWork" } +coil = { group = "io.coil-kt", name = "coil", version.ref = "coil" } +detekt-formatting = { module = "io.gitlab.arturbosch.detekt:detekt-formatting", version.ref = "detekt" } +detekt-libraries = { module = "io.gitlab.arturbosch.detekt:detekt-rules-libraries", version.ref = "detekt" } +dexopener = { group = "com.github.tmurakami", name = "dexopener", version.ref = "dexopener" } +disklrucache = { group = "com.jakewharton", name = "disklrucache", version.ref = "disklrucache" } +media3-exoplayer = { group = "androidx.media3", name = "media3-exoplayer", version.ref = "media3" } +media3-ui = { group = "androidx.media3", name = "media3-ui", version.ref = "media3" } +floatingactionbutton = { group = "com.getbase", name = "floatingactionbutton", version.ref = "floatingactionbutton" } +glide = { group = "com.github.bumptech.glide", name = "glide", version.ref = "glide" } +glide-vector = { group = "com.github.2coffees1team", name = "GlideToVectorYou", version.ref = "glideToVectorYou" } +junit4 = { group = "junit", name = "junit", version.ref = "junit4" } +koin-android = { group = "io.insert-koin", name = "koin-android", version.ref = "koin" } +koin-androidx-workmanager = { group = "io.insert-koin", name = "koin-androidx-workmanager", version.ref = "koin" } +koin-core = { group = "io.insert-koin", name = "koin-core", version.ref = "koin" } +kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" } +kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" } +kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" } +kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" } +markwon-core = { group = "io.noties.markwon", name = "core", version.ref = "markwon" } +markwon-ext-strikethrough = { group = "io.noties.markwon", name = "ext-strikethrough", version.ref = "markwon" } +markwon-ext-tables = { group = "io.noties.markwon", name = "ext-tables", version.ref = "markwon" } +markwon-ext-tasklist = { group = "io.noties.markwon", name = "ext-tasklist", version.ref = "markwon" } +markwon-html = { group = "io.noties.markwon", name = "html", version.ref = "markwon" } +material = { group = "com.google.android.material", name = "material", version.ref = "material" } +mockk = { group = "io.mockk", name = "mockk", version.ref = "mockk" } +mockk-android = { group = "io.mockk", name = "mockk-android", version.ref = "mockk" } +moshi-kotlin = { group = "com.squareup.moshi", name = "moshi-kotlin", version.ref = "moshi" } +moshi-kotlin-codegen = { group = "com.squareup.moshi", name = "moshi-kotlin-codegen", version.ref = "moshi" } +patternlockview = { group = "com.github.aritraroy.PatternLockView", name = "patternlockview", version.ref = "patternlockview" } +photoview = { group = "com.github.chrisbanes", name = "PhotoView", version.ref = "photoView" } +stetho = { group = "com.facebook.stetho", name = "stetho", version.ref = "stetho" } +timber = { group = "com.jakewharton.timber", name = "timber", version.ref = "timber" } + +# Dependencies of the included build-logic +android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "androidGradlePlugin" } +kotlin-gradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" } +ksp-gradlePlugin = { group = "com.google.devtools.ksp", name = "com.google.devtools.ksp.gradle.plugin", version.ref = "ksp" } +ktlint-gradlePlugin = { group = "org.jlleitschuh.gradle", name = "ktlint-gradle", version.ref = "ktlint" } + +[bundles] +espresso = ["androidx-test-espresso-contrib", "androidx-test-espresso-core", "androidx-test-espresso-intents", "androidx-test-espresso-web"] +markwon = ["markwon-core", "markwon-ext-tables", "markwon-ext-strikethrough", "markwon-ext-tasklist", "markwon-html"] + +[plugins] +kotlin = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } +sonarqube = { id = "org.sonarqube", version.ref = "sonarqube" } +detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } +cyclonedx = { id = "org.cyclonedx.bom", version.ref = "cyclonedx" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 3d0dee6e8ed..7454180f2ae 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5a1c4383420..19cfad969ba 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Sun Jan 18 17:01:43 CET 2015 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip diff --git a/gradlew b/gradlew index 91a7e269e19..1b6c787337f 100755 --- a/gradlew +++ b/gradlew @@ -1,79 +1,129 @@ -#!/usr/bin/env bash +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum -warn ( ) { +warn () { echo "$*" -} +} >&2 -die ( ) { +die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- -APP_HOME="`pwd -P`" -cd "$SAVED" >&- - CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -82,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + JAVACMD=java which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the @@ -90,75 +140,95 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=$((i+1)) + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" - -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index aec99730b4e..ac1b06f9382 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -8,20 +24,23 @@ @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -35,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -45,34 +64,14 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell diff --git a/issue_template.md b/issue_template.md index 493572d2d8d..0c83d940e5c 100644 --- a/issue_template.md +++ b/issue_template.md @@ -1,14 +1,19 @@ -### Expected behaviour -Tell us what should happen - ### Actual behaviour -Tell us what happens instead +-Tell us what happens +### Expected behaviour +-Tell us what should happen + ### Steps to reproduce 1. 2. 3. + +Can this problem be reproduced with the official owncloud server? +(url: https://demo.owncloud.org, user: test, password: test) + + ### Environment data Android version: diff --git a/libs/android-support-appcompat-v7-exploded-aar/.classpath b/libs/android-support-appcompat-v7-exploded-aar/.classpath deleted file mode 100644 index 7bc01d9a9c6..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/.classpath +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/.project b/libs/android-support-appcompat-v7-exploded-aar/.project deleted file mode 100644 index 957d33da155..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/.project +++ /dev/null @@ -1,33 +0,0 @@ - - - android-support-v7-appcompat - - - - - - com.android.ide.eclipse.adt.ResourceManagerBuilder - - - - - com.android.ide.eclipse.adt.PreCompilerBuilder - - - - - org.eclipse.jdt.core.javabuilder - - - - - com.android.ide.eclipse.adt.ApkBuilder - - - - - - com.android.ide.eclipse.adt.AndroidNature - org.eclipse.jdt.core.javanature - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/AndroidManifest.xml b/libs/android-support-appcompat-v7-exploded-aar/AndroidManifest.xml deleted file mode 100644 index dac4cb27ed9..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/AndroidManifest.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/R.txt b/libs/android-support-appcompat-v7-exploded-aar/R.txt deleted file mode 100644 index ff1eab066d2..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/R.txt +++ /dev/null @@ -1,582 +0,0 @@ -int anim abc_fade_in 0x7f040000 -int anim abc_fade_out 0x7f040001 -int anim abc_slide_in_bottom 0x7f040002 -int anim abc_slide_in_top 0x7f040003 -int anim abc_slide_out_bottom 0x7f040004 -int anim abc_slide_out_top 0x7f040005 -int attr actionBarDivider 0x7f010000 -int attr actionBarItemBackground 0x7f010001 -int attr actionBarSize 0x7f010002 -int attr actionBarSplitStyle 0x7f010003 -int attr actionBarStyle 0x7f010004 -int attr actionBarTabBarStyle 0x7f010005 -int attr actionBarTabStyle 0x7f010006 -int attr actionBarTabTextStyle 0x7f010007 -int attr actionBarWidgetTheme 0x7f010008 -int attr actionButtonStyle 0x7f010009 -int attr actionDropDownStyle 0x7f010066 -int attr actionLayout 0x7f01005d -int attr actionMenuTextAppearance 0x7f01000a -int attr actionMenuTextColor 0x7f01000b -int attr actionModeBackground 0x7f01000c -int attr actionModeCloseButtonStyle 0x7f01000d -int attr actionModeCloseDrawable 0x7f01000e -int attr actionModeCopyDrawable 0x7f01000f -int attr actionModeCutDrawable 0x7f010010 -int attr actionModeFindDrawable 0x7f010011 -int attr actionModePasteDrawable 0x7f010012 -int attr actionModePopupWindowStyle 0x7f010013 -int attr actionModeSelectAllDrawable 0x7f010014 -int attr actionModeShareDrawable 0x7f010015 -int attr actionModeSplitBackground 0x7f010016 -int attr actionModeStyle 0x7f010017 -int attr actionModeWebSearchDrawable 0x7f010018 -int attr actionOverflowButtonStyle 0x7f010019 -int attr actionProviderClass 0x7f01005f -int attr actionViewClass 0x7f01005e -int attr activityChooserViewStyle 0x7f01001a -int attr background 0x7f010047 -int attr backgroundSplit 0x7f010049 -int attr backgroundStacked 0x7f010048 -int attr buttonBarButtonStyle 0x7f01001b -int attr buttonBarStyle 0x7f01001c -int attr customNavigationLayout 0x7f01004a -int attr disableChildrenWhenDisabled 0x7f010065 -int attr displayOptions 0x7f010040 -int attr divider 0x7f010046 -int attr dividerHorizontal 0x7f01001d -int attr dividerPadding 0x7f01005b -int attr dividerVertical 0x7f01001e -int attr dropDownListViewStyle 0x7f01001f -int attr dropdownListPreferredItemHeight 0x7f010067 -int attr expandActivityOverflowButtonDrawable 0x7f010058 -int attr height 0x7f010020 -int attr homeAsUpIndicator 0x7f010021 -int attr homeLayout 0x7f01004b -int attr icon 0x7f010044 -int attr iconifiedByDefault 0x7f010060 -int attr indeterminateProgressStyle 0x7f01004d -int attr initialActivityCount 0x7f010057 -int attr isLightTheme 0x7f010022 -int attr itemPadding 0x7f01004f -int attr listChoiceBackgroundIndicator 0x7f01006b -int attr listPopupWindowStyle 0x7f010023 -int attr listPreferredItemHeight 0x7f010024 -int attr listPreferredItemHeightLarge 0x7f010025 -int attr listPreferredItemHeightSmall 0x7f010026 -int attr listPreferredItemPaddingLeft 0x7f010027 -int attr listPreferredItemPaddingRight 0x7f010028 -int attr logo 0x7f010045 -int attr navigationMode 0x7f01003f -int attr paddingEnd 0x7f01006d -int attr paddingStart 0x7f01006c -int attr panelMenuListTheme 0x7f01006a -int attr panelMenuListWidth 0x7f010069 -int attr popupMenuStyle 0x7f010068 -int attr popupPromptView 0x7f010064 -int attr progressBarPadding 0x7f01004e -int attr progressBarStyle 0x7f01004c -int attr prompt 0x7f010062 -int attr queryHint 0x7f010061 -int attr searchDropdownBackground 0x7f010029 -int attr searchResultListItemHeight 0x7f01002a -int attr searchViewAutoCompleteTextView 0x7f01002b -int attr searchViewCloseIcon 0x7f01002c -int attr searchViewEditQuery 0x7f01002d -int attr searchViewEditQueryBackground 0x7f01002e -int attr searchViewGoIcon 0x7f01002f -int attr searchViewSearchIcon 0x7f010030 -int attr searchViewTextField 0x7f010031 -int attr searchViewTextFieldRight 0x7f010032 -int attr searchViewVoiceIcon 0x7f010033 -int attr selectableItemBackground 0x7f010034 -int attr showAsAction 0x7f01005c -int attr showDividers 0x7f01005a -int attr spinnerDropDownItemStyle 0x7f010035 -int attr spinnerMode 0x7f010063 -int attr spinnerStyle 0x7f010036 -int attr subtitle 0x7f010041 -int attr subtitleTextStyle 0x7f010043 -int attr textAllCaps 0x7f010059 -int attr textAppearanceLargePopupMenu 0x7f010037 -int attr textAppearanceListItem 0x7f010038 -int attr textAppearanceListItemSmall 0x7f010039 -int attr textAppearanceSearchResultSubtitle 0x7f01003a -int attr textAppearanceSearchResultTitle 0x7f01003b -int attr textAppearanceSmallPopupMenu 0x7f01003c -int attr textColorSearchUrl 0x7f01003d -int attr title 0x7f01003e -int attr titleTextStyle 0x7f010042 -int attr windowActionBar 0x7f010050 -int attr windowActionBarOverlay 0x7f010051 -int attr windowFixedHeightMajor 0x7f010056 -int attr windowFixedHeightMinor 0x7f010054 -int attr windowFixedWidthMajor 0x7f010053 -int attr windowFixedWidthMinor 0x7f010055 -int attr windowSplitActionBar 0x7f010052 -int bool abc_action_bar_embed_tabs_pre_jb 0x7f050000 -int bool abc_action_bar_expanded_action_views_exclusive 0x7f050001 -int bool abc_config_actionMenuItemAllCaps 0x7f050002 -int bool abc_config_allowActionMenuItemTextWithIcon 0x7f050003 -int bool abc_config_showMenuShortcutsWhenKeyboardPresent 0x7f050004 -int bool abc_split_action_bar_is_narrow 0x7f050005 -int color abc_search_url_text_holo 0x7f060003 -int color abc_search_url_text_normal 0x7f060000 -int color abc_search_url_text_pressed 0x7f060001 -int color abc_search_url_text_selected 0x7f060002 -int dimen abc_action_bar_default_height 0x7f080000 -int dimen abc_action_bar_icon_vertical_padding 0x7f080001 -int dimen abc_action_bar_progress_bar_size 0x7f080002 -int dimen abc_action_bar_stacked_max_height 0x7f080003 -int dimen abc_action_bar_stacked_tab_max_width 0x7f080004 -int dimen abc_action_bar_subtitle_bottom_margin 0x7f080005 -int dimen abc_action_bar_subtitle_text_size 0x7f080006 -int dimen abc_action_bar_subtitle_top_margin 0x7f080007 -int dimen abc_action_bar_title_text_size 0x7f080008 -int dimen abc_action_button_min_width 0x7f080009 -int dimen abc_config_prefDialogWidth 0x7f08000a -int dimen abc_dropdownitem_icon_width 0x7f08000b -int dimen abc_dropdownitem_text_padding_left 0x7f08000c -int dimen abc_dropdownitem_text_padding_right 0x7f08000d -int dimen abc_panel_menu_list_width 0x7f08000e -int dimen abc_search_view_preferred_width 0x7f08000f -int dimen abc_search_view_text_min_width 0x7f080010 -int dimen dialog_fixed_height_major 0x7f080011 -int dimen dialog_fixed_height_minor 0x7f080012 -int dimen dialog_fixed_width_major 0x7f080013 -int dimen dialog_fixed_width_minor 0x7f080014 -int drawable abc_ab_bottom_solid_dark_holo 0x7f020000 -int drawable abc_ab_bottom_solid_light_holo 0x7f020001 -int drawable abc_ab_bottom_transparent_dark_holo 0x7f020002 -int drawable abc_ab_bottom_transparent_light_holo 0x7f020003 -int drawable abc_ab_share_pack_holo_dark 0x7f020004 -int drawable abc_ab_share_pack_holo_light 0x7f020005 -int drawable abc_ab_solid_dark_holo 0x7f020006 -int drawable abc_ab_solid_light_holo 0x7f020007 -int drawable abc_ab_stacked_solid_dark_holo 0x7f020008 -int drawable abc_ab_stacked_solid_light_holo 0x7f020009 -int drawable abc_ab_stacked_transparent_dark_holo 0x7f02000a -int drawable abc_ab_stacked_transparent_light_holo 0x7f02000b -int drawable abc_ab_transparent_dark_holo 0x7f02000c -int drawable abc_ab_transparent_light_holo 0x7f02000d -int drawable abc_cab_background_bottom_holo_dark 0x7f02000e -int drawable abc_cab_background_bottom_holo_light 0x7f02000f -int drawable abc_cab_background_top_holo_dark 0x7f020010 -int drawable abc_cab_background_top_holo_light 0x7f020011 -int drawable abc_ic_ab_back_holo_dark 0x7f020012 -int drawable abc_ic_ab_back_holo_light 0x7f020013 -int drawable abc_ic_cab_done_holo_dark 0x7f020014 -int drawable abc_ic_cab_done_holo_light 0x7f020015 -int drawable abc_ic_clear 0x7f020016 -int drawable abc_ic_clear_disabled 0x7f020017 -int drawable abc_ic_clear_holo_light 0x7f020018 -int drawable abc_ic_clear_normal 0x7f020019 -int drawable abc_ic_clear_search_api_disabled_holo_light 0x7f02001a -int drawable abc_ic_clear_search_api_holo_light 0x7f02001b -int drawable abc_ic_commit_search_api_holo_dark 0x7f02001c -int drawable abc_ic_commit_search_api_holo_light 0x7f02001d -int drawable abc_ic_go 0x7f02001e -int drawable abc_ic_go_search_api_holo_light 0x7f02001f -int drawable abc_ic_menu_moreoverflow_normal_holo_dark 0x7f020020 -int drawable abc_ic_menu_moreoverflow_normal_holo_light 0x7f020021 -int drawable abc_ic_menu_share_holo_dark 0x7f020022 -int drawable abc_ic_menu_share_holo_light 0x7f020023 -int drawable abc_ic_search 0x7f020024 -int drawable abc_ic_search_api_holo_light 0x7f020025 -int drawable abc_ic_voice_search 0x7f020026 -int drawable abc_ic_voice_search_api_holo_light 0x7f020027 -int drawable abc_item_background_holo_dark 0x7f020028 -int drawable abc_item_background_holo_light 0x7f020029 -int drawable abc_list_divider_holo_dark 0x7f02002a -int drawable abc_list_divider_holo_light 0x7f02002b -int drawable abc_list_focused_holo 0x7f02002c -int drawable abc_list_longpressed_holo 0x7f02002d -int drawable abc_list_pressed_holo_dark 0x7f02002e -int drawable abc_list_pressed_holo_light 0x7f02002f -int drawable abc_list_selector_background_transition_holo_dark 0x7f020030 -int drawable abc_list_selector_background_transition_holo_light 0x7f020031 -int drawable abc_list_selector_disabled_holo_dark 0x7f020032 -int drawable abc_list_selector_disabled_holo_light 0x7f020033 -int drawable abc_list_selector_holo_dark 0x7f020034 -int drawable abc_list_selector_holo_light 0x7f020035 -int drawable abc_menu_dropdown_panel_holo_dark 0x7f020036 -int drawable abc_menu_dropdown_panel_holo_light 0x7f020037 -int drawable abc_menu_hardkey_panel_holo_dark 0x7f020038 -int drawable abc_menu_hardkey_panel_holo_light 0x7f020039 -int drawable abc_search_dropdown_dark 0x7f02003a -int drawable abc_search_dropdown_light 0x7f02003b -int drawable abc_spinner_ab_default_holo_dark 0x7f02003c -int drawable abc_spinner_ab_default_holo_light 0x7f02003d -int drawable abc_spinner_ab_disabled_holo_dark 0x7f02003e -int drawable abc_spinner_ab_disabled_holo_light 0x7f02003f -int drawable abc_spinner_ab_focused_holo_dark 0x7f020040 -int drawable abc_spinner_ab_focused_holo_light 0x7f020041 -int drawable abc_spinner_ab_holo_dark 0x7f020042 -int drawable abc_spinner_ab_holo_light 0x7f020043 -int drawable abc_spinner_ab_pressed_holo_dark 0x7f020044 -int drawable abc_spinner_ab_pressed_holo_light 0x7f020045 -int drawable abc_tab_indicator_ab_holo 0x7f020046 -int drawable abc_tab_selected_focused_holo 0x7f020047 -int drawable abc_tab_selected_holo 0x7f020048 -int drawable abc_tab_selected_pressed_holo 0x7f020049 -int drawable abc_tab_unselected_pressed_holo 0x7f02004a -int drawable abc_textfield_search_default_holo_dark 0x7f02004b -int drawable abc_textfield_search_default_holo_light 0x7f02004c -int drawable abc_textfield_search_right_default_holo_dark 0x7f02004d -int drawable abc_textfield_search_right_default_holo_light 0x7f02004e -int drawable abc_textfield_search_right_selected_holo_dark 0x7f02004f -int drawable abc_textfield_search_right_selected_holo_light 0x7f020050 -int drawable abc_textfield_search_selected_holo_dark 0x7f020051 -int drawable abc_textfield_search_selected_holo_light 0x7f020052 -int drawable abc_textfield_searchview_holo_dark 0x7f020053 -int drawable abc_textfield_searchview_holo_light 0x7f020054 -int drawable abc_textfield_searchview_right_holo_dark 0x7f020055 -int drawable abc_textfield_searchview_right_holo_light 0x7f020056 -int id action_bar 0x7f07001c -int id action_bar_activity_content 0x7f070014 -int id action_bar_container 0x7f07001b -int id action_bar_overlay_layout 0x7f07001f -int id action_bar_root 0x7f07001a -int id action_bar_subtitle 0x7f070023 -int id action_bar_title 0x7f070022 -int id action_context_bar 0x7f07001d -int id action_menu_divider 0x7f070015 -int id action_menu_presenter 0x7f070016 -int id action_mode_close_button 0x7f070024 -int id activity_chooser_view_content 0x7f070025 -int id always 0x7f07000f -int id beginning 0x7f07000a -int id checkbox 0x7f07002d -int id collapseActionView 0x7f070011 -int id default_activity_button 0x7f070028 -int id dialog 0x7f070012 -int id disableHome 0x7f070008 -int id dropdown 0x7f070013 -int id edit_query 0x7f070030 -int id end 0x7f07000c -int id expand_activities_button 0x7f070026 -int id expanded_menu 0x7f07002c -int id home 0x7f070017 -int id homeAsUp 0x7f070005 -int id icon 0x7f07002a -int id ifRoom 0x7f07000e -int id image 0x7f070027 -int id listMode 0x7f070001 -int id list_item 0x7f070029 -int id middle 0x7f07000b -int id never 0x7f07000d -int id none 0x7f070009 -int id normal 0x7f070000 -int id progress_circular 0x7f070018 -int id progress_horizontal 0x7f070019 -int id radio 0x7f07002f -int id search_badge 0x7f070032 -int id search_bar 0x7f070031 -int id search_button 0x7f070033 -int id search_close_btn 0x7f070038 -int id search_edit_frame 0x7f070034 -int id search_go_btn 0x7f07003a -int id search_mag_icon 0x7f070035 -int id search_plate 0x7f070036 -int id search_src_text 0x7f070037 -int id search_voice_btn 0x7f07003b -int id shortcut 0x7f07002e -int id showCustom 0x7f070007 -int id showHome 0x7f070004 -int id showTitle 0x7f070006 -int id split_action_bar 0x7f07001e -int id submit_area 0x7f070039 -int id tabMode 0x7f070002 -int id title 0x7f07002b -int id top_action_bar 0x7f070020 -int id up 0x7f070021 -int id useLogo 0x7f070003 -int id withText 0x7f070010 -int integer abc_max_action_buttons 0x7f090000 -int layout abc_action_bar_decor 0x7f030000 -int layout abc_action_bar_decor_include 0x7f030001 -int layout abc_action_bar_decor_overlay 0x7f030002 -int layout abc_action_bar_home 0x7f030003 -int layout abc_action_bar_tab 0x7f030004 -int layout abc_action_bar_tabbar 0x7f030005 -int layout abc_action_bar_title_item 0x7f030006 -int layout abc_action_bar_view_list_nav_layout 0x7f030007 -int layout abc_action_menu_item_layout 0x7f030008 -int layout abc_action_menu_layout 0x7f030009 -int layout abc_action_mode_bar 0x7f03000a -int layout abc_action_mode_close_item 0x7f03000b -int layout abc_activity_chooser_view 0x7f03000c -int layout abc_activity_chooser_view_include 0x7f03000d -int layout abc_activity_chooser_view_list_item 0x7f03000e -int layout abc_expanded_menu_layout 0x7f03000f -int layout abc_list_menu_item_checkbox 0x7f030010 -int layout abc_list_menu_item_icon 0x7f030011 -int layout abc_list_menu_item_layout 0x7f030012 -int layout abc_list_menu_item_radio 0x7f030013 -int layout abc_popup_menu_item_layout 0x7f030014 -int layout abc_search_dropdown_item_icons_2line 0x7f030015 -int layout abc_search_view 0x7f030016 -int layout abc_simple_decor 0x7f030017 -int layout support_simple_spinner_dropdown_item 0x7f030018 -int string abc_action_bar_home_description 0x7f0a0000 -int string abc_action_bar_up_description 0x7f0a0001 -int string abc_action_menu_overflow_description 0x7f0a0002 -int string abc_action_mode_done 0x7f0a0003 -int string abc_activity_chooser_view_see_all 0x7f0a0004 -int string abc_activitychooserview_choose_application 0x7f0a0005 -int string abc_searchview_description_clear 0x7f0a0006 -int string abc_searchview_description_query 0x7f0a0007 -int string abc_searchview_description_search 0x7f0a0008 -int string abc_searchview_description_submit 0x7f0a0009 -int string abc_searchview_description_voice 0x7f0a000a -int string abc_shareactionprovider_share_with 0x7f0a000b -int string abc_shareactionprovider_share_with_application 0x7f0a000c -int style TextAppearance_AppCompat_Base_CompactMenu_Dialog 0x7f0b0000 -int style TextAppearance_AppCompat_Base_SearchResult 0x7f0b0001 -int style TextAppearance_AppCompat_Base_SearchResult_Subtitle 0x7f0b0002 -int style TextAppearance_AppCompat_Base_SearchResult_Title 0x7f0b0003 -int style TextAppearance_AppCompat_Base_Widget_PopupMenu_Large 0x7f0b0004 -int style TextAppearance_AppCompat_Base_Widget_PopupMenu_Small 0x7f0b0005 -int style TextAppearance_AppCompat_Light_Base_SearchResult 0x7f0b0006 -int style TextAppearance_AppCompat_Light_Base_SearchResult_Subtitle 0x7f0b0007 -int style TextAppearance_AppCompat_Light_Base_SearchResult_Title 0x7f0b0008 -int style TextAppearance_AppCompat_Light_Base_Widget_PopupMenu_Large 0x7f0b0009 -int style TextAppearance_AppCompat_Light_Base_Widget_PopupMenu_Small 0x7f0b000a -int style TextAppearance_AppCompat_Light_SearchResult_Subtitle 0x7f0b000b -int style TextAppearance_AppCompat_Light_SearchResult_Title 0x7f0b000c -int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Large 0x7f0b000d -int style TextAppearance_AppCompat_Light_Widget_PopupMenu_Small 0x7f0b000e -int style TextAppearance_AppCompat_SearchResult_Subtitle 0x7f0b000f -int style TextAppearance_AppCompat_SearchResult_Title 0x7f0b0010 -int style TextAppearance_AppCompat_Widget_ActionBar_Menu 0x7f0b0011 -int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle 0x7f0b0012 -int style TextAppearance_AppCompat_Widget_ActionBar_Subtitle_Inverse 0x7f0b0013 -int style TextAppearance_AppCompat_Widget_ActionBar_Title 0x7f0b0014 -int style TextAppearance_AppCompat_Widget_ActionBar_Title_Inverse 0x7f0b0015 -int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle 0x7f0b0016 -int style TextAppearance_AppCompat_Widget_ActionMode_Subtitle_Inverse 0x7f0b0017 -int style TextAppearance_AppCompat_Widget_ActionMode_Title 0x7f0b0018 -int style TextAppearance_AppCompat_Widget_ActionMode_Title_Inverse 0x7f0b0019 -int style TextAppearance_AppCompat_Widget_Base_ActionBar_Menu 0x7f0b001a -int style TextAppearance_AppCompat_Widget_Base_ActionBar_Subtitle 0x7f0b001b -int style TextAppearance_AppCompat_Widget_Base_ActionBar_Subtitle_Inverse 0x7f0b001c -int style TextAppearance_AppCompat_Widget_Base_ActionBar_Title 0x7f0b001d -int style TextAppearance_AppCompat_Widget_Base_ActionBar_Title_Inverse 0x7f0b001e -int style TextAppearance_AppCompat_Widget_Base_ActionMode_Subtitle 0x7f0b001f -int style TextAppearance_AppCompat_Widget_Base_ActionMode_Subtitle_Inverse 0x7f0b0020 -int style TextAppearance_AppCompat_Widget_Base_ActionMode_Title 0x7f0b0021 -int style TextAppearance_AppCompat_Widget_Base_ActionMode_Title_Inverse 0x7f0b0022 -int style TextAppearance_AppCompat_Widget_Base_DropDownItem 0x7f0b0023 -int style TextAppearance_AppCompat_Widget_DropDownItem 0x7f0b0024 -int style TextAppearance_AppCompat_Widget_PopupMenu_Large 0x7f0b0025 -int style TextAppearance_AppCompat_Widget_PopupMenu_Small 0x7f0b0026 -int style TextAppearance_Widget_AppCompat_Base_ExpandedMenu_Item 0x7f0b0027 -int style TextAppearance_Widget_AppCompat_ExpandedMenu_Item 0x7f0b0028 -int style Theme_AppCompat 0x7f0b0029 -int style Theme_AppCompat_Base_CompactMenu 0x7f0b002a -int style Theme_AppCompat_Base_CompactMenu_Dialog 0x7f0b002b -int style Theme_AppCompat_CompactMenu 0x7f0b002c -int style Theme_AppCompat_CompactMenu_Dialog 0x7f0b002d -int style Theme_AppCompat_DialogWhenLarge 0x7f0b002e -int style Theme_AppCompat_Light 0x7f0b002f -int style Theme_AppCompat_Light_DarkActionBar 0x7f0b0030 -int style Theme_AppCompat_Light_DialogWhenLarge 0x7f0b0031 -int style Theme_Base 0x7f0b0032 -int style Theme_Base_AppCompat 0x7f0b0033 -int style Theme_Base_AppCompat_Dialog_FixedSize 0x7f0b0034 -int style Theme_Base_AppCompat_Dialog_Light_FixedSize 0x7f0b0035 -int style Theme_Base_AppCompat_DialogWhenLarge 0x7f0b0036 -int style Theme_Base_AppCompat_DialogWhenLarge_Base 0x7f0b0089 -int style Theme_Base_AppCompat_Light 0x7f0b0037 -int style Theme_Base_AppCompat_Light_DarkActionBar 0x7f0b0038 -int style Theme_Base_AppCompat_Light_DialogWhenLarge 0x7f0b0039 -int style Theme_Base_AppCompat_Light_DialogWhenLarge_Base 0x7f0b008a -int style Theme_Base_Light 0x7f0b003a -int style Widget_AppCompat_ActionBar 0x7f0b003b -int style Widget_AppCompat_ActionBar_Solid 0x7f0b003c -int style Widget_AppCompat_ActionBar_TabBar 0x7f0b003d -int style Widget_AppCompat_ActionBar_TabText 0x7f0b003e -int style Widget_AppCompat_ActionBar_TabView 0x7f0b003f -int style Widget_AppCompat_ActionButton 0x7f0b0040 -int style Widget_AppCompat_ActionButton_CloseMode 0x7f0b0041 -int style Widget_AppCompat_ActionButton_Overflow 0x7f0b0042 -int style Widget_AppCompat_ActionMode 0x7f0b0043 -int style Widget_AppCompat_ActivityChooserView 0x7f0b0044 -int style Widget_AppCompat_AutoCompleteTextView 0x7f0b0045 -int style Widget_AppCompat_Base_ActionBar 0x7f0b0046 -int style Widget_AppCompat_Base_ActionBar_Solid 0x7f0b0047 -int style Widget_AppCompat_Base_ActionBar_TabBar 0x7f0b0048 -int style Widget_AppCompat_Base_ActionBar_TabText 0x7f0b0049 -int style Widget_AppCompat_Base_ActionBar_TabView 0x7f0b004a -int style Widget_AppCompat_Base_ActionButton 0x7f0b004b -int style Widget_AppCompat_Base_ActionButton_CloseMode 0x7f0b004c -int style Widget_AppCompat_Base_ActionButton_Overflow 0x7f0b004d -int style Widget_AppCompat_Base_ActionMode 0x7f0b004e -int style Widget_AppCompat_Base_ActivityChooserView 0x7f0b004f -int style Widget_AppCompat_Base_AutoCompleteTextView 0x7f0b0050 -int style Widget_AppCompat_Base_DropDownItem_Spinner 0x7f0b0051 -int style Widget_AppCompat_Base_ListPopupWindow 0x7f0b0052 -int style Widget_AppCompat_Base_ListView_DropDown 0x7f0b0053 -int style Widget_AppCompat_Base_ListView_Menu 0x7f0b0054 -int style Widget_AppCompat_Base_PopupMenu 0x7f0b0055 -int style Widget_AppCompat_Base_ProgressBar 0x7f0b0056 -int style Widget_AppCompat_Base_ProgressBar_Horizontal 0x7f0b0057 -int style Widget_AppCompat_Base_Spinner 0x7f0b0058 -int style Widget_AppCompat_DropDownItem_Spinner 0x7f0b0059 -int style Widget_AppCompat_Light_ActionBar 0x7f0b005a -int style Widget_AppCompat_Light_ActionBar_Solid 0x7f0b005b -int style Widget_AppCompat_Light_ActionBar_Solid_Inverse 0x7f0b005c -int style Widget_AppCompat_Light_ActionBar_TabBar 0x7f0b005d -int style Widget_AppCompat_Light_ActionBar_TabBar_Inverse 0x7f0b005e -int style Widget_AppCompat_Light_ActionBar_TabText 0x7f0b005f -int style Widget_AppCompat_Light_ActionBar_TabText_Inverse 0x7f0b0060 -int style Widget_AppCompat_Light_ActionBar_TabView 0x7f0b0061 -int style Widget_AppCompat_Light_ActionBar_TabView_Inverse 0x7f0b0062 -int style Widget_AppCompat_Light_ActionButton 0x7f0b0063 -int style Widget_AppCompat_Light_ActionButton_CloseMode 0x7f0b0064 -int style Widget_AppCompat_Light_ActionButton_Overflow 0x7f0b0065 -int style Widget_AppCompat_Light_ActionMode_Inverse 0x7f0b0066 -int style Widget_AppCompat_Light_ActivityChooserView 0x7f0b0067 -int style Widget_AppCompat_Light_AutoCompleteTextView 0x7f0b0068 -int style Widget_AppCompat_Light_Base_ActionBar 0x7f0b0069 -int style Widget_AppCompat_Light_Base_ActionBar_Solid 0x7f0b006a -int style Widget_AppCompat_Light_Base_ActionBar_Solid_Inverse 0x7f0b006b -int style Widget_AppCompat_Light_Base_ActionBar_TabBar 0x7f0b006c -int style Widget_AppCompat_Light_Base_ActionBar_TabBar_Inverse 0x7f0b006d -int style Widget_AppCompat_Light_Base_ActionBar_TabText 0x7f0b006e -int style Widget_AppCompat_Light_Base_ActionBar_TabText_Inverse 0x7f0b006f -int style Widget_AppCompat_Light_Base_ActionBar_TabView 0x7f0b0070 -int style Widget_AppCompat_Light_Base_ActionBar_TabView_Inverse 0x7f0b0071 -int style Widget_AppCompat_Light_Base_ActionButton 0x7f0b0072 -int style Widget_AppCompat_Light_Base_ActionButton_CloseMode 0x7f0b0073 -int style Widget_AppCompat_Light_Base_ActionButton_Overflow 0x7f0b0074 -int style Widget_AppCompat_Light_Base_ActionMode_Inverse 0x7f0b0075 -int style Widget_AppCompat_Light_Base_ActivityChooserView 0x7f0b0076 -int style Widget_AppCompat_Light_Base_AutoCompleteTextView 0x7f0b0077 -int style Widget_AppCompat_Light_Base_DropDownItem_Spinner 0x7f0b0078 -int style Widget_AppCompat_Light_Base_ListPopupWindow 0x7f0b0079 -int style Widget_AppCompat_Light_Base_ListView_DropDown 0x7f0b007a -int style Widget_AppCompat_Light_Base_PopupMenu 0x7f0b007b -int style Widget_AppCompat_Light_Base_Spinner 0x7f0b007c -int style Widget_AppCompat_Light_DropDownItem_Spinner 0x7f0b007d -int style Widget_AppCompat_Light_ListPopupWindow 0x7f0b007e -int style Widget_AppCompat_Light_ListView_DropDown 0x7f0b007f -int style Widget_AppCompat_Light_PopupMenu 0x7f0b0080 -int style Widget_AppCompat_Light_Spinner_DropDown_ActionBar 0x7f0b0081 -int style Widget_AppCompat_ListPopupWindow 0x7f0b0082 -int style Widget_AppCompat_ListView_DropDown 0x7f0b0083 -int style Widget_AppCompat_ListView_Menu 0x7f0b0084 -int style Widget_AppCompat_PopupMenu 0x7f0b0085 -int style Widget_AppCompat_ProgressBar 0x7f0b0086 -int style Widget_AppCompat_ProgressBar_Horizontal 0x7f0b0087 -int style Widget_AppCompat_Spinner_DropDown_ActionBar 0x7f0b0088 -int[] styleable ActionBar { 0x7f010020, 0x7f01003e, 0x7f01003f, 0x7f010040, 0x7f010041, 0x7f010042, 0x7f010043, 0x7f010044, 0x7f010045, 0x7f010046, 0x7f010047, 0x7f010048, 0x7f010049, 0x7f01004a, 0x7f01004b, 0x7f01004c, 0x7f01004d, 0x7f01004e, 0x7f01004f } -int styleable ActionBar_background 10 -int styleable ActionBar_backgroundSplit 12 -int styleable ActionBar_backgroundStacked 11 -int styleable ActionBar_customNavigationLayout 13 -int styleable ActionBar_displayOptions 3 -int styleable ActionBar_divider 9 -int styleable ActionBar_height 0 -int styleable ActionBar_homeLayout 14 -int styleable ActionBar_icon 7 -int styleable ActionBar_indeterminateProgressStyle 16 -int styleable ActionBar_itemPadding 18 -int styleable ActionBar_logo 8 -int styleable ActionBar_navigationMode 2 -int styleable ActionBar_progressBarPadding 17 -int styleable ActionBar_progressBarStyle 15 -int styleable ActionBar_subtitle 4 -int styleable ActionBar_subtitleTextStyle 6 -int styleable ActionBar_title 1 -int styleable ActionBar_titleTextStyle 5 -int[] styleable ActionBarLayout { 0x010100b3 } -int styleable ActionBarLayout_android_layout_gravity 0 -int[] styleable ActionBarWindow { 0x7f010050, 0x7f010051, 0x7f010052, 0x7f010053, 0x7f010054, 0x7f010055, 0x7f010056 } -int styleable ActionBarWindow_windowActionBar 0 -int styleable ActionBarWindow_windowActionBarOverlay 1 -int styleable ActionBarWindow_windowFixedHeightMajor 6 -int styleable ActionBarWindow_windowFixedHeightMinor 4 -int styleable ActionBarWindow_windowFixedWidthMajor 3 -int styleable ActionBarWindow_windowFixedWidthMinor 5 -int styleable ActionBarWindow_windowSplitActionBar 2 -int[] styleable ActionMenuItemView { 0x0101013f } -int styleable ActionMenuItemView_android_minWidth 0 -int[] styleable ActionMenuView { } -int[] styleable ActionMode { 0x7f010020, 0x7f010042, 0x7f010043, 0x7f010047, 0x7f010049 } -int styleable ActionMode_background 3 -int styleable ActionMode_backgroundSplit 4 -int styleable ActionMode_height 0 -int styleable ActionMode_subtitleTextStyle 2 -int styleable ActionMode_titleTextStyle 1 -int[] styleable ActivityChooserView { 0x7f010057, 0x7f010058 } -int styleable ActivityChooserView_expandActivityOverflowButtonDrawable 1 -int styleable ActivityChooserView_initialActivityCount 0 -int[] styleable CompatTextView { 0x7f010059 } -int styleable CompatTextView_textAllCaps 0 -int[] styleable LinearLayoutICS { 0x7f010046, 0x7f01005a, 0x7f01005b } -int styleable LinearLayoutICS_divider 0 -int styleable LinearLayoutICS_dividerPadding 2 -int styleable LinearLayoutICS_showDividers 1 -int[] styleable MenuGroup { 0x0101000e, 0x010100d0, 0x01010194, 0x010101de, 0x010101df, 0x010101e0 } -int styleable MenuGroup_android_checkableBehavior 5 -int styleable MenuGroup_android_enabled 0 -int styleable MenuGroup_android_id 1 -int styleable MenuGroup_android_menuCategory 3 -int styleable MenuGroup_android_orderInCategory 4 -int styleable MenuGroup_android_visible 2 -int[] styleable MenuItem { 0x01010002, 0x0101000e, 0x010100d0, 0x01010106, 0x01010194, 0x010101de, 0x010101df, 0x010101e1, 0x010101e2, 0x010101e3, 0x010101e4, 0x010101e5, 0x0101026f, 0x7f01005c, 0x7f01005d, 0x7f01005e, 0x7f01005f } -int styleable MenuItem_actionLayout 14 -int styleable MenuItem_actionProviderClass 16 -int styleable MenuItem_actionViewClass 15 -int styleable MenuItem_android_alphabeticShortcut 9 -int styleable MenuItem_android_checkable 11 -int styleable MenuItem_android_checked 3 -int styleable MenuItem_android_enabled 1 -int styleable MenuItem_android_icon 0 -int styleable MenuItem_android_id 2 -int styleable MenuItem_android_menuCategory 5 -int styleable MenuItem_android_numericShortcut 10 -int styleable MenuItem_android_onClick 12 -int styleable MenuItem_android_orderInCategory 6 -int styleable MenuItem_android_title 7 -int styleable MenuItem_android_titleCondensed 8 -int styleable MenuItem_android_visible 4 -int styleable MenuItem_showAsAction 13 -int[] styleable MenuView { 0x010100ae, 0x0101012c, 0x0101012d, 0x0101012e, 0x0101012f, 0x01010130, 0x01010131, 0x01010435 } -int styleable MenuView_android_headerBackground 4 -int styleable MenuView_android_horizontalDivider 2 -int styleable MenuView_android_itemBackground 5 -int styleable MenuView_android_itemIconDisabledAlpha 6 -int styleable MenuView_android_itemTextAppearance 1 -int styleable MenuView_android_preserveIconSpacing 7 -int styleable MenuView_android_verticalDivider 3 -int styleable MenuView_android_windowAnimationStyle 0 -int[] styleable SearchView { 0x0101011f, 0x01010220, 0x01010264, 0x7f010060, 0x7f010061 } -int styleable SearchView_android_imeOptions 2 -int styleable SearchView_android_inputType 1 -int styleable SearchView_android_maxWidth 0 -int styleable SearchView_iconifiedByDefault 3 -int styleable SearchView_queryHint 4 -int[] styleable Spinner { 0x010100af, 0x01010175, 0x01010176, 0x01010262, 0x010102ac, 0x010102ad, 0x7f010062, 0x7f010063, 0x7f010064, 0x7f010065 } -int styleable Spinner_android_dropDownHorizontalOffset 4 -int styleable Spinner_android_dropDownSelector 1 -int styleable Spinner_android_dropDownVerticalOffset 5 -int styleable Spinner_android_dropDownWidth 3 -int styleable Spinner_android_gravity 0 -int styleable Spinner_android_popupBackground 2 -int styleable Spinner_disableChildrenWhenDisabled 9 -int styleable Spinner_popupPromptView 8 -int styleable Spinner_prompt 6 -int styleable Spinner_spinnerMode 7 -int[] styleable Theme { 0x7f010066, 0x7f010067, 0x7f010068, 0x7f010069, 0x7f01006a, 0x7f01006b } -int styleable Theme_actionDropDownStyle 0 -int styleable Theme_dropdownListPreferredItemHeight 1 -int styleable Theme_listChoiceBackgroundIndicator 5 -int styleable Theme_panelMenuListTheme 4 -int styleable Theme_panelMenuListWidth 3 -int styleable Theme_popupMenuStyle 2 -int[] styleable View { 0x010100da, 0x7f01006c, 0x7f01006d } -int styleable View_android_focusable 0 -int styleable View_paddingEnd 2 -int styleable View_paddingStart 1 diff --git a/libs/android-support-appcompat-v7-exploded-aar/README.txt b/libs/android-support-appcompat-v7-exploded-aar/README.txt deleted file mode 100644 index 8e8de056816..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/README.txt +++ /dev/null @@ -1,10 +0,0 @@ -Library Project including compatibility ActionBar. - -This can be used by an Android project to provide -access to ActionBar on applications running on API 7+. - -There is technically no source, but the src folder is necessary -to ensure that the build system works. The content is actually -located in libs/android-support-v7-appcompat.jar. -The accompanying resources must also be included in the application. - diff --git a/libs/android-support-appcompat-v7-exploded-aar/build.xml b/libs/android-support-appcompat-v7-exploded-aar/build.xml deleted file mode 100644 index 0e2aa70ec57..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/build.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/libs/android-support-v4.jar b/libs/android-support-appcompat-v7-exploded-aar/libs/android-support-v4.jar deleted file mode 100644 index 7b78bb8ee86..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/libs/android-support-v4.jar and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/libs/android-support-v7-appcompat.jar b/libs/android-support-appcompat-v7-exploded-aar/libs/android-support-v7-appcompat.jar deleted file mode 100644 index 830a4936a6b..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/libs/android-support-v7-appcompat.jar and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/project.properties b/libs/android-support-appcompat-v7-exploded-aar/project.properties deleted file mode 100644 index 362a0a3082a..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/project.properties +++ /dev/null @@ -1,15 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must be checked in Version Control Systems. -# -# To customize properties used by the Ant build system edit -# "ant.properties", and override values to adapt the script to your -# project structure. -# -# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): -#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt - -# Project target. -target=android-22 -android.library=true diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_fade_in.xml b/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_fade_in.xml deleted file mode 100644 index da7ee295c99..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_fade_in.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_fade_out.xml b/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_fade_out.xml deleted file mode 100644 index c81b39a9b13..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_fade_out.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_grow_fade_in_from_bottom.xml b/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_grow_fade_in_from_bottom.xml deleted file mode 100644 index 79d02d44ca6..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_grow_fade_in_from_bottom.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_popup_enter.xml b/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_popup_enter.xml deleted file mode 100644 index 91664da17ee..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_popup_enter.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_popup_exit.xml b/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_popup_exit.xml deleted file mode 100644 index db7e8073a84..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_popup_exit.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_shrink_fade_out_from_bottom.xml b/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_shrink_fade_out_from_bottom.xml deleted file mode 100644 index 9a23cd2025a..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_shrink_fade_out_from_bottom.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_slide_in_bottom.xml b/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_slide_in_bottom.xml deleted file mode 100644 index 1afa8febc52..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_slide_in_bottom.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_slide_in_top.xml b/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_slide_in_top.xml deleted file mode 100644 index ab824f2e4ac..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_slide_in_top.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_slide_out_bottom.xml b/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_slide_out_bottom.xml deleted file mode 100644 index b309fe89c64..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_slide_out_bottom.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_slide_out_top.xml b/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_slide_out_top.xml deleted file mode 100644 index e84d1c7fb6e..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/anim/abc_slide_out_top.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color-v11/abc_background_cache_hint_selector_material_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color-v11/abc_background_cache_hint_selector_material_dark.xml deleted file mode 100644 index e0160766e08..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/color-v11/abc_background_cache_hint_selector_material_dark.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color-v11/abc_background_cache_hint_selector_material_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color-v11/abc_background_cache_hint_selector_material_light.xml deleted file mode 100644 index 290faf1a0e0..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/color-v11/abc_background_cache_hint_selector_material_light.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_background_cache_hint_selector_material_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_background_cache_hint_selector_material_dark.xml deleted file mode 100644 index 9a7af53d4ec..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_background_cache_hint_selector_material_dark.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_background_cache_hint_selector_material_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_background_cache_hint_selector_material_light.xml deleted file mode 100644 index aa53f3577e8..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_background_cache_hint_selector_material_light.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_disable_only_material_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_disable_only_material_dark.xml deleted file mode 100644 index 724c2557dad..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_disable_only_material_dark.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_disable_only_material_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_disable_only_material_light.xml deleted file mode 100644 index 7395e680c65..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_disable_only_material_light.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_material_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_material_dark.xml deleted file mode 100644 index 7d66d02d637..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_material_dark.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_material_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_material_light.xml deleted file mode 100644 index 105b643ddb4..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_primary_text_material_light.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_search_url_text.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_search_url_text.xml deleted file mode 100644 index 0631d5d4ca1..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_search_url_text.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_secondary_text_material_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_secondary_text_material_dark.xml deleted file mode 100644 index 6399b1d028f..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_secondary_text_material_dark.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_secondary_text_material_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_secondary_text_material_light.xml deleted file mode 100644 index 87c015a4cd6..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/color/abc_secondary_text_material_light.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/switch_thumb_material_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/switch_thumb_material_dark.xml deleted file mode 100644 index 6153382c7c5..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/color/switch_thumb_material_dark.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/color/switch_thumb_material_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/color/switch_thumb_material_light.xml deleted file mode 100644 index 94d71148213..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/color/switch_thumb_material_light.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_share_pack_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_share_pack_mtrl_alpha.9.png deleted file mode 100644 index 4d9f861f888..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ab_share_pack_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_check_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_check_to_on_mtrl_000.png deleted file mode 100644 index 99110085fe9..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_check_to_on_mtrl_000.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_check_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_check_to_on_mtrl_015.png deleted file mode 100644 index 69ff9dde3a8..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_check_to_on_mtrl_015.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_radio_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_radio_to_on_mtrl_000.png deleted file mode 100644 index 9218981b4f2..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_radio_to_on_mtrl_000.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_radio_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_radio_to_on_mtrl_015.png deleted file mode 100644 index a58857635f2..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_radio_to_on_mtrl_015.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_rating_star_off_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_rating_star_off_mtrl_alpha.png deleted file mode 100644 index b184dbc69df..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_rating_star_off_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_rating_star_on_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_rating_star_on_mtrl_alpha.png deleted file mode 100644 index 6549c52760b..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_rating_star_on_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_switch_to_on_mtrl_00001.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_switch_to_on_mtrl_00001.9.png deleted file mode 100644 index 88f1767fa90..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_switch_to_on_mtrl_00001.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_switch_to_on_mtrl_00012.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_switch_to_on_mtrl_00012.9.png deleted file mode 100644 index d5e1a001134..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_btn_switch_to_on_mtrl_00012.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_top_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_top_mtrl_alpha.9.png deleted file mode 100644 index 2264398234b..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_cab_background_top_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_ab_back_mtrl_am_alpha.png deleted file mode 100644 index f61e8e3e3cf..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_ab_back_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_mtrl_alpha.png deleted file mode 100644 index 0fd15563a26..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_clear_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_commit_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_commit_search_api_mtrl_alpha.png deleted file mode 100644 index 65ccd8f4107..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_commit_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_go_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_go_search_api_mtrl_alpha.png deleted file mode 100644 index b9ff1db5742..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_go_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_copy_mtrl_am_alpha.png deleted file mode 100644 index 70eb0737882..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_copy_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_cut_mtrl_alpha.png deleted file mode 100644 index e78bcaf57a7..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_cut_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png deleted file mode 100644 index 9a878205777..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_paste_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_paste_mtrl_am_alpha.png deleted file mode 100644 index 8610c501502..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_paste_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_selectall_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_selectall_mtrl_alpha.png deleted file mode 100644 index 2d971a94bfe..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_selectall_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_share_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_share_mtrl_alpha.png deleted file mode 100644 index ee40812968b..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_menu_share_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_search_api_mtrl_alpha.png deleted file mode 100644 index b9baa0cca92..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_voice_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_voice_search_api_mtrl_alpha.png deleted file mode 100644 index a87d2cdc760..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_ic_voice_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_divider_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_divider_mtrl_alpha.9.png deleted file mode 100644 index 1e571f5c6f7..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_divider_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_focused_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_focused_holo.9.png deleted file mode 100644 index c09ec90e0f3..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_focused_holo.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_longpressed_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_longpressed_holo.9.png deleted file mode 100644 index 62fbd2cb505..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_longpressed_holo.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_pressed_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_pressed_holo_dark.9.png deleted file mode 100644 index 2f6ef9160a8..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_pressed_holo_dark.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_pressed_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_pressed_holo_light.9.png deleted file mode 100644 index 863ce95f61c..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_pressed_holo_light.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png deleted file mode 100644 index b6d467774e7..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png deleted file mode 100644 index e01c7392a90..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_hardkey_panel_mtrl_mult.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_hardkey_panel_mtrl_mult.9.png deleted file mode 100644 index 2cf413c5c96..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_menu_hardkey_panel_mtrl_mult.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_popup_background_mtrl_mult.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_popup_background_mtrl_mult.9.png deleted file mode 100644 index 9d8451aab1b..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_popup_background_mtrl_mult.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_mtrl_am_alpha.9.png deleted file mode 100644 index 9de02639199..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_spinner_mtrl_am_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_switch_track_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_switch_track_mtrl_alpha.9.png deleted file mode 100644 index 56436a1ccca..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_switch_track_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_indicator_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_indicator_mtrl_alpha.9.png deleted file mode 100644 index 4b0b10a7a3e..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_tab_indicator_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_text_cursor_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_text_cursor_mtrl_alpha.9.png deleted file mode 100644 index 5e0bf843ecc..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_text_cursor_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_activated_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_activated_mtrl_alpha.9.png deleted file mode 100644 index 5b13bc17add..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_activated_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_default_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_default_mtrl_alpha.9.png deleted file mode 100644 index 0078bf6b6ba..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_default_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_activated_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_activated_mtrl_alpha.9.png deleted file mode 100644 index a74ab260c10..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_activated_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_default_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_default_mtrl_alpha.9.png deleted file mode 100644 index 6282df4e69e..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-hdpi/abc_textfield_search_default_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_ab_back_mtrl_am_alpha.png deleted file mode 100644 index 2e1062fa99c..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_ab_back_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_menu_copy_mtrl_am_alpha.png deleted file mode 100644 index a262b0c872c..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_menu_copy_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_menu_cut_mtrl_alpha.png deleted file mode 100644 index 9ed43ca4d7c..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_ic_menu_cut_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_spinner_mtrl_am_alpha.9.png deleted file mode 100644 index 4cd8a27c8bb..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-hdpi/abc_spinner_mtrl_am_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_ab_back_mtrl_am_alpha.png deleted file mode 100644 index e300b7cfc79..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_ab_back_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_menu_copy_mtrl_am_alpha.png deleted file mode 100644 index 05b1e119c44..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_menu_copy_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_menu_cut_mtrl_alpha.png deleted file mode 100644 index aa7b3238b3d..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_ic_menu_cut_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_spinner_mtrl_am_alpha.9.png deleted file mode 100644 index d02a5da113e..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-mdpi/abc_spinner_mtrl_am_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_ab_back_mtrl_am_alpha.png deleted file mode 100644 index a188f2fbec8..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_ab_back_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_menu_copy_mtrl_am_alpha.png deleted file mode 100644 index e95ba942d63..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_menu_copy_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_menu_cut_mtrl_alpha.png deleted file mode 100644 index 87bf8d36b15..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_ic_menu_cut_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_spinner_mtrl_am_alpha.9.png deleted file mode 100644 index b097e48a263..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xhdpi/abc_spinner_mtrl_am_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_ab_back_mtrl_am_alpha.png deleted file mode 100644 index de371581598..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_ab_back_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png deleted file mode 100644 index ac86165d5ec..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_menu_cut_mtrl_alpha.png deleted file mode 100644 index 8b2adf6bd5e..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_ic_menu_cut_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_spinner_mtrl_am_alpha.9.png deleted file mode 100644 index 0b895042f8d..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxhdpi/abc_spinner_mtrl_am_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_ab_back_mtrl_am_alpha.png deleted file mode 100644 index 7dc69341d28..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_ab_back_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png deleted file mode 100644 index 884cd1279bb..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_menu_cut_mtrl_alpha.png deleted file mode 100644 index 90fe333ac35..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_ic_menu_cut_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_spinner_mtrl_am_alpha.9.png deleted file mode 100644 index 930630de586..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-ldrtl-xxxhdpi/abc_spinner_mtrl_am_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_share_pack_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_share_pack_mtrl_alpha.9.png deleted file mode 100644 index fa0ed8fe952..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ab_share_pack_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_check_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_check_to_on_mtrl_000.png deleted file mode 100644 index 7a9fcbcbfe5..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_check_to_on_mtrl_000.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_check_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_check_to_on_mtrl_015.png deleted file mode 100644 index 3b052e5774d..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_check_to_on_mtrl_015.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_radio_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_radio_to_on_mtrl_000.png deleted file mode 100644 index 96a86931cbf..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_radio_to_on_mtrl_000.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_radio_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_radio_to_on_mtrl_015.png deleted file mode 100644 index 827d63425d7..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_radio_to_on_mtrl_015.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_rating_star_off_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_rating_star_off_mtrl_alpha.png deleted file mode 100644 index 09084757b1f..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_rating_star_off_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_rating_star_on_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_rating_star_on_mtrl_alpha.png deleted file mode 100644 index a5a437f3d10..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_rating_star_on_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_switch_to_on_mtrl_00001.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_switch_to_on_mtrl_00001.9.png deleted file mode 100644 index d890a62a040..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_switch_to_on_mtrl_00001.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_switch_to_on_mtrl_00012.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_switch_to_on_mtrl_00012.9.png deleted file mode 100644 index 0620439460d..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_btn_switch_to_on_mtrl_00012.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_top_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_top_mtrl_alpha.9.png deleted file mode 100644 index 038e000864a..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_cab_background_top_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_ab_back_mtrl_am_alpha.png deleted file mode 100644 index 8043d4cac88..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_ab_back_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_mtrl_alpha.png deleted file mode 100644 index e80681aeb73..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_clear_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_commit_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_commit_search_api_mtrl_alpha.png deleted file mode 100644 index 9603e76e27e..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_commit_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_go_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_go_search_api_mtrl_alpha.png deleted file mode 100644 index 44c14232168..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_go_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_copy_mtrl_am_alpha.png deleted file mode 100644 index 80c069557c2..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_copy_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_cut_mtrl_alpha.png deleted file mode 100644 index 3966d6ad8c4..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_cut_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png deleted file mode 100644 index 017e45edec4..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_paste_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_paste_mtrl_am_alpha.png deleted file mode 100644 index ec0cff49358..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_paste_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_selectall_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_selectall_mtrl_alpha.png deleted file mode 100644 index 966938b9d80..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_selectall_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_share_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_share_mtrl_alpha.png deleted file mode 100644 index d05f969e998..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_menu_share_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_search_api_mtrl_alpha.png deleted file mode 100644 index 451818ce541..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_voice_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_voice_search_api_mtrl_alpha.png deleted file mode 100644 index a216da173dc..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_ic_voice_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_divider_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_divider_mtrl_alpha.9.png deleted file mode 100644 index 1e571f5c6f7..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_divider_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_focused_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_focused_holo.9.png deleted file mode 100644 index addb54a2266..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_focused_holo.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_longpressed_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_longpressed_holo.9.png deleted file mode 100644 index 5fcd5b207a0..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_longpressed_holo.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_pressed_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_pressed_holo_dark.9.png deleted file mode 100644 index 251b98913d0..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_pressed_holo_dark.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_pressed_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_pressed_holo_light.9.png deleted file mode 100644 index 01efec045b9..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_pressed_holo_light.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png deleted file mode 100644 index f1d1b61708b..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png deleted file mode 100644 index 10851f6c87c..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_hardkey_panel_mtrl_mult.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_hardkey_panel_mtrl_mult.9.png deleted file mode 100644 index fe0ec49abce..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_menu_hardkey_panel_mtrl_mult.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_popup_background_mtrl_mult.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_popup_background_mtrl_mult.9.png deleted file mode 100644 index 5f55cd5539c..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_popup_background_mtrl_mult.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_mtrl_am_alpha.9.png deleted file mode 100644 index ed75cb8128c..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_spinner_mtrl_am_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_switch_track_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_switch_track_mtrl_alpha.9.png deleted file mode 100644 index fcd81de0c29..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_switch_track_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_indicator_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_indicator_mtrl_alpha.9.png deleted file mode 100644 index 12b0a79c588..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_tab_indicator_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_text_cursor_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_text_cursor_mtrl_alpha.9.png deleted file mode 100644 index 36348a8b9a7..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_text_cursor_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_activated_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_activated_mtrl_alpha.9.png deleted file mode 100644 index 3ffa25193cb..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_activated_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_default_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_default_mtrl_alpha.9.png deleted file mode 100644 index 0eb61f15213..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_default_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_activated_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_activated_mtrl_alpha.9.png deleted file mode 100644 index 0c766f30dba..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_activated_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_default_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_default_mtrl_alpha.9.png deleted file mode 100644 index 4f66d7adce1..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-mdpi/abc_textfield_search_default_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_share_pack_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_share_pack_mtrl_alpha.9.png deleted file mode 100644 index 6284eaaa17d..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ab_share_pack_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_check_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_check_to_on_mtrl_000.png deleted file mode 100644 index 49025208b60..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_check_to_on_mtrl_000.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_check_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_check_to_on_mtrl_015.png deleted file mode 100644 index 59a683ab60d..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_check_to_on_mtrl_015.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_radio_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_radio_to_on_mtrl_000.png deleted file mode 100644 index 03bf49cc5ea..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_radio_to_on_mtrl_000.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_radio_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_radio_to_on_mtrl_015.png deleted file mode 100644 index 342323b4b50..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_radio_to_on_mtrl_015.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_rating_star_off_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_rating_star_off_mtrl_alpha.png deleted file mode 100644 index c0333f982c1..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_rating_star_off_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_rating_star_on_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_rating_star_on_mtrl_alpha.png deleted file mode 100644 index 2f29c39cdff..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_rating_star_on_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_switch_to_on_mtrl_00001.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_switch_to_on_mtrl_00001.9.png deleted file mode 100644 index a854864d7df..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_switch_to_on_mtrl_00001.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_switch_to_on_mtrl_00012.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_switch_to_on_mtrl_00012.9.png deleted file mode 100644 index 726b1dc59e3..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_btn_switch_to_on_mtrl_00012.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_top_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_top_mtrl_alpha.9.png deleted file mode 100644 index 600178a98a9..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_cab_background_top_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_ab_back_mtrl_am_alpha.png deleted file mode 100644 index c465e82fc9c..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_ab_back_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_mtrl_alpha.png deleted file mode 100644 index 76e07f0970a..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_clear_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_commit_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_commit_search_api_mtrl_alpha.png deleted file mode 100644 index 1015e1f443d..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_commit_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_go_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_go_search_api_mtrl_alpha.png deleted file mode 100644 index b3fa6bc2f09..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_go_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_copy_mtrl_am_alpha.png deleted file mode 100644 index c8a6d258534..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_copy_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_cut_mtrl_alpha.png deleted file mode 100644 index 3c5e683e7c5..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_cut_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png deleted file mode 100644 index f87733af1c4..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_paste_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_paste_mtrl_am_alpha.png deleted file mode 100644 index 9aabc43ce6e..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_paste_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_selectall_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_selectall_mtrl_alpha.png deleted file mode 100644 index c039c8e0b03..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_selectall_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_share_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_share_mtrl_alpha.png deleted file mode 100644 index b57ee1935ef..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_menu_share_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_search_api_mtrl_alpha.png deleted file mode 100644 index 76f26965579..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_voice_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_voice_search_api_mtrl_alpha.png deleted file mode 100644 index d0385ba4ce2..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_ic_voice_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_divider_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_divider_mtrl_alpha.9.png deleted file mode 100644 index 1e571f5c6f7..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_divider_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_focused_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_focused_holo.9.png deleted file mode 100644 index 67c25aefff2..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_focused_holo.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_longpressed_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_longpressed_holo.9.png deleted file mode 100644 index 17c34a1a93c..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_longpressed_holo.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_pressed_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_pressed_holo_dark.9.png deleted file mode 100644 index 988548a1036..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_pressed_holo_dark.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_pressed_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_pressed_holo_light.9.png deleted file mode 100644 index 15fcf6a3220..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_pressed_holo_light.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png deleted file mode 100644 index 65275b38c73..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png deleted file mode 100644 index 5b58e760540..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_hardkey_panel_mtrl_mult.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_hardkey_panel_mtrl_mult.9.png deleted file mode 100644 index 09d10225d8a..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_menu_hardkey_panel_mtrl_mult.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_popup_background_mtrl_mult.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_popup_background_mtrl_mult.9.png deleted file mode 100644 index b5dd854b20c..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_popup_background_mtrl_mult.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_mtrl_am_alpha.9.png deleted file mode 100644 index bcf6b7f059f..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_spinner_mtrl_am_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_switch_track_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_switch_track_mtrl_alpha.9.png deleted file mode 100644 index cd1396bca97..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_switch_track_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_indicator_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_indicator_mtrl_alpha.9.png deleted file mode 100644 index 2242d2f94b9..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_tab_indicator_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_text_cursor_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_text_cursor_mtrl_alpha.9.png deleted file mode 100644 index 666b10a2f2d..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_text_cursor_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_activated_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_activated_mtrl_alpha.9.png deleted file mode 100644 index 8ff3a8304c1..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_activated_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_default_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_default_mtrl_alpha.9.png deleted file mode 100644 index e7e693a7b81..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_default_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_activated_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_activated_mtrl_alpha.9.png deleted file mode 100644 index 819171ad650..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_activated_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_default_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_default_mtrl_alpha.9.png deleted file mode 100644 index 4def8c8fabd..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xhdpi/abc_textfield_search_default_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_share_pack_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_share_pack_mtrl_alpha.9.png deleted file mode 100644 index 4eae28fde7e..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ab_share_pack_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_check_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_check_to_on_mtrl_000.png deleted file mode 100644 index accf80e4af5..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_check_to_on_mtrl_000.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_check_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_check_to_on_mtrl_015.png deleted file mode 100644 index 8c82ec3d7a1..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_check_to_on_mtrl_015.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_radio_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_radio_to_on_mtrl_000.png deleted file mode 100644 index 8fc0a9b8793..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_radio_to_on_mtrl_000.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_radio_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_radio_to_on_mtrl_015.png deleted file mode 100644 index 92b712e5d4c..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_radio_to_on_mtrl_015.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_rating_star_off_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_rating_star_off_mtrl_alpha.png deleted file mode 100644 index 78bbeba1021..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_rating_star_off_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_rating_star_on_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_rating_star_on_mtrl_alpha.png deleted file mode 100644 index c4ba8e64fdd..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_rating_star_on_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_switch_to_on_mtrl_00001.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_switch_to_on_mtrl_00001.9.png deleted file mode 100644 index f026a41c853..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_switch_to_on_mtrl_00001.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_switch_to_on_mtrl_00012.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_switch_to_on_mtrl_00012.9.png deleted file mode 100644 index c8b9f68939f..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_btn_switch_to_on_mtrl_00012.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_top_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_top_mtrl_alpha.9.png deleted file mode 100644 index f6d2f3294f5..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_cab_background_top_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_ab_back_mtrl_am_alpha.png deleted file mode 100644 index 39178bf31a9..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_ab_back_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_mtrl_alpha.png deleted file mode 100644 index f54f4f9d110..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_clear_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_commit_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_commit_search_api_mtrl_alpha.png deleted file mode 100644 index 65cf0c1eb9c..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_commit_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_go_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_go_search_api_mtrl_alpha.png deleted file mode 100644 index d0416237311..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_go_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png deleted file mode 100644 index 9dff893e772..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_cut_mtrl_alpha.png deleted file mode 100644 index a1f8c333944..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_cut_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png deleted file mode 100644 index 28a3bbf21cb..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_paste_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_paste_mtrl_am_alpha.png deleted file mode 100644 index 29a4e529518..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_paste_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_selectall_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_selectall_mtrl_alpha.png deleted file mode 100644 index 162ab9847ac..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_selectall_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_share_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_share_mtrl_alpha.png deleted file mode 100644 index a1866ba45f1..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_menu_share_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_search_api_mtrl_alpha.png deleted file mode 100644 index d967ae70fad..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_voice_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_voice_search_api_mtrl_alpha.png deleted file mode 100644 index 5baef9ff2f5..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_ic_voice_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_divider_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_divider_mtrl_alpha.9.png deleted file mode 100644 index 987b2bc25a2..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_divider_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_focused_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_focused_holo.9.png deleted file mode 100644 index 8b050e85514..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_focused_holo.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_longpressed_holo.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_longpressed_holo.9.png deleted file mode 100644 index 00e370a1a98..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_longpressed_holo.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_pressed_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_pressed_holo_dark.9.png deleted file mode 100644 index 719c7b5ebf8..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_pressed_holo_dark.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_pressed_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_pressed_holo_light.9.png deleted file mode 100644 index 75bd5803fd0..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_pressed_holo_light.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_selector_disabled_holo_dark.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_selector_disabled_holo_dark.9.png deleted file mode 100644 index 9cc366665cc..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_selector_disabled_holo_dark.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_selector_disabled_holo_light.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_selector_disabled_holo_light.9.png deleted file mode 100644 index 224a08157f8..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_list_selector_disabled_holo_light.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_hardkey_panel_mtrl_mult.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_hardkey_panel_mtrl_mult.9.png deleted file mode 100644 index f7f306db29b..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_menu_hardkey_panel_mtrl_mult.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_popup_background_mtrl_mult.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_popup_background_mtrl_mult.9.png deleted file mode 100644 index ee4bfe7d0b1..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_popup_background_mtrl_mult.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_mtrl_am_alpha.9.png deleted file mode 100644 index 6940b603ea0..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_spinner_mtrl_am_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_switch_track_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_switch_track_mtrl_alpha.9.png deleted file mode 100644 index 96bec46c2e8..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_switch_track_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_indicator_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_indicator_mtrl_alpha.9.png deleted file mode 100644 index eeb74c8693e..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_tab_indicator_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_text_cursor_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_text_cursor_mtrl_alpha.9.png deleted file mode 100644 index 08ee2b4779b..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_text_cursor_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_activated_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_activated_mtrl_alpha.9.png deleted file mode 100644 index 4d3d3a4d05b..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_activated_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_default_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_default_mtrl_alpha.9.png deleted file mode 100644 index c5acb84f044..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_default_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_activated_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_activated_mtrl_alpha.9.png deleted file mode 100644 index 30328ae1d2e..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_activated_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_default_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_default_mtrl_alpha.9.png deleted file mode 100644 index d4f3650622c..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxhdpi/abc_textfield_search_default_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_check_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_check_to_on_mtrl_000.png deleted file mode 100644 index 4dc870e49b3..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_check_to_on_mtrl_000.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_check_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_check_to_on_mtrl_015.png deleted file mode 100644 index 4e18de21a61..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_check_to_on_mtrl_015.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_radio_to_on_mtrl_000.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_radio_to_on_mtrl_000.png deleted file mode 100644 index 5fa326654ef..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_radio_to_on_mtrl_000.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_radio_to_on_mtrl_015.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_radio_to_on_mtrl_015.png deleted file mode 100644 index c11cb2ec658..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_radio_to_on_mtrl_015.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_switch_to_on_mtrl_00001.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_switch_to_on_mtrl_00001.9.png deleted file mode 100644 index 6fd5bfef8e8..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_switch_to_on_mtrl_00001.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_switch_to_on_mtrl_00012.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_switch_to_on_mtrl_00012.9.png deleted file mode 100644 index 99e68cc0e7f..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_btn_switch_to_on_mtrl_00012.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_ab_back_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_ab_back_mtrl_am_alpha.png deleted file mode 100644 index 16b0f1d4091..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_ab_back_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_clear_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_clear_mtrl_alpha.png deleted file mode 100644 index 7b2a480a021..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_clear_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png deleted file mode 100644 index fe93d873f6c..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_copy_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_cut_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_cut_mtrl_alpha.png deleted file mode 100644 index 4b2d05ab0cf..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_cut_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png deleted file mode 100644 index 16e9e14d5e9..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_paste_mtrl_am_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_paste_mtrl_am_alpha.png deleted file mode 100644 index 129d30f84ca..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_paste_mtrl_am_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_selectall_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_selectall_mtrl_alpha.png deleted file mode 100644 index fa6ab02ba9c..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_selectall_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_share_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_share_mtrl_alpha.png deleted file mode 100644 index 77318c71119..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_menu_share_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_search_api_mtrl_alpha.png deleted file mode 100644 index 098c25a1bbb..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_voice_search_api_mtrl_alpha.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_voice_search_api_mtrl_alpha.png deleted file mode 100644 index 76c4eeb26ba..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_ic_voice_search_api_mtrl_alpha.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_spinner_mtrl_am_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_spinner_mtrl_am_alpha.9.png deleted file mode 100644 index 6b8bc0a8e33..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_spinner_mtrl_am_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_switch_track_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_switch_track_mtrl_alpha.9.png deleted file mode 100644 index c2393abe68a..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_switch_track_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_tab_indicator_mtrl_alpha.9.png b/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_tab_indicator_mtrl_alpha.9.png deleted file mode 100644 index 929be19b09a..00000000000 Binary files a/libs/android-support-appcompat-v7-exploded-aar/res/drawable-xxxhdpi/abc_tab_indicator_mtrl_alpha.9.png and /dev/null differ diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_borderless_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_borderless_material.xml deleted file mode 100644 index f3894600ba0..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_borderless_material.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_check_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_check_material.xml deleted file mode 100644 index 4934a929d6e..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_check_material.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_default_mtrl_shape.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_default_mtrl_shape.xml deleted file mode 100644 index c50d4b10f00..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_default_mtrl_shape.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_radio_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_radio_material.xml deleted file mode 100644 index 6e9f9cf3741..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_btn_radio_material.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_cab_background_internal_bg.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_cab_background_internal_bg.xml deleted file mode 100644 index 9faf60ac616..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_cab_background_internal_bg.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_cab_background_top_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_cab_background_top_material.xml deleted file mode 100644 index f20add7e4b8..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_cab_background_top_material.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_dialog_material_background_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_dialog_material_background_dark.xml deleted file mode 100644 index 41c4a6f842d..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_dialog_material_background_dark.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_dialog_material_background_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_dialog_material_background_light.xml deleted file mode 100644 index 248b13af946..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_dialog_material_background_light.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_edit_text_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_edit_text_material.xml deleted file mode 100644 index 46c4e912003..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_edit_text_material.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_item_background_holo_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_item_background_holo_dark.xml deleted file mode 100644 index 72162c222ee..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_item_background_holo_dark.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_item_background_holo_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_item_background_holo_light.xml deleted file mode 100644 index 1c180b2ee48..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_item_background_holo_light.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_list_selector_background_transition_holo_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_list_selector_background_transition_holo_dark.xml deleted file mode 100644 index 0add58c86ac..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_list_selector_background_transition_holo_dark.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_list_selector_background_transition_holo_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_list_selector_background_transition_holo_light.xml deleted file mode 100644 index 0c1d3e67821..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_list_selector_background_transition_holo_light.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_list_selector_holo_dark.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_list_selector_holo_dark.xml deleted file mode 100644 index 1fb5fc4516d..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_list_selector_holo_dark.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_list_selector_holo_light.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_list_selector_holo_light.xml deleted file mode 100644 index 8d24047229b..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_list_selector_holo_light.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_ratingbar_full_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_ratingbar_full_material.xml deleted file mode 100644 index 535e2da25e5..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_ratingbar_full_material.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_spinner_textfield_background_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_spinner_textfield_background_material.xml deleted file mode 100644 index d0f46a80974..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_spinner_textfield_background_material.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_switch_thumb_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_switch_thumb_material.xml deleted file mode 100644 index ee96ec2e7ab..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_switch_thumb_material.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_tab_indicator_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_tab_indicator_material.xml deleted file mode 100644 index 1a8de1b69b5..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_tab_indicator_material.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_search_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_search_material.xml deleted file mode 100644 index 08873966e43..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/drawable/abc_textfield_search_material.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_title_item.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_title_item.xml deleted file mode 100644 index 194afb74cb8..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_title_item.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_up_container.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_up_container.xml deleted file mode 100644 index f46550a553e..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_up_container.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_view_list_nav_layout.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_view_list_nav_layout.xml deleted file mode 100644 index 5c105ab551c..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_bar_view_list_nav_layout.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_menu_item_layout.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_menu_item_layout.xml deleted file mode 100644 index 150ea50dc3c..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_menu_item_layout.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_menu_layout.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_menu_layout.xml deleted file mode 100644 index 4918d2fba96..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_menu_layout.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_mode_bar.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_mode_bar.xml deleted file mode 100644 index 34b56a1b09b..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_mode_bar.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_mode_close_item_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_mode_close_item_material.xml deleted file mode 100644 index dfc4debec48..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_action_mode_close_item_material.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_activity_chooser_view.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_activity_chooser_view.xml deleted file mode 100644 index 85fd94e37f1..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_activity_chooser_view.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_activity_chooser_view_list_item.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_activity_chooser_view_list_item.xml deleted file mode 100644 index 887427d8093..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_activity_chooser_view_list_item.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_alert_dialog_material.xml b/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_alert_dialog_material.xml deleted file mode 100644 index 9ba81fdb5fd..00000000000 --- a/libs/android-support-appcompat-v7-exploded-aar/res/layout/abc_alert_dialog_material.xml +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -