Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 82f712a4 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Move special app access code into its own package." into rvc-dev

parents 8864bd8a 07e88363
Loading
Loading
Loading
Loading
+8 −62
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
@@ -16,85 +16,31 @@

package com.android.permissioncontroller.role.ui;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.WindowManager;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;

import com.android.permissioncontroller.DeviceUtils;
import com.android.permissioncontroller.R;
import com.android.permissioncontroller.role.model.Role;
import com.android.permissioncontroller.role.model.Roles;
import com.android.permissioncontroller.role.ui.auto.AutoSpecialAppAccessFragment;
import com.android.permissioncontroller.role.ui.handheld.HandheldSpecialAppAccessFragment;

/**
 * Activity for a special app access.
 * Dummy activity in place of
 * {@link com.android.permissioncontroller.role.ui.specialappaccess.SpecialAppAccessActivity}
 */
public class SpecialAppAccessActivity extends FragmentActivity {

    private static final String LOG_TAG = SpecialAppAccessActivity.class.getSimpleName();
public class SpecialAppAccessActivity extends Activity {

    /**
     * Create an intent for starting this activity.
     *
     * @param roleName the name of the role for the special app access
     * @param context  the context to create the intent
     * @return an intent to start this activity
     */
    @NonNull
    public static Intent createIntent(@NonNull String roleName, @NonNull Context context) {
        return new Intent(context, SpecialAppAccessActivity.class)
                .putExtra(Intent.EXTRA_ROLE_NAME, roleName);
        return new Intent(context, SpecialAppAccessActivity.class);
    }

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        if (DeviceUtils.isAuto(this)) {
            // Automotive relies on a different theme. Apply before calling super so that
            // fragments are restored properly on configuration changes.
            setTheme(R.style.CarSettings);
        }
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        getWindow().addSystemFlags(
                WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);

        String roleName = getIntent().getStringExtra(Intent.EXTRA_ROLE_NAME);

        Role role = Roles.get(this).get(roleName);
        if (role == null) {
            Log.e(LOG_TAG, "Unknown role: " + roleName);
            finish();
            return;
        }
        if (!role.isAvailable(this)) {
            Log.e(LOG_TAG, "Role is unavailable: " + roleName);
            finish();
            return;
        }
        if (!role.isVisible(this)) {
            Log.e(LOG_TAG, "Role is invisible: " + roleName);
        finish();
            return;
        }

        if (savedInstanceState == null) {
            Fragment fragment;
            if (DeviceUtils.isAuto(this)) {
                fragment = AutoSpecialAppAccessFragment.newInstance(roleName);
            } else {
                fragment = HandheldSpecialAppAccessFragment.newInstance(roleName);
            }
            getSupportFragmentManager().beginTransaction()
                    .add(android.R.id.content, fragment)
                    .commit();
        }
    }
}
+7 −34
Original line number Diff line number Diff line
/*
 * Copyright (C) 2019 The Android Open Source Project
 * Copyright (C) 2020 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
@@ -16,45 +16,18 @@

package com.android.permissioncontroller.role.ui;

import android.app.Activity;
import android.os.Bundle;
import android.view.WindowManager;

import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;

import com.android.permissioncontroller.DeviceUtils;
import com.android.permissioncontroller.R;
import com.android.permissioncontroller.role.ui.auto.AutoSpecialAppAccessListFragment;
import com.android.permissioncontroller.role.ui.handheld.HandheldSpecialAppAccessListFragment;

/**
 * Activity for the list of special app accesses.
 * Dummy activity in place of
 * {@link com.android.permissioncontroller.role.ui.specialappaccess.SpecialAppAccessListActivity}
 */
public class SpecialAppAccessListActivity extends FragmentActivity {

public class SpecialAppAccessListActivity extends Activity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        if (DeviceUtils.isAuto(this)) {
            // Automotive relies on a different theme. Apply before calling super so that
            // fragments are restored properly on configuration changes.
            setTheme(R.style.CarSettings);
        }
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        getWindow().addSystemFlags(
                WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);

        if (savedInstanceState == null) {
            Fragment fragment;
            if (DeviceUtils.isAuto(this)) {
                fragment = AutoSpecialAppAccessListFragment.newInstance();
            } else {
                fragment = HandheldSpecialAppAccessListFragment.newInstance();
            }
            getSupportFragmentManager().beginTransaction()
                    .add(android.R.id.content, fragment)
                    .commit();
        }
        finish();
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ import androidx.preference.TwoStatePreference;

import com.android.permissioncontroller.R;
import com.android.permissioncontroller.auto.AutoSettingsFrameFragment;
import com.android.permissioncontroller.role.ui.SpecialAppAccessChildFragment;
import com.android.permissioncontroller.role.ui.specialappaccess.SpecialAppAccessChildFragment;

/** Automotive fragment for displaying special app access for a role. */
public class AutoSpecialAppAccessFragment extends AutoSettingsFrameFragment implements
+1 −1
Original line number Diff line number Diff line
@@ -24,8 +24,8 @@ import androidx.annotation.Nullable;

import com.android.permissioncontroller.R;
import com.android.permissioncontroller.auto.AutoSettingsFrameFragment;
import com.android.permissioncontroller.role.ui.SpecialAppAccessListChildFragment;
import com.android.permissioncontroller.role.ui.TwoTargetPreference;
import com.android.permissioncontroller.role.ui.specialappaccess.SpecialAppAccessListChildFragment;

/** Automotive fragment for the list of role related special app accesses. */
public class AutoSpecialAppAccessListFragment extends AutoSettingsFrameFragment implements
+4 −2
Original line number Diff line number Diff line
@@ -28,7 +28,8 @@ import androidx.preference.PreferenceViewHolder;
/**
 * {@link SettingsButtonPreference} with {@link AppIconPreference.Mixin}.
 */
class AppIconSettingsButtonPreference extends SettingsButtonPreference {
// Made public for com.android.permissioncontroller.role.ui.specialappaccess.handheld
public class AppIconSettingsButtonPreference extends SettingsButtonPreference {

    private AppIconPreference.Mixin mMixin;

@@ -52,7 +53,8 @@ class AppIconSettingsButtonPreference extends SettingsButtonPreference {
        init();
    }

    AppIconSettingsButtonPreference(@NonNull Context context) {
    // Made public for com.android.permissioncontroller.role.ui.specialappaccess.handheld
    public AppIconSettingsButtonPreference(@NonNull Context context) {
        super(context);

        init();
Loading