Created
September 2, 2014 22:08
-
-
Save erraggy/50a1378b9f8e3edb4497 to your computer and use it in GitHub Desktop.
From Decompiled SecMms_Blue.apk
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.android.mms.transaction; | |
import android.app.AlarmManager; | |
import android.app.PendingIntent; | |
import android.content.BroadcastReceiver; | |
import android.content.ContentResolver; | |
import android.content.Context; | |
import android.content.Intent; | |
import android.database.Cursor; | |
import android.database.sqlite.SqliteWrapper; | |
import android.net.ConnectivityManager; | |
import android.net.NetworkInfo; | |
import android.net.Uri; | |
import android.provider.Telephony.Mms.Inbox; | |
import android.provider.Telephony.Mms.Outbox; | |
import com.android.mms.Log; | |
import com.google.android.mms.pdu.PduPersister; | |
public class RetryScheduler | |
implements Observer | |
{ | |
private static final String TAG = "Mms:transaction"; | |
private static RetryScheduler sInstance; | |
private final ContentResolver mContentResolver; | |
private final Context mContext; | |
private BroadcastReceiver mReceiver = new BroadcastReceiver() | |
{ | |
public void onReceive(Context paramAnonymousContext, Intent paramAnonymousIntent) | |
{ | |
RetryScheduler.access$002(RetryScheduler.this, paramAnonymousIntent.getBooleanExtra("IMS_REG_STATUS", false)); | |
if (RetryScheduler.this.mWifiCall) | |
{ | |
Intent localIntent = new Intent("com.android.mms.transaction.MESSAGE_SENT"); | |
localIntent.setClassName("com.android.mms", "com.android.mms.transaction.SmsReceiverService"); | |
localIntent.putExtra("result", -1); | |
localIntent.putExtra("LastSentMsg", true); | |
RetryScheduler.this.mContext.startService(localIntent); | |
} | |
} | |
}; | |
private boolean mWifiCall = false; | |
private RetryScheduler(Context paramContext) | |
{ | |
this.mContext = paramContext; | |
this.mContentResolver = paramContext.getContentResolver(); | |
} | |
public static RetryScheduler getInstance() | |
{ | |
return sInstance; | |
} | |
public static RetryScheduler getInstance(Context paramContext) | |
{ | |
if (sInstance == null) | |
sInstance = new RetryScheduler(paramContext); | |
return sInstance; | |
} | |
private int getResponseStatus(long paramLong) | |
{ | |
Cursor localCursor = null; | |
try | |
{ | |
localCursor = SqliteWrapper.query(this.mContext, this.mContentResolver, Telephony.Mms.Outbox.CONTENT_URI, null, "_id=" + paramLong, null, null); | |
int i = 0; | |
if (localCursor != null) | |
{ | |
boolean bool = localCursor.moveToFirst(); | |
i = 0; | |
if (bool) | |
{ | |
int j = localCursor.getInt(localCursor.getColumnIndexOrThrow("resp_st")); | |
i = j; | |
} | |
} | |
if (localCursor != null) | |
localCursor.close(); | |
if (i != 0) | |
Log.e("Mms:transaction", "[RetryScheduler] Response status is: " + i); | |
return i; | |
} | |
finally | |
{ | |
if (localCursor != null) | |
localCursor.close(); | |
} | |
} | |
private String getResponseText(long paramLong) | |
{ | |
Cursor localCursor = null; | |
try | |
{ | |
localCursor = SqliteWrapper.query(this.mContext, this.mContentResolver, Telephony.Mms.Outbox.CONTENT_URI, null, "_id=" + paramLong, null, null); | |
Object localObject2 = null; | |
if (localCursor != null) | |
{ | |
boolean bool = localCursor.moveToFirst(); | |
localObject2 = null; | |
if (bool) | |
{ | |
String str = localCursor.getString(localCursor.getColumnIndexOrThrow("resp_txt")); | |
localObject2 = str; | |
} | |
} | |
if (localCursor != null) | |
localCursor.close(); | |
if (localObject2 != null) | |
Log.e("Mms:transaction", "Response text is: " + localObject2); | |
return localObject2; | |
} | |
finally | |
{ | |
if (localCursor != null) | |
localCursor.close(); | |
} | |
} | |
private int getRetrieveStatus(long paramLong) | |
{ | |
Cursor localCursor = SqliteWrapper.query(this.mContext, this.mContentResolver, Telephony.Mms.Inbox.CONTENT_URI, null, "_id=" + paramLong, null, null); | |
int i = 0; | |
if (localCursor != null); | |
try | |
{ | |
boolean bool = localCursor.moveToFirst(); | |
i = 0; | |
if (bool) | |
{ | |
int j = localCursor.getInt(localCursor.getColumnIndexOrThrow("resp_st")); | |
i = j; | |
} | |
if (localCursor != null) | |
localCursor.close(); | |
if (i != 0) | |
Log.e("Mms:transaction", "[RetryScheduler] Response status is: " + i); | |
return i; | |
} | |
finally | |
{ | |
if (localCursor != null) | |
localCursor.close(); | |
} | |
} | |
private boolean isConnected() | |
{ | |
NetworkInfo localNetworkInfo = ((ConnectivityManager)this.mContext.getSystemService("connectivity")).getNetworkInfo(2); | |
if (localNetworkInfo != null) | |
Log.m("Mms:transaction", "[RetryScheduler] isConnected() : " + localNetworkInfo.isConnected()); | |
if (localNetworkInfo == null) | |
return false; | |
return localNetworkInfo.isConnected(); | |
} | |
// ERROR // | |
private void scheduleRetry(Uri paramUri, Transaction paramTransaction) | |
{ | |
// Byte code: | |
// 0: aload_1 | |
// 1: invokestatic 164 android/content/ContentUris:parseId (Landroid/net/Uri;)J | |
// 4: lstore_3 | |
// 5: getstatic 167 android/provider/Telephony$MmsSms$PendingMessages:CONTENT_URI Landroid/net/Uri; | |
// 8: invokevirtual 173 android/net/Uri:buildUpon ()Landroid/net/Uri$Builder; | |
// 11: astore 5 | |
// 13: aload 5 | |
// 15: ldc 175 | |
// 17: ldc 177 | |
// 19: invokevirtual 183 android/net/Uri$Builder:appendQueryParameter (Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder; | |
// 22: pop | |
// 23: aload 5 | |
// 25: ldc 185 | |
// 27: lload_3 | |
// 28: invokestatic 190 java/lang/String:valueOf (J)Ljava/lang/String; | |
// 31: invokevirtual 183 android/net/Uri$Builder:appendQueryParameter (Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder; | |
// 34: pop | |
// 35: aload_0 | |
// 36: getfield 36 com/android/mms/transaction/RetryScheduler:mContext Landroid/content/Context; | |
// 39: aload_0 | |
// 40: getfield 44 com/android/mms/transaction/RetryScheduler:mContentResolver Landroid/content/ContentResolver; | |
// 43: aload 5 | |
// 45: invokevirtual 194 android/net/Uri$Builder:build ()Landroid/net/Uri; | |
// 48: aconst_null | |
// 49: aconst_null | |
// 50: aconst_null | |
// 51: aconst_null | |
// 52: invokestatic 87 android/database/sqlite/SqliteWrapper:query (Landroid/content/Context;Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; | |
// 55: astore 8 | |
// 57: aload 8 | |
// 59: ifnull +525 -> 584 | |
// 62: aload 8 | |
// 64: invokeinterface 198 1 0 | |
// 69: iconst_1 | |
// 70: if_icmpne +1154 -> 1224 | |
// 73: aload 8 | |
// 75: invokeinterface 93 1 0 | |
// 80: ifeq +1144 -> 1224 | |
// 83: aload 8 | |
// 85: aload 8 | |
// 87: ldc 200 | |
// 89: invokeinterface 99 2 0 | |
// 94: invokeinterface 103 2 0 | |
// 99: istore 10 | |
// 101: ldc 10 | |
// 103: new 67 java/lang/StringBuilder | |
// 106: dup | |
// 107: invokespecial 68 java/lang/StringBuilder:<init> ()V | |
// 110: ldc 202 | |
// 112: invokevirtual 74 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; | |
// 115: iload 10 | |
// 117: invokevirtual 111 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; | |
// 120: invokevirtual 81 java/lang/StringBuilder:toString ()Ljava/lang/String; | |
// 123: invokestatic 156 com/android/mms/Log:m (Ljava/lang/String;Ljava/lang/String;)V | |
// 126: iconst_1 | |
// 127: aload 8 | |
// 129: aload 8 | |
// 131: ldc 204 | |
// 133: invokeinterface 99 2 0 | |
// 138: invokeinterface 103 2 0 | |
// 143: iadd | |
// 144: istore 11 | |
// 146: iconst_1 | |
// 147: istore 12 | |
// 149: new 206 com/android/mms/transaction/DefaultRetryScheme | |
// 152: dup | |
// 153: aload_0 | |
// 154: getfield 36 com/android/mms/transaction/RetryScheduler:mContext Landroid/content/Context; | |
// 157: iload 11 | |
// 159: invokespecial 209 com/android/mms/transaction/DefaultRetryScheme:<init> (Landroid/content/Context;I)V | |
// 162: astore 13 | |
// 164: new 211 android/content/ContentValues | |
// 167: dup | |
// 168: iconst_4 | |
// 169: invokespecial 214 android/content/ContentValues:<init> (I)V | |
// 172: astore 14 | |
// 174: invokestatic 220 java/lang/System:currentTimeMillis ()J | |
// 177: lstore 15 | |
// 179: iload 10 | |
// 181: sipush 130 | |
// 184: if_icmpne +401 -> 585 | |
// 187: iconst_1 | |
// 188: istore 17 | |
// 190: iconst_1 | |
// 191: istore 18 | |
// 193: aload_0 | |
// 194: lload_3 | |
// 195: invokespecial 222 com/android/mms/transaction/RetryScheduler:getResponseStatus (J)I | |
// 198: istore 19 | |
// 200: ldc 10 | |
// 202: new 67 java/lang/StringBuilder | |
// 205: dup | |
// 206: invokespecial 68 java/lang/StringBuilder:<init> ()V | |
// 209: ldc 224 | |
// 211: invokevirtual 74 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; | |
// 214: iload 19 | |
// 216: invokevirtual 111 java/lang/StringBuilder:append (I)Ljava/lang/StringBuilder; | |
// 219: invokevirtual 81 java/lang/StringBuilder:toString ()Ljava/lang/String; | |
// 222: invokestatic 227 com/android/mms/Log:v (Ljava/lang/String;Ljava/lang/String;)V | |
// 225: iload 17 | |
// 227: ifne +466 -> 693 | |
// 230: iconst_0 | |
// 231: istore 20 | |
// 233: iload 19 | |
// 235: lookupswitch default:+73->308, 130:+411->646, 132:+356->591, 134:+1055->1290, 194:+1063->1298, 224:+1071->1306, 225:+370->605, 226:+425->660, 228:+1063->1298 | |
// 309: ldc2_w -26368 | |
// 312: dconst_0 | |
// 313: invokestatic 232 com/android/mms/util/DownloadManager:getInstance ()Lcom/android/mms/util/DownloadManager; | |
// 316: iload 20 | |
// 318: invokevirtual 235 com/android/mms/util/DownloadManager:showErrorCodeToast (I)V | |
// 321: iconst_0 | |
// 322: istore 18 | |
// 324: iload 19 | |
// 326: sipush 224 | |
// 329: if_icmplt +49 -> 378 | |
// 332: iload 19 | |
// 334: sipush 255 | |
// 337: if_icmpgt +41 -> 378 | |
// 340: invokestatic 240 com/android/mms/MmsConfig:getEnableChameleon ()Z | |
// 343: ifeq +504 -> 847 | |
// 346: iload 19 | |
// 348: sipush 225 | |
// 351: if_icmpne +496 -> 847 | |
// 354: ldc 242 | |
// 356: invokestatic 248 android/os/SystemProperties:get (Ljava/lang/String;)Ljava/lang/String; | |
// 359: ldc 250 | |
// 361: invokevirtual 254 java/lang/String:equalsIgnoreCase (Ljava/lang/String;)Z | |
// 364: ifeq +454 -> 818 | |
// 367: invokestatic 232 com/android/mms/util/DownloadManager:getInstance ()Lcom/android/mms/util/DownloadManager; | |
// 370: ldc 255 | |
// 372: invokevirtual 235 com/android/mms/util/DownloadManager:showErrorCodeToast (I)V | |
// 375: goto +877 -> 1252 | |
// 378: iload 11 | |
// 380: aload 13 | |
// 382: invokevirtual 258 com/android/mms/transaction/DefaultRetryScheme:getRetryLimit ()I | |
// 385: if_icmpge +473 -> 858 | |
// 388: iload 18 | |
// 390: ifeq +468 -> 858 | |
// 393: lload 15 | |
// 395: aload 13 | |
// 397: invokevirtual 261 com/android/mms/transaction/DefaultRetryScheme:getWaitingInterval ()J | |
// 400: ladd | |
// 401: lstore 21 | |
// 403: ldc 10 | |
// 405: new 67 java/lang/StringBuilder | |
// 408: dup | |
// 409: invokespecial 68 java/lang/StringBuilder:<init> ()V | |
// 412: ldc_w 263 | |
// 415: invokevirtual 74 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; | |
// 418: aload_1 | |
// 419: invokevirtual 266 java/lang/StringBuilder:append (Ljava/lang/Object;)Ljava/lang/StringBuilder; | |
// 422: ldc_w 268 | |
// 425: invokevirtual 74 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; | |
// 428: lload 21 | |
// 430: invokestatic 220 java/lang/System:currentTimeMillis ()J | |
// 433: lsub | |
// 434: invokevirtual 77 java/lang/StringBuilder:append (J)Ljava/lang/StringBuilder; | |
// 437: ldc_w 270 | |
// 440: invokevirtual 74 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; | |
// 443: invokevirtual 81 java/lang/StringBuilder:toString ()Ljava/lang/String; | |
// 446: invokestatic 227 com/android/mms/Log:v (Ljava/lang/String;Ljava/lang/String;)V | |
// 449: aload 14 | |
// 451: ldc_w 272 | |
// 454: lload 21 | |
// 456: invokestatic 277 java/lang/Long:valueOf (J)Ljava/lang/Long; | |
// 459: invokevirtual 281 android/content/ContentValues:put (Ljava/lang/String;Ljava/lang/Long;)V | |
// 462: iload 17 | |
// 464: ifeq +13 -> 477 | |
// 467: invokestatic 232 com/android/mms/util/DownloadManager:getInstance ()Lcom/android/mms/util/DownloadManager; | |
// 470: aload_1 | |
// 471: sipush 130 | |
// 474: invokevirtual 285 com/android/mms/util/DownloadManager:markState (Landroid/net/Uri;I)V | |
// 477: aload 14 | |
// 479: ldc_w 287 | |
// 482: iload 12 | |
// 484: invokestatic 292 java/lang/Integer:valueOf (I)Ljava/lang/Integer; | |
// 487: invokevirtual 295 android/content/ContentValues:put (Ljava/lang/String;Ljava/lang/Integer;)V | |
// 490: aload 14 | |
// 492: ldc 204 | |
// 494: iload 11 | |
// 496: invokestatic 292 java/lang/Integer:valueOf (I)Ljava/lang/Integer; | |
// 499: invokevirtual 295 android/content/ContentValues:put (Ljava/lang/String;Ljava/lang/Integer;)V | |
// 502: aload 14 | |
// 504: ldc_w 297 | |
// 507: lload 15 | |
// 509: invokestatic 277 java/lang/Long:valueOf (J)Ljava/lang/Long; | |
// 512: invokevirtual 281 android/content/ContentValues:put (Ljava/lang/String;Ljava/lang/Long;)V | |
// 515: aload 8 | |
// 517: aload 8 | |
// 519: ldc_w 299 | |
// 522: invokeinterface 99 2 0 | |
// 527: invokeinterface 303 2 0 | |
// 532: lstore 23 | |
// 534: aload_0 | |
// 535: getfield 36 com/android/mms/transaction/RetryScheduler:mContext Landroid/content/Context; | |
// 538: aload_0 | |
// 539: getfield 44 com/android/mms/transaction/RetryScheduler:mContentResolver Landroid/content/ContentResolver; | |
// 542: getstatic 167 android/provider/Telephony$MmsSms$PendingMessages:CONTENT_URI Landroid/net/Uri; | |
// 545: aload 14 | |
// 547: new 67 java/lang/StringBuilder | |
// 550: dup | |
// 551: invokespecial 68 java/lang/StringBuilder:<init> ()V | |
// 554: ldc 70 | |
// 556: invokevirtual 74 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; | |
// 559: lload 23 | |
// 561: invokevirtual 77 java/lang/StringBuilder:append (J)Ljava/lang/StringBuilder; | |
// 564: invokevirtual 81 java/lang/StringBuilder:toString ()Ljava/lang/String; | |
// 567: aconst_null | |
// 568: invokestatic 307 android/database/sqlite/SqliteWrapper:update (Landroid/content/Context;Landroid/content/ContentResolver;Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I | |
// 571: pop | |
// 572: aload 8 | |
// 574: ifnull +10 -> 584 | |
// 577: aload 8 | |
// 579: invokeinterface 106 1 0 | |
// 584: return | |
// 585: iconst_0 | |
// 586: istore 17 | |
// 588: goto -398 -> 190 | |
// 591: invokestatic 310 com/android/mms/MmsConfig:getEnableMmsDetailVzw ()Z | |
// 594: ifeq +664 -> 1258 | |
// 597: ldc_w 311 | |
// 600: istore 20 | |
// 602: goto -294 -> 308 | |
// 605: invokestatic 310 com/android/mms/MmsConfig:getEnableMmsDetailVzw ()Z | |
// 608: ifeq +11 -> 619 | |
// 611: ldc_w 312 | |
// 614: istore 20 | |
// 616: goto -308 -> 308 | |
// 619: invokestatic 240 com/android/mms/MmsConfig:getEnableChameleon ()Z | |
// 622: ifeq +652 -> 1274 | |
// 625: ldc 242 | |
// 627: invokestatic 248 android/os/SystemProperties:get (Ljava/lang/String;)Ljava/lang/String; | |
// 630: ldc 250 | |
// 632: invokevirtual 254 java/lang/String:equalsIgnoreCase (Ljava/lang/String;)Z | |
// 635: ifeq +631 -> 1266 | |
// 638: ldc_w 313 | |
// 641: istore 20 | |
// 643: goto -335 -> 308 | |
// 646: invokestatic 310 com/android/mms/MmsConfig:getEnableMmsDetailVzw ()Z | |
// 649: ifeq +633 -> 1282 | |
// 652: ldc_w 312 | |
// 655: istore 20 | |
// 657: goto -349 -> 308 | |
// 660: invokestatic 316 com/android/mms/MmsConfig:getEnableMmsTransactionCustomize4Korea ()Z | |
// 663: istore 45 | |
// 665: iconst_0 | |
// 666: istore 20 | |
// 668: iload 45 | |
// 670: ifeq -362 -> 308 | |
// 673: invokestatic 232 com/android/mms/util/DownloadManager:getInstance ()Lcom/android/mms/util/DownloadManager; | |
// 676: aload_0 | |
// 677: lload_3 | |
// 678: invokespecial 318 com/android/mms/transaction/RetryScheduler:getResponseText (J)Ljava/lang/String; | |
// 681: invokevirtual 321 com/android/mms/util/DownloadManager:showErrorCodeToast (Ljava/lang/String;)V | |
// 684: iconst_0 | |
// 685: istore 20 | |
// 687: iconst_0 | |
// 688: istore 18 | |
// 690: goto -382 -> 308 | |
// 693: aload_0 | |
// 694: lload_3 | |
// 695: invokespecial 323 com/android/mms/transaction/RetryScheduler:getRetrieveStatus (J)I | |
// 698: istore 19 | |
// 700: iload 19 | |
// 702: sipush 228 | |
// 705: if_icmpne +62 -> 767 | |
// 708: invokestatic 232 com/android/mms/util/DownloadManager:getInstance ()Lcom/android/mms/util/DownloadManager; | |
// 711: ldc_w 324 | |
// 714: invokevirtual 235 com/android/mms/util/DownloadManager:showErrorCodeToast (I)V | |
// 717: invokestatic 316 com/android/mms/MmsConfig:getEnableMmsTransactionCustomize4Korea ()Z | |
// 720: ifeq +16 -> 736 | |
// 723: invokestatic 327 com/android/mms/MmsConfig:getEnableDeletePermanentFailure ()Z | |
// 726: istore 47 | |
// 728: iconst_0 | |
// 729: istore 18 | |
// 731: iload 47 | |
// 733: ifeq -409 -> 324 | |
// 736: aload_0 | |
// 737: getfield 36 com/android/mms/transaction/RetryScheduler:mContext Landroid/content/Context; | |
// 740: aload_0 | |
// 741: getfield 36 com/android/mms/transaction/RetryScheduler:mContext Landroid/content/Context; | |
// 744: invokevirtual 42 android/content/Context:getContentResolver ()Landroid/content/ContentResolver; | |
// 747: aload_1 | |
// 748: aconst_null | |
// 749: aconst_null | |
// 750: invokestatic 331 android/database/sqlite/SqliteWrapper:delete (Landroid/content/Context;Landroid/content/ContentResolver;Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I | |
// 753: pop | |
// 754: aload 8 | |
// 756: ifnull -172 -> 584 | |
// 759: aload 8 | |
// 761: invokeinterface 106 1 0 | |
// 766: return | |
// 767: invokestatic 316 com/android/mms/MmsConfig:getEnableMmsTransactionCustomize4Korea ()Z | |
// 770: ifeq -446 -> 324 | |
// 773: invokestatic 327 com/android/mms/MmsConfig:getEnableDeletePermanentFailure ()Z | |
// 776: ifeq -452 -> 324 | |
// 779: iload 19 | |
// 781: sipush 224 | |
// 784: if_icmpne -460 -> 324 | |
// 787: aload_0 | |
// 788: getfield 36 com/android/mms/transaction/RetryScheduler:mContext Landroid/content/Context; | |
// 791: aload_0 | |
// 792: getfield 36 com/android/mms/transaction/RetryScheduler:mContext Landroid/content/Context; | |
// 795: invokevirtual 42 android/content/Context:getContentResolver ()Landroid/content/ContentResolver; | |
// 798: aload_1 | |
// 799: aconst_null | |
// 800: aconst_null | |
// 801: invokestatic 331 android/database/sqlite/SqliteWrapper:delete (Landroid/content/Context;Landroid/content/ContentResolver;Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I | |
// 804: pop | |
// 805: aload 8 | |
// 807: ifnull -223 -> 584 | |
// 810: aload 8 | |
// 812: invokeinterface 106 1 0 | |
// 817: return | |
// 818: invokestatic 232 com/android/mms/util/DownloadManager:getInstance ()Lcom/android/mms/util/DownloadManager; | |
// 821: ldc_w 332 | |
// 824: invokevirtual 235 com/android/mms/util/DownloadManager:showErrorCodeToast (I)V | |
// 827: goto +425 -> 1252 | |
// 830: astore 9 | |
// 832: aload 8 | |
// 834: ifnull +10 -> 844 | |
// 837: aload 8 | |
// 839: invokeinterface 106 1 0 | |
// 844: aload 9 | |
// 846: athrow | |
// 847: invokestatic 232 com/android/mms/util/DownloadManager:getInstance ()Lcom/android/mms/util/DownloadManager; | |
// 850: ldc 255 | |
// 852: invokevirtual 235 com/android/mms/util/DownloadManager:showErrorCodeToast (I)V | |
// 855: goto +397 -> 1252 | |
// 858: bipush 10 | |
// 860: istore 12 | |
// 862: iload 17 | |
// 864: ifeq +295 -> 1159 | |
// 867: aload_0 | |
// 868: getfield 36 com/android/mms/transaction/RetryScheduler:mContext Landroid/content/Context; | |
// 871: aload_0 | |
// 872: getfield 36 com/android/mms/transaction/RetryScheduler:mContext Landroid/content/Context; | |
// 875: invokevirtual 42 android/content/Context:getContentResolver ()Landroid/content/ContentResolver; | |
// 878: aload_1 | |
// 879: iconst_1 | |
// 880: anewarray 187 java/lang/String | |
// 883: dup | |
// 884: iconst_0 | |
// 885: ldc_w 334 | |
// 888: aastore | |
// 889: aconst_null | |
// 890: aconst_null | |
// 891: aconst_null | |
// 892: invokestatic 87 android/database/sqlite/SqliteWrapper:query (Landroid/content/Context;Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; | |
// 895: astore 26 | |
// 897: ldc2_w 335 | |
// 900: lstore 27 | |
// 902: aload 26 | |
// 904: ifnull +39 -> 943 | |
// 907: aload 26 | |
// 909: invokeinterface 93 1 0 | |
// 914: ifeq +17 -> 931 | |
// 917: aload 26 | |
// 919: iconst_0 | |
// 920: invokeinterface 303 2 0 | |
// 925: lstore 41 | |
// 927: lload 41 | |
// 929: lstore 27 | |
// 931: aload 26 | |
// 933: ifnull +10 -> 943 | |
// 936: aload 26 | |
// 938: invokeinterface 106 1 0 | |
// 943: lload 27 | |
// 945: ldc2_w 335 | |
// 948: lcmp | |
// 949: ifeq +12 -> 961 | |
// 952: aload_0 | |
// 953: getfield 36 com/android/mms/transaction/RetryScheduler:mContext Landroid/content/Context; | |
// 956: lload 27 | |
// 958: invokestatic 342 com/android/mms/transaction/MessagingNotification:notifyDownloadFailed (Landroid/content/Context;J)V | |
// 961: invokestatic 232 com/android/mms/util/DownloadManager:getInstance ()Lcom/android/mms/util/DownloadManager; | |
// 964: aload_1 | |
// 965: sipush 135 | |
// 968: invokevirtual 285 com/android/mms/util/DownloadManager:markState (Landroid/net/Uri;I)V | |
// 971: aload_2 | |
// 972: instanceof 344 | |
// 975: ifeq -498 -> 477 | |
// 978: iconst_m1 | |
// 979: istore 29 | |
// 981: aload_0 | |
// 982: getfield 36 com/android/mms/transaction/RetryScheduler:mContext Landroid/content/Context; | |
// 985: invokevirtual 42 android/content/Context:getContentResolver ()Landroid/content/ContentResolver; | |
// 988: aload_1 | |
// 989: iconst_2 | |
// 990: anewarray 187 java/lang/String | |
// 993: dup | |
// 994: iconst_0 | |
// 995: ldc_w 346 | |
// 998: aastore | |
// 999: dup | |
// 1000: iconst_1 | |
// 1001: ldc_w 348 | |
// 1004: aastore | |
// 1005: ldc_w 350 | |
// 1008: aconst_null | |
// 1009: aconst_null | |
// 1010: invokevirtual 355 android/content/ContentResolver:query (Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor; | |
// 1013: astore 30 | |
// 1015: iconst_0 | |
// 1016: istore 31 | |
// 1018: aload 30 | |
// 1020: ifnull +51 -> 1071 | |
// 1023: aload 30 | |
// 1025: invokeinterface 93 1 0 | |
// 1030: istore 38 | |
// 1032: iconst_0 | |
// 1033: istore 31 | |
// 1035: iload 38 | |
// 1037: ifeq +27 -> 1064 | |
// 1040: aload 30 | |
// 1042: iconst_0 | |
// 1043: invokeinterface 103 2 0 | |
// 1048: istore 31 | |
// 1050: aload 30 | |
// 1052: iconst_1 | |
// 1053: invokeinterface 103 2 0 | |
// 1058: istore 39 | |
// 1060: iload 39 | |
// 1062: istore 29 | |
// 1064: aload 30 | |
// 1066: invokeinterface 106 1 0 | |
// 1071: iload 31 | |
// 1073: ifle -596 -> 477 | |
// 1076: new 357 android/content/Intent | |
// 1079: dup | |
// 1080: ldc_w 359 | |
// 1083: invokespecial 361 android/content/Intent:<init> (Ljava/lang/String;)V | |
// 1086: astore 32 | |
// 1088: aload 32 | |
// 1090: ldc_w 363 | |
// 1093: iconst_2 | |
// 1094: invokevirtual 367 android/content/Intent:putExtra (Ljava/lang/String;I)Landroid/content/Intent; | |
// 1097: pop | |
// 1098: aload 32 | |
// 1100: ldc_w 369 | |
// 1103: iconst_1 | |
// 1104: invokevirtual 367 android/content/Intent:putExtra (Ljava/lang/String;I)Landroid/content/Intent; | |
// 1107: pop | |
// 1108: aload 32 | |
// 1110: ldc_w 371 | |
// 1113: iload 31 | |
// 1115: invokevirtual 367 android/content/Intent:putExtra (Ljava/lang/String;I)Landroid/content/Intent; | |
// 1118: pop | |
// 1119: aload 32 | |
// 1121: ldc_w 373 | |
// 1124: iload 29 | |
// 1126: invokevirtual 367 android/content/Intent:putExtra (Ljava/lang/String;I)Landroid/content/Intent; | |
// 1129: pop | |
// 1130: aload_0 | |
// 1131: getfield 36 com/android/mms/transaction/RetryScheduler:mContext Landroid/content/Context; | |
// 1134: aload 32 | |
// 1136: invokevirtual 377 android/content/Context:sendBroadcast (Landroid/content/Intent;)V | |
// 1139: goto -662 -> 477 | |
// 1142: astore 40 | |
// 1144: aload 26 | |
// 1146: ifnull +10 -> 1156 | |
// 1149: aload 26 | |
// 1151: invokeinterface 106 1 0 | |
// 1156: aload 40 | |
// 1158: athrow | |
// 1159: new 211 android/content/ContentValues | |
// 1162: dup | |
// 1163: iconst_1 | |
// 1164: invokespecial 214 android/content/ContentValues:<init> (I)V | |
// 1167: astore 43 | |
// 1169: aload 43 | |
// 1171: ldc_w 379 | |
// 1174: iconst_0 | |
// 1175: invokestatic 292 java/lang/Integer:valueOf (I)Ljava/lang/Integer; | |
// 1178: invokevirtual 295 android/content/ContentValues:put (Ljava/lang/String;Ljava/lang/Integer;)V | |
// 1181: aload_0 | |
// 1182: getfield 36 com/android/mms/transaction/RetryScheduler:mContext Landroid/content/Context; | |
// 1185: aload_0 | |
// 1186: getfield 36 com/android/mms/transaction/RetryScheduler:mContext Landroid/content/Context; | |
// 1189: invokevirtual 42 android/content/Context:getContentResolver ()Landroid/content/ContentResolver; | |
// 1192: aload_1 | |
// 1193: aload 43 | |
// 1195: aconst_null | |
// 1196: aconst_null | |
// 1197: invokestatic 307 android/database/sqlite/SqliteWrapper:update (Landroid/content/Context;Landroid/content/ContentResolver;Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I | |
// 1200: pop | |
// 1201: aload_0 | |
// 1202: getfield 36 com/android/mms/transaction/RetryScheduler:mContext Landroid/content/Context; | |
// 1205: iconst_1 | |
// 1206: invokestatic 383 com/android/mms/transaction/MessagingNotification:notifySendFailed (Landroid/content/Context;Z)V | |
// 1209: goto -238 -> 971 | |
// 1212: astore 37 | |
// 1214: aload 30 | |
// 1216: invokeinterface 106 1 0 | |
// 1221: aload 37 | |
// 1223: athrow | |
// 1224: ldc 10 | |
// 1226: new 67 java/lang/StringBuilder | |
// 1229: dup | |
// 1230: invokespecial 68 java/lang/StringBuilder:<init> ()V | |
// 1233: ldc_w 385 | |
// 1236: invokevirtual 74 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; | |
// 1239: lload_3 | |
// 1240: invokevirtual 77 java/lang/StringBuilder:append (J)Ljava/lang/StringBuilder; | |
// 1243: invokevirtual 81 java/lang/StringBuilder:toString ()Ljava/lang/String; | |
// 1246: invokestatic 227 com/android/mms/Log:v (Ljava/lang/String;Ljava/lang/String;)V | |
// 1249: goto -677 -> 572 | |
// 1252: iconst_0 | |
// 1253: istore 18 | |
// 1255: goto -877 -> 378 | |
// 1258: ldc_w 386 | |
// 1261: istore 20 | |
// 1263: goto -955 -> 308 | |
// 1266: ldc_w 332 | |
// 1269: istore 20 | |
// 1271: goto -963 -> 308 | |
// 1274: ldc_w 313 | |
// 1277: istore 20 | |
// 1279: goto -971 -> 308 | |
// 1282: ldc_w 313 | |
// 1285: istore 20 | |
// 1287: goto -979 -> 308 | |
// 1290: ldc_w 387 | |
// 1293: istore 20 | |
// 1295: goto -987 -> 308 | |
// 1298: ldc_w 324 | |
// 1301: istore 20 | |
// 1303: goto -995 -> 308 | |
// 1306: ldc 255 | |
// 1308: istore 20 | |
// 1310: goto -1002 -> 308 | |
// | |
// Exception table: | |
// from to target type | |
// 62 146 830 finally | |
// 149 179 830 finally | |
// 193 225 830 finally | |
// 313 321 830 finally | |
// 340 346 830 finally | |
// 354 375 830 finally | |
// 378 388 830 finally | |
// 393 462 830 finally | |
// 467 477 830 finally | |
// 477 572 830 finally | |
// 591 597 830 finally | |
// 605 611 830 finally | |
// 619 638 830 finally | |
// 646 652 830 finally | |
// 660 665 830 finally | |
// 673 684 830 finally | |
// 693 700 830 finally | |
// 708 728 830 finally | |
// 736 754 830 finally | |
// 767 779 830 finally | |
// 787 805 830 finally | |
// 818 827 830 finally | |
// 847 855 830 finally | |
// 867 897 830 finally | |
// 936 943 830 finally | |
// 952 961 830 finally | |
// 961 971 830 finally | |
// 971 978 830 finally | |
// 981 1015 830 finally | |
// 1064 1071 830 finally | |
// 1076 1139 830 finally | |
// 1149 1156 830 finally | |
// 1156 1159 830 finally | |
// 1159 1209 830 finally | |
// 1214 1224 830 finally | |
// 1224 1249 830 finally | |
// 907 927 1142 finally | |
// 1023 1032 1212 finally | |
// 1040 1060 1212 finally | |
} | |
public static void setRetryAlarm(Context paramContext) | |
{ | |
Cursor localCursor = PduPersister.getPduPersister(paramContext).getPendingMessages(9223372036854775807L); | |
if (localCursor != null); | |
try | |
{ | |
while (localCursor.moveToNext()) | |
{ | |
long l = localCursor.getLong(localCursor.getColumnIndexOrThrow("due_time")); | |
if (l > 0L) | |
{ | |
PendingIntent localPendingIntent = PendingIntent.getService(paramContext, 0, new Intent("android.intent.action.ACTION_ONALARM", null, paramContext, TransactionService.class), 1073741824); | |
((AlarmManager)paramContext.getSystemService("alarm")).set(1, l, localPendingIntent); | |
Log.v("Mms:transaction", "[RetryScheduler] Next retry is scheduled at" + (l - System.currentTimeMillis()) + "ms from now"); | |
} | |
} | |
return; | |
} | |
finally | |
{ | |
if (localCursor != null) | |
localCursor.close(); | |
} | |
} | |
public void unregisterReceiver() | |
{ | |
try | |
{ | |
this.mContext.unregisterReceiver(this.mReceiver); | |
return; | |
} | |
catch (IllegalArgumentException localIllegalArgumentException) | |
{ | |
Log.i("Mms:transaction", "Reciever is not registered"); | |
} | |
} | |
public void update(Observable paramObservable) | |
{ | |
try | |
{ | |
Transaction localTransaction = (Transaction)paramObservable; | |
Log.v("Mms:transaction", "[RetryScheduler] update " + paramObservable); | |
if ((!(localTransaction instanceof NotificationTransaction)) && (!(localTransaction instanceof RetrieveTransaction)) && (!(localTransaction instanceof ReadRecTransaction))) | |
{ | |
boolean bool = localTransaction instanceof SendTransaction; | |
if (!bool) | |
break label101; | |
} | |
try | |
{ | |
TransactionState localTransactionState = localTransaction.getState(); | |
if (localTransactionState.getState() == 2) | |
{ | |
Uri localUri = localTransactionState.getContentUri(); | |
if (localUri != null) | |
scheduleRetry(localUri, localTransaction); | |
} | |
localTransaction.detach(this); | |
label101: return; | |
} | |
finally | |
{ | |
localTransaction.detach(this); | |
} | |
} | |
finally | |
{ | |
setRetryAlarm(this.mContext); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment