From ee177d37df85b982d6c528a7b79e3cd9ca9749d6 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Mon, 11 Nov 2019 07:42:14 -0800 Subject: Moved Native App from master repository --- NativeApp/Android/src/main/AndroidManifest.xml | 2 + .../android/common/DiligentApplicationBase.java | 40 ++++++ .../android/common/NativeActivityBase.java | 156 +++++++++++++++++++++ NativeApp/Android/src/main/res/layout/widgets.xml | 17 +++ .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 6332 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3611 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 9400 bytes .../src/main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 16510 bytes .../Android/src/main/res/values-v11/styles.xml | 11 ++ .../Android/src/main/res/values-v14/styles.xml | 12 ++ NativeApp/Android/src/main/res/values/strings.xml | 5 + NativeApp/Android/src/main/res/values/styles.xml | 20 +++ 12 files changed, 263 insertions(+) create mode 100644 NativeApp/Android/src/main/AndroidManifest.xml create mode 100644 NativeApp/Android/src/main/java/com/diligentengine/android/common/DiligentApplicationBase.java create mode 100644 NativeApp/Android/src/main/java/com/diligentengine/android/common/NativeActivityBase.java create mode 100644 NativeApp/Android/src/main/res/layout/widgets.xml create mode 100644 NativeApp/Android/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 NativeApp/Android/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 NativeApp/Android/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 NativeApp/Android/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 NativeApp/Android/src/main/res/values-v11/styles.xml create mode 100644 NativeApp/Android/src/main/res/values-v14/styles.xml create mode 100644 NativeApp/Android/src/main/res/values/strings.xml create mode 100644 NativeApp/Android/src/main/res/values/styles.xml (limited to 'NativeApp/Android/src') diff --git a/NativeApp/Android/src/main/AndroidManifest.xml b/NativeApp/Android/src/main/AndroidManifest.xml new file mode 100644 index 0000000..467f1c7 --- /dev/null +++ b/NativeApp/Android/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + diff --git a/NativeApp/Android/src/main/java/com/diligentengine/android/common/DiligentApplicationBase.java b/NativeApp/Android/src/main/java/com/diligentengine/android/common/DiligentApplicationBase.java new file mode 100644 index 0000000..2342e46 --- /dev/null +++ b/NativeApp/Android/src/main/java/com/diligentengine/android/common/DiligentApplicationBase.java @@ -0,0 +1,40 @@ +/* + * Copyright 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.diligentengine.android.common; + +import android.app.Application; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.content.pm.PackageManager.NameNotFoundException; +import android.util.Log; +import android.widget.Toast; + +public class DiligentApplicationBase extends Application { + public void onCreate(){ + Log.w("native-activity", "onCreate"); + + final PackageManager pm = getApplicationContext().getPackageManager(); + ApplicationInfo ai; + try { + ai = pm.getApplicationInfo( this.getPackageName(), 0); + } catch (final NameNotFoundException e) { + ai = null; + } + final String applicationName = (String) (ai != null ? pm.getApplicationLabel(ai) : "(unknown)"); + Toast.makeText(this, applicationName, Toast.LENGTH_SHORT).show(); + } +} diff --git a/NativeApp/Android/src/main/java/com/diligentengine/android/common/NativeActivityBase.java b/NativeApp/Android/src/main/java/com/diligentengine/android/common/NativeActivityBase.java new file mode 100644 index 0000000..396aa7a --- /dev/null +++ b/NativeApp/Android/src/main/java/com/diligentengine/android/common/NativeActivityBase.java @@ -0,0 +1,156 @@ +/* + * Copyright 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.diligentengine.android.common; + +import android.app.NativeActivity; +import android.os.Bundle; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup.MarginLayoutParams; +import android.view.WindowManager.LayoutParams; +import android.widget.LinearLayout; +import android.widget.PopupWindow; +import android.widget.TextView; +import android.util.Log; + +public class NativeActivityBase extends NativeActivity { + + static + { + try{ + System.loadLibrary("GraphicsEngineOpenGL"); + Log.i("native-activity", "Loaded GraphicsEngineOpenGL library.\n"); + } catch (UnsatisfiedLinkError e) { + Log.e("native-activity", "Failed to load GraphicsEngineOpenGL library.\n" + e); + } + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + //Hide toolbar + int SDK_INT = android.os.Build.VERSION.SDK_INT; + if(SDK_INT >= 19) + { + setImmersiveSticky(); + + View decorView = getWindow().getDecorView(); + decorView.setOnSystemUiVisibilityChangeListener + (new View.OnSystemUiVisibilityChangeListener() { + @Override + public void onSystemUiVisibilityChange(int visibility) { + setImmersiveSticky(); + } + }); + } + + } + + protected void onResume() { + super.onResume(); + + //Hide toolbar + int SDK_INT = android.os.Build.VERSION.SDK_INT; + if(SDK_INT >= 11 && SDK_INT < 14) + { + getWindow().getDecorView().setSystemUiVisibility(View.STATUS_BAR_HIDDEN); + } + else if(SDK_INT >= 14 && SDK_INT < 19) + { + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LOW_PROFILE); + } + else if(SDK_INT >= 19) + { + setImmersiveSticky(); + } + + } + // Our popup window, you will call it from your C/C++ code later + + void setImmersiveSticky() { + View decorView = getWindow().getDecorView(); + decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN + | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY + | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); + } + + NativeActivityBase _activity; + PopupWindow _popupWindow; + TextView _label; + + public void showUI() + { + if( _popupWindow != null ) + return; + + _activity = this; + + this.runOnUiThread(new Runnable() { + @Override + public void run() { + LayoutInflater layoutInflater + = (LayoutInflater)getBaseContext() + .getSystemService(LAYOUT_INFLATER_SERVICE); + View popupView = layoutInflater.inflate(R.layout.widgets, null); + _popupWindow = new PopupWindow( + popupView, + LayoutParams.WRAP_CONTENT, + LayoutParams.WRAP_CONTENT); + + LinearLayout mainLayout = new LinearLayout(_activity); + MarginLayoutParams params = new MarginLayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); + params.setMargins(0, 0, 0, 0); + _activity.setContentView(mainLayout, params); + + // Show our UI over NativeActivity window + _popupWindow.showAtLocation(mainLayout, Gravity.TOP | Gravity.LEFT, 10, 10); + _popupWindow.update(); + + _label = (TextView)popupView.findViewById(R.id.textViewFPS); + + }}); + } + + protected void onPause() + { + super.onPause(); + if (_popupWindow != null) { + _popupWindow.dismiss(); + _popupWindow = null; + } + } + + public void updateFPS(final float fFPS) + { + if( _label == null ) + return; + + _activity = this; + this.runOnUiThread(new Runnable() { + @Override + public void run() { + _label.setText(String.format("%2.2f FPS", fFPS)); + + }}); + } +} + + diff --git a/NativeApp/Android/src/main/res/layout/widgets.xml b/NativeApp/Android/src/main/res/layout/widgets.xml new file mode 100644 index 0000000..b6e86e6 --- /dev/null +++ b/NativeApp/Android/src/main/res/layout/widgets.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/NativeApp/Android/src/main/res/mipmap-hdpi/ic_launcher.png b/NativeApp/Android/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..5a261ea Binary files /dev/null and b/NativeApp/Android/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/NativeApp/Android/src/main/res/mipmap-mdpi/ic_launcher.png b/NativeApp/Android/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..74263d9 Binary files /dev/null and b/NativeApp/Android/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/NativeApp/Android/src/main/res/mipmap-xhdpi/ic_launcher.png b/NativeApp/Android/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..da6a331 Binary files /dev/null and b/NativeApp/Android/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/NativeApp/Android/src/main/res/mipmap-xxhdpi/ic_launcher.png b/NativeApp/Android/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..e587387 Binary files /dev/null and b/NativeApp/Android/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/NativeApp/Android/src/main/res/values-v11/styles.xml b/NativeApp/Android/src/main/res/values-v11/styles.xml new file mode 100644 index 0000000..541752f --- /dev/null +++ b/NativeApp/Android/src/main/res/values-v11/styles.xml @@ -0,0 +1,11 @@ + + + + + + \ No newline at end of file diff --git a/NativeApp/Android/src/main/res/values-v14/styles.xml b/NativeApp/Android/src/main/res/values-v14/styles.xml new file mode 100644 index 0000000..f20e015 --- /dev/null +++ b/NativeApp/Android/src/main/res/values-v14/styles.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/NativeApp/Android/src/main/res/values/strings.xml b/NativeApp/Android/src/main/res/values/strings.xml new file mode 100644 index 0000000..a06980b --- /dev/null +++ b/NativeApp/Android/src/main/res/values/strings.xml @@ -0,0 +1,5 @@ + + + 0.0 FPS + + \ No newline at end of file diff --git a/NativeApp/Android/src/main/res/values/styles.xml b/NativeApp/Android/src/main/res/values/styles.xml new file mode 100644 index 0000000..4a10ca4 --- /dev/null +++ b/NativeApp/Android/src/main/res/values/styles.xml @@ -0,0 +1,20 @@ + + + + + + + + + \ No newline at end of file -- cgit v1.2.3