Merge commit '5cfb8071da5d2d61a77cb0f87e27cf13ed677912' into HEAD

Change-Id: I75779539cc820f2faf496b76ca597214a99f1d82
This commit is contained in:
Xin Li 2017-11-13 14:35:38 -08:00
commit 5bfd976cfb
4 changed files with 42 additions and 5 deletions

View file

@ -26,6 +26,9 @@ import android.content.res.Resources;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Build.VERSION; import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES; import android.os.Build.VERSION_CODES;
import android.support.annotation.AnyRes;
import android.support.annotation.DrawableRes;
import android.support.annotation.StringRes;
import android.support.annotation.VisibleForTesting; import android.support.annotation.VisibleForTesting;
import android.util.Log; import android.util.Log;
@ -56,7 +59,7 @@ public class Partner {
* *
* @see #getResourceEntry(android.content.Context, int) * @see #getResourceEntry(android.content.Context, int)
*/ */
public static Drawable getDrawable(Context context, int id) { public static Drawable getDrawable(Context context, @DrawableRes int id) {
final ResourceEntry entry = getResourceEntry(context, id); final ResourceEntry entry = getResourceEntry(context, id);
return entry.resources.getDrawable(entry.id); return entry.resources.getDrawable(entry.id);
} }
@ -67,11 +70,20 @@ public class Partner {
* *
* @see #getResourceEntry(android.content.Context, int) * @see #getResourceEntry(android.content.Context, int)
*/ */
public static String getString(Context context, int id) { public static String getString(Context context, @StringRes int id) {
final ResourceEntry entry = getResourceEntry(context, id); final ResourceEntry entry = getResourceEntry(context, id);
return entry.resources.getString(entry.id); return entry.resources.getString(entry.id);
} }
/**
* Convenience method to get a CharSequence from partner overlay, or if not available, the text
* from the original context.
*/
public static CharSequence getText(Context context, @StringRes int id) {
final ResourceEntry entry = getResourceEntry(context, id);
return entry.resources.getText(id);
}
/** /**
* Find an entry of resource in the overlay package provided by partners. It will first look for * Find an entry of resource in the overlay package provided by partners. It will first look for
* the resource in the overlay package, and if not available, will return the one in the * the resource in the overlay package, and if not available, will return the one in the
@ -82,7 +94,7 @@ public class Partner {
* {@code entry.resources.getString(entry.id)}, or other methods available in * {@code entry.resources.getString(entry.id)}, or other methods available in
* {@link android.content.res.Resources}. * {@link android.content.res.Resources}.
*/ */
public static ResourceEntry getResourceEntry(Context context, int id) { public static ResourceEntry getResourceEntry(Context context, @AnyRes int id) {
final Partner partner = Partner.get(context); final Partner partner = Partner.get(context);
if (partner != null) { if (partner != null) {
final Resources ourResources = context.getResources(); final Resources ourResources = context.getResources();

View file

@ -233,4 +233,8 @@ public class IllustrationVideoView extends TextureView implements Animatable,
public void onSeekComplete(MediaPlayer mp) { public void onSeekComplete(MediaPlayer mp) {
mp.start(); mp.start();
} }
public int getCurrentPosition() {
return mMediaPlayer == null ? 0 : mMediaPlayer.getCurrentPosition();
}
} }

View file

@ -92,7 +92,7 @@
<item name="android:listPreferredItemPaddingEnd">?attr/suwMarginSides</item> <item name="android:listPreferredItemPaddingEnd">?attr/suwMarginSides</item>
<item name="android:listPreferredItemPaddingStart">?attr/suwMarginSides</item> <item name="android:listPreferredItemPaddingStart">?attr/suwMarginSides</item>
<item name="android:navigationBarColor">@android:color/black</item> <item name="android:navigationBarColor">@android:color/black</item>
<item name="android:statusBarColor">?android:attr/colorPrimary</item> <item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:textAppearanceListItem">@style/TextAppearance.SuwGlifItemTitle</item> <item name="android:textAppearanceListItem">@style/TextAppearance.SuwGlifItemTitle</item>
<item name="android:textAppearanceListItemSmall">@style/TextAppearance.SuwGlifItemSummary</item> <item name="android:textAppearanceListItemSmall">@style/TextAppearance.SuwGlifItemSummary</item>
<item name="android:textColorLink">@color/suw_color_accent_glif_dark</item> <item name="android:textColorLink">@color/suw_color_accent_glif_dark</item>
@ -124,7 +124,7 @@
<item name="android:listPreferredItemPaddingEnd">?attr/suwMarginSides</item> <item name="android:listPreferredItemPaddingEnd">?attr/suwMarginSides</item>
<item name="android:listPreferredItemPaddingStart">?attr/suwMarginSides</item> <item name="android:listPreferredItemPaddingStart">?attr/suwMarginSides</item>
<item name="android:navigationBarColor">@android:color/black</item> <item name="android:navigationBarColor">@android:color/black</item>
<item name="android:statusBarColor">?android:attr/colorPrimary</item> <item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:textAppearanceListItem">@style/TextAppearance.SuwGlifItemTitle</item> <item name="android:textAppearanceListItem">@style/TextAppearance.SuwGlifItemTitle</item>
<item name="android:textAppearanceListItemSmall">@style/TextAppearance.SuwGlifItemSummary</item> <item name="android:textAppearanceListItemSmall">@style/TextAppearance.SuwGlifItemSummary</item>
<item name="android:textColorLink">@color/suw_color_accent_glif_light</item> <item name="android:textColorLink">@color/suw_color_accent_glif_light</item>

View file

@ -20,9 +20,13 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;
import static org.robolectric.RuntimeEnvironment.application; import static org.robolectric.RuntimeEnvironment.application;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.os.Build.VERSION; import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES; import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.ContextThemeWrapper; import android.view.ContextThemeWrapper;
import android.widget.Button; import android.widget.Button;
@ -63,4 +67,21 @@ public class GlifStyleTest {
assertEquals("ff4285f4", Integer.toHexString(button.getTextColors().getDefaultColor())); assertEquals("ff4285f4", Integer.toHexString(button.getTextColors().getDefaultColor()));
} }
} }
@TargetApi(VERSION_CODES.LOLLIPOP)
@Config(sdk = Config.NEWEST_SDK)
@Test
public void glifThemeLight_statusBarColorShouldBeTransparent() {
GlifThemeActivity activity = Robolectric.setupActivity(GlifThemeActivity.class);
assertEquals(0x00000000, activity.getWindow().getStatusBarColor());
}
private static class GlifThemeActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
setTheme(R.style.SuwThemeGlif_Light);
super.onCreate(savedInstanceState);
}
}
} }