Offset 40, 22 lines modifiedOffset 40, 22 lines modified
  
40 ····move-result-object·v140 ····move-result-object·v1
  
41 ····invoke-direct·{v0,·v1},·Landroid/os/Handler;-><init>(Landroid/os/Looper;)V41 ····invoke-direct·{v0,·v1},·Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
  
42 ····sput-object·v0,·Lcom/android/permissioncontroller/permission/utils/LocationUtils;->sMainHandler:Landroid/os/Handler;42 ····sput-object·v0,·Lcom/android/permissioncontroller/permission/utils/LocationUtils;->sMainHandler:Landroid/os/Handler;
  
43 ····.line·12943 ····.line·125
44 ····new-instance·v0,·Ljava/util/ArrayList;44 ····new-instance·v0,·Ljava/util/ArrayList;
  
45 ····invoke-direct·{v0},·Ljava/util/ArrayList;-><init>()V45 ····invoke-direct·{v0},·Ljava/util/ArrayList;-><init>()V
  
46 ····sput-object·v0,·Lcom/android/permissioncontroller/permission/utils/LocationUtils;->sLocationListeners:Ljava/util/ArrayList;46 ····sput-object·v0,·Lcom/android/permissioncontroller/permission/utils/LocationUtils;->sLocationListeners:Ljava/util/ArrayList;
  
47 ····.line·13147 ····.line·127
48 ····new-instance·v0,·Lcom/android/permissioncontroller/permission/utils/LocationUtils$2;48 ····new-instance·v0,·Lcom/android/permissioncontroller/permission/utils/LocationUtils$2;
  
49 ····invoke-direct·{v0},·Lcom/android/permissioncontroller/permission/utils/LocationUtils$2;-><init>()V49 ····invoke-direct·{v0},·Lcom/android/permissioncontroller/permission/utils/LocationUtils$2;-><init>()V
  
50 ····sput-object·v0,·Lcom/android/permissioncontroller/permission/utils/LocationUtils;->sLocationBroadcastReceiver:Landroid/content/BroadcastReceiver;50 ····sput-object·v0,·Lcom/android/permissioncontroller/permission/utils/LocationUtils;->sLocationBroadcastReceiver:Landroid/content/BroadcastReceiver;
  
51 ····return-void51 ····return-void
Offset 78, 54 lines modifiedOffset 78, 54 lines modified
  
78 ····return-object·v078 ····return-object·v0
79 .end·method79 .end·method
  
80 .method·public·static·addLocationListener(Lcom/android/permissioncontroller/permission/utils/LocationUtils$LocationListener;)V80 .method·public·static·addLocationListener(Lcom/android/permissioncontroller/permission/utils/LocationUtils$LocationListener;)V
81 ····.locals·481 ····.locals·4
  
82 ····.line·15182 ····.line·147
83 ····sget-object·v0,·Lcom/android/permissioncontroller/permission/utils/LocationUtils;->sLocationListeners:Ljava/util/ArrayList;83 ····sget-object·v0,·Lcom/android/permissioncontroller/permission/utils/LocationUtils;->sLocationListeners:Ljava/util/ArrayList;
  
84 ····monitor-enter·v084 ····monitor-enter·v0
  
85 ····.line·15285 ····.line·148
86 ····:try_start_086 ····:try_start_0
87 ····invoke-virtual·{v0},·Ljava/util/ArrayList;->isEmpty()Z87 ····invoke-virtual·{v0},·Ljava/util/ArrayList;->isEmpty()Z
  
88 ····move-result·v188 ····move-result·v1
  
89 ····.line·15389 ····.line·149
90 ····invoke-virtual·{v0,·p0},·Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z90 ····invoke-virtual·{v0,·p0},·Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
  
91 ····if-eqz·v1,·:cond_091 ····if-eqz·v1,·:cond_0
  
92 ····.line·15592 ····.line·151
93 ····new-instance·p0,·Landroid/content/IntentFilter;93 ····new-instance·p0,·Landroid/content/IntentFilter;
  
94 ····const-string·v1,·"android.location.MODE_CHANGED"94 ····const-string·v1,·"android.location.MODE_CHANGED"
  
95 ····invoke-direct·{p0,·v1},·Landroid/content/IntentFilter;-><init>(Ljava/lang/String;)V95 ····invoke-direct·{p0,·v1},·Landroid/content/IntentFilter;-><init>(Ljava/lang/String;)V
  
96 ····.line·15696 ····.line·152
97 ····invoke-static·{},·Lcom/android/permissioncontroller/PermissionControllerApplication;->get()Lcom/android/permissioncontroller/PermissionControllerApplication;97 ····invoke-static·{},·Lcom/android/permissioncontroller/PermissionControllerApplication;->get()Lcom/android/permissioncontroller/PermissionControllerApplication;
  
98 ····move-result-object·v198 ····move-result-object·v1
  
99 ····invoke-virtual·{v1},·Landroid/app/Application;->getApplicationContext()Landroid/content/Context;99 ····invoke-virtual·{v1},·Landroid/app/Application;->getApplicationContext()Landroid/content/Context;
  
100 ····move-result-object·v1100 ····move-result-object·v1
  
101 ····sget-object·v2,·Lcom/android/permissioncontroller/permission/utils/LocationUtils;->sLocationBroadcastReceiver:Landroid/content/BroadcastReceiver;101 ····sget-object·v2,·Lcom/android/permissioncontroller/permission/utils/LocationUtils;->sLocationBroadcastReceiver:Landroid/content/BroadcastReceiver;
  
102 ····const/4·v3,·0x0102 ····const/4·v3,·0x0
  
103 ····.line·157103 ····.line·153
104 ····invoke-virtual·{v1,·v2,·p0,·v3,·v3},·Landroid/content/Context;->registerReceiverForAllUsers(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;104 ····invoke-virtual·{v1,·v2,·p0,·v3,·v3},·Landroid/content/Context;->registerReceiverForAllUsers(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
  
105 ····.line·160105 ····.line·156
106 ····:cond_0106 ····:cond_0
107 ····monitor-exit·v0107 ····monitor-exit·v0
  
108 ····return-void108 ····return-void
  
109 ····:catchall_0109 ····:catchall_0
110 ····move-exception·p0110 ····move-exception·p0
Offset 136, 25 lines modifiedOffset 136, 25 lines modified
  
136 ····throw·p0136 ····throw·p0
137 .end·method137 .end·method
  
138 .method·public·static·isExtraLocationControllerPackageEnabled(Landroid/content/Context;)Z138 .method·public·static·isExtraLocationControllerPackageEnabled(Landroid/content/Context;)Z
139 ····.locals·1139 ····.locals·1
  
140 ····.line·108140 ····.line·104
141 ····:try_start_0141 ····:try_start_0
142 ····const-class·v0,·Landroid/location/LocationManager;142 ····const-class·v0,·Landroid/location/LocationManager;
  
143 ····invoke-virtual·{p0,·v0},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;143 ····invoke-virtual·{p0,·v0},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;
  
144 ····move-result-object·p0144 ····move-result-object·p0
  
145 ····check-cast·p0,·Landroid/location/LocationManager;145 ····check-cast·p0,·Landroid/location/LocationManager;
  
146 ····.line·109146 ····.line·105
147 ····invoke-virtual·{p0},·Landroid/location/LocationManager;->isExtraLocationControllerPackageEnabled()Z147 ····invoke-virtual·{p0},·Landroid/location/LocationManager;->isExtraLocationControllerPackageEnabled()Z
  
148 ····move-result·p0148 ····move-result·p0
149 ····:try_end_0149 ····:try_end_0
150 ····.catch·Ljava/lang/Exception;·{:try_start_0·..·:try_end_0}·:catch_0150 ····.catch·Ljava/lang/Exception;·{:try_start_0·..·:try_end_0}·:catch_0
  
151 ····return·p0151 ····return·p0
Offset 185, 46 lines modifiedOffset 185, 46 lines modified
185 .end·method185 .end·method
  
186 .method·public·static·isLocationGroupAndControllerExtraPackage(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Z186 .method·public·static·isLocationGroupAndControllerExtraPackage(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Z
187 ····.locals·1187 ····.locals·1
  
188 ····const-string·v0,·"android.permission-group.LOCATION"188 ····const-string·v0,·"android.permission-group.LOCATION"
  
189 ····.line·99189 ····.line·95
190 ····invoke-virtual·{v0,·p1},·Ljava/lang/String;->equals(Ljava/lang/Object;)Z190 ····invoke-virtual·{v0,·p1},·Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  
191 ····move-result·v0191 ····move-result·v0
  
192 ····if-nez·v0,·:cond_0192 ····if-nez·v0,·:cond_0
  
193 ····const-string·v0,·"android.permission-group.ACTIVITY_RECOGNITION"193 ····const-string·v0,·"android.permission-group.ACTIVITY_RECOGNITION"
  
194 ····.line·100194 ····.line·96
195 ····invoke-virtual·{v0,·p1},·Ljava/lang/String;->equals(Ljava/lang/Object;)Z195 ····invoke-virtual·{v0,·p1},·Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  
196 ····move-result·p1196 ····move-result·p1
  
197 ····if-eqz·p1,·:cond_1197 ····if-eqz·p1,·:cond_1
  
198 ····:cond_0198 ····:cond_0
199 ····const-class·p1,·Landroid/location/LocationManager;199 ····const-class·p1,·Landroid/location/LocationManager;
  
200 ····.line·101200 ····.line·97
201 ····invoke-virtual·{p0,·p1},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;201 ····invoke-virtual·{p0,·p1},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;
  
202 ····move-result-object·p0202 ····move-result-object·p0
  
203 ····check-cast·p0,·Landroid/location/LocationManager;203 ····check-cast·p0,·Landroid/location/LocationManager;
  
204 ····.line·102204 ····.line·98
205 ····invoke-virtual·{p0},·Landroid/location/LocationManager;->getExtraLocationControllerPackage()Ljava/lang/String;205 ····invoke-virtual·{p0},·Landroid/location/LocationManager;->getExtraLocationControllerPackage()Ljava/lang/String;
  
206 ····move-result-object·p0206 ····move-result-object·p0
  
207 ····.line·101207 ····.line·97
208 ····invoke-virtual·{p2,·p0},·Ljava/lang/String;->equals(Ljava/lang/Object;)Z208 ····invoke-virtual·{p2,·p0},·Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  
209 ····move-result·p0209 ····move-result·p0
  
210 ····if-eqz·p0,·:cond_1210 ····if-eqz·p0,·:cond_1
  
211 ····const/4·p0,·0x1211 ····const/4·p0,·0x1
Offset 239, 22 lines modifiedOffset 239, 31 lines modified
239 .end·method239 .end·method
  
240 .method·public·static·isLocationGroupAndProvider(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Z240 .method·public·static·isLocationGroupAndProvider(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Z
241 ····.locals·1241 ····.locals·1
  
242 ····const-string·v0,·"android.permission-group.LOCATION"242 ····const-string·v0,·"android.permission-group.LOCATION"
  
243 ····.line·94243 ····.line·89
244 ····invoke-virtual·{v0,·p1},·Ljava/lang/String;->equals(Ljava/lang/Object;)Z244 ····invoke-virtual·{v0,·p1},·Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  
245 ····move-result·p1245 ····move-result·p1
  
246 ····if-eqz·p1,·:cond_0246 ····if-eqz·p1,·:cond_0
  
247 ····invoke-static·{p0,·p2},·Lcom/android/permissioncontroller/permission/utils/LocationUtils;->isLocationProvider(Landroid/content/Context;Ljava/lang/String;)Z247 ····const-class·p1,·Landroid/location/LocationManager;
  
 248 ····.line·90
 249 ····invoke-virtual·{p0,·p1},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object;
  
 250 ····move-result-object·p0
  
 251 ····check-cast·p0,·Landroid/location/LocationManager;
  
 252 ····invoke-virtual·{p0,·p2},·Landroid/location/LocationManager;->isProviderPackage(Ljava/lang/String;)Z
  
248 ····move-result·p0253 ····move-result·p0
  
249 ····if-eqz·p0,·:cond_0254 ····if-eqz·p0,·:cond_0
  
250 ····const/4·p0,·0x1255 ····const/4·p0,·0x1
  
Offset 263, 80 lines modifiedOffset 272, 61 lines modified
263 ····:cond_0272 ····:cond_0
264 ····const/4·p0,·0x0273 ····const/4·p0,·0x0
  
265 ····:goto_0274 ····:goto_0
266 ····return·p0275 ····return·p0
267 .end·method276 .end·method
  
268 .method·public·static·isLocationProvider(Landroid/content/Context;Ljava/lang/String;)Z 
269 ····.locals·1 
  
270 ····.line·89 
271 ····const-class·v0,·Landroid/location/LocationManager; 
  
272 ····invoke-virtual·{p0,·v0},·Landroid/content/Context;->getSystemService(Ljava/lang/Class;)Ljava/lang/Object; 
  
273 ····move-result-object·p0 
  
274 ····check-cast·p0,·Landroid/location/LocationManager; 
  
275 ····invoke-virtual·{p0,·p1},·Landroid/location/LocationManager;->isProviderPackage(Ljava/lang/String;)Z 
  
276 ····move-result·p0 
  
277 ····return·p0 
278 .end·method 
  
279 .method·public·static·removeLocationListener(Lcom/android/permissioncontroller/permission/utils/LocationUtils$LocationListener;)Z277 .method·public·static·removeLocationListener(Lcom/android/permissioncontroller/permission/utils/LocationUtils$LocationListener;)Z
280 ····.locals·3278 ····.locals·3
  
281 ····.line·170279 ····.line·166
282 ····sget-object·v0,·Lcom/android/permissioncontroller/permission/utils/LocationUtils;->sLocationListeners:Ljava/util/ArrayList;280 ····sget-object·v0,·Lcom/android/permissioncontroller/permission/utils/LocationUtils;->sLocationListeners:Ljava/util/ArrayList;
  
283 ····monitor-enter·v0281 ····monitor-enter·v0
  
284 ····.line·171282 ····.line·167
285 ····:try_start_0283 ····:try_start_0
286 ····invoke-virtual·{v0,·p0},·Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z284 ····invoke-virtual·{v0,·p0},·Ljava/util/ArrayList;->remove(Ljava/lang/Object;)Z
  
287 ····move-result·p0285 ····move-result·p0
  
288 ····if-eqz·p0,·:cond_0286 ····if-eqz·p0,·:cond_0
  
289 ····.line·172287 ····.line·168
290 ····invoke-virtual·{v0},·Ljava/util/ArrayList;->isEmpty()Z288 ····invoke-virtual·{v0},·Ljava/util/ArrayList;->isEmpty()Z
  
291 ····move-result·v1289 ····move-result·v1
  
292 ····if-eqz·v1,·:cond_0290 ····if-eqz·v1,·:cond_0
  
293 ····.line·173291 ····.line·169
294 ····invoke-static·{},·Lcom/android/permissioncontroller/PermissionControllerApplication;->get()Lcom/android/permissioncontroller/PermissionControllerApplication;292 ····invoke-static·{},·Lcom/android/permissioncontroller/PermissionControllerApplication;->get()Lcom/android/permissioncontroller/PermissionControllerApplication;
  
295 ····move-result-object·v1293 ····move-result-object·v1
  
296 ····invoke-virtual·{v1},·Landroid/app/Application;->getApplicationContext()Landroid/content/Context;294 ····invoke-virtual·{v1},·Landroid/app/Application;->getApplicationContext()Landroid/content/Context;
  
297 ····move-result-object·v1295 ····move-result-object·v1
  
298 ····sget-object·v2,·Lcom/android/permissioncontroller/permission/utils/LocationUtils;->sLocationBroadcastReceiver:Landroid/content/BroadcastReceiver;296 ····sget-object·v2,·Lcom/android/permissioncontroller/permission/utils/LocationUtils;->sLocationBroadcastReceiver:Landroid/content/BroadcastReceiver;
  
299 ····.line·174297 ····.line·170
300 ····invoke-virtual·{v1,·v2},·Landroid/content/Context;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V298 ····invoke-virtual·{v1,·v2},·Landroid/content/Context;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
  
301 ····.line·176299 ····.line·172
302 ····:cond_0300 ····:cond_0
303 ····monitor-exit·v0301 ····monitor-exit·v0
  
304 ····return·p0302 ····return·p0
  
305 ····:catchall_0303 ····:catchall_0
306 ····move-exception·p0304 ····move-exception·p0
  
307 ····.line·177305 ····.line·173
308 ····monitor-exit·v0306 ····monitor-exit·v0
309 ····:try_end_0307 ····:try_end_0
310 ····.catchall·{:try_start_0·..·:try_end_0}·:catchall_0308 ····.catchall·{:try_start_0·..·:try_end_0}·:catchall_0
  
311 ····throw·p0309 ····throw·p0
312 .end·method310 .end·method
  
Offset 366, 39 lines modifiedOffset 356, 39 lines modified
  
366 ····new-array·v1,·v1,·[Ljava/lang/Object;356 ····new-array·v1,·v1,·[Ljava/lang/Object;
  
367 ····const/4·v2,·0x0357 ····const/4·v2,·0x0
  
368 ····aput-object·p1,·v1,·v2358 ····aput-object·p1,·v1,·v2
  
369 ····const·p1,·0x7f120118359 ····const·p1,·0x7f120116
  
370 ····.line·57360 ····.line·57
371 ····invoke-virtual·{p0,·p1,·v1},·Landroid/content/Context;->getString(I[Ljava/lang/Object;)Ljava/lang/String;361 ····invoke-virtual·{p0,·p1,·v1},·Landroid/content/Context;->getString(I[Ljava/lang/Object;)Ljava/lang/String;
  
372 ····move-result-object·p1362 ····move-result-object·p1
  
373 ····invoke-virtual·{v0,·p1},·Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;363 ····invoke-virtual·{v0,·p1},·Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;
  
374 ····move-result-object·p1364 ····move-result-object·p1
  
375 ····const·v0,·0x7f12016c365 ····const·v0,·0x7f12016a
  
376 ····const/4·v1,·0x0366 ····const/4·v1,·0x0
  
377 ····.line·58367 ····.line·58
378 ····invoke-virtual·{p1,·v0,·v1},·Landroid/app/AlertDialog$Builder;->setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;368 ····invoke-virtual·{p1,·v0,·v1},·Landroid/app/AlertDialog$Builder;->setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;
  
379 ····move-result-object·p1369 ····move-result-object·p1
  
380 ····new-instance·v0,·Lcom/android/permissioncontroller/permission/utils/LocationUtils$1;370 ····new-instance·v0,·Lcom/android/permissioncontroller/permission/utils/LocationUtils$1;
  
381 ····invoke-direct·{v0,·p0},·Lcom/android/permissioncontroller/permission/utils/LocationUtils$1;-><init>(Landroid/content/Context;)V371 ····invoke-direct·{v0,·p0},·Lcom/android/permissioncontroller/permission/utils/LocationUtils$1;-><init>(Landroid/content/Context;)V
  
382 ····const·p0,·0x7f120117372 ····const·p0,·0x7f120115
  
383 ····.line·59373 ····.line·59
384 ····invoke-virtual·{p1,·p0,·v0},·Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;374 ····invoke-virtual·{p1,·p0,·v0},·Landroid/app/AlertDialog$Builder;->setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;
  
385 ····move-result-object·p0375 ····move-result-object·p0
  
386 ····.line·65376 ····.line·65