1 /* This file is part of NIT ( http://www.nitlanguage.org ).
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
7 * http://www.apache.org/licenses/LICENSE-2.0
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
18 import android
.app
.Activity
;
19 import android
.os
.Bundle
;
20 import android
.view
.KeyEvent
;
23 * Entry point to Nit applications on Android, redirect most calls to Nit
25 public class NitActivity
extends Activity
{
27 // Nit activity associated to `this`
28 protected int nitActivity
= 0;
31 * Calls to Nit or to the C framework
35 System
.loadLibrary("main");
39 * Callbacks to Nit through C
41 protected native int nitRegisterActivity();
42 protected native void nitOnCreate(int activity
, Bundle savedInstanceState
);
43 protected native void nitOnStart(int activity
);
44 protected native void nitOnRestart(int activity
);
45 protected native void nitOnResume(int activity
);
46 protected native void nitOnPause(int activity
);
47 protected native void nitOnStop(int activity
);
48 protected native void nitOnDestroy(int activity
);
49 protected native void nitOnSaveInstanceState(int activity
, Bundle savedInstanceState
);
50 protected native void nitOnRestoreInstanceState(int activity
, Bundle savedInstanceState
);
51 protected native boolean nitOnBackPressed(int activity
);
52 protected native boolean nitOnKeyDown(int activity
, int keyCode
, KeyEvent event
);
53 protected native boolean nitOnKeyLongPress(int activity
, int keyCode
, KeyEvent event
);
54 protected native boolean nitOnKeyMultiple(int activity
, int keyCode
, int count
, KeyEvent event
);
55 protected native boolean nitOnKeyUp(int activity
, int keyCode
, KeyEvent event
);
58 * Implementation of OS callbacks
62 public void onCreate(Bundle savedInstanceState
) {
63 super.onCreate(savedInstanceState
);
65 nitActivity
= nitRegisterActivity();
67 nitOnCreate(nitActivity
, savedInstanceState
);
71 protected void onStart() {
73 nitOnStart(nitActivity
);
77 protected void onRestart() {
79 nitOnRestart(nitActivity
);
83 protected void onResume() {
85 nitOnResume(nitActivity
);
89 protected void onPause() {
91 nitOnPause(nitActivity
);
95 protected void onStop() {
97 nitOnStop(nitActivity
);
101 protected void onDestroy() {
103 nitOnDestroy(nitActivity
);
107 public void onSaveInstanceState(Bundle savedInstanceState
) {
108 super.onSaveInstanceState(savedInstanceState
);
109 nitOnSaveInstanceState(nitActivity
, savedInstanceState
);
113 public void onRestoreInstanceState(Bundle savedInstanceState
) {
114 super.onRestoreInstanceState(savedInstanceState
);
115 nitOnRestoreInstanceState(nitActivity
, savedInstanceState
);
119 public void onBackPressed() {
120 if (!nitOnBackPressed(nitActivity
))
121 super.onBackPressed();
125 public boolean onKeyDown(int keyCode
, KeyEvent event
) {
126 return nitOnKeyDown(nitActivity
, keyCode
, event
)
127 || super.onKeyDown(keyCode
, event
);
131 public boolean onKeyLongPress(int keyCode
, KeyEvent event
) {
132 return nitOnKeyLongPress(nitActivity
, keyCode
, event
)
133 || super.onKeyLongPress(keyCode
, event
);
137 public boolean onKeyMultiple(int keyCode
, int count
, KeyEvent event
) {
138 return nitOnKeyMultiple(nitActivity
, keyCode
, count
, event
)
139 || super.onKeyMultiple(keyCode
, count
, event
);
143 public boolean onKeyUp(int keyCode
, KeyEvent event
) {
144 return nitOnKeyUp(nitActivity
, keyCode
, event
)
145 || super.onKeyUp(keyCode
, event
);