Skip to content

Commit d996093

Browse files
committed
build: setup new libre build type without accessibility services
1 parent e194232 commit d996093

File tree

9 files changed

+60
-5
lines changed

9 files changed

+60
-5
lines changed

app/build.gradle.kts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
@file:Suppress("UnstableApiUsage")
2+
13
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
24
import java.util.Properties
35

@@ -37,6 +39,16 @@ android {
3739
"proguard-rules.pro"
3840
)
3941
}
42+
// buildType without accessibility services
43+
register("libre") {
44+
resValue("string", "app_name", "FlashDim")
45+
isMinifyEnabled = true
46+
isShrinkResources = true
47+
proguardFiles(
48+
getDefaultProguardFile("proguard-android-optimize.txt"),
49+
"proguard-rules-libre.pro"
50+
)
51+
}
4052
}
4153
compileOptions {
4254
sourceCompatibility = JavaVersion.VERSION_17
@@ -85,8 +97,8 @@ if (project.hasProperty("sign")) {
8597
}
8698

8799
// Manual Accrescent build
88-
// build with '-Pmanual_upload_oss buildApksRelease'
89-
// output at 'app/build/outputs/apkset/release/app-release.apks'
100+
// build with '-Pmanual_upload_oss buildApksLibre'
101+
// output at 'app/build/outputs/apkset/libre/app-libre.apks'
90102
if (project.hasProperty("manual_upload_oss")) {
91103
bundletool {
92104
val properties = Properties()

app/proguard-rules-libre.pro

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# For stack traces
2+
-keepattributes SourceFile, LineNumberTable
3+
4+
# Get rid of package names, makes file smaller
5+
-repackageclasses
6+
7+
# Keep all FlashDim class names, except accessibility service and accessibility info dialog
8+
-keep class !com.cyb3rko.flashdim.service.VolumeButtonService,!com.cyb3rko.flashdim.modals.AccessibilityInfoDialog, com.cyb3rko.flashdim.**

app/src/libre/AndroidManifest.xml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest
3+
xmlns:android="http://schemas.android.com/apk/res/android"
4+
xmlns:tools="http://schemas.android.com/tools">
5+
6+
<application
7+
android:name=".App"
8+
tools:ignore="MissingApplicationIcon">
9+
10+
<!-- excluded in buildType "libre" -->
11+
<service
12+
android:name=".service.VolumeButtonService"
13+
tools:node="remove" />
14+
15+
</application>
16+
17+
</manifest>
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<resources>
2+
<string name="preference_item_volume_buttons_summary">Only available in builds for Google Play, F-Droid and GitHub.</string>
3+
</resources>

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
<uses-permission android:name="android.permission.VIBRATE" />
66
<uses-permission android:name="android.permission.FLASHLIGHT" />
7+
78
<!-- This feature is required for a flashlight app -->
89
<uses-feature
910
android:name="android.hardware.camera.flash"
@@ -68,6 +69,8 @@
6869
android:value="false" />
6970
</service>
7071

72+
<!-- included in buildType "debug", "release" -->
73+
<!-- excluded in buildType "libre" -->
7174
<service
7275
android:name=".service.VolumeButtonService"
7376
android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"

app/src/main/kotlin/com/cyb3rko/flashdim/activities/SettingsActivity.kt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import androidx.appcompat.app.AppCompatActivity
3030
import androidx.preference.Preference
3131
import androidx.preference.PreferenceFragmentCompat
3232
import androidx.preference.PreferenceManager
33+
import com.cyb3rko.flashdim.BuildConfig
3334
import com.cyb3rko.flashdim.R
3435
import com.cyb3rko.flashdim.databinding.ActivitySettingsBinding
3536
import com.cyb3rko.flashdim.modals.AccessibilityInfoDialog
@@ -154,9 +155,15 @@ internal class SettingsActivity :
154155
true
155156
}
156157
}
157-
findPreference<Preference>("volume_buttons")?.setOnPreferenceClickListener {
158-
AccessibilityInfoDialog.show(myContext)
159-
true
158+
@Suppress("KotlinConstantConditions")
159+
if (BuildConfig.BUILD_TYPE != "libre") {
160+
findPreference<Preference>("volume_buttons")?.apply {
161+
isEnabled = true
162+
setOnPreferenceClickListener {
163+
AccessibilityInfoDialog.show(myContext)
164+
true
165+
}
166+
}
160167
}
161168
}
162169

app/src/main/kotlin/com/cyb3rko/flashdim/modals/AccessibilityInfoDialog.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import com.cyb3rko.flashdim.R
2323
import com.google.android.material.R as MaterialR
2424
import com.google.android.material.dialog.MaterialAlertDialogBuilder
2525

26+
// included in buildType "debug", "release"
27+
// excluded in buildType "libre"
2628
internal object AccessibilityInfoDialog {
2729
fun show(context: Context) {
2830
MaterialAlertDialogBuilder(

app/src/main/kotlin/com/cyb3rko/flashdim/service/VolumeButtonService.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import android.view.accessibility.AccessibilityEvent
2727
import com.cyb3rko.flashdim.Camera
2828
import com.cyb3rko.flashdim.utils.Safe
2929

30+
// included in buildType "debug", "release"
31+
// excluded in buildType "libre"
3032
class VolumeButtonService : AccessibilityService() {
3133
private var volumeUpPressed = false
3234
private var volumeDownPressed = false

app/src/main/res/xml/preferences.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
<Preference
5151
app:key="volume_buttons"
5252
app:title="@string/preference_item_volume_buttons"
53+
app:enabled="false"
5354
app:summary="@string/preference_item_volume_buttons_summary"
5455
app:icon="@drawable/ic_button_service" />
5556

0 commit comments

Comments
 (0)