Skip to content

Commit fdcf5e7

Browse files
author
bob
committed
added sdl2 bootstrap meta and presplash
1 parent cc50d62 commit fdcf5e7

File tree

3 files changed

+55
-0
lines changed

3 files changed

+55
-0
lines changed

pythonforandroid/bootstraps/sdl2/build/build.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,10 @@ def make_package(args):
249249
default_icon = 'templates/kivy-icon.png'
250250
shutil.copy(args.icon or default_icon, 'res/drawable/icon.png')
251251

252+
default_presplash = 'templates/kivy-presplash.jpg'
253+
shutil.copy(args.presplash or default_presplash,
254+
'res/drawable/presplash.jpg')
255+
252256
versioned_name = (args.name.replace(' ', '').replace('\'', '') +
253257
'-' + args.version)
254258

@@ -324,6 +328,11 @@ def parse_args(args=None):
324328
help='A png file to use as the icon for the application.')
325329
ap.add_argument('--permission', dest='permissions', action='append',
326330
help='The permissions to give this app.')
331+
ap.add_argument('--meta-data', dest='meta_data', action='append',
332+
help='Custom key=value to add in application metadata')
333+
ap.add_argument('--presplash', dest='presplash',
334+
help=('A jpeg file to use as a screen while the '
335+
'application is loading.'))
327336

328337
if args is None:
329338
args = sys.argv[1:]
@@ -333,6 +342,9 @@ def parse_args(args=None):
333342
if args.permissions is None:
334343
args.permissions = []
335344

345+
if args.meta_data is None:
346+
args.meta_data = []
347+
336348
make_package(args)
337349

338350
if __name__ == "__main__":

pythonforandroid/bootstraps/sdl2/build/src/org/kivy/android/PythonActivity.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,35 @@
77
import java.io.FileWriter;
88
import java.io.File;
99

10+
import android.view.ViewGroup;
11+
import android.view.SurfaceView;
1012
import android.app.Activity;
1113
import android.util.Log;
1214
import android.widget.Toast;
1315
import android.os.Bundle;
16+
import android.os.PowerManager;
17+
import android.graphics.PixelFormat;
18+
import android.view.SurfaceHolder;
19+
import android.content.Context;
20+
import android.content.pm.PackageManager;
21+
import android.content.pm.ApplicationInfo;
1422

1523
import org.libsdl.app.SDLActivity;
1624

1725
import org.renpy.android.ResourceManager;
1826
import org.renpy.android.AssetExtract;
1927

28+
2029
public class PythonActivity extends SDLActivity {
2130
private static final String TAG = "PythonActivity";
2231

2332
public static PythonActivity mActivity = null;
2433

2534
private ResourceManager resourceManager;
35+
36+
// Access to our meta-data
37+
private ApplicationInfo ai;
38+
private PowerManager.WakeLock wakeLock;
2639

2740
@Override
2841
protected void onCreate(Bundle savedInstanceState) {
@@ -48,6 +61,24 @@ protected void onCreate(Bundle savedInstanceState) {
4861

4962

5063
// nativeSetEnv("ANDROID_ARGUMENT", getFilesDir());
64+
65+
try {
66+
ai = act.getPackageManager().getApplicationInfo(
67+
act.getPackageName(), PackageManager.GET_META_DATA);
68+
PowerManager pm = (PowerManager) mActivity.getSystemService(Context.POWER_SERVICE);
69+
wakeLock = null;
70+
if ( (Integer)ai.metaData.get("wakelock") == 1 ) {
71+
wakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "Screen On");
72+
}
73+
if ( ai.metaData.getInt("surface.transparent") != 0 ) {
74+
Log.v(TAG, "Surface will be transparent.");
75+
mSurface.setZOrderOnTop(true);
76+
mSurface.getHolder().setFormat(PixelFormat.TRANSPARENT);
77+
} else {
78+
Log.i(TAG, "Surface will NOT be transparent");
79+
}
80+
} catch (PackageManager.NameNotFoundException e) {
81+
}
5182
}
5283

5384
// This is just overrides the normal SDLActivity, which just loads
@@ -169,6 +200,13 @@ public void unpackData(final String resource, File target) {
169200
Log.w("python", e);
170201
}
171202
}
203+
}
204+
205+
public static ViewGroup getLayout() {
206+
return mLayout;
207+
}
172208

209+
public static SurfaceView getSurface() {
210+
return mSurface;
173211
}
174212
}

pythonforandroid/bootstraps/sdl2/build/templates/AndroidManifest.xml.tmpl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@
3838
android:allowBackup="true"
3939
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
4040
android:hardwareAccelerated="true" >
41+
42+
{% for m in args.meta_data %}
43+
<meta-data android:name="{{ m.split('=', 1)[0] }}" android:value="{{ m.split('=', 1)[-1] }}"/>{% endfor %}
44+
<meta-data android:name="wakelock" android:value="{% if args.wakelock %}1{% else %}0{% endif %}"/>
45+
4146
<activity android:name="org.kivy.android.PythonActivity"
4247
android:label="@string/app_name"
4348
android:configChanges="keyboardHidden|orientation"

0 commit comments

Comments
 (0)