[Galaxy Note Pro 12.2 Android Development] civato:
27/Jun/2016: UPDATE package Rev3.3 released:

27/Jun/2016: UPDATE package Rev3.3 released SEE OP for download:

Notification background color & text

Listview animation (animate your listview in apps and system)

BatteryBar

Immersive mode statusbar (full screen on or off)

Dynamic Statusbar mode (doesn't work when you selected a color with Potato Statusbar color)

Statusbar Icon color.

Some errors removed from advanced settings app

Layout fix for the Quicklauncher drawer in Landscape and portrait mode (added some coding into the quicklaunchercontainer and quicklauncherbutton smalis , looking to the x/y points in the correct way for the tablet layout and changed the floating size for the app icons. it was originally coded for use on a phone)

Device info in expanded statusbar added (was already in update package Rev3.2 but I didn't mention that.

Now the smali code changes for the people that are interested.

In QuickLaunchButton.smali

Look for : .method public constructor <init>(Landroid/content/Context;Ljava/lang/String;)V

I show you the code of the smali where it puts out the layout of the app container = image and text view

The red code is replaced by the green code. This will make the image of the app look smaller. I can tell you a little more about the first codes so you understand a little more of what this code is doing. I will put the remarks in blue

# direct methods
.method public constructor <init>(Landroid/content/Context;Ljava/lang/String;)V
.locals 10

const/16 v9, [COLOR=RoyalBlue]0x11[/COLOR] [COLOR=RoyalBlue]= [/COLOR][COLOR=RoyalBlue]Place the object in the center of its container in both the vertical and horizontal axis, not changing its size. [/COLOR][COLOR=RoyalBlue][COLOR=RoyalBlue]You see here that the layout gravity (0x11) is stored in v9. In this case it is a 16bit constant value.[/COLOR] [/COLOR][COLOR=RoyalBlue][/COLOR]
const/4 v8, [COLOR=RoyalBlue]0x1[/COLOR] [COLOR=RoyalBlue]= Place object in the horizontal center of its container, not changing its size. Layout gravity (0x1 is stored in v8. In this case it is a 4bit constant value)[/COLOR]

const/4 v7, -0x1

invoke-direct {p0, p1}, Landroid/widget/LinearLayout;-><init>(Landroid/content/Context;)V

iput-object p1, p0, Lcom/android/systemui/statusbar/policy/quicklaunch/QuickLaunchButton;->mContext:Landroid/content/Context;

invoke-virtual {p0, [COLOR=RoyalBlue]v8[/COLOR]}, Lcom/android/systemui/statusbar/policy/quicklaunch/QuickLaunchButton;->setOrientation(I)V [COLOR=RoyalBlue]Look at the v8 here, it sets the orientation of the Button that exist out of the app image and text.[/COLOR]
new-instance v4, Landroid/widget/TextView; [COLOR=RoyalBlue]Here begins the layout for the Text of the app.[/COLOR]

invoke-direct {v4, p1}, Landroid/widget/TextView;-><init>(Landroid/content/Context;)V

iput-object v4, p0, Lcom/android/systemui/statusbar/policy/quicklaunch/QuickLaunchButton;->mButtonText:Landroid/widget/TextView;

iget-object v4, p0, Lcom/android/systemui/statusbar/policy/quicklaunch/QuickLaunchButton;->mButtonText:Landroid/widget/TextView;

new-instance v5, Landroid/view/ViewGroup$LayoutParams;

const/4 v6, -0x2

invoke-direct {v5, v7, v6}, Landroid/view/ViewGroup$LayoutParams;-><init>(II)V

invoke-virtual {v4, v5}, Landroid/widget/TextView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V

iget-object v4, p0, Lcom/android/systemui/statusbar/policy/quicklaunch/QuickLaunchButton;->mButtonText:Landroid/widget/TextView;

invoke-virtual {v4, [COLOR=RoyalBlue]v9[/COLOR]}, Landroid/widget/TextView;->setGravity(I)V [COLOR=RoyalBlue]So here you see that the app text that is stored in v4 will be set to v9 that represents the constant value 0x11[/COLOR]

new-instance v4, Landroid/widget/ImageView; [COLOR=RoyalBlue]Here begins the layout for the image of the app.[/COLOR]

invoke-direct {v4, p1}, Landroid/widget/ImageView;-><init>(Landroid/content/Context;)V

iput-object v4, p0, Lcom/android/systemui/statusbar/policy/quicklaunch/QuickLaunchButton;->mButtonImage:Landroid/widget/ImageView;

[COLOR=Red]const/high16 v4, 0x42340000 # 45.0f
[COLOR=SeaGreen] const/high16 v4, 0x420c0000 # 35.0f[/COLOR]
[/COLOR]
invoke-virtual {p0}, Lcom/android/systemui/statusbar/policy/quicklaunch/QuickLaunchButton;->getResources()Landroid/content/res/Resources;

move-result-object v5

invoke-virtual {v5}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics; [COLOR=RoyalBlue]Here is will look for the size of the devices display. and it stores this in v5[/COLOR]

move-result-object v5

invoke-static {[COLOR=Blue]v8, v4, v5[/COLOR]}, Landroid/util/TypedValue;->applyDimension(IFLandroid/util/DisplayMetrics;)F [COLOR=RoyalBlue]Here you see a combination of three values, first v8 witch is the 0x1 constant value the layout remember.[/COLOR] [COLOR=RoyalBlue]Now look at the v4, this is the floating size that I changed. The v5 is the display size that was stored in v5. This result of the 3 values is stored into v4, see the next line.[/COLOR]
move-result v4

float-to-int v0, v4 [COLOR=Blue]here you see the v4 value (witch is a float value) of the line above will be converted to a integer value and stored into v0.[/COLOR]

new-instance v3, Landroid/widget/LinearLayout$LayoutParams; [COLOR=Blue]v3 here is a new instance that uses the linear layout of android and here will be the parameters be stored.[/COLOR]

invoke-direct {v3, v7, v0}, Landroid/widget/LinearLayout$LayoutParams;-><init>(II)V [COLOR=Blue]look here, the v3 from the line above, the v7 from the beginning of the code I think it means to leave no space, and then the v0 that was the flat value converted to a integer.[/COLOR] [COLOR=RoyalBlue]All of this is stored in v3[/COLOR]
iput v9, v3, Landroid/widget/LinearLayout$LayoutParams;->gravity:I [COLOR=RoyalBlue]Now we see the layout of the app image, a combination of the v3 value ( the integer value was stored here) and the v9 (0x11) constant value[/COLOR]

Now look into

QuickLaunchContainer.smali

I will explain with blue code and red for the code deleted and the green for new code.

# direct methods
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.locals 7

[COLOR=Red] const/4 v6, 0x5[/COLOR]
[COLOR=Red] [COLOR=SeaGreen]const/4 v6, 0x6 [COLOR=RoyalBlue]Here I put six so the default shown apps (on a clean install) will be 6 in the quicklaunchdrawer. The value 0x6 is stored in v6 and will pop up in the line below[/COLOR][/COLOR][/COLOR]

const/4 v5, 0x0

invoke-direct {p0, p1, p2}, Landroid/widget/LinearLayout;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V

iput [COLOR=RoyalBlue]v6[/COLOR], p0, Lcom/android/systemui/statusbar/policy/quicklaunch/QuickLaunchContainer;->mNumVisButtons:I [COLOR=RoyalBlue]Here it is, the 0x6 that is stored in the v6.[/COLOR]

.................................................
[COLOR=RoyalBlue]Now in the same method a bit lower[/COLOR]

................................................
new-instance v1, Landroid/graphics/Point;

invoke-direct {v1}, Landroid/graphics/Point;-><init>()V

[COLOR=Red] invoke-virtual {v0, v1}, Landroid/view/Display;->getSize(Landroid/graphics/Point;)V

iget v2, v1, Landroid/graphics/Point;->x:I[/COLOR]
[COLOR=Red]
[/COLOR]
[COLOR=Green] [B]invoke-virtual {v0, v1}, Landroid/view/Display;->getRealSize(Landroid/graphics/Point;)V[/B] [COLOR=RoyalBlue]Here I changed the way it will look for the display size, I use the "Real" size with getRealSize instead of the getSize code. (This g[/COLOR][/COLOR][COLOR=Green][COLOR=RoyalBlue]ets the real size of the display without subtracting any window decor or applying any compatibility scale factors. while the [/COLOR][/COLOR][COLOR=Green][COLOR=RoyalBlue]getSize Gets the size of the display, in pixels. )[/COLOR][/COLOR]
[COLOR=Green][COLOR=RoyalBlue] [/COLOR]
[B] iget v2, v1, Landroid/graphics/Point;->y:I[/B] [COLOR=RoyalBlue]Here I swap the x-axis ( is the horizontal value) with the y-axis is the vertical line. With our pro tablet we use it most of the time in landscape mode making the y axis really our horizontal line where in the phone it is the other way[/COLOR][/COLOR]
[COLOR=Green][COLOR=RoyalBlue][/COLOR][/COLOR]

iput v2, p0, Lcom/android/systemui/statusbar/policy/quicklaunch/QuickLaunchContainer;->mWidth:I [COLOR=RoyalBlue]All the above comes to this point the input of the width of the quicklaunch container (the place where the apps and text are placed, remember the previous smali)[/COLOR]
[COLOR=RoyalBlue][/COLOR]
invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/quicklaunch/QuickLaunchContainer;->loadSettings()V

.method private loadSettings()V
.locals 9

const/4 v6, 0x0

const/4 v5, 0x1

iget-object v4, p0, Lcom/android/systemui/statusbar/policy/quicklaunch/QuickLaunchContainer;->mContext:Landroid/content/Context;

invoke-virtual {v4}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;

move-result-object v4

const-string v7, "quick_launch_vis_buttons"

[COLOR=Red] const/4 v8, 0x5[/COLOR]
[COLOR=SeaGreen] const/4 v8, 0x6 [COLOR=RoyalBlue]Remember that I put in the other method to set 6 visible quicklauncher apps (this is a factor that also has a effect of the space between the apps shown in the quicklaunch drawer (container) [/COLOR][/COLOR]

invoke-static {v4, v7, v8}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v4

.method protected onConfigurationChanged(Landroid/content/res/Configuration;)V [COLOR=RoyalBlue]This is the method that will recalculate the layout of the quicklaunch container when there is a change or when you turn your tablet from portrait mode to landscape(our most used tablet mode) and the way around.[/COLOR]
.locals 5

invoke-super {p0, p1}, Landroid/widget/LinearLayout;->onConfigurationChanged(Landroid/content/res/Configuration;)V

iget-object v3, p0, Lcom/android/systemui/statusbar/policy/quicklaunch/QuickLaunchContainer;->mWindowManager:Landroid/view/WindowManager;

invoke-interface {v3}, Landroid/view/WindowManager;->getDefaultDisplay()Landroid/view/Display;

move-result-object v0

new-instance v1, Landroid/graphics/Point;

invoke-direct {v1}, Landroid/graphics/Point;-><init>()V

[COLOR=Red] invoke-virtual {v0, v1}, Landroid/view/Display;->getSize(Landroid/graphics/Point;)V

iget v2, v1, Landroid/graphics/Point;->x:I[/COLOR]

[COLOR=Green] invoke-virtual {v0, v1}, Landroid/view/Display;->getRealSize(Landroid/graphics/Point;)V [COLOR=RoyalBlue]Same reason as explained in the method above.[/COLOR]

iget v2, v1, Landroid/graphics/Point;->y:I[/COLOR]

iget v3, p1, Landroid/content/res/Configuration;->orientation:I

const/4 v4, 0x2

if-ne v3, v4, :cond_1

iput v2, p0, Lcom/android/systemui/statusbar/policy/quicklaunch/QuickLaunchContainer;->mWidth:I

invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/quicklaunch/QuickLaunchContainer;->addButtons()V

:cond_0
:goto_0
return-void

:cond_1
[COLOR=SeaGreen] new-instance v1, Landroid/graphics/Point; [COLOR=RoyalBlue]This part of code I added so it would recalculate the quicklaunch container width when turning your tablet (remember this code was for the phone layout). With the difference that it will take the x-axis to calculate the width of the quicklaunch container. Before adding this code it would look if the orientation of the screen was changed but then with the phone layout in mind that the portrait mode is the most used on a phone.[/COLOR]
invoke-direct {v1}, Landroid/graphics/Point;-><init>()V

invoke-virtual {v0, v1}, Landroid/view/Display;->getRealSize(Landroid/graphics/Point;)V

iget v2, v1, Landroid/graphics/Point;->x:I[/COLOR]

iget v3, p1, Landroid/content/res/Configuration;->orientation:I

const/4 v4, 0x1

if-ne v3, v4, :cond_0

iput v2, p0, Lcom/android/systemui/statusbar/policy/quicklaunch/QuickLaunchContainer;->mWidth:I

invoke-direct {p0}, Lcom/android/systemui/statusbar/policy/quicklaunch/QuickLaunchContainer;->addButtons()V

goto :goto_0
.end method

I hope it was helpful and you know how much time it takes to go true the code and adding stuff when wanting to change just a small thing like a layout.