summaryrefslogtreecommitdiff
path: root/Source/Android
diff options
context:
space:
mode:
authorSimonx22 <simon@oatmealdome.me>2025-11-08 10:47:24 -0500
committerSimonx22 <simon@oatmealdome.me>2025-11-08 12:14:40 -0500
commit82f658a28fef217e2270082206a08fed4b579903 (patch)
treefafdf7face35cc2c5cf418a087eba09aa0d5b386 /Source/Android
parent9d27c145b9a43d58f4a2827d60626357aba428af (diff)
Android: Use the shared HTTP analytics backend
We can now route Android analytics through Common::HttpAnalyticsBackend, drop the Volley sender, and keep the JNI layer limited to only transfer metadata since https://bugs.dolphin-emu.org/issues/11772 has been fixed.
Diffstat (limited to 'Source/Android')
-rw-r--r--Source/Android/app/build.gradle.kts3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/DolphinApplication.java2
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.kt17
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/VolleyUtil.java24
-rw-r--r--Source/Android/jni/AndroidCommon/IDCache.cpp8
-rw-r--r--Source/Android/jni/AndroidCommon/IDCache.h1
-rw-r--r--Source/Android/jni/MainAndroid.cpp20
7 files changed, 0 insertions, 75 deletions
diff --git a/Source/Android/app/build.gradle.kts b/Source/Android/app/build.gradle.kts
index 1e564e75e1..54a12a6058 100644
--- a/Source/Android/app/build.gradle.kts
+++ b/Source/Android/app/build.gradle.kts
@@ -144,9 +144,6 @@ dependencies {
implementation("androidx.leanback:leanback:1.0.0")
implementation("androidx.tvprovider:tvprovider:1.0.0")
- // For REST calls
- implementation("com.android.volley:volley:1.2.1")
-
// For loading game covers from disk and GameTDB
implementation("io.coil-kt:coil:2.6.0")
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/DolphinApplication.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/DolphinApplication.java
index 91200852a1..7978a1165e 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/DolphinApplication.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/DolphinApplication.java
@@ -11,7 +11,6 @@ import org.dolphinemu.dolphinemu.utils.ActivityTracker;
import org.dolphinemu.dolphinemu.utils.DirectoryInitialization;
import org.dolphinemu.dolphinemu.utils.GCAdapter;
import org.dolphinemu.dolphinemu.utils.WiimoteAdapter;
-import org.dolphinemu.dolphinemu.utils.VolleyUtil;
public class DolphinApplication extends Application
{
@@ -25,7 +24,6 @@ public class DolphinApplication extends Application
application = this;
sActivityTracker = new ActivityTracker();
registerActivityLifecycleCallbacks(sActivityTracker);
- VolleyUtil.init(getApplicationContext());
System.loadLibrary("main");
GCAdapter.manager = (UsbManager) getSystemService(Context.USB_SERVICE);
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.kt
index c265db5945..3138609266 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.kt
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.kt
@@ -5,8 +5,6 @@ package org.dolphinemu.dolphinemu.utils
import android.os.Build
import androidx.annotation.Keep
import androidx.fragment.app.FragmentActivity
-import com.android.volley.Response
-import com.android.volley.toolbox.StringRequest
import org.dolphinemu.dolphinemu.DolphinApplication
import org.dolphinemu.dolphinemu.dialogs.AnalyticsDialog
import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting
@@ -39,21 +37,6 @@ object Analytics {
@Keep
@JvmStatic
- fun sendReport(endpoint: String, data: ByteArray) {
- val request: StringRequest = object : StringRequest(
- Method.POST,
- endpoint,
- null,
- Response.ErrorListener { Log.debug("Failed to send report") }) {
- override fun getBody(): ByteArray {
- return data
- }
- }
- VolleyUtil.getQueue().add(request)
- }
-
- @Keep
- @JvmStatic
fun getValue(key: String?): String {
return when (key) {
DEVICE_MODEL -> Build.MODEL
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/VolleyUtil.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/VolleyUtil.java
deleted file mode 100644
index 2ac6035461..0000000000
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/VolleyUtil.java
+++ /dev/null
@@ -1,24 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-package org.dolphinemu.dolphinemu.utils;
-
-import android.content.Context;
-
-import com.android.volley.RequestQueue;
-import com.android.volley.toolbox.Volley;
-
-public class VolleyUtil
-{
- private static RequestQueue queue;
-
- public static void init(Context context)
- {
- if (queue == null)
- queue = Volley.newRequestQueue(context);
- }
-
- public static RequestQueue getQueue()
- {
- return queue;
- }
-}
diff --git a/Source/Android/jni/AndroidCommon/IDCache.cpp b/Source/Android/jni/AndroidCommon/IDCache.cpp
index d8dfa2b7c4..67ce1dc554 100644
--- a/Source/Android/jni/AndroidCommon/IDCache.cpp
+++ b/Source/Android/jni/AndroidCommon/IDCache.cpp
@@ -26,7 +26,6 @@ static jclass s_game_file_cache_class;
static jfieldID s_game_file_cache_pointer;
static jclass s_analytics_class;
-static jmethodID s_send_analytics_report;
static jmethodID s_get_analytics_value;
static jclass s_pair_class;
@@ -191,11 +190,6 @@ jclass GetAnalyticsClass()
return s_analytics_class;
}
-jmethodID GetSendAnalyticsReport()
-{
- return s_send_analytics_report;
-}
-
jmethodID GetAnalyticsValue()
{
return s_get_analytics_value;
@@ -623,8 +617,6 @@ JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)
const jclass analytics_class = env->FindClass("org/dolphinemu/dolphinemu/utils/Analytics");
s_analytics_class = reinterpret_cast<jclass>(env->NewGlobalRef(analytics_class));
- s_send_analytics_report =
- env->GetStaticMethodID(s_analytics_class, "sendReport", "(Ljava/lang/String;[B)V");
s_get_analytics_value = env->GetStaticMethodID(s_analytics_class, "getValue",
"(Ljava/lang/String;)Ljava/lang/String;");
env->DeleteLocalRef(analytics_class);
diff --git a/Source/Android/jni/AndroidCommon/IDCache.h b/Source/Android/jni/AndroidCommon/IDCache.h
index e44e68e431..0aaa9feec3 100644
--- a/Source/Android/jni/AndroidCommon/IDCache.h
+++ b/Source/Android/jni/AndroidCommon/IDCache.h
@@ -19,7 +19,6 @@ jmethodID GetOnTitleChanged();
jmethodID GetFinishEmulationActivity();
jclass GetAnalyticsClass();
-jmethodID GetSendAnalyticsReport();
jmethodID GetAnalyticsValue();
jclass GetGameFileClass();
diff --git a/Source/Android/jni/MainAndroid.cpp b/Source/Android/jni/MainAndroid.cpp
index 646f745a13..45addcfe1e 100644
--- a/Source/Android/jni/MainAndroid.cpp
+++ b/Source/Android/jni/MainAndroid.cpp
@@ -18,7 +18,6 @@
#include <fmt/format.h>
#include <jni.h>
-#include "Common/AndroidAnalytics.h"
#include "Common/Assert.h"
#include "Common/CPUDetect.h"
#include "Common/CommonPaths.h"
@@ -221,24 +220,6 @@ static bool MsgAlert(const char* caption, const char* text, bool yes_no, Common:
return result != JNI_FALSE;
}
-static void ReportSend(const std::string& endpoint, const std::string& report)
-{
- JNIEnv* env = IDCache::GetEnvForThread();
-
- jbyteArray output_array = env->NewByteArray(report.size());
- jbyte* output = env->GetByteArrayElements(output_array, nullptr);
- memcpy(output, report.data(), report.size());
- env->ReleaseByteArrayElements(output_array, output, 0);
-
- jstring j_endpoint = ToJString(env, endpoint);
-
- env->CallStaticVoidMethod(IDCache::GetAnalyticsClass(), IDCache::GetSendAnalyticsReport(),
- j_endpoint, output_array);
-
- env->DeleteLocalRef(output_array);
- env->DeleteLocalRef(j_endpoint);
-}
-
static std::string GetAnalyticValue(const std::string& key)
{
JNIEnv* env = IDCache::GetEnvForThread();
@@ -565,7 +546,6 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_Initialize(J
UICommon::CreateDirectories();
Common::RegisterMsgAlertHandler(&MsgAlert);
- Common::AndroidSetReportHandler(&ReportSend);
DolphinAnalytics::AndroidSetGetValFunc(&GetAnalyticValue);
WiimoteReal::InitAdapterClass();