[Android General] Abdullaharis:
Continued.

Final part

( Mms.apk )

1.Decompile Mms.apk

2.Download breathingmms.zip from attachment. Extract and copy files to your decompiled Mms

3.Recompile and Decompile Mms (For id's)

4.Open Mms\smali\com\android\mms\transaction\MessagingNotification.smali

find below method

.method private static final addSmsNotificationInfos(Landroid/content/Context;Ljava/util/Set;Ljava/util/SortedSet;)V

replace whole method with this

.method private static final addSmsNotificationInfos(Landroid/content/Context;Ljava/util/Set;Ljava/util/SortedSet;)V
.locals 21
.param p0, "context" # Landroid/content/Context;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/util/Set",
"<",
"Ljava/lang/Long;",
">;",
"Ljava/util/SortedSet",
"<",
"Lcom/android/mms/transaction/MessagingNotification$NotificationInfo;",
">;)V"
}
.end annotation

.prologue
.line 929
.local p1, "threads":Ljava/util/Set;, "Ljava/util/Set<Ljava/lang/Long;>;"
.local p2, "notificationSet":Ljava/util/SortedSet;, "Ljava/util/SortedSet<Lcom/android/mms/transaction/MessagingNotification$NotificationInfo;>;"
invoke-virtual/range {p0 .. p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v3

.line 930
.local v3, "resolver":Landroid/content/ContentResolver;
sget-object v4, Landroid/provider/Telephony$Sms;->CONTENT_URI:Landroid/net/Uri;

sget-object v5, Lcom/android/mms/transaction/MessagingNotification;->SMS_STATUS_PROJECTION:[Ljava/lang/String;

const-string v6, "(type = 1 AND seen = 0)"

const/4 v7, 0x0

const-string v8, "date desc"

move-object/from16 v2, p0

invoke-static/range {v2 .. v8}, Landroid/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;

move-result-object v17

.line 934
.local v17, "cursor":Landroid/database/Cursor;
if-nez v17, :cond_0

.line 982
:goto_0
return-void

.line 939
:cond_0
:goto_1
:try_start_0
invoke-interface/range {v17 .. v17}, Landroid/database/Cursor;->moveToNext()Z

move-result v2

if-eqz v2, :cond_4

.line 940
const/4 v2, 0x2

move-object/from16 v0, v17

invoke-interface {v0, v2}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;

move-result-object v6

.line 941
.local v6, "address":Ljava/lang/String;
invoke-static {v6}, Lcom/android/mms/ui/MessageUtils;->isWapPushNumber(Ljava/lang/String;)Z

move-result v2

if-eqz v2, :cond_1

.line 942
const-string v2, ":"

invoke-virtual {v6, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;

move-result-object v19

.line 943
.local v19, "mAddresses":[Ljava/lang/String;
invoke-virtual/range {p0 .. p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;

move-result-object v2

const v4, 0x7f070010

invoke-virtual {v2, v4}, Landroid/content/res/Resources;->getInteger(I)I

move-result v2

aget-object v6, v19, v2

.line 947
.end local v19 # "mAddresses":[Ljava/lang/String;
:cond_1
const/4 v2, 0x0

invoke-static {v6, v2}, Lcom/android/mms/data/Contact;->get(Ljava/lang/String;Z)Lcom/android/mms/data/Contact;

move-result-object v15

.line 948
.local v15, "contact":Lcom/android/mms/data/Contact;
invoke-virtual {v15}, Lcom/android/mms/data/Contact;->getSendToVoicemail()Z

move-result v2

if-nez v2, :cond_0

.line 953
const/4 v2, 0x3

move-object/from16 v0, v17

invoke-interface {v0, v2}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;

move-result-object v7

.line 954
.local v7, "message":Ljava/lang/String;
const/4 v2, 0x0

move-object/from16 v0, v17

invoke-interface {v0, v2}, Landroid/database/Cursor;->getLong(I)J

move-result-wide v9

.line 955
.local v9, "threadId":J
const/4 v2, 0x1

move-object/from16 v0, v17

invoke-interface {v0, v2}, Landroid/database/Cursor;->getLong(I)J

move-result-wide v12

.line 956
.local v12, "timeMillis":J
const/4 v2, 0x4

move-object/from16 v0, v17

invoke-interface {v0, v2}, Landroid/database/Cursor;->getInt(I)I

move-result v11

.line 957
.local v11, "subId":I
const/4 v2, 0x5

move-object/from16 v0, v17

invoke-interface {v0, v2}, Landroid/database/Cursor;->getString(I)Ljava/lang/String;

move-result-object v20

.line 959
.local v20, "msgId":Ljava/lang/String;
const-string v2, "Mms"

const/4 v4, 0x2

invoke-static {v2, v4}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z

move-result v2

if-eqz v2, :cond_2

.line 961
const-string v2, "Mms"

new-instance v4, Ljava/lang/StringBuilder;

invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V

const-string v5, "addSmsNotificationInfos: count="

invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v4

invoke-interface/range {v17 .. v17}, Landroid/database/Cursor;->getCount()I

move-result v5

invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

move-result-object v4

const-string v5, ", addr="

invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v4

invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v4

const-string v5, ", thread_id="

invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

move-result-object v4

invoke-virtual {v4, v9, v10}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

move-result-object v4

invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

move-result-object v4

invoke-static {v2, v4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

.line 966
:cond_2
const/4 v5, 0x1

const/4 v8, 0x0

const/4 v14, 0x0

const/16 v16, 0x0

move-object/from16 v4, p0

invoke-static/range {v4 .. v16}, Lcom/android/mms/transaction/MessagingNotification;->getNewMessageNotificationInfo(Landroid/content/Context;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;JIJLandroid/graphics/Bitmap;Lcom/android/mms/data/Contact;I)Lcom/android/mms/transaction/MessagingNotification$NotificationInfo;

move-result-object v18

.line 970
.local v18, "info":Lcom/android/mms/transaction/MessagingNotification$NotificationInfo;
invoke-static {}, Lcom/android/mms/ui/MessageUtils;->isMailboxMode()Z

move-result v2

if-eqz v2, :cond_3

.line 971
move-object/from16 v0, v18

iget-object v2, v0, Lcom/android/mms/transaction/MessagingNotification$NotificationInfo;->mClickIntent:Landroid/content/Intent;

sget-object v4, Landroid/provider/Telephony$Sms;->CONTENT_URI:Landroid/net/Uri;

move-object/from16 v0, v20

invoke-static {v4, v0}, Landroid/net/Uri;->withAppendedPath(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;

move-result-object v4

invoke-virtual {v2, v4}, Landroid/content/Intent;->setData(Landroid/net/Uri;)Landroid/content/Intent;

.line 974
:cond_3
move-object/from16 v0, p2

move-object/from16 v1, v18

invoke-interface {v0, v1}, Ljava/util/SortedSet;->add(Ljava/lang/Object;)Z

.line 976
invoke-static {v9, v10}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

move-result-object v2

move-object/from16 v0, p1

invoke-interface {v0, v2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z

.line 977
const/4 v2, 0x0

move-object/from16 v0, v17

invoke-interface {v0, v2}, Landroid/database/Cursor;->getLong(I)J

move-result-wide v4

invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

move-result-object v2

move-object/from16 v0, p1

invoke-interface {v0, v2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0

goto/16 :goto_1

.line 980
.end local v6 # "address":Ljava/lang/String;
.end local v7 # "message":Ljava/lang/String;
.end local v9 # "threadId":J
.end local v11 # "subId":I
.end local v12 # "timeMillis":J
.end local v15 # "contact":Lcom/android/mms/data/Contact;
.end local v18 # "info":Lcom/android/mms/transaction/MessagingNotification$NotificationInfo;
.end local v20 # "msgId":Ljava/lang/String;
:catchall_0
move-exception v2

invoke-interface/range {v17 .. v17}, Landroid/database/Cursor;->close()V

throw v2

:cond_4
invoke-interface/range {v17 .. v17}, Landroid/database/Cursor;->close()V

goto/16 :goto_0
.end method

find and replace id's

find below method

.method private static updateNotification(Landroid/content/Context;JILjava/util/SortedSet;)V

replace whole method with this texts

find and replace id's

5.Compile Mms and move to your device

if it is showing any error while compiling. you can use Compiled Mms.apk from attachment

Enjoy...:cool: