use a different name for each variant's db when written to SD card so

they don't overwrite each other's.
This commit is contained in:
Eric House 2016-01-03 20:19:46 -08:00
parent b8c597ab98
commit 07dd7f2eed
4 changed files with 27 additions and 5 deletions

View file

@ -2,3 +2,4 @@ BasEnglish2to8.xwd
CollegeEng_2to8.xwd CollegeEng_2to8.xwd
Top5000.xwd Top5000.xwd
changes.html changes.html
gitvers.txt

View file

@ -124,3 +124,4 @@ RelayInviteDelegate.java
XWConnAddrPreference.java XWConnAddrPreference.java
XWDevIDPreference.java XWDevIDPreference.java
XWExpListAdapter.java XWExpListAdapter.java
RequestCode.java

View file

@ -1774,10 +1774,15 @@ public class DBUtils {
public static boolean gameDBExists( Context context ) public static boolean gameDBExists( Context context )
{ {
String name = DBHelper.getDBName(); String varName = getVariantDBName();
File sdcardDB = new File( Environment.getExternalStorageDirectory(), boolean exists = new File( Environment.getExternalStorageDirectory(),
name ); varName ).exists();
return sdcardDB.exists(); if ( !exists ) {
// try the old one
exists = new File( Environment.getExternalStorageDirectory(),
DBHelper.getDBName() ).exists();
}
return exists;
} }
public static String[] getColumns( SQLiteDatabase db, String name ) public static String[] getColumns( SQLiteDatabase db, String name )
@ -2128,8 +2133,16 @@ public class DBUtils {
{ {
String name = DBHelper.getDBName(); String name = DBHelper.getDBName();
File gamesDB = context.getDatabasePath( name ); File gamesDB = context.getDatabasePath( name );
// Use the variant name EXCEPT where we're copying from sdCard and
// only the older name exists.
File sdcardDB = new File( Environment.getExternalStorageDirectory(), File sdcardDB = new File( Environment.getExternalStorageDirectory(),
name ); getVariantDBName() );
if ( !toSDCard && !sdcardDB.exists() ) {
sdcardDB = new File( Environment.getExternalStorageDirectory(),
name );
}
try { try {
File srcDB = toSDCard? gamesDB : sdcardDB; File srcDB = toSDCard? gamesDB : sdcardDB;
if ( srcDB.exists() ) { if ( srcDB.exists() ) {
@ -2144,6 +2157,12 @@ public class DBUtils {
} }
} }
private static String getVariantDBName()
{
return String.format( "%s_%s", DBHelper.getDBName(),
BuildConstants.VARIANT );
}
// Chat is independent of the GameLock mechanism because it's not // Chat is independent of the GameLock mechanism because it's not
// touching the SNAPSHOT column. // touching the SNAPSHOT column.
private static void saveChatHistory( Context context, long rowid, private static void saveChatHistory( Context context, long rowid,

View file

@ -114,6 +114,7 @@ class BuildConstants {
public static final boolean THUMBNAIL_SUPPORTED = $THUMBNAIL_SUPPORTED; public static final boolean THUMBNAIL_SUPPORTED = $THUMBNAIL_SUPPORTED;
public static final long BUILD_STAMP = $(date +'%s'); public static final long BUILD_STAMP = $(date +'%s');
public static final String DBG_TAG = "$DBG_TAG"; public static final String DBG_TAG = "$DBG_TAG";
public static final String VARIANT = "$VARIANT";
} }
EOF EOF