diff --git a/res/layout/captioning_preview.xml b/res/layout/captioning_preview.xml index b2e16faff7d..00d94a0d8b6 100644 --- a/res/layout/captioning_preview.xml +++ b/res/layout/captioning_preview.xml @@ -31,7 +31,7 @@ android:scaleType="centerCrop" android:src="@drawable/caption_background" /> - - lineLength) { - final CharSequence sequence = text.subSequence(lastBreak, i); - final int trimmedLength = TextUtils.getTrimmedLength(sequence); - breakText.append(sequence, 0, trimmedLength); - breakText.append('\n'); - lastBreak = i; - runLength = 0; - } - - runLength += textWidths[i]; - - if (runLength > maxRunLength) { - maxRunLength = (int) Math.ceil(runLength); - } - } - breakText.append(text.subSequence(lastBreak, textLength)); - - mHasMeasurements = true; - mLastMeasuredWidth = maxWidth; - - mLayout = new StaticLayout(breakText, paint, maxRunLength, Alignment.ALIGN_LEFT, - mSpacingMult, mSpacingAdd, true); - - return true; - } - - public void setStyle(int styleId) { - final Context context = mContext; - final ContentResolver cr = context.getContentResolver(); - final CaptionStyle style; - if (styleId == CaptionStyle.PRESET_CUSTOM) { - style = CaptionStyle.getCustomStyle(cr); - } else { - style = CaptionStyle.PRESETS[styleId]; - } - - mForegroundColor = style.foregroundColor; - mBackgroundColor = style.backgroundColor; - mEdgeType = style.edgeType; - mEdgeColor = style.edgeColor; - mHasMeasurements = false; - - final Typeface typeface = style.getTypeface(); - setTypeface(typeface); - - requestLayout(); - } - - @Override - protected void onDraw(Canvas c) { - final StaticLayout layout = mLayout; - if (layout == null) { - return; - } - - final int saveCount = c.save(); - final int innerPaddingX = mInnerPaddingX; - c.translate(mPaddingLeft + innerPaddingX, mPaddingTop); - - final RectF bounds = mLineBounds; - final int lineCount = layout.getLineCount(); - final Paint paint = layout.getPaint(); - paint.setShadowLayer(0, 0, 0, 0); - - final int backgroundColor = mBackgroundColor; - if (Color.alpha(backgroundColor) > 0) { - paint.setColor(backgroundColor); - paint.setStyle(Style.FILL); - - final float cornerRadius = mCornerRadius; - float previousBottom = layout.getLineTop(0); - - for (int i = 0; i < lineCount; i++) { - bounds.left = layout.getLineLeft(i) - innerPaddingX; - bounds.right = layout.getLineRight(i) + innerPaddingX; - bounds.top = previousBottom; - bounds.bottom = layout.getLineBottom(i); - - previousBottom = bounds.bottom; - - c.drawRoundRect(bounds, cornerRadius, cornerRadius, paint); - } - } - - final int edgeType = mEdgeType; - if (edgeType == CaptionStyle.EDGE_TYPE_OUTLINE) { - paint.setColor(mEdgeColor); - paint.setStyle(Style.FILL_AND_STROKE); - paint.setStrokeJoin(Join.ROUND); - paint.setStrokeWidth(mOutlineWidth); - - for (int i = 0; i < lineCount; i++) { - layout.drawText(c, i, i); - } - } - - if (edgeType == CaptionStyle.EDGE_TYPE_DROP_SHADOW) { - paint.setShadowLayer(mShadowRadius, mShadowOffsetX, mShadowOffsetY, mEdgeColor); - } - - paint.setColor(mForegroundColor); - paint.setStyle(Style.FILL); - - for (int i = 0; i < lineCount; i++) { - layout.drawText(c, i, i); - } - - c.restoreToCount(saveCount); - } -} diff --git a/src/com/android/settings/accessibility/EdgeTypePreference.java b/src/com/android/settings/accessibility/EdgeTypePreference.java index d146960f052..1d73e6c6653 100644 --- a/src/com/android/settings/accessibility/EdgeTypePreference.java +++ b/src/com/android/settings/accessibility/EdgeTypePreference.java @@ -25,6 +25,7 @@ import android.view.accessibility.CaptioningManager; import android.view.accessibility.CaptioningManager.CaptionStyle; import android.widget.TextView; +import com.android.internal.widget.SubtitleView; import com.android.settings.R; /** @@ -49,7 +50,7 @@ public class EdgeTypePreference extends ListDialogPreference { @Override protected void onBindListItem(View view, int index) { final float fontSize = CaptioningManager.getFontSize(getContext().getContentResolver()); - final CaptioningTextView preview = (CaptioningTextView) view.findViewById(R.id.preview); + final SubtitleView preview = (SubtitleView) view.findViewById(R.id.preview); preview.setForegroundColor(Color.WHITE); preview.setBackgroundColor(Color.TRANSPARENT); diff --git a/src/com/android/settings/accessibility/PresetPreference.java b/src/com/android/settings/accessibility/PresetPreference.java index cd01082d346..9ac7ef8ee38 100644 --- a/src/com/android/settings/accessibility/PresetPreference.java +++ b/src/com/android/settings/accessibility/PresetPreference.java @@ -22,6 +22,7 @@ import android.view.View; import android.view.accessibility.CaptioningManager.CaptionStyle; import android.widget.TextView; +import com.android.internal.widget.SubtitleView; import com.android.settings.R; public class PresetPreference extends ListDialogPreference { @@ -40,8 +41,7 @@ public class PresetPreference extends ListDialogPreference { @Override protected void onBindListItem(View view, int index) { - final CaptioningTextView previewText = (CaptioningTextView) view.findViewById( - R.id.preview); + final SubtitleView previewText = (SubtitleView) view.findViewById(R.id.preview); final int value = getValueAt(index); ToggleCaptioningPreferenceFragment.applyCaptionProperties(previewText, value); diff --git a/src/com/android/settings/accessibility/ToggleCaptioningPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleCaptioningPreferenceFragment.java index e248d14bb3a..a0835d2d61f 100644 --- a/src/com/android/settings/accessibility/ToggleCaptioningPreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleCaptioningPreferenceFragment.java @@ -31,6 +31,7 @@ import android.view.ViewGroup; import android.view.accessibility.CaptioningManager; import android.view.accessibility.CaptioningManager.CaptionStyle; +import com.android.internal.widget.SubtitleView; import com.android.settings.R; import com.android.settings.accessibility.ToggleSwitch.OnBeforeCheckedChangeListener; @@ -38,7 +39,7 @@ import java.util.Locale; public class ToggleCaptioningPreferenceFragment extends Fragment { private CaptionPropertiesFragment mPropsFragment; - private CaptioningTextView mPreviewText; + private SubtitleView mPreviewText; @Override public View onCreateView( @@ -62,14 +63,14 @@ public class ToggleCaptioningPreferenceFragment extends Fragment { .findFragmentById(R.id.properties_fragment)); mPropsFragment.setParent(this); - mPreviewText = (CaptioningTextView) view.findViewById(R.id.preview_text); + mPreviewText = (SubtitleView) view.findViewById(R.id.preview_text); installActionBarToggleSwitch(); refreshPreviewText(); } public void refreshPreviewText() { - final CaptioningTextView preview = mPreviewText; + final SubtitleView preview = mPreviewText; if (preview != null) { final Activity activity = getActivity(); final ContentResolver cr = activity.getContentResolver(); @@ -85,7 +86,7 @@ public class ToggleCaptioningPreferenceFragment extends Fragment { } } - public static void applyCaptionProperties(CaptioningTextView previewText, int styleId) { + public static void applyCaptionProperties(SubtitleView previewText, int styleId) { previewText.setStyle(styleId); final Context context = previewText.getContext();