[Galaxy Note 3 Android Development] BongOfWar:
Modding - Tweaks - General Changes - Information Sharing​

Hi all firstly i would like to say i am very much still a learner when it come to Android modding and have only been doing this for a couple of months as something new to keep me learning, This is just a thread i am using to keep some of the information and edits i utilise, due to the fact i have 6 kids busy life and bad memory i thought it a good idea to keep this somewhere besides my PC for future reference.

Thread Requirements.

1. Basic knowledge of compiling and decompiling apk and jar files so they can be edited.

2. Notepad++ Download

3. APK editing tool - I have been using APK Multi Tool Version 2.0 WIP

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

I will start with CustomSettings.apk as i am editing quite often at this time,

I take no credit for this amazing apk that credit goes completely to ficeto

All drawable icons unless already included will have to be added by the modder

Adding CustomSettings.apk to SecSettings

Firstly you will need to register customsettings to your system to do this

1. pull/extract your SecSettings.apk and decompile it

2.open res/xml/display_headers add line anywhere in display_headers ( where you place it will vary where its shown in phone menu )

Example i placed mine just after the line

Code i placed mine after

<header android:id="@id/setting_search">
<intent android:targetPackage="com.android.settings" android:targetClass="com.android.settings.search.SearchMain" />
</header>

Code to add to display_headers

<header android:title="@string/BlaizzrRom" />
<header android:icon="@drawable/ic_settings_blaizzr" android:title="@string/Rom_Ext_Fea">
<intent android:targetPackage="com.ficeto.customsettings" android:action="android.intent.action.MAIN" android:targetClass="com.ficeto.customsettings.RandomActivity" />
</header>

Now open res/values/strings.xml and add these lines, You can change the highlighted text in RED to whatever you want to display in you'r menu, The GREEN highlight text is the Category text

Code to add to Strings[/B

<string name="Rom_Ext_Fea">[COLOR="Red"]Extended Features[/COLOR]</string>
<string name="BlaizzrRom">[COLOR="Lime"]Blaizzr Rom Settings[/COLOR]</string>

Save\ Recompile Secsettings\ Ensure CustomSettings.apk is already on phone and permissions set correct, push SecSettings to phone set permissions restart and you should now have your extended menu displayed.

It wont really do much ATM until there are some options added..

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Naming CustomSettings Menu

Once you have CustomSettings registered to your system you may want to rename to new menu to better suit your custom rom, To do this

1. decompile Customsettins.apk

2. go res/value/strings.xml

3 Find the entry named " app_name " change this to whatever you want the new menu to be registered as within your system.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

CustomSettings clickable changing menu headers ( pics )

This one has abit more to it to follow, i will try and make it easy to understand ( sorry if it gets confusing )

1. select 2 pics you wish to use for your headers, name them to easily identify, preferably bnp format but it does not matter to much, i have used gif,jpeg and other with success ( gifs dont animate though )

2. add selected pics to customsettings/res/drawable

3. in same drawable folder create 2 new xml files call these anything you like but it may be usefull to name them something like "rombanner01" & rombanner02 for easy callback

4. in rombanner01.xml add this code ( red highlight area is where you add the name of your pic, same pic name in both entries )

<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/[COLOR="Red"]addsecondpicnamehere[/COLOR]" />
<item android:state_selected="true" android:drawable="@drawable/[COLOR="Red"]addsecondpicnamehere[/COLOR]" />
<item android:drawable="@drawable/rombanner02" />
</selector>

5. in rombanner02 add this code ( red highlight area is where you add the name of your other pic )

<?xml version="1.0" encoding="utf-8"?>
<animation-list android:oneshot="true"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="3000" android:drawable="@drawable/[COLOR="Red"]addfirstpicnamehere[/COLOR]" />
</animation-list>

6.goto res/loyout and create a new xml file ( name it anything you want for this guide i will use rombanner.xml) add this code

In this code set android:layout_width to the screen width of your device, --- change android:layout_height to the height you want your pic to display at.

<?xml version="1.0" encoding="utf-8"?>
<ImageView android:layout_gravity="center" android:paddingBottom="3.0dip" android:clickable="true" android:layout_width="1080.0px" android:layout_height="225.0px" android:src="@drawable/rombanner01" android:scaleType="fitXY"
xmlns:android="http://schemas.android.com/apk/res/android" />

7. Now ensure all these new xml files are saved. Now open res/xml/prefences.xml

add this code right below the xmlns:android="http://schemas.android.com/apk/res/android"> line of text ( highlighed red text is where you add the name of your new layout.xml )

<PreferenceScreen android:layout="@layout/[COLOR="Red"]rombanner[/COLOR]" android:selectable="true" android:key="rom_logo" />

Now recompile your customsettings push to phone and set correct properties and check your new menu you should now have your pic at top of new menu page and when you press it it should switch to your alt picture.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

CustomSettings general pages setup

Everything related to page setup is basically controlled by the res/xml/preferences.xml

to setup a basic page you would use code ( the space between the code would be filled with your code for on that page.

<PreferenceScreen android:title="Basic Apps Control" android:summary="Control over some of the included applications">

</PreferenceScreen>

Above code will create a page called Basic Apps Control, with a subtext of Control over some of the included applications

CustomSettings adding sub-header / Category

This is used to split pages into sub Categories the code is

<PreferenceCategory android:title="Application Selection">

</PreferenceCategory>

Above code will create a category called Application selection.

To utilise together we just add them together, Firstly we create the page itself then we add the sub category like so

<PreferenceScreen android:title="Basic Apps Control" android:summary="Control over some of the included applications">
<PreferenceCategory android:title="Application Selection">

</PreferenceCategory>
</PreferenceScreen>

adding your code between them will add the that item to this page in this category. eg

<PreferenceScreen android:title="Basic Apps Control" android:summary="Control over some of the included applications">
<PreferenceCategory android:title="Application Selection">
<Preference android:icon="@drawable/ic_SuperSu" android:title="SuperSu" android:key="activity;eu.chainfire.supersu;eu.chainfire.supersu.MainActivity" android:summary="Root Access Control" />
</PreferenceCategory>
</PreferenceScreen>

Will add a tab for superSu and launch the application upon being selected

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

This is just the start there is much more to come, sorry i can only add info as i get chance and i will continue to add as i go, if there are any questions or anything else please ask, and if you have any guides you would like to share then please let me know and i will add/link them

Hope this helps someone somewhere and not just me lol

BongOfWar

3minit quick launch and S Finder, Quick Connect on one panel with toggle Android L

First i take no credit for the quick launch mod that belongs to [MENTION=4619873]gharrington[/MENTION]

You will need to download 3minit quick launcher smali from here

Just grab the smali files as the codes on there do not work for Lillipop.

now decompile SystemUI.apk and goto..

SystemUI.apk\res\layout open quick_connect_layout_zero.xml

Change it to following:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical" android:id="@id/sfinder_qconnect_layout" android:background="@drawable/quick_connect_layout_bg" android:focusable="true" android:descendantFocusability="afterDescendants" android:layout_width="fill_parent" android:layout_height="@dimen/finder_connect_layout_height"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<HorizontalScrollView android:scrollbars="none" android:layout_width="fill_parent" android:layout_height="@dimen/3minit_quick_layout_height">
<com.android.systemui.statusbar.policy.quicklaunch.QuickLaunchContainer android:gravity="center" android:layout_width="wrap_content" android:layout_height="@dimen/3minit_quick_layout_height" android:layout_centerHorizontal="true" />
</HorizontalScrollView>
<LinearLayout android:orientation="vertical" android:id="@id/sfinder_qconnect_layout" android:focusable="true" android:descendantFocusability="afterDescendants" android:layout_width="fill_parent" android:layout_height="@dimen/finder_connect_layout_height">
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:paddingLeft="@dimen/finder_connect_button_padding_right" android:paddingTop="@dimen/finder_connect_button_padding_top" android:paddingRight="@dimen/finder_connect_button_padding_left" android:paddingBottom="@dimen/finder_connect_button_padding_bottom" android:focusable="true" android:descendantFocusability="afterDescendants" android:layout_width="fill_parent" android:layout_height="wrap_content">
<RelativeLayout android:id="@id/sfinder_button_layout" android:background="@drawable/ripple_drawable" android:focusable="true" android:nextFocusLeft="@id/quick_connect_button_layout" android:nextFocusRight="@id/quick_connect_button_layout" android:clickable="true" android:layout_width="0.0dip" android:layout_height="@dimen/finder_connect_button_height" android:layout_weight="0.5" android:layout_marginEnd="9.0dip">
<TextView android:textSize="@dimen/tw_quick_panel_sfinder_qconnect_button_text_size" android:textColor="@drawable/tw_quick_panel_sfinder_qconnect_button_text_color" android:gravity="center" android:id="@id/sfinder_button_big" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/accessibility_sfinder_button" android:singleLine="true" android:drawableLeft="@drawable/tw_quick_panel_quick_sfinder_button_image" android:drawablePadding="@dimen/tw_quick_panel_sfinder_qconnect_drawable_padding" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:fontFamily="sec-roboto-light" />
</RelativeLayout>
<ImageView android:id="@id/expanded_divider_3" android:background="@color/quickpanel_button_divider_color" android:layout_width="1.0dip" android:layout_height="17.0dip" android:layout_marginTop="18.0dip" android:layout_marginBottom="18.0dip" android:alpha="@dimen/quickpanel_button_divider_alpha" android:layout_toStartOf="@id/sfinder_button_layout" />
<RelativeLayout android:id="@id/quick_connect_button_layout" android:background="@drawable/ripple_drawable" android:focusable="true" android:nextFocusLeft="@id/sfinder_button_layout" android:nextFocusRight="@id/sfinder_button_layout" android:clickable="true" android:layout_width="0.0dip" android:layout_height="@dimen/finder_connect_button_height" android:layout_weight="0.5" android:layout_marginStart="9.0dip">
<TextView android:textSize="@dimen/tw_quick_panel_sfinder_qconnect_button_text_size" android:textColor="@drawable/tw_quick_panel_sfinder_qconnect_button_text_color" android:gravity="center" android:id="@id/qconnect_button_big" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/accessibility_qconnect_button" android:singleLine="true" android:drawableLeft="@drawable/tw_quick_panel_quick_qconnect_button_image" android:drawablePadding="@dimen/tw_quick_panel_sfinder_qconnect_drawable_padding" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:fontFamily="sec-roboto-light" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>

Now goto SystemUI\res\values\dimens.xml search for "finder_connect_layout_height"

Change code in Red, Add code in Green

<dimen name="finder_connect_layout_height">[COLOR="Red"]132.0dip[/COLOR]</dimen>
[COLOR="Green"]<dimen name="3minit_quick_layout_height">75.0dip</dimen>[/COLOR]

Toggle

Goto SystemUI\smali\com\android\systemui\statusbar\phone\PhoneStatusBar.smali

search for code "iget-object v8, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mQconnectSfinderView:Lcom/android/systemui/statusbar/QconnectSfinderView;

" (( I use this line as only had 1 line of this in smali ) if you find more than 1 of this line let me know and i will edit guide )

Directly below this code add

iget-object v0, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mContext:Landroid/content/Context;

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

move-result-object v0

const-string v1, "3minit_quick_connect_toggle"

const/4 v2, 0x0

invoke-static {v0, v1, v2}, Landroid/provider/Settings$System;->getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I

move-result v0

if-nez v0, :cond_5

Custom Settings

Basic Switch and SystemUI Restart..

<SwitchPreference android:title="Quickconnect Panel" android:key="3minit_quick_connect_toggle" android:summaryOn="Panel is hidden" android:summaryOff="Panel is shown" />
<Preference android:title="Restart SystemUI" android:key="tool#restartsystemui" android:summary="Tap after setting 3minit Quick Connect Panel" />

Screen shots below of both panel showing and panel gone through using toggle