[Android Themes] SpaceCaker:
How to add PagedView to lockscreen.

As most of you all know the android 4.2+ has implemented an awesome new Lockscreen on wich u can swipe pages to show widgets and such.

Currently i have managed to create working pageview but for now without Widgets.

However you can add some custom stuff though ;).

i had added DigitalClok -> AnalogClock -> Device Info.

but you would be able to change it like what you want ;) as you can add unlimited LinearLayouts for adding new views.

Basicly this mod is very easy to add.

What is inside the resources.zip ?

SwipeLock Smalis for Framework.jar

Basicly what you would need to do is:

Download Resources Attachement.

Extract it

Decompile you’re framework.jar

Go to the extract smali folder from the resources.zip and copy the smali folder to the smali folder of you’re framework.jar.

Compile framework.jar

Now we are going to add it to the frameworks location/allocate the text.

Decompile framework-res.apk

Find a lockscreen layout to you’re likes. (“zzz_keyguard_screen_clockwidget.xml” <- on this one i have NOT tested as in my test app when i used a Lockscreen overlay i couldnt swipe the pages so its likely this one not works but on the GB ones it does ;)

so instead i used “keyguard_screen_tab_unlock.xml” ofcourse you would be able to add this in other lock layouts aswell.

Open the layout you wanted and simply add this line above the clock layout or where you want

I put this code above my clock code ( i setted minheight to 300.0dip so u would be able to swipe it at this height)

<com.spacecaker.swipelock.ui.SwipeView android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="300.0dip" android:overScrollMode="never">

And below you're clock layout

</com.spacecaker.swipelock.ui.SwipeView>

So now we have that now we need to put the clock layout inside a LinearLayout

Like this

<LinearLayout android:orientation="vertical" android:minHeight="300.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true">
[COLOR="Magenta"]	<com.android.internal.widget.DigitalClock android:id="@id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20.0dip" android:layout_marginTop="30.0dip" android:layout_below="@id/carrier">
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="72.0sp" android:ellipsize="none" android:id="@id/timeDisplay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:shadowColor="#c0000000" android:shadowDx="0.0" android:shadowDy="0.0" android:shadowRadius="3.0" />
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="22.0sp" android:ellipsize="none" android:id="@id/am_pm" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:singleLine="true" android:shadowColor="#c0000000" android:shadowDx="0.0" android:shadowDy="0.0" android:shadowRadius="3.0" android:layout_toRightOf="@id/timeDisplay" android:layout_alignBaseline="@id/timeDisplay" />
</com.android.internal.widget.DigitalClock>[/COLOR]
</LinearLayout>

So it would end up looking like this:

<com.spacecaker.swipelock.ui.SwipeView android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="300.0dip" android:overScrollMode="never">
<LinearLayout android:orientation="vertical" android:minHeight="300.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true">
<com.android.internal.widget.DigitalClock android:id="@id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20.0dip" android:layout_marginTop="30.0dip" android:layout_below="@id/carrier">
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="72.0sp" android:ellipsize="none" android:id="@id/timeDisplay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:shadowColor="#c0000000" android:shadowDx="0.0" android:shadowDy="0.0" android:shadowRadius="3.0" />
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="22.0sp" android:ellipsize="none" android:id="@id/am_pm" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:singleLine="true" android:shadowColor="#c0000000" android:shadowDx="0.0" android:shadowDy="0.0" android:shadowRadius="3.0" android:layout_toRightOf="@id/timeDisplay" android:layout_alignBaseline="@id/timeDisplay" />
</com.android.internal.widget.DigitalClock>
</LinearLayout>
</com.spacecaker.swipelock.ui.SwipeView>

Now we add another LinearLayout for you're second Page ;) i used the universal AnalogClock like this

<AnalogClock android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" />

So now we again add a LinearLayout so it ends up looking like this:

<LinearLayout android:orientation="vertical" android:minHeight="300.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true">
[COLOR="Magenta"]<AnalogClock android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" />[/COLOR]
</LinearLayout>

The end Layout would look like something like this:

<com.spacecaker.swipelock.ui.SwipeView android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="300.0dip" android:overScrollMode="never">
<LinearLayout android:orientation="vertical" android:minHeight="400.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true">
<com.android.internal.widget.DigitalClock android:id="@id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20.0dip" android:layout_marginTop="30.0dip" android:layout_below="@id/carrier">
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="72.0sp" android:ellipsize="none" android:id="@id/timeDisplay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:shadowColor="#c0000000" android:shadowDx="0.0" android:shadowDy="0.0" android:shadowRadius="3.0" />
<TextView android:textAppearance="?textAppearanceMedium" android:textSize="22.0sp" android:ellipsize="none" android:id="@id/am_pm" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:singleLine="true" android:shadowColor="#c0000000" android:shadowDx="0.0" android:shadowDy="0.0" android:shadowRadius="3.0" android:layout_toRightOf="@id/timeDisplay" android:layout_alignBaseline="@id/timeDisplay" />
</com.android.internal.widget.DigitalClock>
</LinearLayout>
<LinearLayout android:orientation="vertical" android:minHeight="400.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true">
<AnalogClock android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
</com.spacecaker.swipelock.ui.SwipeView>

To Add More pages just add another LinearLayout with something inside ;)

Now Compile framework-res.apk

Now zip the files together and make sure these are set properly.

framework-res.apk inside /system/framework/**

And then ofcourse you’re modified framework.jar inside /system/framework/**

Now you are done ;)

Happy modding ;)

On what roms can u apply this mod ?

Basicly it can be applied to ALL Roms ;) atleast if u know what u are doing.

If you wanna see how i moddified mine take a look here https://github.com/spacecaker/git_status_xp/commit/f85c304142f577e3a933a60ef3d61cbb2c0e89ac

That shows u what changes i did ;) ^^ its on GingerBread SlidingTab Lockscreen just added it for making it look bit easier.