Converted optional downloads to default/non-default downloads, warn deveoper about files bigger than 1 Mb inside .apk
This commit is contained in:
@@ -54,9 +54,11 @@ fi
|
||||
|
||||
if [ -z "$AppDataDownloadUrl" -o -z "$AUTO" ]; then
|
||||
echo -n "\nSpecify path to download application data in zip archive in the form 'Description|URL|MirrorURL|...'"
|
||||
echo -n "\nYou may specify additional paths to optional game content delimited by newlines (empty line to finish)"
|
||||
echo -n "\nIf the URL in in the form ':dir/file.dat:http://URL/' it will be downloaded as-is to game dir and not unzipped"
|
||||
echo -n "\nIf the URL does not contain 'http://' it is treated as file in 'project/jni/application/src/AndroidData' dir\n\n"
|
||||
echo -n "\nYou may specify additional paths to additional downloads delimited by newlines (empty line to finish)"
|
||||
echo -n "\nIf you'll start Description with '!' symbol it will be enabled by default,\nother downloads should be selected by user from config menu"
|
||||
echo -n "\nIf the URL in in the form ':dir/file.dat:http://URL/' it will be downloaded as-is to the application dir and not unzipped"
|
||||
echo -n "\nIf the URL does not contain 'http://' it is treated as file from 'project/jni/application/src/AndroidData' dir -\nthese files are put inside .apk package by build system\n"
|
||||
echo -n "\nAlso beware of 'https://' URLs, many Android devices do not have trust certificates and will fail to connect to SF.net over HTTPS\n"
|
||||
echo -n "`echo $AppDataDownloadUrl | tr '^' '\\n'`"
|
||||
echo
|
||||
AppDataDownloadUrl1=""
|
||||
@@ -580,6 +582,12 @@ mkdir -p project/assets
|
||||
rm -f project/assets/*
|
||||
if [ -d "project/jni/application/src/AndroidData" ] ; then
|
||||
echo Copying asset files
|
||||
for F in project/jni/application/src/AndroidData/*; do
|
||||
if [ `cat $F | wc -c` -gt 1048576 ] ; then
|
||||
echo "Error: the file $F is bigger than 1048576 bytes - some Android devices will fail to extract such file\nPlease split your data into several small files, or use HTTP download method"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
cp project/jni/application/src/AndroidData/* project/assets/
|
||||
fi
|
||||
|
||||
|
||||
@@ -45,11 +45,13 @@ class Settings
|
||||
|
||||
static boolean settingsLoaded = false;
|
||||
static boolean settingsChanged = false;
|
||||
static final int SETTINGS_FILE_VERSION = 3;
|
||||
|
||||
static void Save(final MainActivity p)
|
||||
{
|
||||
try {
|
||||
ObjectOutputStream out = new ObjectOutputStream(p.openFileOutput( SettingsFileName, p.MODE_WORLD_READABLE ));
|
||||
out.writeInt(SETTINGS_FILE_VERSION);
|
||||
out.writeBoolean(Globals.DownloadToSdcard);
|
||||
out.writeBoolean(Globals.PhoneHasArrowKeys);
|
||||
out.writeBoolean(Globals.PhoneHasTrackball);
|
||||
@@ -60,9 +62,6 @@ class Settings
|
||||
out.writeInt(Globals.AccelerometerCenterPos);
|
||||
out.writeInt(Globals.TrackballDampening);
|
||||
out.writeInt(Globals.AudioBufferConfig);
|
||||
out.writeInt(Globals.OptionalDataDownload.length);
|
||||
for(int i = 0; i < Globals.OptionalDataDownload.length; i++)
|
||||
out.writeBoolean(Globals.OptionalDataDownload[i]);
|
||||
out.writeInt(Globals.TouchscreenKeyboardTheme);
|
||||
out.writeInt(Globals.RightClickMethod);
|
||||
out.writeBoolean(Globals.ShowScreenUnderFinger);
|
||||
@@ -118,6 +117,10 @@ class Settings
|
||||
out.writeInt(Globals.RelativeMouseMovementSpeed);
|
||||
out.writeInt(Globals.RelativeMouseMovementAccel);
|
||||
|
||||
out.writeInt(Globals.OptionalDataDownload.length);
|
||||
for(int i = 0; i < Globals.OptionalDataDownload.length; i++)
|
||||
out.writeBoolean(Globals.OptionalDataDownload[i]);
|
||||
|
||||
out.close();
|
||||
settingsLoaded = true;
|
||||
|
||||
@@ -170,6 +173,8 @@ class Settings
|
||||
|
||||
try {
|
||||
ObjectInputStream settingsFile = new ObjectInputStream(new FileInputStream( p.getFilesDir().getAbsolutePath() + "/" + SettingsFileName ));
|
||||
if( settingsFile.readInt() != SETTINGS_FILE_VERSION )
|
||||
throw new IOException();
|
||||
Globals.DownloadToSdcard = settingsFile.readBoolean();
|
||||
Globals.PhoneHasArrowKeys = settingsFile.readBoolean();
|
||||
Globals.PhoneHasTrackball = settingsFile.readBoolean();
|
||||
@@ -180,9 +185,6 @@ class Settings
|
||||
Globals.AccelerometerCenterPos = settingsFile.readInt();
|
||||
Globals.TrackballDampening = settingsFile.readInt();
|
||||
Globals.AudioBufferConfig = settingsFile.readInt();
|
||||
Globals.OptionalDataDownload = new boolean[settingsFile.readInt()];
|
||||
for(int i = 0; i < Globals.OptionalDataDownload.length; i++)
|
||||
Globals.OptionalDataDownload[i] = settingsFile.readBoolean();
|
||||
Globals.TouchscreenKeyboardTheme = settingsFile.readInt();
|
||||
Globals.RightClickMethod = settingsFile.readInt();
|
||||
Globals.ShowScreenUnderFinger = settingsFile.readBoolean();
|
||||
@@ -247,6 +249,10 @@ class Settings
|
||||
Globals.RelativeMouseMovement = settingsFile.readBoolean();
|
||||
Globals.RelativeMouseMovementSpeed = settingsFile.readInt();
|
||||
Globals.RelativeMouseMovementAccel = settingsFile.readInt();
|
||||
|
||||
Globals.OptionalDataDownload = new boolean[settingsFile.readInt()];
|
||||
for(int i = 0; i < Globals.OptionalDataDownload.length; i++)
|
||||
Globals.OptionalDataDownload[i] = settingsFile.readBoolean();
|
||||
|
||||
settingsLoaded = true;
|
||||
|
||||
@@ -295,8 +301,21 @@ class Settings
|
||||
settingsChanged = true;
|
||||
|
||||
if( Globals.OptionalDataDownload == null )
|
||||
Globals.OptionalDataDownload = new boolean[Globals.DataDownloadUrl.split("\\^").length];
|
||||
Globals.OptionalDataDownload[0] = true;
|
||||
{
|
||||
String downloads[] = Globals.DataDownloadUrl.split("\\^");
|
||||
Globals.OptionalDataDownload = new boolean[downloads.length];
|
||||
boolean oldFormat = true;
|
||||
for( int i = 0; i < downloads.length; i++ )
|
||||
{
|
||||
if( downloads[i].indexOf("!") == 0 )
|
||||
{
|
||||
Globals.OptionalDataDownload[i] = true;
|
||||
oldFormat = false;
|
||||
}
|
||||
}
|
||||
if( oldFormat )
|
||||
Globals.OptionalDataDownload[0] = true;
|
||||
}
|
||||
|
||||
showConfigMainMenu(p);
|
||||
}
|
||||
@@ -308,8 +327,7 @@ class Settings
|
||||
|
||||
items.add(p.getResources().getString(R.string.storage_question));
|
||||
|
||||
if( Globals.DataDownloadUrl.split("\\^").length > 1 )
|
||||
items.add(p.getResources().getString(R.string.optional_downloads));
|
||||
items.add(p.getResources().getString(R.string.downloads));
|
||||
|
||||
items.add(p.getResources().getString(R.string.controls_additional));
|
||||
|
||||
@@ -339,7 +357,7 @@ class Settings
|
||||
builder.setTitle(p.getResources().getString(R.string.device_config));
|
||||
builder.setSingleChoiceItems(items.toArray(new CharSequence[0]), MainMenuLastSelected, new DialogInterface.OnClickListener()
|
||||
{
|
||||
public void onClick(DialogInterface dialog, int item)
|
||||
public void onClick(DialogInterface dialog, int item)
|
||||
{
|
||||
MainMenuLastSelected = item;
|
||||
dialog.dismiss();
|
||||
@@ -349,11 +367,8 @@ class Settings
|
||||
showDownloadConfig(p);
|
||||
selected++;
|
||||
|
||||
if( Globals.DataDownloadUrl.split("\\^").length > 1 ) {
|
||||
if( item == selected )
|
||||
showOptionalDownloadConfig(p);
|
||||
} else
|
||||
item++;
|
||||
if( item == selected )
|
||||
showOptionalDownloadConfig(p);
|
||||
selected++;
|
||||
|
||||
if( item == selected )
|
||||
@@ -583,8 +598,7 @@ class Settings
|
||||
p.getResources().getString(R.string.storage_sd, freeSdcard),
|
||||
p.getResources().getString(R.string.storage_custom) };
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(p);
|
||||
String [] downloadFiles = Globals.DataDownloadUrl.split("\\^");
|
||||
builder.setTitle(downloadFiles[0].split("[|]")[0]);
|
||||
builder.setTitle(p.getResources().getString(R.string.storage_question));
|
||||
builder.setSingleChoiceItems(items, Globals.DownloadToSdcard ? 1 : 0, new DialogInterface.OnClickListener()
|
||||
{
|
||||
public void onClick(DialogInterface dialog, int item)
|
||||
@@ -682,33 +696,39 @@ class Settings
|
||||
static void showOptionalDownloadConfig(final MainActivity p) {
|
||||
|
||||
String [] downloadFiles = Globals.DataDownloadUrl.split("\\^");
|
||||
if(downloadFiles.length <= 1)
|
||||
{
|
||||
Globals.OptionalDataDownload = new boolean[1];
|
||||
Globals.OptionalDataDownload[0] = true;
|
||||
showConfigMainMenu(p);
|
||||
return;
|
||||
}
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(p);
|
||||
builder.setTitle(p.getResources().getString(R.string.optional_downloads));
|
||||
builder.setTitle(p.getResources().getString(R.string.downloads));
|
||||
|
||||
CharSequence[] items = new CharSequence[ downloadFiles.length - 1 ];
|
||||
for(int i = 1; i < downloadFiles.length; i++ )
|
||||
items[i-1] = new String(downloadFiles[i].split("[|]")[0]);
|
||||
CharSequence[] items = new CharSequence[downloadFiles.length];
|
||||
for(int i = 0; i < downloadFiles.length; i++ )
|
||||
{
|
||||
items[i] = new String(downloadFiles[i].split("[|]")[0]);
|
||||
if( items[i].toString().indexOf("!") == 0 )
|
||||
items[i] = items[i].toString().substring(1);
|
||||
}
|
||||
|
||||
if( Globals.OptionalDataDownload == null || Globals.OptionalDataDownload.length != items.length + 1 )
|
||||
if( Globals.OptionalDataDownload == null || Globals.OptionalDataDownload.length != items.length )
|
||||
{
|
||||
Globals.OptionalDataDownload = new boolean[downloadFiles.length];
|
||||
Globals.OptionalDataDownload[0] = true;
|
||||
boolean defaults[] = new boolean[downloadFiles.length-1];
|
||||
for(int i=1; i<downloadFiles.length; i++)
|
||||
defaults[i-1] = Globals.OptionalDataDownload[i];
|
||||
boolean oldFormat = true;
|
||||
for( int i = 0; i < downloadFiles.length; i++ )
|
||||
{
|
||||
if( downloadFiles[i].indexOf("!") == 0 )
|
||||
{
|
||||
Globals.OptionalDataDownload[i] = true;
|
||||
oldFormat = false;
|
||||
}
|
||||
}
|
||||
if( oldFormat )
|
||||
Globals.OptionalDataDownload[0] = true;
|
||||
}
|
||||
|
||||
builder.setMultiChoiceItems(items, defaults, new DialogInterface.OnMultiChoiceClickListener()
|
||||
builder.setMultiChoiceItems(items, Globals.OptionalDataDownload, new DialogInterface.OnMultiChoiceClickListener()
|
||||
{
|
||||
public void onClick(DialogInterface dialog, int item, boolean isChecked)
|
||||
{
|
||||
Globals.OptionalDataDownload[item+1] = isChecked;
|
||||
Globals.OptionalDataDownload[item] = isChecked;
|
||||
}
|
||||
});
|
||||
builder.setPositiveButton(p.getResources().getString(R.string.ok), new DialogInterface.OnClickListener()
|
||||
|
||||
@@ -124,4 +124,5 @@
|
||||
<string name="pointandclick_relative">Relative Bewegung der Maus (Laptop-Modus)</string>
|
||||
<string name="pointandclick_relative_speed">Relative Maus Bewegungsgeschwindigkeit</string>
|
||||
<string name="pointandclick_relative_accel">Relative Bewegung der Maus Beschleunigung</string>
|
||||
<string name="downloads">Downloads</string>
|
||||
</resources>
|
||||
|
||||
@@ -124,4 +124,5 @@
|
||||
<string name="pointandclick_relative">Suhteellinen hiiren liikkeet (kannettavan tietokoneen tilassa)</string>
|
||||
<string name="pointandclick_relative_speed">Suhteellinen hiiren liikkeen nopeus</string>
|
||||
<string name="pointandclick_relative_accel">Suhteellinen hiiren liikkeen kiihtyvyys</string>
|
||||
<string name="downloads">Downloads</string>
|
||||
</resources>
|
||||
|
||||
@@ -127,4 +127,5 @@
|
||||
<string name="pointandclick_relative">mouvement de la souris relative (mode portable)</string>
|
||||
<string name="pointandclick_relative_speed">Relative vitesse de déplacement de la souris</string>
|
||||
<string name="pointandclick_relative_accel">Relative accélération du mouvement de la souris</string>
|
||||
<string name="downloads">Téléchargements</string>
|
||||
</resources>
|
||||
|
||||
@@ -117,4 +117,5 @@
|
||||
<string name="pointandclick_relative">Относительное движение мыши (режим ноутбука)</string>
|
||||
<string name="pointandclick_relative_speed">Скорость движения мыши</string>
|
||||
<string name="pointandclick_relative_accel">Ускорение движения мыши</string>
|
||||
<string name="downloads">Загрузки</string>
|
||||
</resources>
|
||||
|
||||
@@ -117,4 +117,5 @@
|
||||
<string name="pointandclick_relative">Відносний рух миші (режим ноутбука)</string>
|
||||
<string name="pointandclick_relative_speed">Швидкість руху миші</string>
|
||||
<string name="pointandclick_relative_accel">Прискорення руху миші</string>
|
||||
<string name="downloads">Завантаження</string>
|
||||
</resources>
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<string name="storage_commandline">Specify command line parameters</string>
|
||||
<string name="storage_question">Where to download application data</string>
|
||||
<string name="optional_downloads">Optional downloads</string>
|
||||
<string name="downloads">Downloads</string>
|
||||
<string name="ok">OK</string>
|
||||
|
||||
<string name="controls_arrows">Arrows / joystick / dpad</string>
|
||||
|
||||
@@ -5,7 +5,7 @@ AppName="Alien Blaster"
|
||||
AppFullName=de.schwardtnet.alienblaster
|
||||
ScreenOrientation=h
|
||||
InhibitSuspend=n
|
||||
AppDataDownloadUrl="Data size is 2 Mb|alienblaster110_data.zip|http://sites.google.com/site/xpelyax/Home/alienblaster110_data.zip?attredirects=0&d=1|http://sitesproxy.goapk.com/site/xpelyax/Home/alienblaster110_data.zip"
|
||||
AppDataDownloadUrl="!Game data|alienblaster110_data1.zip^!Game data|alienblaster110_data2.zip^!Game data|alienblaster110_data3.zip"
|
||||
SdlVideoResize=y
|
||||
SdlVideoResizeKeepAspect=n
|
||||
NeedDepthBuffer=n
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
||||
fheroes2
|
||||
alienblaster
|
||||
Reference in New Issue
Block a user