22
33import android .Manifest ;
44import android .content .Intent ;
5- import android .content .SharedPreferences ;
65import android .net .Uri ;
76import android .os .Build ;
87import android .os .Bundle ;
98
109import androidx .appcompat .app .AppCompatActivity ;
1110import androidx .lifecycle .ViewModelProvider ;
12- import androidx .preference .PreferenceManager ;
1311
1412import com .d4rk .androidtutorials .java .R ;
1513import com .d4rk .androidtutorials .java .databinding .ActivityStartupBinding ;
1816import com .google .android .ump .ConsentInformation ;
1917import com .google .android .ump .ConsentRequestParameters ;
2018import com .google .android .ump .UserMessagingPlatform ;
21- import com .google . firebase . analytics . FirebaseAnalytics ;
19+ import com .d4rk . androidtutorials . java . utils . ConsentUtils ;
2220
23- import java .util .EnumMap ;
24- import java .util .Map ;
2521
2622import me .zhanghai .android .fastscroll .FastScrollerBuilder ;
2723
@@ -36,7 +32,7 @@ protected void onCreate(Bundle savedInstanceState) {
3632 com .d4rk .androidtutorials .java .databinding .ActivityStartupBinding binding = ActivityStartupBinding .inflate (getLayoutInflater ());
3733 setContentView (binding .getRoot ());
3834
39- applyStoredConsent ();
35+ ConsentUtils . applyStoredConsent (this );
4036
4137 startupViewModel = new ViewModelProvider (this ).get (StartupViewModel .class );
4238
@@ -52,10 +48,11 @@ protected void onCreate(Bundle savedInstanceState) {
5248 if (consentInformation .isConsentFormAvailable ()) {
5349 startupViewModel .loadConsentForm (
5450 this ,
55- formError -> updateFirebaseConsent (false , false , false , false )
51+ formError -> ConsentUtils .updateFirebaseConsent (this ,
52+ false , false , false , false )
5653 );
5754 } else if (consentInformation .getConsentStatus () == ConsentInformation .ConsentStatus .OBTAINED ) {
58- applyStoredConsent ();
55+ ConsentUtils . applyStoredConsent (this );
5956 }
6057 },
6158 formError -> {}
@@ -73,7 +70,8 @@ protected void onCreate(Bundle savedInstanceState) {
7370 binding .floatingButtonAgree .setOnClickListener (v -> {
7471 ConsentDialogFragment dialog = new ConsentDialogFragment ();
7572 dialog .setConsentListener ((analytics , adStorage , adUserData , adPersonalization ) -> {
76- updateFirebaseConsent (analytics , adStorage , adUserData , adPersonalization );
73+ ConsentUtils .updateFirebaseConsent (this ,
74+ analytics , adStorage , adUserData , adPersonalization );
7775 proceedToMainActivity ();
7876 });
7977 dialog .show (getSupportFragmentManager (), "consent_dialog" );
@@ -89,25 +87,4 @@ private void proceedToMainActivity() {
8987 finish ();
9088 }
9189
92- private void applyStoredConsent () {
93- SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences (this );
94- boolean analytics = prefs .getBoolean (getString (R .string .key_consent_analytics ), true );
95- boolean adStorage = prefs .getBoolean (getString (R .string .key_consent_ad_storage ), true );
96- boolean adUserData = prefs .getBoolean (getString (R .string .key_consent_ad_user_data ), true );
97- boolean adPersonalization = prefs .getBoolean (getString (R .string .key_consent_ad_personalization ), true );
98- updateFirebaseConsent (analytics , adStorage , adUserData , adPersonalization );
99- }
100-
101- private void updateFirebaseConsent (boolean analytics ,
102- boolean adStorage ,
103- boolean adUserData ,
104- boolean adPersonalization ) {
105- Map <FirebaseAnalytics .ConsentType , FirebaseAnalytics .ConsentStatus > consentMap = new EnumMap <>(FirebaseAnalytics .ConsentType .class );
106- consentMap .put (FirebaseAnalytics .ConsentType .ANALYTICS_STORAGE , analytics ? FirebaseAnalytics .ConsentStatus .GRANTED : FirebaseAnalytics .ConsentStatus .DENIED );
107- consentMap .put (FirebaseAnalytics .ConsentType .AD_STORAGE , adStorage ? FirebaseAnalytics .ConsentStatus .GRANTED : FirebaseAnalytics .ConsentStatus .DENIED );
108- consentMap .put (FirebaseAnalytics .ConsentType .AD_USER_DATA , adUserData ? FirebaseAnalytics .ConsentStatus .GRANTED : FirebaseAnalytics .ConsentStatus .DENIED );
109- consentMap .put (FirebaseAnalytics .ConsentType .AD_PERSONALIZATION , adPersonalization ? FirebaseAnalytics .ConsentStatus .GRANTED : FirebaseAnalytics .ConsentStatus .DENIED );
110-
111- FirebaseAnalytics .getInstance (this ).setConsent (consentMap );
112- }
11390}
0 commit comments