From 4944651031adad60b7c38335c389b11c88e68144 Mon Sep 17 00:00:00 2001 From: vinsentli Date: Wed, 27 Nov 2024 19:11:56 +0800 Subject: [PATCH 01/12] android : copy assets file to '/data/data/com.facebook.igl.shell/files/' directory. --- .../facebook/igl/sample/SampleActivity.java | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/build/android/app/src/main/java/com/facebook/igl/sample/SampleActivity.java b/build/android/app/src/main/java/com/facebook/igl/sample/SampleActivity.java index 822ed8fede..2ff8ff5279 100644 --- a/build/android/app/src/main/java/com/facebook/igl/sample/SampleActivity.java +++ b/build/android/app/src/main/java/com/facebook/igl/sample/SampleActivity.java @@ -10,8 +10,11 @@ package com.facebook.igl.shell; import android.app.Activity; +import android.content.Context; +import android.content.SharedPreferences; import android.graphics.Color; import android.os.Bundle; +import android.util.Log; import android.view.Gravity; import android.view.SurfaceView; import android.view.View; @@ -19,12 +22,18 @@ import android.widget.LinearLayout; import android.widget.TextView; +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; + public class SampleActivity extends Activity implements View.OnClickListener { // UI LinearLayout mMainView; LinearLayout mTabBar; FrameLayout mBackendViewFrame; + private static String TAG = "SampleActivity"; + // initialize runtime backend configuration / context private int curConfig = 0; private SampleLib.RenderSessionConfig[] mConfigs; @@ -89,6 +98,16 @@ protected void onCreate(Bundle icicle) { mMainView.addView(mTabBar); mMainView.addView(mBackendViewFrame); setContentView(mMainView); + + boolean hasCopy = getSharedPreferences("data", Context.MODE_PRIVATE).getBoolean("HasCopyAssets", false); + + if (!hasCopy) { + copyAssetsDirToSDCard(this, "", getFilesDir().getAbsolutePath()); + + SharedPreferences.Editor editor = getSharedPreferences("data", Context.MODE_PRIVATE).edit(); + editor.putBoolean("HasCopyAssets",true); + editor.commit(); + } } @Override @@ -136,4 +155,47 @@ protected void onResume() { ((SampleView) mTabViews[curConfig]).onResume(); } } + + public static void copyAssetsDirToSDCard(Context context, String assetsDirName, String sdCardPath) { + Log.d(TAG, "copyAssetsDirToSDCard() called with: context = [" + context + "], assetsDirName = [" + assetsDirName + "], sdCardPath = [" + sdCardPath + "]"); + try { + String list[] = context.getAssets().list(assetsDirName); + if (list.length == 0) { + InputStream inputStream = context.getAssets().open(assetsDirName); + byte[] mByte = new byte[1024]; + int bt = 0; + File file = new File(sdCardPath + File.separator + + assetsDirName); + if (!file.exists()) { + file.createNewFile(); + } else { + return; + } + FileOutputStream fos = new FileOutputStream(file); + while ((bt = inputStream.read(mByte)) != -1) { + fos.write(mByte, 0, bt); + } + fos.flush(); + inputStream.close(); + fos.close(); + } else { + String subDirName = assetsDirName; + if (assetsDirName.contains("/")) { + subDirName = assetsDirName.substring(assetsDirName.lastIndexOf('/') + 1); + } + sdCardPath = sdCardPath + File.separator + subDirName; + File file = new File(sdCardPath); + if (!file.exists()) + file.mkdirs(); + for (String s : list) { + String fileName = assetsDirName.length() > 0 ? assetsDirName + File.separator + s : s; + copyAssetsDirToSDCard(context, fileName , sdCardPath); + } + } + } catch ( + Exception e) { + e.printStackTrace(); + } + } + } From 23e12c19109724169f210fd3b9f764abc0fc9142 Mon Sep 17 00:00:00 2001 From: vinsentli Date: Sun, 22 Dec 2024 21:07:05 +0800 Subject: [PATCH 02/12] Revert SampleActivity --- .../facebook/igl/sample/SampleActivity.java | 62 ------------------- 1 file changed, 62 deletions(-) diff --git a/build/android/app/src/main/java/com/facebook/igl/sample/SampleActivity.java b/build/android/app/src/main/java/com/facebook/igl/sample/SampleActivity.java index 2ff8ff5279..822ed8fede 100644 --- a/build/android/app/src/main/java/com/facebook/igl/sample/SampleActivity.java +++ b/build/android/app/src/main/java/com/facebook/igl/sample/SampleActivity.java @@ -10,11 +10,8 @@ package com.facebook.igl.shell; import android.app.Activity; -import android.content.Context; -import android.content.SharedPreferences; import android.graphics.Color; import android.os.Bundle; -import android.util.Log; import android.view.Gravity; import android.view.SurfaceView; import android.view.View; @@ -22,18 +19,12 @@ import android.widget.LinearLayout; import android.widget.TextView; -import java.io.File; -import java.io.FileOutputStream; -import java.io.InputStream; - public class SampleActivity extends Activity implements View.OnClickListener { // UI LinearLayout mMainView; LinearLayout mTabBar; FrameLayout mBackendViewFrame; - private static String TAG = "SampleActivity"; - // initialize runtime backend configuration / context private int curConfig = 0; private SampleLib.RenderSessionConfig[] mConfigs; @@ -98,16 +89,6 @@ protected void onCreate(Bundle icicle) { mMainView.addView(mTabBar); mMainView.addView(mBackendViewFrame); setContentView(mMainView); - - boolean hasCopy = getSharedPreferences("data", Context.MODE_PRIVATE).getBoolean("HasCopyAssets", false); - - if (!hasCopy) { - copyAssetsDirToSDCard(this, "", getFilesDir().getAbsolutePath()); - - SharedPreferences.Editor editor = getSharedPreferences("data", Context.MODE_PRIVATE).edit(); - editor.putBoolean("HasCopyAssets",true); - editor.commit(); - } } @Override @@ -155,47 +136,4 @@ protected void onResume() { ((SampleView) mTabViews[curConfig]).onResume(); } } - - public static void copyAssetsDirToSDCard(Context context, String assetsDirName, String sdCardPath) { - Log.d(TAG, "copyAssetsDirToSDCard() called with: context = [" + context + "], assetsDirName = [" + assetsDirName + "], sdCardPath = [" + sdCardPath + "]"); - try { - String list[] = context.getAssets().list(assetsDirName); - if (list.length == 0) { - InputStream inputStream = context.getAssets().open(assetsDirName); - byte[] mByte = new byte[1024]; - int bt = 0; - File file = new File(sdCardPath + File.separator - + assetsDirName); - if (!file.exists()) { - file.createNewFile(); - } else { - return; - } - FileOutputStream fos = new FileOutputStream(file); - while ((bt = inputStream.read(mByte)) != -1) { - fos.write(mByte, 0, bt); - } - fos.flush(); - inputStream.close(); - fos.close(); - } else { - String subDirName = assetsDirName; - if (assetsDirName.contains("/")) { - subDirName = assetsDirName.substring(assetsDirName.lastIndexOf('/') + 1); - } - sdCardPath = sdCardPath + File.separator + subDirName; - File file = new File(sdCardPath); - if (!file.exists()) - file.mkdirs(); - for (String s : list) { - String fileName = assetsDirName.length() > 0 ? assetsDirName + File.separator + s : s; - copyAssetsDirToSDCard(context, fileName , sdCardPath); - } - } - } catch ( - Exception e) { - e.printStackTrace(); - } - } - } From 5a7eaf2f5d3cf51b427365847ded7cd5664c09e3 Mon Sep 17 00:00:00 2001 From: vinsentli Date: Sun, 22 Dec 2024 21:03:48 +0800 Subject: [PATCH 03/12] add android nanovg project --- build/android/nanovg/build.gradle | 75 +++++++++++++++++++++++++++++++ build/android/settings.gradle | 1 + 2 files changed, 76 insertions(+) create mode 100644 build/android/nanovg/build.gradle diff --git a/build/android/nanovg/build.gradle b/build/android/nanovg/build.gradle new file mode 100644 index 0000000000..45b123ffdb --- /dev/null +++ b/build/android/nanovg/build.gradle @@ -0,0 +1,75 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +plugins { + id 'com.android.application' +} + +android { + namespace 'com.facebook.igl.shell' + compileSdk 33 + + defaultConfig { + applicationId "com.facebook.igl.shell" + minSdk 24 + targetSdk 33 + versionCode 1 + versionName "1.0" + ndk { + abiFilters 'arm64-v8a' + } + externalNativeBuild { + cmake { + cppFlags '-std=c++17' + } + } + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + externalNativeBuild { + cmake { + path file('../../../CMakeLists.txt') + version '3.22.1' + } + } + buildFeatures { + viewBinding true + } + + sourceSets { + main { + manifest.srcFile '../app/src/main/AndroidManifest.xml' + res.srcDir '../app/src/main/res/' + + java.srcDir 'java' + java.srcDirs += ['../app/src/main/java/'] + + assets.srcDirs += ['../../../shell/resources/images', '../../../third-party/deps/src/nanovg/example/images', '../../../third-party/deps/src/nanovg/example'] + } + } + + ndkVersion '25.2.9519653' +} + +dependencies { + + implementation 'androidx.appcompat:appcompat:1.6.1' + implementation 'com.google.android.material:material:1.9.0' + implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' +} diff --git a/build/android/settings.gradle b/build/android/settings.gradle index 21aed34696..1c41b602b9 100644 --- a/build/android/settings.gradle +++ b/build/android/settings.gradle @@ -21,6 +21,7 @@ dependencyResolutionManagement { } rootProject.name = "IGL" include ':app' +include ':nanovg' include ':app-openxr-vulkan' include ':app-openxr-gles' From 8e85c44ce0a6b669808b368805a39a78e36b90c3 Mon Sep 17 00:00:00 2001 From: vinsentli Date: Sun, 22 Dec 2024 21:19:18 +0800 Subject: [PATCH 04/12] android : Add NanovgSampleActivity. --- .../igl/sample/NanovgSampleActivity.java | 91 +++++++++++++++++++ .../facebook/igl/sample/SampleActivity.java | 4 +- build/android/nanovg/AndroidManifest.xml | 27 ++++++ build/android/nanovg/build.gradle | 2 +- 4 files changed, 122 insertions(+), 2 deletions(-) create mode 100644 build/android/app/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java create mode 100644 build/android/nanovg/AndroidManifest.xml diff --git a/build/android/app/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java b/build/android/app/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java new file mode 100644 index 0000000000..5cb48990d0 --- /dev/null +++ b/build/android/app/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +// @fb-only + +package com.facebook.igl.shell; + +import android.app.Activity; +import android.content.Context; +import android.content.SharedPreferences; +import android.graphics.Color; +import android.os.Bundle; +import android.util.Log; +import android.view.Gravity; +import android.view.SurfaceView; +import android.view.View; +import android.widget.FrameLayout; +import android.widget.LinearLayout; +import android.widget.TextView; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.InputStream; + +public class NanovgSampleActivity extends SampleActivity implements View.OnClickListener { + private static String TAG = "NanovgSampleActivity"; + + @Override + protected void onCreate(Bundle icicle) { + mEnableStencilBuffer = true; + + super.onCreate(icicle); + + boolean hasCopy = getSharedPreferences("data", Context.MODE_PRIVATE).getBoolean("HasCopyAssets", false); + + if (!hasCopy) { + copyAssetsDirToSDCard(this, "", getFilesDir().getAbsolutePath()); + + SharedPreferences.Editor editor = getSharedPreferences("data", Context.MODE_PRIVATE).edit(); + editor.putBoolean("HasCopyAssets",true); + editor.commit(); + } + } + + public static void copyAssetsDirToSDCard(Context context, String assetsDirName, String sdCardPath) { + Log.d(TAG, "copyAssetsDirToSDCard() called with: context = [" + context + "], assetsDirName = [" + assetsDirName + "], sdCardPath = [" + sdCardPath + "]"); + try { + String list[] = context.getAssets().list(assetsDirName); + if (list.length == 0) { + InputStream inputStream = context.getAssets().open(assetsDirName); + byte[] mByte = new byte[1024]; + int bt = 0; + File file = new File(sdCardPath + File.separator + + assetsDirName); + if (!file.exists()) { + file.createNewFile(); + } else { + return; + } + FileOutputStream fos = new FileOutputStream(file); + while ((bt = inputStream.read(mByte)) != -1) { + fos.write(mByte, 0, bt); + } + fos.flush(); + inputStream.close(); + fos.close(); + } else { + String subDirName = assetsDirName; + if (assetsDirName.contains("/")) { + subDirName = assetsDirName.substring(assetsDirName.lastIndexOf('/') + 1); + } + sdCardPath = sdCardPath + File.separator + subDirName; + File file = new File(sdCardPath); + if (!file.exists()) + file.mkdirs(); + for (String s : list) { + String fileName = assetsDirName.length() > 0 ? assetsDirName + File.separator + s : s; + copyAssetsDirToSDCard(context, fileName , sdCardPath); + } + } + } catch ( + Exception e) { + e.printStackTrace(); + } + } + +} diff --git a/build/android/app/src/main/java/com/facebook/igl/sample/SampleActivity.java b/build/android/app/src/main/java/com/facebook/igl/sample/SampleActivity.java index 822ed8fede..d1ae9a651e 100644 --- a/build/android/app/src/main/java/com/facebook/igl/sample/SampleActivity.java +++ b/build/android/app/src/main/java/com/facebook/igl/sample/SampleActivity.java @@ -33,6 +33,8 @@ public class SampleActivity extends Activity implements View.OnClickListener { private final int selectedTabColor = Color.BLUE; private final int unSelectedTabColor = Color.GRAY; + protected boolean mEnableStencilBuffer = false; + @Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); @@ -69,7 +71,7 @@ protected void onCreate(Bundle icicle) { } else if (mConfigs[i].version.flavor == SampleLib.BackendFlavor.OpenGL_ES) { backendView = new SampleView( - getApplication(), mConfigs[i].version, mConfigs[i].swapchainColorTextureFormat); + getApplication(), mConfigs[i].version, mConfigs[i].swapchainColorTextureFormat, mEnableStencilBuffer); ((SampleView) backendView).onPause(); } diff --git a/build/android/nanovg/AndroidManifest.xml b/build/android/nanovg/AndroidManifest.xml new file mode 100644 index 0000000000..79af625c7b --- /dev/null +++ b/build/android/nanovg/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + diff --git a/build/android/nanovg/build.gradle b/build/android/nanovg/build.gradle index 45b123ffdb..15ff7af7f3 100644 --- a/build/android/nanovg/build.gradle +++ b/build/android/nanovg/build.gradle @@ -51,7 +51,7 @@ android { sourceSets { main { - manifest.srcFile '../app/src/main/AndroidManifest.xml' + manifest.srcFile 'AndroidManifest.xml' res.srcDir '../app/src/main/res/' java.srcDir 'java' From 7d405957afdeb2440afb3a50e79e35fce40f91d3 Mon Sep 17 00:00:00 2001 From: vinsentli Date: Sun, 22 Dec 2024 21:35:15 +0800 Subject: [PATCH 05/12] NanovgSampleActivity: remove unused import. --- .../java/com/facebook/igl/sample/NanovgSampleActivity.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/build/android/app/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java b/build/android/app/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java index 5cb48990d0..ca75f0fe9e 100644 --- a/build/android/app/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java +++ b/build/android/app/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java @@ -9,18 +9,11 @@ package com.facebook.igl.shell; -import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; -import android.graphics.Color; import android.os.Bundle; import android.util.Log; -import android.view.Gravity; -import android.view.SurfaceView; import android.view.View; -import android.widget.FrameLayout; -import android.widget.LinearLayout; -import android.widget.TextView; import java.io.File; import java.io.FileOutputStream; From 16eac9719f2ad196bec96c8c5346924e9f2a5c6c Mon Sep 17 00:00:00 2001 From: vinsentli Date: Mon, 23 Dec 2024 09:19:37 +0800 Subject: [PATCH 06/12] move NanovgSampleActivity to nanovg dir. --- .../main/java/com/facebook/igl/sample/NanovgSampleActivity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename build/android/{app => nanovg}/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java (96%) diff --git a/build/android/app/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java b/build/android/nanovg/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java similarity index 96% rename from build/android/app/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java rename to build/android/nanovg/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java index ca75f0fe9e..3fcdf20424 100644 --- a/build/android/app/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java +++ b/build/android/nanovg/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java @@ -19,7 +19,7 @@ import java.io.FileOutputStream; import java.io.InputStream; -public class NanovgSampleActivity extends SampleActivity implements View.OnClickListener { +public class NanovgSampleActivity extends SampleActivity { private static String TAG = "NanovgSampleActivity"; @Override From 3dcba5e5b42d4bb70f3db7d54930fbb59d516e0f Mon Sep 17 00:00:00 2001 From: vinsentli Date: Mon, 23 Dec 2024 09:20:09 +0800 Subject: [PATCH 07/12] move nanovg/AndroidManifest.xml --- build/android/nanovg/{ => src/main}/AndroidManifest.xml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename build/android/nanovg/{ => src/main}/AndroidManifest.xml (100%) diff --git a/build/android/nanovg/AndroidManifest.xml b/build/android/nanovg/src/main/AndroidManifest.xml similarity index 100% rename from build/android/nanovg/AndroidManifest.xml rename to build/android/nanovg/src/main/AndroidManifest.xml From 0715fd7c8862c7eb2fc997426917f599da416cd6 Mon Sep 17 00:00:00 2001 From: vinsentli Date: Mon, 23 Dec 2024 09:20:31 +0800 Subject: [PATCH 08/12] update nanovg/build.gradle --- build/android/nanovg/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/android/nanovg/build.gradle b/build/android/nanovg/build.gradle index 15ff7af7f3..0c1b6c2752 100644 --- a/build/android/nanovg/build.gradle +++ b/build/android/nanovg/build.gradle @@ -51,11 +51,11 @@ android { sourceSets { main { - manifest.srcFile 'AndroidManifest.xml' + manifest.srcFile 'src/main/AndroidManifest.xml' res.srcDir '../app/src/main/res/' java.srcDir 'java' - java.srcDirs += ['../app/src/main/java/'] + java.srcDirs += ['../app/src/main/java'] assets.srcDirs += ['../../../shell/resources/images', '../../../third-party/deps/src/nanovg/example/images', '../../../third-party/deps/src/nanovg/example'] } From dc6e282c579f81411f4965797551ce4d71632c0f Mon Sep 17 00:00:00 2001 From: vinsentli Date: Mon, 23 Dec 2024 09:26:53 +0800 Subject: [PATCH 09/12] move change about SampleActivity.java into another PR. --- .../src/main/java/com/facebook/igl/sample/SampleActivity.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/build/android/app/src/main/java/com/facebook/igl/sample/SampleActivity.java b/build/android/app/src/main/java/com/facebook/igl/sample/SampleActivity.java index d1ae9a651e..822ed8fede 100644 --- a/build/android/app/src/main/java/com/facebook/igl/sample/SampleActivity.java +++ b/build/android/app/src/main/java/com/facebook/igl/sample/SampleActivity.java @@ -33,8 +33,6 @@ public class SampleActivity extends Activity implements View.OnClickListener { private final int selectedTabColor = Color.BLUE; private final int unSelectedTabColor = Color.GRAY; - protected boolean mEnableStencilBuffer = false; - @Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); @@ -71,7 +69,7 @@ protected void onCreate(Bundle icicle) { } else if (mConfigs[i].version.flavor == SampleLib.BackendFlavor.OpenGL_ES) { backendView = new SampleView( - getApplication(), mConfigs[i].version, mConfigs[i].swapchainColorTextureFormat, mEnableStencilBuffer); + getApplication(), mConfigs[i].version, mConfigs[i].swapchainColorTextureFormat); ((SampleView) backendView).onPause(); } From c36b089da9dd1f110d754527ae806d5387942450 Mon Sep 17 00:00:00 2001 From: vinsentli Date: Mon, 23 Dec 2024 09:28:41 +0800 Subject: [PATCH 10/12] android nanovg : add proguard-rules.pro --- build/android/nanovg/proguard-rules.pro | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 build/android/nanovg/proguard-rules.pro diff --git a/build/android/nanovg/proguard-rules.pro b/build/android/nanovg/proguard-rules.pro new file mode 100644 index 0000000000..f1b424510d --- /dev/null +++ b/build/android/nanovg/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile From 6a0055bbcc3f5774a0b8054ef0c92687bf723a1a Mon Sep 17 00:00:00 2001 From: vinsentli Date: Mon, 23 Dec 2024 09:30:35 +0800 Subject: [PATCH 11/12] nanovg build.gradle : update minSdk=33 --- build/android/nanovg/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/android/nanovg/build.gradle b/build/android/nanovg/build.gradle index 0c1b6c2752..240ed789e8 100644 --- a/build/android/nanovg/build.gradle +++ b/build/android/nanovg/build.gradle @@ -15,7 +15,7 @@ android { defaultConfig { applicationId "com.facebook.igl.shell" - minSdk 24 + minSdk 33 targetSdk 33 versionCode 1 versionName "1.0" From 64390c1ad9857cdad55daf4e32e95b46ae524015 Mon Sep 17 00:00:00 2001 From: vinsentli Date: Mon, 23 Dec 2024 09:32:05 +0800 Subject: [PATCH 12/12] NanovgSampleActivity.java : remove unused import. --- .../main/java/com/facebook/igl/sample/NanovgSampleActivity.java | 1 - 1 file changed, 1 deletion(-) diff --git a/build/android/nanovg/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java b/build/android/nanovg/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java index 3fcdf20424..041c3ac925 100644 --- a/build/android/nanovg/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java +++ b/build/android/nanovg/src/main/java/com/facebook/igl/sample/NanovgSampleActivity.java @@ -13,7 +13,6 @@ import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; -import android.view.View; import java.io.File; import java.io.FileOutputStream;