add the default alarm title and uri to new alarms

This commit is contained in:
tibbi 2018-03-05 19:14:53 +01:00
parent 8018994881
commit 2da39c735f
5 changed files with 40 additions and 10 deletions

View File

@ -13,8 +13,8 @@ import com.simplemobiletools.commons.extensions.*
import kotlinx.android.synthetic.main.dialog_edit_alarm.view.*
class EditAlarmDialog(val activity: SimpleActivity, val alarm: Alarm, val callback: () -> Unit) {
val view = activity.layoutInflater.inflate(R.layout.dialog_edit_alarm, null)
val textColor = activity.config.textColor
private val view = activity.layoutInflater.inflate(R.layout.dialog_edit_alarm, null)
private val textColor = activity.config.textColor
init {
updateAlarmTime()
@ -25,7 +25,7 @@ class EditAlarmDialog(val activity: SimpleActivity, val alarm: Alarm, val callba
}
colorLeftDrawable(edit_alarm_sound)
edit_alarm_sound.text = "Default alarm"
edit_alarm_sound.text = alarm.soundTitle
edit_alarm_sound.setOnClickListener {
}

View File

@ -1,8 +1,11 @@
package com.simplemobiletools.clock.extensions
import android.content.Context
import android.media.RingtoneManager
import android.net.Uri
import com.simplemobiletools.clock.R
import com.simplemobiletools.clock.helpers.*
import com.simplemobiletools.clock.models.Alarm
import com.simplemobiletools.clock.models.MyTimeZone
import java.util.*
@ -45,3 +48,24 @@ fun Context.getAllTimeZonesModified(): ArrayList<MyTimeZone> {
}
fun Context.getModifiedTimeZoneTitle(id: Int) = getAllTimeZonesModified().firstOrNull { it.id == id }?.title ?: getDefaultTimeZoneTitle(id)
fun Context.getAlarms(): Map<String, String> {
val manager = RingtoneManager(this)
manager.setType(RingtoneManager.TYPE_ALARM)
val cursor = manager.cursor
val alarms = HashMap<String, String>()
while (cursor.moveToNext()) {
val title = cursor.getString(RingtoneManager.TITLE_COLUMN_INDEX)
val uri = Uri.parse("${cursor.getString(RingtoneManager.URI_COLUMN_INDEX)}/${cursor.getString(RingtoneManager.ID_COLUMN_INDEX)}").toString()
alarms[title] = uri
}
return alarms
}
private fun getDefaultAlarmUri() = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM)
private fun getDefaultAlarmTitle(context: Context) = RingtoneManager.getRingtone(context, getDefaultAlarmUri()).getTitle(context)
fun Context.createNewAlarm(timeInMinutes: Int, weekDays: Int) = Alarm(0, timeInMinutes, weekDays, false, false, getDefaultAlarmTitle(this), getDefaultAlarmUri().toString(), "")

View File

@ -9,6 +9,7 @@ import com.simplemobiletools.clock.R
import com.simplemobiletools.clock.activities.SimpleActivity
import com.simplemobiletools.clock.adapters.AlarmsAdapter
import com.simplemobiletools.clock.dialogs.EditAlarmDialog
import com.simplemobiletools.clock.extensions.createNewAlarm
import com.simplemobiletools.clock.extensions.dbHelper
import com.simplemobiletools.clock.models.Alarm
import com.simplemobiletools.commons.extensions.updateTextColors
@ -33,7 +34,7 @@ class AlarmFragment : Fragment() {
view.apply {
context!!.updateTextColors(alarm_fragment)
alarm_fab.setOnClickListener {
val newAlarm = Alarm(0, DEFAULT_ALARM_MINUTES, 0, false, false, "", "")
val newAlarm = context.createNewAlarm(DEFAULT_ALARM_MINUTES, 0)
openEditAlarm(newAlarm)
}
}

View File

@ -5,6 +5,7 @@ import android.content.Context
import android.database.Cursor
import android.database.sqlite.SQLiteDatabase
import android.database.sqlite.SQLiteOpenHelper
import com.simplemobiletools.clock.extensions.createNewAlarm
import com.simplemobiletools.clock.models.Alarm
import com.simplemobiletools.commons.extensions.getIntValue
import com.simplemobiletools.commons.extensions.getStringValue
@ -17,6 +18,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
private val COL_DAYS = "days"
private val COL_IS_ENABLED = "is_enabled"
private val COL_VIBRATE = "vibrate"
private val COL_SOUND_TITLE = "sound_title"
private val COL_SOUND_URI = "sound_uri"
private val COL_LABEL = "label"
@ -37,7 +39,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
override fun onCreate(db: SQLiteDatabase) {
db.execSQL("CREATE TABLE $ALARMS_TABLE_NAME ($COL_ID INTEGER PRIMARY KEY AUTOINCREMENT, $COL_TIME_IN_MINUTES INTEGER, $COL_DAYS INTEGER, " +
"$COL_IS_ENABLED INTEGER, $COL_VIBRATE INTEGER, $COL_SOUND_URI TEXT, $COL_LABEL TEXT)")
"$COL_IS_ENABLED INTEGER, $COL_VIBRATE INTEGER, $COL_SOUND_TITLE TEXT, $COL_SOUND_URI TEXT, $COL_LABEL TEXT)")
insertInitialAlarms(db)
}
@ -45,11 +47,11 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
private fun insertInitialAlarms(db: SQLiteDatabase) {
val weekDays = MONDAY_BIT or TUESDAY_BIT or WEDNESDAY_BIT or THURSDAY_BIT or FRIDAY_BIT
val weekDaysAlarm = Alarm(0, 420, weekDays, false, false, "", "")
val weekDaysAlarm = context.createNewAlarm(420, weekDays)
insertAlarm(weekDaysAlarm, db)
val weekEnd = SATURDAY_BIT or SUNDAY_BIT
val weekEndAlarm = Alarm(0, 540, weekEnd, false, false, "", "")
val weekEndAlarm = context.createNewAlarm(540, weekEnd)
insertAlarm(weekEndAlarm, db)
}
@ -64,6 +66,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
put(COL_DAYS, alarm.days)
put(COL_IS_ENABLED, alarm.isEnabled)
put(COL_VIBRATE, alarm.vibrate)
put(COL_SOUND_TITLE, alarm.soundTitle)
put(COL_SOUND_URI, alarm.soundUri)
put(COL_LABEL, alarm.label)
}
@ -71,7 +74,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
fun getAlarms(): ArrayList<Alarm> {
val alarms = ArrayList<Alarm>()
val cols = arrayOf(COL_ID, COL_TIME_IN_MINUTES, COL_DAYS, COL_IS_ENABLED, COL_VIBRATE, COL_SOUND_URI, COL_LABEL)
val cols = arrayOf(COL_ID, COL_TIME_IN_MINUTES, COL_DAYS, COL_IS_ENABLED, COL_VIBRATE, COL_SOUND_TITLE, COL_SOUND_URI, COL_LABEL)
var cursor: Cursor? = null
try {
cursor = mDb.query(ALARMS_TABLE_NAME, cols, null, null, null, null, null)
@ -83,10 +86,11 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont
val days = cursor.getIntValue(COL_DAYS)
val isEnabled = cursor.getIntValue(COL_IS_ENABLED) == 1
val vibrate = cursor.getIntValue(COL_VIBRATE) == 1
val soundTitle = cursor.getStringValue(COL_SOUND_TITLE)
val soundUri = cursor.getStringValue(COL_SOUND_URI)
val label = cursor.getStringValue(COL_LABEL)
val alarm = Alarm(id, timeInMinutes, days, isEnabled, vibrate, soundUri, label)
val alarm = Alarm(id, timeInMinutes, days, isEnabled, vibrate, soundTitle, soundUri, label)
alarms.add(alarm)
} catch (e: Exception) {
continue

View File

@ -1,3 +1,4 @@
package com.simplemobiletools.clock.models
data class Alarm(val id: Int, var timeInMinutes: Int, var days: Int, var isEnabled: Boolean, var vibrate: Boolean, var soundUri: String, var label: String)
data class Alarm(val id: Int, var timeInMinutes: Int, var days: Int, var isEnabled: Boolean, var vibrate: Boolean, var soundTitle: String,
var soundUri: String, var label: String)