'Database hasn't been copied to read/write area
If FirstTime = True Then
If File.Exists(File.DirInternal,"themsc.db") = False Then
'ToastMessageShow("Database hasn't been copied to read/write area",True)
File.Copy(File.DirAssets,"themsc.db",File.DirInternal,"themsc.db")
'Database is in the read/write area, check the db_ver matches the app_ver
If VersionLabel.Text <> db_ver Then
ListViewSaveFavs.Initialize("ListViewSaveFavs")
Dim number_of_favs As Int
number_of_favs = 0
If SQL1.IsInitialized = False Then
SQL1.Initialize(File.DirInternal,"themsc.db", True)
If p.SdkVersion >= 26 Then
Dim rr As Reflector
rr.Target = SQL1
rr.Target = rr.GetField("db")
rr.RunMethod("disableWriteAheadLogging")
File.Delete(File.DirInternal,"themsc.db-wal")
File.Delete(File.DirInternal,"themsc.db-shm")
End If
End If
'DB version is greater than the app version, we need to store favourites, update the DB and restore favourites
Cursor = SQL1.ExecQuery("SELECT fk_event_id FROM favourite")
For i=0 To Cursor.RowCount-1
Cursor.Position=i
ListViewSaveFavs.AddSingleLine(Cursor.GetInt("fk_event_id"))
' ListViewSaveFavs.Tag(Cursor.GetInt("_id")
number_of_favs = number_of_favs+1
Next
Cursor.Close
'remove the current database file
If i > 0 Then
SQL1.ExecNonQuery("DELETE FROM favourite")
End If
File.Delete(File.DirInternal,"themsc.db")
'put the new database file in place
File.Copy(File.DirAssets,"themsc.db",File.DirInternal,"themsc.db")
SQL1.Initialize(File.DirInternal, "themsc.db", True)
If p.SdkVersion >= 26 Then
Dim rr As Reflector
rr.Target = SQL1
rr.Target = rr.GetField("db")
rr.RunMethod("disableWriteAheadLogging")
File.Delete(File.DirInternal,"themsc.db-wal")
File.Delete(File.DirInternal,"themsc.db-shm")
End If
'put the favourites back in the database
SQL1.BeginTransaction
Try
For i=0 To number_of_favs-1
SQL1.ExecNonQuery2("INSERT INTO favourite VALUES (?,?)", Array As Object(i+1, ListViewSaveFavs.GetItem(i)))
Next
SQL1.TransactionSuccessful
Catch
Log(LastException.Message)
End Try
SQL1.EndTransaction
SQL1.Close
End If
Else
'Database is in the read/write area, check the db_ver matches the app_ver
'ToastMessageShow("Database is in the read/write area",True)
If VersionLabel.Text <> db_ver Then
ListViewSaveFavs.Initialize("ListViewSaveFavs")
Dim number_of_favs As Int
number_of_favs = 0
If SQL1.IsInitialized = False Then
SQL1.Initialize(File.DirInternal,"themsc.db", True)
If p.SdkVersion >= 26 Then
Dim rr As Reflector
rr.Target = SQL1
rr.Target = rr.GetField("db")
rr.RunMethod("disableWriteAheadLogging")
File.Delete(File.DirInternal,"themsc.db-wal")
File.Delete(File.DirInternal,"themsc.db-shm")
End If
End If
'DB version is greater than the app version, we need to store favourites, update the DB and restore favourites
Cursor = SQL1.ExecQuery("SELECT fk_event_id FROM favourite")
For i=0 To Cursor.RowCount-1
Cursor.Position=i
ListViewSaveFavs.AddSingleLine(Cursor.GetInt("fk_event_id"))
number_of_favs = number_of_favs+1
Next
Cursor.Close
'remove the current database file
If i > 0 Then
SQL1.ExecNonQuery("DELETE FROM favourite")
End If
File.Delete(File.DirInternal,"themsc.db")
'put the new database file in place
File.Copy(File.DirAssets,"themsc.db",File.DirInternal,"themsc.db")
SQL1.Initialize(File.DirInternal, "themsc.db", True)
If p.SdkVersion >= 26 Then
Dim rr As Reflector
rr.Target = SQL1
rr.Target = rr.GetField("db")
rr.RunMethod("disableWriteAheadLogging")
File.Delete(File.DirInternal,"themsc.db-wal")
File.Delete(File.DirInternal,"themsc.db-shm")
End If
'put the favourites back in the database
SQL1.BeginTransaction
Try
For i=0 To number_of_favs-1
SQL1.ExecNonQuery2("INSERT INTO favourite VALUES (?,?)", Array As Object(i+1, ListViewSaveFavs.GetItem(i)))
Next
SQL1.TransactionSuccessful
Catch
Log(LastException.Message)
End Try
SQL1.EndTransaction
SQL1.Close
End If
End If
End If
If SQL1.IsInitialized = False Then
SQL1.Initialize(File.DirInternal,"themsc.db", True)
If p.SdkVersion >= 26 Then
Dim rr As Reflector
rr.Target = SQL1
rr.Target = rr.GetField("db")
rr.RunMethod("disableWriteAheadLogging")
File.Delete(File.DirInternal,"themsc.db-wal")
File.Delete(File.DirInternal,"themsc.db-shm")
End If
End If