Skip to content

Commit 5957eae

Browse files
committed
Rewire and organize all project
1 parent fa13f1f commit 5957eae

File tree

119 files changed

+2948
-1876
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

119 files changed

+2948
-1876
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 102 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
22
xmlns:tools="http://schemas.android.com/tools">
33

4-
<!--foreground service permissions-->
4+
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
55

6-
<uses-permission
7-
android:name="android.permission.FOREGROUND_SERVICE"
8-
tools:ignore="ForegroundServicesPolicy" />
6+
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" tools:ignore="ForegroundServicesPolicy" />
97
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
8+
109
<uses-permission android:name="android.permission.VIBRATE" />
1110

11+
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
12+
<uses-permission android:name="android.permission.WRITE_SETTINGS" tools:ignore="ProtectedPermissions" />
13+
1214
<!--use hardware sensors/components-->
1315

1416
<uses-feature
@@ -37,20 +39,32 @@
3739
android:supportsRtl="true"
3840
android:theme="@style/AppTheme">
3941

40-
<!--activity for tiles-->
42+
<!--function activity for tiles-->
4143

4244
<activity
4345
android:name=".activity.ScreenshotActivity"
4446
android:exported="false"
4547
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
4648

47-
<!--accessibility service/activity for tiles-->
49+
<!--permission activity for tiles-->
4850

4951
<activity
5052
android:name=".activity.AccessibilityPermissionActivity"
5153
android:exported="false"
5254
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
5355

56+
<activity
57+
android:name=".activity.NotificationPolicyPermissionActivity"
58+
android:exported="false"
59+
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
60+
61+
<activity
62+
android:name=".activity.WriteSettingsPermissionActivity"
63+
android:exported="false"
64+
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
65+
66+
<!--function services for tiles-->
67+
5468
<service
5569
android:name=".services.accessibility.TileAccessibilityService"
5670
android:exported="true"
@@ -65,13 +79,29 @@
6579
android:resource="@xml/accessibility_service_config" />
6680
</service>
6781

82+
<!--caffeine quick settings tile service-->
83+
84+
<service
85+
android:name=".tiles.power.CaffeineTileService"
86+
android:exported="true"
87+
android:icon="@drawable/ic_caffeine"
88+
android:label="@string/caffeine_tile"
89+
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
90+
<intent-filter>
91+
<action android:name="android.service.quicksettings.action.QS_TILE" />
92+
</intent-filter>
93+
<meta-data
94+
android:name="android.service.quicksettings.TOGGLEABLE_TILE"
95+
android:value="true" />
96+
</service>
97+
6898
<!--coin flip quick settings tile service-->
6999

70100
<service
71-
android:name=".tiles.CoinFlipTileService"
101+
android:name=".tiles.games.CoinFlipTileService"
72102
android:exported="true"
73-
android:icon="@drawable/ic_coin_off"
74-
android:label="@string/coin_flip_tile_label"
103+
android:icon="@drawable/ic_coin"
104+
android:label="@string/coin_flip_tile"
75105
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
76106
<intent-filter>
77107
<action android:name="android.service.quicksettings.action.QS_TILE" />
@@ -84,11 +114,11 @@
84114
<!--compass quick settings tile service-->
85115

86116
<service
87-
android:name=".tiles.CompassTileService"
117+
android:name=".tiles.sensors.CompassTileService"
88118
android:exported="true"
89119
android:foregroundServiceType="specialUse"
90120
android:icon="@drawable/ic_compass_off"
91-
android:label="@string/compass_tile_label"
121+
android:label="@string/compass_tile"
92122
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
93123
<intent-filter>
94124
<action android:name="android.service.quicksettings.action.QS_TILE" />
@@ -101,13 +131,13 @@
101131
android:value="Required for accessing compass sensor data while tile is active" />
102132
</service>
103133

104-
<!--dice roll quick settings tile service-->
134+
<!--counter quick settings tile services-->
105135

106136
<service
107-
android:name=".tiles.DiceRollTileService"
137+
android:name=".tiles.counter.CounterAddTileService"
108138
android:exported="true"
109-
android:icon="@drawable/ic_dice_off"
110-
android:label="@string/dice_roll_tile_label"
139+
android:icon="@drawable/ic_counter_add"
140+
android:label="@string/counter_tile_add"
111141
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
112142
<intent-filter>
113143
<action android:name="android.service.quicksettings.action.QS_TILE" />
@@ -117,115 +147,115 @@
117147
android:value="true" />
118148
</service>
119149

120-
<!--bubble level quick settings tile service-->
121-
122150
<service
123-
android:name=".tiles.LevelTileService"
151+
android:name=".tiles.counter.CounterRemoveTileService"
124152
android:exported="true"
125-
android:foregroundServiceType="specialUse"
126-
android:icon="@drawable/ic_level_off"
127-
android:label="@string/level_tile_label"
153+
android:icon="@drawable/ic_counter_remove"
154+
android:label="@string/counter_tile_remove"
128155
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
129156
<intent-filter>
130157
<action android:name="android.service.quicksettings.action.QS_TILE" />
131158
</intent-filter>
132159
<meta-data
133160
android:name="android.service.quicksettings.TOGGLEABLE_TILE"
134161
android:value="true" />
135-
<property
136-
android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
137-
android:value="Required for accessing accelerometer sensor data while tile is active" />
138162
</service>
139163

140-
<!--lock screen quick settings tile service-->
141-
142164
<service
143-
android:name=".tiles.LockTileService"
144-
android:enabled="@bool/enable_lock_tile"
165+
android:name=".tiles.counter.CounterResetTileService"
145166
android:exported="true"
146-
android:icon="@drawable/ic_lock"
147-
android:label="@string/lock_tile_label"
167+
android:icon="@drawable/ic_counter_reset"
168+
android:label="@string/counter_tile_reset"
148169
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
149170
<intent-filter>
150171
<action android:name="android.service.quicksettings.action.QS_TILE" />
151172
</intent-filter>
152173
<meta-data
153-
android:name="android.service.quicksettings.TOGGLEABLE_TILE"
174+
android:name="android.service.quicksettings.INACTIVE_TILE"
154175
android:value="true" />
155176
</service>
156177

157-
<!--lux meter quick settings tile service-->
178+
<!--dice roll quick settings tile service-->
158179

159180
<service
160-
android:name=".tiles.LuxMeterTileService"
181+
android:name=".tiles.games.DiceRollTileService"
161182
android:exported="true"
162-
android:foregroundServiceType="specialUse"
163-
android:icon="@drawable/ic_lux_meter_off"
164-
android:label="@string/lux_meter_tile_label"
183+
android:icon="@drawable/ic_dice"
184+
android:label="@string/dice_roll_tile"
165185
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
166186
<intent-filter>
167187
<action android:name="android.service.quicksettings.action.QS_TILE" />
168188
</intent-filter>
169189
<meta-data
170190
android:name="android.service.quicksettings.TOGGLEABLE_TILE"
171191
android:value="true" />
172-
<property
173-
android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
174-
android:value="Required for accessing light sensor data while tile is active" />
175192
</service>
176193

177-
<!--counter quick settings tile services-->
194+
<!--bubble level quick settings tile service-->
178195

179196
<service
180-
android:name=".tiles.counter.CounterAddTileService"
197+
android:name=".tiles.sensors.LevelTileService"
181198
android:exported="true"
182-
android:icon="@drawable/ic_counter_add"
183-
android:label="@string/counter_add_tile_label"
199+
android:foregroundServiceType="specialUse"
200+
android:icon="@drawable/ic_level"
201+
android:label="@string/level_tile"
184202
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
185203
<intent-filter>
186204
<action android:name="android.service.quicksettings.action.QS_TILE" />
187205
</intent-filter>
188206
<meta-data
189-
android:name="android.service.quicksettings.ACTIVE_TILE"
207+
android:name="android.service.quicksettings.TOGGLEABLE_TILE"
190208
android:value="true" />
209+
<property
210+
android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
211+
android:value="Required for accessing accelerometer sensor data while tile is active" />
191212
</service>
192213

214+
<!--lock screen quick settings tile service-->
215+
193216
<service
194-
android:name=".tiles.counter.CounterRemoveTileService"
217+
android:name=".tiles.system.LockTileService"
218+
android:enabled="@bool/enable_lock_tile"
195219
android:exported="true"
196-
android:icon="@drawable/ic_counter_remove"
197-
android:label="@string/counter_remove_tile_label"
220+
android:icon="@drawable/ic_lock"
221+
android:label="@string/lock_tile"
198222
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
199223
<intent-filter>
200224
<action android:name="android.service.quicksettings.action.QS_TILE" />
201225
</intent-filter>
202226
<meta-data
203-
android:name="android.service.quicksettings.ACTIVE_TILE"
227+
android:name="android.service.quicksettings.TOGGLEABLE_TILE"
204228
android:value="true" />
205229
</service>
206230

231+
<!--lux meter quick settings tile service-->
232+
207233
<service
208-
android:name=".tiles.counter.CounterResetTileService"
234+
android:name=".tiles.sensors.LuxMeterTileService"
209235
android:exported="true"
210-
android:icon="@drawable/ic_counter_reset"
211-
android:label="@string/counter_reset_tile_label"
236+
android:foregroundServiceType="specialUse"
237+
android:icon="@drawable/ic_lux_meter_off"
238+
android:label="@string/lux_meter_tile"
212239
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
213240
<intent-filter>
214241
<action android:name="android.service.quicksettings.action.QS_TILE" />
215242
</intent-filter>
216243
<meta-data
217-
android:name="android.service.quicksettings.INACTIVE_TILE"
244+
android:name="android.service.quicksettings.TOGGLEABLE_TILE"
218245
android:value="true" />
246+
<property
247+
android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE"
248+
android:value="Required for accessing light sensor data while tile is active" />
219249
</service>
220250

221251
<!--screenshot quick settings tile service-->
222252

223253
<service
224-
android:name=".tiles.ScreenshotTileService"
254+
android:name=".tiles.system.ScreenshotTileService"
225255
android:enabled="@bool/enable_screenshot_tile"
226256
android:exported="true"
227257
android:icon="@drawable/ic_screenshot"
228-
android:label="@string/screenshot_tile_label"
258+
android:label="@string/screenshot_tile"
229259
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
230260
<intent-filter>
231261
<action android:name="android.service.quicksettings.action.QS_TILE" />
@@ -238,10 +268,26 @@
238268
<!--sos quick settings tile service-->
239269

240270
<service
241-
android:name=".tiles.SosTileService"
271+
android:name=".tiles.tools.SosTileService"
242272
android:exported="true"
243273
android:icon="@drawable/ic_sos"
244-
android:label="@string/sos_tile_label"
274+
android:label="@string/sos_tile"
275+
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
276+
<intent-filter>
277+
<action android:name="android.service.quicksettings.action.QS_TILE" />
278+
</intent-filter>
279+
<meta-data
280+
android:name="android.service.quicksettings.TOGGLEABLE_TILE"
281+
android:value="true" />
282+
</service>
283+
284+
<!--sound mode quick settings tile service-->
285+
286+
<service
287+
android:name=".tiles.audio.SoundModeTileService"
288+
android:exported="true"
289+
android:icon="@drawable/ic_sound"
290+
android:label="@string/sound_mode_tile"
245291
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
246292
<intent-filter>
247293
<action android:name="android.service.quicksettings.action.QS_TILE" />
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.wstxda.toolkit.activity
2+
3+
import android.app.Activity
4+
import android.content.Intent
5+
import android.os.Bundle
6+
import android.provider.Settings
7+
import android.widget.Toast
8+
import com.wstxda.toolkit.R
9+
10+
class NotificationPolicyPermissionActivity : Activity() {
11+
12+
override fun onCreate(savedInstanceState: Bundle?) {
13+
super.onCreate(savedInstanceState)
14+
15+
Toast.makeText(
16+
this, getString(R.string.dnd_access_permission_message), Toast.LENGTH_LONG
17+
).show()
18+
19+
val intent = Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS).apply {
20+
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
21+
}
22+
startActivity(intent)
23+
finish()
24+
}
25+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.wstxda.toolkit.activity
2+
3+
import android.app.Activity
4+
import android.content.Intent
5+
import android.os.Bundle
6+
import android.provider.Settings
7+
import android.widget.Toast
8+
import androidx.core.net.toUri
9+
import com.wstxda.toolkit.R
10+
11+
class WriteSettingsPermissionActivity : Activity() {
12+
13+
override fun onCreate(savedInstanceState: Bundle?) {
14+
super.onCreate(savedInstanceState)
15+
16+
Toast.makeText(
17+
this, getString(R.string.write_settings_permission_message), Toast.LENGTH_LONG
18+
).show()
19+
20+
val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS).apply {
21+
data = "package:$packageName".toUri()
22+
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
23+
}
24+
startActivity(intent)
25+
finish()
26+
}
27+
}

0 commit comments

Comments
 (0)