Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(#15): adapt to Android 14.0 #16

Merged
merged 10 commits into from
May 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion Android.bp
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ android_app {
system_ext_specific: true,

min_sdk_version: "29",
target_sdk_version: "33",
target_sdk_version: "34",

static_libs: [
"SettingsLibBannerMessagePreference",
Expand All @@ -34,6 +34,8 @@ android_app {
"androidx.room_room-compiler-plugin",
],

use_resource_processor: true,

optimize: {
optimize: true,
proguard_flags_files: ["proguard.flags"],
Expand Down
3 changes: 3 additions & 0 deletions AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" android:maxSdkVersion="32"/>
<uses-permission android:name="android.permission.USE_EXACT_ALARM"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

Expand Down Expand Up @@ -132,6 +133,7 @@
<service
android:name=".ForegroundService"
android:exported="false"
android:foregroundServiceType="systemExempted"
android:directBootAware="true">
</service>

Expand All @@ -143,6 +145,7 @@
<service
android:name=".PhoneCallEndObserverService"
android:exported="false"
android:foregroundServiceType="systemExempted"
android:directBootAware="true">
</service>
</application>
Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,20 +225,20 @@ If you're a ROM maintainer and wish to integrate this app into your ROM, follow
1. Choose one of the following methods to add the app to the Android sources:
- As a remote project via [Local Manifests](https://gerrit.googlesource.com/git-repo/+/master/docs/manifest-format.md#Local-Manifests):
```xml
<remote name="iusmac" fetch="https://github.com/iusmac" revision="13.0-dev" />
<remote name="iusmac" fetch="https://github.com/iusmac" revision="14.0-dev" />
<project path="packages/apps/7SIM" name="7SIM" remote="iusmac" />
```
- As an in-tree package within the device tree directory:
```sh
git clone --depth=1 -b 13.0-dev https://github.com/iusmac/7SIM.git
git clone --depth=1 -b 14.0-dev https://github.com/iusmac/7SIM.git
```
- Or better — as Git [Submodule/Subtree](https://training.github.com/downloads/submodule-vs-subtree-cheat-sheet/):
```sh
git submodule add --depth=1 -b 13.0-dev https://github.com/iusmac/7SIM.git
git submodule add --depth=1 -b 14.0-dev https://github.com/iusmac/7SIM.git
```
OR
```sh
git subtree add --prefix=7SIM https://github.com/iusmac/7SIM.git 13.0-dev --squash
git subtree add --prefix=7SIM https://github.com/iusmac/7SIM.git 14.0-dev --squash
```
2. Add app module to a product makefile (e.g., `device.mk`):
```
Expand Down Expand Up @@ -270,7 +270,7 @@ If you're a ROM maintainer and wish to integrate this app into your ROM, follow
### Using Gradle Build Tool

**Requirements:**
- Android 13 SDK or newer with access to hidden APIs and internal resources
- Android 14 SDK or newer with access to hidden APIs and internal resources
> [!TIP]
> If you don't have one already, you can use our own `android.jar` that you can find at
> [`prebuilts/jars/`](./prebuilts/jars/). Replace it with the stock one in the Android SDK directory.
Expand All @@ -280,7 +280,7 @@ If you're a ROM maintainer and wish to integrate this app into your ROM, follow

As mentioned above, the 7SIM app is an extension of the built-in Settings app. In order to have the
same UI, and also write less code, it relies on some parts of the
[SettingsLib](https://android.googlesource.com/platform/frameworks/base.git/+/refs/tags/android-13.0.0_r75/packages/SettingsLib/)
[SettingsLib](https://android.googlesource.com/platform/frameworks/base.git/+/refs/tags/android-14.0.0_r31/packages/SettingsLib/)
package that you can download automatically using this script:
```sh
./SettingsLib/fetch.sh
Expand All @@ -303,7 +303,7 @@ To enable debug logging on releases with R8, see [Debug Opt-in Logging](#debug-o

### Using Soong Build System
**Requirements:**
- Android 13 and later source code base
- Android 14 and later source code base
> [!NOTE]
> The app stability is not guaranteed when building against the upstream source code base.

Expand Down
18 changes: 16 additions & 2 deletions SettingsLib/.gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,21 @@
/*
/fwb
!/.gitignore
!/fetch.sh
!/build.gradle
!/BannerMessagePreference/
/BannerMessagePreference/*
!/BannerMessagePreference/build.gradle
!/CollapsingToolbarBaseActivity/
/CollapsingToolbarBaseActivity/*
!/CollapsingToolbarBaseActivity/build.gradle
!/MainSwitchPreference/
/MainSwitchPreference/*
!/MainSwitchPreference/build.gradle
!/SettingsTheme/
/SettingsTheme/*
!/SettingsTheme/build.gradle
!/TwoTargetPreference/
/TwoTargetPreference/*
!/TwoTargetPreference/build.gradle
!/Utils/
/Utils/*
!/Utils/build.gradle
41 changes: 41 additions & 0 deletions SettingsLib/BannerMessagePreference/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
plugins {
id 'com.android.library'
}

def SettingsLibBannerMessagePreference = '../fwb/packages/SettingsLib/BannerMessagePreference'

android {
namespace 'com.android.settingslib.widget.preference.banner'

defaultConfig {
minSdk 28
targetSdk 34
versionCode 1
versionName "1.0"
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}

lint {
checkReleaseBuilds false
abortOnError false
}

sourceSets {
main {
res.srcDirs = ["${SettingsLibBannerMessagePreference}/res"]
java.srcDirs = ["${SettingsLibBannerMessagePreference}/src"]
}
}
}

dependencies {
implementation libs.preference
implementation project(':SettingsLib:SettingsTheme')
implementation project(':SettingsLib:Utils')
}
45 changes: 45 additions & 0 deletions SettingsLib/CollapsingToolbarBaseActivity/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
plugins {
id 'com.android.library'
}

def SettingsLibCollapsingToolbarBaseActivity = '../fwb/packages/SettingsLib/CollapsingToolbarBaseActivity'

android {
namespace 'com.android.settingslib.collapsingtoolbar'

defaultConfig {
minSdk 29
targetSdk 34
versionCode 1
versionName "1.0"
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}

lint {
checkReleaseBuilds false
abortOnError false
}

sourceSets {
main {
res.srcDirs = ["${SettingsLibCollapsingToolbarBaseActivity}/res"]
java.srcDirs = ["${SettingsLibCollapsingToolbarBaseActivity}/src"]
}
}
}

dependencies {
implementation libs.annotation
implementation libs.appcompat
implementation libs.coordinatorlayout
implementation libs.material
implementation libs.preference
implementation project(':SettingsLib:SettingsTheme')
implementation project(':SettingsLib:Utils')
}
40 changes: 40 additions & 0 deletions SettingsLib/MainSwitchPreference/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
plugins {
id 'com.android.library'
}

def SettingsLibMainSwitchPreference = '../fwb/packages/SettingsLib/MainSwitchPreference'

android {
namespace 'com.android.settingslib.widget.mainswitch'

defaultConfig {
minSdk 28
targetSdk 34
versionCode 1
versionName "1.0"
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}

lint {
checkReleaseBuilds false
abortOnError false
}

sourceSets {
main {
res.srcDirs = ["${SettingsLibMainSwitchPreference}/res"]
java.srcDirs = ["${SettingsLibMainSwitchPreference}/src"]
}
}
}

dependencies {
implementation libs.preference
implementation project(':SettingsLib:SettingsTheme')
}
38 changes: 38 additions & 0 deletions SettingsLib/SettingsTheme/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
plugins {
id 'com.android.library'
}

def SettingsLibSettingsTheme = '../fwb/packages/SettingsLib/SettingsTheme'

android {
namespace 'com.android.settingslib.widget.theme'

defaultConfig {
minSdk 21
targetSdk 34
versionCode 1
versionName "1.0"
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}

lint {
checkReleaseBuilds false
abortOnError false
}

sourceSets {
main {
res.srcDirs = ["${SettingsLibSettingsTheme}/res"]
}
}
}

dependencies {
implementation libs.preference
}
41 changes: 41 additions & 0 deletions SettingsLib/TwoTargetPreference/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
plugins {
id 'com.android.library'
}

def SettingsLibTwoTargetPreference = '../fwb/packages/SettingsLib/TwoTargetPreference'

android {
namespace 'com.android.settingslib.widget.preference.twotarget'

defaultConfig {
minSdk 21
targetSdk 34
versionCode 1
versionName "1.0"
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}

lint {
checkReleaseBuilds false
abortOnError false
}

sourceSets {
main {
res.srcDirs = ["${SettingsLibTwoTargetPreference}/res"]
java.srcDirs = ["${SettingsLibTwoTargetPreference}/src"]
}
}
}

dependencies {
implementation libs.annotation
implementation libs.preference
implementation project(':SettingsLib:SettingsTheme')
}
5 changes: 2 additions & 3 deletions SettingsLib/Utils/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,13 @@ android {

defaultConfig {
minSdk 21
targetSdk 33
targetSdk 34
versionCode 1
versionName "1.0"
}

buildTypes {
release {
debuggable false
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
Expand All @@ -35,7 +34,7 @@ android {
}
}

addCompileOnlyJar('android-33.jar')
addCompileOnlyJar('android-34.jar')

dependencies {
implementation libs.annotation
Expand Down
Loading