lets not add any extra margin to widgets

This commit is contained in:
tibbi 2022-09-27 11:17:20 +02:00
parent 8e79a9ccf5
commit e83aef8d9d
4 changed files with 23 additions and 28 deletions

View File

@ -16,3 +16,5 @@ const val REQUEST_CONFIGURE_WIDGET = 51
const val ITEM_TYPE_ICON = 0 const val ITEM_TYPE_ICON = 0
const val ITEM_TYPE_WIDGET = 1 const val ITEM_TYPE_WIDGET = 1
const val ITEM_TYPE_SHORTCUT = 2 const val ITEM_TYPE_SHORTCUT = 2
const val WIDGET_HOST_ID = 12345

View File

@ -1,6 +0,0 @@
package com.simplemobiletools.launcher.helpers
import android.appwidget.AppWidgetHost
import android.content.Context
class MyAppWidgetHost(context: Context, hostId: Int) : AppWidgetHost(context, hostId)

View File

@ -1,6 +1,7 @@
package com.simplemobiletools.launcher.views package com.simplemobiletools.launcher.views
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.appwidget.AppWidgetHost
import android.appwidget.AppWidgetManager import android.appwidget.AppWidgetManager
import android.content.Context import android.content.Context
import android.graphics.Canvas import android.graphics.Canvas
@ -28,7 +29,6 @@ class HomeScreenGrid(context: Context, attrs: AttributeSet, defStyle: Int) : Rel
constructor(context: Context, attrs: AttributeSet) : this(context, attrs, 0) constructor(context: Context, attrs: AttributeSet) : this(context, attrs, 0)
private var iconMargin = context.resources.getDimension(R.dimen.icon_side_margin).toInt() private var iconMargin = context.resources.getDimension(R.dimen.icon_side_margin).toInt()
private var widgetMargin = context.resources.getDimension(R.dimen.widget_side_margin).toInt()
private var labelSideMargin = context.resources.getDimension(R.dimen.small_margin).toInt() private var labelSideMargin = context.resources.getDimension(R.dimen.small_margin).toInt()
private var roundedCornerRadius = context.resources.getDimension(R.dimen.activity_margin) private var roundedCornerRadius = context.resources.getDimension(R.dimen.activity_margin)
private var textPaint: TextPaint private var textPaint: TextPaint
@ -171,8 +171,7 @@ class HomeScreenGrid(context: Context, attrs: AttributeSet, defStyle: Int) : Rel
redrawIcons = true redrawIcons = true
} else if (draggedItem != null) { } else if (draggedItem != null) {
// we are dragging a new item at the home screen from the All Apps fragment // we are dragging a new item at the home screen from the All Apps fragment
val newHomeScreenGridItem = val newHomeScreenGridItem = HomeScreenGridItem(
HomeScreenGridItem(
null, null,
xIndex, xIndex,
yIndex, yIndex,
@ -186,6 +185,7 @@ class HomeScreenGrid(context: Context, attrs: AttributeSet, defStyle: Int) : Rel
"", "",
draggedItem!!.drawable draggedItem!!.drawable
) )
ensureBackgroundThread { ensureBackgroundThread {
val newId = context.homeScreenGridItemsDB.insert(newHomeScreenGridItem) val newId = context.homeScreenGridItemsDB.insert(newHomeScreenGridItem)
newHomeScreenGridItem.id = newId newHomeScreenGridItem.id = newId
@ -239,7 +239,7 @@ class HomeScreenGrid(context: Context, attrs: AttributeSet, defStyle: Int) : Rel
val infoList = AppWidgetManager.getInstance(context).installedProviders val infoList = AppWidgetManager.getInstance(context).installedProviders
val appWidgetProviderInfo = infoList.firstOrNull { it.provider.shortClassName == draggedItem?.shortClassName } val appWidgetProviderInfo = infoList.firstOrNull { it.provider.shortClassName == draggedItem?.shortClassName }
if (appWidgetProviderInfo != null) { if (appWidgetProviderInfo != null) {
val appWidgetHost = MyAppWidgetHost(context, 12345) val appWidgetHost = AppWidgetHost(context, WIDGET_HOST_ID)
val appWidgetId = appWidgetHost.allocateAppWidgetId() val appWidgetId = appWidgetHost.allocateAppWidgetId()
val appWidgetManager = AppWidgetManager.getInstance(context) val appWidgetManager = AppWidgetManager.getInstance(context)
val canCreateWidget = appWidgetManager.bindAppWidgetIdIfAllowed(appWidgetId, appWidgetProviderInfo.provider) val canCreateWidget = appWidgetManager.bindAppWidgetIdIfAllowed(appWidgetId, appWidgetProviderInfo.provider)
@ -248,10 +248,10 @@ class HomeScreenGrid(context: Context, attrs: AttributeSet, defStyle: Int) : Rel
appWidgetHost.startAppWidgetConfigureActivityForResult(context as MainActivity, appWidgetId, 0, REQUEST_CONFIGURE_WIDGET, null) appWidgetHost.startAppWidgetConfigureActivityForResult(context as MainActivity, appWidgetId, 0, REQUEST_CONFIGURE_WIDGET, null)
} else { } else {
val widgetView = appWidgetHost.createView(context, appWidgetId, appWidgetProviderInfo) val widgetView = appWidgetHost.createView(context, appWidgetId, appWidgetProviderInfo)
widgetView.x = widgetRect.left * rowWidth + sideMargins.left.toFloat() + widgetMargin widgetView.x = widgetRect.left * rowWidth + sideMargins.left.toFloat()
widgetView.y = widgetRect.top * rowHeight + sideMargins.top.toFloat() + widgetMargin widgetView.y = widgetRect.top * rowHeight + sideMargins.top.toFloat()
val widgetWidth = draggedItem!!.widthCells * rowWidth - widgetMargin * 2 val widgetWidth = draggedItem!!.widthCells * rowWidth
val widgetHeight = draggedItem!!.heightCells * rowHeight - widgetMargin * 2 val widgetHeight = draggedItem!!.heightCells * rowHeight
addView(widgetView, widgetWidth, widgetHeight) addView(widgetView, widgetWidth, widgetHeight)
} }
} }

View File

@ -4,5 +4,4 @@
<dimen name="home_long_press_anchor_offset_y">50dp</dimen> <dimen name="home_long_press_anchor_offset_y">50dp</dimen>
<dimen name="widget_preview_size">140dp</dimen> <dimen name="widget_preview_size">140dp</dimen>
<dimen name="icon_side_margin">10dp</dimen> <dimen name="icon_side_margin">10dp</dimen>
<dimen name="widget_side_margin">6dp</dimen>
</resources> </resources>