Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 955fa247 authored by Mohammed Althaf T's avatar Mohammed Althaf T 😊
Browse files

Settings: Set sentry user id on telemetry

parent c50e38d8
Loading
Loading
Loading
Loading
+25 −6
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.content.DialogInterface;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
import android.os.UserHandle;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;

@@ -29,9 +30,12 @@ import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.development.DeveloperOptionsPreferenceController;

import java.util.UUID;

public class EnableTelemetryPreferenceController extends DeveloperOptionsPreferenceController implements
        Preference.OnPreferenceChangeListener, PreferenceControllerMixin {

    private static final String SENTRY_USERID = "sentry_userid";
    private static final String PREFERENCES_ENABLE_TELEMETRY_KEY = "enable_telemetry";
    private static final String TELEMETRY_KEY = "e_telemetry";
    private static final int TELEMETRY_ON = 1;
@@ -51,6 +55,19 @@ public class EnableTelemetryPreferenceController extends DeveloperOptionsPrefere
        Settings.System.putInt(mContext.getContentResolver(), TELEMETRY_KEY, enabled ? TELEMETRY_ON : TELEMETRY_OFF);
    }

    private void loadSentryID() {
        String sentryId = Settings.Secure.getStringForUser(
                mContext.getContentResolver(), SENTRY_USERID,
                UserHandle.USER_CURRENT);

        if (sentryId == null) {
            UUID uuid = UUID.randomUUID();
            Settings.Secure.putStringForUser(mContext.getContentResolver(),
                    SENTRY_USERID, uuid.toString(),
                    UserHandle.USER_CURRENT);
        }
    }

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        final boolean isEnabled = (Boolean) newValue;
@@ -67,6 +84,7 @@ public class EnableTelemetryPreferenceController extends DeveloperOptionsPrefere
                .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        ((SwitchPreference) mPreference).setChecked(true);
                        loadSentryID();
                        enableTelemetry(true);
                    }
                }).setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@@ -75,6 +93,7 @@ public class EnableTelemetryPreferenceController extends DeveloperOptionsPrefere
                        enableTelemetry(false);
                    }
                }).show();

        return true;
    }