Android: Convert Analytics to Kotlin
This commit is contained in:
parent
14c7d81b54
commit
ab817dcaed
|
@ -1,84 +0,0 @@
|
||||||
// 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.Request;
|
|
||||||
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;
|
|
||||||
|
|
||||||
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(FragmentActivity activity)
|
|
||||||
{
|
|
||||||
new AfterDirectoryInitializationRunner().runWithoutLifecycle(() ->
|
|
||||||
{
|
|
||||||
if (!BooleanSetting.MAIN_ANALYTICS_PERMISSION_ASKED.getBooleanGlobal())
|
|
||||||
{
|
|
||||||
new AnalyticsDialog().show(activity.getSupportFragmentManager(), AnalyticsDialog.TAG);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public 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 "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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 -> ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue