From c8713b83da0119173c8af102357eb553bee80044 Mon Sep 17 00:00:00 2001 From: Oizaro <45825534+Oizaro@users.noreply.github.com> Date: Thu, 16 Jul 2020 18:24:25 +0200 Subject: [PATCH] MicroG 0.2.10.19420 --- .../org/microg/gms/common/PackageUtils.java | 4 -- .../src/main/AndroidManifest.xml | 10 ++-- .../gms/ui/AccountSettingsActivity.java | 51 ++++++++++++++++++- 3 files changed, 54 insertions(+), 11 deletions(-) diff --git a/play-services-base-core/src/main/java/org/microg/gms/common/PackageUtils.java b/play-services-base-core/src/main/java/org/microg/gms/common/PackageUtils.java index ce3c7bca..40aa86ca 100644 --- a/play-services-base-core/src/main/java/org/microg/gms/common/PackageUtils.java +++ b/play-services-base-core/src/main/java/org/microg/gms/common/PackageUtils.java @@ -55,10 +55,6 @@ public class PackageUtils { KNOWN_GOOGLE_PACKAGES.put("com.google.android.contacts", "ee3e2b5d95365c5a1ccc2d8dfe48d94eb33b3ebe"); KNOWN_GOOGLE_PACKAGES.put("com.google.android.wearable.app", "a197f9212f2fed64f0ff9c2a4edf24b9c8801c8c"); KNOWN_GOOGLE_PACKAGES.put("com.google.android.apps.youtube.music", "afb0fed5eeaebdd86f56a97742f4b6b33ef59875"); - KNOWN_GOOGLE_PACKAGES.put("com.google.android.apps.youtube.unplugged", "3a82b5ee26bc46bf68113d920e610cd090198d4a"); - KNOWN_GOOGLE_PACKAGES.put("com.google.android.youtube.tv", "61226bdb57cc32c8a2a9ef71f7bc9548e95dcc0b"); - KNOWN_GOOGLE_PACKAGES.put("com.google.android.apps.photos", "24bb24c05e47e0aefa68a58a766179d9b613a600"); - KNOWN_GOOGLE_PACKAGES.put("com.google.android.youtube", "24bb24c05e47e0aefa68a58a766179d9b613a600"); KNOWN_GOOGLE_PACKAGES.put("com.google.android.vr.home", "fc1edc68f7e3e4963c998e95fc38f3de8d1bfc96"); KNOWN_GOOGLE_PACKAGES.put("com.google.vr.cyclops", "188c5ca3863fa121216157a5baa80755ceda70ab"); KNOWN_GOOGLE_PACKAGES.put("com.waze", "35b438fe1bc69d975dc8702dc16ab69ebf65f26f"); diff --git a/play-services-core/src/main/AndroidManifest.xml b/play-services-core/src/main/AndroidManifest.xml index 07b646fa..9b89596a 100644 --- a/play-services-core/src/main/AndroidManifest.xml +++ b/play-services-core/src/main/AndroidManifest.xml @@ -323,7 +323,7 @@ android:value="1" /> - + @@ -359,11 +359,11 @@ android:theme="@style/Theme.AppCompat.DayNight.Dialog" /> @@ -560,7 +560,7 @@ diff --git a/play-services-core/src/main/java/org/microg/gms/ui/AccountSettingsActivity.java b/play-services-core/src/main/java/org/microg/gms/ui/AccountSettingsActivity.java index 43a5f540..4819377c 100644 --- a/play-services-core/src/main/java/org/microg/gms/ui/AccountSettingsActivity.java +++ b/play-services-core/src/main/java/org/microg/gms/ui/AccountSettingsActivity.java @@ -16,11 +16,58 @@ package org.microg.gms.ui; +import android.accounts.Account; +import android.accounts.AccountManager; +import android.os.Build; +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.preference.Preference; + import com.mgoogle.android.gms.R; + +import org.microg.gms.auth.AuthConstants; +import org.microg.gms.auth.AuthManager; import org.microg.tools.ui.AbstractSettingsActivity; +import org.microg.tools.ui.ResourceSettingsFragment; + +import static android.accounts.AccountManager.PACKAGE_NAME_KEY_LEGACY_NOT_VISIBLE; +import static android.accounts.AccountManager.VISIBILITY_USER_MANAGED_NOT_VISIBLE; +import static android.accounts.AccountManager.VISIBILITY_USER_MANAGED_VISIBLE; +import static org.microg.gms.auth.AuthManager.PREF_AUTH_VISIBLE; public class AccountSettingsActivity extends AbstractSettingsActivity { - public AccountSettingsActivity() { - this.preferencesResource = R.xml.preferences_account; + + @Override + protected Fragment getFragment() { + return new AccountSettingsFragment(); + } + + public static class AccountSettingsFragment extends ResourceSettingsFragment { + public AccountSettingsFragment() { + preferencesResource = R.xml.preferences_account; + } + + @Override + public void onCreatePreferences(@Nullable Bundle savedInstanceState, String rootKey) { + super.onCreatePreferences(savedInstanceState, rootKey); + Preference pref = findPreference(PREF_AUTH_VISIBLE); + if (pref != null) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { + pref.setVisible(false); + } else { + pref.setOnPreferenceChangeListener((preference, newValue) -> { + if (newValue instanceof Boolean) { + AccountManager am = AccountManager.get(getContext()); + for (Account account : am.getAccountsByType(AuthConstants.DEFAULT_ACCOUNT_TYPE)) { + am.setAccountVisibility(account, PACKAGE_NAME_KEY_LEGACY_NOT_VISIBLE, (Boolean) newValue ? VISIBILITY_USER_MANAGED_VISIBLE : VISIBILITY_USER_MANAGED_NOT_VISIBLE); + } + } + return true; + }); + } + } + } } } \ No newline at end of file