Skip to content

Commit b9995ed

Browse files
author
Kame
committed
Add GitHub store browsing feature with import validation and caching
1 parent e83014c commit b9995ed

16 files changed

Lines changed: 3190 additions & 106 deletions

README.md

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
# Android IR Blaster
23

34
<a href="https://play.google.com/store/apps/details?id=org.nslabs.ir_blaster">
@@ -11,6 +12,8 @@
1112

1213
The app enables users to build fully custom remotes, discover unknown IR codes through guided brute-force tools, and seamlessly manage IR configurations. It also supports importing IR signals from Flipper Zero `.ir` files, **IRPLUS `.irplus` / XML files**, and **LIRC `.conf` / `.cfg` / `.lirc` files**, making it easy to reuse and adapt existing IR libraries across devices.
1314

15+
It also includes a GitHub Store for browsing compatible IR files directly from GitHub repositories and importing them into the app without manually downloading and moving files first. For supported USB learning dongles, Learning Mode can capture a signal from a physical remote, preview it, and save it into a new or existing remote.
16+
1417
IR Blaster is designed to be flexible, hardware-agnostic, and user-friendly, while remaining powerful enough for advanced users who need precise control over IR protocols and signal timing.
1518

1619
</p>
@@ -46,8 +49,8 @@ IR Blaster is designed to be flexible, hardware-agnostic, and user-friendly, whi
4649
- USB IR dongle (with discovery, permission, and bulk transfers)
4750
- Audio IR (mono 1‑LED or stereo anti‑phase 2‑LED adapters)
4851
- Rich protocol support and a raw‑signal mode for precise mark/space patterns
49-
- Import/export of remotes, including Flipper Zero `.ir`, IRPLUS `.irplus` / XML, LIRC `.conf` / `.cfg` / `.lirc` files, and JSON backups
50-
- Material 3 UI with dynamic color, dark mode, and a tabbed layout (Remotes, Signal Tester, Settings)
52+
- Import/export of remotes, including Flipper Zero `.ir`, IRPLUS `.irplus` / XML, LIRC `.conf` / `.cfg` / `.lirc` files, JSON backups, and direct GitHub browsing/import
53+
- Learning Mode for supported USB learning dongles, with capture, preview, replay, and save flows
5154

5255
Tip: At least one transmit path must be available (Internal, USB, or Audio). A built‑in IR blaster is not required if you use a USB dongle or audio adapter.
5356

@@ -60,17 +63,22 @@ Tip: At least one transmit path must be available (Internal, USB, or Audio). A b
6063
- Optional Auto Switch uses USB when a supported dongle is attached, otherwise Internal (disabled if Audio is selected).
6164
- Import/Export & Maintenance (Settings > Remotes):
6265
- Import JSON backups, Flipper Zero `.ir`, IRPLUS `.irplus` / XML (beta), and LIRC `.conf` / `.cfg` / `.lirc` (beta) files
66+
- Browse compatible files from GitHub repositories in GitHub Store and import them directly into the app
6367
- Export remotes to Downloads
6468
- Restore the built‑in demo remote
6569
- Delete all remotes
66-
- Modern UI: Material 3 styling, dynamic color, and responsive layouts.
70+
- Learning Mode (Settings > Learning Mode):
71+
- Use a supported USB learning dongle to capture a button from a physical remote
72+
- Preview the learned signal, replay it, and save it into a new or existing remote
73+
- GitHub Store for browsing GitHub repositories and importing compatible IR files directly.
6774

6875

6976
### User‑facing
7077
- Transmitter selection card with live capability updates and USB permission request flow.
78+
- Learning Mode for supported USB learning dongles, with guided capture and save flow.
79+
- GitHub Store for browsing GitHub repositories and importing compatible IR files directly.
7180
- Signal Tester promoted as an IR bruteforcer (IR Finder) to help discover unknown codes.
7281
- Expanded import/export options and maintenance actions for remotes.
73-
- Material 3 theming with dynamic light/dark color schemes.
7482

7583
### Technical/architectural
7684
- Multi‑transmitter architecture:
@@ -144,11 +152,16 @@ The Signal Tester is designed to help discover unknown working IR commands.
144152
## Remotes Management
145153

146154
- Import remotes: JSON backups and Flipper Zero `.ir` files (Settings > Remotes > Import remotes).
155+
- GitHub Store: Browse GitHub repositories, preview supported files, and import them directly into your remote library.
147156
- Export remotes: Save a JSON backup to Downloads.
148157
- Restore Demo Remote: Reset to a built‑in demo configuration.
149158
- Delete all remotes: Clear the entire list from this device.
150159

151-
## Supported Infrared Protocols
160+
## Learning Mode
161+
162+
- Open Settings > Learning Mode to capture a button from a physical remote with a supported USB learning dongle.
163+
- Review the learned signal, replay it to confirm the target device reacts, then save it into a new or existing remote.
164+
- Learning Mode is designed for compatible USB learning receivers such as supported Tiqiaa, ZaZa, or ElkSmart-style dongles.
152165

153166
## Supported Infrared Protocols
154167

@@ -249,14 +262,25 @@ Or download the latest APK from the Releases Section.
249262

250263
### Creating Custom Remotes
251264
1. Open the Remotes tab.
252-
2. Create a remote and add buttons using protocol encoders or raw patterns.
265+
2. Create a remote and add buttons using protocol encoders, raw patterns, GitHub Store imports, or buttons imported from existing remotes and the database.
253266
3. Save and test your buttons from the Remote view.
254267

268+
### Using the GitHub Store
269+
1. Open Settings > GitHub Store.
270+
2. Enter a GitHub repository or folder URL, then load the repository when you want to browse it.
271+
3. Open a supported file to preview how it will be parsed.
272+
4. Import it into a new remote or add compatible buttons to an existing remote.
273+
255274
### Using the Signal Tester (IR Finder)
256275
1. Open the "Signal Tester" tab.
257276
2. Provide protocol parameters and optional hex prefix constraints.
258277
3. Start testing; the bruteforcer will try variations to identify working signals via your selected transmitter.
259278

279+
### Using Learning Mode
280+
1. Connect a supported USB learning dongle and grant USB permission if Android asks.
281+
2. Open Settings > Learning Mode.
282+
3. Capture one button from the original remote, replay it if needed, then save it into your library.
283+
260284
### USB Notes
261285
- When a supported USB dongle is attached, use "Request USB permission" if prompted.
262286
- Auto Switch prefers USB when available; disable it for manual selection or Audio use.

android/app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
<uses-feature android:name="android.hardware.consumerir" android:required="false" />
3232

3333
<!-- IR transmission permission -->
34+
<uses-permission android:name="android.permission.INTERNET" />
3435
<uses-permission android:name="android.permission.TRANSMIT_IR" />
3536
<uses-permission android:name="android.permission.VIBRATE" />
3637
<uses-permission android:name="android.permission.RECORD_AUDIO" />

android/local.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
sdk.dir=/usr/lib/android-sdk
22
flutter.sdk=/home/intra/snap/flutter/common/flutter
33
flutter.buildMode=release
4-
flutter.versionName=3.0.0
5-
flutter.versionCode=34
4+
flutter.versionName=3.1.0
5+
flutter.versionCode=35
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Add GitHub Store for browsing compatible IR files directly from GitHub repositories
2+
Add preview and validation before importing GitHub Store files into remotes
3+
Improve GitHub Store UX with saved sources, better back navigation, hidden internal files, and post-import actions
4+
Add caching and optional GitHub connection settings to reduce rate limit issues
5+
Improve create/edit remote flow with direct access to GitHub Store imports

0 commit comments

Comments
 (0)