Explorar el Código

fix: Some apps not being opened when intent is resolved

beautusg hace 7 años
padre
commit
4cb09f018e

+ 2 - 2
app/build.gradle

@@ -12,8 +12,8 @@ android {
         applicationId "com.sduduzog.slimlauncher"
         minSdkVersion 16
         targetSdkVersion 28
-        versionCode 36
-        versionName "2.3.1"
+        versionCode 37
+        versionName "2.3.2"
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         vectorDrawables.useSupportLibrary = true
     }

+ 21 - 13
app/src/main/java/com/sduduzog/slimlauncher/ui/main/HomeFragment.kt

@@ -87,9 +87,10 @@ class HomeFragment : BaseFragment(), OnLaunchAppListener {
                     val intent = Intent(AlarmClock.ACTION_SHOW_ALARMS)
                     intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
                     val componentName = intent.resolveActivity(pm)
-                    pm.getLaunchIntentForPackage(componentName.packageName)?.let {
-                        launchActivity(view, it)
-                    }
+                    if (componentName == null) launchActivity(view, intent) else
+                        pm.getLaunchIntentForPackage(componentName.packageName)?.let {
+                            launchActivity(view, it)
+                        }
                 } catch (e: ActivityNotFoundException) {
                     e.printStackTrace()
                     // Do nothing, we've failed :(
@@ -113,9 +114,10 @@ class HomeFragment : BaseFragment(), OnLaunchAppListener {
                 val pm = context?.packageManager!!
                 val intent = Intent(Intent.ACTION_DIAL)
                 val componentName = intent.resolveActivity(pm)
-                pm.getLaunchIntentForPackage(componentName.packageName)?.let {
-                    launchActivity(view, it)
-                }
+                if (componentName == null) launchActivity(view, intent) else
+                    pm.getLaunchIntentForPackage(componentName.packageName)?.let {
+                        launchActivity(view, it)
+                    }
             } catch (e: Exception) {
                 // Do nothing
             }
@@ -151,13 +153,19 @@ class HomeFragment : BaseFragment(), OnLaunchAppListener {
     }
 
     override fun onLaunch(app: HomeApp, view: View) {
-        val intent = Intent()
-        val name = ComponentName(app.packageName, app.activityName)
-        intent.action = Intent.ACTION_MAIN
-        intent.addCategory(Intent.CATEGORY_LAUNCHER)
-        intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
-        intent.component = name
-        launchActivity(view, intent)
+        try {
+            val intent = Intent()
+            val name = ComponentName(app.packageName, app.activityName)
+            intent.action = Intent.ACTION_MAIN
+            intent.addCategory(Intent.CATEGORY_LAUNCHER)
+            intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
+            intent.component = name
+            intent.resolveActivity(activity!!.packageManager)?.let {
+                launchActivity(view, intent)
+            }
+        } catch (e: Exception) {
+            // Do no shit yet
+        }
     }
 
     override fun onBack(): Boolean {