Skip to content

Commit 01bceb9

Browse files
SessionHero01SessionHero01
authored andcommitted
Added provider metadata
1 parent 2c548d4 commit 01bceb9

File tree

5 files changed

+63
-0
lines changed

5 files changed

+63
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package network.loki.messenger.libsession_util.protocol
2+
3+
import androidx.test.ext.junit.runners.AndroidJUnit4
4+
import network.loki.messenger.libsession_util.pro.BackendRequests
5+
import org.junit.Assert.assertNotNull
6+
import org.junit.Test
7+
import org.junit.runner.RunWith
8+
9+
@RunWith(AndroidJUnit4::class)
10+
class BackendRequestsTest {
11+
12+
@Test
13+
fun getProviderMetadataWorks() {
14+
val metadata = BackendRequests.getPaymentProviderMetadata(BackendRequests.PAYMENT_PROVIDER_GOOGLE_PLAY)
15+
assertNotNull(metadata)
16+
}
17+
}

library/src/main/cpp/pro_backend.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,31 @@ Java_network_loki_messenger_libsession_1util_pro_BackendRequests_buildGetProDeta
6161

6262
return util::jstringFromOptional(env, json);
6363
});
64+
}
65+
66+
extern "C"
67+
JNIEXPORT jobject JNICALL
68+
Java_network_loki_messenger_libsession_1util_pro_BackendRequests_getPaymentProviderMetadata(
69+
JNIEnv *env, jobject thiz, jint payment_provider) {
70+
return run_catching_cxx_exception_or_throws<jobject>(env, [=]() -> jobject {
71+
if (payment_provider >= SESSION_PRO_BACKEND_PAYMENT_PROVIDER_COUNT || payment_provider < 0) {
72+
return nullptr;
73+
}
74+
75+
const auto & metadata = SESSION_PRO_BACKEND_PAYMENT_PROVIDER_METADATA[payment_provider];
76+
auto clazz = env->FindClass("network/loki/messenger/libsession_util/protocol/PaymentProviderMetadata");
77+
return env->NewObject(
78+
clazz,
79+
env->GetMethodID(clazz, "<init>", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V"),
80+
util::jstringFromOptional(env, std::string_view(metadata.device.data, metadata.device.size)),
81+
util::jstringFromOptional(env, std::string_view(metadata.store.data, metadata.store.size)),
82+
util::jstringFromOptional(env, std::string_view(metadata.platform.data, metadata.platform.size)),
83+
util::jstringFromOptional(env, std::string_view(metadata.platform_account.data, metadata.platform_account.size)),
84+
util::jstringFromOptional(env, std::string_view(metadata.refund_url.data, metadata.refund_url.size)),
85+
util::jstringFromOptional(env, std::string_view(metadata.refund_after_platform_deadline_url.data, metadata.refund_after_platform_deadline_url.size)),
86+
util::jstringFromOptional(env, std::string_view(metadata.refund_support_url.data, metadata.refund_support_url.size)),
87+
util::jstringFromOptional(env, std::string_view(metadata.update_subscription_url.data, metadata.update_subscription_url.size)),
88+
util::jstringFromOptional(env, std::string_view(metadata.cancel_subscription_url.data, metadata.cancel_subscription_url.size))
89+
);
90+
});
6491
}

library/src/main/java/network/loki/messenger/libsession_util/pro/BackendRequests.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package network.loki.messenger.libsession_util.pro
22

33
import network.loki.messenger.libsession_util.LibSessionUtilCApi
4+
import network.loki.messenger.libsession_util.protocol.PaymentProviderMetadata
45

56
typealias PaymentProvider = Int
67

@@ -30,4 +31,6 @@ object BackendRequests : LibSessionUtilCApi() {
3031
nowMs: Long,
3132
count: Int,
3233
): String
34+
35+
external fun getPaymentProviderMetadata(paymentProvider: PaymentProvider): PaymentProviderMetadata?
3336
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package network.loki.messenger.libsession_util.protocol
2+
3+
import androidx.annotation.Keep
4+
5+
data class PaymentProviderMetadata @Keep constructor(
6+
val device: String,
7+
val store: String,
8+
val platform: String,
9+
val platformAccount: String,
10+
val refundUrl: String,
11+
val refundAfterPlatformDeadlineUrl: String,
12+
val refundSupportUrl: String,
13+
val updateSubscriptionUrl: String,
14+
val cancelSubscriptionUrl: String,
15+
)

library/src/main/java/network/loki/messenger/libsession_util/protocol/SessionProtocol.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package network.loki.messenger.libsession_util.protocol
22

33
import network.loki.messenger.libsession_util.LibSessionUtilCApi
4+
import network.loki.messenger.libsession_util.pro.PaymentProvider
45

56
object SessionProtocol : LibSessionUtilCApi() {
67
external fun encodeFor1o1(

0 commit comments

Comments
 (0)