summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2023-01-28 20:03:49 +0100
committerGitHub <noreply@github.com>2023-01-28 20:03:49 +0100
commit3e21ba55f1c7331e359cdaa83a068d65af8ab96b (patch)
tree48b03ddb06799f264a448d0d3e4ef699984096ea /Source/Android/app/src/main/java
parent41272dc5f1b62f4a5a0562cc29eb3e83367d0f14 (diff)
parentab817dcaedd6731c8dccf7153c5915b2295f79b0 (diff)
Merge pull request #11496 from t895/analytics-dialog-kotlin
Android: Convert analytics dialog to Kotlin
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AnalyticsDialog.kt29
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java95
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.kt67
3 files changed, 96 insertions, 95 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AnalyticsDialog.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AnalyticsDialog.kt
new file mode 100644
index 0000000000..51e7b9b279
--- /dev/null
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/AnalyticsDialog.kt
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+package org.dolphinemu.dolphinemu.dialogs
+
+import android.app.Dialog
+import android.os.Bundle
+import androidx.fragment.app.DialogFragment
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
+import org.dolphinemu.dolphinemu.R
+import org.dolphinemu.dolphinemu.utils.Analytics
+
+class AnalyticsDialog : DialogFragment() {
+ override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+ val dialog = MaterialAlertDialogBuilder(requireContext())
+ .setTitle(requireContext().getString(R.string.analytics))
+ .setMessage(requireContext().getString(R.string.analytics_desc))
+ .setPositiveButton(R.string.yes) { _, _ ->
+ Analytics.firstAnalyticsAdd(true)
+ }
+ .setNegativeButton(R.string.no) { _, _ ->
+ Analytics.firstAnalyticsAdd(false)
+ }
+ return dialog.create()
+ }
+
+ companion object {
+ const val TAG = "AnalyticsDialog"
+ }
+}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java
deleted file mode 100644
index 961620213a..0000000000
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.java
+++ /dev/null
@@ -1,95 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-package org.dolphinemu.dolphinemu.utils;
-
-import android.content.Context;
-import android.os.Build;
-
-import androidx.annotation.Keep;
-
-import com.android.volley.Request;
-import com.android.volley.toolbox.StringRequest;
-import com.google.android.material.dialog.MaterialAlertDialogBuilder;
-
-import org.dolphinemu.dolphinemu.DolphinApplication;
-import org.dolphinemu.dolphinemu.R;
-import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting;
-import org.dolphinemu.dolphinemu.features.settings.model.Settings;
-
-public class Analytics
-{
- private static final String DEVICE_MANUFACTURER = "DEVICE_MANUFACTURER";
- private static final String DEVICE_OS = "DEVICE_OS";
- private static final String DEVICE_MODEL = "DEVICE_MODEL";
- private static final String DEVICE_TYPE = "DEVICE_TYPE";
-
- public static void checkAnalyticsInit(Context context)
- {
- new AfterDirectoryInitializationRunner().runWithoutLifecycle(() ->
- {
- if (!BooleanSetting.MAIN_ANALYTICS_PERMISSION_ASKED.getBooleanGlobal())
- {
- showMessage(context);
- }
- });
- }
-
- private static void showMessage(Context context)
- {
- new MaterialAlertDialogBuilder(context)
- .setTitle(context.getString(R.string.analytics))
- .setMessage(context.getString(R.string.analytics_desc))
- .setPositiveButton(R.string.yes, (dialogInterface, i) -> firstAnalyticsAdd(true))
- .setNegativeButton(R.string.no, (dialogInterface, i) -> firstAnalyticsAdd(false))
- .show();
- }
-
- private static void firstAnalyticsAdd(boolean enabled)
- {
- try (Settings settings = new Settings())
- {
- settings.loadSettings();
-
- BooleanSetting.MAIN_ANALYTICS_ENABLED.setBoolean(settings, enabled);
- BooleanSetting.MAIN_ANALYTICS_PERMISSION_ASKED.setBoolean(settings, true);
-
- // Context is set to null to avoid toasts
- settings.saveSettings(null, null);
- }
- }
-
- @Keep
- public static void sendReport(String endpoint, byte[] data)
- {
- StringRequest request = new StringRequest(Request.Method.POST, endpoint,
- null, error -> Log.debug("Failed to send report"))
- {
- @Override
- public byte[] getBody()
- {
- return data;
- }
- };
-
- VolleyUtil.getQueue().add(request);
- }
-
- @Keep
- public static String getValue(String key)
- {
- switch (key)
- {
- case DEVICE_MODEL:
- return Build.MODEL;
- case DEVICE_MANUFACTURER:
- return Build.MANUFACTURER;
- case DEVICE_OS:
- return String.valueOf(Build.VERSION.SDK_INT);
- case DEVICE_TYPE:
- return TvUtil.isLeanback(DolphinApplication.getAppContext()) ? "android-tv" :
- "android-mobile";
- default:
- return "";
- }
- }
-}
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
new file mode 100644
index 0000000000..83c0168bec
--- /dev/null
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.kt
@@ -0,0 +1,67 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+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
+import org.dolphinemu.dolphinemu.features.settings.model.Settings
+
+object Analytics {
+ private const val DEVICE_MANUFACTURER = "DEVICE_MANUFACTURER"
+ private const val DEVICE_OS = "DEVICE_OS"
+ private const val DEVICE_MODEL = "DEVICE_MODEL"
+ private const val DEVICE_TYPE = "DEVICE_TYPE"
+
+ @JvmStatic
+ fun checkAnalyticsInit(activity: FragmentActivity) {
+ AfterDirectoryInitializationRunner().runWithoutLifecycle {
+ if (!BooleanSetting.MAIN_ANALYTICS_PERMISSION_ASKED.booleanGlobal) {
+ AnalyticsDialog().show(activity.supportFragmentManager, AnalyticsDialog.TAG)
+ }
+ }
+ }
+
+ fun firstAnalyticsAdd(enabled: Boolean) {
+ Settings().use { settings ->
+ settings.loadSettings()
+ BooleanSetting.MAIN_ANALYTICS_ENABLED.setBoolean(settings, enabled)
+ BooleanSetting.MAIN_ANALYTICS_PERMISSION_ASKED.setBoolean(settings, true)
+
+ // Context is set to null to avoid toasts
+ settings.saveSettings(null, null)
+ }
+ }
+
+ @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
+ DEVICE_MANUFACTURER -> Build.MANUFACTURER
+ DEVICE_OS -> Build.VERSION.SDK_INT.toString()
+ DEVICE_TYPE -> if (TvUtil.isLeanback(DolphinApplication.getAppContext())) "android-tv" else "android-mobile"
+ else -> ""
+ }
+ }
+}