Merge "Redirect the TogglePermission App Info pages"
This commit is contained in:
@@ -572,6 +572,11 @@ public class SettingsActivity extends SettingsBaseActivity
|
||||
@VisibleForTesting
|
||||
void launchSettingFragment(String initialFragmentName, Intent intent) {
|
||||
if (initialFragmentName != null) {
|
||||
if (SettingsActivityUtil.launchSpaActivity(this, initialFragmentName, intent)) {
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
setTitleFromIntent(intent);
|
||||
|
||||
Bundle initialArguments = intent.getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
|
||||
|
78
src/com/android/settings/SettingsActivityUtil.kt
Normal file
78
src/com/android/settings/SettingsActivityUtil.kt
Normal file
@@ -0,0 +1,78 @@
|
||||
/*
|
||||
* Copyright (C) 2022 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.Context
|
||||
import android.content.Intent
|
||||
import android.util.FeatureFlagUtils
|
||||
import com.android.settings.applications.appinfo.AlarmsAndRemindersDetails
|
||||
import com.android.settings.applications.appinfo.DrawOverlayDetails
|
||||
import com.android.settings.applications.appinfo.ExternalSourcesDetails
|
||||
import com.android.settings.applications.appinfo.ManageExternalStorageDetails
|
||||
import com.android.settings.applications.appinfo.MediaManagementAppsDetails
|
||||
import com.android.settings.applications.appinfo.WriteSettingsDetails
|
||||
import com.android.settings.applications.specialaccess.pictureinpicture.PictureInPictureDetails
|
||||
import com.android.settings.applications.specialaccess.pictureinpicture.PictureInPictureSettings
|
||||
import com.android.settings.spa.SpaActivity.Companion.startSpaActivity
|
||||
import com.android.settings.spa.SpaActivity.Companion.startSpaActivityForApp
|
||||
import com.android.settings.spa.app.specialaccess.AlarmsAndRemindersAppListProvider
|
||||
import com.android.settings.spa.app.specialaccess.AllFilesAccessAppListProvider
|
||||
import com.android.settings.spa.app.specialaccess.DisplayOverOtherAppsAppListProvider
|
||||
import com.android.settings.spa.app.specialaccess.InstallUnknownAppsListProvider
|
||||
import com.android.settings.spa.app.specialaccess.MediaManagementAppsAppListProvider
|
||||
import com.android.settings.spa.app.specialaccess.ModifySystemSettingsAppListProvider
|
||||
import com.android.settings.spa.app.specialaccess.PictureInPictureListProvider
|
||||
|
||||
object SettingsActivityUtil {
|
||||
private val FRAGMENT_TO_SPA_DESTINATION_MAP = mapOf(
|
||||
PictureInPictureSettings::class.qualifiedName to
|
||||
PictureInPictureListProvider.getAppListRoute(),
|
||||
)
|
||||
|
||||
private val FRAGMENT_TO_SPA_APP_DESTINATION_PREFIX_MAP = mapOf(
|
||||
PictureInPictureDetails::class.qualifiedName to
|
||||
PictureInPictureListProvider.getAppInfoRoutePrefix(),
|
||||
DrawOverlayDetails::class.qualifiedName to
|
||||
DisplayOverOtherAppsAppListProvider.getAppInfoRoutePrefix(),
|
||||
WriteSettingsDetails::class.qualifiedName to
|
||||
ModifySystemSettingsAppListProvider.getAppInfoRoutePrefix(),
|
||||
AlarmsAndRemindersDetails::class.qualifiedName to
|
||||
AlarmsAndRemindersAppListProvider.getAppInfoRoutePrefix(),
|
||||
ExternalSourcesDetails::class.qualifiedName to
|
||||
InstallUnknownAppsListProvider.getAppInfoRoutePrefix(),
|
||||
ManageExternalStorageDetails::class.qualifiedName to
|
||||
AllFilesAccessAppListProvider.getAppInfoRoutePrefix(),
|
||||
MediaManagementAppsDetails::class.qualifiedName to
|
||||
MediaManagementAppsAppListProvider.getAppInfoRoutePrefix(),
|
||||
)
|
||||
|
||||
@JvmStatic
|
||||
fun Context.launchSpaActivity(fragmentName: String, intent: Intent): Boolean {
|
||||
if (!FeatureFlagUtils.isEnabled(this, FeatureFlagUtils.SETTINGS_ENABLE_SPA)) {
|
||||
return false
|
||||
}
|
||||
FRAGMENT_TO_SPA_DESTINATION_MAP[fragmentName]?.let { destination ->
|
||||
startSpaActivity(destination)
|
||||
return true
|
||||
}
|
||||
FRAGMENT_TO_SPA_APP_DESTINATION_PREFIX_MAP[fragmentName]?.let { appDestinationPrefix ->
|
||||
startSpaActivityForApp(appDestinationPrefix, intent)
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
@@ -28,7 +28,6 @@ import android.content.pm.UserInfo;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.util.FeatureFlagUtils;
|
||||
import android.util.IconDrawableFactory;
|
||||
import android.util.Pair;
|
||||
import android.view.View;
|
||||
@@ -41,8 +40,6 @@ import androidx.preference.PreferenceScreen;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.applications.AppInfoBase;
|
||||
import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settings.spa.SpaActivity;
|
||||
import com.android.settings.spa.app.specialaccess.PictureInPictureListProvider;
|
||||
import com.android.settings.widget.EmptyTextSettings;
|
||||
import com.android.settingslib.search.SearchIndexable;
|
||||
import com.android.settingslib.widget.AppPreference;
|
||||
@@ -129,16 +126,6 @@ public class PictureInPictureSettings extends EmptyTextSettings {
|
||||
mUserManager = um;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
super.onAttach(context);
|
||||
if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_ENABLE_SPA)) {
|
||||
SpaActivity.startSpaActivity(
|
||||
context, PictureInPictureListProvider.INSTANCE.getAppListRoute());
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
|
Reference in New Issue
Block a user