diff options
author | d34d <clark@cyngn.com> | 2016-08-29 15:41:02 -0700 |
---|---|---|
committer | d34d <clark@cyngn.com> | 2016-08-31 09:44:52 -0700 |
commit | 550e88b1e62228124f22b2d70ce3bf45fe9a1314 (patch) | |
tree | 91efd4126034e8b91c463da8bd02a00cf7ff9751 | |
parent | bcd90a38b28f7c57bce8057d855e4c276aab2776 (diff) | |
download | packages_apps_ThemeChooser-550e88b1e62228124f22b2d70ce3bf45fe9a1314.zip packages_apps_ThemeChooser-550e88b1e62228124f22b2d70ce3bf45fe9a1314.tar.gz packages_apps_ThemeChooser-550e88b1e62228124f22b2d70ce3bf45fe9a1314.tar.bz2 |
Fall cleaning
* Change package name to org.cyanogenmod.theme.chooser2
to avoid theme collisions with old OSS chooser
* Change parent theme to Theme.Material.Light
* Change minSdkVersion to 21 since we are going material
* Add selectors for bottom action buttons (app themer, shop themes)
* Add selector, using app themer color, for app themer list view
* Add selector for actions in theme cards
* Bring back OSS app icon
* Reduce log spam in ThemedTypefaceHelper
* Localize "new" tag using a TextView instead of an image
* Other random stuff
Change-Id: I73ef0b9c9370284e29ee00add87273cf54c83e0e
71 files changed, 336 insertions, 266 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 6ed9716..2c3fbf1 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -17,7 +17,7 @@ --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="org.cyanogenmod.theme.chooser" + package="org.cyanogenmod.theme.chooser2" android:versionCode="200" android:versionName="2.0" > @@ -59,7 +59,7 @@ android:protectionLevel="signatureOrSystem" /> <uses-sdk - android:minSdkVersion="19" + android:minSdkVersion="21" android:targetSdkVersion="23" /> <application @@ -67,7 +67,7 @@ android:icon="@mipmap/ic_app_themes" android:label="@string/app_name" android:theme="@style/ThemeChooserTheme" > - <activity android:name="org.cyanogenmod.theme.chooser.ChooserActivity" + <activity android:name="org.cyanogenmod.theme.chooser2.ChooserActivity" android:label="@string/app_name" android:theme="@style/ThemeChooserTheme" android:configChanges="themeChange" @@ -92,8 +92,8 @@ </intent-filter> </activity> - <activity-alias android:name="org.cyanogenmod.theme.chooser.ChooserLauncher" - android:targetActivity="org.cyanogenmod.theme.chooser.ChooserActivity" + <activity-alias android:name="org.cyanogenmod.theme.chooser2.ChooserLauncher" + android:targetActivity="org.cyanogenmod.theme.chooser2.ChooserActivity" android:label="@string/app_name" android:icon="@mipmap/ic_app_themes"> <intent-filter> @@ -102,7 +102,7 @@ </intent-filter> </activity-alias> - <receiver android:name="org.cyanogenmod.theme.chooser.AppReceiver" > + <receiver android:name="org.cyanogenmod.theme.chooser2.AppReceiver" > <intent-filter> <action android:name="cyanogenmod.intent.action.THEME_INSTALLED" /> <action android:name="cyanogenmod.intent.action.THEME_REMOVED" /> @@ -117,7 +117,7 @@ </intent-filter> </receiver> - <service android:name="org.cyanogenmod.theme.chooser.NotificationHijackingService" + <service android:name="org.cyanogenmod.theme.chooser2.NotificationHijackingService" android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"> <intent-filter> <action android:name="android.service.notification.NotificationListenerService" /> diff --git a/res/drawable-hdpi/bg_button_shopthemes_focused.9.png b/res/drawable-hdpi/bg_button_shopthemes_focused.9.png Binary files differdeleted file mode 100644 index 669e672..0000000 --- a/res/drawable-hdpi/bg_button_shopthemes_focused.9.png +++ /dev/null diff --git a/res/drawable-hdpi/bg_button_shopthemes_normal.9.png b/res/drawable-hdpi/bg_button_shopthemes_normal.9.png Binary files differdeleted file mode 100644 index 09d03d5..0000000 --- a/res/drawable-hdpi/bg_button_shopthemes_normal.9.png +++ /dev/null diff --git a/res/drawable-hdpi/bg_button_shopthemes_pressed.9.png b/res/drawable-hdpi/bg_button_shopthemes_pressed.9.png Binary files differdeleted file mode 100644 index b6fada6..0000000 --- a/res/drawable-hdpi/bg_button_shopthemes_pressed.9.png +++ /dev/null diff --git a/res/drawable-hdpi/bg_tag_new.9.png b/res/drawable-hdpi/bg_tag_new.9.png Binary files differnew file mode 100644 index 0000000..25baf5c --- /dev/null +++ b/res/drawable-hdpi/bg_tag_new.9.png diff --git a/res/drawable-hdpi/tag_new.png b/res/drawable-hdpi/tag_new.png Binary files differdeleted file mode 100644 index 528e166..0000000 --- a/res/drawable-hdpi/tag_new.png +++ /dev/null diff --git a/res/drawable-mdpi/bg_button_shopthemes_focused.9.png b/res/drawable-mdpi/bg_button_shopthemes_focused.9.png Binary files differdeleted file mode 100644 index 79b28e3..0000000 --- a/res/drawable-mdpi/bg_button_shopthemes_focused.9.png +++ /dev/null diff --git a/res/drawable-mdpi/bg_button_shopthemes_normal.9.png b/res/drawable-mdpi/bg_button_shopthemes_normal.9.png Binary files differdeleted file mode 100644 index 8848e28..0000000 --- a/res/drawable-mdpi/bg_button_shopthemes_normal.9.png +++ /dev/null diff --git a/res/drawable-mdpi/bg_button_shopthemes_pressed.9.png b/res/drawable-mdpi/bg_button_shopthemes_pressed.9.png Binary files differdeleted file mode 100644 index fdfdc7a..0000000 --- a/res/drawable-mdpi/bg_button_shopthemes_pressed.9.png +++ /dev/null diff --git a/res/drawable-mdpi/bg_tag_new.9.png b/res/drawable-mdpi/bg_tag_new.9.png Binary files differnew file mode 100644 index 0000000..77b4f0f --- /dev/null +++ b/res/drawable-mdpi/bg_tag_new.9.png diff --git a/res/drawable-mdpi/tag_new.png b/res/drawable-mdpi/tag_new.png Binary files differdeleted file mode 100644 index c4cef73..0000000 --- a/res/drawable-mdpi/tag_new.png +++ /dev/null diff --git a/res/drawable-xhdpi/bg_button_shopthemes_focused.9.png b/res/drawable-xhdpi/bg_button_shopthemes_focused.9.png Binary files differdeleted file mode 100644 index f74db4d..0000000 --- a/res/drawable-xhdpi/bg_button_shopthemes_focused.9.png +++ /dev/null diff --git a/res/drawable-xhdpi/bg_button_shopthemes_normal.9.png b/res/drawable-xhdpi/bg_button_shopthemes_normal.9.png Binary files differdeleted file mode 100644 index 1a2b6a0..0000000 --- a/res/drawable-xhdpi/bg_button_shopthemes_normal.9.png +++ /dev/null diff --git a/res/drawable-xhdpi/bg_button_shopthemes_pressed.9.png b/res/drawable-xhdpi/bg_button_shopthemes_pressed.9.png Binary files differdeleted file mode 100644 index 1ea49ba..0000000 --- a/res/drawable-xhdpi/bg_button_shopthemes_pressed.9.png +++ /dev/null diff --git a/res/drawable-xhdpi/bg_tag_new.9.png b/res/drawable-xhdpi/bg_tag_new.9.png Binary files differnew file mode 100644 index 0000000..fb8781c --- /dev/null +++ b/res/drawable-xhdpi/bg_tag_new.9.png diff --git a/res/drawable-xhdpi/tag_new.png b/res/drawable-xhdpi/tag_new.png Binary files differdeleted file mode 100644 index aaad607..0000000 --- a/res/drawable-xhdpi/tag_new.png +++ /dev/null diff --git a/res/drawable-xxhdpi/bg_button_shopthemes_focused.9.png b/res/drawable-xxhdpi/bg_button_shopthemes_focused.9.png Binary files differdeleted file mode 100644 index c92c6c9..0000000 --- a/res/drawable-xxhdpi/bg_button_shopthemes_focused.9.png +++ /dev/null diff --git a/res/drawable-xxhdpi/bg_button_shopthemes_normal.9.png b/res/drawable-xxhdpi/bg_button_shopthemes_normal.9.png Binary files differdeleted file mode 100644 index e4d5577..0000000 --- a/res/drawable-xxhdpi/bg_button_shopthemes_normal.9.png +++ /dev/null diff --git a/res/drawable-xxhdpi/bg_button_shopthemes_pressed.9.png b/res/drawable-xxhdpi/bg_button_shopthemes_pressed.9.png Binary files differdeleted file mode 100644 index 3eee7b7..0000000 --- a/res/drawable-xxhdpi/bg_button_shopthemes_pressed.9.png +++ /dev/null diff --git a/res/drawable-xxhdpi/bg_tag_new.9.png b/res/drawable-xxhdpi/bg_tag_new.9.png Binary files differnew file mode 100644 index 0000000..fd9233d --- /dev/null +++ b/res/drawable-xxhdpi/bg_tag_new.9.png diff --git a/res/drawable-xxhdpi/tag_new.png b/res/drawable-xxhdpi/tag_new.png Binary files differdeleted file mode 100644 index c6d6700..0000000 --- a/res/drawable-xxhdpi/tag_new.png +++ /dev/null diff --git a/res/drawable/bottom_action_item_background.xml b/res/drawable/bottom_action_item_background.xml new file mode 100644 index 0000000..4689ee1 --- /dev/null +++ b/res/drawable/bottom_action_item_background.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The CyanogenMod Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<ripple xmlns:android="http://schemas.android.com/apk/res/android" + android:color="@color/bottom_action_selected_background_color"> + <item android:id="@android:id/mask"> + <shape android:shape="rectangle"> + <corners android:radius="4dp"/> + <padding android:top="4dp" + android:bottom="4dp" + android:left="4dp" + android:right="4dp"/> + <solid android:color="@color/bottom_action_background_mask_color"/> + </shape> + </item> +</ripple> diff --git a/res/drawable/shop_themes_bg.xml b/res/drawable/per_app_theme_list_item_background.xml index f0384e9..edd4a1d 100644 --- a/res/drawable/shop_themes_bg.xml +++ b/res/drawable/per_app_theme_list_item_background.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <!-- - Copyright (C) 2016 Cyanogen, Inc. Copyright (C) 2016 The CyanogenMod Project Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,12 +15,9 @@ limitations under the License. --> -<selector xmlns:android="http://schemas.android.com/apk/res/android"> - - <item android:state_focused="true" - android:drawable="@drawable/bg_button_shopthemes_focused"/> - <item android:state_pressed="true" - android:drawable="@drawable/bg_button_shopthemes_pressed"/> - <item android:drawable="@drawable/bg_button_shopthemes_normal"/> - -</selector>
\ No newline at end of file +<ripple xmlns:android="http://schemas.android.com/apk/res/android" + android:color="@color/per_app_theme_list_item_bg_color"> + <item android:id="@android:id/mask"> + <color android:color="@color/per_app_theme_list_item_bg_mask_color" /> + </item> +</ripple> diff --git a/res/drawable/theme_card_action_item_background.xml b/res/drawable/theme_card_action_item_background.xml new file mode 100644 index 0000000..dc575df --- /dev/null +++ b/res/drawable/theme_card_action_item_background.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The CyanogenMod Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<ripple xmlns:android="http://schemas.android.com/apk/res/android" + android:color="@color/theme_card_action_item_background_color"> + <item android:id="@android:id/mask"> + <shape android:shape="rectangle"> + <corners android:radius="2dp"/> + <solid android:color="@color/theme_card_action_item_background_mask_color"/> + </shape> + </item> +</ripple> diff --git a/res/layout/activity_main.xml b/res/layout/activity_main.xml index 01a91a6..552bed3 100644 --- a/res/layout/activity_main.xml +++ b/res/layout/activity_main.xml @@ -29,7 +29,7 @@ android:layout_height="match_parent" android:orientation="vertical" android:layout_gravity="center_vertical"> - <org.cyanogenmod.theme.chooser.PagerContainer + <org.cyanogenmod.theme.chooser2.PagerContainer android:id="@+id/pager_container" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -38,14 +38,22 @@ <android.support.v4.view.ThemeViewPager android:id="@+id/viewpager" android:layout_width="@dimen/theme_fragment_width" - android:layout_height="match_parent" + android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:overScrollMode="never"/> - </org.cyanogenmod.theme.chooser.PagerContainer> + </org.cyanogenmod.theme.chooser2.PagerContainer> </LinearLayout> - <include layout="@layout/component_selector"/> - <include layout="@layout/save_apply_button"/> - <include layout="@layout/bottom_actions"/> + <!-- wrap the below layouts for fitting to the system windows --> + <FrameLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:fitsSystemWindows="true"> + + <include layout="@layout/component_selector"/> + <include layout="@layout/save_apply_button"/> + <include layout="@layout/bottom_actions"/> + + </FrameLayout> </FrameLayout> diff --git a/res/layout/audible_card.xml b/res/layout/audible_card.xml index 764a04e..b8856d1 100644 --- a/res/layout/audible_card.xml +++ b/res/layout/audible_card.xml @@ -16,7 +16,7 @@ limitations under the License. --> -<org.cyanogenmod.theme.chooser.ComponentCardView +<org.cyanogenmod.theme.chooser2.ComponentCardView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -65,4 +65,4 @@ android:src="@drawable/ic_addcomponent"/> </LinearLayout> </FrameLayout> -</org.cyanogenmod.theme.chooser.ComponentCardView> +</org.cyanogenmod.theme.chooser2.ComponentCardView> diff --git a/res/layout/bootanim_card.xml b/res/layout/bootanim_card.xml index ad3cb01..c3a0f1b 100644 --- a/res/layout/bootanim_card.xml +++ b/res/layout/bootanim_card.xml @@ -16,7 +16,7 @@ limitations under the License. --> -<org.cyanogenmod.theme.chooser.ComponentCardView +<org.cyanogenmod.theme.chooser2.ComponentCardView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/bootani_preview_container" android:layout_width="match_parent" @@ -51,4 +51,4 @@ android:src="@drawable/ic_addcomponent"/> </LinearLayout> </FrameLayout> -</org.cyanogenmod.theme.chooser.ComponentCardView> +</org.cyanogenmod.theme.chooser2.ComponentCardView> diff --git a/res/layout/bottom_actions.xml b/res/layout/bottom_actions.xml index 67f8461..ef4225d 100644 --- a/res/layout/bottom_actions.xml +++ b/res/layout/bottom_actions.xml @@ -34,7 +34,8 @@ android:id="@+id/per_app_theming" android:layout_width="80dp" android:layout_height="wrap_content" - android:orientation="vertical"> + android:orientation="vertical" + android:background="@drawable/bottom_action_item_background"> <FrameLayout android:layout_width="match_parent" @@ -45,13 +46,22 @@ android:layout_gravity="top|center_horizontal" android:layout_margin="8dp" android:src="@drawable/ic_appthemer"/> - <ImageView + <org.cyanogenmod.theme.widget.LatoTextView android:id="@+id/new_tag" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|left" android:layout_marginLeft="6dp" - android:src="@drawable/tag_new" + android:paddingStart="4dp" + android:paddingEnd="4dp" + android:gravity="center" + android:text="@string/new_feature_label" + android:textAllCaps="true" + android:textSize="10dp" + android:textColor="@color/tag_text_color" + android:textStyle="bold" + android:fontFamily="sans-serif-condensed" + android:background="@drawable/bg_tag_new" android:visibility="gone"/> </FrameLayout> @@ -69,7 +79,8 @@ android:layout_width="80dp" android:layout_height="wrap_content" android:layout_marginLeft="20dp" - android:orientation="vertical"> + android:orientation="vertical" + android:background="@drawable/bottom_action_item_background"> <ImageView android:layout_width="30dp" @@ -89,7 +100,4 @@ </LinearLayout> - <org.cyanogenmod.theme.widget.NavBarSpace - android:layout_width="match_parent" - android:layout_height="@dimen/navigation_bar_height"/> </LinearLayout> diff --git a/res/layout/component_selector.xml b/res/layout/component_selector.xml index 14b13de..42be00b 100644 --- a/res/layout/component_selector.xml +++ b/res/layout/component_selector.xml @@ -16,7 +16,7 @@ limitations under the License. --> -<org.cyanogenmod.theme.chooser.ComponentSelector +<org.cyanogenmod.theme.chooser2.ComponentSelector xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/component_selector" android:orientation="vertical" @@ -42,7 +42,4 @@ </org.cyanogenmod.theme.widget.AutoSnapHorizontalScrollView> - <org.cyanogenmod.theme.widget.NavBarSpace - android:layout_width="match_parent" - android:layout_height="@dimen/navigation_bar_height"/> -</org.cyanogenmod.theme.chooser.ComponentSelector>
\ No newline at end of file +</org.cyanogenmod.theme.chooser2.ComponentSelector>
\ No newline at end of file diff --git a/res/layout/font_card.xml b/res/layout/font_card.xml index 3b4808d..3a58f93 100644 --- a/res/layout/font_card.xml +++ b/res/layout/font_card.xml @@ -16,7 +16,7 @@ limitations under the License. --> -<org.cyanogenmod.theme.chooser.ComponentCardView +<org.cyanogenmod.theme.chooser2.ComponentCardView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/font_preview_container" android:layout_width="match_parent" @@ -64,4 +64,4 @@ android:src="@drawable/ic_addcomponent"/> </LinearLayout> </FrameLayout> -</org.cyanogenmod.theme.chooser.ComponentCardView> +</org.cyanogenmod.theme.chooser2.ComponentCardView> diff --git a/res/layout/fragment_pager_list.xml b/res/layout/fragment_pager_list.xml index ca1d092..609dbaa 100644 --- a/res/layout/fragment_pager_list.xml +++ b/res/layout/fragment_pager_list.xml @@ -77,90 +77,7 @@ </FrameLayout> <!-- Title card --> - <FrameLayout - android:id="@+id/title_card" - android:layout_width="@dimen/theme_preview_width" - android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:background="@drawable/card_themepreview_bg"> - <LinearLayout - android:id="@+id/title_layout" - android:layout_width="match_parent" - android:layout_height="@dimen/title_card_height" - android:alpha="0"> - <LinearLayout - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_weight="1" - android:layout_gravity="center_vertical" - android:layout_marginStart="16dp" - android:orientation="vertical"> - <org.cyanogenmod.theme.widget.LatoTextView - android:id="@+id/title" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:ellipsize="end" - android:singleLine="true" - android:textColor="@color/theme_title_text_color"/> - <org.cyanogenmod.theme.widget.LatoTextView - android:id="@+id/author" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:ellipsize="end" - android:singleLine="true" - android:textColor="@color/theme_author_text_color" - android:textSize="14dp" /> - </LinearLayout> - <ImageView - android:id="@+id/customize" - android:layout_width="47dp" - android:layout_height="match_parent" - android:scaleType="center" - android:src="@drawable/ic_theme_customize"/> - - <ImageView - android:id="@+id/overflow" - android:layout_width="36dp" - android:layout_height="match_parent" - android:layout_marginStart="1dp" - android:layout_marginEnd="8dp" - android:scaleType="center" - android:src="@drawable/ic_overflow_dark" - android:visibility="gone"/> - - <ImageView - android:id="@+id/delete" - android:layout_width="36dp" - android:layout_height="match_parent" - android:layout_marginStart="1dp" - android:layout_marginEnd="8dp" - android:scaleType="center" - android:src="@drawable/ic_theme_delete"/> - - <ImageView - android:id="@+id/reset" - android:layout_width="36dp" - android:layout_height="match_parent" - android:layout_marginStart="1dp" - android:layout_marginEnd="8dp" - android:scaleType="center" - android:src="@drawable/ic_theme_reset" - android:visibility="gone"/> - </LinearLayout> - <ProgressBar - android:id="@+id/apply_progress" - android:layout_width="match_parent" - android:layout_height="@dimen/apply_progress_height" - android:layout_gravity="center_vertical|right" - android:paddingStart="@dimen/apply_progress_padding" - android:paddingEnd="@dimen/apply_progress_padding" - android:indeterminate="false" - android:max="100" - android:progress="0" - android:progressDrawable="@drawable/apply_progress_bar" - android:visibility="gone" - style="@android:style/Widget.ProgressBar.Horizontal"/> - </FrameLayout> + <include layout="@layout/title_card"/> <!-- Each card in this layout should have a Space below it with one final Space for devices that have a navbar --> @@ -171,7 +88,7 @@ android:orientation="vertical" android:layout_marginTop="@dimen/additional_cards_margin_top" android:visibility="invisible"> - <org.cyanogenmod.theme.chooser.WallpaperCardView + <org.cyanogenmod.theme.chooser2.WallpaperCardView android:id="@+id/wallpaper_card" android:layout_width="match_parent" android:layout_height="@dimen/wallpaper_card_height" @@ -179,7 +96,7 @@ /> <Space android:layout_width="match_parent" android:layout_height="@dimen/expanded_card_margin_top" /> - <org.cyanogenmod.theme.chooser.WallpaperCardView + <org.cyanogenmod.theme.chooser2.WallpaperCardView android:id="@+id/lockscreen_card" android:visibility="gone" android:layout_width="match_parent" diff --git a/res/layout/icon_card.xml b/res/layout/icon_card.xml index 1cf454b..591a1a4 100644 --- a/res/layout/icon_card.xml +++ b/res/layout/icon_card.xml @@ -16,7 +16,7 @@ limitations under the License. --> -<org.cyanogenmod.theme.chooser.ComponentCardView +<org.cyanogenmod.theme.chooser2.ComponentCardView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/icon_container" android:layout_width="match_parent" @@ -76,4 +76,4 @@ android:src="@drawable/ic_addcomponent"/> </LinearLayout> </FrameLayout> -</org.cyanogenmod.theme.chooser.ComponentCardView>
\ No newline at end of file +</org.cyanogenmod.theme.chooser2.ComponentCardView>
\ No newline at end of file diff --git a/res/layout/navbar_card.xml b/res/layout/navbar_card.xml index b196f6a..437f4c3 100644 --- a/res/layout/navbar_card.xml +++ b/res/layout/navbar_card.xml @@ -16,7 +16,7 @@ limitations under the License. --> -<org.cyanogenmod.theme.chooser.ComponentCardView +<org.cyanogenmod.theme.chooser2.ComponentCardView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/navigation_bar_container" android:layout_width="match_parent" @@ -92,4 +92,4 @@ android:src="@drawable/ic_addcomponent"/> </LinearLayout> </FrameLayout> -</org.cyanogenmod.theme.chooser.ComponentCardView>
\ No newline at end of file +</org.cyanogenmod.theme.chooser2.ComponentCardView>
\ No newline at end of file diff --git a/res/layout/per_app_theme_list.xml b/res/layout/per_app_theme_list.xml index be595c9..1feb993 100644 --- a/res/layout/per_app_theme_list.xml +++ b/res/layout/per_app_theme_list.xml @@ -34,14 +34,15 @@ android:elevation="10dp" android:layout_marginLeft="@dimen/theme_list_side_margin" android:layout_marginRight="@dimen/theme_list_side_margin" - android:background="@drawable/per_app_theme_list_background"/> + android:background="@drawable/per_app_theme_list_background" + android:listSelector="@drawable/per_app_theme_list_item_background"/> <TextView android:id="@+id/applying_theme_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:textColor="@color/per_app_theme_list_item_text_color" + android:textColor="@color/per_app_theme_applying_text_color" android:text="@string/per_app_theme_applying" android:textSize="16dp" android:alpha="0"/> diff --git a/res/layout/save_apply_button.xml b/res/layout/save_apply_button.xml index ac0fee9..1009c9c 100644 --- a/res/layout/save_apply_button.xml +++ b/res/layout/save_apply_button.xml @@ -16,36 +16,12 @@ limitations under the License. --> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/save_apply_layout" - android:orientation="vertical" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_gravity="bottom|left" - android:visibility="gone"> - - <LinearLayout - android:orientation="horizontal" - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <Space - android:layout_width="0dp" - android:layout_height="match_parent" - android:layout_weight="1"/> - - <Button - android:id="@+id/save_apply_button" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginEnd="8dp" - android:layout_marginBottom="8dp" - android:background="@drawable/save_apply_button_selector"/> - - </LinearLayout> - - <org.cyanogenmod.theme.widget.NavBarSpace - android:layout_width="match_parent" - android:layout_height="@dimen/navigation_bar_height"/> - -</LinearLayout>
\ No newline at end of file +<Button xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/save_apply_button" + android:layout_width="@dimen/save_apply_fab_width" + android:layout_height="@dimen/save_apply_fab_height" + android:layout_gravity="bottom|end" + android:layout_marginEnd="8dp" + android:layout_marginBottom="8dp" + android:background="@drawable/save_apply_button_selector" + android:visibility="gone"/> diff --git a/res/layout/status_bar_card.xml b/res/layout/status_bar_card.xml index 331db00..d67abf6 100644 --- a/res/layout/status_bar_card.xml +++ b/res/layout/status_bar_card.xml @@ -16,7 +16,7 @@ limitations under the License. --> -<org.cyanogenmod.theme.chooser.ComponentCardView +<org.cyanogenmod.theme.chooser2.ComponentCardView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/status_bar_container" android:layout_width="match_parent" @@ -107,4 +107,4 @@ android:src="@drawable/ic_addcomponent"/> </LinearLayout> </FrameLayout> -</org.cyanogenmod.theme.chooser.ComponentCardView>
\ No newline at end of file +</org.cyanogenmod.theme.chooser2.ComponentCardView>
\ No newline at end of file diff --git a/res/layout/style_card.xml b/res/layout/style_card.xml index e1906cc..c9f95b3 100644 --- a/res/layout/style_card.xml +++ b/res/layout/style_card.xml @@ -16,7 +16,7 @@ limitations under the License. --> -<org.cyanogenmod.theme.chooser.ComponentCardView +<org.cyanogenmod.theme.chooser2.ComponentCardView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/style_card" android:layout_width="match_parent" @@ -54,4 +54,4 @@ android:src="@drawable/ic_addcomponent"/> </LinearLayout> </FrameLayout> -</org.cyanogenmod.theme.chooser.ComponentCardView> +</org.cyanogenmod.theme.chooser2.ComponentCardView> diff --git a/res/layout/title_card.xml b/res/layout/title_card.xml new file mode 100644 index 0000000..61efa88 --- /dev/null +++ b/res/layout/title_card.xml @@ -0,0 +1,105 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2016 The CyanogenMod Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/title_card" + android:layout_width="@dimen/theme_preview_width" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:background="@drawable/card_themepreview_bg"> + <LinearLayout + android:id="@+id/title_layout" + android:layout_width="match_parent" + android:layout_height="@dimen/title_card_height" + android:alpha="0"> + <LinearLayout + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_weight="1" + android:layout_gravity="center_vertical" + android:layout_marginStart="16dp" + android:orientation="vertical"> + <org.cyanogenmod.theme.widget.LatoTextView + android:id="@+id/title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:ellipsize="end" + android:singleLine="true" + android:textColor="@color/theme_title_text_color"/> + <org.cyanogenmod.theme.widget.LatoTextView + android:id="@+id/author" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:ellipsize="end" + android:singleLine="true" + android:textColor="@color/theme_author_text_color" + android:textSize="14dp" /> + </LinearLayout> + <ImageView + android:id="@+id/customize" + android:layout_width="47dp" + android:layout_height="match_parent" + android:scaleType="center" + android:src="@drawable/ic_theme_customize" + android:background="@drawable/theme_card_action_item_background"/> + + <ImageView + android:id="@+id/overflow" + android:layout_width="36dp" + android:layout_height="match_parent" + android:layout_marginStart="1dp" + android:layout_marginEnd="8dp" + android:scaleType="center" + android:src="@drawable/ic_overflow_dark" + android:visibility="gone" + android:background="@drawable/theme_card_action_item_background"/> + + <ImageView + android:id="@+id/delete" + android:layout_width="36dp" + android:layout_height="match_parent" + android:layout_marginStart="1dp" + android:layout_marginEnd="8dp" + android:scaleType="center" + android:src="@drawable/ic_theme_delete" + android:background="@drawable/theme_card_action_item_background"/> + + <ImageView + android:id="@+id/reset" + android:layout_width="36dp" + android:layout_height="match_parent" + android:layout_marginStart="1dp" + android:layout_marginEnd="8dp" + android:scaleType="center" + android:src="@drawable/ic_theme_reset" + android:visibility="gone" + android:background="@drawable/theme_card_action_item_background"/> + </LinearLayout> + <ProgressBar + android:id="@+id/apply_progress" + android:layout_width="match_parent" + android:layout_height="@dimen/apply_progress_height" + android:layout_gravity="center_vertical|right" + android:paddingStart="@dimen/apply_progress_padding" + android:paddingEnd="@dimen/apply_progress_padding" + android:indeterminate="false" + android:max="100" + android:progress="0" + android:progressDrawable="@drawable/apply_progress_bar" + android:visibility="gone" + style="@android:style/Widget.ProgressBar.Horizontal"/> +</FrameLayout> diff --git a/res/layout/wallpaper_component_selection_item.xml b/res/layout/wallpaper_component_selection_item.xml index ace5c34..697820d 100644 --- a/res/layout/wallpaper_component_selection_item.xml +++ b/res/layout/wallpaper_component_selection_item.xml @@ -17,7 +17,7 @@ --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:cyngn="http://schemas.android.com/apk/res/org.cyanogenmod.theme.chooser" + xmlns:themes="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="@dimen/component_selection_cell_height" @@ -56,7 +56,7 @@ android:layout_marginTop="@dimen/animated_lock_screen_text_margin_top" android:layout_marginBottom="@dimen/animated_lock_screen_text_margin_bottom" style="@style/animated_lock_screen_badge_text_style" - cyngn:autoFitText="true" + themes:autoFitText="true" android:text="@string/animated_lock_screen_badge_text"/> </LinearLayout> </FrameLayout> diff --git a/res/mipmap-hdpi/ic_app_themes.png b/res/mipmap-hdpi/ic_app_themes.png Binary files differindex aa08c8b..6f72699 100644 --- a/res/mipmap-hdpi/ic_app_themes.png +++ b/res/mipmap-hdpi/ic_app_themes.png diff --git a/res/mipmap-mdpi/ic_app_themes.png b/res/mipmap-mdpi/ic_app_themes.png Binary files differindex 32f7456..8ec3df0 100644 --- a/res/mipmap-mdpi/ic_app_themes.png +++ b/res/mipmap-mdpi/ic_app_themes.png diff --git a/res/mipmap-xhdpi/ic_app_themes.png b/res/mipmap-xhdpi/ic_app_themes.png Binary files differindex b629a6a..7420d1b 100644 --- a/res/mipmap-xhdpi/ic_app_themes.png +++ b/res/mipmap-xhdpi/ic_app_themes.png diff --git a/res/mipmap-xxhdpi/ic_app_themes.png b/res/mipmap-xxhdpi/ic_app_themes.png Binary files differindex 974eb6f..9a38f0e 100644 --- a/res/mipmap-xxhdpi/ic_app_themes.png +++ b/res/mipmap-xxhdpi/ic_app_themes.png diff --git a/res/mipmap-xxxhdpi/ic_app_themes.png b/res/mipmap-xxxhdpi/ic_app_themes.png Binary files differindex 639764d..968b063 100644 --- a/res/mipmap-xxxhdpi/ic_app_themes.png +++ b/res/mipmap-xxxhdpi/ic_app_themes.png diff --git a/res/values/colors.xml b/res/values/colors.xml index bdc361a..90d2b75 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -77,9 +77,18 @@ <color name="per_app_theme_fab_bg_color">#00b1e5</color> <color name="per_app_theme_fab_icon_color">#ffffff</color> <color name="per_app_theme_qs_icon_color">#ffffff</color> + <color name="per_app_theme_list_item_bg_color">#00b1e5</color> + <color name="per_app_theme_list_item_bg_mask_color">#ffffff</color> + <color name="per_app_theme_applying_text_color">#f5f5f5</color> <color name="bottom_row_icon_color">#ffffff</color> <color name="edge_effect_color">#ffffff</color> + <color name="bottom_action_background_mask_color">#ffffff</color> + <color name="bottom_action_selected_background_color">#e9e8e8</color> + + <color name="theme_card_action_item_background_mask_color">#ffffff</color> + <color name="theme_card_action_item_background_color">#888888</color> + </resources> diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 6f212e8..22c0dc7 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -113,4 +113,8 @@ <dimen name="animated_lock_screen_text_margin_right">3dp</dimen> <dimen name="animated_lock_screen_text_margin_bottom">3dp</dimen> <dimen name="animated_lock_screen_text_margin_left">3dp</dimen> + + <!-- Save and apply customized changes FAB dimensions --> + <dimen name="save_apply_fab_width">72dp</dimen> + <dimen name="save_apply_fab_height">72dp</dimen> </resources> diff --git a/res/values/strings.xml b/res/values/strings.xml index 6cc115a..12b31f4 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -112,4 +112,6 @@ <string name="get_more_app_not_available">App not available</string> <string name="play_store_url" translatable="false">https://play.google.com/store/search?q=theme+engine&c=apps</string> <string name="wiki_url" translatable="false">http://wiki.cyanogenmod.org/w/Themes</string> + + <string name="new_feature_label">New</string> </resources> diff --git a/res/values/styles.xml b/res/values/styles.xml index 96fced3..8ac749c 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -19,7 +19,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Base application theme. --> - <style name="ThemeChooserTheme" parent="@android:style/Theme.Holo.Light"> + <style name="ThemeChooserTheme" parent="@android:style/Theme.Material.Light"> <item name="android:windowTranslucentStatus">true</item> <item name="android:windowTranslucentNavigation">true</item> <item name="android:popupMenuStyle">@style/popupMenuStyle</item> diff --git a/src/android/support/v4/view/ThemeViewPager.java b/src/android/support/v4/view/ThemeViewPager.java index ba0911e..1cde715 100644 --- a/src/android/support/v4/view/ThemeViewPager.java +++ b/src/android/support/v4/view/ThemeViewPager.java @@ -24,7 +24,7 @@ import android.view.MotionEvent; import android.view.View; import android.view.ViewConfiguration; -import org.cyanogenmod.theme.chooser.R; +import org.cyanogenmod.theme.chooser2.R; public class ThemeViewPager extends ViewPager { private static final String TAG = ThemeViewPager.class.getSimpleName(); diff --git a/src/com/viewpagerindicator/CirclePageIndicator.java b/src/com/viewpagerindicator/CirclePageIndicator.java index 19b031e..ef44f50 100644 --- a/src/com/viewpagerindicator/CirclePageIndicator.java +++ b/src/com/viewpagerindicator/CirclePageIndicator.java @@ -34,7 +34,7 @@ import android.view.View; import android.view.ViewConfiguration; import au.com.glassechidna.velocityviewpager.VelocityViewPager; -import org.cyanogenmod.theme.chooser.R; +import org.cyanogenmod.theme.chooser2.R; import static android.graphics.Paint.ANTI_ALIAS_FLAG; import static android.widget.LinearLayout.HORIZONTAL; diff --git a/src/org/cyanogenmod/theme/chooser/AppReceiver.java b/src/org/cyanogenmod/theme/chooser2/AppReceiver.java index 0c3037e..9ac3f91 100644 --- a/src/org/cyanogenmod/theme/chooser/AppReceiver.java +++ b/src/org/cyanogenmod/theme/chooser2/AppReceiver.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.cyanogenmod.theme.chooser; +package org.cyanogenmod.theme.chooser2; import android.content.BroadcastReceiver; import android.content.Context; @@ -29,8 +29,6 @@ import org.cyanogenmod.theme.util.NotificationHelper; import org.cyanogenmod.theme.util.PreferenceUtils; import org.cyanogenmod.theme.util.Utils; -import cyanogenmod.providers.ThemesContract; - public class AppReceiver extends BroadcastReceiver { @Override diff --git a/src/org/cyanogenmod/theme/chooser/BootReceiver.java b/src/org/cyanogenmod/theme/chooser2/BootReceiver.java index 00a6723..02dc107 100644 --- a/src/org/cyanogenmod/theme/chooser/BootReceiver.java +++ b/src/org/cyanogenmod/theme/chooser2/BootReceiver.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.cyanogenmod.theme.chooser; +package org.cyanogenmod.theme.chooser2; import android.content.BroadcastReceiver; import android.content.ComponentName; diff --git a/src/org/cyanogenmod/theme/chooser/ChooserActivity.java b/src/org/cyanogenmod/theme/chooser2/ChooserActivity.java index 081325d..3e63dfa 100644 --- a/src/org/cyanogenmod/theme/chooser/ChooserActivity.java +++ b/src/org/cyanogenmod/theme/chooser2/ChooserActivity.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.cyanogenmod.theme.chooser; +package org.cyanogenmod.theme.chooser2; import android.animation.Animator; import android.animation.AnimatorSet; @@ -60,9 +60,11 @@ import android.util.MutableLong; import android.util.TypedValue; import android.view.View; import android.view.ViewPropertyAnimator; +import android.view.animation.AccelerateDecelerateInterpolator; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.view.animation.DecelerateInterpolator; +import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; @@ -86,7 +88,7 @@ import static cyanogenmod.providers.ThemesContract.ThemesColumns.MODIFIES_ALARMS import static cyanogenmod.providers.ThemesContract.ThemesColumns.MODIFIES_BOOT_ANIM; import static cyanogenmod.providers.ThemesContract.ThemesColumns.MODIFIES_NOTIFICATIONS; import static cyanogenmod.providers.ThemesContract.ThemesColumns.MODIFIES_RINGTONES; -import static org.cyanogenmod.theme.chooser.ComponentSelector.DEFAULT_COMPONENT_ID; +import static org.cyanogenmod.theme.chooser2.ComponentSelector.DEFAULT_COMPONENT_ID; import static org.cyanogenmod.theme.util.CursorLoaderHelper.LOADER_ID_INSTALLED_THEMES; import static org.cyanogenmod.theme.util.CursorLoaderHelper.LOADER_ID_APPLIED; @@ -143,7 +145,7 @@ public class ChooserActivity extends FragmentActivity private ThemesAdapter mAdapter; private boolean mExpanded = false; private ComponentSelector mSelector; - private View mSaveApplyLayout; + private Button mSaveApplyButton; private int mContainerYOffset = 0; private TypefaceHelperCache mTypefaceHelperCache; private boolean mIsAnimating; @@ -190,6 +192,8 @@ public class ChooserActivity extends FragmentActivity int margin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 48, dm); mPager.setPageMargin(-margin / 2); mPager.setOffscreenPageLimit(OFFSCREEN_PAGE_LIMIT); + mPager.setClipChildren(false); + mPager.setClipToPadding(false); mPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { public void onPageSelected(int position) { @@ -209,36 +213,8 @@ public class ChooserActivity extends FragmentActivity mBottomActionsLayout = findViewById(R.id.bottom_actions_layout); - mSaveApplyLayout = findViewById(R.id.save_apply_layout); - mSaveApplyLayout.findViewById(R.id.save_apply_button).setOnClickListener( - new View.OnClickListener() { - @Override - public void onClick(View v) { - if (mIsAnimating) return; - hideSaveApplyButton(); - mContainer.setClickable(false); - final ThemeFragment f = getCurrentFragment(); - if (mSelector.isEnabled()) { - mSelector.hide(); - if (mContainerYOffset != 0) { - slideContentBack(-mContainerYOffset); - mContainerYOffset = 0; - } - if (f != null) f.fadeInCards(); - if (mShowLockScreenWallpaper) { - mShowLockScreenWallpaper = false; - mSelector.resetComponentType(); - } - } - - mHandler.postDelayed(new Runnable() { - @Override - public void run() { - collapse(true); - } - }, ONCLICK_SAVE_APPLY_FINISH_ANIMATION_DELAY); - } - }); + mSaveApplyButton = (Button) findViewById(R.id.save_apply_button); + mSaveApplyButton.setOnClickListener(mOnSaveApplyClicked); mBottomActionsLayout.findViewById(R.id.shop_themes) .setOnClickListener(mOnShopThemesClicked); @@ -270,34 +246,28 @@ public class ChooserActivity extends FragmentActivity } public void showSaveApplyButton() { - if (mSaveApplyLayout != null && mSaveApplyLayout.getVisibility() != View.VISIBLE) { + if (mSaveApplyButton != null && mSaveApplyButton.getVisibility() != View.VISIBLE) { mHandler.post(new Runnable() { @Override public void run() { - int navBarHeight = 0; - if (Utils.hasNavigationBar(ChooserActivity.this.getApplicationContext())) { - navBarHeight = ChooserActivity.this.getResources() - .getDimensionPixelSize(R.dimen.navigation_bar_height); - } - mSaveApplyLayout.setTranslationY(mSaveApplyLayout.getMeasuredHeight()); - mSaveApplyLayout.setVisibility(View.VISIBLE); - mSaveApplyLayout.animate() + mSaveApplyButton.setTranslationY(mSaveApplyButton.getMeasuredHeight()); + mSaveApplyButton.setVisibility(View.VISIBLE); + mSaveApplyButton.animate() .setDuration(ANIMATE_SAVE_APPLY_LAYOUT_DURATION) .setInterpolator( new DecelerateInterpolator( ANIMATE_SAVE_APPLY_DECELERATE_INTERPOLATOR_FACTOR)) - .translationY(-mSelector.getMeasuredHeight() - + navBarHeight); + .translationY(-mSelector.getMeasuredHeight()); } }); } } public void hideSaveApplyButton() { - if (mSaveApplyLayout.getVisibility() != View.GONE) { + if (mSaveApplyButton.getVisibility() != View.GONE) { Animation anim = AnimationUtils.loadAnimation(this, R.anim.component_selection_animate_out); - mSaveApplyLayout.startAnimation(anim); + mSaveApplyButton.startAnimation(anim); anim.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { @@ -305,7 +275,7 @@ public class ChooserActivity extends FragmentActivity @Override public void onAnimationEnd(Animation animation) { - mSaveApplyLayout.setVisibility(View.GONE); + mSaveApplyButton.setVisibility(View.GONE); } @Override @@ -574,10 +544,6 @@ public class ChooserActivity extends FragmentActivity return mSelector; } - public void showComponentSelector(String component, View v) { - showComponentSelector(component, null, DEFAULT_COMPONENT_ID, v); - } - public void showComponentSelector(String component, String selectedPkgName, long selectedCmpntId, View v) { if (component != null) { @@ -595,13 +561,12 @@ public class ChooserActivity extends FragmentActivity height = res.getDimensionPixelSize( R.dimen.component_selection_cell_height_sounds); } - if (mSaveApplyLayout.getVisibility() == View.VISIBLE) { - if (mSaveApplyLayout.getTranslationY() + height != 0) { - mSaveApplyLayout.animate() + if (mSaveApplyButton.getVisibility() == View.VISIBLE) { + if (mSaveApplyButton.getTranslationY() + height != 0) { + mSaveApplyButton.animate() .translationY(-height) .setInterpolator( - new DecelerateInterpolator( - ANIMATE_SAVE_APPLY_DECELERATE_INTERPOLATOR_FACTOR)) + new AccelerateDecelerateInterpolator()) .setDuration(ANIMATE_SAVE_APPLY_LAYOUT_DURATION); } } @@ -728,7 +693,7 @@ public class ChooserActivity extends FragmentActivity return; } - if (mSaveApplyLayout.getVisibility() == View.VISIBLE) { + if (mSaveApplyButton.getVisibility() == View.VISIBLE) { hideSaveApplyButton(); if (f != null) f.clearChanges(); } @@ -851,8 +816,8 @@ public class ChooserActivity extends FragmentActivity public void onSelectorClosing() { ThemeFragment f = getCurrentFragment(); if (f != null && f.componentsChanged() - && mSaveApplyLayout.getVisibility() == View.VISIBLE) { - mSaveApplyLayout.animate() + && mSaveApplyButton.getVisibility() == View.VISIBLE) { + mSaveApplyButton.animate() .translationY(0) .setInterpolator(new DecelerateInterpolator()) .setDuration(ANIMATE_SAVE_APPLY_LAYOUT_DURATION); @@ -914,6 +879,35 @@ public class ChooserActivity extends FragmentActivity } }; + private View.OnClickListener mOnSaveApplyClicked = new View.OnClickListener() { + @Override + public void onClick(View v) { + if (mIsAnimating) return; + hideSaveApplyButton(); + mContainer.setClickable(false); + final ThemeFragment f = getCurrentFragment(); + if (mSelector.isEnabled()) { + mSelector.hide(); + if (mContainerYOffset != 0) { + slideContentBack(-mContainerYOffset); + mContainerYOffset = 0; + } + if (f != null) f.fadeInCards(); + if (mShowLockScreenWallpaper) { + mShowLockScreenWallpaper = false; + mSelector.resetComponentType(); + } + } + + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + collapse(true); + } + }, ONCLICK_SAVE_APPLY_FINISH_ANIMATION_DELAY); + } + }; + private <T> void startLoader(int loaderId) { final LoaderManager manager = getSupportLoaderManager(); final Loader<T> loader = manager.getLoader(loaderId); diff --git a/src/org/cyanogenmod/theme/chooser/ComponentCardView.java b/src/org/cyanogenmod/theme/chooser2/ComponentCardView.java index 54d97c9..f9578c7 100644 --- a/src/org/cyanogenmod/theme/chooser/ComponentCardView.java +++ b/src/org/cyanogenmod/theme/chooser2/ComponentCardView.java @@ -15,11 +15,10 @@ * limitations under the License. */ -package org.cyanogenmod.theme.chooser; +package org.cyanogenmod.theme.chooser2; import android.animation.Animator; import android.animation.AnimatorSet; -import android.animation.IntEvaluator; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.content.Context; diff --git a/src/org/cyanogenmod/theme/chooser/ComponentSelector.java b/src/org/cyanogenmod/theme/chooser2/ComponentSelector.java index ad0b68c..178c9b6 100644 --- a/src/org/cyanogenmod/theme/chooser/ComponentSelector.java +++ b/src/org/cyanogenmod/theme/chooser2/ComponentSelector.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.cyanogenmod.theme.chooser; +package org.cyanogenmod.theme.chooser2; import android.content.Context; import android.content.pm.PackageManager; diff --git a/src/org/cyanogenmod/theme/chooser/IconTransitionDrawable.java b/src/org/cyanogenmod/theme/chooser2/IconTransitionDrawable.java index 96547f3..08cc910 100644 --- a/src/org/cyanogenmod/theme/chooser/IconTransitionDrawable.java +++ b/src/org/cyanogenmod/theme/chooser2/IconTransitionDrawable.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.cyanogenmod.theme.chooser; +package org.cyanogenmod.theme.chooser2; import android.graphics.Canvas; import android.graphics.drawable.Drawable; diff --git a/src/org/cyanogenmod/theme/chooser/MyThemeFragment.java b/src/org/cyanogenmod/theme/chooser2/MyThemeFragment.java index 90a3f05..490b568 100644 --- a/src/org/cyanogenmod/theme/chooser/MyThemeFragment.java +++ b/src/org/cyanogenmod/theme/chooser2/MyThemeFragment.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.cyanogenmod.theme.chooser; +package org.cyanogenmod.theme.chooser2; import android.app.WallpaperManager; import android.content.BroadcastReceiver; diff --git a/src/org/cyanogenmod/theme/chooser/NewFragmentStatePagerAdapter.java b/src/org/cyanogenmod/theme/chooser2/NewFragmentStatePagerAdapter.java index cefc344..e108a76 100644 --- a/src/org/cyanogenmod/theme/chooser/NewFragmentStatePagerAdapter.java +++ b/src/org/cyanogenmod/theme/chooser2/NewFragmentStatePagerAdapter.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.cyanogenmod.theme.chooser; +package org.cyanogenmod.theme.chooser2; import android.os.Bundle; import android.os.Parcelable; diff --git a/src/org/cyanogenmod/theme/chooser/NotificationHijackingService.java b/src/org/cyanogenmod/theme/chooser2/NotificationHijackingService.java index dddd8f5..cee1b4f 100644 --- a/src/org/cyanogenmod/theme/chooser/NotificationHijackingService.java +++ b/src/org/cyanogenmod/theme/chooser2/NotificationHijackingService.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.cyanogenmod.theme.chooser; +package org.cyanogenmod.theme.chooser2; import android.app.PendingIntent; import android.content.ComponentName; diff --git a/src/org/cyanogenmod/theme/chooser/PagerContainer.java b/src/org/cyanogenmod/theme/chooser2/PagerContainer.java index 852b847..a4349bd 100644 --- a/src/org/cyanogenmod/theme/chooser/PagerContainer.java +++ b/src/org/cyanogenmod/theme/chooser2/PagerContainer.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.cyanogenmod.theme.chooser; +package org.cyanogenmod.theme.chooser2; import android.content.Context; import android.graphics.Point; diff --git a/src/org/cyanogenmod/theme/chooser/ThemeFragment.java b/src/org/cyanogenmod/theme/chooser2/ThemeFragment.java index d0891a7..6a73598 100644 --- a/src/org/cyanogenmod/theme/chooser/ThemeFragment.java +++ b/src/org/cyanogenmod/theme/chooser2/ThemeFragment.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.cyanogenmod.theme.chooser; +package org.cyanogenmod.theme.chooser2; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; @@ -83,7 +83,7 @@ import android.widget.Space; import android.widget.TextView; import android.widget.Toast; -import org.cyanogenmod.theme.chooser.ComponentSelector.OnItemClickedListener; +import org.cyanogenmod.theme.chooser2.ComponentSelector.OnItemClickedListener; import org.cyanogenmod.theme.util.AudioUtils; import org.cyanogenmod.theme.util.BootAnimationHelper; import org.cyanogenmod.theme.util.CursorLoaderHelper; @@ -136,7 +136,7 @@ import static cyanogenmod.providers.ThemesContract.ThemesColumns.MODIFIES_NAVIGA import static cyanogenmod.providers.ThemesContract.ThemesColumns.MODIFIES_ICONS; import static cyanogenmod.providers.ThemesContract.ThemesColumns.MODIFIES_FONTS; -import static org.cyanogenmod.theme.chooser.ComponentSelector.DEFAULT_COMPONENT_ID; +import static org.cyanogenmod.theme.chooser2.ComponentSelector.DEFAULT_COMPONENT_ID; import static org.cyanogenmod.theme.util.CursorLoaderHelper.LOADER_ID_INVALID; import static org.cyanogenmod.theme.util.CursorLoaderHelper.LOADER_ID_ALL; diff --git a/src/org/cyanogenmod/theme/chooser/WallpaperCardView.java b/src/org/cyanogenmod/theme/chooser2/WallpaperCardView.java index a3ed8ea..74c39f5 100644 --- a/src/org/cyanogenmod/theme/chooser/WallpaperCardView.java +++ b/src/org/cyanogenmod/theme/chooser2/WallpaperCardView.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package org.cyanogenmod.theme.chooser; +package org.cyanogenmod.theme.chooser2; import android.animation.Animator; import android.animation.AnimatorSet; diff --git a/src/org/cyanogenmod/theme/perapptheming/PerAppThemeListLayout.java b/src/org/cyanogenmod/theme/perapptheming/PerAppThemeListLayout.java index 424d640..fa3a5f0 100644 --- a/src/org/cyanogenmod/theme/perapptheming/PerAppThemeListLayout.java +++ b/src/org/cyanogenmod/theme/perapptheming/PerAppThemeListLayout.java @@ -29,10 +29,9 @@ import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.view.animation.AccelerateDecelerateInterpolator; -import android.view.animation.Animation; import android.widget.FrameLayout; -import org.cyanogenmod.theme.chooser.R; +import org.cyanogenmod.theme.chooser2.R; public class PerAppThemeListLayout extends FrameLayout { private PerAppThemingWindow mWindow; diff --git a/src/org/cyanogenmod/theme/perapptheming/PerAppThemeListView.java b/src/org/cyanogenmod/theme/perapptheming/PerAppThemeListView.java index 9986f60..ffc7016 100644 --- a/src/org/cyanogenmod/theme/perapptheming/PerAppThemeListView.java +++ b/src/org/cyanogenmod/theme/perapptheming/PerAppThemeListView.java @@ -23,7 +23,7 @@ import android.content.res.TypedArray; import android.util.AttributeSet; import android.widget.ListView; -import org.cyanogenmod.theme.chooser.R; +import org.cyanogenmod.theme.chooser2.R; import org.cyanogenmod.theme.util.Utils; public class PerAppThemeListView extends ListView { diff --git a/src/org/cyanogenmod/theme/perapptheming/PerAppThemingWindow.java b/src/org/cyanogenmod/theme/perapptheming/PerAppThemingWindow.java index 27db329..89401b4 100644 --- a/src/org/cyanogenmod/theme/perapptheming/PerAppThemingWindow.java +++ b/src/org/cyanogenmod/theme/perapptheming/PerAppThemingWindow.java @@ -51,7 +51,7 @@ import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; -import org.cyanogenmod.theme.chooser.R; +import org.cyanogenmod.theme.chooser2.R; import org.cyanogenmod.theme.util.Utils; import cyanogenmod.providers.ThemesContract.ThemesColumns; @@ -633,7 +633,9 @@ public class PerAppThemingWindow extends Service implements OnTouchListener, WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED | - WindowManager.LayoutParams.FLAG_SPLIT_TOUCH, + WindowManager.LayoutParams.FLAG_SPLIT_TOUCH | + WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS | + WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN, PixelFormat.TRANSLUCENT); } mListLayoutParams.gravity = Gravity.TOP | @@ -663,9 +665,9 @@ public class PerAppThemingWindow extends Service implements OnTouchListener, } private void showScrim() { + mThemeListLayout.setEnabled(false); ValueAnimator animator = ValueAnimator.ofArgb(SCRIM_COLOR_TRANSPARENT, SCRIM_COLOR_OPAQUE); - mThemeListLayout.setEnabled(false); animator.setDuration(ANIMATION_DURATION) .addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override @@ -681,6 +683,7 @@ public class PerAppThemingWindow extends Service implements OnTouchListener, } private void hideScrim() { + mThemeListLayout.setEnabled(true); ValueAnimator animator = ValueAnimator.ofArgb(SCRIM_COLOR_OPAQUE, SCRIM_COLOR_TRANSPARENT); animator.setDuration(ANIMATION_DURATION) .addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { diff --git a/src/org/cyanogenmod/theme/util/NotificationHelper.java b/src/org/cyanogenmod/theme/util/NotificationHelper.java index ebbdb66..c6527ab 100644 --- a/src/org/cyanogenmod/theme/util/NotificationHelper.java +++ b/src/org/cyanogenmod/theme/util/NotificationHelper.java @@ -25,11 +25,10 @@ import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.res.Resources; -import android.graphics.BitmapFactory; import android.text.TextUtils; -import org.cyanogenmod.theme.chooser.ChooserActivity; -import org.cyanogenmod.theme.chooser.R; +import org.cyanogenmod.theme.chooser2.ChooserActivity; +import org.cyanogenmod.theme.chooser2.R; public class NotificationHelper { private static final int NOTIFICATION_ID = 0x434D5443; diff --git a/src/org/cyanogenmod/theme/util/ThemedTypefaceHelper.java b/src/org/cyanogenmod/theme/util/ThemedTypefaceHelper.java index cf5ddfc..2aba858 100644 --- a/src/org/cyanogenmod/theme/util/ThemedTypefaceHelper.java +++ b/src/org/cyanogenmod/theme/util/ThemedTypefaceHelper.java @@ -53,14 +53,14 @@ public class ThemedTypefaceHelper { return; } catch(Exception e) { Log.w(TAG, "Unable to parse and load themed fonts for " + pkgName + - ". Falling back to system fonts", e ); + ". Falling back to system fonts"); } try { loadSystemFonts(); return; } catch(Exception e) { - Log.e(TAG, "Parsing system fonts failed. Falling back to Typeface loaded fonts", e); + Log.e(TAG, "Parsing system fonts failed. Falling back to Typeface loaded fonts"); } // There is no reason for this to happen unless someone diff --git a/src/org/cyanogenmod/theme/util/Utils.java b/src/org/cyanogenmod/theme/util/Utils.java index 94afecb..9074ab3 100644 --- a/src/org/cyanogenmod/theme/util/Utils.java +++ b/src/org/cyanogenmod/theme/util/Utils.java @@ -38,7 +38,6 @@ import android.graphics.BitmapRegionDecoder; import android.graphics.Point; import android.graphics.Rect; import android.os.RemoteException; -import android.provider.Settings; import android.text.TextUtils; import android.util.Log; import android.util.TypedValue; @@ -46,7 +45,7 @@ import android.view.IWindowManager; import android.view.WindowManager; import android.view.WindowManagerGlobal; -import org.cyanogenmod.theme.chooser.ChooserActivity; +import org.cyanogenmod.theme.chooser2.ChooserActivity; import cyanogenmod.externalviews.KeyguardExternalView; import cyanogenmod.providers.CMSettings; diff --git a/src/org/cyanogenmod/theme/widget/ConfirmCancelOverlay.java b/src/org/cyanogenmod/theme/widget/ConfirmCancelOverlay.java index e00e67a..dcfcbfc 100644 --- a/src/org/cyanogenmod/theme/widget/ConfirmCancelOverlay.java +++ b/src/org/cyanogenmod/theme/widget/ConfirmCancelOverlay.java @@ -23,7 +23,7 @@ import android.view.View; import android.widget.FrameLayout; import android.widget.TextView; -import org.cyanogenmod.theme.chooser.R; +import org.cyanogenmod.theme.chooser2.R; public class ConfirmCancelOverlay extends FrameLayout { diff --git a/src/org/cyanogenmod/theme/widget/LatoTextView.java b/src/org/cyanogenmod/theme/widget/LatoTextView.java index 0cb02ae..a6056ee 100644 --- a/src/org/cyanogenmod/theme/widget/LatoTextView.java +++ b/src/org/cyanogenmod/theme/widget/LatoTextView.java @@ -24,7 +24,7 @@ import android.content.res.TypedArray; import android.graphics.Typeface; import android.util.AttributeSet; -import org.cyanogenmod.theme.chooser.R; +import org.cyanogenmod.theme.chooser2.R; import org.cyanogenmod.theme.util.Utils; import java.io.File; diff --git a/src/org/cyanogenmod/theme/widget/ThemeTagLayout.java b/src/org/cyanogenmod/theme/widget/ThemeTagLayout.java index 18e3da2..701b78b 100644 --- a/src/org/cyanogenmod/theme/widget/ThemeTagLayout.java +++ b/src/org/cyanogenmod/theme/widget/ThemeTagLayout.java @@ -25,7 +25,7 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; -import org.cyanogenmod.theme.chooser.R; +import org.cyanogenmod.theme.chooser2.R; public class ThemeTagLayout extends LinearLayout { private ImageView mAppliedTag; |