diff --git a/.github/workflows/github_debug_apk.yml b/.github/workflows/github_debug_apk.yml deleted file mode 100644 index 0e96de80..00000000 --- a/.github/workflows/github_debug_apk.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Github debug build - -on: workflow_dispatch -# push: -# branches: [ master ] -# pull_request: -# branches: [ master ] - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: set up JDK 1.8 - uses: actions/setup-java@v1 - with: - java-version: 1.8 - - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - - name: Build Github debug apk - run: ./gradlew assembleGithubDebug --stacktrace - - # Create artifact - - name: Create apk artifact - uses: actions/upload-artifact@v1 - with: - name: app - path: app/build/outputs/apk/github/debug/app-github-debug.apk diff --git a/.github/workflows/github_nightly_release.yml b/.github/workflows/github_nightly_release.yml new file mode 100644 index 00000000..ba4517a2 --- /dev/null +++ b/.github/workflows/github_nightly_release.yml @@ -0,0 +1,67 @@ +name: Github nightly + +on: + schedule: + # * is a special character in YAML so you have to quote this string + - cron: '27 10 * * *' # Everyday at 10:27:00 + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Build Github unsigned apk + run: ./gradlew assembleGithubRelease --stacktrace --project-prop pre + + - name: Sign APK + uses: r0adkll/sign-android-release@v1 + # ID used to access action output + id: sign_app + with: + releaseDirectory: app/build/outputs/apk/github/release + signingKeyBase64: ${{ secrets.SIGNING_KEY }} + alias: ${{ secrets.ALIAS }} + keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} + keyPassword: ${{ secrets.KEY_PASSWORD }} + + - name: Get current date and time + id: date + run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M%S')" + + # Create artifact + - name: Create apk artifact + uses: actions/upload-artifact@v2 + with: + name: barinsta_nightly_${{ steps.date.outputs.date }} + path: ${{steps.sign_app.outputs.signedReleaseFile}} + + # Send success notification + - name: Send success Telegram notification + if: ${{ success() }} + uses: appleboy/telegram-action@master + with: + to: ${{ secrets.TELEGRAM_BUILDS_CHANNEL_TO }} + token: ${{ secrets.TELEGRAM_BUILDS_BOT_TOKEN }} + message: "${{ github.workflow }} ${{ github.job }} #${{ github.run_number }} completed successfully.\nhttps://github.com/${{github.repository}}/actions/runs/${{github.run_id}}" + document: ${{steps.sign_app.outputs.signedReleaseFile}} + + # Send failure notification + - name: Send failure Telegram notification + if: ${{ failure() }} + uses: appleboy/telegram-action@master + with: + to: ${{ secrets.TELEGRAM_BUILDS_CHANNEL_TO }} + token: ${{ secrets.TELEGRAM_BUILDS_BOT_TOKEN }} + message: "${{ github.workflow }} ${{ github.job }} #${{ github.run_number }} failed.\nhttps://github.com/${{github.repository}}/actions/runs/${{github.run_id}}" diff --git a/.github/workflows/github_pre_release.yml b/.github/workflows/github_pre_release.yml new file mode 100644 index 00000000..22bf3620 --- /dev/null +++ b/.github/workflows/github_pre_release.yml @@ -0,0 +1,68 @@ +name: Github pre-release + +on: workflow_dispatch +# push: +# branches: [ master ] +# pull_request: +# branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Build Github unsigned pre-release apk + run: ./gradlew assembleGithubRelease --stacktrace --project-prop pre + + - name: Sign APK + uses: r0adkll/sign-android-release@v1 + # ID used to access action output + id: sign_app + with: + releaseDirectory: app/build/outputs/apk/github/release + signingKeyBase64: ${{ secrets.SIGNING_KEY }} + alias: ${{ secrets.ALIAS }} + keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }} + keyPassword: ${{ secrets.KEY_PASSWORD }} + + - name: Get current date and time + id: date + run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M%S')" + + # Create artifact + - name: Create apk artifact + uses: actions/upload-artifact@v2 + with: + name: barinsta_pre-release_${{ steps.date.outputs.date }} + path: ${{steps.sign_app.outputs.signedReleaseFile}} + + # Send success notification + - name: Send success Telegram notification + if: ${{ success() }} + uses: appleboy/telegram-action@master + with: + to: ${{ secrets.TELEGRAM_BUILDS_CHANNEL_TO }} + token: ${{ secrets.TELEGRAM_BUILDS_BOT_TOKEN }} + message: "${{ github.workflow }} ${{ github.job }} #${{ github.run_number }} completed successfully.\nURL: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}" + document: ${{steps.sign_app.outputs.signedReleaseFile}} + + # Send failure notification + - name: Send failure Telegram notification + if: ${{ failure() }} + uses: appleboy/telegram-action@master + with: + to: ${{ secrets.TELEGRAM_BUILDS_CHANNEL_TO }} + token: ${{ secrets.TELEGRAM_BUILDS_BOT_TOKEN }} + message: "${{ github.workflow }} ${{ github.job }} #${{ github.run_number }} failed.\nURL: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}" diff --git a/.gitignore b/.gitignore index d849b086..6b4a96c1 100755 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,6 @@ .externalNativeBuild .cxx app/release -/sentry.properties \ No newline at end of file +/sentry.properties +/app/fdroid/ +/app/github/ diff --git a/app/build.gradle b/app/build.gradle index 1f92ed58..9b39a1a2 100755 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,6 +2,15 @@ apply plugin: 'com.android.application' apply plugin: "androidx.navigation.safeargs" apply from: 'sentry.gradle' +def getGitHash = { -> + def stdout = new ByteArrayOutputStream() + exec { + commandLine 'git', 'rev-parse', '--short', 'HEAD' + standardOutput = stdout + } + return stdout.toString().trim() +} + android { compileSdkVersion 29 @@ -55,7 +64,7 @@ android { productFlavors { github { dimension "repo" - versionNameSuffix "-github" + // versionNameSuffix "-github" // appended in assemble task buildConfigField("String", "dsn", SENTRY_DSN) } @@ -64,6 +73,25 @@ android { versionNameSuffix "-fdroid" } } + + android.applicationVariants.all { variant -> + if (variant.flavorName != "github") return + variant.outputs.all { output -> + def builtType = variant.buildType.name + def versionName = variant.versionName + // def versionCode = variant.versionCode + def flavor = variant.flavorName + + def suffix = "${versionName}-${flavor}_${builtType}" // eg. 19.1.0-github_debug or release + if (builtType.toString() == 'release' && project.hasProperty("pre")) { + // append latest commit short hash for pre-release + suffix = "${versionName}.${getGitHash()}-${flavor}" // eg. 19.1.0.b123456-github + } + + output.versionNameOverride = suffix + outputFileName = "barinsta_${suffix}.apk" + } + } } configurations.all { @@ -129,9 +157,9 @@ dependencies { implementation 'com.github.ammargitham:uCrop:2.3-native-beta-2' implementation 'com.github.ammargitham:android-gpuimage:2.1.1-beta4' - debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.6' + debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.7' githubImplementation 'io.sentry:sentry-android:4.3.0' - + testImplementation 'org.junit.jupiter:junit-jupiter:5.7.1' } diff --git a/fastlane/metadata/android/fr-FR/full_description.txt b/fastlane/metadata/android/fr-FR/full_description.txt new file mode 100644 index 00000000..e7cd9384 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/full_description.txt @@ -0,0 +1,18 @@ +Si vous ne mettez pas en ligne pas de publications ou de stories sur Instagram, mais que vous ne pouvez pas vous en débarrasser à cause des personnes et des contenus, vous avez maintenant une alternative : Barinsta est un beau client qui vous permet de naviguer et d'interagir avec Instagram, tout en vous offrant plus d'options pour contrôler vos données. + +* Pour ceux qui n'ont pas de compte, vous pouvez accéder aux profils publiques/hashtags/lieux ! +* Pour ceux qui sont connectés, Barinsta peut obtenir la plupart des fonctionnalités de visualisation et d'interaction, avec des fonctionnalités supplémentaires telles que le téléchargement de messages/stories/avatars, la copie de textes, la comparaison des abonnés/abonnements, et plus encore ! +Avantages supplémentaires : + +* Empêche les décisions irrationnelles : Barinsta supprime le double-tap et vous oblige à cliquer dans les publications pour leur donner un like consciencieux. Il vous permet également d'accéder facilement aux publications que vous avez aimées via votre propre profil. +* Permet la personnalisation : choisissez vos thèmes et mises en page ! Vous pouvez même utiliser une disposition en grille pour le feed ! +* Permet de visionner à votre rythme : pas besoin de «tenir» une story ou de scroller sans fin ! Zoomez quand vous le souhaitez ! +* Ce n'est pas un mod : absolument AUCUNE dépendance de l'application Instagram réelle. +* Logiciel libre et open source : avec le code source de l'application ouvert pour inspection, pas besoin de s'inquiéter d'affaires louches ! +* Protège votre vie privée de vos amis : Barinsta vous permet de lire des messages et des stories secrètement, sans que vos amis le sachent ! +* Protège votre vie privée d'Instagram : l'application ne demande que ce dont elle a besoin pour vous montrer le contenu et ce que vous avez choisi dans les paramètres. Aucune communication avec des endpoints inutiles et seules des données minimales sont envoyées à Instagram. +*** S'il vous plait, utilisez cette application de manière responsable. *** + +Pour plus d'informations, visiter https://barinsta.austinhuang.me. + +(Nous étions auparavant connus sous le nom d'InstaGrabber.) diff --git a/fastlane/metadata/android/fr-FR/short_description.txt b/fastlane/metadata/android/fr-FR/short_description.txt new file mode 100644 index 00000000..ea5cdefc --- /dev/null +++ b/fastlane/metadata/android/fr-FR/short_description.txt @@ -0,0 +1 @@ +Client Instagram simple mais avancé