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

Commit adf35773 authored by Fabian Kozynski's avatar Fabian Kozynski Committed by Android (Google) Code Review
Browse files

Merge "Makes chip private."

parents 46552d61 8f3660e0
Loading
Loading
Loading
Loading
+21 −11
Original line number Diff line number Diff line
@@ -21,7 +21,9 @@ import android.view.ViewGroup
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
import com.android.systemui.Dependency
import com.android.systemui.R
import com.android.systemui.statusbar.policy.KeyguardMonitor

class OngoingPrivacyChip @JvmOverloads constructor(
    context: Context,
@@ -49,6 +51,8 @@ class OngoingPrivacyChip @JvmOverloads constructor(
                updateView()
            }
        }
    @Suppress("DEPRECATION")
    private val keyguardMonitor = Dependency.get(KeyguardMonitor::class.java)
    var builder = PrivacyDialogBuilder(context, emptyList<PrivacyItem>())
    var privacyList = emptyList<PrivacyItem>()
        set(value) {
@@ -90,9 +94,18 @@ class OngoingPrivacyChip @JvmOverloads constructor(
        if (!privacyList.isEmpty()) {
            generateContentDescription()
            setIcons(builder, iconsContainer)
            setApplicationText()
        } else {
            text.visibility = GONE
            iconsContainer.removeAllViews()
        }
        requestLayout()
    }

    private fun setApplicationText() {
        text.visibility = if (builder.types.size == 1 && expanded) VISIBLE else GONE
        if (builder.types.size == 1 && expanded) {
                if (builder.app != null) {
            if (builder.app != null && !amISecure()) {
                text.setText(builder.app?.applicationName)
            } else {
                text.text = context.resources.getQuantityString(
@@ -100,20 +113,17 @@ class OngoingPrivacyChip @JvmOverloads constructor(
                        builder.appsAndTypes.size, builder.appsAndTypes.size)
            }
        }
        } else {
            text.visibility = GONE
            iconsContainer.removeAllViews()
        }
        requestLayout()
    }

    private fun amISecure() = keyguardMonitor.isShowing && keyguardMonitor.isSecure

    private fun generateContentDescription() {
        val typesText = builder.joinTypes()
        if (builder.types.size > 1) {
            contentDescription = context.getString(
                    R.string.ongoing_privacy_chip_content_multiple_apps, typesText)
        } else {
            if (builder.app != null) {
            if (builder.app != null && !amISecure()) {
                contentDescription =
                        context.getString(R.string.ongoing_privacy_chip_content_single_app,
                                builder.app?.applicationName, typesText)
+2 −5
Original line number Diff line number Diff line
@@ -48,7 +48,6 @@ import android.util.Pair;
import android.view.DisplayCutout;
import android.view.View;
import android.view.WindowInsets;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -553,12 +552,10 @@ public class QuickStatusBarHeader extends RelativeLayout implements
            Handler mUiHandler = new Handler(Looper.getMainLooper());
            mUiHandler.post(() -> {
                Dialog mDialog = new OngoingPrivacyDialog(mContext, builder).createDialog();
                mDialog.getWindow().setType(
                        WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
                SystemUIDialog.setShowForAllUsers(mDialog, true);
                SystemUIDialog.setShowForAllUsers(mDialog, false);
                SystemUIDialog.registerDismissListener(mDialog);
                SystemUIDialog.setWindowOnTop(mDialog);
                mUiHandler.post(() -> mDialog.show());
                mActivityStarter.postQSRunnableDismissingKeyguard(() -> mDialog.show());
                mHost.collapsePanels();
            });
        }