Merge "Dark text support on Recents" into oc-dr1-dev
This commit is contained in:
@@ -23,7 +23,8 @@
|
||||
android:drawableTop="@drawable/recents_empty"
|
||||
android:drawablePadding="25dp"
|
||||
android:textSize="16sp"
|
||||
android:textColor="#ffffffff"
|
||||
android:drawableTint="?attr/bgProtectTextColor"
|
||||
android:textColor="?attr/bgProtectTextColor"
|
||||
android:text="@string/recents_empty_message"
|
||||
android:fontFamily="sans-serif"
|
||||
android:visibility="gone" />
|
||||
@@ -24,7 +24,7 @@
|
||||
android:paddingBottom="12dp"
|
||||
android:text="@string/recents_stack_action_button_label"
|
||||
android:textSize="14sp"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textColor="?attr/bgProtectTextColor"
|
||||
android:textAllCaps="true"
|
||||
android:shadowColor="#99000000"
|
||||
android:shadowDx="0"
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<style name="RecentsTheme" parent="@android:style/Theme.Material">
|
||||
<style name="RecentsTheme" parent="RecentsBase">
|
||||
<!-- NoTitle -->
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<!-- Misc -->
|
||||
@@ -27,6 +27,12 @@
|
||||
<item name="android:ambientShadowAlpha">0.35</item>
|
||||
</style>
|
||||
|
||||
<!-- OverlayManager might replace this style entirely, use RecentsTheme to set a property
|
||||
that should exist in both light and dark versions of Recents -->
|
||||
<style name="RecentsBase" parent="@android:style/Theme.Material">
|
||||
<item name="android:textColorPrimaryInverse">@*android:color/primary_text_material_dark</item>
|
||||
<item name="android:textColorSecondaryInverse">@*android:color/secondary_text_material_dark</item>
|
||||
</style>
|
||||
|
||||
<!-- Recents theme -->
|
||||
<style name="RecentsTheme.Wallpaper">
|
||||
@@ -35,6 +41,8 @@
|
||||
<item name="android:windowShowWallpaper">true</item>
|
||||
<item name="android:windowDisablePreview">true</item>
|
||||
<item name="clearAllStyle">@style/ClearAllButtonDefaultMargins</item>
|
||||
<item name="bgProtectTextColor">?android:attr/textColorPrimaryInverse</item>
|
||||
<item name="bgProtectSecondaryTextColor">?android:attr/textColorSecondaryInverse</item>
|
||||
</style>
|
||||
|
||||
<style name="ClearAllButtonDefaultMargins">
|
||||
@@ -47,6 +55,8 @@
|
||||
<!-- Performance optimized Recents theme (no wallpaper) -->
|
||||
<style name="RecentsTheme.NoWallpaper">
|
||||
<item name="android:windowBackground">@android:color/black</item>
|
||||
<item name="bgProtectTextColor">@android:color/white</item>
|
||||
<item name="bgProtectSecondaryTextColor">@android:color/white</item>
|
||||
</style>
|
||||
|
||||
<!-- Theme used for the activity that shows when the system forced an app to be resizable -->
|
||||
@@ -290,7 +300,10 @@
|
||||
<style name="Animation.StatusBar">
|
||||
</style>
|
||||
|
||||
<style name="systemui_theme" parent="@*android:style/Theme.DeviceDefault.QuickSettings">
|
||||
<!-- Overlay manager may replace this theme -->
|
||||
<style name="systemui_base" parent="@*android:style/Theme.DeviceDefault.QuickSettings" />
|
||||
|
||||
<style name="systemui_theme" parent="systemui_base">
|
||||
<item name="lightIconTheme">@style/DualToneLightTheme</item>
|
||||
<item name="darkIconTheme">@style/DualToneDarkTheme</item>
|
||||
<item name="bgProtectTextColor">?android:attr/textColorPrimaryInverse</item>
|
||||
@@ -303,7 +316,10 @@
|
||||
<item name="*android:successColor">?android:attr/textColorPrimaryInverse</item>
|
||||
</style>
|
||||
|
||||
<style name="qs_theme" parent="systemui_theme">
|
||||
<!-- Overlay manager may replace this theme -->
|
||||
<style name="qs_base" parent="@*android:style/Theme.DeviceDefault.QuickSettings" />
|
||||
|
||||
<style name="qs_theme" parent="qs_base">
|
||||
<item name="lightIconTheme">@style/QSIconTheme</item>
|
||||
<item name="darkIconTheme">@style/QSIconTheme</item>
|
||||
</style>
|
||||
@@ -459,7 +475,7 @@
|
||||
<item name="android:paddingEnd">8dp</item>
|
||||
</style>
|
||||
|
||||
<style name="edit_theme" parent="@*android:style/Theme.DeviceDefault.QuickSettings">
|
||||
<style name="edit_theme" parent="qs_base">
|
||||
<item name="android:colorBackground">?android:attr/colorSecondary</item>
|
||||
</style>
|
||||
|
||||
|
||||
@@ -16,7 +16,9 @@ package com.android.systemui.qs.tileimpl;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
import android.view.ContextThemeWrapper;
|
||||
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.plugins.qs.*;
|
||||
import com.android.systemui.plugins.qs.QSTileView;
|
||||
import com.android.systemui.qs.external.CustomTile;
|
||||
@@ -78,7 +80,7 @@ public class QSFactoryImpl implements QSFactory {
|
||||
|
||||
@Override
|
||||
public QSTileView createTileView(QSTile tile, boolean collapsedView) {
|
||||
Context context = mHost.getContext();
|
||||
Context context = new ContextThemeWrapper(mHost.getContext(), R.style.qs_theme);
|
||||
QSIconView icon = tile.createTileView(context);
|
||||
if (collapsedView) {
|
||||
return new QSTileBaseView(context, icon, collapsedView);
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.res.Configuration;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
@@ -42,9 +43,9 @@ import android.view.WindowManager.LayoutParams;
|
||||
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.keyguard.LatencyTracker;
|
||||
import com.android.systemui.DejankUtils;
|
||||
import com.android.systemui.Interpolators;
|
||||
import com.android.keyguard.LatencyTracker;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.recents.events.EventBus;
|
||||
import com.android.systemui.recents.events.activity.CancelEnterRecentsWindowAnimationEvent;
|
||||
@@ -110,11 +111,10 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
|
||||
private RecentsPackageMonitor mPackageMonitor;
|
||||
private Handler mHandler = new Handler();
|
||||
private long mLastTabKeyEventTime;
|
||||
private int mLastDeviceOrientation = Configuration.ORIENTATION_UNDEFINED;
|
||||
private int mLastDisplayDensity;
|
||||
private boolean mFinishedOnStartup;
|
||||
private boolean mIgnoreAltTabRelease;
|
||||
private boolean mIsVisible;
|
||||
private Configuration mLastConfig;
|
||||
|
||||
// Top level views
|
||||
private RecentsView mRecentsView;
|
||||
@@ -333,16 +333,11 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
|
||||
setContentView(R.layout.recents);
|
||||
takeKeyEvents(true);
|
||||
mRecentsView = findViewById(R.id.recents_view);
|
||||
mRecentsView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
|
||||
mScrimViews = new SystemBarScrimViews(this);
|
||||
getWindow().getAttributes().privateFlags |=
|
||||
WindowManager.LayoutParams.PRIVATE_FLAG_FORCE_DECOR_VIEW_VISIBILITY;
|
||||
|
||||
Configuration appConfiguration = Utilities.getAppConfiguration(this);
|
||||
mLastDeviceOrientation = appConfiguration.orientation;
|
||||
mLastDisplayDensity = appConfiguration.densityDpi;
|
||||
mLastConfig = Utilities.getAppConfiguration(this);
|
||||
mFocusTimerDuration = getResources().getInteger(R.integer.recents_auto_advance_duration);
|
||||
mIterateTrigger = new DozeTrigger(mFocusTimerDuration, new Runnable() {
|
||||
@Override
|
||||
@@ -485,10 +480,15 @@ public class RecentsActivity extends Activity implements ViewTreeObserver.OnPreD
|
||||
Configuration newDeviceConfiguration = Utilities.getAppConfiguration(this);
|
||||
int numStackTasks = mRecentsView.getStack().getStackTaskCount();
|
||||
EventBus.getDefault().send(new ConfigurationChangedEvent(false /* fromMultiWindow */,
|
||||
mLastDeviceOrientation != newDeviceConfiguration.orientation,
|
||||
mLastDisplayDensity != newDeviceConfiguration.densityDpi, numStackTasks > 0));
|
||||
mLastDeviceOrientation = newDeviceConfiguration.orientation;
|
||||
mLastDisplayDensity = newDeviceConfiguration.densityDpi;
|
||||
mLastConfig.orientation != newDeviceConfiguration.orientation,
|
||||
mLastConfig.densityDpi != newDeviceConfiguration.densityDpi, numStackTasks > 0));
|
||||
|
||||
int configDiff = mLastConfig.updateFrom(newDeviceConfiguration);
|
||||
|
||||
// Recreate activity if an overlay was enabled/disabled
|
||||
if ((configDiff & ActivityInfo.CONFIG_ASSETS_PATHS) != 0) {
|
||||
recreate();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -151,6 +151,12 @@ public class RecentsView extends FrameLayout implements ColorExtractor.OnColorsC
|
||||
mColorExtractor = Dependency.get(SysuiColorExtractor.class);
|
||||
|
||||
LayoutInflater inflater = LayoutInflater.from(context);
|
||||
|
||||
mEmptyView = (TextView) inflater.inflate(R.layout.recents_empty, this, false);
|
||||
addView(mEmptyView);
|
||||
|
||||
boolean usingDarkText =
|
||||
Color.luminance(mEmptyView.getTextColors().getDefaultColor()) < 0.5f;
|
||||
if (RecentsDebugFlags.Static.EnableStackActionButton) {
|
||||
mStackActionButton = (TextView) inflater.inflate(R.layout.recents_stack_action_button,
|
||||
this, false);
|
||||
@@ -160,10 +166,21 @@ public class RecentsView extends FrameLayout implements ColorExtractor.OnColorsC
|
||||
EventBus.getDefault().send(new DismissAllTaskViewsEvent());
|
||||
}
|
||||
});
|
||||
// Disable black shadow if text color is already dark.
|
||||
if (usingDarkText) {
|
||||
mStackActionButton.setShadowLayer(0, 0, 0, 0);
|
||||
}
|
||||
addView(mStackActionButton);
|
||||
}
|
||||
mEmptyView = (TextView) inflater.inflate(R.layout.recents_empty, this, false);
|
||||
addView(mEmptyView);
|
||||
|
||||
// Let's also require dark status and nav bars if the text is dark
|
||||
int systemBarsStyle = usingDarkText ? View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR |
|
||||
View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR : 0;
|
||||
|
||||
setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
|
||||
systemBarsStyle);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
package="com.android.systemui.theme.dark"
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0">
|
||||
<overlay android:targetPackage="android" android:priority="1"/>
|
||||
<overlay android:targetPackage="com.android.systemui" android:priority="1"/>
|
||||
|
||||
<application android:label="@string/sysui_overlay_dark" android:hasCode="false"/>
|
||||
</manifest>
|
||||
|
||||
@@ -1,13 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<style name="Theme.DeviceDefault.QuickSettings" parent="android:Theme.DeviceDefault">
|
||||
<style name="qs_base" parent="android:Theme.DeviceDefault">
|
||||
<item name="android:colorPrimary">@*android:color/primary_device_default_settings</item>
|
||||
<item name="android:colorPrimaryDark">@*android:color/primary_dark_device_default_settings</item>
|
||||
<!-- textColorPrimaryInverse is used on the lock screen and this means that we can't just
|
||||
invert text colors otherwise we won't have contrast on the keyguard -->
|
||||
<item name="android:textColorPrimaryInverse">@*android:color/primary_text_material_dark</item>
|
||||
<!-- same for textColorSecondaryInverse -->
|
||||
<item name="android:textColorSecondaryInverse">@*android:color/secondary_text_material_dark</item>
|
||||
<item name="android:colorSecondary">@*android:color/secondary_device_default_settings</item>
|
||||
<item name="android:colorAccent">@*android:color/accent_device_default_dark</item>
|
||||
<item name="android:colorControlNormal">?android:attr/textColorPrimary</item>
|
||||
@@ -2,7 +2,7 @@
|
||||
package="com.android.systemui.theme.lightwallpaper"
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0">
|
||||
<overlay android:targetPackage="android" android:priority="2"/>
|
||||
<overlay android:targetPackage="com.android.systemui" android:priority="2"/>
|
||||
|
||||
<application android:label="@string/sysui_overlay_light" android:hasCode="false"/>
|
||||
</manifest>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<style name="systemui_base" parent="@*android:style/Theme.DeviceDefault.QuickSettings">
|
||||
<item name="android:textColorPrimaryInverse">@*android:color/primary_text_material_light</item>
|
||||
<item name="android:textColorSecondaryInverse">@*android:color/secondary_text_material_light</item>
|
||||
</style>
|
||||
|
||||
<style name="RecentsBase" parent="@android:style/Theme.Material">
|
||||
<item name="android:textColorPrimaryInverse">@*android:color/primary_text_material_light</item>
|
||||
<item name="android:textColorSecondaryInverse">@*android:color/secondary_text_material_light</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<style name="Theme.DeviceDefault.QuickSettings" parent="android:Theme.DeviceDefault.Light">
|
||||
<item name="android:textColorPrimaryInverse">@*android:color/primary_text_material_light</item>
|
||||
<item name="android:textColorSecondaryInverse">@*android:color/secondary_text_material_light</item>
|
||||
</style>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user