New Market v3.0.26 - "How to" INVERT

Discussion in 'Android Themes' started by B-boy™, Jul 18, 2011.

  1. B-boy™

    B-boy™ Team B-boy™/Jedi Counsel Theme Developer Premium Member

    Joined:
    Oct 10, 2010
    Messages:
    1,893
    Likes Received:
    7
    Trophy Points:
    68
    Location:
    central Az
    Ratings:
    +7
    This is my first tutorial on anything so bear with me.. This is for mildly advanced themers that know their way around the apk manager so I won't go into detail on all that...


    If you are having issues compiling the apk you can delete that mipmap-hdpi, mipmap-mdpi, drawable-mdpi, and drawable-mdpi-v9 from the stock Vending apk and proceed with decompiling.. You can also use a new apktool and aapt files to swap out with the existing one's in the "other" folder of the apk manager but I use 4.8 and that didn't work.. but ecsnead uses 4.9 and said it does.. either way is fine.. Deleting those files causes the app icon to be the stock framework one is the only real drawback but I included a zip with my new icon in it in all my threads so that the user can download it, extract it and set it as a custom app Icon with their Launcher.... quick fix... :D.. I highly recommend decompiling the apk and then compile it back up w/o any edits to ensure it doesn't error...


    Ok, so you're decompiled and ready to rock...


    1. Go to the folder for your Vending.apk and open the Manifest with an xml reader or note++... about 2/3 the way down you'll see this


    <activity android:theme="@android:style/Theme.Dialog" android:name="com.google.android.finsky.activities.TosActivity" android:windowSoftInputMode="adjustResize" />
    <activity android:theme="@style/FinskyTheme" android:name="com.google.android.finsky.activities.CreatePurchaseFlowActivity" android:windowSoftInputMode="adjustPan" />
    <activity android:theme="@style/FinskyTheme" android:name="com.google.android.finsky.activities.IabActivity" android:windowSoftInputMode="adjustPan" />
    <activity android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" android:name="com.google.android.finsky.activities.ScreenshotsActivity" />
    <activity android:theme="@android:style/Theme.Black" android:name="com.google.android.finsky.billing.carrierbilling.debug.DcbDebugActivity" android:windowSoftInputMode="adjustResize" />
    <receiver android:name="com.google.android.finsky.billing.iab.BootCompletedReceiver">


    The 2 red Blacks is what we are looking at.. one of your's will be Black but the other is "Light".. change that to Black as I did.. save the Manifest



    2. Go to res/values/styles - At the very bottom you'll see this


    <style name="FinskyTheme" parent="@android:style/Theme.Black.NoTitleBar">
    <item name="android:windowBackground">@color/loading_background</item>
    <item name="android:ratingBarStyleSmall">@style/FinskyRatingBarSmall</item>
    </style>
    <style name="FinskyDialogTheme" parent="@android:style/Theme.Dialog">
    <item name="android:windowNoTitle">true</item>
    </style>
    </resources>


    Same thing here.. change the Light to Black just as I did and save the styles.xml


    3. Go to res/values/colors - this is my layout that I made


    <?xml version="1.0" encoding="UTF-8"?>
    <resources>
    <color name="home_background">#ff000000</color>
    <color name="details_background">#ff000000</color>
    <color name="details_review_source_text">#ffffffff</color>
    <color name="panel_background">#ff000000</color>
    <color name="light_foreground">#ffffffff</color>
    <color name="description_font_color">#ffffffff</color>
    <color name="policy_link">#ffffffff</color>
    <color name="buy_it_font_color">#ffffffff</color>
    <color name="white">#ffffffff</color>
    <color name="bucket_header_info">#ffffffff</color>
    <color name="thumbnail_background">#ff000000</color>
    <color name="black">#ff000000</color>
    <color name="permissions_border">#ff232323</color>
    <color name="search_background">#ff4db8ca</color>
    <color name="grey">#ff999999</color>
    <color name="darkgrey">#ff555555</color>
    <color name="buy_button_text_color">#ffffffff</color>
    <color name="category_list_text_color">#ffffffff</color>
    <color name="bucket_item_buy_it_text_color">#ffffffff</color>
    <color name="permissions_background">#ff232323</color>
    <color name="action_bar_text_color">#ffffffff</color>
    <color name="action_bar_secondary_text_color">#ffffffff</color>
    <color name="details_content_text_color">#ffffffff</color>
    <color name="empty_promo_background">#1affffff</color>
    <color name="title_background">#ff000000</color>
    <color name="section_header_background">#ff000000</color>
    <color name="section_header_foreground">#ffffffff</color>
    <color name="title_bar_shadow">#bb000000</color>
    <color name="tab_foreground">#ffffffff</color>
    <color name="separator_line">#ff232323</color>
    <color name="apps_background">#fff2efef</color>
    <color name="books_background">#ffa7a6a6</color>
    <color name="movies_background">#ffc8c7c7</color>
    <color name="music_background">#ffffffff</color>
    <color name="apps_foreground">#fff2efef</color>
    <color name="books_foreground">#ffa7a6a6</color>
    <color name="movies_foreground">#ffc8c7c7</color>
    <color name="music_foreground">#ffffffff</color>
    <color name="action_bar_background">#ff000000</color>
    <color name="price_color">#80ffffff</color>
    <color name="watermark_text_color">#ffffffff</color>
    <color name="watermark_activated_text_color">#ffa0c0f4</color>
    <color name="purchase_footer_background">#ff000000</color>
    <color name="purchase_separator">#ff232323</color>
    <color name="main_background">#ff000000</color>
    <color name="details_panel_pack_header_foreground">#ffffffff</color>
    <color name="details_panel_separator">#ff232323</color>
    <color name="details_panel_separator_translucent">#33232323</color>
    <color name="new_permission_background">#ff000000</color>
    <color name="new_permission_foreground">#ffffffff</color>
    <color name="uneven_grid_cell_higlight_bottom">#ff3d3d3d</color>
    <color name="uneven_grid_cell_fg_primary">#ffffffff</color>
    <color name="uneven_grid_cell_fg_secondary">#ffcccccc</color>
    <color name="uneven_grid_promo_sidecar_background">#f0758995</color>
    <color name="loading_foreground">#ffffffff</color>
    <color name="loading_background">#ff000000</color>
    </resources>


    The main background line affects a majority of the backgrounds so keep it dark.. and the lines I highlighted (app_background/foreground, books_background/foreground, etc) will be something like red, green, blue in the stock one but if you change them, make sure they're legible on a dark bg since they affect the tab at the left of the rectangles that say "apps, games, books, movies" and also the text color in categories... I recommend keeping the backgrounds all very dark, the foregrounds all very light and the separators can be whatever you want.. mine are #232323 cause I wanted to keep it all dark...


    4. Now for the smali - go to smali/com/google/android/finsky/adapters/DocumentBasedAdapter.smali... open it with Note++ (that's what I use) and on line 113 you'll see this





    113. const v1, 0x1060003



    That red 3 needs to be a 1 so change it to this



    113. const v1, 0x1060001



    Save the smali





    Ok, you're finished for the most part.. However, it seems like all devices are different so you might have a few areas with black on black text like "Related" "CC#" etc.. if so, decompile your new unsignedVending.apk and in layouts there are a few you can edit but you might have to play with it a few times.. in some there is this

    <?xml version="1.0" encoding="UTF-8"?>
    <LinearLayout android:eek:rientation="vertical" android:id="@id/bucket_header" style="@style/BucketHeader"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout android:gravity="bottom" android:eek:rientation="horizontal" android:id="@id/header_contents" android:paddingRight="5.0dip" android:layout_width="wrap_content" android:layout_height="0.0dip" android:layout_weight="1.0">
    <ImageView android:gravity="center_vertical" android:id="@id/header_icon" android:visibility="gone" android:layout_width="@dimen/bucket_header_icon_width" android:layout_height="@dimen/bucket_header_icon_height" />
    <com.google.android.finsky.layout.AccessibleTextView android:gravity="center_vertical" android:id="@id/section_header" android:layout_height="fill_parent" style="@style/BucketHeaderText" />
    <View android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0" />
    <ImageView android:gravity="center_vertical" android:id="@id/big_section_more_arrow" android:paddingLeft="15.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" />
    <TextView android:textSize="18.0sp" android:textStyle="normal" android:textColor="@color/bucket_header_info" android:gravity="center_vertical" android:id="@id/section_results" android:layout_height="fill_parent" style="@style/BucketHeaderText" />
    <TextView android:textAppearance="?android:textAppearanceMedium" android:textStyle="normal" android:textColor="@color/bucket_header_info" android:gravity="center_vertical" android:id="@id/header_more_results_link" android:visibility="gone" android:layout_height="fill_parent" android:text="@string/search_more_results" style="@style/BucketHeaderText" />
    </LinearLayout>
    <View android:background="@color/separator_line" android:layout_width="fill_parent" android:layout_height="@dimen/list_separator_height" />
    </LinearLayout>


    On the textAppearanceMedium, you can add Inverse making it textAppearanceMediumInverse or if there is already an inverse you can remove it .. also, you can add in a android:textColor="#ffffff" right after the text appearance line and it'll affect certain text.. this is why I said play around with it a little. you'll have all the big stuff done tho...




    COMPILING THE APK

    1. Ok, I've wen over most of what needs to be done to Invert this so let's compile it... If you're using apk manager 4.8 and you have to "delete" folders from the "keep" folder then you'll need to delete the Manifest, resources.arsc, classes.dex, and any layouts you edited.... You know how to finish this all up I assume or you prob wouldn't be compiling now so enjoy!... Here are some screenshots of what my Dark Market looks like...


    [​IMG] [​IMG] [​IMG] [​IMG]

    *credit to user rujelus22 @xda for locating the smali code
     
    Last edited: Jul 18, 2011
  2. Mbk

    Mbk Android For Life Theme Developer Premium Member

    Joined:
    May 4, 2010
    Messages:
    4,167
    Likes Received:
    4
    Trophy Points:
    153
    Ratings:
    +4
    Very nice write-up Bro...some valuable info there....
    Really loving your Dark Market, I'll be using that version...;)
     
  3. B-boy™

    B-boy™ Team B-boy™/Jedi Counsel Theme Developer Premium Member

    Joined:
    Oct 10, 2010
    Messages:
    1,893
    Likes Received:
    7
    Trophy Points:
    68
    Location:
    central Az
    Ratings:
    +7
    Thanks Bro!... :D ... It's not a perfect tut but it covers most bases...
     
  4. Brucew0617

    Brucew0617 Guest

    Ratings:
    +0
    Dark Market? What is it?
     
  5. B-boy™

    B-boy™ Team B-boy™/Jedi Counsel Theme Developer Premium Member

    Joined:
    Oct 10, 2010
    Messages:
    1,893
    Likes Received:
    7
    Trophy Points:
    68
    Location:
    central Az
    Ratings:
    +7
    Lol... this is a tutorial on how to invert the newest market... and I named mine Dark Market....

    Sent from my Droid using DroidForums
     
  6. Alastrionia

    Alastrionia Sourcery Themer / Designr Theme Developer Premium Member

    Joined:
    Sep 27, 2010
    Messages:
    359
    Likes Received:
    4
    Trophy Points:
    18
    Location:
    Sunnyside, WA
    Ratings:
    +4
    Very nice tutorial bro!
    clean and straightforward
    definitely going to allow all themers to really tweak this new version to their hearts content. :D