Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wait until Privacy Policy has been accepted #827

Merged
merged 1 commit into from
Jul 11, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
47 changes: 28 additions & 19 deletions app/src/hvr/java/com/igalia/wolvic/PlatformActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import android.content.pm.ActivityInfo;
import android.hardware.display.DisplayManager;
import android.os.Bundle;
import androidx.preference.PreferenceManager;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Surface;
Expand Down Expand Up @@ -82,12 +82,10 @@ protected Intent getStoreIntent() {
if (key.equals(getString(R.string.settings_key_privacy_policy_accepted))) {
if (SettingsStore.getInstance(PlatformActivity.this).isPrivacyPolicyAccepted()) {
Log.d(TAG, "PushKit: privacy policy is accepted, calling getHmsMessageServiceToken");
setHmsMessageServiceAutoInit(true);
getHmsMessageServiceToken();
enablePrivacySensitiveServices();
} else {
Log.d(TAG, "PushKit: privacy policy is denied, calling deleteHmsMessageServiceToken");
setHmsMessageServiceAutoInit(false);
deleteHmsMessageServiceToken();
disablePrivacySensitiveServices();
}
}
};
Expand All @@ -100,29 +98,17 @@ protected void onCreate(Bundle savedInstanceState) {
mLocationManager = new HVRLocationManager(this);
PermissionDelegate.sPlatformLocationOverride = session -> mLocationManager.start(session);

// Enable analytics
if (BuildConfig.BUILD_TYPE.equals("debug")) {
HiAnalyticsTools.enableLog();
}
HiAnalyticsInstance instance = HiAnalytics.getInstance(getApplicationContext());
instance.setUserProfile("userKey", BuildConfig.HVR_API_KEY);

mHmsMessageBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "PushKit: mHmsMessageBroadcastReceiver " + intent);
handlemHmsMessageBroadcast(intent);
}
};
IntentFilter filter = new IntentFilter();
filter.addAction(WolvicHmsMessageService.MESSAGE_RECEIVED_ACTION);
registerReceiver(mHmsMessageBroadcastReceiver, filter);

// We need to wait until the Privacy Policy is accepted before requesting a message token.
// We need to wait until the Privacy Policy is accepted before using remote services.
if (SettingsStore.getInstance(this).isPrivacyPolicyAccepted()) {
Log.d(TAG, "PushKit: privacy policy is accepted, calling getHmsMessageServiceToken");
setHmsMessageServiceAutoInit(true);
getHmsMessageServiceToken();
enablePrivacySensitiveServices();
}
mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
mPrefs.registerOnSharedPreferenceChangeListener(mOnSharedPreferenceChangeListener);
Expand Down Expand Up @@ -275,6 +261,29 @@ private void initializeAGConnect() {
}
}

private void enablePrivacySensitiveServices() {
Log.d(TAG, "Privacy policy is accepted, initializing services");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpick: I would move this log string outside this method, and put it e.g, right above the place when the method is called, inside the if statement where you check isPrivacyPolicyAccepted().

HiAnalyticsInstance instance = HiAnalytics.getInstance(getApplicationContext());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another nit: Maybe add back the Enable analytics comment above this block?

instance.setUserProfile("userKey", BuildConfig.HVR_API_KEY);
if (BuildConfig.BUILD_TYPE.equals("debug")) {
HiAnalyticsTools.enableLog();
}

IntentFilter filter = new IntentFilter();
filter.addAction(WolvicHmsMessageService.MESSAGE_RECEIVED_ACTION);
registerReceiver(mHmsMessageBroadcastReceiver, filter);

setHmsMessageServiceAutoInit(true);
getHmsMessageServiceToken();
}

private void disablePrivacySensitiveServices() {
unregisterReceiver(mHmsMessageBroadcastReceiver);
setHmsMessageServiceAutoInit(false);
deleteHmsMessageServiceToken();
}


private void setHmsMessageServiceAutoInit(boolean enabled) {
Log.d(TAG, "PushKit: setHmsMessageServiceAutoInit");
Intent intent = new Intent(this, WolvicHmsMessageService.class);
Expand Down