mardi 18 mars 2014

[GUIDE][SMALI] How to port Mokee ListView Animation for CyanogenMod.11 topic




Guide for CyanogenMod11 KOT49H


HOW TO PORT "Mokee ListView Animations" for CyanogenMod11 only !!

Hello guys, I want to share to you smali Guide how to port with settings. custom Mokee ListView Animation,.
credit to Mokee rom

ok lets go to Guide:
first of all need some requirement for this MOD-GUIDE

REQUIREMENT:
- BRAIN
- Patient
- experience
- Know how to decompile/recompiling Apk and JAR file
- notepad++
- Tool for decompiling, : apkmanager/apktool/Virtous/apkmultitools/ or else


Settings.apk

 





Decompile your CM11 Settings.apk
1. Settings.apk\res\values\arrays.xml
add this to end of it before

Code:


</resources>

so it will be like this

Code:


<string-array name="listview_animation_entries">
        <item>@string/listview_off</item>
        <item>@string/listview_wave_left</item>
        <item>@string/listview_wave_right</item>
        <item>@string/listview_scale</item>
        <item>@string/listview_alpha</item>
        <item>@string/listview_stack_top</item>
        <item>@string/listview_stack_bottom</item>
        <item>@string/listview_unfold</item>
        <item>@string/listview_fold</item>
        <item>@string/listview_translate_left</item>
        <item>@string/listview_translate_right</item>
        <item>@string/listview_rotate</item>
    </string-array>
    <string-array name="listview_animation_values">
        <item>0</item>
        <item>1</item>
        <item>2</item>
        <item>3</item>
        <item>4</item>
        <item>5</item>
        <item>6</item>
        <item>7</item>
        <item>8</item>
        <item>9</item>
        <item>10</item>
        <item>11</item>
    </string-array>
    <string-array name="listview_interpolator_entries">
        <item>@string/listview_off</item>
        <item>@string/listview_accelerate_interpolator</item>
        <item>@string/listview_decelerate_interpolator</item>
        <item>@string/listview_accelerate_decelerate_interpolator</item>
        <item>@string/listview_anticipate_interpolator</item>
        <item>@string/listview_overshoot_interpolator</item>
        <item>@string/listview_anticipate_overshoot_interpolator</item>
        <item>@string/listview_bounce_interpolator</item>
    </string-array>
    <string-array name="listview_interpolator_values">
        <item>0</item>
        <item>1</item>
        <item>2</item>
        <item>3</item>
        <item>4</item>
        <item>5</item>
        <item>6</item>
        <item>7</item>
    </string-array>
</resources>


1. Settings.apk\res\values\strings.xml
add this to end of it before

Code:


</resources>

so it will be like this

Code:


<string name="listview_animation_title">ListView animation</string>
    <string name="listview_off">Off</string>
    <string name="listview_wave_left">Wave (left)</string>
    <string name="listview_wave_right">Wave (right)</string>
    <string name="listview_alpha">Alpha</string>
    <string name="listview_scale">Scale</string>
    <string name="listview_stack_top">Stack (top)</string>
    <string name="listview_stack_bottom">Stack (bottom)</string>
    <string name="listview_unfold">Unfold</string>
    <string name="listview_fold">Fold</string>
    <string name="listview_translate_left">Translate (left)</string>
    <string name="listview_translate_right">Translate (right)</string>
    <string name="listview_rotate">Rotate</string>
    <string name="listview_interpolator_title">ListView interpolator</string>
    <string name="listview_accelerate_interpolator">Accelerate</string>
    <string name="listview_decelerate_interpolator">Decelerate</string>
    <string name="listview_accelerate_decelerate_interpolator">Accelerate decelerate</string>
    <string name="listview_anticipate_interpolator">Anticipate</string>
    <string name="listview_overshoot_interpolator">Overshoot</string>
    <string name="listview_anticipate_overshoot_interpolator">Anticipate overshoot</string>
    <string name="listview_bounce_interpolator">Bounce</string>
</resources>


3. Settings.apk\res\xml\system_ui_settings.xml
add this line

Code:


<PreferenceScreen android:title="@string/listview_animation_title" android:key="listview_animation_settings" android:fragment="com.android.settings.adi.ListViewSettings" />

this is the example :

Code:


<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen android:title="@string/system_interface_title"
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
    <PreferenceScreen android:title="@string/status_bar_title" android:key="status_bar" android:fragment="com.android.settings.cyanogenmod.StatusBar" />
    <PreferenceScreen android:title="@string/quick_settings_panel_title" android:key="quick_settings_panel" android:fragment="com.android.settings.quicksettings.QuickSettings" />
    <PreferenceScreen android:title="@string/notification_drawer_title" android:key="notification_drawer" android:fragment="com.android.settings.cyanogenmod.NotificationDrawer" />
    <PreferenceCategory android:title="@string/power_menu_expanded_desktop" android:key="expanded_desktop_category">
        <ListPreference android:persistent="false" android:entries="@array/expanded_desktop_entries" android:title="@string/expanded_desktop_style" android:key="expanded_desktop" android:entryValues="@array/expanded_desktop_values" />
        <com.android.settings.cyanogenmod.SystemSettingCheckBoxPreference android:title="@string/expanded_desktop_system_bars_visibility" android:key="expanded_desktop_system_bars_visibility" android:summary="@string/expanded_desktop_system_bars_visibility_summary" android:defaultValue="false" />
    </PreferenceCategory>
    <Preference android:key="touch_screen_gesture_settings">
        <intent android:targetPackage="com.cyanogenmod.settings.device" android:action="com.cyanogenmod.action.LAUNCH_TOUCHSCREEN_GESTURE_SETTINGS" android:targetClass="com.cyanogenmod.settings.device.TouchscreenGestureSettings" />
    </Preference>
    <PreferenceScreen android:title="@string/listview_animation_title" android:key="listview_animation_settings" android:fragment="com.android.settings.adi.ListViewSettings" />
    <PreferenceScreen android:title="@string/ram_bar" android:key="recents_panel" android:fragment="com.android.settings.adi.RecentsPanelSettings" />
    <PreferenceCategory android:title="@string/navigation_bar_category">
        <CheckBoxPreference android:title="@string/navbar_enable_bar" android:key="enable_nav_bar" android:summary="@string/navbar_enable_bar_summary" android:defaultValue="true" />
        <PreferenceScreen android:title="@string/navbar_style_dimen_title" android:key="navbar_dimen_settings" android:dependency="enable_nav_bar" android:fragment="com.android.settings.adi.NavbarDimenSettings" />
        <PreferenceScreen android:title="@string/navigation_bar_title" android:key="navigation_bar" android:dependency="enable_nav_bar" android:fragment="com.android.settings.cyanogenmod.NavBar" />
        <PreferenceScreen android:title="@string/navigation_ring_title" android:key="navigation_ring" android:dependency="enable_nav_bar" android:fragment="com.android.settings.cyanogenmod.NavRing" />
        <com.android.settings.cyanogenmod.SystemSettingCheckBoxPreference android:title="@string/navigation_bar_left_title" android:key="navigation_bar_left" android:summary="@string/navigation_bar_left_summary" android:dependency="enable_nav_bar" android:defaultValue="false" />
    </PreferenceCategory>
    <PreferenceCategory android:title="@string/hw_keys_title" android:key="hw_keys_on_navbar">
        <CheckBoxPreference android:title="@string/key_back_enabled" android:key="key_back_enabled" android:defaultValue="true" />
        <CheckBoxPreference android:title="@string/key_menu_enabled" android:key="key_menu_enabled" android:defaultValue="true" />
        <CheckBoxPreference android:title="@string/key_home_enabled" android:key="key_home_enabled" android:defaultValue="true" />
    </PreferenceCategory>
</PreferenceScreen>


4. Download attached file and merge to your decompiled Settings.apk, done and recompile it

5. Decompile the newly Recompiled APK again
- Next go to res/values/public.xml
open it with Notepad++
search for this line

Code:


<public type="xml" name="adi_mokee_listview_animations" id="??????????" />

and pay attention to this ??????????

leave it, but keep it open

6. from the second decompiled Settings.apk , go to Settings.apk\smali\com\android\settings\adi\ListVi ewSettings.smali
search for this line

Code:


const v6, 0x7f050076

change this ids value 0x7f050076
from here

Code:


<public type="xml" name="adi_mokee_listview_animations" id="??????????" />

7. Done and recompile your settings.apk












Aucun commentaire:

Enregistrer un commentaire