From 9d8846e105904b31478ed19d3a34c0d62708abcf Mon Sep 17 00:00:00 2001
From: pacien
Date: Tue, 7 Aug 2018 01:08:22 +0200
Subject: Revert "Rename source directory"
This reverts commit dbba24e
---
.../main/java/org/pacien/tincapp/intent/Actions.kt | 39 ++++++++++++++++++++++
.../org/pacien/tincapp/intent/BroadcastMapper.kt | 38 +++++++++++++++++++++
2 files changed, 77 insertions(+)
create mode 100644 app/src/main/java/org/pacien/tincapp/intent/Actions.kt
create mode 100644 app/src/main/java/org/pacien/tincapp/intent/BroadcastMapper.kt
(limited to 'app/src/main/java/org/pacien/tincapp/intent')
diff --git a/app/src/main/java/org/pacien/tincapp/intent/Actions.kt b/app/src/main/java/org/pacien/tincapp/intent/Actions.kt
new file mode 100644
index 0000000..85cfd29
--- /dev/null
+++ b/app/src/main/java/org/pacien/tincapp/intent/Actions.kt
@@ -0,0 +1,39 @@
+/*
+ * Tinc App, an Android binding and user interface for the tinc mesh VPN daemon
+ * Copyright (C) 2017-2018 Pacien TRAN-GIRARD
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * 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 org.pacien.tincapp.intent
+
+import android.net.Uri
+import org.pacien.tincapp.BuildConfig
+
+/**
+ * @author pacien
+ */
+object Actions {
+ const val PREFIX = "${BuildConfig.APPLICATION_ID}.intent.action"
+ const val ACTION_CONNECT = "$PREFIX.CONNECT"
+ const val ACTION_DISCONNECT = "$PREFIX.DISCONNECT"
+ const val ACTION_SYSTEM_CONNECT = "android.net.VpnService"
+ const val EVENT_CONNECTED = "$PREFIX.CONNECTED"
+ const val EVENT_DISCONNECTED = "$PREFIX.DISCONNECTED"
+ const val EVENT_ABORTED = "$PREFIX.ABORTED"
+ const val TINC_SCHEME = "tinc"
+
+ fun buildNetworkUri(netName: String, passphrase: String? = null): Uri =
+ Uri.Builder().scheme(Actions.TINC_SCHEME).opaquePart(netName).fragment(passphrase).build()
+}
diff --git a/app/src/main/java/org/pacien/tincapp/intent/BroadcastMapper.kt b/app/src/main/java/org/pacien/tincapp/intent/BroadcastMapper.kt
new file mode 100644
index 0000000..f581c99
--- /dev/null
+++ b/app/src/main/java/org/pacien/tincapp/intent/BroadcastMapper.kt
@@ -0,0 +1,38 @@
+/*
+ * Tinc App, an Android binding and user interface for the tinc mesh VPN daemon
+ * Copyright (C) 2017-2018 Pacien TRAN-GIRARD
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * 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 org.pacien.tincapp.intent
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.content.IntentFilter
+import android.support.v4.content.LocalBroadcastManager
+import org.pacien.tincapp.context.App
+
+/**
+ * @author pacien
+ */
+class BroadcastMapper(private val actionHandlers: Map Unit>) : BroadcastReceiver() {
+ private val broadcastManager = LocalBroadcastManager.getInstance(App.getContext())
+ private val intentFilter = actionHandlers.keys.fold(IntentFilter()) { filter, action -> filter.apply { addAction(action) } }
+
+ fun register() = broadcastManager.registerReceiver(this, intentFilter)
+ fun unregister() = broadcastManager.unregisterReceiver(this)
+ override fun onReceive(context: Context?, intent: Intent?) = actionHandlers[intent?.action]?.invoke() ?: Unit
+}
--
cgit v1.2.3