Просмотр исходного кода

Pass the argument to the main activity, if any.

Yao Wei Tjong 姚伟忠 7 лет назад
Родитель
Сommit
c1e97f723e

+ 1 - 1
Rakefile

@@ -182,7 +182,7 @@ end
 # Usage: rake android [parameter='--es pickedLibrary Urho3DPlayer:Scripts/NinjaSnowWar.as'] [intent=.SampleLauncher] [package=com.github.urho3d] [success_indicator='Initialized engine'] [payload='sleep 30'] [api=21] [abi=armeabi-v7a] [avd=test_#{api}_#{abi}] [retries=10] [retry_interval=10] [install]
 desc 'Test run APK in Android (virtual) device, default to Urho3D Samples APK if no parameter is given'
 task :android do
-  parameter = ENV['parameter'] || '--es pickedLibrary Urho3DPlayer:Scripts/NinjaSnowWar.as'
+  parameter = ENV['parameter'] || '--es argument NinjaSnowWar.as'
   intent = ENV['intent'] || '.SampleLauncher'
   package = ENV['package'] || 'com.github.urho3d'
   success_indicator = ENV['success_indicator'] || 'Initialized engine'

+ 15 - 10
android/launcher-app/src/main/java/com/github/urho3d/launcher/LauncherActivity.kt

@@ -68,24 +68,29 @@ class LauncherActivity : ExpandableListActivity() {
                 intArrayOf(android.R.id.text1)
         ))
         setContentView(R.layout.activity_launcher)
+
+        // Pass the argument to the main activity, if any
+        launch(intent.getStringExtra(MainActivity.argument))
     }
 
-    override fun onChildClick(parent: ExpandableListView?, v: View?, groupPosition: Int,
-                              childPosition: Int, id: Long): Boolean {
+    override fun onChildClick(parent: ExpandableListView?, v: View?, groupPos: Int, childPos: Int,
+                              id: Long): Boolean {
         @Suppress("UNCHECKED_CAST")
-        val item = (expandableListAdapter.getChild(groupPosition, childPosition) as Map<String, String>)["item"]
-        if (item != null) {
-            // Start main activity with the intention to load the selected library name
+        launch((expandableListAdapter.getChild(groupPos, childPos) as Map<String, String>)["item"])
+        return true
+    }
+
+    private fun launch(argument: String?) {
+        if (argument != null) {
             startActivity(Intent(this, MainActivity::class.java)
                     .putExtra(MainActivity.argument,
-                            if (item.contains('.')) {
-                                if (item.endsWith(".as")) "Urho3DPlayer:Scripts/$item"
-                                else "Urho3DPlayer:LuaScripts/$item"
-                            } else item
+                            if (argument.contains('.')) {
+                                if (argument.endsWith(".as")) "Urho3DPlayer:Scripts/$argument"
+                                else "Urho3DPlayer:LuaScripts/$argument"
+                            } else argument
                     )
             )
         }
-        return true
     }
 
 }