@@ -144,69 +144,17 @@ public boolean updateInfo(DrawSettings drawSettings, boolean drawBitmap) {
144
144
}
145
145
}
146
146
147
- boolean isRegionChanged = cachedRegion != info .region ;
148
- if (isRegionChanged ) {
149
- cachedRegion = info .region ;
150
- }
151
-
152
- boolean isAlarmTypeChanged = cachedAlarmType != alarm .getType ();
153
- if (isAlarmTypeChanged ) {
154
- cachedAlarmType = alarm .getType ();
155
- }
156
-
157
- if (!Algorithms .objectEquals (info .text , cachedText ) || isRegionChanged || isAlarmTypeChanged ) {
147
+ if (!Algorithms .objectEquals (info .text , cachedText ) ||
148
+ !Algorithms .objectEquals (info .bottomText , cachedBottomText ) ||
149
+ cachedRegion != info .region || cachedAlarmType != alarm .getType ()) {
158
150
changed = true ;
159
151
cachedText = info .text ;
160
- if (layout != null && widgetText != null ) {
161
- widgetText .setText (cachedText );
162
- Resources res = layout .getContext ().getResources ();
163
- if (cachedAlarmType == AlarmInfo .AlarmInfoType .SPEED_LIMIT && info .americanType && !info .isCanadianRegion ) {
164
- int topPadding = res .getDimensionPixelSize (R .dimen .map_alarm_text_top_padding );
165
- widgetText .setPadding (0 , topPadding , 0 , 0 );
166
- } else {
167
- widgetText .setPadding (0 , 0 , 0 , 0 );
168
- }
169
-
170
- if (cachedAlarmType == AlarmInfo .AlarmInfoType .SPEED_CAMERA ) {
171
- FrameLayout .LayoutParams widgetTextLayoutParams = new FrameLayout .LayoutParams (
172
- res .getDimensionPixelSize (R .dimen .map_alarm_speed_camera_speed_info_size ),
173
- res .getDimensionPixelSize (R .dimen .map_alarm_speed_camera_speed_info_size ));
174
-
175
- widgetTextLayoutParams .gravity = Gravity .RIGHT | Gravity .TOP ;
176
-
177
- widgetText .setLayoutParams (widgetTextLayoutParams );
178
- widgetText .setGravity (Gravity .CENTER );
179
- widgetText .setTextSize (COMPLEX_UNIT_PX , res .getDimensionPixelSize (R .dimen .map_alarm_speed_camera_speed_info_text_size ));
180
- } else {
181
- FrameLayout .LayoutParams widgetTextLayoutParams = new FrameLayout .LayoutParams (
182
- FrameLayout .LayoutParams .WRAP_CONTENT ,
183
- FrameLayout .LayoutParams .WRAP_CONTENT );
184
-
185
- widgetTextLayoutParams .gravity = Gravity .CENTER ;
186
-
187
- widgetText .setLayoutParams (widgetTextLayoutParams );
188
- widgetText .setGravity (Gravity .NO_GRAVITY );
189
- widgetText .setTextSize (COMPLEX_UNIT_PX , res .getDimensionPixelSize (R .dimen .map_alarm_text_size ));
190
- }
191
- }
192
- }
193
- if (!Algorithms .objectEquals (info .bottomText , cachedBottomText ) || isRegionChanged || isAlarmTypeChanged ) {
194
- changed = true ;
195
152
cachedBottomText = info .bottomText ;
196
- if (layout != null && widgetBottomText != null ) {
197
- widgetBottomText .setText (cachedBottomText );
198
- Resources res = layout .getContext ().getResources ();
199
- if (cachedAlarmType == AlarmInfo .AlarmInfoType .SPEED_LIMIT && info .isCanadianRegion ) {
200
- int bottomPadding = res .getDimensionPixelSize (R .dimen .map_button_margin );
201
- widgetBottomText .setPadding (0 , 0 , 0 , bottomPadding );
202
- widgetBottomText .setTextSize (COMPLEX_UNIT_PX , res .getDimensionPixelSize (R .dimen .map_alarm_bottom_si_text_size ));
203
- } else {
204
- widgetBottomText .setPadding (0 , 0 , 0 , 0 );
205
- widgetBottomText .setTextSize (COMPLEX_UNIT_PX , res .getDimensionPixelSize (R .dimen .map_alarm_bottom_text_size ));
206
- }
207
- widgetBottomText .setTextColor (ContextCompat .getColor (layout .getContext (),
208
- info .americanType ? R .color .color_black : R .color .color_white ));
209
- }
153
+ cachedRegion = info .region ;
154
+ cachedAlarmType = alarm .getType ();
155
+
156
+ updateTextWidget (info );
157
+ updateBottomTextWidget (info );
210
158
}
211
159
}
212
160
}
@@ -234,6 +182,64 @@ public boolean updateInfo(DrawSettings drawSettings, boolean drawBitmap) {
234
182
return true ;
235
183
}
236
184
185
+ private void updateTextWidget (@ NonNull AlarmWidgetInfo info ) {
186
+ if (layout == null || widgetText == null ) {
187
+ return ;
188
+ }
189
+
190
+ widgetText .setText (info .text );
191
+ Resources res = layout .getContext ().getResources ();
192
+
193
+ if (info .alarm .getType () == AlarmInfo .AlarmInfoType .SPEED_LIMIT && info .americanType && !info .isCanadianRegion ) {
194
+ int topPadding = res .getDimensionPixelSize (R .dimen .map_alarm_text_top_padding );
195
+ widgetText .setPadding (0 , topPadding , 0 , 0 );
196
+ } else {
197
+ widgetText .setPadding (0 , 0 , 0 , 0 );
198
+ }
199
+
200
+ if (info .alarm .getType () == AlarmInfo .AlarmInfoType .SPEED_CAMERA ) {
201
+ FrameLayout .LayoutParams widgetTextLayoutParams = new FrameLayout .LayoutParams (
202
+ res .getDimensionPixelSize (R .dimen .map_alarm_speed_camera_speed_info_size ),
203
+ res .getDimensionPixelSize (R .dimen .map_alarm_speed_camera_speed_info_size ));
204
+
205
+ widgetTextLayoutParams .gravity = Gravity .RIGHT | Gravity .TOP ;
206
+
207
+ widgetText .setLayoutParams (widgetTextLayoutParams );
208
+ widgetText .setGravity (Gravity .CENTER );
209
+ widgetText .setTextSize (COMPLEX_UNIT_PX , res .getDimensionPixelSize (R .dimen .map_alarm_speed_camera_speed_info_text_size ));
210
+ } else {
211
+ FrameLayout .LayoutParams widgetTextLayoutParams = new FrameLayout .LayoutParams (
212
+ FrameLayout .LayoutParams .WRAP_CONTENT ,
213
+ FrameLayout .LayoutParams .WRAP_CONTENT );
214
+
215
+ widgetTextLayoutParams .gravity = Gravity .CENTER ;
216
+
217
+ widgetText .setLayoutParams (widgetTextLayoutParams );
218
+ widgetText .setGravity (Gravity .NO_GRAVITY );
219
+ widgetText .setTextSize (COMPLEX_UNIT_PX , res .getDimensionPixelSize (R .dimen .map_alarm_text_size ));
220
+ }
221
+ }
222
+
223
+ private void updateBottomTextWidget (@ NonNull AlarmWidgetInfo info ) {
224
+ if (layout == null || widgetBottomText == null ) {
225
+ return ;
226
+ }
227
+
228
+ widgetBottomText .setText (info .bottomText );
229
+ Resources res = layout .getContext ().getResources ();
230
+
231
+ if (info .alarm .getType () == AlarmInfo .AlarmInfoType .SPEED_LIMIT && info .isCanadianRegion ) {
232
+ int bottomPadding = res .getDimensionPixelSize (R .dimen .map_button_margin );
233
+ widgetBottomText .setPadding (0 , 0 , 0 , bottomPadding );
234
+ widgetBottomText .setTextSize (COMPLEX_UNIT_PX , res .getDimensionPixelSize (R .dimen .map_alarm_bottom_si_text_size ));
235
+ } else {
236
+ widgetBottomText .setPadding (0 , 0 , 0 , 0 );
237
+ widgetBottomText .setTextSize (COMPLEX_UNIT_PX , res .getDimensionPixelSize (R .dimen .map_alarm_bottom_text_size ));
238
+ }
239
+ widgetBottomText .setTextColor (ContextCompat .getColor (layout .getContext (),
240
+ info .americanType ? R .color .color_black : R .color .color_white ));
241
+ }
242
+
237
243
@ NonNull
238
244
private Bitmap createWidgetBitmap (@ NonNull AlarmWidgetInfo info , float density ) {
239
245
Bitmap bitmap = Bitmap .createBitmap ((int ) (WIDGET_BITMAP_SIZE_DP * density ),
0 commit comments