Merge pull request #155 from Oizaro/master

Remove getDefaultSharedPreferences calls
This commit is contained in:
KevinX8 2021-07-06 15:33:40 +01:00 committed by GitHub
commit 020b789fe8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 78 additions and 25 deletions

View File

@ -75,6 +75,9 @@ import static android.view.View.INVISIBLE;
import static android.view.View.VISIBLE; import static android.view.View.VISIBLE;
import static android.view.inputmethod.InputMethodManager.SHOW_IMPLICIT; import static android.view.inputmethod.InputMethodManager.SHOW_IMPLICIT;
import static org.microg.gms.auth.AuthPrefs.isAuthVisible; import static org.microg.gms.auth.AuthPrefs.isAuthVisible;
import static org.microg.gms.checkin.CheckinPrefs.hideLauncherIcon;
import static org.microg.gms.checkin.CheckinPrefs.isSpoofingEnabled;
import static org.microg.gms.checkin.CheckinPrefs.setSpoofingEnabled;
import static org.microg.gms.common.Constants.GMS_PACKAGE_NAME; import static org.microg.gms.common.Constants.GMS_PACKAGE_NAME;
import static org.microg.gms.common.Constants.GMS_VERSION_CODE; import static org.microg.gms.common.Constants.GMS_VERSION_CODE;
@ -163,16 +166,17 @@ public class LoginActivity extends AssistantActivity {
state++; state++;
if (state == 1) { if (state == 1) {
if (SDK_INT >= Build.VERSION_CODES.M) { if (SDK_INT >= Build.VERSION_CODES.M) {
PreferenceManager.getDefaultSharedPreferences(this).edit().putBoolean("pref_hide_launcher_icon", false).apply(); hideLauncherIcon(this, false);
UtilsKt.hideIcon(this, false); UtilsKt.hideIcon(this, false);
} }
PreferenceManager.getDefaultSharedPreferences(this).edit().putBoolean(HuaweiButtonPreference, true).apply(); if (!isSpoofingEnabled(this)) {
if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean(LoginButtonPreference, true)) {
LastCheckinInfo.clear(this); LastCheckinInfo.clear(this);
CheckinClient.brandSpoof = true; setSpoofingEnabled(this, true);
PreferenceManager.getDefaultSharedPreferences(this).edit().putBoolean(LoginButtonPreference, true).apply();
} }
init(); init();
} else if (state == -1) {
setResult(RESULT_CANCELED);
finish();
} }
} }
@ -181,11 +185,9 @@ public class LoginActivity extends AssistantActivity {
super.onNextButtonClicked(); super.onNextButtonClicked();
state++; state++;
if (state == 1) { if (state == 1) {
PreferenceManager.getDefaultSharedPreferences(this).edit().putBoolean(LoginButtonPreference, true).apply(); if (isSpoofingEnabled(this)) {
if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean(HuaweiButtonPreference, true)) {
LastCheckinInfo.clear(this); LastCheckinInfo.clear(this);
CheckinClient.brandSpoof = false; setSpoofingEnabled(this, false);
PreferenceManager.getDefaultSharedPreferences(this).edit().putBoolean(HuaweiButtonPreference, true).apply();
} }
init(); init();
} else if (state == -1) { } else if (state == -1) {

View File

@ -45,8 +45,7 @@ public class CheckinClient {
private static final List<String> TODO_LIST_STRING = new ArrayList<>(); // TODO private static final List<String> TODO_LIST_STRING = new ArrayList<>(); // TODO
private static final List<CheckinRequest.Checkin.Statistic> TODO_LIST_CHECKIN = new ArrayList<CheckinRequest.Checkin.Statistic>(); // TODO private static final List<CheckinRequest.Checkin.Statistic> TODO_LIST_CHECKIN = new ArrayList<CheckinRequest.Checkin.Statistic>(); // TODO
private static final String SERVICE_URL = "https://android.clients.google.com/checkin"; private static final String SERVICE_URL = "https://android.clients.google.com/checkin";
public static boolean brandSpoof = false;
public static CheckinResponse request(CheckinRequest request) throws IOException { public static CheckinResponse request(CheckinRequest request) throws IOException {
HttpURLConnection connection = (HttpURLConnection) new URL(SERVICE_URL).openConnection(); HttpURLConnection connection = (HttpURLConnection) new URL(SERVICE_URL).openConnection();
connection.setRequestMethod("POST"); connection.setRequestMethod("POST");
@ -79,7 +78,7 @@ public class CheckinClient {
public static CheckinRequest makeRequest(Build build, DeviceConfiguration deviceConfiguration, public static CheckinRequest makeRequest(Build build, DeviceConfiguration deviceConfiguration,
DeviceIdentifier deviceIdent, PhoneInfo phoneInfo, DeviceIdentifier deviceIdent, PhoneInfo phoneInfo,
LastCheckinInfo checkinInfo, Locale locale, LastCheckinInfo checkinInfo, Locale locale,
List<Account> accounts) { List<Account> accounts, Boolean brandSpoof) {
CheckinRequest.Builder builder = new CheckinRequest.Builder() CheckinRequest.Builder builder = new CheckinRequest.Builder()
.accountCookie(new ArrayList<>()) .accountCookie(new ArrayList<>())
.androidId(checkinInfo.getAndroidId()) .androidId(checkinInfo.getAndroidId())

View File

@ -32,6 +32,8 @@ import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static org.microg.gms.checkin.CheckinPrefs.isSpoofingEnabled;
public class CheckinManager { public class CheckinManager {
private static final String TAG = "GmsCheckinManager"; private static final String TAG = "GmsCheckinManager";
private static final long MIN_CHECKIN_INTERVAL = 3 * 60 * 60 * 1000; // 3 hours private static final long MIN_CHECKIN_INTERVAL = 3 * 60 * 60 * 1000; // 3 hours
@ -58,7 +60,8 @@ public class CheckinManager {
} }
CheckinRequest request = CheckinClient.makeRequest(Utils.getBuild(context), CheckinRequest request = CheckinClient.makeRequest(Utils.getBuild(context),
new DeviceConfiguration(context), Utils.getDeviceIdentifier(context), new DeviceConfiguration(context), Utils.getDeviceIdentifier(context),
Utils.getPhoneInfo(context), info, Utils.getLocale(context), accounts); Utils.getPhoneInfo(context), info, Utils.getLocale(context), accounts,
isSpoofingEnabled(context));
return handleResponse(context, CheckinClient.request(request)); return handleResponse(context, CheckinClient.request(request));
} }

View File

@ -7,6 +7,7 @@ package org.microg.gms.checkin
import android.content.Context import android.content.Context
import org.microg.mgms.settings.SettingsContract import org.microg.mgms.settings.SettingsContract
import org.microg.mgms.settings.SettingsContract.CheckIn import org.microg.mgms.settings.SettingsContract.CheckIn
import org.microg.mgms.settings.SettingsContract.setSettings
object CheckinPrefs { object CheckinPrefs {
@ -18,4 +19,26 @@ object CheckinPrefs {
} }
} }
@JvmStatic
fun isSpoofingEnabled(context: Context): Boolean {
val projection = arrayOf(CheckIn.BRAND_SPOOF)
return SettingsContract.getSettings(context, CheckIn.CONTENT_URI, projection) { c ->
c.getInt(0) != 0
}
}
@JvmStatic
fun setSpoofingEnabled(context: Context, enabled: Boolean) {
setSettings(context, CheckIn.CONTENT_URI) {
put(CheckIn.BRAND_SPOOF, enabled)
}
}
@JvmStatic
fun hideLauncherIcon(context: Context, enabled: Boolean) {
setSettings(context, CheckIn.CONTENT_URI) {
put(CheckIn.HIDE_LAUNCHER_ICON, enabled)
}
}
} }

View File

@ -9,7 +9,6 @@ import android.content.ComponentName
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.util.Log
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.preference.Preference import androidx.preference.Preference
@ -23,6 +22,7 @@ import org.microg.gms.gcm.McsConstants.ACTION_RECONNECT
import org.microg.gms.gcm.McsService import org.microg.gms.gcm.McsService
import org.microg.gms.gcm.TriggerReceiver import org.microg.gms.gcm.TriggerReceiver
import org.microg.gms.gcm.getGcmServiceInfo import org.microg.gms.gcm.getGcmServiceInfo
import org.microg.mgms.settings.SettingsContract
import org.microg.tools.ui.ResourceSettingsFragment import org.microg.tools.ui.ResourceSettingsFragment
class SettingsFragment : ResourceSettingsFragment() { class SettingsFragment : ResourceSettingsFragment() {
@ -57,7 +57,7 @@ class SettingsFragment : ResourceSettingsFragment() {
true true
} }
findPreference<SwitchPreferenceCompat>(PREF_CAST_HIDE_LAUNCHER_ICON)?.apply { findPreference<SwitchPreferenceCompat>(SettingsContract.CheckIn.HIDE_LAUNCHER_ICON)?.apply {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
setOnPreferenceChangeListener { _, newValue -> setOnPreferenceChangeListener { _, newValue ->
requireActivity().hideIcon(newValue as Boolean) requireActivity().hideIcon(newValue as Boolean)
@ -101,8 +101,6 @@ class SettingsFragment : ResourceSettingsFragment() {
const val PREF_GCM = "pref_gcm" const val PREF_GCM = "pref_gcm"
const val PREF_CHECKIN = "pref_checkin" const val PREF_CHECKIN = "pref_checkin"
const val PREF_CAST_DOUBLE_FIX_ENABLED = "pref_cast_double_fix_enabled" const val PREF_CAST_DOUBLE_FIX_ENABLED = "pref_cast_double_fix_enabled"
const val PREF_CAST_HIDE_LAUNCHER_ICON = "pref_hide_launcher_icon"
const val BRAND_SPOOF_FIX_ENABLED = "brand_spoof_fix_enabled"
} }
init { init {

View File

@ -23,6 +23,10 @@ object SettingsContract {
const val VERSION_INFO = "versionInfo" const val VERSION_INFO = "versionInfo"
const val DEVICE_DATA_VERSION_INFO = "deviceDataVersionInfo" const val DEVICE_DATA_VERSION_INFO = "deviceDataVersionInfo"
const val BRAND_SPOOF = "brandSpoof"
const val HIDE_LAUNCHER_ICON = "hideLauncherIcon"
val PROJECTION = arrayOf( val PROJECTION = arrayOf(
ENABLED, ENABLED,
ANDROID_ID, ANDROID_ID,
@ -31,6 +35,8 @@ object SettingsContract {
SECURITY_TOKEN, SECURITY_TOKEN,
VERSION_INFO, VERSION_INFO,
DEVICE_DATA_VERSION_INFO, DEVICE_DATA_VERSION_INFO,
BRAND_SPOOF,
HIDE_LAUNCHER_ICON,
) )
const val PREFERENCES_NAME = "checkin" const val PREFERENCES_NAME = "checkin"
const val INITIAL_DIGEST = "1-929a0dca0eee55513280171a8585da7dcd3700f8" const val INITIAL_DIGEST = "1-929a0dca0eee55513280171a8585da7dcd3700f8"

View File

@ -85,6 +85,8 @@ class SettingsProvider : ContentProvider() {
CheckIn.SECURITY_TOKEN -> checkInPrefs.getLong(key, 0) CheckIn.SECURITY_TOKEN -> checkInPrefs.getLong(key, 0)
CheckIn.VERSION_INFO -> checkInPrefs.getString(key, "") ?: "" CheckIn.VERSION_INFO -> checkInPrefs.getString(key, "") ?: ""
CheckIn.DEVICE_DATA_VERSION_INFO -> checkInPrefs.getString(key, "") ?: "" CheckIn.DEVICE_DATA_VERSION_INFO -> checkInPrefs.getString(key, "") ?: ""
CheckIn.BRAND_SPOOF -> getSettingsBoolean(key, false)
CheckIn.HIDE_LAUNCHER_ICON -> getSettingsBoolean(key, false)
else -> throw IllegalArgumentException() else -> throw IllegalArgumentException()
} }
} }
@ -104,6 +106,14 @@ class SettingsProvider : ContentProvider() {
// special case: not saved in checkInPrefs // special case: not saved in checkInPrefs
updateCheckInEnabled(value as Boolean) updateCheckInEnabled(value as Boolean)
} }
if (key == CheckIn.BRAND_SPOOF) {
// special case: not saved in checkInPrefs
updateSpoofingEnabled(value as Boolean)
}
if (key == CheckIn.HIDE_LAUNCHER_ICON) {
// special case: not saved in checkInPrefs
updateHideLauncherIcon(value as Boolean)
}
when (key) { when (key) {
CheckIn.ANDROID_ID -> editor.putLong(key, value as Long) CheckIn.ANDROID_ID -> editor.putLong(key, value as Long)
CheckIn.DIGEST -> editor.putString(key, value as String?) CheckIn.DIGEST -> editor.putString(key, value as String?)
@ -122,6 +132,18 @@ class SettingsProvider : ContentProvider() {
.apply() .apply()
} }
private fun updateSpoofingEnabled(enabled: Boolean) {
preferences.edit()
.putBoolean(CheckIn.BRAND_SPOOF, enabled)
.apply()
}
private fun updateHideLauncherIcon(enabled: Boolean) {
preferences.edit()
.putBoolean(CheckIn.HIDE_LAUNCHER_ICON, enabled)
.apply()
}
private fun queryGcm(p: Array<out String>): Cursor = MatrixCursor(p).addRow(p) { key -> private fun queryGcm(p: Array<out String>): Cursor = MatrixCursor(p).addRow(p) { key ->
when (key) { when (key) {
Gcm.ENABLE_GCM -> getSettingsBoolean(key, true) Gcm.ENABLE_GCM -> getSettingsBoolean(key, true)

View File

@ -102,7 +102,7 @@ Tato akce může trvat několik minut."</string>
<string name="pref_about_title">O aplikaci Vanced microG</string> <string name="pref_about_title">O aplikaci Vanced microG</string>
<string name="pref_cast_double_fix">Opravit duplicity ve Vysílání</string> <string name="pref_cast_double_fix">Opravit duplicity ve Vysílání</string>
<string name="pref_hide_launcher_icon">Skrýt ikonu ze spouštěče</string> <string name="hideLauncherIcon">Skrýt ikonu ze spouštěče</string>
<string name="brand_spoof_button">Huawei</string> <string name="brand_spoof_button">Huawei</string>

View File

@ -102,7 +102,7 @@ Esto puede tardar unos minutos."</string>
<string name="pref_about_title">Acerca de Vanced microG</string> <string name="pref_about_title">Acerca de Vanced microG</string>
<string name="pref_cast_double_fix">Solucion para Cast duplicado</string> <string name="pref_cast_double_fix">Solucion para Cast duplicado</string>
<string name="pref_hide_launcher_icon">Ocultar microG del lanzador</string> <string name="hideLauncherIcon">Ocultar microG del lanzador</string>
<string name="brand_spoof_button">Huawei</string> <string name="brand_spoof_button">Huawei</string>

View File

@ -102,7 +102,7 @@ Ini bisa berlangsung beberapa menit."</string>
<string name="pref_about_title">Tentang Vanced microG</string> <string name="pref_about_title">Tentang Vanced microG</string>
<string name="pref_cast_double_fix">Perbaikan Cast terduplikasi</string> <string name="pref_cast_double_fix">Perbaikan Cast terduplikasi</string>
<string name="pref_hide_launcher_icon">Sembunyikan microG dari peluncur</string> <string name="hideLauncherIcon">Sembunyikan microG dari peluncur</string>
<string name="pref_switcher_title">Registrasi perangkat</string> <string name="pref_switcher_title">Registrasi perangkat</string>
<string name="pref_checkin_enable_summary">Registrasi perangkat anda ke layanan Google dan buat pengenal perangkat unik. Vanced microG strips mengenal bits selain dari akun Google anda dari data registrasi.</string> <string name="pref_checkin_enable_summary">Registrasi perangkat anda ke layanan Google dan buat pengenal perangkat unik. Vanced microG strips mengenal bits selain dari akun Google anda dari data registrasi.</string>

View File

@ -102,7 +102,7 @@ Questo potrà richiedere un paio di minuti"</string>
<string name="pref_about_title">Informazioni su Vanced microG</string> <string name="pref_about_title">Informazioni su Vanced microG</string>
<string name="pref_cast_double_fix">Correzione cast duplicato</string> <string name="pref_cast_double_fix">Correzione cast duplicato</string>
<string name="pref_hide_launcher_icon">Nascondi microG dal launcher</string> <string name="hideLauncherIcon">Nascondi microG dal launcher</string>
<string name="pref_switcher_title">Registra dispositivo</string> <string name="pref_switcher_title">Registra dispositivo</string>
<string name="pref_checkin_enable_summary">Registra il tuo dispositivo sui servizi Google e crea un identificatore univoco del dispositivo. Verranno rimossi dai Servizi Vanced microG alcuni bit utili per identificare i dati di registrazione, oltre al nome dell\'account Google.</string> <string name="pref_checkin_enable_summary">Registra il tuo dispositivo sui servizi Google e crea un identificatore univoco del dispositivo. Verranno rimossi dai Servizi Vanced microG alcuni bit utili per identificare i dati di registrazione, oltre al nome dell\'account Google.</string>

View File

@ -102,7 +102,7 @@
<string name="pref_about_title">О Vanced microG</string> <string name="pref_about_title">О Vanced microG</string>
<string name="pref_cast_double_fix">Исправление двух кнопок трансляции</string> <string name="pref_cast_double_fix">Исправление двух кнопок трансляции</string>
<string name="pref_hide_launcher_icon">скрыть микрог из лаунчера</string> <string name="hideLauncherIcon">скрыть микрог из лаунчера</string>
<string name="brand_spoof_button">Huawei</string> <string name="brand_spoof_button">Huawei</string>

View File

@ -102,7 +102,7 @@ This can take a couple of minutes."</string>
<string name="pref_about_title">About Vanced microG</string> <string name="pref_about_title">About Vanced microG</string>
<string name="pref_cast_double_fix">Cast duplication fix</string> <string name="pref_cast_double_fix">Cast duplication fix</string>
<string name="pref_hide_launcher_icon">Hide icon from launcher</string> <string name="hideLauncherIcon">Hide icon from launcher</string>
<string name="brand_spoof_button">Huawei</string> <string name="brand_spoof_button">Huawei</string>

View File

@ -49,8 +49,8 @@
android:summary="@string/pref_cast_double_fix_summary" android:summary="@string/pref_cast_double_fix_summary"
android:defaultValue="false"/> android:defaultValue="false"/>
<SwitchPreferenceCompat <SwitchPreferenceCompat
android:key="pref_hide_launcher_icon" android:key="hideLauncherIcon"
android:title="@string/pref_hide_launcher_icon" android:title="@string/hideLauncherIcon"
android:icon="@drawable/ic_baseline_hide_source_24" android:icon="@drawable/ic_baseline_hide_source_24"
android:defaultValue="true"/> android:defaultValue="true"/>
</PreferenceCategory> </PreferenceCategory>