From 3ce5b51a0f4a2d0d02e57da5ad69fb73763709fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= <sebastian@mobanisto.de> Date: Wed, 4 Aug 2021 17:43:36 +0200 Subject: [PATCH] Rename mailbox module; add core and cli modules --- build.gradle | 2 +- {mailbox => mailbox-android}/.gitignore | 0 {mailbox => mailbox-android}/build.gradle | 3 +- .../proguard-rules.pro | 0 .../src/main/AndroidManifest.xml | 6 +-- .../mailbox/android}/ApplicationComponent.kt | 2 +- .../mailbox/android}/MailboxApplication.kt | 2 +- .../android}/MailboxNotificationManager.kt | 3 +- .../mailbox/android}/MailboxService.kt | 4 +- .../mailbox/android}/MailboxViewModel.kt | 2 +- .../mailbox/android}/MainActivity.kt | 3 +- .../mailbox/android}/server/Routing.kt | 0 .../android}/server/WebServerManager.kt | 0 .../res/drawable/ic_launcher_foreground.xml | 0 .../src/main/res/layout/activity_main.xml | 2 +- .../res/mipmap-anydpi-v26/ic_launcher.xml | 0 .../mipmap-anydpi-v26/ic_launcher_round.xml | 0 .../src/main/res/values-night/themes.xml | 0 .../src/main/res/values/colors.xml | 0 .../res/values/ic_launcher_background.xml | 0 .../src/main/res/values/strings.xml | 0 .../src/main/res/values/themes.xml | 0 mailbox-cli/build.gradle | 39 ++++++++++++++ .../java/org/briarproject/mailbox/cli/Main.kt | 54 +++++++++++++++++++ mailbox-core/build.gradle | 26 +++++++++ .../org/briarproject/mailbox/core/Service.kt | 4 ++ settings.gradle | 4 +- 27 files changed, 142 insertions(+), 14 deletions(-) rename {mailbox => mailbox-android}/.gitignore (100%) rename {mailbox => mailbox-android}/build.gradle (97%) rename {mailbox => mailbox-android}/proguard-rules.pro (100%) rename {mailbox => mailbox-android}/src/main/AndroidManifest.xml (85%) rename {mailbox/src/main/java/org/briarproject/mailbox => mailbox-android/src/main/java/org/briarproject/mailbox/android}/ApplicationComponent.kt (73%) rename {mailbox/src/main/java/org/briarproject/mailbox => mailbox-android/src/main/java/org/briarproject/mailbox/android}/MailboxApplication.kt (86%) rename {mailbox/src/main/java/org/briarproject/mailbox => mailbox-android/src/main/java/org/briarproject/mailbox/android}/MailboxNotificationManager.kt (96%) rename {mailbox/src/main/java/org/briarproject/mailbox => mailbox-android/src/main/java/org/briarproject/mailbox/android}/MailboxService.kt (91%) rename {mailbox/src/main/java/org/briarproject/mailbox => mailbox-android/src/main/java/org/briarproject/mailbox/android}/MailboxViewModel.kt (93%) rename {mailbox/src/main/java/org/briarproject/mailbox => mailbox-android/src/main/java/org/briarproject/mailbox/android}/MainActivity.kt (91%) rename {mailbox/src/main/java/org/briarproject/mailbox => mailbox-android/src/main/java/org/briarproject/mailbox/android}/server/Routing.kt (100%) rename {mailbox/src/main/java/org/briarproject/mailbox => mailbox-android/src/main/java/org/briarproject/mailbox/android}/server/WebServerManager.kt (100%) rename {mailbox => mailbox-android}/src/main/res/drawable/ic_launcher_foreground.xml (100%) rename {mailbox => mailbox-android}/src/main/res/layout/activity_main.xml (96%) rename {mailbox => mailbox-android}/src/main/res/mipmap-anydpi-v26/ic_launcher.xml (100%) rename {mailbox => mailbox-android}/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml (100%) rename {mailbox => mailbox-android}/src/main/res/values-night/themes.xml (100%) rename {mailbox => mailbox-android}/src/main/res/values/colors.xml (100%) rename {mailbox => mailbox-android}/src/main/res/values/ic_launcher_background.xml (100%) rename {mailbox => mailbox-android}/src/main/res/values/strings.xml (100%) rename {mailbox => mailbox-android}/src/main/res/values/themes.xml (100%) create mode 100644 mailbox-cli/build.gradle create mode 100644 mailbox-cli/src/main/java/org/briarproject/mailbox/cli/Main.kt create mode 100644 mailbox-core/build.gradle create mode 100644 mailbox-core/src/main/java/org/briarproject/mailbox/core/Service.kt diff --git a/build.gradle b/build.gradle index d9beda76..36a5303e 100644 --- a/build.gradle +++ b/build.gradle @@ -19,6 +19,6 @@ allprojects { } } -task clean (type: Delete) { +task clean(type: Delete) { delete rootProject.buildDir } diff --git a/mailbox/.gitignore b/mailbox-android/.gitignore similarity index 100% rename from mailbox/.gitignore rename to mailbox-android/.gitignore diff --git a/mailbox/build.gradle b/mailbox-android/build.gradle similarity index 97% rename from mailbox/build.gradle rename to mailbox-android/build.gradle index 1e313bb4..a90a9f1c 100644 --- a/mailbox/build.gradle +++ b/mailbox-android/build.gradle @@ -44,7 +44,8 @@ android { } dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation project(path: ':mailbox-core', configuration: 'default') + implementation 'androidx.appcompat:appcompat:1.3.1' implementation "androidx.activity:activity-ktx:1.3.0" implementation "androidx.fragment:fragment-ktx:1.3.6" diff --git a/mailbox/proguard-rules.pro b/mailbox-android/proguard-rules.pro similarity index 100% rename from mailbox/proguard-rules.pro rename to mailbox-android/proguard-rules.pro diff --git a/mailbox/src/main/AndroidManifest.xml b/mailbox-android/src/main/AndroidManifest.xml similarity index 85% rename from mailbox/src/main/AndroidManifest.xml rename to mailbox-android/src/main/AndroidManifest.xml index 0e535a95..7ecc940b 100644 --- a/mailbox/src/main/AndroidManifest.xml +++ b/mailbox-android/src/main/AndroidManifest.xml @@ -8,7 +8,7 @@ <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <application - android:name=".MailboxApplication" + android:name=".android.MailboxApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" @@ -16,9 +16,9 @@ android:supportsRtl="true" android:theme="@style/Theme.Briarmailbox"> - <service android:name=".MailboxService" /> + <service android:name=".android.MailboxService" /> - <activity android:name=".MainActivity"> + <activity android:name=".android.MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> diff --git a/mailbox/src/main/java/org/briarproject/mailbox/ApplicationComponent.kt b/mailbox-android/src/main/java/org/briarproject/mailbox/android/ApplicationComponent.kt similarity index 73% rename from mailbox/src/main/java/org/briarproject/mailbox/ApplicationComponent.kt rename to mailbox-android/src/main/java/org/briarproject/mailbox/android/ApplicationComponent.kt index f9f2c756..72dab531 100644 --- a/mailbox/src/main/java/org/briarproject/mailbox/ApplicationComponent.kt +++ b/mailbox-android/src/main/java/org/briarproject/mailbox/android/ApplicationComponent.kt @@ -1,4 +1,4 @@ -package org.briarproject.mailbox +package org.briarproject.mailbox.android import dagger.Component diff --git a/mailbox/src/main/java/org/briarproject/mailbox/MailboxApplication.kt b/mailbox-android/src/main/java/org/briarproject/mailbox/android/MailboxApplication.kt similarity index 86% rename from mailbox/src/main/java/org/briarproject/mailbox/MailboxApplication.kt rename to mailbox-android/src/main/java/org/briarproject/mailbox/android/MailboxApplication.kt index 72f53354..ba587193 100644 --- a/mailbox/src/main/java/org/briarproject/mailbox/MailboxApplication.kt +++ b/mailbox-android/src/main/java/org/briarproject/mailbox/android/MailboxApplication.kt @@ -1,4 +1,4 @@ -package org.briarproject.mailbox +package org.briarproject.mailbox.android import androidx.multidex.MultiDexApplication import dagger.hilt.android.HiltAndroidApp diff --git a/mailbox/src/main/java/org/briarproject/mailbox/MailboxNotificationManager.kt b/mailbox-android/src/main/java/org/briarproject/mailbox/android/MailboxNotificationManager.kt similarity index 96% rename from mailbox/src/main/java/org/briarproject/mailbox/MailboxNotificationManager.kt rename to mailbox-android/src/main/java/org/briarproject/mailbox/android/MailboxNotificationManager.kt index 476aaaa0..942b7bb7 100644 --- a/mailbox/src/main/java/org/briarproject/mailbox/MailboxNotificationManager.kt +++ b/mailbox-android/src/main/java/org/briarproject/mailbox/android/MailboxNotificationManager.kt @@ -1,4 +1,4 @@ -package org.briarproject.mailbox +package org.briarproject.mailbox.android import android.app.Notification import android.app.NotificationChannel @@ -13,6 +13,7 @@ import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat.PRIORITY_MIN import androidx.core.content.ContextCompat.getSystemService import dagger.hilt.android.qualifiers.ApplicationContext +import org.briarproject.mailbox.R import javax.inject.Inject import javax.inject.Singleton diff --git a/mailbox/src/main/java/org/briarproject/mailbox/MailboxService.kt b/mailbox-android/src/main/java/org/briarproject/mailbox/android/MailboxService.kt similarity index 91% rename from mailbox/src/main/java/org/briarproject/mailbox/MailboxService.kt rename to mailbox-android/src/main/java/org/briarproject/mailbox/android/MailboxService.kt index be22c09a..6c9505fc 100644 --- a/mailbox/src/main/java/org/briarproject/mailbox/MailboxService.kt +++ b/mailbox-android/src/main/java/org/briarproject/mailbox/android/MailboxService.kt @@ -1,4 +1,4 @@ -package org.briarproject.mailbox +package org.briarproject.mailbox.android import android.app.Service import android.content.Context @@ -6,7 +6,7 @@ import android.content.Intent import android.os.IBinder import androidx.core.content.ContextCompat import dagger.hilt.android.AndroidEntryPoint -import org.briarproject.mailbox.MailboxNotificationManager.Companion.NOTIFICATION_MAIN_ID +import org.briarproject.mailbox.android.MailboxNotificationManager.Companion.NOTIFICATION_MAIN_ID import org.briarproject.mailbox.server.WebServerManager import javax.inject.Inject diff --git a/mailbox/src/main/java/org/briarproject/mailbox/MailboxViewModel.kt b/mailbox-android/src/main/java/org/briarproject/mailbox/android/MailboxViewModel.kt similarity index 93% rename from mailbox/src/main/java/org/briarproject/mailbox/MailboxViewModel.kt rename to mailbox-android/src/main/java/org/briarproject/mailbox/android/MailboxViewModel.kt index 2784d803..9ca00b30 100644 --- a/mailbox/src/main/java/org/briarproject/mailbox/MailboxViewModel.kt +++ b/mailbox-android/src/main/java/org/briarproject/mailbox/android/MailboxViewModel.kt @@ -1,4 +1,4 @@ -package org.briarproject.mailbox +package org.briarproject.mailbox.android import android.app.Application import androidx.lifecycle.AndroidViewModel diff --git a/mailbox/src/main/java/org/briarproject/mailbox/MainActivity.kt b/mailbox-android/src/main/java/org/briarproject/mailbox/android/MainActivity.kt similarity index 91% rename from mailbox/src/main/java/org/briarproject/mailbox/MainActivity.kt rename to mailbox-android/src/main/java/org/briarproject/mailbox/android/MainActivity.kt index 78ec3090..6d338040 100644 --- a/mailbox/src/main/java/org/briarproject/mailbox/MainActivity.kt +++ b/mailbox-android/src/main/java/org/briarproject/mailbox/android/MainActivity.kt @@ -1,4 +1,4 @@ -package org.briarproject.mailbox +package org.briarproject.mailbox.android import android.os.Bundle import android.widget.Button @@ -6,6 +6,7 @@ import android.widget.TextView import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity import dagger.hilt.android.AndroidEntryPoint +import org.briarproject.mailbox.R @AndroidEntryPoint class MainActivity : AppCompatActivity() { diff --git a/mailbox/src/main/java/org/briarproject/mailbox/server/Routing.kt b/mailbox-android/src/main/java/org/briarproject/mailbox/android/server/Routing.kt similarity index 100% rename from mailbox/src/main/java/org/briarproject/mailbox/server/Routing.kt rename to mailbox-android/src/main/java/org/briarproject/mailbox/android/server/Routing.kt diff --git a/mailbox/src/main/java/org/briarproject/mailbox/server/WebServerManager.kt b/mailbox-android/src/main/java/org/briarproject/mailbox/android/server/WebServerManager.kt similarity index 100% rename from mailbox/src/main/java/org/briarproject/mailbox/server/WebServerManager.kt rename to mailbox-android/src/main/java/org/briarproject/mailbox/android/server/WebServerManager.kt diff --git a/mailbox/src/main/res/drawable/ic_launcher_foreground.xml b/mailbox-android/src/main/res/drawable/ic_launcher_foreground.xml similarity index 100% rename from mailbox/src/main/res/drawable/ic_launcher_foreground.xml rename to mailbox-android/src/main/res/drawable/ic_launcher_foreground.xml diff --git a/mailbox/src/main/res/layout/activity_main.xml b/mailbox-android/src/main/res/layout/activity_main.xml similarity index 96% rename from mailbox/src/main/res/layout/activity_main.xml rename to mailbox-android/src/main/res/layout/activity_main.xml index d9571a8f..62bd8a4a 100644 --- a/mailbox/src/main/res/layout/activity_main.xml +++ b/mailbox-android/src/main/res/layout/activity_main.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".MainActivity"> + tools:context=".android.MainActivity"> <TextView android:id="@+id/text" diff --git a/mailbox/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/mailbox-android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from mailbox/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to mailbox-android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/mailbox/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/mailbox-android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml similarity index 100% rename from mailbox/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to mailbox-android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml diff --git a/mailbox/src/main/res/values-night/themes.xml b/mailbox-android/src/main/res/values-night/themes.xml similarity index 100% rename from mailbox/src/main/res/values-night/themes.xml rename to mailbox-android/src/main/res/values-night/themes.xml diff --git a/mailbox/src/main/res/values/colors.xml b/mailbox-android/src/main/res/values/colors.xml similarity index 100% rename from mailbox/src/main/res/values/colors.xml rename to mailbox-android/src/main/res/values/colors.xml diff --git a/mailbox/src/main/res/values/ic_launcher_background.xml b/mailbox-android/src/main/res/values/ic_launcher_background.xml similarity index 100% rename from mailbox/src/main/res/values/ic_launcher_background.xml rename to mailbox-android/src/main/res/values/ic_launcher_background.xml diff --git a/mailbox/src/main/res/values/strings.xml b/mailbox-android/src/main/res/values/strings.xml similarity index 100% rename from mailbox/src/main/res/values/strings.xml rename to mailbox-android/src/main/res/values/strings.xml diff --git a/mailbox/src/main/res/values/themes.xml b/mailbox-android/src/main/res/values/themes.xml similarity index 100% rename from mailbox/src/main/res/values/themes.xml rename to mailbox-android/src/main/res/values/themes.xml diff --git a/mailbox-cli/build.gradle b/mailbox-cli/build.gradle new file mode 100644 index 00000000..fac4db80 --- /dev/null +++ b/mailbox-cli/build.gradle @@ -0,0 +1,39 @@ +import java.util.jar.JarEntry +import java.util.jar.JarFile +import java.util.jar.JarOutputStream + +import static java.util.Collections.list + +plugins { + id 'application' + id 'idea' + id 'org.jetbrains.kotlin.jvm' + id 'org.jetbrains.kotlin.kapt' +} + +sourceCompatibility = 1.8 +targetCompatibility = 1.8 + +dependencies { + implementation project(path: ':mailbox-core', configuration: 'default') + + implementation 'org.slf4j:slf4j-simple:1.7.30' + implementation 'com.github.ajalt:clikt:2.2.0' + + def junitVersion = '5.5.2' + testImplementation "org.junit.jupiter:junit-jupiter-api:$junitVersion" + testImplementation "org.junit.jupiter:junit-jupiter-params:$junitVersion" + testRuntime "org.junit.jupiter:junit-jupiter-engine:$junitVersion" + testImplementation 'io.mockk:mockk:1.10.4' +} + +application { + mainClassName = 'org.briarproject.mailbox.cli.MainKt' +} + +test { + useJUnitPlatform() + testLogging { + events "passed", "skipped", "failed" + } +} diff --git a/mailbox-cli/src/main/java/org/briarproject/mailbox/cli/Main.kt b/mailbox-cli/src/main/java/org/briarproject/mailbox/cli/Main.kt new file mode 100644 index 00000000..ab136937 --- /dev/null +++ b/mailbox-cli/src/main/java/org/briarproject/mailbox/cli/Main.kt @@ -0,0 +1,54 @@ +package org.briarproject.mailbox.cli + +import com.github.ajalt.clikt.core.CliktCommand +import com.github.ajalt.clikt.parameters.options.counted +import com.github.ajalt.clikt.parameters.options.default +import com.github.ajalt.clikt.parameters.options.flag +import com.github.ajalt.clikt.parameters.options.option +import com.github.ajalt.clikt.parameters.types.int +import org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY +import java.io.File +import java.io.File.separator +import java.io.IOException +import java.lang.System.getProperty +import java.lang.System.setProperty +import java.nio.file.Files.setPosixFilePermissions +import java.nio.file.attribute.PosixFilePermission +import java.nio.file.attribute.PosixFilePermission.* +import java.util.logging.Level.* +import java.util.logging.LogManager + +private class Main : CliktCommand( + name = "briar-mailbox", + help = "Command line interface for the Briar Mailbox" +) { + private val debug by option("--debug", "-d", help = "Enable printing of debug messages").flag( + default = false + ) + private val verbosity by option( + "--verbose", + "-v", + help = "Print verbose log messages" + ).counted() + + override fun run() { + // logging + val levelSlf4j = if (debug) "DEBUG" else when (verbosity) { + 0 -> "WARN" + 1 -> "INFO" + else -> "DEBUG" + } + val level = if (debug) ALL else when (verbosity) { + 0 -> WARNING + 1 -> INFO + else -> ALL + } + setProperty(DEFAULT_LOG_LEVEL_KEY, levelSlf4j) + LogManager.getLogManager().getLogger("").level = level + + println("Hello Mailbox") + } + +} + +fun main(args: Array<String>) = Main().main(args) diff --git a/mailbox-core/build.gradle b/mailbox-core/build.gradle new file mode 100644 index 00000000..c9959b80 --- /dev/null +++ b/mailbox-core/build.gradle @@ -0,0 +1,26 @@ +plugins { + id 'java-library' + id 'idea' + id 'org.jetbrains.kotlin.jvm' + id 'org.jetbrains.kotlin.kapt' +} + +sourceCompatibility = 1.8 +targetCompatibility = 1.8 + +dependencies { + api "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + + def junitVersion = '5.5.2' + testImplementation "org.junit.jupiter:junit-jupiter-api:$junitVersion" + testImplementation "org.junit.jupiter:junit-jupiter-params:$junitVersion" + testRuntime "org.junit.jupiter:junit-jupiter-engine:$junitVersion" + testImplementation 'io.mockk:mockk:1.10.4' +} + +test { + useJUnitPlatform() + testLogging { + events "passed", "skipped", "failed" + } +} diff --git a/mailbox-core/src/main/java/org/briarproject/mailbox/core/Service.kt b/mailbox-core/src/main/java/org/briarproject/mailbox/core/Service.kt new file mode 100644 index 00000000..7edf9188 --- /dev/null +++ b/mailbox-core/src/main/java/org/briarproject/mailbox/core/Service.kt @@ -0,0 +1,4 @@ +package org.briarproject.mailbox.core + +interface Service { +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 962945ce..8ef7b26e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1,3 @@ -include ':mailbox' +include ':mailbox-core' +include ':mailbox-android' +include ':mailbox-cli' -- GitLab