[Galaxy Note II Android Development] grgsiocl:
This mod has been done by the lidroid and i am writing the guide here, so that it can be used in custom ROMS

What it does?

All the applications which are installed in app drawer are available in flashbar! Even if new apps are installed, then those apps are also available in flashbar...hence you dont need any apk to control or add the applications in flashbar!

Must Have

1. Apktool

2. Some knowledge about compiling and decompiling

3. 7zip

4. notepad++

5. backsmali

How to

1. Decompile the flashbarservice.apk which is available in system/app

Go to flashbarservice\smali\com\sec\android\app\FlashBarService\FlashBarInfo.smali

Open the file FlashBarInfo.smali using notepad++

search for method .method public generateFlashBarList()V

and change the following code from

const-string v8, "android.intent.category.MULTIWINDOW_LAUNCHER"

to

const-string v8, "android.intent.category.LAUNCHER"

Now Save and recompile it and the first part is done!

2. Decompile services.jar which is available in system/framework folder

and go to services.jar.out\smali\com\android\server\am\MultiWindowManagerService.smali

Open the file MultiWindowManagerService.smali using notepad++ and search for following method .method public isSupportApp(Ljava/lang/String;)Z

Change the code from

.method public isSupportApp(Ljava/lang/String;)Z
.locals 1

iget-object v0, p0, Lcom/android/server/am/MultiWindowManagerService;->mSupportAppList:Ljava/util/ArrayList;

invoke-virtual {v0, p1}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z

to. or insert the code ++ before iget-object v0, p0

.method public isSupportApp(Ljava/lang/String;)Z
.locals 1

++const/4 v0, 0x1

++goto :goto_0 (goto_0 will change based on the diif services.jar. Just scroll down in the code and you will see goto_X and replace with this one or else follow the easiset code given below)

iget-object v0, p0, Lcom/android/server/am/MultiWindowManagerService;->mSupportAppList:Ljava/util/ArrayList;

easiest one! Replace the entire second part code with this one - Thanks to LegendK95 for tip!

.method public isSupportApp(Ljava/lang/String;)Z
.registers 2
.prologue

const/4 v0, 0x1
return v0
.end method

Make the above said changes and save it. Recompile and flash the same!

After flashing, you will see all apps in app drawer will be listed in multiwindow / flashbar...Search for flashbar in data/data and then delete the folder. Now reboot...You will have all the apps in flashbar in sorted order!

UPDATE: TO REMOVE THE LAGY WHEN YOU HAVE MORE APPLICATIONS IN FLASHBAR

As i said abover make all necessary changes and also make changes in the following files in order to remove the laginess when you have more apps installed!

Decompile flashbarservice.apk and go to

flashbarservice/smali/com/sec/android/app/FlashBarService/AppListEditWindow.smali and open the file

enter all the codes which is mentioned in ++ and remove the codes which is mentioned in --

# direct methods
+.method static constructor <clinit>()V
+ .locals 1
+
+ const-string v0, "lidroid-flashbar"
+
+ invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
+
+ return-void
+.end method
+
.method public constructor <init>(Landroid/content/Context;Lcom/sec/android/app/FlashBarService/AppListWindow;Lcom/sec/android/app/FlashBarService/FlashBarInfo;)V
.locals 3

return-object v0
.end method

+.method private native getIndexByViewPosition(I)I
+.end method
+
+.method private native getViewPositionByIndex(I)I
+.end method
+
.method private makeAppListEditLayout()V
.locals 4

.method public getImageViewByIndex(I)Landroid/view/View;
.locals 2

+ invoke-direct {p0, p1}, Lcom/sec/android/app/FlashBarService/AppListEditWindow;->getViewPositionByIndex(I)I
+
+ move-result v0
+
iget-object v1, p0, Lcom/sec/android/app/FlashBarService/AppListEditWindow;->mEditGridView:Landroid/widget/GridView;

- invoke-virtual {v1, p1}, Landroid/widget/GridView;->getChildAt(I)Landroid/view/View;
+ invoke-virtual {v1, v0}, Landroid/widget/GridView;->getChildAt(I)Landroid/view/View;

move-result-object v0

:cond_0
:goto_1
+ invoke-direct {p0, v0}, Lcom/sec/android/app/FlashBarService/AppListEditWindow;->getIndexByViewPosition(I)I
+
+ move-result v0
+
return v0

:cond_1

then copy the Myapplication.smali at flashbarservice_lidroid\smali\com\sec\android\app\FlashBarService

Compile back and done!

Note: Before flashing make sure to include the liblidroid-flashbar.so file in lib folder without fail!

Attached the lib file along with smali file! Extract and flash according to instructions given above!

Credits

Lidroid