make sure the initial default app launchers come from All apps list

This commit is contained in:
tibbi
2022-09-25 16:01:41 +02:00
parent 85d255d434
commit d5368b0a15
3 changed files with 28 additions and 35 deletions

View File

@ -64,14 +64,6 @@ class MainActivity : SimpleActivity(), FlingListener {
fragment.y = mScreenHeight.toFloat() fragment.y = mScreenHeight.toFloat()
fragment.beVisible() fragment.beVisible()
} }
if (!config.wasHomeScreenInit) {
ensureBackgroundThread {
getDefaultAppPackages()
config.wasHomeScreenInit = true
home_screen_grid.fetchGridItems()
}
}
} }
override fun onResume() { override fun onResume() {
@ -183,15 +175,11 @@ class MainActivity : SimpleActivity(), FlingListener {
mCachedLaunchers = launchers mCachedLaunchers = launchers
if (!config.wereDefaultAppLabelsFilled) { if (!config.wasHomeScreenInit) {
ensureBackgroundThread { ensureBackgroundThread {
homeScreenGridItemsDB.getAllItems().forEach { gridItem -> getDefaultAppPackages(launchers)
val launcher = launchers.firstOrNull { it.packageName.equals(gridItem.packageName, true) } config.wasHomeScreenInit = true
if (launcher != null) { home_screen_grid.fetchGridItems()
homeScreenGridItemsDB.updateAppTitle(launcher.title, gridItem.packageName)
}
}
config.wereDefaultAppLabelsFilled = true
} }
} }
} }
@ -322,6 +310,7 @@ class MainActivity : SimpleActivity(), FlingListener {
showFragment(all_apps_fragment) showFragment(all_apps_fragment)
} }
@SuppressLint("WrongConstant")
override fun onFlingDown() { override fun onFlingDown() {
mIgnoreUpEvent = true mIgnoreUpEvent = true
if (all_apps_fragment.y != mScreenHeight.toFloat()) { if (all_apps_fragment.y != mScreenHeight.toFloat()) {
@ -358,20 +347,24 @@ class MainActivity : SimpleActivity(), FlingListener {
return launchers return launchers
} }
private fun getDefaultAppPackages() { private fun getDefaultAppPackages(appLaunchers: ArrayList<AppLauncher>) {
val homeScreenGridItems = ArrayList<HomeScreenGridItem>() val homeScreenGridItems = ArrayList<HomeScreenGridItem>()
try { try {
val defaultDialerPackage = (getSystemService(Context.TELECOM_SERVICE) as TelecomManager).defaultDialerPackage val defaultDialerPackage = (getSystemService(Context.TELECOM_SERVICE) as TelecomManager).defaultDialerPackage
val dialerIcon = HomeScreenGridItem(null, 0, ROW_COUNT - 1, 1, ROW_COUNT, defaultDialerPackage, "", null) appLaunchers.firstOrNull { it.packageName == defaultDialerPackage }?.apply {
homeScreenGridItems.add(dialerIcon) val dialerIcon = HomeScreenGridItem(null, 0, ROW_COUNT - 1, 1, ROW_COUNT, defaultDialerPackage, title, null)
homeScreenGridItems.add(dialerIcon)
}
} catch (e: Exception) { } catch (e: Exception) {
} }
try { try {
val defaultSMSMessengerPackage = Telephony.Sms.getDefaultSmsPackage(this) val defaultSMSMessengerPackage = Telephony.Sms.getDefaultSmsPackage(this)
val SMSMessengerIcon = appLaunchers.firstOrNull { it.packageName == defaultSMSMessengerPackage }?.apply {
HomeScreenGridItem(null, 1, ROW_COUNT - 1, 2, ROW_COUNT, defaultSMSMessengerPackage, "", null) val SMSMessengerIcon =
homeScreenGridItems.add(SMSMessengerIcon) HomeScreenGridItem(null, 1, ROW_COUNT - 1, 2, ROW_COUNT, defaultSMSMessengerPackage, title, null)
homeScreenGridItems.add(SMSMessengerIcon)
}
} catch (e: Exception) { } catch (e: Exception) {
} }
@ -379,18 +372,21 @@ class MainActivity : SimpleActivity(), FlingListener {
val browserIntent = Intent("android.intent.action.VIEW", Uri.parse("http://")) val browserIntent = Intent("android.intent.action.VIEW", Uri.parse("http://"))
val resolveInfo = packageManager.resolveActivity(browserIntent, PackageManager.MATCH_DEFAULT_ONLY) val resolveInfo = packageManager.resolveActivity(browserIntent, PackageManager.MATCH_DEFAULT_ONLY)
val defaultBrowserPackage = resolveInfo!!.activityInfo.packageName val defaultBrowserPackage = resolveInfo!!.activityInfo.packageName
val browserIcon = appLaunchers.firstOrNull { it.packageName == defaultBrowserPackage }?.apply {
HomeScreenGridItem(null, 2, ROW_COUNT - 1, 3, ROW_COUNT, defaultBrowserPackage, "", null) val browserIcon = HomeScreenGridItem(null, 2, ROW_COUNT - 1, 3, ROW_COUNT, defaultBrowserPackage, title, null)
homeScreenGridItems.add(browserIcon) homeScreenGridItems.add(browserIcon)
}
} catch (e: Exception) { } catch (e: Exception) {
} }
try { try {
val potentialStores = arrayListOf("com.android.vending", "org.fdroid.fdroid", "com.aurora.store") val potentialStores = arrayListOf("com.android.vending", "org.fdroid.fdroid", "com.aurora.store")
val storePackage = potentialStores.firstOrNull { isPackageInstalled(it) } val storePackage = potentialStores.firstOrNull { isPackageInstalled(it) && appLaunchers.map { it.packageName }.contains(it) }
if (storePackage != null) { if (storePackage != null) {
val storeIcon = HomeScreenGridItem(null, 3, ROW_COUNT - 1, 4, ROW_COUNT, storePackage, "", null) appLaunchers.firstOrNull { it.packageName == storePackage }?.apply {
homeScreenGridItems.add(storeIcon) val storeIcon = HomeScreenGridItem(null, 3, ROW_COUNT - 1, 4, ROW_COUNT, storePackage, title, null)
homeScreenGridItems.add(storeIcon)
}
} }
} catch (e: Exception) { } catch (e: Exception) {
} }
@ -399,8 +395,10 @@ class MainActivity : SimpleActivity(), FlingListener {
val cameraIntent = Intent("android.media.action.IMAGE_CAPTURE") val cameraIntent = Intent("android.media.action.IMAGE_CAPTURE")
val resolveInfo = packageManager.resolveActivity(cameraIntent, PackageManager.MATCH_DEFAULT_ONLY) val resolveInfo = packageManager.resolveActivity(cameraIntent, PackageManager.MATCH_DEFAULT_ONLY)
val defaultCameraPackage = resolveInfo!!.activityInfo.packageName val defaultCameraPackage = resolveInfo!!.activityInfo.packageName
val cameraIcon = HomeScreenGridItem(null, 4, ROW_COUNT - 1, 5, ROW_COUNT, defaultCameraPackage, "", null) appLaunchers.firstOrNull { it.packageName == defaultCameraPackage }?.apply {
homeScreenGridItems.add(cameraIcon) val cameraIcon = HomeScreenGridItem(null, 4, ROW_COUNT - 1, 5, ROW_COUNT, defaultCameraPackage, title, null)
homeScreenGridItems.add(cameraIcon)
}
} catch (e: Exception) { } catch (e: Exception) {
} }

View File

@ -11,8 +11,4 @@ class Config(context: Context) : BaseConfig(context) {
var wasHomeScreenInit: Boolean var wasHomeScreenInit: Boolean
get() = prefs.getBoolean(WAS_HOME_SCREEN_INIT, false) get() = prefs.getBoolean(WAS_HOME_SCREEN_INIT, false)
set(wasHomeScreenInit) = prefs.edit().putBoolean(WAS_HOME_SCREEN_INIT, wasHomeScreenInit).apply() set(wasHomeScreenInit) = prefs.edit().putBoolean(WAS_HOME_SCREEN_INIT, wasHomeScreenInit).apply()
var wereDefaultAppLabelsFilled: Boolean
get() = prefs.getBoolean(WERE_DEFAULT_APP_LABELS_FILLED, false)
set(wereDefaultAppLabelsFilled) = prefs.edit().putBoolean(WERE_DEFAULT_APP_LABELS_FILLED, wereDefaultAppLabelsFilled).apply()
} }

View File

@ -5,7 +5,6 @@ const val WIDGET_LIST_ITEMS_HOLDER = 1
// shared prefs // shared prefs
const val WAS_HOME_SCREEN_INIT = "was_home_screen_init" const val WAS_HOME_SCREEN_INIT = "was_home_screen_init"
const val WERE_DEFAULT_APP_LABELS_FILLED = "were_default_app_labels_filled"
// default home screen grid size // default home screen grid size
const val ROW_COUNT = 6 const val ROW_COUNT = 6