Track your gym progress, completely offline.
Go to file
Brandon Presley a0dc62e761 Remove all JS side Timers
This is the result of me fixing the background timers.
Previously our code just used a CountdownTimer
not even in a service, just immediately in the
@ReactMethod. This would in certain scenarios stop
running. Even with battery optimizations turned off.

The reason why all the JS side timers had to be removed
is because we were relying on RCTDeviceEventEmitter
which I don't know how to use from within a Service.
See my stackoverflow ticket here: https://stackoverflow.com/questions/74204339/sending-react-native-android-events-to-javascript-from-a-service

Closes #212, #196
2024-02-17 17:27:42 +13:00
.bundle First commit 2022-06-30 18:50:52 +12:00
.vscode Add vscode configuration for debugging 2022-12-03 22:14:01 +13:00
.yarn/releases Fix .gitignore for yarn berry 2022-08-26 17:03:44 +12:00
android Fix dismissing alarm and add +1 minute button 2024-02-16 17:47:26 +13:00
ios Upgrade react-native from 0.72.3 to 0.73.0 2024-02-15 15:07:11 +13:00
metadata/en-US Revert "Update timer page screenshot" 2023-03-02 19:15:26 +13:00
migrations Add migrations to leading zeros for date settings 2024-02-05 14:24:53 +13:00
.Gemfile Add gemfile + lock 2022-11-04 18:50:52 +13:00
.buckconfig First commit 2022-06-30 18:50:52 +12:00
.eslintrc.js Ignore mock-providers.tsx 2023-07-17 16:46:23 +12:00
.fdignore Add ability to customize primary color 2022-09-24 13:57:51 +12:00
.gitignore Add profiles dir to gitignore 2023-09-04 14:15:53 +12:00
.rgignore Split out routes 2022-07-15 16:34:06 +12:00
.ruby-version Change ruby version to match what is required in ios 2022-11-15 18:10:30 +13:00
.watchmanconfig Run prettier on project directory 2022-09-01 23:52:33 +12:00
.yarnrc.yml Upgrade yarn version 2022-07-19 16:24:05 +12:00
App.tsx Remove all JS side Timers 2024-02-17 17:27:42 +13:00
AppDrawer.tsx Remove all JS side Timers 2024-02-17 17:27:42 +13:00
AppFab.tsx Fix colors on fabs 2023-11-14 14:44:10 +13:00
AppInput.tsx Replace useDark with useTheme - 1.185 🚀 2023-11-14 14:52:35 +13:00
AppLineChart.tsx Undo NaN filtering for graphs - 2.24 🚀 2024-02-15 13:12:45 +13:00
AppPieChart.tsx Undo NaN filtering for graphs - 2.24 🚀 2024-02-15 13:12:45 +13:00
AppSnack.tsx Improve performance of app - 1.182 🚀 2023-11-13 17:37:53 +13:00
AppStack.tsx Move debug banner to AppStack from AppDrawer 2024-02-15 15:26:14 +13:00
ConfirmDialog.tsx Run prettier 2023-08-12 15:23:02 +12:00
DrawerHeader.tsx Rename drawer-param-list -> drawer-params 2023-11-15 11:08:00 +13:00
EditExercise.tsx Add settings for default fields on Exercise - 2.1 🚀 2023-11-15 14:05:25 +13:00
EditExercises.tsx Change logging 2024-02-07 17:31:13 +13:00
EditPlan.tsx Handle fresh user experience better for Plans - 2.9 🚀 2023-11-29 12:55:18 +13:00
EditSet.tsx Don't select a date if date picker is cancelled 2024-02-09 15:20:25 +13:00
EditSets.tsx Ensure reps are always positive - 2.15 🚀 2024-02-09 12:48:12 +13:00
EditWeight.tsx Make SettingsModule.ignoringBattery async 2024-02-14 11:14:43 +13:00
ExerciseItem.tsx Change logging 2024-02-07 17:31:13 +13:00
ExerciseList.tsx Fix some database drift 2023-11-13 18:13:23 +13:00
FatalError.tsx Factor out FatalError component from App.tsx 2023-11-15 12:14:34 +13:00
Gemfile Upgrade react-native from 0.72.3 to 0.73.0 2024-02-15 15:07:11 +13:00
Gemfile.lock Get ios running 2022-11-15 18:10:48 +13:00
GraphsList.tsx Organize imports 2023-11-15 11:21:49 +13:00
InsightsPage.tsx Rename Chart -> AppLineChart 2024-02-09 12:56:43 +13:00
LICENSE Add GPL3 license 2022-07-08 11:59:31 +12:00
ListMenu.tsx Swap to using MaterialCommunityIcons 2023-10-19 18:28:56 +13:00
Page.tsx Swap to using MaterialCommunityIcons 2023-10-19 18:28:56 +13:00
PlanItem.tsx Replace useDark with useTheme - 1.185 🚀 2023-11-14 14:52:35 +13:00
PlanList.tsx Organize imports 2023-11-15 11:21:49 +13:00
PrimaryButton.tsx Fix wrong text color on primary buttons - 1.187 🚀 2023-11-15 13:07:58 +13:00
README.md Replace/Remove all references to yarn -> npm 2023-10-26 20:32:22 +13:00
Select.tsx Add icons to dropdown options in Settings - 2.22 🚀 2024-02-12 17:32:02 +13:00
SetItem.tsx Show both date and time by default 2023-11-21 19:14:53 +13:00
SetList.tsx Change logging 2024-02-07 17:31:13 +13:00
SettingsPage.tsx Remove all JS side Timers 2024-02-17 17:27:42 +13:00
StackHeader.tsx Swap to using MaterialCommunityIcons 2023-10-19 18:28:56 +13:00
StartPlan.tsx Auto select last worked on exercise in plans 2024-02-09 14:24:59 +13:00
StartPlanItem.tsx Stop timer when you undo a set from an open plan 2023-11-15 16:05:28 +13:00
Switch.tsx Remove track color setting from Switch 2023-08-22 11:53:12 +12:00
ViewGraph.tsx Undo NaN filtering for graphs - 2.24 🚀 2024-02-15 13:12:45 +13:00
ViewSetList.tsx Show both date and time by default 2023-11-21 19:14:53 +13:00
ViewWeightGraph.tsx Add date range selectors to graphs 2024-02-09 15:20:17 +13:00
WeightItem.tsx Show both date and time by default 2023-11-21 19:14:53 +13:00
WeightList.tsx Change logging 2024-02-07 17:31:13 +13:00
app.json Run prettier on project directory 2022-09-01 23:52:33 +12:00
babel.config.js Upgrade react-native from 0.72.3 to 0.73.0 2024-02-15 15:07:11 +13:00
best.service.ts Paginate graphs 2023-08-14 10:42:15 +12:00
colors.ts Rename Dark red color and change Slate blue 2024-02-12 17:07:17 +13:00
constants.ts Simplify the peek view of exercises from Plan 2023-11-15 16:03:58 +13:00
conversions.ts Add auto converter - 1.186 🚀 2023-11-15 11:03:23 +13:00
count-many.ts Run prettier 2023-08-12 15:23:02 +12:00
data-source.ts Add migrations to leading zeros for date settings 2024-02-05 14:24:53 +13:00
days.ts Move time.ts -> days.ts 2023-11-06 14:27:27 +13:00
db.ts Add weight page 2023-10-21 11:57:31 +13:00
deno.json Use deno fmt instead of prettier 2023-06-27 15:16:59 +12:00
deploy.mjs Make bundle and gradle builds quiet in deploy.mjs - 2.18 🚀 2024-02-11 18:11:16 +13:00
drawer-params.ts Rename drawer-param-list -> drawer-params 2023-11-15 11:08:00 +13:00
emitter.ts Replace usage of deprecated DeviceEventEmitter - 1.155 🚀 2023-09-04 14:32:40 +12:00
fix-numeric.ts Validate reps+weight on EditSet 2023-08-12 15:22:00 +12:00
gym-set.ts Remove redundant exports from gym-set.ts 2023-11-21 10:16:17 +13:00
index.js Upgrade react-native to 0.72.1 2023-07-07 13:17:19 +12:00
input.ts Run prettier 2023-08-12 15:23:02 +12:00
install.sh Fix install.sh script for new react-native output 2023-07-15 15:02:13 +12:00
jest.config.js Optimize root context 2022-10-31 21:00:10 +13:00
jestSetup.ts Run prettier 2023-08-12 15:23:02 +12:00
metrics.ts Change ViewGraph defaults to ORM > Best > Volume 2023-10-18 12:46:34 +13:00
metro.config.js Upgrade react-native to 0.72.1 2023-07-07 13:17:19 +12:00
muscle-groups.ts Add muscle groups 2023-11-09 12:23:19 +13:00
options.ts Add icons to dropdown options in Settings - 2.22 🚀 2024-02-12 17:32:02 +13:00
organize.sh Organize all imports 2023-11-12 17:05:37 +13:00
package-lock.json Upgrade all minor+patch versions in package.json 2024-02-16 11:49:50 +13:00
package.json Upgrade all minor+patch versions in package.json 2024-02-16 11:49:50 +13:00
periods.ts Add period selector for "All time" in graphs 2024-02-07 11:42:24 +13:00
plan.ts Fix some database drift 2023-11-13 18:13:23 +13:00
react-native.config.js Ran prettier on react-native.config.js 2022-11-22 21:38:54 +13:00
release.sh Turn on proguard and separate build per cpu 2022-07-27 16:06:28 +12:00
route.ts Rename drawer-param-list -> drawer-params 2023-11-15 11:08:00 +13:00
settings.ts Default showing of steps to false 2023-11-21 19:25:18 +13:00
toast.ts Replace usage of deprecated DeviceEventEmitter - 1.155 🚀 2023-09-04 14:32:40 +12:00
tsconfig.json Upgrade react-native from 0.72.3 to 0.73.0 2024-02-15 15:07:11 +13:00
use-theme.ts Rename useTheme to useAppTheme 2023-11-14 14:45:15 +13:00
volume.ts Run prettier 2023-08-12 15:23:02 +12:00
weight.ts Fix some database drift 2023-11-13 18:13:23 +13:00

README.md

Massive

Massive tracks your reps and sets at the gym. No internet connectivity or high spec device is required.

Features

  • Track weight, reps and sets
  • Rest timers after each set
  • Progress graphs
  • Day planner
Get it on Google Play

Screenshots

Building from Source

First follow the React Native Environment Setup. Then run the following command:

cd android
./gradlew assembleRelease

The apk file can be found at android/app/build/outputs/apk/release/app-release.apk

Running in Development

First ensure Node.js dependencies are installed:

npm install

Then start the metro server:

npm start

Then (in a separate terminal) run the android script:

npm run android

Fdroid Metadata

You can find the metadata yaml file in the fdroiddata repository: https://gitlab.com/fdroid/fdroiddata/-/blob/master/metadata/com.massive.yml