summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFivePixels <o5pxels@gmail.com>2020-07-17 10:06:30 -0500
committerFivePixels <o5pxels@gmail.com>2020-07-17 10:06:30 -0500
commit8a752c04771b28d82dce988849cad84ddaf3ea2c (patch)
tree65df72d39d9ee9fb260a32c47be6bfb42cedf3ec
downloadfinical-master.tar.xz
finical-master.zip
Initial CommitHEADmaster
-rw-r--r--.DS_Storebin0 -> 8196 bytes
-rw-r--r--.theos/_/DEBIAN/control10
-rwxr-xr-x.theos/_/Library/MobileSubstrate/DynamicLibraries/Finical.dylibbin0 -> 104768 bytes
-rw-r--r--.theos/_/Library/MobileSubstrate/DynamicLibraries/Finical.plist1
-rw-r--r--.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/.Finical.plist.swpbin0 -> 16384 bytes
-rw-r--r--.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/Finical.plist200
-rwxr-xr-x.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/FinicalPrefsbin0 -> 102368 bytes
-rw-r--r--.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/Info.plist24
-rw-r--r--.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/discord@2x.pngbin0 -> 2228 bytes
-rw-r--r--.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/discord@3x.pngbin0 -> 3401 bytes
-rw-r--r--.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/github@2x.pngbin0 -> 3000 bytes
-rw-r--r--.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/github@3x.pngbin0 -> 4726 bytes
-rw-r--r--.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/icon@2x.pngbin0 -> 4229 bytes
-rw-r--r--.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/icon@3x.pngbin0 -> 7751 bytes
-rw-r--r--.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/twitter@2x.pngbin0 -> 1768 bytes
-rw-r--r--.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/twitter@3x.pngbin0 -> 2747 bytes
-rw-r--r--.theos/_/Library/PreferenceLoader/Preferences/FinicalPrefs.plist21
-rw-r--r--.theos/build_session0
-rw-r--r--.theos/fakeroot0
-rw-r--r--.theos/last_package1
-rw-r--r--.theos/obj/.stamp0
-rwxr-xr-x.theos/obj/Finical.dylibbin0 -> 100256 bytes
-rw-r--r--.theos/obj/FinicalPrefs.bundle/Finical.plist200
-rwxr-xr-x.theos/obj/FinicalPrefs.bundle/FinicalPrefsbin0 -> 100080 bytes
-rw-r--r--.theos/obj/FinicalPrefs.bundle/Info.plist24
-rw-r--r--.theos/obj/FinicalPrefs.bundle/discord@2x.pngbin0 -> 2228 bytes
-rw-r--r--.theos/obj/FinicalPrefs.bundle/discord@3x.pngbin0 -> 3401 bytes
-rw-r--r--.theos/obj/FinicalPrefs.bundle/icon@2x.pngbin0 -> 4229 bytes
-rw-r--r--.theos/obj/FinicalPrefs.bundle/icon@3x.pngbin0 -> 7751 bytes
-rw-r--r--.theos/obj/FinicalPrefs.bundle/twitter@2x.pngbin0 -> 1768 bytes
-rw-r--r--.theos/obj/FinicalPrefs.bundle/twitter@3x.pngbin0 -> 2747 bytes
-rw-r--r--.theos/obj/arm64/FCLRootListController.m.4786d8ff.Td22
-rw-r--r--.theos/obj/arm64/FCLRootListController.m.4786d8ff.obin0 -> 34488 bytes
-rwxr-xr-x.theos/obj/arm64/Finical.dylibbin0 -> 34536 bytes
-rw-r--r--.theos/obj/arm64/Finical.dylib.dSYM/Contents/Info.plist20
-rw-r--r--.theos/obj/arm64/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylibbin0 -> 33650 bytes
-rwxr-xr-x.theos/obj/arm64/FinicalPrefs.bundle/FinicalPrefsbin0 -> 34380 bytes
-rw-r--r--.theos/obj/arm64/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist20
-rw-r--r--.theos/obj/arm64/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefsbin0 -> 40699 bytes
-rw-r--r--.theos/obj/arm64/Tweak.x.0f65de19.Td26
-rw-r--r--.theos/obj/arm64/Tweak.x.0f65de19.obin0 -> 38564 bytes
-rw-r--r--.theos/obj/arm64e/FCLRootListController.m.d9a90589.Td22
-rw-r--r--.theos/obj/arm64e/FCLRootListController.m.d9a90589.obin0 -> 34516 bytes
-rwxr-xr-x.theos/obj/arm64e/Finical.dylibbin0 -> 34380 bytes
-rw-r--r--.theos/obj/arm64e/Finical.dylib.dSYM/Contents/Info.plist20
-rw-r--r--.theos/obj/arm64e/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylibbin0 -> 33655 bytes
-rwxr-xr-x.theos/obj/arm64e/FinicalPrefs.bundle/FinicalPrefsbin0 -> 34208 bytes
-rw-r--r--.theos/obj/arm64e/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist20
-rw-r--r--.theos/obj/arm64e/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefsbin0 -> 40701 bytes
-rw-r--r--.theos/obj/arm64e/Tweak.x.39438a51.Td26
-rw-r--r--.theos/obj/arm64e/Tweak.x.39438a51.obin0 -> 38640 bytes
-rw-r--r--.theos/obj/debug/.stamp0
-rwxr-xr-x.theos/obj/debug/Finical.dylibbin0 -> 104768 bytes
-rw-r--r--.theos/obj/debug/FinicalPrefs.bundle/.Finical.plist.swpbin0 -> 16384 bytes
-rw-r--r--.theos/obj/debug/FinicalPrefs.bundle/Finical.plist200
-rwxr-xr-x.theos/obj/debug/FinicalPrefs.bundle/FinicalPrefsbin0 -> 102368 bytes
-rw-r--r--.theos/obj/debug/FinicalPrefs.bundle/Info.plist24
-rw-r--r--.theos/obj/debug/FinicalPrefs.bundle/discord@2x.pngbin0 -> 2228 bytes
-rw-r--r--.theos/obj/debug/FinicalPrefs.bundle/discord@3x.pngbin0 -> 3401 bytes
-rw-r--r--.theos/obj/debug/FinicalPrefs.bundle/github@2x.pngbin0 -> 3000 bytes
-rw-r--r--.theos/obj/debug/FinicalPrefs.bundle/github@3x.pngbin0 -> 4726 bytes
-rw-r--r--.theos/obj/debug/FinicalPrefs.bundle/icon@2x.pngbin0 -> 4229 bytes
-rw-r--r--.theos/obj/debug/FinicalPrefs.bundle/icon@3x.pngbin0 -> 7751 bytes
-rw-r--r--.theos/obj/debug/FinicalPrefs.bundle/twitter@2x.pngbin0 -> 1768 bytes
-rw-r--r--.theos/obj/debug/FinicalPrefs.bundle/twitter@3x.pngbin0 -> 2747 bytes
-rw-r--r--.theos/obj/debug/arm64/FCLRootListController.m.6697b6e8.Td22
-rw-r--r--.theos/obj/debug/arm64/FCLRootListController.m.6697b6e8.obin0 -> 36856 bytes
-rwxr-xr-x.theos/obj/debug/arm64/Finical.dylibbin0 -> 38440 bytes
-rw-r--r--.theos/obj/debug/arm64/Finical.dylib.dSYM/Contents/Info.plist20
-rw-r--r--.theos/obj/debug/arm64/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylibbin0 -> 37285 bytes
-rwxr-xr-x.theos/obj/debug/arm64/FinicalPrefs.bundle/FinicalPrefsbin0 -> 36100 bytes
-rw-r--r--.theos/obj/debug/arm64/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist20
-rw-r--r--.theos/obj/debug/arm64/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefsbin0 -> 43082 bytes
-rw-r--r--.theos/obj/debug/arm64/Tweak.x.324c8b47.Td26
-rw-r--r--.theos/obj/debug/arm64/Tweak.x.324c8b47.obin0 -> 46532 bytes
-rw-r--r--.theos/obj/debug/arm64/Tweak.x.9a5be5fd.Td20
-rw-r--r--.theos/obj/debug/arm64/Tweak.x.9a5be5fd.obin0 -> 21924 bytes
-rw-r--r--.theos/obj/debug/arm64/Tweak.x.m203
-rw-r--r--.theos/obj/debug/arm64e/FCLRootListController.m.60c48a2a.Td22
-rw-r--r--.theos/obj/debug/arm64e/FCLRootListController.m.60c48a2a.obin0 -> 36884 bytes
-rwxr-xr-x.theos/obj/debug/arm64e/Finical.dylibbin0 -> 38228 bytes
-rw-r--r--.theos/obj/debug/arm64e/Finical.dylib.dSYM/Contents/Info.plist20
-rw-r--r--.theos/obj/debug/arm64e/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylibbin0 -> 37290 bytes
-rwxr-xr-x.theos/obj/debug/arm64e/FinicalPrefs.bundle/FinicalPrefsbin0 -> 35896 bytes
-rw-r--r--.theos/obj/debug/arm64e/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist20
-rw-r--r--.theos/obj/debug/arm64e/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefsbin0 -> 43083 bytes
-rw-r--r--.theos/obj/debug/arm64e/Tweak.x.a450b45f.Td20
-rw-r--r--.theos/obj/debug/arm64e/Tweak.x.a450b45f.obin0 -> 21964 bytes
-rw-r--r--.theos/obj/debug/arm64e/Tweak.x.a81dc44d.Td26
-rw-r--r--.theos/obj/debug/arm64e/Tweak.x.a81dc44d.obin0 -> 46632 bytes
-rw-r--r--.theos/obj/debug/arm64e/Tweak.x.m203
-rw-r--r--.theos/obj/debug/armv7/FCLRootListController.m.1fec4894.Td22
-rw-r--r--.theos/obj/debug/armv7/Finical.dylib.dSYM/Contents/Info.plist20
-rw-r--r--.theos/obj/debug/armv7/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylibbin0 -> 31067 bytes
-rwxr-xr-x.theos/obj/debug/armv7/FinicalPrefs.bundle/FinicalPrefsbin0 -> 36236 bytes
-rw-r--r--.theos/obj/debug/armv7/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist20
-rw-r--r--.theos/obj/debug/armv7/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefsbin0 -> 54949 bytes
-rw-r--r--.theos/obj/debug/armv7/Tweak.x.9c3a1a96.Td20
-rw-r--r--.theos/obj/debug/armv7/Tweak.x.fcdb2fda.Td26
-rw-r--r--.theos/obj/debug/armv7/Tweak.x.fcdb2fda.obin0 -> 29668 bytes
-rw-r--r--.theos/obj/debug/armv7/Tweak.x.m68
-rw-r--r--.theos/packages/com.5px.finical-0.0.11
-rw-r--r--Finical.plist1
-rw-r--r--Headers.h68
-rw-r--r--Makefile13
-rw-r--r--MediaRemote.h119
-rw-r--r--Tweak.x174
-rw-r--r--control9
-rw-r--r--finicalprefs/.DS_Storebin0 -> 6148 bytes
-rw-r--r--finicalprefs/FCLRootListController.m30
-rw-r--r--finicalprefs/Makefile15
-rw-r--r--finicalprefs/Resources/Finical.plist200
-rw-r--r--finicalprefs/Resources/Info.plist24
-rw-r--r--finicalprefs/Resources/discord@2x.pngbin0 -> 2228 bytes
-rw-r--r--finicalprefs/Resources/discord@3x.pngbin0 -> 3401 bytes
-rw-r--r--finicalprefs/Resources/icon@2x.pngbin0 -> 4229 bytes
-rw-r--r--finicalprefs/Resources/icon@3x.pngbin0 -> 7751 bytes
-rw-r--r--finicalprefs/Resources/twitter@2x.pngbin0 -> 1768 bytes
-rw-r--r--finicalprefs/Resources/twitter@3x.pngbin0 -> 2747 bytes
-rw-r--r--finicalprefs/entry.plist21
-rw-r--r--packages/.DS_Storebin0 -> 6148 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-1+debug_iphoneos-arm.debbin0 -> 5242 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-10+debug_iphoneos-arm.debbin0 -> 7980 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-11+debug_iphoneos-arm.debbin0 -> 5752 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-12+debug_iphoneos-arm.debbin0 -> 5678 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-13+debug_iphoneos-arm.debbin0 -> 5172 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-14+debug_iphoneos-arm.debbin0 -> 5166 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-15+debug_iphoneos-arm.debbin0 -> 5100 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-16+debug_iphoneos-arm.debbin0 -> 5226 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-17+debug_iphoneos-arm.debbin0 -> 5202 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-18+debug_iphoneos-arm.debbin0 -> 5016 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-19+debug_iphoneos-arm.debbin0 -> 5408 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-2+debug_iphoneos-arm.debbin0 -> 5240 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-20+debug_iphoneos-arm.debbin0 -> 5266 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-21+debug_iphoneos-arm.debbin0 -> 5298 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-22+debug_iphoneos-arm.debbin0 -> 6258 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-23+debug_iphoneos-arm.debbin0 -> 6266 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-24+debug_iphoneos-arm.debbin0 -> 6280 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-25+debug_iphoneos-arm.debbin0 -> 6254 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-26+debug_iphoneos-arm.debbin0 -> 6236 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-27+debug_iphoneos-arm.debbin0 -> 6282 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-28+debug_iphoneos-arm.debbin0 -> 11592 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-29+debug_iphoneos-arm.debbin0 -> 24476 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-3+debug_iphoneos-arm.debbin0 -> 4886 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-30+debug_iphoneos-arm.debbin0 -> 24478 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-31+debug_iphoneos-arm.debbin0 -> 25112 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-32+debug_iphoneos-arm.debbin0 -> 25118 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-33+debug_iphoneos-arm.debbin0 -> 25116 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-34+debug_iphoneos-arm.debbin0 -> 25106 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-35+debug_iphoneos-arm.debbin0 -> 25128 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-36+debug_iphoneos-arm.debbin0 -> 25142 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-37+debug_iphoneos-arm.debbin0 -> 25166 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-38+debug_iphoneos-arm.debbin0 -> 25140 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-39+debug_iphoneos-arm.debbin0 -> 25188 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-4+debug_iphoneos-arm.debbin0 -> 16772 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-5+debug_iphoneos-arm.debbin0 -> 5526 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-6+debug_iphoneos-arm.debbin0 -> 6052 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-7+debug_iphoneos-arm.debbin0 -> 6232 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-8+debug_iphoneos-arm.debbin0 -> 7982 bytes
-rw-r--r--packages/com.5px.finical_0.0.1-9+debug_iphoneos-arm.debbin0 -> 7984 bytes
-rw-r--r--packages/com.5px.finical_1.0_iphoneos-arm.debbin0 -> 44020 bytes
161 files changed, 2354 insertions, 0 deletions
diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000..3ff3eec
--- /dev/null
+++ b/.DS_Store
Binary files differ
diff --git a/.theos/_/DEBIAN/control b/.theos/_/DEBIAN/control
new file mode 100644
index 0000000..1ed724a
--- /dev/null
+++ b/.theos/_/DEBIAN/control
@@ -0,0 +1,10 @@
+Package: com.5px.finical
+Name: Finical
+Depends: mobilesubstrate
+Architecture: iphoneos-arm
+Description: Swipe away to dismiss the lockscreen player
+Maintainer: FivePixels
+Author: FivePixels
+Section: Tweaks
+Version: 1.0
+Installed-Size: 284
diff --git a/.theos/_/Library/MobileSubstrate/DynamicLibraries/Finical.dylib b/.theos/_/Library/MobileSubstrate/DynamicLibraries/Finical.dylib
new file mode 100755
index 0000000..717e136
--- /dev/null
+++ b/.theos/_/Library/MobileSubstrate/DynamicLibraries/Finical.dylib
Binary files differ
diff --git a/.theos/_/Library/MobileSubstrate/DynamicLibraries/Finical.plist b/.theos/_/Library/MobileSubstrate/DynamicLibraries/Finical.plist
new file mode 100644
index 0000000..10dc654
--- /dev/null
+++ b/.theos/_/Library/MobileSubstrate/DynamicLibraries/Finical.plist
@@ -0,0 +1 @@
+{ Filter = { Bundles = ( "com.apple.springboard" ); }; }
diff --git a/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/.Finical.plist.swp b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/.Finical.plist.swp
new file mode 100644
index 0000000..b8c79f7
--- /dev/null
+++ b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/.Finical.plist.swp
Binary files differ
diff --git a/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/Finical.plist b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/Finical.plist
new file mode 100644
index 0000000..d4c28ee
--- /dev/null
+++ b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/Finical.plist
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>items</key>
+ <array>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>Settings</string>
+ <key>footerText</key>
+ <string>Respring your device to apply changes.</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSwitchCell</string>
+ <key>default</key>
+ <true/>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>enabled</string>
+ <key>label</key>
+ <string>Enabled</string>
+
+ </dict>
+ <dict>
+ <key>action</key>
+ <string>respring</string>
+ <key>cell</key>
+ <string>PSButtonCell</string>
+ <key>label</key>
+ <string>Respring</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>Gesture Direction</string>
+ <key>footerText</key>
+ <string>The swipe direction to dismiss the Lockscreen player.</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSegmentCell</string>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>dismissGesture</string>
+ <key>default</key>
+ <integer>2</integer>
+ <key>validTitles</key>
+ <array>
+ <string>Left</string>
+ <string>Right</string>
+ <string>Up</string>
+ <string>Down</string>
+ </array>
+ <key>validValues</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>3</integer>
+ </array>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>options</string>
+ <key>footerText</key>
+ <string>The time until the player is automatically dismissed.</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSwitchCell</string>
+ <key>default</key>
+ <false/>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>killApp</string>
+ <key>label</key>
+ <string>Close Now Playing App on Dismissal</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSwitchCell</string>
+ <key>default</key>
+ <false/>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>dismissPlayer</string>
+ <key>label</key>
+ <string>Dismiss Automatically</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSliderCell</string>
+ <key>min</key>
+ <real>0</real>
+ <key>max</key>
+ <real>60</real>
+ <key>default</key>
+ <real>0</real>
+ <key>showValue</key>
+ <true/>
+ <key>isSegmented</key>
+ <true/>
+ <key>segmentCount</key>
+ <integer>60</integer>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>timeValue</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSegmentCell</string>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>timeOption</string>
+ <key>default</key>
+ <integer>0</integer>
+ <key>validTitles</key>
+ <array>
+ <string>Seconds</string>
+ <string>Minutes</string>
+ <string>Hours</string>
+ </array>
+ <key>validValues</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ </array>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>Support</string>
+ <key>footerText</key>
+ <string>Having trouble with Finical?</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSButtonCell</string>
+ <key>action</key>
+ <string>openDiscord</string>
+ <key>label</key>
+ <string>FivePixels Discord Server</string>
+ <key>icon</key>
+ <string>discord.png</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSButtonCell</string>
+ <key>action</key>
+ <string>openTwitterDM</string>
+ <key>label</key>
+ <string>Get Support on Twitter</string>
+ <key>icon</key>
+ <string>twitter.png</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>Developer</string>
+ <key>footerText</key>
+ <string>"If this is coffee, please bring me some tea; but if this is tea, please bring me some coffee."</string>
+ <key>footerAlignment</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>action</key>
+ <string>openTwitter5px</string>
+ <key>cell</key>
+ <string>PSButtonCell</string>
+ <key>label</key>
+ <string>Dylan Bolger (FivePixels)</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>footerAlignment</key>
+ <integer>1</integer>
+ <key>footerText</key>
+ <string>Dylan Bolger (FivePixels) © 2020</string>
+ </dict>
+ </array>
+ <key>title</key>
+ <string>Finical</string>
+ </dict>
+</plist>
diff --git a/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/FinicalPrefs b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/FinicalPrefs
new file mode 100755
index 0000000..99aa0b3
--- /dev/null
+++ b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/FinicalPrefs
Binary files differ
diff --git a/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/Info.plist b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/Info.plist
new file mode 100644
index 0000000..ffd77b8
--- /dev/null
+++ b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/Info.plist
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>FinicalPrefs</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.5px.finicalprefs</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>BNDL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>NSPrincipalClass</key>
+ <string>FCLRootListController</string>
+</dict>
+</plist>
diff --git a/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/discord@2x.png b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/discord@2x.png
new file mode 100644
index 0000000..54f6a92
--- /dev/null
+++ b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/discord@2x.png
Binary files differ
diff --git a/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/discord@3x.png b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/discord@3x.png
new file mode 100644
index 0000000..d58c334
--- /dev/null
+++ b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/discord@3x.png
Binary files differ
diff --git a/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/github@2x.png b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/github@2x.png
new file mode 100644
index 0000000..52b4ba7
--- /dev/null
+++ b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/github@2x.png
Binary files differ
diff --git a/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/github@3x.png b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/github@3x.png
new file mode 100644
index 0000000..5509612
--- /dev/null
+++ b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/github@3x.png
Binary files differ
diff --git a/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/icon@2x.png b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/icon@2x.png
new file mode 100644
index 0000000..3b9d210
--- /dev/null
+++ b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/icon@2x.png
Binary files differ
diff --git a/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/icon@3x.png b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/icon@3x.png
new file mode 100644
index 0000000..43b0661
--- /dev/null
+++ b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/icon@3x.png
Binary files differ
diff --git a/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/twitter@2x.png b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/twitter@2x.png
new file mode 100644
index 0000000..5fa8892
--- /dev/null
+++ b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/twitter@2x.png
Binary files differ
diff --git a/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/twitter@3x.png b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/twitter@3x.png
new file mode 100644
index 0000000..9af7a41
--- /dev/null
+++ b/.theos/_/Library/PreferenceBundles/FinicalPrefs.bundle/twitter@3x.png
Binary files differ
diff --git a/.theos/_/Library/PreferenceLoader/Preferences/FinicalPrefs.plist b/.theos/_/Library/PreferenceLoader/Preferences/FinicalPrefs.plist
new file mode 100644
index 0000000..e094ad6
--- /dev/null
+++ b/.theos/_/Library/PreferenceLoader/Preferences/FinicalPrefs.plist
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>entry</key>
+ <dict>
+ <key>bundle</key>
+ <string>FinicalPrefs</string>
+ <key>cell</key>
+ <string>PSLinkCell</string>
+ <key>detail</key>
+ <string>FCLRootListController</string>
+ <key>icon</key>
+ <string>icon.png</string>
+ <key>isController</key>
+ <true/>
+ <key>label</key>
+ <string>Finical</string>
+ </dict>
+</dict>
+</plist>
diff --git a/.theos/build_session b/.theos/build_session
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.theos/build_session
diff --git a/.theos/fakeroot b/.theos/fakeroot
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.theos/fakeroot
diff --git a/.theos/last_package b/.theos/last_package
new file mode 100644
index 0000000..137f03f
--- /dev/null
+++ b/.theos/last_package
@@ -0,0 +1 @@
+./packages/com.5px.finical_1.0_iphoneos-arm.deb
diff --git a/.theos/obj/.stamp b/.theos/obj/.stamp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.theos/obj/.stamp
diff --git a/.theos/obj/Finical.dylib b/.theos/obj/Finical.dylib
new file mode 100755
index 0000000..3f0d545
--- /dev/null
+++ b/.theos/obj/Finical.dylib
Binary files differ
diff --git a/.theos/obj/FinicalPrefs.bundle/Finical.plist b/.theos/obj/FinicalPrefs.bundle/Finical.plist
new file mode 100644
index 0000000..d4c28ee
--- /dev/null
+++ b/.theos/obj/FinicalPrefs.bundle/Finical.plist
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>items</key>
+ <array>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>Settings</string>
+ <key>footerText</key>
+ <string>Respring your device to apply changes.</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSwitchCell</string>
+ <key>default</key>
+ <true/>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>enabled</string>
+ <key>label</key>
+ <string>Enabled</string>
+
+ </dict>
+ <dict>
+ <key>action</key>
+ <string>respring</string>
+ <key>cell</key>
+ <string>PSButtonCell</string>
+ <key>label</key>
+ <string>Respring</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>Gesture Direction</string>
+ <key>footerText</key>
+ <string>The swipe direction to dismiss the Lockscreen player.</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSegmentCell</string>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>dismissGesture</string>
+ <key>default</key>
+ <integer>2</integer>
+ <key>validTitles</key>
+ <array>
+ <string>Left</string>
+ <string>Right</string>
+ <string>Up</string>
+ <string>Down</string>
+ </array>
+ <key>validValues</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>3</integer>
+ </array>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>options</string>
+ <key>footerText</key>
+ <string>The time until the player is automatically dismissed.</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSwitchCell</string>
+ <key>default</key>
+ <false/>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>killApp</string>
+ <key>label</key>
+ <string>Close Now Playing App on Dismissal</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSwitchCell</string>
+ <key>default</key>
+ <false/>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>dismissPlayer</string>
+ <key>label</key>
+ <string>Dismiss Automatically</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSliderCell</string>
+ <key>min</key>
+ <real>0</real>
+ <key>max</key>
+ <real>60</real>
+ <key>default</key>
+ <real>0</real>
+ <key>showValue</key>
+ <true/>
+ <key>isSegmented</key>
+ <true/>
+ <key>segmentCount</key>
+ <integer>60</integer>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>timeValue</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSegmentCell</string>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>timeOption</string>
+ <key>default</key>
+ <integer>0</integer>
+ <key>validTitles</key>
+ <array>
+ <string>Seconds</string>
+ <string>Minutes</string>
+ <string>Hours</string>
+ </array>
+ <key>validValues</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ </array>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>Support</string>
+ <key>footerText</key>
+ <string>Having trouble with Finical?</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSButtonCell</string>
+ <key>action</key>
+ <string>openDiscord</string>
+ <key>label</key>
+ <string>FivePixels Discord Server</string>
+ <key>icon</key>
+ <string>discord.png</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSButtonCell</string>
+ <key>action</key>
+ <string>openTwitterDM</string>
+ <key>label</key>
+ <string>Get Support on Twitter</string>
+ <key>icon</key>
+ <string>twitter.png</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>Developer</string>
+ <key>footerText</key>
+ <string>"If this is coffee, please bring me some tea; but if this is tea, please bring me some coffee."</string>
+ <key>footerAlignment</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>action</key>
+ <string>openTwitter5px</string>
+ <key>cell</key>
+ <string>PSButtonCell</string>
+ <key>label</key>
+ <string>Dylan Bolger (FivePixels)</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>footerAlignment</key>
+ <integer>1</integer>
+ <key>footerText</key>
+ <string>Dylan Bolger (FivePixels) © 2020</string>
+ </dict>
+ </array>
+ <key>title</key>
+ <string>Finical</string>
+ </dict>
+</plist>
diff --git a/.theos/obj/FinicalPrefs.bundle/FinicalPrefs b/.theos/obj/FinicalPrefs.bundle/FinicalPrefs
new file mode 100755
index 0000000..bd3cb87
--- /dev/null
+++ b/.theos/obj/FinicalPrefs.bundle/FinicalPrefs
Binary files differ
diff --git a/.theos/obj/FinicalPrefs.bundle/Info.plist b/.theos/obj/FinicalPrefs.bundle/Info.plist
new file mode 100644
index 0000000..ffd77b8
--- /dev/null
+++ b/.theos/obj/FinicalPrefs.bundle/Info.plist
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>FinicalPrefs</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.5px.finicalprefs</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>BNDL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>NSPrincipalClass</key>
+ <string>FCLRootListController</string>
+</dict>
+</plist>
diff --git a/.theos/obj/FinicalPrefs.bundle/discord@2x.png b/.theos/obj/FinicalPrefs.bundle/discord@2x.png
new file mode 100644
index 0000000..54f6a92
--- /dev/null
+++ b/.theos/obj/FinicalPrefs.bundle/discord@2x.png
Binary files differ
diff --git a/.theos/obj/FinicalPrefs.bundle/discord@3x.png b/.theos/obj/FinicalPrefs.bundle/discord@3x.png
new file mode 100644
index 0000000..d58c334
--- /dev/null
+++ b/.theos/obj/FinicalPrefs.bundle/discord@3x.png
Binary files differ
diff --git a/.theos/obj/FinicalPrefs.bundle/icon@2x.png b/.theos/obj/FinicalPrefs.bundle/icon@2x.png
new file mode 100644
index 0000000..3b9d210
--- /dev/null
+++ b/.theos/obj/FinicalPrefs.bundle/icon@2x.png
Binary files differ
diff --git a/.theos/obj/FinicalPrefs.bundle/icon@3x.png b/.theos/obj/FinicalPrefs.bundle/icon@3x.png
new file mode 100644
index 0000000..43b0661
--- /dev/null
+++ b/.theos/obj/FinicalPrefs.bundle/icon@3x.png
Binary files differ
diff --git a/.theos/obj/FinicalPrefs.bundle/twitter@2x.png b/.theos/obj/FinicalPrefs.bundle/twitter@2x.png
new file mode 100644
index 0000000..5fa8892
--- /dev/null
+++ b/.theos/obj/FinicalPrefs.bundle/twitter@2x.png
Binary files differ
diff --git a/.theos/obj/FinicalPrefs.bundle/twitter@3x.png b/.theos/obj/FinicalPrefs.bundle/twitter@3x.png
new file mode 100644
index 0000000..9af7a41
--- /dev/null
+++ b/.theos/obj/FinicalPrefs.bundle/twitter@3x.png
Binary files differ
diff --git a/.theos/obj/arm64/FCLRootListController.m.4786d8ff.Td b/.theos/obj/arm64/FCLRootListController.m.4786d8ff.Td
new file mode 100644
index 0000000..35849dd
--- /dev/null
+++ b/.theos/obj/arm64/FCLRootListController.m.4786d8ff.Td
@@ -0,0 +1,22 @@
+/Volumes/Development/iOS/Tweaks/finical/.theos/obj/arm64/FCLRootListController.m.4786d8ff.o: \
+ FCLRootListController.m /Users/dylanbolger/theos/Prefix.pch \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h \
+ /Users/dylanbolger/theos/vendor/include/HBLog.h \
+ /Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h \
+ /Users/dylanbolger/theos/vendor/include/Preferences/PSListController.h \
+ /Users/dylanbolger/theos/vendor/include/Preferences/PSViewController.h
+
+/Users/dylanbolger/theos/Prefix.pch:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h:
+
+/Users/dylanbolger/theos/vendor/include/HBLog.h:
+
+/Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h:
+
+/Users/dylanbolger/theos/vendor/include/Preferences/PSListController.h:
+
+/Users/dylanbolger/theos/vendor/include/Preferences/PSViewController.h:
diff --git a/.theos/obj/arm64/FCLRootListController.m.4786d8ff.o b/.theos/obj/arm64/FCLRootListController.m.4786d8ff.o
new file mode 100644
index 0000000..ce9cf61
--- /dev/null
+++ b/.theos/obj/arm64/FCLRootListController.m.4786d8ff.o
Binary files differ
diff --git a/.theos/obj/arm64/Finical.dylib b/.theos/obj/arm64/Finical.dylib
new file mode 100755
index 0000000..ce12cfd
--- /dev/null
+++ b/.theos/obj/arm64/Finical.dylib
Binary files differ
diff --git a/.theos/obj/arm64/Finical.dylib.dSYM/Contents/Info.plist b/.theos/obj/arm64/Finical.dylib.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..61ddda7
--- /dev/null
+++ b/.theos/obj/arm64/Finical.dylib.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.apple.xcode.dsym.Finical.dylib</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>dSYM</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ </dict>
+</plist>
diff --git a/.theos/obj/arm64/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylib b/.theos/obj/arm64/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylib
new file mode 100644
index 0000000..afd0653
--- /dev/null
+++ b/.theos/obj/arm64/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylib
Binary files differ
diff --git a/.theos/obj/arm64/FinicalPrefs.bundle/FinicalPrefs b/.theos/obj/arm64/FinicalPrefs.bundle/FinicalPrefs
new file mode 100755
index 0000000..c625a76
--- /dev/null
+++ b/.theos/obj/arm64/FinicalPrefs.bundle/FinicalPrefs
Binary files differ
diff --git a/.theos/obj/arm64/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist b/.theos/obj/arm64/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..ee46ec0
--- /dev/null
+++ b/.theos/obj/arm64/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.apple.xcode.dsym.FinicalPrefs</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>dSYM</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ </dict>
+</plist>
diff --git a/.theos/obj/arm64/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefs b/.theos/obj/arm64/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefs
new file mode 100644
index 0000000..1d9ca97
--- /dev/null
+++ b/.theos/obj/arm64/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefs
Binary files differ
diff --git a/.theos/obj/arm64/Tweak.x.0f65de19.Td b/.theos/obj/arm64/Tweak.x.0f65de19.Td
new file mode 100644
index 0000000..e9a8724
--- /dev/null
+++ b/.theos/obj/arm64/Tweak.x.0f65de19.Td
@@ -0,0 +1,26 @@
+/Volumes/Development/iOS/Tweaks/finical/.theos/obj/arm64/Tweak.x.0f65de19.o: \
+ /Volumes/Development/iOS/Tweaks/finical/.theos/obj/arm64/Tweak.x.m \
+ /Users/dylanbolger/theos/Prefix.pch \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h \
+ /Users/dylanbolger/theos/vendor/include/HBLog.h \
+ /Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h \
+ /Users/dylanbolger/theos/vendor/include/substrate.h \
+ /Volumes/Development/iOS/Tweaks/finical/Headers.h \
+ /Volumes/Development/iOS/Tweaks/finical/MediaRemote.h
+
+/Users/dylanbolger/theos/Prefix.pch:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h:
+
+/Users/dylanbolger/theos/vendor/include/HBLog.h:
+
+/Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h:
+
+/Users/dylanbolger/theos/vendor/include/substrate.h:
+
+/Volumes/Development/iOS/Tweaks/finical/Headers.h:
+
+/Volumes/Development/iOS/Tweaks/finical/MediaRemote.h:
diff --git a/.theos/obj/arm64/Tweak.x.0f65de19.o b/.theos/obj/arm64/Tweak.x.0f65de19.o
new file mode 100644
index 0000000..f1aa497
--- /dev/null
+++ b/.theos/obj/arm64/Tweak.x.0f65de19.o
Binary files differ
diff --git a/.theos/obj/arm64e/FCLRootListController.m.d9a90589.Td b/.theos/obj/arm64e/FCLRootListController.m.d9a90589.Td
new file mode 100644
index 0000000..e0e820d
--- /dev/null
+++ b/.theos/obj/arm64e/FCLRootListController.m.d9a90589.Td
@@ -0,0 +1,22 @@
+/Volumes/Development/iOS/Tweaks/finical/.theos/obj/arm64e/FCLRootListController.m.d9a90589.o: \
+ FCLRootListController.m /Users/dylanbolger/theos/Prefix.pch \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h \
+ /Users/dylanbolger/theos/vendor/include/HBLog.h \
+ /Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h \
+ /Users/dylanbolger/theos/vendor/include/Preferences/PSListController.h \
+ /Users/dylanbolger/theos/vendor/include/Preferences/PSViewController.h
+
+/Users/dylanbolger/theos/Prefix.pch:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h:
+
+/Users/dylanbolger/theos/vendor/include/HBLog.h:
+
+/Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h:
+
+/Users/dylanbolger/theos/vendor/include/Preferences/PSListController.h:
+
+/Users/dylanbolger/theos/vendor/include/Preferences/PSViewController.h:
diff --git a/.theos/obj/arm64e/FCLRootListController.m.d9a90589.o b/.theos/obj/arm64e/FCLRootListController.m.d9a90589.o
new file mode 100644
index 0000000..2f936c5
--- /dev/null
+++ b/.theos/obj/arm64e/FCLRootListController.m.d9a90589.o
Binary files differ
diff --git a/.theos/obj/arm64e/Finical.dylib b/.theos/obj/arm64e/Finical.dylib
new file mode 100755
index 0000000..c63a8a1
--- /dev/null
+++ b/.theos/obj/arm64e/Finical.dylib
Binary files differ
diff --git a/.theos/obj/arm64e/Finical.dylib.dSYM/Contents/Info.plist b/.theos/obj/arm64e/Finical.dylib.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..61ddda7
--- /dev/null
+++ b/.theos/obj/arm64e/Finical.dylib.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.apple.xcode.dsym.Finical.dylib</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>dSYM</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ </dict>
+</plist>
diff --git a/.theos/obj/arm64e/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylib b/.theos/obj/arm64e/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylib
new file mode 100644
index 0000000..588d2f3
--- /dev/null
+++ b/.theos/obj/arm64e/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylib
Binary files differ
diff --git a/.theos/obj/arm64e/FinicalPrefs.bundle/FinicalPrefs b/.theos/obj/arm64e/FinicalPrefs.bundle/FinicalPrefs
new file mode 100755
index 0000000..b9d5ec0
--- /dev/null
+++ b/.theos/obj/arm64e/FinicalPrefs.bundle/FinicalPrefs
Binary files differ
diff --git a/.theos/obj/arm64e/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist b/.theos/obj/arm64e/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..ee46ec0
--- /dev/null
+++ b/.theos/obj/arm64e/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.apple.xcode.dsym.FinicalPrefs</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>dSYM</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ </dict>
+</plist>
diff --git a/.theos/obj/arm64e/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefs b/.theos/obj/arm64e/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefs
new file mode 100644
index 0000000..145ef4c
--- /dev/null
+++ b/.theos/obj/arm64e/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefs
Binary files differ
diff --git a/.theos/obj/arm64e/Tweak.x.39438a51.Td b/.theos/obj/arm64e/Tweak.x.39438a51.Td
new file mode 100644
index 0000000..10f0e91
--- /dev/null
+++ b/.theos/obj/arm64e/Tweak.x.39438a51.Td
@@ -0,0 +1,26 @@
+/Volumes/Development/iOS/Tweaks/finical/.theos/obj/arm64e/Tweak.x.39438a51.o: \
+ /Volumes/Development/iOS/Tweaks/finical/.theos/obj/arm64e/Tweak.x.m \
+ /Users/dylanbolger/theos/Prefix.pch \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h \
+ /Users/dylanbolger/theos/vendor/include/HBLog.h \
+ /Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h \
+ /Users/dylanbolger/theos/vendor/include/substrate.h \
+ /Volumes/Development/iOS/Tweaks/finical/Headers.h \
+ /Volumes/Development/iOS/Tweaks/finical/MediaRemote.h
+
+/Users/dylanbolger/theos/Prefix.pch:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h:
+
+/Users/dylanbolger/theos/vendor/include/HBLog.h:
+
+/Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h:
+
+/Users/dylanbolger/theos/vendor/include/substrate.h:
+
+/Volumes/Development/iOS/Tweaks/finical/Headers.h:
+
+/Volumes/Development/iOS/Tweaks/finical/MediaRemote.h:
diff --git a/.theos/obj/arm64e/Tweak.x.39438a51.o b/.theos/obj/arm64e/Tweak.x.39438a51.o
new file mode 100644
index 0000000..ef7465c
--- /dev/null
+++ b/.theos/obj/arm64e/Tweak.x.39438a51.o
Binary files differ
diff --git a/.theos/obj/debug/.stamp b/.theos/obj/debug/.stamp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.theos/obj/debug/.stamp
diff --git a/.theos/obj/debug/Finical.dylib b/.theos/obj/debug/Finical.dylib
new file mode 100755
index 0000000..717e136
--- /dev/null
+++ b/.theos/obj/debug/Finical.dylib
Binary files differ
diff --git a/.theos/obj/debug/FinicalPrefs.bundle/.Finical.plist.swp b/.theos/obj/debug/FinicalPrefs.bundle/.Finical.plist.swp
new file mode 100644
index 0000000..b8c79f7
--- /dev/null
+++ b/.theos/obj/debug/FinicalPrefs.bundle/.Finical.plist.swp
Binary files differ
diff --git a/.theos/obj/debug/FinicalPrefs.bundle/Finical.plist b/.theos/obj/debug/FinicalPrefs.bundle/Finical.plist
new file mode 100644
index 0000000..d4c28ee
--- /dev/null
+++ b/.theos/obj/debug/FinicalPrefs.bundle/Finical.plist
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>items</key>
+ <array>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>Settings</string>
+ <key>footerText</key>
+ <string>Respring your device to apply changes.</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSwitchCell</string>
+ <key>default</key>
+ <true/>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>enabled</string>
+ <key>label</key>
+ <string>Enabled</string>
+
+ </dict>
+ <dict>
+ <key>action</key>
+ <string>respring</string>
+ <key>cell</key>
+ <string>PSButtonCell</string>
+ <key>label</key>
+ <string>Respring</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>Gesture Direction</string>
+ <key>footerText</key>
+ <string>The swipe direction to dismiss the Lockscreen player.</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSegmentCell</string>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>dismissGesture</string>
+ <key>default</key>
+ <integer>2</integer>
+ <key>validTitles</key>
+ <array>
+ <string>Left</string>
+ <string>Right</string>
+ <string>Up</string>
+ <string>Down</string>
+ </array>
+ <key>validValues</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>3</integer>
+ </array>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>options</string>
+ <key>footerText</key>
+ <string>The time until the player is automatically dismissed.</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSwitchCell</string>
+ <key>default</key>
+ <false/>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>killApp</string>
+ <key>label</key>
+ <string>Close Now Playing App on Dismissal</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSwitchCell</string>
+ <key>default</key>
+ <false/>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>dismissPlayer</string>
+ <key>label</key>
+ <string>Dismiss Automatically</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSliderCell</string>
+ <key>min</key>
+ <real>0</real>
+ <key>max</key>
+ <real>60</real>
+ <key>default</key>
+ <real>0</real>
+ <key>showValue</key>
+ <true/>
+ <key>isSegmented</key>
+ <true/>
+ <key>segmentCount</key>
+ <integer>60</integer>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>timeValue</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSegmentCell</string>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>timeOption</string>
+ <key>default</key>
+ <integer>0</integer>
+ <key>validTitles</key>
+ <array>
+ <string>Seconds</string>
+ <string>Minutes</string>
+ <string>Hours</string>
+ </array>
+ <key>validValues</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ </array>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>Support</string>
+ <key>footerText</key>
+ <string>Having trouble with Finical?</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSButtonCell</string>
+ <key>action</key>
+ <string>openDiscord</string>
+ <key>label</key>
+ <string>FivePixels Discord Server</string>
+ <key>icon</key>
+ <string>discord.png</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSButtonCell</string>
+ <key>action</key>
+ <string>openTwitterDM</string>
+ <key>label</key>
+ <string>Get Support on Twitter</string>
+ <key>icon</key>
+ <string>twitter.png</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>Developer</string>
+ <key>footerText</key>
+ <string>"If this is coffee, please bring me some tea; but if this is tea, please bring me some coffee."</string>
+ <key>footerAlignment</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>action</key>
+ <string>openTwitter5px</string>
+ <key>cell</key>
+ <string>PSButtonCell</string>
+ <key>label</key>
+ <string>Dylan Bolger (FivePixels)</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>footerAlignment</key>
+ <integer>1</integer>
+ <key>footerText</key>
+ <string>Dylan Bolger (FivePixels) © 2020</string>
+ </dict>
+ </array>
+ <key>title</key>
+ <string>Finical</string>
+ </dict>
+</plist>
diff --git a/.theos/obj/debug/FinicalPrefs.bundle/FinicalPrefs b/.theos/obj/debug/FinicalPrefs.bundle/FinicalPrefs
new file mode 100755
index 0000000..99aa0b3
--- /dev/null
+++ b/.theos/obj/debug/FinicalPrefs.bundle/FinicalPrefs
Binary files differ
diff --git a/.theos/obj/debug/FinicalPrefs.bundle/Info.plist b/.theos/obj/debug/FinicalPrefs.bundle/Info.plist
new file mode 100644
index 0000000..ffd77b8
--- /dev/null
+++ b/.theos/obj/debug/FinicalPrefs.bundle/Info.plist
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>FinicalPrefs</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.5px.finicalprefs</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>BNDL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>NSPrincipalClass</key>
+ <string>FCLRootListController</string>
+</dict>
+</plist>
diff --git a/.theos/obj/debug/FinicalPrefs.bundle/discord@2x.png b/.theos/obj/debug/FinicalPrefs.bundle/discord@2x.png
new file mode 100644
index 0000000..54f6a92
--- /dev/null
+++ b/.theos/obj/debug/FinicalPrefs.bundle/discord@2x.png
Binary files differ
diff --git a/.theos/obj/debug/FinicalPrefs.bundle/discord@3x.png b/.theos/obj/debug/FinicalPrefs.bundle/discord@3x.png
new file mode 100644
index 0000000..d58c334
--- /dev/null
+++ b/.theos/obj/debug/FinicalPrefs.bundle/discord@3x.png
Binary files differ
diff --git a/.theos/obj/debug/FinicalPrefs.bundle/github@2x.png b/.theos/obj/debug/FinicalPrefs.bundle/github@2x.png
new file mode 100644
index 0000000..52b4ba7
--- /dev/null
+++ b/.theos/obj/debug/FinicalPrefs.bundle/github@2x.png
Binary files differ
diff --git a/.theos/obj/debug/FinicalPrefs.bundle/github@3x.png b/.theos/obj/debug/FinicalPrefs.bundle/github@3x.png
new file mode 100644
index 0000000..5509612
--- /dev/null
+++ b/.theos/obj/debug/FinicalPrefs.bundle/github@3x.png
Binary files differ
diff --git a/.theos/obj/debug/FinicalPrefs.bundle/icon@2x.png b/.theos/obj/debug/FinicalPrefs.bundle/icon@2x.png
new file mode 100644
index 0000000..3b9d210
--- /dev/null
+++ b/.theos/obj/debug/FinicalPrefs.bundle/icon@2x.png
Binary files differ
diff --git a/.theos/obj/debug/FinicalPrefs.bundle/icon@3x.png b/.theos/obj/debug/FinicalPrefs.bundle/icon@3x.png
new file mode 100644
index 0000000..43b0661
--- /dev/null
+++ b/.theos/obj/debug/FinicalPrefs.bundle/icon@3x.png
Binary files differ
diff --git a/.theos/obj/debug/FinicalPrefs.bundle/twitter@2x.png b/.theos/obj/debug/FinicalPrefs.bundle/twitter@2x.png
new file mode 100644
index 0000000..5fa8892
--- /dev/null
+++ b/.theos/obj/debug/FinicalPrefs.bundle/twitter@2x.png
Binary files differ
diff --git a/.theos/obj/debug/FinicalPrefs.bundle/twitter@3x.png b/.theos/obj/debug/FinicalPrefs.bundle/twitter@3x.png
new file mode 100644
index 0000000..9af7a41
--- /dev/null
+++ b/.theos/obj/debug/FinicalPrefs.bundle/twitter@3x.png
Binary files differ
diff --git a/.theos/obj/debug/arm64/FCLRootListController.m.6697b6e8.Td b/.theos/obj/debug/arm64/FCLRootListController.m.6697b6e8.Td
new file mode 100644
index 0000000..09af417
--- /dev/null
+++ b/.theos/obj/debug/arm64/FCLRootListController.m.6697b6e8.Td
@@ -0,0 +1,22 @@
+/Users/dylanbolger/Development/iOS/Tweaks/finical/.theos/obj/debug/arm64/FCLRootListController.m.6697b6e8.o: \
+ FCLRootListController.m /Users/dylanbolger/theos/Prefix.pch \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h \
+ /Users/dylanbolger/theos/vendor/include/HBLog.h \
+ /Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h \
+ /Users/dylanbolger/theos/vendor/include/Preferences/PSListController.h \
+ /Users/dylanbolger/theos/vendor/include/Preferences/PSViewController.h
+
+/Users/dylanbolger/theos/Prefix.pch:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h:
+
+/Users/dylanbolger/theos/vendor/include/HBLog.h:
+
+/Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h:
+
+/Users/dylanbolger/theos/vendor/include/Preferences/PSListController.h:
+
+/Users/dylanbolger/theos/vendor/include/Preferences/PSViewController.h:
diff --git a/.theos/obj/debug/arm64/FCLRootListController.m.6697b6e8.o b/.theos/obj/debug/arm64/FCLRootListController.m.6697b6e8.o
new file mode 100644
index 0000000..7bff193
--- /dev/null
+++ b/.theos/obj/debug/arm64/FCLRootListController.m.6697b6e8.o
Binary files differ
diff --git a/.theos/obj/debug/arm64/Finical.dylib b/.theos/obj/debug/arm64/Finical.dylib
new file mode 100755
index 0000000..56ca191
--- /dev/null
+++ b/.theos/obj/debug/arm64/Finical.dylib
Binary files differ
diff --git a/.theos/obj/debug/arm64/Finical.dylib.dSYM/Contents/Info.plist b/.theos/obj/debug/arm64/Finical.dylib.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..61ddda7
--- /dev/null
+++ b/.theos/obj/debug/arm64/Finical.dylib.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.apple.xcode.dsym.Finical.dylib</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>dSYM</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ </dict>
+</plist>
diff --git a/.theos/obj/debug/arm64/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylib b/.theos/obj/debug/arm64/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylib
new file mode 100644
index 0000000..a185f7b
--- /dev/null
+++ b/.theos/obj/debug/arm64/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylib
Binary files differ
diff --git a/.theos/obj/debug/arm64/FinicalPrefs.bundle/FinicalPrefs b/.theos/obj/debug/arm64/FinicalPrefs.bundle/FinicalPrefs
new file mode 100755
index 0000000..97c523b
--- /dev/null
+++ b/.theos/obj/debug/arm64/FinicalPrefs.bundle/FinicalPrefs
Binary files differ
diff --git a/.theos/obj/debug/arm64/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist b/.theos/obj/debug/arm64/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..ee46ec0
--- /dev/null
+++ b/.theos/obj/debug/arm64/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.apple.xcode.dsym.FinicalPrefs</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>dSYM</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ </dict>
+</plist>
diff --git a/.theos/obj/debug/arm64/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefs b/.theos/obj/debug/arm64/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefs
new file mode 100644
index 0000000..b11041f
--- /dev/null
+++ b/.theos/obj/debug/arm64/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefs
Binary files differ
diff --git a/.theos/obj/debug/arm64/Tweak.x.324c8b47.Td b/.theos/obj/debug/arm64/Tweak.x.324c8b47.Td
new file mode 100644
index 0000000..f65a0a5
--- /dev/null
+++ b/.theos/obj/debug/arm64/Tweak.x.324c8b47.Td
@@ -0,0 +1,26 @@
+/Users/dylanbolger/Development/iOS/Tweaks/finical/.theos/obj/debug/arm64/Tweak.x.324c8b47.o: \
+ /Users/dylanbolger/Development/iOS/Tweaks/finical/.theos/obj/debug/arm64/Tweak.x.m \
+ /Users/dylanbolger/theos/Prefix.pch \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h \
+ /Users/dylanbolger/theos/vendor/include/HBLog.h \
+ /Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h \
+ /Users/dylanbolger/theos/vendor/include/substrate.h \
+ /Users/dylanbolger/Development/iOS/Tweaks/finical/Headers.h \
+ /Users/dylanbolger/Development/iOS/Tweaks/finical/MediaRemote.h
+
+/Users/dylanbolger/theos/Prefix.pch:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h:
+
+/Users/dylanbolger/theos/vendor/include/HBLog.h:
+
+/Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h:
+
+/Users/dylanbolger/theos/vendor/include/substrate.h:
+
+/Users/dylanbolger/Development/iOS/Tweaks/finical/Headers.h:
+
+/Users/dylanbolger/Development/iOS/Tweaks/finical/MediaRemote.h:
diff --git a/.theos/obj/debug/arm64/Tweak.x.324c8b47.o b/.theos/obj/debug/arm64/Tweak.x.324c8b47.o
new file mode 100644
index 0000000..f3680f1
--- /dev/null
+++ b/.theos/obj/debug/arm64/Tweak.x.324c8b47.o
Binary files differ
diff --git a/.theos/obj/debug/arm64/Tweak.x.9a5be5fd.Td b/.theos/obj/debug/arm64/Tweak.x.9a5be5fd.Td
new file mode 100644
index 0000000..486186c
--- /dev/null
+++ b/.theos/obj/debug/arm64/Tweak.x.9a5be5fd.Td
@@ -0,0 +1,20 @@
+/Users/dylanbolger/Development/iOS/Tweaks/finical/.theos/obj/debug/arm64/Tweak.x.9a5be5fd.o: \
+ /Users/dylanbolger/Development/iOS/Tweaks/finical/.theos/obj/debug/arm64/Tweak.x.m \
+ /Users/dylanbolger/theos/Prefix.pch \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h \
+ /Users/dylanbolger/theos/vendor/include/HBLog.h \
+ /Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h \
+ /Users/dylanbolger/theos/vendor/include/substrate.h
+
+/Users/dylanbolger/theos/Prefix.pch:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h:
+
+/Users/dylanbolger/theos/vendor/include/HBLog.h:
+
+/Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h:
+
+/Users/dylanbolger/theos/vendor/include/substrate.h:
diff --git a/.theos/obj/debug/arm64/Tweak.x.9a5be5fd.o b/.theos/obj/debug/arm64/Tweak.x.9a5be5fd.o
new file mode 100644
index 0000000..90583a2
--- /dev/null
+++ b/.theos/obj/debug/arm64/Tweak.x.9a5be5fd.o
Binary files differ
diff --git a/.theos/obj/debug/arm64/Tweak.x.m b/.theos/obj/debug/arm64/Tweak.x.m
new file mode 100644
index 0000000..2e93ef1
--- /dev/null
+++ b/.theos/obj/debug/arm64/Tweak.x.m
@@ -0,0 +1,203 @@
+#line 1 "Tweak.x"
+
+#include <substrate.h>
+#if defined(__clang__)
+#if __has_feature(objc_arc)
+#define _LOGOS_SELF_TYPE_NORMAL __unsafe_unretained
+#define _LOGOS_SELF_TYPE_INIT __attribute__((ns_consumed))
+#define _LOGOS_SELF_CONST const
+#define _LOGOS_RETURN_RETAINED __attribute__((ns_returns_retained))
+#else
+#define _LOGOS_SELF_TYPE_NORMAL
+#define _LOGOS_SELF_TYPE_INIT
+#define _LOGOS_SELF_CONST
+#define _LOGOS_RETURN_RETAINED
+#endif
+#else
+#define _LOGOS_SELF_TYPE_NORMAL
+#define _LOGOS_SELF_TYPE_INIT
+#define _LOGOS_SELF_CONST
+#define _LOGOS_RETURN_RETAINED
+#endif
+
+@class CSMediaControlsView; @class SBMainSwitcherViewController; @class CSAdjunctListItemView; @class SBLockScreenManager; @class QRTMediaModuleViewController; @class SBMediaController; @class PLPlatterCustomContentView;
+static void _logos_meta_method$_ungrouped$CSMediaControlsView$removePlayer(_LOGOS_SELF_TYPE_NORMAL Class _LOGOS_SELF_CONST, SEL); static void _logos_meta_method$_ungrouped$CSMediaControlsView$stateChanged$(_LOGOS_SELF_TYPE_NORMAL Class _LOGOS_SELF_CONST, SEL, NSNotification *); static void (*_logos_orig$_ungrouped$CSMediaControlsView$layoutSubviews)(_LOGOS_SELF_TYPE_NORMAL CSMediaControlsView* _LOGOS_SELF_CONST, SEL); static void _logos_method$_ungrouped$CSMediaControlsView$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL CSMediaControlsView* _LOGOS_SELF_CONST, SEL); static void (*_logos_orig$_ungrouped$CSAdjunctListItemView$layoutSubviews)(_LOGOS_SELF_TYPE_NORMAL CSAdjunctListItemView* _LOGOS_SELF_CONST, SEL); static void _logos_method$_ungrouped$CSAdjunctListItemView$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL CSAdjunctListItemView* _LOGOS_SELF_CONST, SEL); static void (*_logos_orig$_ungrouped$QRTMediaModuleViewController$layoutSubviews)(_LOGOS_SELF_TYPE_NORMAL QRTMediaModuleViewController* _LOGOS_SELF_CONST, SEL); static void _logos_method$_ungrouped$QRTMediaModuleViewController$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL QRTMediaModuleViewController* _LOGOS_SELF_CONST, SEL); static void (*_logos_orig$_ungrouped$PLPlatterCustomContentView$layoutSubviews)(_LOGOS_SELF_TYPE_NORMAL PLPlatterCustomContentView* _LOGOS_SELF_CONST, SEL); static void _logos_method$_ungrouped$PLPlatterCustomContentView$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL PLPlatterCustomContentView* _LOGOS_SELF_CONST, SEL);
+static __inline__ __attribute__((always_inline)) __attribute__((unused)) Class _logos_static_class_lookup$SBMediaController(void) { static Class _klass; if(!_klass) { _klass = objc_getClass("SBMediaController"); } return _klass; }static __inline__ __attribute__((always_inline)) __attribute__((unused)) Class _logos_static_class_lookup$SBMainSwitcherViewController(void) { static Class _klass; if(!_klass) { _klass = objc_getClass("SBMainSwitcherViewController"); } return _klass; }static __inline__ __attribute__((always_inline)) __attribute__((unused)) Class _logos_static_class_lookup$CSMediaControlsView(void) { static Class _klass; if(!_klass) { _klass = objc_getClass("CSMediaControlsView"); } return _klass; }static __inline__ __attribute__((always_inline)) __attribute__((unused)) Class _logos_static_class_lookup$SBLockScreenManager(void) { static Class _klass; if(!_klass) { _klass = objc_getClass("SBLockScreenManager"); } return _klass; }
+#line 1 "Tweak.x"
+#import <Headers.h>
+static BOOL enabled = YES;
+static BOOL dismissPlayer = NO;
+static BOOL killApp = NO;
+static int timeOption = 0;
+static int dismissGesture = 2;
+static int timeValue = 0;
+static id prefs;
+static void reloadSettings() {
+ prefs = [[NSMutableDictionary alloc] initWithContentsOfFile:@"/var/mobile/Library/Preferences/com.5px.finical.plist"];
+ if(prefs) {
+ enabled = [prefs objectForKey:@"enabled"] ? [[prefs objectForKey:@"enabled"] intValue] : enabled;
+ dismissPlayer = [prefs objectForKey:@"dismissPlayer"] ? [[prefs objectForKey:@"dismissPlayer"] intValue]: dismissPlayer;
+ killApp = [prefs objectForKey:@"killApp"] ? [[prefs objectForKey:@"killApp"] intValue]: killApp;
+ timeOption = [prefs objectForKey:@"timeOption"] ? [[prefs objectForKey:@"timeOption"] intValue]: timeOption;
+ timeValue = [prefs objectForKey:@"timeValue"] ? [[prefs objectForKey:@"timeValue"] intValue]: timeValue;
+ dismissGesture = [prefs objectForKey:@"dismissGesture"] ? [[prefs objectForKey:@"dismissGesture"] intValue]: dismissGesture;
+ if (dismissPlayer) {
+ switch (timeOption) {
+ case 0:
+ break;
+ case 1:
+ timeValue = timeValue * 60;
+ break;
+ case 2:
+ timeValue = timeValue * 3600;
+ break;
+ }
+ }
+ }
+}
+
+CSAdjunctListItem *item;
+SBLockScreenManager *manager;
+CSNotificationAdjunctListViewController *vc;
+NSTimer *timer;
+SBMainSwitcherViewController *mainSwitcher;
+NSString *nowPlayingID;
+NSArray *items;
+
+static void _logos_meta_method$_ungrouped$CSMediaControlsView$removePlayer(_LOGOS_SELF_TYPE_NORMAL Class _LOGOS_SELF_CONST __unused self, SEL __unused _cmd) {
+ if ([[_logos_static_class_lookup$SBMediaController() sharedInstance] isPaused]) {
+ if ([vc.identifiersToItems count] >= 1) {
+ [vc _removeItem:(id)item animated:(BOOL)YES];
+ if (killApp) {
+ for (SBAppLayout *item in items) {
+ SBDisplayItem *currentItem = [item.rolesToLayoutItemsMap objectForKey:@1];
+ NSString *bundleID = currentItem.bundleIdentifier;
+ if ([bundleID isEqualToString: nowPlayingID]) {
+ [mainSwitcher _deleteAppLayout:item forReason: 1];
+ }
+ }
+ }
+ }
+ }
+}
+
+static void _logos_meta_method$_ungrouped$CSMediaControlsView$stateChanged$(_LOGOS_SELF_TYPE_NORMAL Class _LOGOS_SELF_CONST __unused self, SEL __unused _cmd, NSNotification * notification) {
+ if ([[_logos_static_class_lookup$SBMediaController() sharedInstance] isPlaying]) {
+ if ([vc.identifiersToItems count] == 0) {
+ [vc _insertItem:(id)item animated:(BOOL)YES];
+ }
+ }
+ if ([timer isValid]) {
+ [timer invalidate];
+ timer = nil;
+ }
+ if (enabled) {
+ if ([vc.identifiersToItems count] == 1) {
+ if (dismissPlayer) {
+ timer = [NSTimer scheduledTimerWithTimeInterval: timeValue
+ target: _logos_static_class_lookup$CSMediaControlsView()
+ selector: @selector(removePlayer)
+ userInfo: nil
+ repeats: NO];
+ }
+ }
+ }
+}
+static void _logos_method$_ungrouped$CSMediaControlsView$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL CSMediaControlsView* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd) {
+ reloadSettings();
+ manager = [_logos_static_class_lookup$SBLockScreenManager() sharedInstance];
+ vc = [[[[manager coverSheetViewController] mainPageContentViewController] combinedListViewController] adjunctListViewController];
+ item = [vc.identifiersToItems objectForKey:@"SBDashBoardNowPlayingAssertionIdentifier"];
+ mainSwitcher = [_logos_static_class_lookup$SBMainSwitcherViewController() sharedInstance];
+ items = mainSwitcher.recentAppLayouts;
+ nowPlayingID = [[[_logos_static_class_lookup$SBMediaController() sharedInstance] nowPlayingApplication] bundleIdentifier];
+ UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc]initWithTarget:_logos_static_class_lookup$CSMediaControlsView() action:@selector(removePlayer)];
+ switch (dismissGesture) {
+ case 1:
+ gesture.direction = UISwipeGestureRecognizerDirectionRight;
+ break;
+ case 2:
+ gesture.direction = UISwipeGestureRecognizerDirectionUp;
+ break;
+ case 3:
+ gesture.direction = UISwipeGestureRecognizerDirectionDown;
+ break;
+ default:
+ gesture.direction = UISwipeGestureRecognizerDirectionLeft;
+ break;
+ }
+ [self addGestureRecognizer:gesture];
+ _logos_orig$_ungrouped$CSMediaControlsView$layoutSubviews(self, _cmd);
+}
+
+
+static void _logos_method$_ungrouped$CSAdjunctListItemView$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL CSAdjunctListItemView* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd) {
+ UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc]initWithTarget:_logos_static_class_lookup$CSMediaControlsView() action:@selector(removePlayer)];
+ switch (dismissGesture) {
+ case 0:
+ gesture.direction = UISwipeGestureRecognizerDirectionLeft;
+ break;
+ case 1:
+ gesture.direction = UISwipeGestureRecognizerDirectionRight;
+ break;
+ case 2:
+ gesture.direction = UISwipeGestureRecognizerDirectionUp;
+ break;
+ case 3:
+ gesture.direction = UISwipeGestureRecognizerDirectionDown;
+ break;
+ }
+ [self addGestureRecognizer:gesture];
+ _logos_orig$_ungrouped$CSAdjunctListItemView$layoutSubviews(self, _cmd);
+}
+
+
+static void _logos_method$_ungrouped$QRTMediaModuleViewController$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL QRTMediaModuleViewController* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd) {
+ UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc]initWithTarget:_logos_static_class_lookup$CSMediaControlsView() action:@selector(removePlayer)];
+ switch (dismissGesture) {
+ case 0:
+ gesture.direction = UISwipeGestureRecognizerDirectionLeft;
+ break;
+ case 1:
+ gesture.direction = UISwipeGestureRecognizerDirectionRight;
+ break;
+ case 2:
+ gesture.direction = UISwipeGestureRecognizerDirectionUp;
+ break;
+ case 3:
+ gesture.direction = UISwipeGestureRecognizerDirectionDown;
+ break;
+ }
+ [self addGestureRecognizer:gesture];
+ _logos_orig$_ungrouped$QRTMediaModuleViewController$layoutSubviews(self, _cmd);
+}
+
+
+static void _logos_method$_ungrouped$PLPlatterCustomContentView$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL PLPlatterCustomContentView* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd) {
+ UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc]initWithTarget:_logos_static_class_lookup$CSMediaControlsView() action:@selector(removePlayer)];
+ switch (dismissGesture) {
+ case 0:
+ gesture.direction = UISwipeGestureRecognizerDirectionLeft;
+ break;
+ case 1:
+ gesture.direction = UISwipeGestureRecognizerDirectionRight;
+ break;
+ case 2:
+ gesture.direction = UISwipeGestureRecognizerDirectionUp;
+ break;
+ case 3:
+ gesture.direction = UISwipeGestureRecognizerDirectionDown;
+ break;
+ }
+ [self addGestureRecognizer:gesture];
+ _logos_orig$_ungrouped$PLPlatterCustomContentView$layoutSubviews(self, _cmd);
+}
+
+static __attribute__((constructor)) void _logosLocalCtor_b2403fe0(int __unused argc, char __unused **argv, char __unused **envp) {
+ reloadSettings();
+ [[NSNotificationCenter defaultCenter] addObserver:_logos_static_class_lookup$CSMediaControlsView() selector:@selector(stateChanged:) name:@"SBMediaNowPlayingChangedNotification" object:nil];
+}
+
+static __attribute__((constructor)) void _logosLocalInit() {
+{Class _logos_class$_ungrouped$CSMediaControlsView = objc_getClass("CSMediaControlsView"); Class _logos_metaclass$_ungrouped$CSMediaControlsView = object_getClass(_logos_class$_ungrouped$CSMediaControlsView); { char _typeEncoding[1024]; unsigned int i = 0; _typeEncoding[i] = 'v'; i += 1; _typeEncoding[i] = '@'; i += 1; _typeEncoding[i] = ':'; i += 1; _typeEncoding[i] = '\0'; class_addMethod(_logos_metaclass$_ungrouped$CSMediaControlsView, @selector(removePlayer), (IMP)&_logos_meta_method$_ungrouped$CSMediaControlsView$removePlayer, _typeEncoding); }{ char _typeEncoding[1024]; unsigned int i = 0; _typeEncoding[i] = 'v'; i += 1; _typeEncoding[i] = '@'; i += 1; _typeEncoding[i] = ':'; i += 1; memcpy(_typeEncoding + i, @encode(NSNotification *), strlen(@encode(NSNotification *))); i += strlen(@encode(NSNotification *)); _typeEncoding[i] = '\0'; class_addMethod(_logos_metaclass$_ungrouped$CSMediaControlsView, @selector(stateChanged:), (IMP)&_logos_meta_method$_ungrouped$CSMediaControlsView$stateChanged$, _typeEncoding); }MSHookMessageEx(_logos_class$_ungrouped$CSMediaControlsView, @selector(layoutSubviews), (IMP)&_logos_method$_ungrouped$CSMediaControlsView$layoutSubviews, (IMP*)&_logos_orig$_ungrouped$CSMediaControlsView$layoutSubviews);Class _logos_class$_ungrouped$CSAdjunctListItemView = objc_getClass("CSAdjunctListItemView"); MSHookMessageEx(_logos_class$_ungrouped$CSAdjunctListItemView, @selector(layoutSubviews), (IMP)&_logos_method$_ungrouped$CSAdjunctListItemView$layoutSubviews, (IMP*)&_logos_orig$_ungrouped$CSAdjunctListItemView$layoutSubviews);Class _logos_class$_ungrouped$QRTMediaModuleViewController = objc_getClass("QRTMediaModuleViewController"); MSHookMessageEx(_logos_class$_ungrouped$QRTMediaModuleViewController, @selector(layoutSubviews), (IMP)&_logos_method$_ungrouped$QRTMediaModuleViewController$layoutSubviews, (IMP*)&_logos_orig$_ungrouped$QRTMediaModuleViewController$layoutSubviews);Class _logos_class$_ungrouped$PLPlatterCustomContentView = objc_getClass("PLPlatterCustomContentView"); MSHookMessageEx(_logos_class$_ungrouped$PLPlatterCustomContentView, @selector(layoutSubviews), (IMP)&_logos_method$_ungrouped$PLPlatterCustomContentView$layoutSubviews, (IMP*)&_logos_orig$_ungrouped$PLPlatterCustomContentView$layoutSubviews);} }
+#line 175 "Tweak.x"
diff --git a/.theos/obj/debug/arm64e/FCLRootListController.m.60c48a2a.Td b/.theos/obj/debug/arm64e/FCLRootListController.m.60c48a2a.Td
new file mode 100644
index 0000000..0999e74
--- /dev/null
+++ b/.theos/obj/debug/arm64e/FCLRootListController.m.60c48a2a.Td
@@ -0,0 +1,22 @@
+/Users/dylanbolger/Development/iOS/Tweaks/finical/.theos/obj/debug/arm64e/FCLRootListController.m.60c48a2a.o: \
+ FCLRootListController.m /Users/dylanbolger/theos/Prefix.pch \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h \
+ /Users/dylanbolger/theos/vendor/include/HBLog.h \
+ /Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h \
+ /Users/dylanbolger/theos/vendor/include/Preferences/PSListController.h \
+ /Users/dylanbolger/theos/vendor/include/Preferences/PSViewController.h
+
+/Users/dylanbolger/theos/Prefix.pch:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h:
+
+/Users/dylanbolger/theos/vendor/include/HBLog.h:
+
+/Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h:
+
+/Users/dylanbolger/theos/vendor/include/Preferences/PSListController.h:
+
+/Users/dylanbolger/theos/vendor/include/Preferences/PSViewController.h:
diff --git a/.theos/obj/debug/arm64e/FCLRootListController.m.60c48a2a.o b/.theos/obj/debug/arm64e/FCLRootListController.m.60c48a2a.o
new file mode 100644
index 0000000..d2a5657
--- /dev/null
+++ b/.theos/obj/debug/arm64e/FCLRootListController.m.60c48a2a.o
Binary files differ
diff --git a/.theos/obj/debug/arm64e/Finical.dylib b/.theos/obj/debug/arm64e/Finical.dylib
new file mode 100755
index 0000000..39199d8
--- /dev/null
+++ b/.theos/obj/debug/arm64e/Finical.dylib
Binary files differ
diff --git a/.theos/obj/debug/arm64e/Finical.dylib.dSYM/Contents/Info.plist b/.theos/obj/debug/arm64e/Finical.dylib.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..61ddda7
--- /dev/null
+++ b/.theos/obj/debug/arm64e/Finical.dylib.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.apple.xcode.dsym.Finical.dylib</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>dSYM</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ </dict>
+</plist>
diff --git a/.theos/obj/debug/arm64e/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylib b/.theos/obj/debug/arm64e/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylib
new file mode 100644
index 0000000..adddb37
--- /dev/null
+++ b/.theos/obj/debug/arm64e/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylib
Binary files differ
diff --git a/.theos/obj/debug/arm64e/FinicalPrefs.bundle/FinicalPrefs b/.theos/obj/debug/arm64e/FinicalPrefs.bundle/FinicalPrefs
new file mode 100755
index 0000000..a4117f8
--- /dev/null
+++ b/.theos/obj/debug/arm64e/FinicalPrefs.bundle/FinicalPrefs
Binary files differ
diff --git a/.theos/obj/debug/arm64e/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist b/.theos/obj/debug/arm64e/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..ee46ec0
--- /dev/null
+++ b/.theos/obj/debug/arm64e/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.apple.xcode.dsym.FinicalPrefs</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>dSYM</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ </dict>
+</plist>
diff --git a/.theos/obj/debug/arm64e/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefs b/.theos/obj/debug/arm64e/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefs
new file mode 100644
index 0000000..4140237
--- /dev/null
+++ b/.theos/obj/debug/arm64e/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefs
Binary files differ
diff --git a/.theos/obj/debug/arm64e/Tweak.x.a450b45f.Td b/.theos/obj/debug/arm64e/Tweak.x.a450b45f.Td
new file mode 100644
index 0000000..ac6675e
--- /dev/null
+++ b/.theos/obj/debug/arm64e/Tweak.x.a450b45f.Td
@@ -0,0 +1,20 @@
+/Users/dylanbolger/Development/iOS/Tweaks/finical/.theos/obj/debug/arm64e/Tweak.x.a450b45f.o: \
+ /Users/dylanbolger/Development/iOS/Tweaks/finical/.theos/obj/debug/arm64e/Tweak.x.m \
+ /Users/dylanbolger/theos/Prefix.pch \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h \
+ /Users/dylanbolger/theos/vendor/include/HBLog.h \
+ /Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h \
+ /Users/dylanbolger/theos/vendor/include/substrate.h
+
+/Users/dylanbolger/theos/Prefix.pch:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h:
+
+/Users/dylanbolger/theos/vendor/include/HBLog.h:
+
+/Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h:
+
+/Users/dylanbolger/theos/vendor/include/substrate.h:
diff --git a/.theos/obj/debug/arm64e/Tweak.x.a450b45f.o b/.theos/obj/debug/arm64e/Tweak.x.a450b45f.o
new file mode 100644
index 0000000..ef11c99
--- /dev/null
+++ b/.theos/obj/debug/arm64e/Tweak.x.a450b45f.o
Binary files differ
diff --git a/.theos/obj/debug/arm64e/Tweak.x.a81dc44d.Td b/.theos/obj/debug/arm64e/Tweak.x.a81dc44d.Td
new file mode 100644
index 0000000..42efa7c
--- /dev/null
+++ b/.theos/obj/debug/arm64e/Tweak.x.a81dc44d.Td
@@ -0,0 +1,26 @@
+/Users/dylanbolger/Development/iOS/Tweaks/finical/.theos/obj/debug/arm64e/Tweak.x.a81dc44d.o: \
+ /Users/dylanbolger/Development/iOS/Tweaks/finical/.theos/obj/debug/arm64e/Tweak.x.m \
+ /Users/dylanbolger/theos/Prefix.pch \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h \
+ /Users/dylanbolger/theos/vendor/include/HBLog.h \
+ /Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h \
+ /Users/dylanbolger/theos/vendor/include/substrate.h \
+ /Users/dylanbolger/Development/iOS/Tweaks/finical/Headers.h \
+ /Users/dylanbolger/Development/iOS/Tweaks/finical/MediaRemote.h
+
+/Users/dylanbolger/theos/Prefix.pch:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h:
+
+/Users/dylanbolger/theos/vendor/include/HBLog.h:
+
+/Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h:
+
+/Users/dylanbolger/theos/vendor/include/substrate.h:
+
+/Users/dylanbolger/Development/iOS/Tweaks/finical/Headers.h:
+
+/Users/dylanbolger/Development/iOS/Tweaks/finical/MediaRemote.h:
diff --git a/.theos/obj/debug/arm64e/Tweak.x.a81dc44d.o b/.theos/obj/debug/arm64e/Tweak.x.a81dc44d.o
new file mode 100644
index 0000000..239b7a9
--- /dev/null
+++ b/.theos/obj/debug/arm64e/Tweak.x.a81dc44d.o
Binary files differ
diff --git a/.theos/obj/debug/arm64e/Tweak.x.m b/.theos/obj/debug/arm64e/Tweak.x.m
new file mode 100644
index 0000000..6370c9f
--- /dev/null
+++ b/.theos/obj/debug/arm64e/Tweak.x.m
@@ -0,0 +1,203 @@
+#line 1 "Tweak.x"
+
+#include <substrate.h>
+#if defined(__clang__)
+#if __has_feature(objc_arc)
+#define _LOGOS_SELF_TYPE_NORMAL __unsafe_unretained
+#define _LOGOS_SELF_TYPE_INIT __attribute__((ns_consumed))
+#define _LOGOS_SELF_CONST const
+#define _LOGOS_RETURN_RETAINED __attribute__((ns_returns_retained))
+#else
+#define _LOGOS_SELF_TYPE_NORMAL
+#define _LOGOS_SELF_TYPE_INIT
+#define _LOGOS_SELF_CONST
+#define _LOGOS_RETURN_RETAINED
+#endif
+#else
+#define _LOGOS_SELF_TYPE_NORMAL
+#define _LOGOS_SELF_TYPE_INIT
+#define _LOGOS_SELF_CONST
+#define _LOGOS_RETURN_RETAINED
+#endif
+
+@class SBMediaController; @class PLPlatterCustomContentView; @class CSMediaControlsView; @class CSAdjunctListItemView; @class SBLockScreenManager; @class SBMainSwitcherViewController; @class QRTMediaModuleViewController;
+static void _logos_meta_method$_ungrouped$CSMediaControlsView$removePlayer(_LOGOS_SELF_TYPE_NORMAL Class _LOGOS_SELF_CONST, SEL); static void _logos_meta_method$_ungrouped$CSMediaControlsView$stateChanged$(_LOGOS_SELF_TYPE_NORMAL Class _LOGOS_SELF_CONST, SEL, NSNotification *); static void (*_logos_orig$_ungrouped$CSMediaControlsView$layoutSubviews)(_LOGOS_SELF_TYPE_NORMAL CSMediaControlsView* _LOGOS_SELF_CONST, SEL); static void _logos_method$_ungrouped$CSMediaControlsView$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL CSMediaControlsView* _LOGOS_SELF_CONST, SEL); static void (*_logos_orig$_ungrouped$CSAdjunctListItemView$layoutSubviews)(_LOGOS_SELF_TYPE_NORMAL CSAdjunctListItemView* _LOGOS_SELF_CONST, SEL); static void _logos_method$_ungrouped$CSAdjunctListItemView$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL CSAdjunctListItemView* _LOGOS_SELF_CONST, SEL); static void (*_logos_orig$_ungrouped$QRTMediaModuleViewController$layoutSubviews)(_LOGOS_SELF_TYPE_NORMAL QRTMediaModuleViewController* _LOGOS_SELF_CONST, SEL); static void _logos_method$_ungrouped$QRTMediaModuleViewController$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL QRTMediaModuleViewController* _LOGOS_SELF_CONST, SEL); static void (*_logos_orig$_ungrouped$PLPlatterCustomContentView$layoutSubviews)(_LOGOS_SELF_TYPE_NORMAL PLPlatterCustomContentView* _LOGOS_SELF_CONST, SEL); static void _logos_method$_ungrouped$PLPlatterCustomContentView$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL PLPlatterCustomContentView* _LOGOS_SELF_CONST, SEL);
+static __inline__ __attribute__((always_inline)) __attribute__((unused)) Class _logos_static_class_lookup$SBMainSwitcherViewController(void) { static Class _klass; if(!_klass) { _klass = objc_getClass("SBMainSwitcherViewController"); } return _klass; }static __inline__ __attribute__((always_inline)) __attribute__((unused)) Class _logos_static_class_lookup$SBLockScreenManager(void) { static Class _klass; if(!_klass) { _klass = objc_getClass("SBLockScreenManager"); } return _klass; }static __inline__ __attribute__((always_inline)) __attribute__((unused)) Class _logos_static_class_lookup$CSMediaControlsView(void) { static Class _klass; if(!_klass) { _klass = objc_getClass("CSMediaControlsView"); } return _klass; }static __inline__ __attribute__((always_inline)) __attribute__((unused)) Class _logos_static_class_lookup$SBMediaController(void) { static Class _klass; if(!_klass) { _klass = objc_getClass("SBMediaController"); } return _klass; }
+#line 1 "Tweak.x"
+#import <Headers.h>
+static BOOL enabled = YES;
+static BOOL dismissPlayer = NO;
+static BOOL killApp = NO;
+static int timeOption = 0;
+static int dismissGesture = 2;
+static int timeValue = 0;
+static id prefs;
+static void reloadSettings() {
+ prefs = [[NSMutableDictionary alloc] initWithContentsOfFile:@"/var/mobile/Library/Preferences/com.5px.finical.plist"];
+ if(prefs) {
+ enabled = [prefs objectForKey:@"enabled"] ? [[prefs objectForKey:@"enabled"] intValue] : enabled;
+ dismissPlayer = [prefs objectForKey:@"dismissPlayer"] ? [[prefs objectForKey:@"dismissPlayer"] intValue]: dismissPlayer;
+ killApp = [prefs objectForKey:@"killApp"] ? [[prefs objectForKey:@"killApp"] intValue]: killApp;
+ timeOption = [prefs objectForKey:@"timeOption"] ? [[prefs objectForKey:@"timeOption"] intValue]: timeOption;
+ timeValue = [prefs objectForKey:@"timeValue"] ? [[prefs objectForKey:@"timeValue"] intValue]: timeValue;
+ dismissGesture = [prefs objectForKey:@"dismissGesture"] ? [[prefs objectForKey:@"dismissGesture"] intValue]: dismissGesture;
+ if (dismissPlayer) {
+ switch (timeOption) {
+ case 0:
+ break;
+ case 1:
+ timeValue = timeValue * 60;
+ break;
+ case 2:
+ timeValue = timeValue * 3600;
+ break;
+ }
+ }
+ }
+}
+
+CSAdjunctListItem *item;
+SBLockScreenManager *manager;
+CSNotificationAdjunctListViewController *vc;
+NSTimer *timer;
+SBMainSwitcherViewController *mainSwitcher;
+NSString *nowPlayingID;
+NSArray *items;
+
+static void _logos_meta_method$_ungrouped$CSMediaControlsView$removePlayer(_LOGOS_SELF_TYPE_NORMAL Class _LOGOS_SELF_CONST __unused self, SEL __unused _cmd) {
+ if ([[_logos_static_class_lookup$SBMediaController() sharedInstance] isPaused]) {
+ if ([vc.identifiersToItems count] >= 1) {
+ [vc _removeItem:(id)item animated:(BOOL)YES];
+ if (killApp) {
+ for (SBAppLayout *item in items) {
+ SBDisplayItem *currentItem = [item.rolesToLayoutItemsMap objectForKey:@1];
+ NSString *bundleID = currentItem.bundleIdentifier;
+ if ([bundleID isEqualToString: nowPlayingID]) {
+ [mainSwitcher _deleteAppLayout:item forReason: 1];
+ }
+ }
+ }
+ }
+ }
+}
+
+static void _logos_meta_method$_ungrouped$CSMediaControlsView$stateChanged$(_LOGOS_SELF_TYPE_NORMAL Class _LOGOS_SELF_CONST __unused self, SEL __unused _cmd, NSNotification * notification) {
+ if ([[_logos_static_class_lookup$SBMediaController() sharedInstance] isPlaying]) {
+ if ([vc.identifiersToItems count] == 0) {
+ [vc _insertItem:(id)item animated:(BOOL)YES];
+ }
+ }
+ if ([timer isValid]) {
+ [timer invalidate];
+ timer = nil;
+ }
+ if (enabled) {
+ if ([vc.identifiersToItems count] == 1) {
+ if (dismissPlayer) {
+ timer = [NSTimer scheduledTimerWithTimeInterval: timeValue
+ target: _logos_static_class_lookup$CSMediaControlsView()
+ selector: @selector(removePlayer)
+ userInfo: nil
+ repeats: NO];
+ }
+ }
+ }
+}
+static void _logos_method$_ungrouped$CSMediaControlsView$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL CSMediaControlsView* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd) {
+ reloadSettings();
+ manager = [_logos_static_class_lookup$SBLockScreenManager() sharedInstance];
+ vc = [[[[manager coverSheetViewController] mainPageContentViewController] combinedListViewController] adjunctListViewController];
+ item = [vc.identifiersToItems objectForKey:@"SBDashBoardNowPlayingAssertionIdentifier"];
+ mainSwitcher = [_logos_static_class_lookup$SBMainSwitcherViewController() sharedInstance];
+ items = mainSwitcher.recentAppLayouts;
+ nowPlayingID = [[[_logos_static_class_lookup$SBMediaController() sharedInstance] nowPlayingApplication] bundleIdentifier];
+ UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc]initWithTarget:_logos_static_class_lookup$CSMediaControlsView() action:@selector(removePlayer)];
+ switch (dismissGesture) {
+ case 1:
+ gesture.direction = UISwipeGestureRecognizerDirectionRight;
+ break;
+ case 2:
+ gesture.direction = UISwipeGestureRecognizerDirectionUp;
+ break;
+ case 3:
+ gesture.direction = UISwipeGestureRecognizerDirectionDown;
+ break;
+ default:
+ gesture.direction = UISwipeGestureRecognizerDirectionLeft;
+ break;
+ }
+ [self addGestureRecognizer:gesture];
+ _logos_orig$_ungrouped$CSMediaControlsView$layoutSubviews(self, _cmd);
+}
+
+
+static void _logos_method$_ungrouped$CSAdjunctListItemView$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL CSAdjunctListItemView* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd) {
+ UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc]initWithTarget:_logos_static_class_lookup$CSMediaControlsView() action:@selector(removePlayer)];
+ switch (dismissGesture) {
+ case 0:
+ gesture.direction = UISwipeGestureRecognizerDirectionLeft;
+ break;
+ case 1:
+ gesture.direction = UISwipeGestureRecognizerDirectionRight;
+ break;
+ case 2:
+ gesture.direction = UISwipeGestureRecognizerDirectionUp;
+ break;
+ case 3:
+ gesture.direction = UISwipeGestureRecognizerDirectionDown;
+ break;
+ }
+ [self addGestureRecognizer:gesture];
+ _logos_orig$_ungrouped$CSAdjunctListItemView$layoutSubviews(self, _cmd);
+}
+
+
+static void _logos_method$_ungrouped$QRTMediaModuleViewController$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL QRTMediaModuleViewController* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd) {
+ UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc]initWithTarget:_logos_static_class_lookup$CSMediaControlsView() action:@selector(removePlayer)];
+ switch (dismissGesture) {
+ case 0:
+ gesture.direction = UISwipeGestureRecognizerDirectionLeft;
+ break;
+ case 1:
+ gesture.direction = UISwipeGestureRecognizerDirectionRight;
+ break;
+ case 2:
+ gesture.direction = UISwipeGestureRecognizerDirectionUp;
+ break;
+ case 3:
+ gesture.direction = UISwipeGestureRecognizerDirectionDown;
+ break;
+ }
+ [self addGestureRecognizer:gesture];
+ _logos_orig$_ungrouped$QRTMediaModuleViewController$layoutSubviews(self, _cmd);
+}
+
+
+static void _logos_method$_ungrouped$PLPlatterCustomContentView$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL PLPlatterCustomContentView* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd) {
+ UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc]initWithTarget:_logos_static_class_lookup$CSMediaControlsView() action:@selector(removePlayer)];
+ switch (dismissGesture) {
+ case 0:
+ gesture.direction = UISwipeGestureRecognizerDirectionLeft;
+ break;
+ case 1:
+ gesture.direction = UISwipeGestureRecognizerDirectionRight;
+ break;
+ case 2:
+ gesture.direction = UISwipeGestureRecognizerDirectionUp;
+ break;
+ case 3:
+ gesture.direction = UISwipeGestureRecognizerDirectionDown;
+ break;
+ }
+ [self addGestureRecognizer:gesture];
+ _logos_orig$_ungrouped$PLPlatterCustomContentView$layoutSubviews(self, _cmd);
+}
+
+static __attribute__((constructor)) void _logosLocalCtor_b2403fe0(int __unused argc, char __unused **argv, char __unused **envp) {
+ reloadSettings();
+ [[NSNotificationCenter defaultCenter] addObserver:_logos_static_class_lookup$CSMediaControlsView() selector:@selector(stateChanged:) name:@"SBMediaNowPlayingChangedNotification" object:nil];
+}
+
+static __attribute__((constructor)) void _logosLocalInit() {
+{Class _logos_class$_ungrouped$CSMediaControlsView = objc_getClass("CSMediaControlsView"); Class _logos_metaclass$_ungrouped$CSMediaControlsView = object_getClass(_logos_class$_ungrouped$CSMediaControlsView); { char _typeEncoding[1024]; unsigned int i = 0; _typeEncoding[i] = 'v'; i += 1; _typeEncoding[i] = '@'; i += 1; _typeEncoding[i] = ':'; i += 1; _typeEncoding[i] = '\0'; class_addMethod(_logos_metaclass$_ungrouped$CSMediaControlsView, @selector(removePlayer), (IMP)&_logos_meta_method$_ungrouped$CSMediaControlsView$removePlayer, _typeEncoding); }{ char _typeEncoding[1024]; unsigned int i = 0; _typeEncoding[i] = 'v'; i += 1; _typeEncoding[i] = '@'; i += 1; _typeEncoding[i] = ':'; i += 1; memcpy(_typeEncoding + i, @encode(NSNotification *), strlen(@encode(NSNotification *))); i += strlen(@encode(NSNotification *)); _typeEncoding[i] = '\0'; class_addMethod(_logos_metaclass$_ungrouped$CSMediaControlsView, @selector(stateChanged:), (IMP)&_logos_meta_method$_ungrouped$CSMediaControlsView$stateChanged$, _typeEncoding); }MSHookMessageEx(_logos_class$_ungrouped$CSMediaControlsView, @selector(layoutSubviews), (IMP)&_logos_method$_ungrouped$CSMediaControlsView$layoutSubviews, (IMP*)&_logos_orig$_ungrouped$CSMediaControlsView$layoutSubviews);Class _logos_class$_ungrouped$CSAdjunctListItemView = objc_getClass("CSAdjunctListItemView"); MSHookMessageEx(_logos_class$_ungrouped$CSAdjunctListItemView, @selector(layoutSubviews), (IMP)&_logos_method$_ungrouped$CSAdjunctListItemView$layoutSubviews, (IMP*)&_logos_orig$_ungrouped$CSAdjunctListItemView$layoutSubviews);Class _logos_class$_ungrouped$QRTMediaModuleViewController = objc_getClass("QRTMediaModuleViewController"); MSHookMessageEx(_logos_class$_ungrouped$QRTMediaModuleViewController, @selector(layoutSubviews), (IMP)&_logos_method$_ungrouped$QRTMediaModuleViewController$layoutSubviews, (IMP*)&_logos_orig$_ungrouped$QRTMediaModuleViewController$layoutSubviews);Class _logos_class$_ungrouped$PLPlatterCustomContentView = objc_getClass("PLPlatterCustomContentView"); MSHookMessageEx(_logos_class$_ungrouped$PLPlatterCustomContentView, @selector(layoutSubviews), (IMP)&_logos_method$_ungrouped$PLPlatterCustomContentView$layoutSubviews, (IMP*)&_logos_orig$_ungrouped$PLPlatterCustomContentView$layoutSubviews);} }
+#line 175 "Tweak.x"
diff --git a/.theos/obj/debug/armv7/FCLRootListController.m.1fec4894.Td b/.theos/obj/debug/armv7/FCLRootListController.m.1fec4894.Td
new file mode 100644
index 0000000..3fbadc5
--- /dev/null
+++ b/.theos/obj/debug/armv7/FCLRootListController.m.1fec4894.Td
@@ -0,0 +1,22 @@
+/Users/dylanbolger/Development/iOS/Tweaks/finical/.theos/obj/debug/armv7/FCLRootListController.m.1fec4894.o: \
+ FCLRootListController.m /Users/dylanbolger/theos/Prefix.pch \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h \
+ /Users/dylanbolger/theos/vendor/include/HBLog.h \
+ /Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h \
+ /Users/dylanbolger/theos/vendor/include/Preferences/PSListController.h \
+ /Users/dylanbolger/theos/vendor/include/Preferences/PSViewController.h
+
+/Users/dylanbolger/theos/Prefix.pch:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h:
+
+/Users/dylanbolger/theos/vendor/include/HBLog.h:
+
+/Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h:
+
+/Users/dylanbolger/theos/vendor/include/Preferences/PSListController.h:
+
+/Users/dylanbolger/theos/vendor/include/Preferences/PSViewController.h:
diff --git a/.theos/obj/debug/armv7/Finical.dylib.dSYM/Contents/Info.plist b/.theos/obj/debug/armv7/Finical.dylib.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..61ddda7
--- /dev/null
+++ b/.theos/obj/debug/armv7/Finical.dylib.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.apple.xcode.dsym.Finical.dylib</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>dSYM</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ </dict>
+</plist>
diff --git a/.theos/obj/debug/armv7/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylib b/.theos/obj/debug/armv7/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylib
new file mode 100644
index 0000000..2344c69
--- /dev/null
+++ b/.theos/obj/debug/armv7/Finical.dylib.dSYM/Contents/Resources/DWARF/Finical.dylib
Binary files differ
diff --git a/.theos/obj/debug/armv7/FinicalPrefs.bundle/FinicalPrefs b/.theos/obj/debug/armv7/FinicalPrefs.bundle/FinicalPrefs
new file mode 100755
index 0000000..4304bda
--- /dev/null
+++ b/.theos/obj/debug/armv7/FinicalPrefs.bundle/FinicalPrefs
Binary files differ
diff --git a/.theos/obj/debug/armv7/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist b/.theos/obj/debug/armv7/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist
new file mode 100644
index 0000000..ee46ec0
--- /dev/null
+++ b/.theos/obj/debug/armv7/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.apple.xcode.dsym.FinicalPrefs</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>dSYM</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleVersion</key>
+ <string>1</string>
+ </dict>
+</plist>
diff --git a/.theos/obj/debug/armv7/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefs b/.theos/obj/debug/armv7/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefs
new file mode 100644
index 0000000..9477520
--- /dev/null
+++ b/.theos/obj/debug/armv7/FinicalPrefs.bundle/FinicalPrefs.dSYM/Contents/Resources/DWARF/FinicalPrefs
Binary files differ
diff --git a/.theos/obj/debug/armv7/Tweak.x.9c3a1a96.Td b/.theos/obj/debug/armv7/Tweak.x.9c3a1a96.Td
new file mode 100644
index 0000000..ced86a7
--- /dev/null
+++ b/.theos/obj/debug/armv7/Tweak.x.9c3a1a96.Td
@@ -0,0 +1,20 @@
+/Users/dylanbolger/Development/iOS/Tweaks/finical/.theos/obj/debug/armv7/Tweak.x.9c3a1a96.o: \
+ /Users/dylanbolger/Development/iOS/Tweaks/finical/.theos/obj/debug/armv7/Tweak.x.m \
+ /Users/dylanbolger/theos/Prefix.pch \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h \
+ /Users/dylanbolger/theos/vendor/include/HBLog.h \
+ /Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h \
+ /Users/dylanbolger/theos/vendor/include/substrate.h
+
+/Users/dylanbolger/theos/Prefix.pch:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h:
+
+/Users/dylanbolger/theos/vendor/include/HBLog.h:
+
+/Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h:
+
+/Users/dylanbolger/theos/vendor/include/substrate.h:
diff --git a/.theos/obj/debug/armv7/Tweak.x.fcdb2fda.Td b/.theos/obj/debug/armv7/Tweak.x.fcdb2fda.Td
new file mode 100644
index 0000000..c4009e5
--- /dev/null
+++ b/.theos/obj/debug/armv7/Tweak.x.fcdb2fda.Td
@@ -0,0 +1,26 @@
+/Users/dylanbolger/Development/iOS/Tweaks/finical/.theos/obj/debug/armv7/Tweak.x.fcdb2fda.o: \
+ /Users/dylanbolger/Development/iOS/Tweaks/finical/.theos/obj/debug/armv7/Tweak.x.m \
+ /Users/dylanbolger/theos/Prefix.pch \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h \
+ /Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h \
+ /Users/dylanbolger/theos/vendor/include/HBLog.h \
+ /Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h \
+ /Users/dylanbolger/Development/iOS/Tweaks/finical/Headers.h \
+ /Users/dylanbolger/Development/iOS/Tweaks/finical/MediaRemote.h \
+ /Users/dylanbolger/theos/vendor/include/substrate.h
+
+/Users/dylanbolger/theos/Prefix.pch:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/BackwardsCompat.h:
+
+/Users/dylanbolger/theos/vendor/include/_Prefix/IOSMacros.h:
+
+/Users/dylanbolger/theos/vendor/include/HBLog.h:
+
+/Users/dylanbolger/theos/vendor/include/CoreFoundation/CFLogUtilities.h:
+
+/Users/dylanbolger/Development/iOS/Tweaks/finical/Headers.h:
+
+/Users/dylanbolger/Development/iOS/Tweaks/finical/MediaRemote.h:
+
+/Users/dylanbolger/theos/vendor/include/substrate.h:
diff --git a/.theos/obj/debug/armv7/Tweak.x.fcdb2fda.o b/.theos/obj/debug/armv7/Tweak.x.fcdb2fda.o
new file mode 100644
index 0000000..2d9b16d
--- /dev/null
+++ b/.theos/obj/debug/armv7/Tweak.x.fcdb2fda.o
Binary files differ
diff --git a/.theos/obj/debug/armv7/Tweak.x.m b/.theos/obj/debug/armv7/Tweak.x.m
new file mode 100644
index 0000000..11bb908
--- /dev/null
+++ b/.theos/obj/debug/armv7/Tweak.x.m
@@ -0,0 +1,68 @@
+#line 1 "Tweak.x"
+#import <Headers.h>
+
+
+#include <substrate.h>
+#if defined(__clang__)
+#if __has_feature(objc_arc)
+#define _LOGOS_SELF_TYPE_NORMAL __unsafe_unretained
+#define _LOGOS_SELF_TYPE_INIT __attribute__((ns_consumed))
+#define _LOGOS_SELF_CONST const
+#define _LOGOS_RETURN_RETAINED __attribute__((ns_returns_retained))
+#else
+#define _LOGOS_SELF_TYPE_NORMAL
+#define _LOGOS_SELF_TYPE_INIT
+#define _LOGOS_SELF_CONST
+#define _LOGOS_RETURN_RETAINED
+#endif
+#else
+#define _LOGOS_SELF_TYPE_NORMAL
+#define _LOGOS_SELF_TYPE_INIT
+#define _LOGOS_SELF_CONST
+#define _LOGOS_RETURN_RETAINED
+#endif
+
+@class SBLockScreenManager; @class SBMediaController; @class CSMediaControlsView;
+static CSAdjunctListItem * _logos_method$_ungrouped$CSMediaControlsView$getPlayerItem(_LOGOS_SELF_TYPE_NORMAL CSMediaControlsView* _LOGOS_SELF_CONST, SEL); static void _logos_method$_ungrouped$CSMediaControlsView$removePlayer(_LOGOS_SELF_TYPE_NORMAL CSMediaControlsView* _LOGOS_SELF_CONST, SEL); static void _logos_method$_ungrouped$CSMediaControlsView$playbackStateChanged(_LOGOS_SELF_TYPE_NORMAL CSMediaControlsView* _LOGOS_SELF_CONST, SEL); static void (*_logos_orig$_ungrouped$CSMediaControlsView$layoutSubviews)(_LOGOS_SELF_TYPE_NORMAL CSMediaControlsView* _LOGOS_SELF_CONST, SEL); static void _logos_method$_ungrouped$CSMediaControlsView$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL CSMediaControlsView* _LOGOS_SELF_CONST, SEL);
+static __inline__ __attribute__((always_inline)) __attribute__((unused)) Class _logos_static_class_lookup$SBMediaController(void) { static Class _klass; if(!_klass) { _klass = objc_getClass("SBMediaController"); } return _klass; }static __inline__ __attribute__((always_inline)) __attribute__((unused)) Class _logos_static_class_lookup$SBLockScreenManager(void) { static Class _klass; if(!_klass) { _klass = objc_getClass("SBLockScreenManager"); } return _klass; }
+#line 3 "Tweak.x"
+
+SBLockScreenManager *manager;
+CSNotificationAdjunctListViewController *vc;
+
+
+static CSAdjunctListItem * _logos_method$_ungrouped$CSMediaControlsView$getPlayerItem(_LOGOS_SELF_TYPE_NORMAL CSMediaControlsView* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd) {
+ manager = [_logos_static_class_lookup$SBLockScreenManager() sharedInstance];
+ vc = [[[[manager coverSheetViewController] mainPageContentViewController] combinedListViewController] adjunctListViewController];
+ CSAdjunctListItem *item = [vc.identifiersToItems objectForKey:@"SBDashBoardNowPlayingAssertionIdentifier"];
+ return item;
+}
+
+static void _logos_method$_ungrouped$CSMediaControlsView$removePlayer(_LOGOS_SELF_TYPE_NORMAL CSMediaControlsView* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd) {
+ CSAdjunctListItem *item = [self getPlayerItem];
+ manager = [_logos_static_class_lookup$SBLockScreenManager() sharedInstance];
+ vc = [[[[manager coverSheetViewController] mainPageContentViewController] combinedListViewController] adjunctListViewController];
+ if ([[_logos_static_class_lookup$SBMediaController() sharedInstance] isPaused]) {
+ [vc _removeItem:(id)item animated:(BOOL)YES];
+ }
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackStateChanged) name:(__bridge NSString *)kMRMediaRemoteNowPlayingInfoDidChangeNotification object:nil];
+}
+
+
+static void _logos_method$_ungrouped$CSMediaControlsView$playbackStateChanged(_LOGOS_SELF_TYPE_NORMAL CSMediaControlsView* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd) {
+ CSAdjunctListItem *item = [self getPlayerItem];
+ manager = [_logos_static_class_lookup$SBLockScreenManager() sharedInstance];
+ vc = [[[[manager coverSheetViewController] mainPageContentViewController] combinedListViewController] adjunctListViewController];
+ [vc _insertItem:(id)item animated:(BOOL)YES];
+}
+static void _logos_method$_ungrouped$CSMediaControlsView$layoutSubviews(_LOGOS_SELF_TYPE_NORMAL CSMediaControlsView* _LOGOS_SELF_CONST __unused self, SEL __unused _cmd) {
+ manager = [_logos_static_class_lookup$SBLockScreenManager() sharedInstance];
+ vc = [[[[manager coverSheetViewController] mainPageContentViewController] combinedListViewController] adjunctListViewController];
+ UISwipeGestureRecognizer *swipeleft = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(removePlayer)];
+ swipeleft.direction=UISwipeGestureRecognizerDirectionLeft;
+ [self addGestureRecognizer:swipeleft];
+}
+
+static __attribute__((constructor)) void _logosLocalInit() {
+{Class _logos_class$_ungrouped$CSMediaControlsView = objc_getClass("CSMediaControlsView"); { char _typeEncoding[1024]; unsigned int i = 0; memcpy(_typeEncoding + i, @encode(CSAdjunctListItem *), strlen(@encode(CSAdjunctListItem *))); i += strlen(@encode(CSAdjunctListItem *)); _typeEncoding[i] = '@'; i += 1; _typeEncoding[i] = ':'; i += 1; _typeEncoding[i] = '\0'; class_addMethod(_logos_class$_ungrouped$CSMediaControlsView, @selector(getPlayerItem), (IMP)&_logos_method$_ungrouped$CSMediaControlsView$getPlayerItem, _typeEncoding); }{ char _typeEncoding[1024]; unsigned int i = 0; _typeEncoding[i] = 'v'; i += 1; _typeEncoding[i] = '@'; i += 1; _typeEncoding[i] = ':'; i += 1; _typeEncoding[i] = '\0'; class_addMethod(_logos_class$_ungrouped$CSMediaControlsView, @selector(removePlayer), (IMP)&_logos_method$_ungrouped$CSMediaControlsView$removePlayer, _typeEncoding); }{ char _typeEncoding[1024]; unsigned int i = 0; _typeEncoding[i] = 'v'; i += 1; _typeEncoding[i] = '@'; i += 1; _typeEncoding[i] = ':'; i += 1; _typeEncoding[i] = '\0'; class_addMethod(_logos_class$_ungrouped$CSMediaControlsView, @selector(playbackStateChanged), (IMP)&_logos_method$_ungrouped$CSMediaControlsView$playbackStateChanged, _typeEncoding); }MSHookMessageEx(_logos_class$_ungrouped$CSMediaControlsView, @selector(layoutSubviews), (IMP)&_logos_method$_ungrouped$CSMediaControlsView$layoutSubviews, (IMP*)&_logos_orig$_ungrouped$CSMediaControlsView$layoutSubviews);} }
+#line 40 "Tweak.x"
diff --git a/.theos/packages/com.5px.finical-0.0.1 b/.theos/packages/com.5px.finical-0.0.1
new file mode 100644
index 0000000..72f523f
--- /dev/null
+++ b/.theos/packages/com.5px.finical-0.0.1
@@ -0,0 +1 @@
+39 \ No newline at end of file
diff --git a/Finical.plist b/Finical.plist
new file mode 100644
index 0000000..10dc654
--- /dev/null
+++ b/Finical.plist
@@ -0,0 +1 @@
+{ Filter = { Bundles = ( "com.apple.springboard" ); }; }
diff --git a/Headers.h b/Headers.h
new file mode 100644
index 0000000..1085902
--- /dev/null
+++ b/Headers.h
@@ -0,0 +1,68 @@
+#import <MediaRemote.h>
+
+@interface PLPlatterCustomContentView : UIView
+@end
+
+@interface QRTMediaModuleViewController : UIView
+@end
+
+@interface SBDisplayItem: NSObject
+@property (nonatomic,copy,readonly) NSString * bundleIdentifier;
+@end
+
+@interface SBApplication : NSObject
+@property (nonatomic,readonly) NSString * bundleIdentifier;
+@end
+
+
+@interface SBAppLayout:NSObject
+@property (nonatomic,copy) NSDictionary * rolesToLayoutItemsMap;
+@end
+
+@interface SBMainSwitcherViewController: UIViewController
+-(void)_deleteAppLayout:(id)arg1 forReason:(long long)arg2;
++(id)sharedInstance;
+-(id)recentAppLayouts;
+@end
+
+@interface SBMediaController : NSObject
++(id)sharedInstance;
+-(SBApplication *)nowPlayingApplication;
+-(BOOL)isPaused;
+-(BOOL)isPlaying;
+@end
+@interface CSCoverSheetViewControllerBase : UIViewController
+@end
+@interface CSNotificationAdjunctListViewController : CSCoverSheetViewControllerBase {
+NSMutableDictionary* _identifiersToItems;
+}
+@property (nonatomic,retain) NSMutableDictionary * identifiersToItems;
+-(void)_removeItem:(id)arg1 animated:(BOOL)arg2;
+-(void)_insertItem:(id)arg1 animated:(BOOL)arg2;
+@end
+@interface CSCombinedListViewController : CSCoverSheetViewControllerBase
+-(CSNotificationAdjunctListViewController *)adjunctListViewController;
+@end
+@interface CSPresentationViewController : CSCoverSheetViewControllerBase
+@end
+@interface CSPageViewController : CSPresentationViewController
+@end
+@interface CSMainPageContentViewController : CSPageViewController
+-(CSCombinedListViewController *)combinedListViewController;
+@end
+@interface CSCoverSheetViewController : UIViewController
+-(CSMainPageContentViewController *)mainPageContentViewController;
+@end
+@interface SBLockScreenManager : NSObject
++(id)sharedInstance;
+-(CSCoverSheetViewController *)coverSheetViewController;
+@end
+
+@interface CSAdjunctListItemView : UIView
+@end
+
+@interface CSAdjunctListItem : NSObject
+@end
+
+@interface CSMediaControlsView : UIView
+@end
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..56c2b0d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,13 @@
+PACKAGE_VERSION=$(THEOS_PACKAGE_BASE_VERSION)
+INSTALL_TARGET_PROCESSES = SpringBoard
+
+include $(THEOS)/makefiles/common.mk
+
+TWEAK_NAME = Finical
+Finical_PRIVATE_FRAMEWORKS = CoverSheet MediaRemote
+Finical_FILES = Tweak.x
+Finical_CFLAGS = -fobjc-arc
+ARCHS = arm64 arm64e
+include $(THEOS_MAKE_PATH)/tweak.mk
+SUBPROJECTS += finicalprefs
+include $(THEOS_MAKE_PATH)/aggregate.mk
diff --git a/MediaRemote.h b/MediaRemote.h
new file mode 100644
index 0000000..9b3a32f
--- /dev/null
+++ b/MediaRemote.h
@@ -0,0 +1,119 @@
+/*
+ * Media remote framework header.
+ *
+ * Copyright (c) 2013-2014 Cykey (David Murray)
+ * All rights reserved.
+ */
+
+#ifndef MEDIAREMOTE_H_
+#define MEDIAREMOTE_H_
+
+#include <CoreFoundation/CoreFoundation.h>
+
+#if __cplusplus
+extern "C" {
+#endif
+
+#pragma mark - Notifications
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoDidChangeNotification;
+ extern CFStringRef kMRMediaRemoteNowPlayingPlaybackQueueDidChangeNotification;
+ extern CFStringRef kMRMediaRemotePickableRoutesDidChangeNotification;
+ extern CFStringRef kMRMediaRemoteNowPlayingApplicationDidChangeNotification;
+ extern CFStringRef kMRMediaRemoteNowPlayingApplicationIsPlayingDidChangeNotification;
+ extern CFStringRef kMRMediaRemoteRouteStatusDidChangeNotification;
+#pragma mark - Keys
+ extern CFStringRef kMRMediaRemoteNowPlayingApplicationPIDUserInfoKey;
+ extern CFStringRef kMRMediaRemoteNowPlayingApplicationIsPlayingUserInfoKey;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoAlbum;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoArtist;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoArtworkData;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoArtworkMIMEType;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoChapterNumber;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoComposer;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoDuration;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoElapsedTime;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoGenre;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoIsAdvertisement;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoIsBanned;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoIsInWishList;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoIsLiked;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoIsMusicApp;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoPlaybackRate;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoProhibitsSkip;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoQueueIndex;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoRadioStationIdentifier;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoRepeatMode;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoShuffleMode;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoStartTime;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoSupportsFastForward15Seconds;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoSupportsIsBanned;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoSupportsIsLiked;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoSupportsRewind15Seconds;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoTimestamp;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoTitle;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoTotalChapterCount;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoTotalDiscCount;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoTotalQueueCount;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoTotalTrackCount;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoTrackNumber;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoUniqueIdentifier;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoRadioStationIdentifier;
+ extern CFStringRef kMRMediaRemoteNowPlayingInfoRadioStationHash;
+ extern CFStringRef kMRMediaRemoteOptionMediaType;
+ extern CFStringRef kMRMediaRemoteOptionSourceID;
+ extern CFStringRef kMRMediaRemoteOptionTrackID;
+ extern CFStringRef kMRMediaRemoteOptionStationID;
+ extern CFStringRef kMRMediaRemoteOptionStationHash;
+ extern CFStringRef kMRMediaRemoteRouteDescriptionUserInfoKey;
+ extern CFStringRef kMRMediaRemoteRouteStatusUserInfoKey;
+#pragma mark - API
+ typedef enum {
+ kMRPlay = 0,
+ kMRPause = 1,
+ kMRTogglePlayPause = 2,
+ kMRStop = 3,
+ kMRNextTrack = 4,
+ kMRPreviousTrack = 5,
+ kMRToggleShuffle = 6,
+ kMRToggleRepeat = 7,
+ kMRStartForwardSeek = 8,
+ kMREndForwardSeek = 9,
+ kMRStartBackwardSeek = 10,
+ kMREndBackwardSeek = 11,
+ kMRGoBackFifteenSeconds = 12,
+ kMRSkipFifteenSeconds = 13,
+ kMRLikeTrack = 0x6A,
+ kMRBanTrack = 0x6B,
+ kMRAddTrackToWishList = 0x6C,
+ kMRRemoveTrackFromWishList = 0x6D
+ } MRCommand;
+ Boolean MRMediaRemoteSendCommand(MRCommand command, id userInfo);
+ void MRMediaRemoteSetPlaybackSpeed(int speed);
+ void MRMediaRemoteSetElapsedTime(double elapsedTime);
+ void MRMediaRemoteSetNowPlayingApplicationOverrideEnabled(Boolean enabled);
+ void MRMediaRemoteRegisterForNowPlayingNotifications(dispatch_queue_t queue);
+ void MRMediaRemoteUnregisterForNowPlayingNotifications();
+ void MRMediaRemoteBeginRouteDiscovery();
+ void MRMediaRemoteEndRouteDiscovery();
+ CFArrayRef MRMediaRemoteCopyPickableRoutes();
+ typedef void (^MRMediaRemoteGetNowPlayingInfoCompletion)(CFDictionaryRef information);
+ typedef void (^MRMediaRemoteGetNowPlayingApplicationPIDCompletion)(int PID);
+ typedef void (^MRMediaRemoteGetNowPlayingApplicationIsPlayingCompletion)(Boolean isPlaying);
+ void MRMediaRemoteGetNowPlayingApplicationPID(dispatch_queue_t queue, MRMediaRemoteGetNowPlayingApplicationPIDCompletion completion);
+ void MRMediaRemoteGetNowPlayingInfo(dispatch_queue_t queue, MRMediaRemoteGetNowPlayingInfoCompletion completion);
+ void MRMediaRemoteGetNowPlayingApplicationIsPlaying(dispatch_queue_t queue, MRMediaRemoteGetNowPlayingApplicationIsPlayingCompletion completion);
+ void MRMediaRemoteKeepAlive();
+ void MRMediaRemoteSetElapsedTime(double time);
+ void MRMediaRemoteSetShuffleMode(int mode);
+ void MRMediaRemoteSetRepeatMode(int mode);
+ int MRMediaRemoteSelectSourceWithID(CFStringRef identifier);
+ void MRMediaRemoteSetPickedRouteWithPassword(CFStringRef route, CFStringRef password);
+ CFArrayRef MRMediaRemoteCopyPickableRoutesForCategory(NSString *category);
+ Boolean MRMediaRemotePickedRouteHasVolumeControl();
+ void MRMediaRemoteSetCanBeNowPlayingApplication(Boolean can);
+ void MRMediaRemoteSetNowPlayingInfo(CFDictionaryRef information);
+#if __cplusplus
+}
+#endif
+
+#endif \ No newline at end of file
diff --git a/Tweak.x b/Tweak.x
new file mode 100644
index 0000000..fdefda0
--- /dev/null
+++ b/Tweak.x
@@ -0,0 +1,174 @@
+#import <Headers.h>
+static BOOL enabled = YES;
+static BOOL dismissPlayer = NO;
+static BOOL killApp = NO;
+static int timeOption = 0;
+static int dismissGesture = 2;
+static int timeValue = 0;
+static id prefs;
+static void reloadSettings() {
+ prefs = [[NSMutableDictionary alloc] initWithContentsOfFile:@"/var/mobile/Library/Preferences/com.5px.finical.plist"];
+ if(prefs) {
+ enabled = [prefs objectForKey:@"enabled"] ? [[prefs objectForKey:@"enabled"] intValue] : enabled;
+ dismissPlayer = [prefs objectForKey:@"dismissPlayer"] ? [[prefs objectForKey:@"dismissPlayer"] intValue]: dismissPlayer;
+ killApp = [prefs objectForKey:@"killApp"] ? [[prefs objectForKey:@"killApp"] intValue]: killApp;
+ timeOption = [prefs objectForKey:@"timeOption"] ? [[prefs objectForKey:@"timeOption"] intValue]: timeOption;
+ timeValue = [prefs objectForKey:@"timeValue"] ? [[prefs objectForKey:@"timeValue"] intValue]: timeValue;
+ dismissGesture = [prefs objectForKey:@"dismissGesture"] ? [[prefs objectForKey:@"dismissGesture"] intValue]: dismissGesture;
+ if (dismissPlayer) {
+ switch (timeOption) {
+ case 0:
+ break;
+ case 1:
+ timeValue = timeValue * 60;
+ break;
+ case 2:
+ timeValue = timeValue * 3600;
+ break;
+ }
+ }
+ }
+}
+%hook CSMediaControlsView
+CSAdjunctListItem *item;
+SBLockScreenManager *manager;
+CSNotificationAdjunctListViewController *vc;
+NSTimer *timer;
+SBMainSwitcherViewController *mainSwitcher;
+NSString *nowPlayingID;
+NSArray *items;
+%new
++(void)removePlayer {
+ if ([[%c(SBMediaController) sharedInstance] isPaused]) {
+ if ([vc.identifiersToItems count] >= 1) {
+ [vc _removeItem:(id)item animated:(BOOL)YES];
+ if (killApp) {
+ for (SBAppLayout *item in items) {
+ SBDisplayItem *currentItem = [item.rolesToLayoutItemsMap objectForKey:@1];
+ NSString *bundleID = currentItem.bundleIdentifier;
+ if ([bundleID isEqualToString: nowPlayingID]) {
+ [mainSwitcher _deleteAppLayout:item forReason: 1];
+ }
+ }
+ }
+ }
+ }
+}
+%new
++(void)stateChanged:(NSNotification *)notification {
+ if ([[%c(SBMediaController) sharedInstance] isPlaying]) {
+ if ([vc.identifiersToItems count] == 0) {
+ [vc _insertItem:(id)item animated:(BOOL)YES];
+ }
+ }
+ if ([timer isValid]) {
+ [timer invalidate];
+ timer = nil;
+ }
+ if (enabled) {
+ if ([vc.identifiersToItems count] == 1) {
+ if (dismissPlayer) {
+ timer = [NSTimer scheduledTimerWithTimeInterval: timeValue
+ target: %c(CSMediaControlsView)
+ selector: @selector(removePlayer)
+ userInfo: nil
+ repeats: NO];
+ }
+ }
+ }
+}
+-(void)layoutSubviews {
+ reloadSettings();
+ manager = [%c(SBLockScreenManager) sharedInstance];
+ vc = [[[[manager coverSheetViewController] mainPageContentViewController] combinedListViewController] adjunctListViewController];
+ item = [vc.identifiersToItems objectForKey:@"SBDashBoardNowPlayingAssertionIdentifier"];
+ mainSwitcher = [%c(SBMainSwitcherViewController) sharedInstance];
+ items = mainSwitcher.recentAppLayouts;
+ nowPlayingID = [[[%c(SBMediaController) sharedInstance] nowPlayingApplication] bundleIdentifier];
+ UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc]initWithTarget:%c(CSMediaControlsView) action:@selector(removePlayer)];
+ switch (dismissGesture) {
+ case 1:
+ gesture.direction = UISwipeGestureRecognizerDirectionRight;
+ break;
+ case 2:
+ gesture.direction = UISwipeGestureRecognizerDirectionUp;
+ break;
+ case 3:
+ gesture.direction = UISwipeGestureRecognizerDirectionDown;
+ break;
+ default:
+ gesture.direction = UISwipeGestureRecognizerDirectionLeft;
+ break;
+ }
+ [self addGestureRecognizer:gesture];
+ %orig;
+}
+%end
+%hook CSAdjunctListItemView
+-(void)layoutSubviews {
+ UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc]initWithTarget:%c(CSMediaControlsView) action:@selector(removePlayer)];
+ switch (dismissGesture) {
+ case 0:
+ gesture.direction = UISwipeGestureRecognizerDirectionLeft;
+ break;
+ case 1:
+ gesture.direction = UISwipeGestureRecognizerDirectionRight;
+ break;
+ case 2:
+ gesture.direction = UISwipeGestureRecognizerDirectionUp;
+ break;
+ case 3:
+ gesture.direction = UISwipeGestureRecognizerDirectionDown;
+ break;
+ }
+ [self addGestureRecognizer:gesture];
+ %orig;
+}
+%end
+%hook QRTMediaModuleViewController
+-(void)layoutSubviews {
+ UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc]initWithTarget:%c(CSMediaControlsView) action:@selector(removePlayer)];
+ switch (dismissGesture) {
+ case 0:
+ gesture.direction = UISwipeGestureRecognizerDirectionLeft;
+ break;
+ case 1:
+ gesture.direction = UISwipeGestureRecognizerDirectionRight;
+ break;
+ case 2:
+ gesture.direction = UISwipeGestureRecognizerDirectionUp;
+ break;
+ case 3:
+ gesture.direction = UISwipeGestureRecognizerDirectionDown;
+ break;
+ }
+ [self addGestureRecognizer:gesture];
+ %orig;
+}
+%end
+%hook PLPlatterCustomContentView
+-(void)layoutSubviews {
+ UISwipeGestureRecognizer *gesture = [[UISwipeGestureRecognizer alloc]initWithTarget:%c(CSMediaControlsView) action:@selector(removePlayer)];
+ switch (dismissGesture) {
+ case 0:
+ gesture.direction = UISwipeGestureRecognizerDirectionLeft;
+ break;
+ case 1:
+ gesture.direction = UISwipeGestureRecognizerDirectionRight;
+ break;
+ case 2:
+ gesture.direction = UISwipeGestureRecognizerDirectionUp;
+ break;
+ case 3:
+ gesture.direction = UISwipeGestureRecognizerDirectionDown;
+ break;
+ }
+ [self addGestureRecognizer:gesture];
+ %orig;
+}
+%end
+%ctor {
+ reloadSettings();
+ [[NSNotificationCenter defaultCenter] addObserver:%c(CSMediaControlsView) selector:@selector(stateChanged:) name:@"SBMediaNowPlayingChangedNotification" object:nil];
+}
+
diff --git a/control b/control
new file mode 100644
index 0000000..c4472ed
--- /dev/null
+++ b/control
@@ -0,0 +1,9 @@
+Package: com.5px.finical
+Name: Finical
+Depends: mobilesubstrate
+Version: 1.0
+Architecture: iphoneos-arm
+Description: Swipe away to dismiss the lockscreen player
+Maintainer: FivePixels
+Author: FivePixels
+Section: Tweaks
diff --git a/finicalprefs/.DS_Store b/finicalprefs/.DS_Store
new file mode 100644
index 0000000..966890a
--- /dev/null
+++ b/finicalprefs/.DS_Store
Binary files differ
diff --git a/finicalprefs/FCLRootListController.m b/finicalprefs/FCLRootListController.m
new file mode 100644
index 0000000..e22d31c
--- /dev/null
+++ b/finicalprefs/FCLRootListController.m
@@ -0,0 +1,30 @@
+#import <Preferences/PSListController.h>
+#import <spawn.h>
+@interface FCLRootListController : PSListController
+@end
+@implementation FCLRootListController
+
+-(void)respring {
+ pid_t pid;
+ const char* args[] = {"sbreload", NULL};
+ posix_spawn(&pid, "/usr/bin/sbreload", NULL, NULL, (char* const*)args, NULL);
+}
+- (NSArray *)specifiers {
+ if (!_specifiers) {
+ _specifiers = [self loadSpecifiersFromPlistName:@"Finical" target:self];
+ }
+ return _specifiers;
+}
+-(void)openDiscord {
+ [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://discord.gg/Vg2EYDR"] options:@{} completionHandler:nil];
+}
+-(void)openTwitterDM {
+ [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://twitter.com/messages/compose?recipient_id=974524608949903361&text=%28Please+describe+your+issue+here%29"] options:@{} completionHandler:nil];
+}
+-(void)openTwitter5px {
+ [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://twitter.com/o5pxels"] options:@{} completionHandler:nil];
+}
+-(void)openPayPal {
+ [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://paypal.me/fivepixels"] options:@{} completionHandler:nil];
+}
+@end
diff --git a/finicalprefs/Makefile b/finicalprefs/Makefile
new file mode 100644
index 0000000..1a63e84
--- /dev/null
+++ b/finicalprefs/Makefile
@@ -0,0 +1,15 @@
+include $(THEOS)/makefiles/common.mk
+
+BUNDLE_NAME = FinicalPrefs
+
+FinicalPrefs_FILES = FCLRootListController.m
+FinicalPrefs_INSTALL_PATH = /Library/PreferenceBundles
+FinicalPrefs_FRAMEWORKS = UIKit
+FinicalPrefs_PRIVATE_FRAMEWORKS = Preferences
+FinicalPrefs_CFLAGS = -fobjc-arc
+ARCHS = arm64 arm64e
+include $(THEOS_MAKE_PATH)/bundle.mk
+
+internal-stage::
+ $(ECHO_NOTHING)mkdir -p $(THEOS_STAGING_DIR)/Library/PreferenceLoader/Preferences$(ECHO_END)
+ $(ECHO_NOTHING)cp entry.plist $(THEOS_STAGING_DIR)/Library/PreferenceLoader/Preferences/FinicalPrefs.plist$(ECHO_END)
diff --git a/finicalprefs/Resources/Finical.plist b/finicalprefs/Resources/Finical.plist
new file mode 100644
index 0000000..d4c28ee
--- /dev/null
+++ b/finicalprefs/Resources/Finical.plist
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>items</key>
+ <array>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>Settings</string>
+ <key>footerText</key>
+ <string>Respring your device to apply changes.</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSwitchCell</string>
+ <key>default</key>
+ <true/>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>enabled</string>
+ <key>label</key>
+ <string>Enabled</string>
+
+ </dict>
+ <dict>
+ <key>action</key>
+ <string>respring</string>
+ <key>cell</key>
+ <string>PSButtonCell</string>
+ <key>label</key>
+ <string>Respring</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>Gesture Direction</string>
+ <key>footerText</key>
+ <string>The swipe direction to dismiss the Lockscreen player.</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSegmentCell</string>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>dismissGesture</string>
+ <key>default</key>
+ <integer>2</integer>
+ <key>validTitles</key>
+ <array>
+ <string>Left</string>
+ <string>Right</string>
+ <string>Up</string>
+ <string>Down</string>
+ </array>
+ <key>validValues</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ <integer>3</integer>
+ </array>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>options</string>
+ <key>footerText</key>
+ <string>The time until the player is automatically dismissed.</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSwitchCell</string>
+ <key>default</key>
+ <false/>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>killApp</string>
+ <key>label</key>
+ <string>Close Now Playing App on Dismissal</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSwitchCell</string>
+ <key>default</key>
+ <false/>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>dismissPlayer</string>
+ <key>label</key>
+ <string>Dismiss Automatically</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSliderCell</string>
+ <key>min</key>
+ <real>0</real>
+ <key>max</key>
+ <real>60</real>
+ <key>default</key>
+ <real>0</real>
+ <key>showValue</key>
+ <true/>
+ <key>isSegmented</key>
+ <true/>
+ <key>segmentCount</key>
+ <integer>60</integer>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>timeValue</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSSegmentCell</string>
+ <key>defaults</key>
+ <string>com.5px.finical</string>
+ <key>key</key>
+ <string>timeOption</string>
+ <key>default</key>
+ <integer>0</integer>
+ <key>validTitles</key>
+ <array>
+ <string>Seconds</string>
+ <string>Minutes</string>
+ <string>Hours</string>
+ </array>
+ <key>validValues</key>
+ <array>
+ <integer>0</integer>
+ <integer>1</integer>
+ <integer>2</integer>
+ </array>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>Support</string>
+ <key>footerText</key>
+ <string>Having trouble with Finical?</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSButtonCell</string>
+ <key>action</key>
+ <string>openDiscord</string>
+ <key>label</key>
+ <string>FivePixels Discord Server</string>
+ <key>icon</key>
+ <string>discord.png</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSButtonCell</string>
+ <key>action</key>
+ <string>openTwitterDM</string>
+ <key>label</key>
+ <string>Get Support on Twitter</string>
+ <key>icon</key>
+ <string>twitter.png</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>label</key>
+ <string>Developer</string>
+ <key>footerText</key>
+ <string>"If this is coffee, please bring me some tea; but if this is tea, please bring me some coffee."</string>
+ <key>footerAlignment</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>action</key>
+ <string>openTwitter5px</string>
+ <key>cell</key>
+ <string>PSButtonCell</string>
+ <key>label</key>
+ <string>Dylan Bolger (FivePixels)</string>
+ </dict>
+ <dict>
+ <key>cell</key>
+ <string>PSGroupCell</string>
+ <key>footerAlignment</key>
+ <integer>1</integer>
+ <key>footerText</key>
+ <string>Dylan Bolger (FivePixels) © 2020</string>
+ </dict>
+ </array>
+ <key>title</key>
+ <string>Finical</string>
+ </dict>
+</plist>
diff --git a/finicalprefs/Resources/Info.plist b/finicalprefs/Resources/Info.plist
new file mode 100644
index 0000000..ffd77b8
--- /dev/null
+++ b/finicalprefs/Resources/Info.plist
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>FinicalPrefs</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.5px.finicalprefs</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>BNDL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>NSPrincipalClass</key>
+ <string>FCLRootListController</string>
+</dict>
+</plist>
diff --git a/finicalprefs/Resources/discord@2x.png b/finicalprefs/Resources/discord@2x.png
new file mode 100644
index 0000000..54f6a92
--- /dev/null
+++ b/finicalprefs/Resources/discord@2x.png
Binary files differ
diff --git a/finicalprefs/Resources/discord@3x.png b/finicalprefs/Resources/discord@3x.png
new file mode 100644
index 0000000..d58c334
--- /dev/null
+++ b/finicalprefs/Resources/discord@3x.png
Binary files differ
diff --git a/finicalprefs/Resources/icon@2x.png b/finicalprefs/Resources/icon@2x.png
new file mode 100644
index 0000000..3b9d210
--- /dev/null
+++ b/finicalprefs/Resources/icon@2x.png
Binary files differ
diff --git a/finicalprefs/Resources/icon@3x.png b/finicalprefs/Resources/icon@3x.png
new file mode 100644
index 0000000..43b0661
--- /dev/null
+++ b/finicalprefs/Resources/icon@3x.png
Binary files differ
diff --git a/finicalprefs/Resources/twitter@2x.png b/finicalprefs/Resources/twitter@2x.png
new file mode 100644
index 0000000..5fa8892
--- /dev/null
+++ b/finicalprefs/Resources/twitter@2x.png
Binary files differ
diff --git a/finicalprefs/Resources/twitter@3x.png b/finicalprefs/Resources/twitter@3x.png
new file mode 100644
index 0000000..9af7a41
--- /dev/null
+++ b/finicalprefs/Resources/twitter@3x.png
Binary files differ
diff --git a/finicalprefs/entry.plist b/finicalprefs/entry.plist
new file mode 100644
index 0000000..e094ad6
--- /dev/null
+++ b/finicalprefs/entry.plist
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>entry</key>
+ <dict>
+ <key>bundle</key>
+ <string>FinicalPrefs</string>
+ <key>cell</key>
+ <string>PSLinkCell</string>
+ <key>detail</key>
+ <string>FCLRootListController</string>
+ <key>icon</key>
+ <string>icon.png</string>
+ <key>isController</key>
+ <true/>
+ <key>label</key>
+ <string>Finical</string>
+ </dict>
+</dict>
+</plist>
diff --git a/packages/.DS_Store b/packages/.DS_Store
new file mode 100644
index 0000000..5008ddf
--- /dev/null
+++ b/packages/.DS_Store
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-1+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-1+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..88c0492
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-1+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-10+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-10+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..3f9a755
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-10+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-11+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-11+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..0019bab
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-11+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-12+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-12+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..8cbc240
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-12+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-13+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-13+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..4ac6b30
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-13+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-14+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-14+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..7ca739b
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-14+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-15+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-15+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..deb803f
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-15+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-16+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-16+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..f902315
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-16+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-17+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-17+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..97f4a32
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-17+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-18+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-18+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..d43b999
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-18+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-19+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-19+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..1127460
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-19+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-2+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-2+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..eb1ce92
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-2+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-20+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-20+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..7beb5e5
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-20+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-21+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-21+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..061740a
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-21+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-22+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-22+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..649283b
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-22+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-23+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-23+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..2626eef
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-23+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-24+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-24+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..35d1281
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-24+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-25+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-25+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..0de9598
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-25+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-26+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-26+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..a5cd3d9
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-26+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-27+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-27+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..5537593
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-27+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-28+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-28+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..29399d6
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-28+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-29+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-29+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..75c36ed
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-29+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-3+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-3+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..d9ba7d8
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-3+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-30+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-30+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..58b4eed
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-30+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-31+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-31+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..a1b5e37
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-31+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-32+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-32+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..0c8bf82
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-32+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-33+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-33+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..86ac5fb
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-33+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-34+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-34+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..89c23ec
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-34+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-35+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-35+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..1f2deb1
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-35+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-36+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-36+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..8e08f38
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-36+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-37+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-37+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..4476c8c
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-37+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-38+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-38+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..dc1f41c
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-38+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-39+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-39+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..71069ad
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-39+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-4+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-4+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..e7cd6ba
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-4+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-5+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-5+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..98f32a5
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-5+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-6+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-6+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..93f4a0f
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-6+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-7+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-7+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..d9b3c32
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-7+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-8+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-8+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..f7ed8da
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-8+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_0.0.1-9+debug_iphoneos-arm.deb b/packages/com.5px.finical_0.0.1-9+debug_iphoneos-arm.deb
new file mode 100644
index 0000000..64d3232
--- /dev/null
+++ b/packages/com.5px.finical_0.0.1-9+debug_iphoneos-arm.deb
Binary files differ
diff --git a/packages/com.5px.finical_1.0_iphoneos-arm.deb b/packages/com.5px.finical_1.0_iphoneos-arm.deb
new file mode 100644
index 0000000..2fe1ae8
--- /dev/null
+++ b/packages/com.5px.finical_1.0_iphoneos-arm.deb
Binary files differ