chromium/chrome/android/java/src/org/chromium/chrome/browser/usage_stats/UsageStatsConsentActivity.java

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package org.chromium.chrome.browser.usage_stats;

import android.app.Activity;
import android.content.ComponentName;
import android.os.Bundle;
import android.text.TextUtils;

import org.chromium.chrome.browser.SynchronousInitializationActivity;

/** Activity that prompts the user for consent to share browsing activity with Digital Wellbeing. */
public class UsageStatsConsentActivity extends SynchronousInitializationActivity {
    public static final String UNAUTHORIZE_ACTION =
            "org.chromium.chrome.browser.usage_stats.action.UNAUTHORIZE";

    private static final String DIGITAL_WELLBEING_PACKAGE_NAME =
            "com.google.android.apps.wellbeing";

    UsageStatsConsentDialog mDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ComponentName caller = getCallingActivity();
        if (caller == null
                || !TextUtils.equals(DIGITAL_WELLBEING_PACKAGE_NAME, caller.getPackageName())) {
            finish();
            return;
        }
    }

    @Override
    public void onAttachedToWindow() {
        String action = getIntent().getAction();
        boolean isRevocation = TextUtils.equals(action, UNAUTHORIZE_ACTION);
        UsageStatsConsentDialog.create(
                        this,
                        getProfileProvider().getOriginalProfile(),
                        isRevocation,
                        (didConfirm) -> {
                            setResult(didConfirm ? Activity.RESULT_OK : Activity.RESULT_CANCELED);
                            finish();
                        })
                .show();
    }
}