parent
ef7342b788
commit
859fa2a89f
|
@ -26,6 +26,7 @@ export default function EditSet() {
|
|||
milliseconds,
|
||||
!!settings.vibrate,
|
||||
settings.sound,
|
||||
!!settings.noSound,
|
||||
);
|
||||
},
|
||||
[settings],
|
||||
|
|
|
@ -33,6 +33,7 @@ export default function SettingsPage() {
|
|||
showSets,
|
||||
theme,
|
||||
alarm,
|
||||
noSound,
|
||||
} = settings;
|
||||
const {color, setColor} = useColor();
|
||||
const {toast} = useSnackbar();
|
||||
|
@ -139,9 +140,19 @@ export default function SettingsPage() {
|
|||
[toast, update],
|
||||
);
|
||||
|
||||
const changeNoSound = useCallback(
|
||||
(enabled: boolean) => {
|
||||
update(enabled, 'noSound');
|
||||
if (enabled) toast('Disable sound on rest timer alarms.', 4000);
|
||||
else toast('Enabled sound for rest timer alarms.', 4000);
|
||||
},
|
||||
[toast, update],
|
||||
);
|
||||
|
||||
const switches: Input<boolean>[] = [
|
||||
{name: 'Rest timers', value: !!alarm, onChange: changeAlarmEnabled},
|
||||
{name: 'Vibrate', value: !!vibrate, onChange: changeVibrate},
|
||||
{name: 'Disable sound', value: !!noSound, onChange: changeNoSound},
|
||||
{name: 'Record notifications', value: !!notify, onChange: changeNotify},
|
||||
{name: 'Show images', value: !!images, onChange: changeImages},
|
||||
{name: 'Show unit', value: !!showUnit, onChange: changeUnit},
|
||||
|
|
|
@ -48,12 +48,13 @@ class AlarmModule internal constructor(context: ReactApplicationContext?) :
|
|||
|
||||
@RequiresApi(api = Build.VERSION_CODES.O)
|
||||
@ReactMethod
|
||||
fun timer(milliseconds: Int, vibrate: Boolean, sound: String?) {
|
||||
fun timer(milliseconds: Int, vibrate: Boolean, sound: String?, noSound: Boolean = false) {
|
||||
Log.d("AlarmModule", "Queue alarm for $milliseconds delay")
|
||||
val intent = Intent(reactApplicationContext, TimerService::class.java)
|
||||
intent.putExtra("milliseconds", milliseconds)
|
||||
intent.putExtra("vibrate", vibrate)
|
||||
intent.putExtra("sound", sound)
|
||||
intent.putExtra("noSound", noSound)
|
||||
reactApplicationContext.startService(intent)
|
||||
}
|
||||
|
||||
|
|
|
@ -21,11 +21,13 @@ class AlarmService : Service(), OnPreparedListener {
|
|||
return START_STICKY
|
||||
}
|
||||
val sound = intent.extras?.getString("sound")
|
||||
if (sound == null) {
|
||||
val noSound = intent.extras?.getBoolean("noSound") == true
|
||||
|
||||
if (sound == null && !noSound) {
|
||||
mediaPlayer = MediaPlayer.create(applicationContext, R.raw.argon)
|
||||
mediaPlayer?.start()
|
||||
mediaPlayer?.setOnCompletionListener { vibrator?.cancel() }
|
||||
} else {
|
||||
} else if (sound != null && !noSound) {
|
||||
mediaPlayer = MediaPlayer().apply {
|
||||
setAudioAttributes(
|
||||
AudioAttributes.Builder()
|
||||
|
@ -39,6 +41,7 @@ class AlarmService : Service(), OnPreparedListener {
|
|||
setOnCompletionListener { vibrator?.cancel() }
|
||||
}
|
||||
}
|
||||
|
||||
val pattern = longArrayOf(0, 300, 1300, 300, 1300, 300)
|
||||
vibrator = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
val vibratorManager =
|
||||
|
|
|
@ -20,11 +20,13 @@ class TimerService : Service() {
|
|||
private var endMs: Int = 0
|
||||
private var currentMs: Long = 0
|
||||
private var vibrate: Boolean = true
|
||||
private var noSound: Boolean = false
|
||||
private var sound: String? = null
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.O)
|
||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||
vibrate = intent?.extras?.getBoolean("vibrate") == true
|
||||
noSound = intent?.extras?.getBoolean("noSound") == true
|
||||
sound = intent?.extras?.getString("sound")
|
||||
val manager = getManager()
|
||||
manager.cancel(NOTIFICATION_ID_DONE)
|
||||
|
@ -93,9 +95,11 @@ class TimerService : Service() {
|
|||
val manager = getManager()
|
||||
manager.notify(NOTIFICATION_ID_DONE, builder.build())
|
||||
manager.cancel(NOTIFICATION_ID_PENDING)
|
||||
val alarmIntent = Intent(applicationContext, AlarmService::class.java)
|
||||
alarmIntent.putExtra("vibrate", vibrate)
|
||||
alarmIntent.putExtra("sound", sound)
|
||||
val alarmIntent = Intent(applicationContext, AlarmService::class.java).apply {
|
||||
putExtra("vibrate", vibrate)
|
||||
putExtra("sound", sound)
|
||||
putExtra("noSound", noSound)
|
||||
}
|
||||
applicationContext.startService(alarmIntent)
|
||||
}
|
||||
}
|
||||
|
@ -124,11 +128,13 @@ class TimerService : Service() {
|
|||
val stopIntent = Intent(context, StopTimer::class.java)
|
||||
val pendingStop =
|
||||
PendingIntent.getService(context, 0, stopIntent, PendingIntent.FLAG_IMMUTABLE)
|
||||
val addIntent = Intent(context, TimerService::class.java)
|
||||
addIntent.action = "add"
|
||||
addIntent.putExtra("vibrate", vibrate)
|
||||
addIntent.putExtra("sound", sound)
|
||||
addIntent.data = Uri.parse("$currentMs")
|
||||
val addIntent = Intent(context, TimerService::class.java).apply {
|
||||
action = "add"
|
||||
putExtra("vibrate", vibrate)
|
||||
putExtra("sound", sound)
|
||||
putExtra("noSound", noSound)
|
||||
data = Uri.parse("$currentMs")
|
||||
}
|
||||
val pendingAdd = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
PendingIntent.getService(context, 0, addIntent, PendingIntent.FLAG_MUTABLE)
|
||||
} else {
|
||||
|
|
19
db.ts
19
db.ts
|
@ -41,16 +41,16 @@ const migrations = [
|
|||
)
|
||||
`,
|
||||
`
|
||||
ALTER TABLE sets ADD COLUMN hidden DEFAULT 0
|
||||
ALTER TABLE sets ADD COLUMN hidden DEFAULT false
|
||||
`,
|
||||
`
|
||||
ALTER TABLE settings ADD COLUMN notify DEFAULT 0
|
||||
ALTER TABLE settings ADD COLUMN notify DEFAULT false
|
||||
`,
|
||||
`
|
||||
ALTER TABLE sets ADD COLUMN image TEXT NULL
|
||||
`,
|
||||
`
|
||||
ALTER TABLE settings ADD COLUMN images BOOLEAN DEFAULT 1
|
||||
ALTER TABLE settings ADD COLUMN images BOOLEAN DEFAULT true
|
||||
`,
|
||||
`
|
||||
SELECT * FROM settings LIMIT 1
|
||||
|
@ -74,7 +74,7 @@ const migrations = [
|
|||
ALTER TABLE sets ADD COLUMN seconds INTEGER NOT NULL DEFAULT 30
|
||||
`,
|
||||
`
|
||||
ALTER TABLE settings ADD COLUMN showUnit BOOLEAN DEFAULT 1
|
||||
ALTER TABLE settings ADD COLUMN showUnit BOOLEAN DEFAULT true
|
||||
`,
|
||||
`
|
||||
ALTER TABLE sets ADD COLUMN steps TEXT NULL
|
||||
|
@ -94,10 +94,10 @@ const migrations = [
|
|||
UPDATE settings SET showUnit = 1
|
||||
`,
|
||||
`
|
||||
ALTER TABLE settings ADD COLUMN workouts BOOLEAN DEFAULT 1
|
||||
ALTER TABLE settings ADD COLUMN workouts BOOLEAN DEFAULT true
|
||||
`,
|
||||
`
|
||||
ALTER TABLE settings ADD COLUMN steps BOOLEAN DEFAULT 1
|
||||
ALTER TABLE settings ADD COLUMN steps BOOLEAN DEFAULT true
|
||||
`,
|
||||
`
|
||||
ALTER TABLE settings ADD COLUMN nextAlarm TEXT NULL
|
||||
|
@ -109,17 +109,20 @@ const migrations = [
|
|||
ALTER TABLE settings ADD COLUMN date TEXT NULL
|
||||
`,
|
||||
`
|
||||
ALTER TABLE settings ADD COLUMN showDate BOOLEAN DEFAULT 0
|
||||
ALTER TABLE settings ADD COLUMN showDate BOOLEAN DEFAULT false
|
||||
`,
|
||||
`
|
||||
ALTER TABLE settings ADD COLUMN theme TEXT
|
||||
`,
|
||||
`
|
||||
ALTER TABLE settings ADD COLUMN showSets BOOLEAN DEFAULT 1
|
||||
ALTER TABLE settings ADD COLUMN showSets BOOLEAN DEFAULT true
|
||||
`,
|
||||
`
|
||||
CREATE INDEX sets_created ON sets(created)
|
||||
`,
|
||||
`
|
||||
ALTER TABLE settings ADD COLUMN noSound BOOLEAN DEFAULT false
|
||||
`,
|
||||
];
|
||||
|
||||
export let db: SQLiteDatabase;
|
||||
|
|
|
@ -11,4 +11,5 @@ export default interface Settings {
|
|||
showDate: number;
|
||||
theme: 'system' | 'dark' | 'light';
|
||||
showSets: number;
|
||||
noSound: number;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user