From 5ce9fcba6c266b5b8401fedae52a9fc3a7a25726 Mon Sep 17 00:00:00 2001 From: Priyank Singh Date: Mon, 13 May 2019 10:58:03 -0700 Subject: Adding a fragment to launch the OngoingPrivacy dialog. Bug: 123355120 Test: Manual Change-Id: Ib19fc2d84a63ce25cbcdd5ca7df0bcaa9eae51f0 --- .../permission/ui/ReviewOngoingUsageActivity.java | 10 ++++- .../ui/auto/ReviewOngoingUsageAutoFragment.java | 45 ++++++++++++++++++++++ .../ui/handheld/ReviewOngoingUsageFragment.java | 25 +++++++----- 3 files changed, 68 insertions(+), 12 deletions(-) create mode 100644 src/com/android/packageinstaller/permission/ui/auto/ReviewOngoingUsageAutoFragment.java (limited to 'src') diff --git a/src/com/android/packageinstaller/permission/ui/ReviewOngoingUsageActivity.java b/src/com/android/packageinstaller/permission/ui/ReviewOngoingUsageActivity.java index cba0a24b..5568216e 100644 --- a/src/com/android/packageinstaller/permission/ui/ReviewOngoingUsageActivity.java +++ b/src/com/android/packageinstaller/permission/ui/ReviewOngoingUsageActivity.java @@ -26,6 +26,7 @@ import androidx.annotation.NonNull; import androidx.fragment.app.FragmentActivity; import com.android.packageinstaller.DeviceUtils; +import com.android.packageinstaller.permission.ui.auto.ReviewOngoingUsageAutoFragment; import com.android.packageinstaller.permission.ui.handheld.ReviewOngoingUsageFragment; /** @@ -43,8 +44,13 @@ public final class ReviewOngoingUsageActivity extends FragmentActivity { getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS); long numMillis = getIntent().getLongExtra(Intent.EXTRA_DURATION_MILLIS, DEFAULT_MILLIS); - getSupportFragmentManager().beginTransaction().replace(android.R.id.content, - ReviewOngoingUsageFragment.newInstance(numMillis)).commit(); + if (DeviceUtils.isAuto(this)) { + getSupportFragmentManager().beginTransaction().replace(android.R.id.content, + ReviewOngoingUsageAutoFragment.newInstance(numMillis)).commit(); + } else { + getSupportFragmentManager().beginTransaction().replace(android.R.id.content, + ReviewOngoingUsageFragment.newInstance(numMillis)).commit(); + } } diff --git a/src/com/android/packageinstaller/permission/ui/auto/ReviewOngoingUsageAutoFragment.java b/src/com/android/packageinstaller/permission/ui/auto/ReviewOngoingUsageAutoFragment.java new file mode 100644 index 00000000..beeed38b --- /dev/null +++ b/src/com/android/packageinstaller/permission/ui/auto/ReviewOngoingUsageAutoFragment.java @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2019 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.packageinstaller.permission.ui.auto; + +import android.app.AlertDialog; +import android.content.Intent; +import android.os.Bundle; + +import com.android.packageinstaller.permission.ui.handheld.ReviewOngoingUsageFragment; + +/** + * A dialog listing the currently uses of camera, microphone, and location. + */ +public class ReviewOngoingUsageAutoFragment extends ReviewOngoingUsageFragment { + + /** + * @return A new {@link ReviewOngoingUsageAutoFragment} + */ + public static ReviewOngoingUsageAutoFragment newInstance(long numMillis) { + ReviewOngoingUsageAutoFragment fragment = new ReviewOngoingUsageAutoFragment(); + Bundle arguments = new Bundle(); + arguments.putLong(Intent.EXTRA_DURATION_MILLIS, numMillis); + fragment.setArguments(arguments); + return fragment; + } + + @Override + protected void setNeutralButton(AlertDialog.Builder builder) { + // do nothing + } +} diff --git a/src/com/android/packageinstaller/permission/ui/handheld/ReviewOngoingUsageFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/ReviewOngoingUsageFragment.java index b17b87f9..623d20f2 100644 --- a/src/com/android/packageinstaller/permission/ui/handheld/ReviewOngoingUsageFragment.java +++ b/src/com/android/packageinstaller/permission/ui/handheld/ReviewOngoingUsageFragment.java @@ -61,7 +61,7 @@ import java.util.concurrent.TimeUnit; /** * A dialog listing the currently uses of camera, microphone, and location. */ -public final class ReviewOngoingUsageFragment extends PreferenceFragmentCompat { +public class ReviewOngoingUsageFragment extends PreferenceFragmentCompat { private @NonNull PermissionUsages mPermissionUsages; private @Nullable AlertDialog mDialog; @@ -91,7 +91,7 @@ public final class ReviewOngoingUsageFragment extends PreferenceFragmentCompat { mPermissionUsages = new PermissionUsages(getActivity()); mStartTime = Math.max(System.currentTimeMillis() - numMillis, Instant.EPOCH.toEpochMilli()); - mPermissionUsages.load(null, new String[] { CAMERA, LOCATION, MICROPHONE }, mStartTime, + mPermissionUsages.load(null, new String[]{CAMERA, LOCATION, MICROPHONE}, mStartTime, Long.MAX_VALUE, PermissionUsages.USAGE_FLAG_LAST, getActivity().getLoaderManager(), false, false, this::onPermissionUsagesLoaded, false); } @@ -142,21 +142,26 @@ public final class ReviewOngoingUsageFragment extends PreferenceFragmentCompat { } private void showDialog(@NonNull List>> usages) { - mDialog = new AlertDialog.Builder(getActivity()) + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()) .setView(createDialogView(usages)) .setPositiveButton(R.string.ongoing_usage_dialog_ok, (dialog, which) -> PermissionControllerStatsLog.write(PRIVACY_INDICATORS_INTERACTED, PRIVACY_INDICATORS_INTERACTED__TYPE__DIALOG_DISMISS, null)) - .setNeutralButton(R.string.ongoing_usage_dialog_open_settings, (dialog, which) -> { - PermissionControllerStatsLog.write(PRIVACY_INDICATORS_INTERACTED, - PRIVACY_INDICATORS_INTERACTED__TYPE__DIALOG_PRIVACY_SETTINGS, null); - startActivity(new Intent(Settings.ACTION_PRIVACY_SETTINGS).putExtra( - Intent.EXTRA_DURATION_MILLIS, TimeUnit.MINUTES.toMillis(1))); }) - .setOnDismissListener((dialog) -> getActivity().finish()) - .create(); + .setOnDismissListener((dialog) -> getActivity().finish()); + setNeutralButton(builder); + mDialog = builder.create(); mDialog.show(); } + protected void setNeutralButton(AlertDialog.Builder builder) { + builder.setNeutralButton(R.string.ongoing_usage_dialog_open_settings, (dialog, which) -> { + PermissionControllerStatsLog.write(PRIVACY_INDICATORS_INTERACTED, + PRIVACY_INDICATORS_INTERACTED__TYPE__DIALOG_PRIVACY_SETTINGS, null); + startActivity(new Intent(Settings.ACTION_PRIVACY_SETTINGS).putExtra( + Intent.EXTRA_DURATION_MILLIS, TimeUnit.MINUTES.toMillis(1))); + }); + } + private @NonNull View createDialogView( @NonNull List>> usages) { Context context = getActivity(); -- cgit v1.2.3