Compare commits

..

No commits in common. "5f847a8d401d36f36318909fc4a83f2858849611" and "91c9952f7cd54c7db781e20d41e84d44512dd565" have entirely different histories.

7 changed files with 21 additions and 34 deletions

View file

@ -120,6 +120,8 @@ class Application : android.app.Application() {
appWidgetHost = AppWidgetHost(this.applicationContext, APP_WIDGET_HOST_ID)
appWidgetManager = AppWidgetManager.getInstance(this.applicationContext)
appWidgetHost.startListening()
val preferences = PreferenceManager.getDefaultSharedPreferences(this)
LauncherPreferences.init(preferences, this.resources)
@ -176,4 +178,10 @@ class Application : android.app.Application() {
apps.postValue(getApps(packageManager, applicationContext))
}
}
override fun onTerminate() {
appWidgetHost.stopListening()
super.onTerminate()
}
}

View file

@ -93,6 +93,15 @@ class HomeActivity : UIObject, Activity() {
LauncherPreferences.getSharedPreferences()
.registerOnSharedPreferenceChangeListener(sharedPreferencesListener)
(application as Application).appWidgetHost.startListening()
}
override fun onStop() {
(application as Application).appWidgetHost.stopListening()
super.onStop()
}
override fun onWindowFocusChanged(hasFocus: Boolean) {
@ -103,6 +112,7 @@ class HomeActivity : UIObject, Activity() {
}
}
private fun updateSettingsFallbackButtonVisibility() {
// If µLauncher settings can not be reached from any action bound to an enabled gesture,
// show the fallback button.
@ -121,11 +131,6 @@ class HomeActivity : UIObject, Activity() {
return modifyTheme(super.getTheme())
}
override fun onPause() {
(application as Application).appWidgetHost.stopListening()
super.onPause()
}
override fun onResume() {
super.onResume()
@ -156,9 +161,6 @@ class HomeActivity : UIObject, Activity() {
binding.homeWidgetContainer.updateWidgets(this@HomeActivity,
LauncherPreferences.widgets().widgets()
)
(application as Application).appWidgetHost.startListening()
}
override fun onDestroy() {

View file

@ -4,7 +4,6 @@ import android.app.Activity
import android.content.res.Resources
import android.os.Bundle
import androidx.core.view.ViewCompat
import de.jrpie.android.launcher.Application
import de.jrpie.android.launcher.R
import de.jrpie.android.launcher.databinding.ActivityWidgetPanelBinding
import de.jrpie.android.launcher.preferences.LauncherPreferences
@ -58,17 +57,6 @@ class WidgetPanelActivity : Activity(), UIObject {
override fun onStart() {
super<Activity>.onStart()
super<UIObject>.onStart()
}
override fun onPause() {
(application as Application).appWidgetHost.stopListening()
super.onPause()
}
override fun onResume() {
super.onResume()
(application as Application).appWidgetHost.startListening()
}
override fun isHomeScreen(): Boolean {

View file

@ -9,7 +9,6 @@ import android.widget.EditText
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.recyclerview.widget.LinearLayoutManager
import de.jrpie.android.launcher.Application
import de.jrpie.android.launcher.R
import de.jrpie.android.launcher.databinding.ActivityManageWidgetPanelsBinding
import de.jrpie.android.launcher.preferences.LauncherPreferences

View file

@ -92,19 +92,13 @@ class ManageWidgetsActivity : UIObject, Activity() {
}
override fun onPause() {
(application as Application).appWidgetHost.stopListening()
super.onPause()
}
override fun onResume() {
super.onResume()
(application as Application).appWidgetHost.startListening()
binding.manageWidgetsContainer.updateWidgets(
this,
LauncherPreferences.widgets().widgets()
)
}
override fun onWindowFocusChanged(hasFocus: Boolean) {

View file

@ -113,7 +113,7 @@ class WidgetManagerView(widgetPanelId: Int, context: Context, attrs: AttributeSe
height
)
selectedWidgetOverlayView = view
selectedWidgetView = widgetViewById[view.widgetId]
selectedWidgetView = widgetViewById[view.widgetId] ?: return true
startWidgetPosition = position
val positionInView = start.minus(Point(position.left, position.top))

View file

@ -41,7 +41,7 @@ class AppWidget(
id,
position,
panelId,
panelId != WidgetPanel.HOME.id,
false,
widgetProviderInfo.provider.packageName,
widgetProviderInfo.provider.className,
widgetProviderInfo.profile.hashCode()
@ -78,10 +78,6 @@ class AppWidget(
override fun createView(activity: Activity): AppWidgetHostView? {
val providerInfo = activity.getAppWidgetManager().getAppWidgetInfo(id) ?: return null
/* TODO: if providerInfo is null, the corresponding app was probably uninstalled.
There does not seem to be a way to recover the widget when the app is installed again,
hence it should be deleted. */
val view = activity.getAppWidgetHost()
.createView(activity, this.id, providerInfo)