Introduce Scoopdroid settings

This commit is contained in:
elpaablo 2025-02-25 00:41:04 +00:00
parent b722610b9c
commit 5a6671008d
8 changed files with 51 additions and 0 deletions

View file

@ -55,15 +55,21 @@ android_library {
srcs: [
"src/**/*.java",
"src/**/*.kt",
"ScoopSettings/src/**/*.java",
"ScoopSettings/src/**/*.kt",
],
exclude_srcs: [
"src/com/android/settings/biometrics/fingerprint2/lib/**/*.kt",
],
use_resource_processor: true,
aaptflags: ["--extra-packages com.scoop.settings"],
resource_dirs: [
"res",
"res-export", // for external usage
"res-product",
"ScoopSettings/res",
],
static_libs: [
// External dependencies

View file

@ -5398,5 +5398,28 @@
</activity>
<!-- This is the longest AndroidManifest.xml ever. -->
<!-- Begin Scoopdroid Settings -->
<activity android:name="Settings$ScoopSettingsActivity"
android:label="@string/scoop_settings_title"
android:icon="@drawable/ic_android"
android:exported="true"
android:taskAffinity="com.android.settings"
android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="com.scoop.settings.ScoopSettings" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="com.android.settings.SHORTCUT" />
</intent-filter>
<meta-data android:name="com.android.settings.summary"
android:resource="@string/scoop_settings_summary"/>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.scoop.settings.ScoopSettings" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" />
</activity>
</application>
</manifest>

2
proguard-core.flags Normal file
View file

@ -0,0 +1,2 @@
# ScoopdroidSettings
-keep class com.scoop.settings.**

View file

@ -7,6 +7,7 @@
# Keep all Fragments in this package, which are used by reflection.
-keep public class com.android.settings*.** extends androidx.fragment.app.Fragment
-keep class com.scoop.settings.**
# Keep all preference controllers needed by slice and DashboardFragment.
-keep class * extends com.android.settings.core.BasePreferenceController {

View file

@ -20,6 +20,15 @@
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:key="top_level_settings">
<com.android.settings.widget.HomepagePreference
android:key="top_level_scoop_settings"
android:icon="@drawable/ic_android"
android:title="@string/scoop_settings_title"
android:summary="@string/scoop_settings_summary"
android:order="-204"
android:fragment="com.scoop.settings.ScoopSettings"
settings:controller="com.scoop.settings.TopLevelSettingsPreferenceController" />
<com.android.settings.widget.HomepagePreference
android:fragment="com.android.settings.network.NetworkDashboardFragment"
android:icon="@drawable/ic_settings_wireless"

View file

@ -515,4 +515,6 @@ public class Settings extends SettingsActivity {
public static class HearingDevicesActivity extends SettingsActivity { /* empty */ }
public static class HearingDevicesPairingActivity extends SettingsActivity { /* empty */ }
public static class ScoopSettingsActivity extends SettingsActivity { /* empty */ }
}

View file

@ -207,6 +207,8 @@ import com.android.settings.wifi.p2p.WifiP2pSettings;
import com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2;
import com.android.settings.wifi.tether.WifiTetherSettings;
import com.scoop.settings.ScoopSettings;
public class SettingsGateway {
/**
@ -400,6 +402,7 @@ public class SettingsGateway {
CellularSecuritySettingsFragment.class.getName(),
AccessibilityHearingAidsFragment.class.getName(),
HearingDevicePairingFragment.class.getName(),
ScoopSettings.class.getName(),
ZenModesListFragment.class.getName(),
ZenModeFragment.class.getName()
};
@ -448,5 +451,6 @@ public class SettingsGateway {
UserBackupSettingsActivity.class.getName(),
Settings.MemtagPageActivity.class.getName(),
Settings.NavigationModeSettingsActivity.class.getName(),
Settings.ScoopSettingsActivity.class.getName(),
};
}

View file

@ -50,6 +50,8 @@ import com.android.settings.security.SecuritySettings;
import com.android.settings.system.SystemDashboardFragment;
import com.android.settingslib.drawer.CategoryKey;
import com.scoop.settings.ScoopSettings;
import java.util.Map;
/**
@ -132,6 +134,8 @@ public class DashboardFragmentRegistry {
CategoryKey.CATEGORY_SPECIAL_APP_ACCESS);
PARENT_TO_CATEGORY_KEY_MAP.put(MoreSecurityPrivacyFragment.class.getName(),
CategoryKey.CATEGORY_MORE_SECURITY_PRIVACY_SETTINGS);
PARENT_TO_CATEGORY_KEY_MAP.put(ScoopSettings.class.getName(),
CategoryKey.CATEGORY_SCOOP_SETTINGS);
CATEGORY_KEY_TO_PARENT_MAP = new ArrayMap<>(PARENT_TO_CATEGORY_KEY_MAP.size());