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

Commit 72027875 authored by Jacky Wang's avatar Jacky Wang Committed by Android (Google) Code Review
Browse files

Merge changes from topic "catalyst" into main

* changes:
  [Catalyst] Support device state for "Android version" screen
  [Catalyst] Support deeplink for catalyst screen
parents 7ef7831c 64845bc2
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -1721,6 +1721,15 @@
                       android:value="true" />
        </activity>

        <activity android:name=".Settings$FirmwareVersionActivity"
            android:label="@string/firmware_version"
            android:exported="true">
            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
                android:value="@string/menu_key_about_device"/>
            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                android:value="true" />
        </activity>

        <activity
            android:name=".Settings$LockScreenSettingsActivity"
            android:label="@string/lockscreen_settings_title"
+57 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2025 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.settings

import android.content.Intent
import android.os.Bundle
import com.android.settingslib.metadata.EXTRA_BINDING_SCREEN_KEY
import com.android.settingslib.preference.PreferenceFragment

/**
 * Activity to load catalyst preference screen.
 *
 * @param bindingScreenKey preference screen key
 * @param fragmentClass fragment class to load the preference screen
 */
open class CatalystSettingsActivity
@JvmOverloads
constructor(
    private val bindingScreenKey: String,
    private val fragmentClass: Class<out PreferenceFragment> = CatalystFragment::class.java,
) : SettingsActivity() {

    override fun isValidFragment(fragmentName: String?) = fragmentName == fragmentClass.name

    override fun getInitialFragmentName(intent: Intent?): String = fragmentClass.name

    override fun getInitialFragmentArguments(intent: Intent?): Bundle? =
        Bundle().apply { putString(EXTRA_BINDING_SCREEN_KEY, bindingScreenKey) }
}

/**
 * Fragment to load catalyst preference screen.
 *
 * `PreferenceFragment` class is not used as it does not support highlighting specific preference.
 */
class CatalystFragment : SettingsPreferenceFragment() {

    override fun getMetricsCategory() = 0

    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
        preferenceScreen = createPreferenceScreen()
    }
}
+6 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import androidx.annotation.Nullable;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.biometrics.face.FaceSettings;
import com.android.settings.communal.CommunalPreferenceController;
import com.android.settings.deviceinfo.firmwareversion.FirmwareVersionScreen;
import com.android.settings.enterprise.EnterprisePrivacySettings;
import com.android.settings.network.MobileNetworkIntentConverter;
import com.android.settings.overlay.FeatureFactory;
@@ -116,6 +117,11 @@ public class Settings extends SettingsActivity {
    public static class NightDisplaySuggestionActivity extends NightDisplaySettingsActivity { /* empty */ }
    public static class SmartAutoRotateSettingsActivity extends SettingsActivity { /* empty */ }
    public static class MyDeviceInfoActivity extends SettingsActivity { /* empty */ }
    public static class FirmwareVersionActivity extends CatalystSettingsActivity {
        public FirmwareVersionActivity() {
            super(FirmwareVersionScreen.KEY);
        }
    }
    public static class ModuleLicensesActivity extends SettingsActivity { /* empty */ }
    public static class ApplicationSettingsActivity extends SettingsActivity { /* empty */ }
    public static class ManageApplicationsActivity extends SettingsActivity { /* empty */ }
+9 −3
Original line number Diff line number Diff line
@@ -249,7 +249,7 @@ public class SettingsActivity extends SettingsBaseActivity
        int category = SettingsEnums.PAGE_UNKNOWN;
        Bundle args = null;
        if (getIntent() != null) {
            args = getIntent().getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
            args = getInitialFragmentArguments(getIntent());
        }

        Fragment fragment = Utils.getTargetFragment(this, getMetricsTag(), args);
@@ -502,6 +502,12 @@ public class SettingsActivity extends SettingsBaseActivity
        return intent.getStringExtra(EXTRA_SHOW_FRAGMENT);
    }

    /** Returns the arguments to initial fragment that the activity will launch. */
    @VisibleForTesting
    public @Nullable Bundle getInitialFragmentArguments(Intent intent) {
        return intent.getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
    }

    @Override
    protected void onApplyThemeResource(Theme theme, int resid, boolean first) {
        theme.applyStyle(R.style.SetupWizardPartnerResource, true);
@@ -542,7 +548,7 @@ public class SettingsActivity extends SettingsBaseActivity

            setTitleFromIntent(intent);

            Bundle initialArguments = intent.getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
            Bundle initialArguments = getInitialFragmentArguments(intent);
            switchToFragment(initialFragmentName, initialArguments, true,
                    mInitialTitleResId, mInitialTitle);
        } else {
@@ -679,7 +685,7 @@ public class SettingsActivity extends SettingsBaseActivity
        if (startingFragment != null) {
            Intent modIntent = new Intent(superIntent);
            modIntent.putExtra(EXTRA_SHOW_FRAGMENT, startingFragment);
            Bundle args = superIntent.getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
            Bundle args = getInitialFragmentArguments(superIntent);
            if (args != null) {
                args = new Bundle(args);
            } else {
+3 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import androidx.preference.Preference
import com.android.internal.app.PlatLogoActivity
import com.android.settings.R
import com.android.settings.Utils
import com.android.settings.contract.TAG_DEVICE_STATE_PREFERENCE
import com.android.settingslib.RestrictedLockUtils
import com.android.settingslib.RestrictedLockUtilsInternal
import com.android.settingslib.metadata.PreferenceMetadata
@@ -47,6 +48,8 @@ class FirmwareVersionDetailPreference :
    override val title: Int
        get() = R.string.firmware_version

    override fun tags(context: Context) = arrayOf(TAG_DEVICE_STATE_PREFERENCE)

    override fun isIndexable(context: Context) = false

    override fun intent(context: Context): Intent? =
Loading