Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ff8f5199 authored by Jonathan Klee's avatar Jonathan Klee
Browse files

Murena specifics

parent a44c508c
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -36,3 +36,4 @@ tests/test_cases/local.properties
fastlane/report.xml

/gradle/verification-keyring.gpg
/app/keystore/murena-test.jks

.gitlab-ci.yml

0 → 100644
+83 −0
Original line number Diff line number Diff line
image: "registry.gitlab.e.foundation/e/os/docker-android-apps-cicd:latest"

stages:
  - build
  - rebase-on-upstream

variables:
  UPSTREAM_URL: https://github.com/nextcloud/notes-android.git
  UPSTREAM_DEFAULT_BRANCH: main
  NG_BRANCH: main-ng
  GRADLE_BUILD_TASKS: ":app:assembleDevDebug"
  JAVA_HOME: /usr/lib/jvm/java-21-openjdk-amd64

before_script:
  - export PATH="$JAVA_HOME/bin:$PATH"
  - export GRADLE_USER_HOME=$(pwd)/.gradle
  - chmod +x ./gradlew
  - java -version

cache:
  key: ${CI_PROJECT_ID}
  paths:
    - .gradle/

build:
  stage: build
  rules:
    - if: '$CI_PIPELINE_SOURCE != "schedule"'
  script:
    - ./gradlew $GRADLE_BUILD_TASKS --no-daemon

rebase-on-upstream:
  stage: rebase-on-upstream
  rules:
    - if: '$CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_REF_NAME == $NG_BRANCH'
  variables:
    CI_PROJECT_SSH_URL: git@gitlab.e.foundation:$CI_PROJECT_PATH
    GIT_STRATEGY: none
  before_script:
    - eval $(ssh-agent -s)
    - echo "${SSH_E_ROBOT_PRIVATE_KEY}" | tr -d '\r' | ssh-add -
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - echo "${SSH_KNOWN_HOSTS}" > ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts
    - git config --global user.email $GITLAB_USER_EMAIL
    - git config --global user.name "$GITLAB_USER_NAME"
    - cd $CI_BUILDS_DIR
    - rm -rf $CI_PROJECT_DIR
    - git clone $CI_PROJECT_SSH_URL $CI_PROJECT_DIR
    - cd $CI_PROJECT_DIR
    - export PATH="$JAVA_HOME/bin:$PATH"
    - export GRADLE_USER_HOME=$(pwd)/.gradle
    - chmod +x ./gradlew
    - java -version
  script:
    - git checkout $NG_BRANCH
    - PRE_REBASE_SHA="$(git rev-parse HEAD)"
    - git remote add upstream $UPSTREAM_URL
    - git fetch upstream $UPSTREAM_DEFAULT_BRANCH
    - UPSTREAM_SHA="$(git rev-parse upstream/$UPSTREAM_DEFAULT_BRANCH)"
    - |
      if ! git rebase upstream/$UPSTREAM_DEFAULT_BRANCH; then
        git rebase --abort
        echo "Rebase onto $UPSTREAM_SHA failed; main-ng untouched."
        exit 1
      fi
    - |
      if ! ./gradlew $GRADLE_BUILD_TASKS --no-daemon; then
        echo "Build failed after rebase; not force-pushing main-ng."
        exit 1
      fi
    - POST_REBASE_SHA="$(git rev-parse HEAD)"
    - git push --force-with-lease origin "$NG_BRANCH"
    - |
      if [ "$POST_REBASE_SHA" != "$PRE_REBASE_SHA" ]; then
        SNAPSHOT_TAG="main-ng-snapshots/$(date -u +%Y-%m-%d_%H%M%S)"
        git tag -a "$SNAPSHOT_TAG" -m "main-ng after rebase onto upstream/$UPSTREAM_DEFAULT_BRANCH @ $UPSTREAM_SHA"
        git push origin "$SNAPSHOT_TAG"
      else
        echo "main-ng unchanged after rebase (upstream had no new commits); no snapshot tag created."
      fi
    - git remote remove upstream
+24 −5
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ android {
    namespace = 'it.niedermann.owncloud.notes'

    defaultConfig {
        applicationId "it.niedermann.owncloud.notes"
        applicationId "foundation.e.notes.ng"
        minSdk 24
        compileSdk = 36
        targetSdk 36
@@ -30,12 +30,12 @@ android {

    compileOptions {
        coreLibraryDesugaringEnabled = true
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
        sourceCompatibility JavaVersion.VERSION_21
        targetCompatibility JavaVersion.VERSION_21
    }

    kotlinOptions {
        jvmTarget = '17'
        jvmTarget = '21'
    }

    buildFeatures {
@@ -43,6 +43,17 @@ android {
        buildConfig = true
    }

    signingConfigs {
        if (rootProject.file("../murena-test.jks").exists()) {
            murenaTest {
                storeFile rootProject.file("../murena-test.jks")
                storePassword "murena"
                keyAlias "murena"
                keyPassword "murena"
            }
        }
    }

    buildTypes {

        release {
@@ -52,6 +63,9 @@ android {
        debug {
            enableUnitTestCoverage true
            enableAndroidTestCoverage true
            if (signingConfigs.findByName("murenaTest") != null) {
                signingConfig signingConfigs.murenaTest
            }
        }
    }

@@ -65,7 +79,6 @@ android {
        }
        dev {
            dimension "version"
            applicationIdSuffix ".dev"
        }
        play {
            dimension "version"
@@ -100,6 +113,10 @@ android {
        abortOnError false
        disable 'MissingTranslation'
    }

    applicationVariants.all { variant ->
        variant.resValue "string", "notes_sync_authority", "${variant.applicationId}.sync"
    }
}

ext {
@@ -110,6 +127,8 @@ ext {
dependencies {
    coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'

    implementation 'foundation.e:elib:0.0.1-alpha11'

    implementation 'com.google.guava:guava:33.6.0-jre'
    implementation ('commons-httpclient:commons-httpclient:3.1') {
        exclude group: 'commons-logging', module: 'commons-logging'
+31 −0
Original line number Diff line number Diff line
@@ -13,10 +13,15 @@
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="com.owncloud.android.providers.PERMISSION" />
    <uses-permission android:name="foundation.e.accountmanager.ng.permission.ACCOUNT_EVENTS" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
    <uses-permission android:name="android.permission.READ_SYNC_STATS" />
    <queries>
        <package android:name="com.nextcloud.talk2" />
        <package android:name="com.nextcloud.client" />
        <package android:name="com.nextcloud.android.beta" />
        <package android:name="foundation.e.accountmanager.ng" />
    </queries>

    <application
@@ -209,5 +214,31 @@
            </intent-filter>
        </service>

        <receiver
            android:name=".importaccount.MurenaAccountRemovalReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="foundation.e.accountmanager.action.ACCOUNT_REMOVED" />
            </intent-filter>
        </receiver>

        <provider
            android:name=".importaccount.MurenaSyncStubProvider"
            android:authorities="@string/notes_sync_authority"
            android:exported="false"
            android:label="@string/app_name"
            android:syncable="true" />

        <service
            android:name=".importaccount.MurenaNotesSyncService"
            android:exported="true">
            <intent-filter>
                <action android:name="android.content.SyncAdapter" />
            </intent-filter>
            <meta-data
                android:name="android.content.SyncAdapter"
                android:resource="@xml/murena_notes_sync_adapter" />
        </service>

    </application>
</manifest>
+2 −2
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ public class NotesApplication extends Application {
    private static boolean isLocked = true;
    private static long lastInteraction = 0;
    private static String PREF_KEY_THEME;
    private static boolean isGridViewEnabled = false;
    private static boolean isGridViewEnabled = true;
    private static boolean isSwipeEnabled = true;
    private static BrandingUtil brandingUtil;

@@ -45,7 +45,7 @@ public class NotesApplication extends Application {
        setAppTheme(getAppTheme(getApplicationContext()));
        final var prefs = getDefaultSharedPreferences(getApplicationContext());
        lockedPreference = prefs.getBoolean(getString(R.string.pref_key_lock), false);
        isGridViewEnabled = getDefaultSharedPreferences(this).getBoolean(getString(R.string.pref_key_gridview), false);
        isGridViewEnabled = getDefaultSharedPreferences(this).getBoolean(getString(R.string.pref_key_gridview), true);
        isSwipeEnabled = getDefaultSharedPreferences(this).getBoolean(getString(R.string.pref_key_swipe_actions), true);
        super.onCreate();
        brandingUtil = BrandingUtil.getInstance(this);
Loading