Issues are used for tracking new features, bugs or other tasks. If you have a question don't hesitate and open a new discussion! Please make sure that your issue contains all nesessary information to avoid waiting times. All communication, including issues, should be written in understandable english.
Before you submit a new issue please make sure it is in scope of this project:
- bugs in bttv-android
- features that exist in BTTV
- features that enhance quality of life (e.g. improving integration with existing Twitch behavior)
- bugs not caused by the mod
- features that are unrelated to BTTV (e.g. a new theme)
This way the mod does not become bloated and is thus more stable and maintainable.
Most PRs have an associated issue, if you PR is one of those make sure to reference the issue. Your PR will be reviewed and commented please prepare yourself for that, we do not want to end up in stale PRs. It's ok (and encouraged) to open an PR even when you are not finished. Please mark those PRs as drafts. If you have any questions feel free to tag @bttv-android/developers and somebody will help you out :)
Before you undraft a PR follow the checklist in the PR template!
Read the build it yourself part (the hard way) in the README aswell!
Do the following once:
- Initialize the workspace as described in the README
- Now you can build the java source code in (
mod
) using./buildsource disass
. It will automaticly dex the class files and baksmali them. It is recommended to scim through the script so you can set your environment variables. - Build your new changes using the
./build disass
script. - Open an emulator and run
./install
Please only modify or add java files in the bttv package! Others won't be compiled anyway. In case you need to apply a monkey-patch (i.e. edit smali files (not in the bttv package) in
extracted
directly) read the instructions below. Never check in thedisass
directories for legal reasons
bttv/
├─ initworkspace - used to set up everything
├─ buildsource - used to build the java sources
├─ build - re-assembles the 'disass' dir
├─ decompile - you need JADX to use this
├─ install - install the result of build on a device (using adb)
├─ patches - contains monkey patches
├─ genmonke - script that generates the patches based on disass (more below)
├─ disass/ - renamed from disass
│ ├─ AndroidManifest.xml
│ ├─ res/
│ ├─ smali_classes0-10/ - contains disassembled app + bttv code
│ ├─ dist/
│ │ ├─ twitch.apk - the final app
├─ mod/ - java sources for patches
│ ├─ app/ - sources for the mod
| ├─ twitch/ - stubs so we can call twitch's classes
During initialization the disass dir is initialized with an empty git repo.
Right after the disassemblement the first commit is made and tagged "base".
This is used to generate the patch file.
patches
is thus the result of a diff between master and base.
You need to nothing else, you can commit your code and start a pull request!
Run ./genmonke disass
before you make a commit.
Please also read the architecture.md file!
Everytime you get a new version of the code (e.g. using git pull or git checkout) remove extraced
and run ./initworkspace
again.