Removed drawableStart and added ImageView in layouts Set ImageView logo programmatically: bitmap for SDK<24, vector for SDK>=24 Added onClickPendingIntent for ImageView in large and medium layoutsmaster
parent
f740d4382a
commit
9b911f3276
|
@ -20,7 +20,11 @@ import org.mozilla.fenix.HomeActivity
|
||||||
import org.mozilla.fenix.IntentReceiverActivity
|
import org.mozilla.fenix.IntentReceiverActivity
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.utils.Settings
|
import org.mozilla.fenix.utils.Settings
|
||||||
|
import android.os.Build
|
||||||
|
import androidx.appcompat.widget.AppCompatDrawableManager
|
||||||
|
import androidx.core.graphics.drawable.toBitmap
|
||||||
|
|
||||||
|
@Suppress("TooManyFunctions")
|
||||||
class SearchWidgetProvider : AppWidgetProvider() {
|
class SearchWidgetProvider : AppWidgetProvider() {
|
||||||
|
|
||||||
override fun onEnabled(context: Context) {
|
override fun onEnabled(context: Context) {
|
||||||
|
@ -126,6 +130,7 @@ class SearchWidgetProvider : AppWidgetProvider() {
|
||||||
text: String?
|
text: String?
|
||||||
): RemoteViews {
|
): RemoteViews {
|
||||||
return RemoteViews(context.packageName, layout).apply {
|
return RemoteViews(context.packageName, layout).apply {
|
||||||
|
setIcon(context)
|
||||||
when (layout) {
|
when (layout) {
|
||||||
R.layout.search_widget_extra_small_v1,
|
R.layout.search_widget_extra_small_v1,
|
||||||
R.layout.search_widget_extra_small_v2,
|
R.layout.search_widget_extra_small_v2,
|
||||||
|
@ -140,6 +145,7 @@ class SearchWidgetProvider : AppWidgetProvider() {
|
||||||
R.layout.search_widget_large -> {
|
R.layout.search_widget_large -> {
|
||||||
setOnClickPendingIntent(R.id.button_search_widget_new_tab, textSearchIntent)
|
setOnClickPendingIntent(R.id.button_search_widget_new_tab, textSearchIntent)
|
||||||
setOnClickPendingIntent(R.id.button_search_widget_voice, voiceSearchIntent)
|
setOnClickPendingIntent(R.id.button_search_widget_voice, voiceSearchIntent)
|
||||||
|
setOnClickPendingIntent(R.id.button_search_widget_new_tab_icon, textSearchIntent)
|
||||||
setTextViewText(R.id.button_search_widget_new_tab, text)
|
setTextViewText(R.id.button_search_widget_new_tab, text)
|
||||||
// Unlike "small" widget, "medium" and "large" sizes do not have separate layouts
|
// Unlike "small" widget, "medium" and "large" sizes do not have separate layouts
|
||||||
// that exclude the microphone icon, which is why we must hide it accordingly here.
|
// that exclude the microphone icon, which is why we must hide it accordingly here.
|
||||||
|
@ -151,6 +157,22 @@ class SearchWidgetProvider : AppWidgetProvider() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun RemoteViews.setIcon(context: Context) {
|
||||||
|
// gradient color available for android:fillColor only on SDK 24+
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
|
setImageViewResource(
|
||||||
|
R.id.button_search_widget_new_tab_icon,
|
||||||
|
R.drawable.ic_logo_widget)
|
||||||
|
} else {
|
||||||
|
setImageViewBitmap(
|
||||||
|
R.id.button_search_widget_new_tab_icon,
|
||||||
|
AppCompatDrawableManager.get().getDrawable(
|
||||||
|
context,
|
||||||
|
R.drawable.ic_logo_widget
|
||||||
|
)?.toBitmap())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Cell sizes obtained from the actual dimensions listed in search widget specs
|
// Cell sizes obtained from the actual dimensions listed in search widget specs
|
||||||
companion object {
|
companion object {
|
||||||
private const val DP_EXTRA_SMALL = 64
|
private const val DP_EXTRA_SMALL = 64
|
||||||
|
|
|
@ -11,8 +11,8 @@
|
||||||
android:layout_gravity="center">
|
android:layout_gravity="center">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
|
android:id="@+id/button_search_widget_new_tab_icon"
|
||||||
android:layout_width="40dp"
|
android:layout_width="40dp"
|
||||||
android:layout_height="40dp"
|
android:layout_height="40dp"
|
||||||
android:background="@drawable/ic_logo_widget"
|
|
||||||
android:layout_gravity="center"/>
|
android:layout_gravity="center"/>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
|
@ -11,8 +11,8 @@
|
||||||
android:layout_gravity="center">
|
android:layout_gravity="center">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
|
android:id="@+id/button_search_widget_new_tab_icon"
|
||||||
android:layout_width="40dp"
|
android:layout_width="40dp"
|
||||||
android:layout_height="40dp"
|
android:layout_height="40dp"
|
||||||
android:background="@drawable/ic_logo_widget"
|
|
||||||
android:layout_gravity="center"/>
|
android:layout_gravity="center"/>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
|
@ -10,16 +10,22 @@
|
||||||
android:background="@drawable/rounded_white_corners"
|
android:background="@drawable/rounded_white_corners"
|
||||||
android:layout_gravity="center">
|
android:layout_gravity="center">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/button_search_widget_new_tab_icon"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentStart="true"
|
||||||
|
android:padding="12dp"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/button_search_widget_new_tab"
|
android:id="@+id/button_search_widget_new_tab"
|
||||||
|
android:layout_toEndOf="@id/button_search_widget_new_tab_icon"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="32dp"
|
android:layout_height="32dp"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:textSize="15sp"
|
android:textSize="15sp"
|
||||||
android:textColor="@color/search_widget_text"
|
android:textColor="@color/search_widget_text"
|
||||||
android:letterSpacing="-0.025"
|
android:letterSpacing="-0.025"
|
||||||
android:drawableStart="@drawable/ic_logo_widget"
|
|
||||||
android:drawablePadding="12dp"
|
|
||||||
android:layout_marginStart="9dp"
|
android:layout_marginStart="9dp"
|
||||||
android:layout_marginTop="9dp"/>
|
android:layout_marginTop="9dp"/>
|
||||||
|
|
||||||
|
|
|
@ -10,16 +10,22 @@
|
||||||
android:background="@drawable/rounded_white_corners"
|
android:background="@drawable/rounded_white_corners"
|
||||||
android:layout_gravity="center">
|
android:layout_gravity="center">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/button_search_widget_new_tab_icon"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentStart="true"
|
||||||
|
android:padding="12dp"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/button_search_widget_new_tab"
|
android:id="@+id/button_search_widget_new_tab"
|
||||||
|
android:layout_toEndOf="@id/button_search_widget_new_tab_icon"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="32dp"
|
android:layout_height="32dp"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:textSize="15sp"
|
android:textSize="15sp"
|
||||||
android:textColor="@color/search_widget_text"
|
android:textColor="@color/search_widget_text"
|
||||||
android:letterSpacing="-0.025"
|
android:letterSpacing="-0.025"
|
||||||
android:drawableStart="@drawable/ic_logo_widget"
|
|
||||||
android:drawablePadding="12dp"
|
|
||||||
android:layout_marginStart="9dp"
|
android:layout_marginStart="9dp"
|
||||||
android:layout_marginTop="9dp"/>
|
android:layout_marginTop="9dp"/>
|
||||||
|
|
||||||
|
|
|
@ -16,9 +16,9 @@
|
||||||
android:layout_marginTop="9dp">
|
android:layout_marginTop="9dp">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
|
android:id="@+id/button_search_widget_new_tab_icon"
|
||||||
android:layout_width="32dp"
|
android:layout_width="32dp"
|
||||||
android:layout_height="32dp"
|
android:layout_height="32dp"
|
||||||
android:background="@drawable/ic_logo_widget"
|
|
||||||
android:layout_marginStart="9dp"/>
|
android:layout_marginStart="9dp"/>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
|
|
|
@ -12,8 +12,8 @@
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
|
android:id="@+id/button_search_widget_new_tab_icon"
|
||||||
android:layout_width="40dp"
|
android:layout_width="40dp"
|
||||||
android:layout_height="40dp"
|
android:layout_height="40dp"
|
||||||
android:background="@drawable/ic_logo_widget"
|
|
||||||
android:layout_gravity="center"/>
|
android:layout_gravity="center"/>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
Loading…
Reference in New Issue