Skip to content

Commit 0f90cd4

Browse files
committed
Use code viewer text size setting for diff view in review.
1 parent b3fdbb0 commit 0f90cd4

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

app/src/main/java/com/gh4a/adapter/timeline/DiffViewHolder.java

+19
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import android.content.Context;
44
import android.content.Intent;
5+
import android.content.SharedPreferences;
56
import android.graphics.Canvas;
67
import android.graphics.Paint;
78
import android.support.v4.content.ContextCompat;
@@ -12,12 +13,14 @@
1213
import android.text.TextUtils;
1314
import android.text.style.ClickableSpan;
1415
import android.text.style.LineBackgroundSpan;
16+
import android.util.TypedValue;
1517
import android.view.Menu;
1618
import android.view.MenuItem;
1719
import android.view.View;
1820
import android.widget.TextView;
1921

2022
import com.gh4a.R;
23+
import com.gh4a.fragment.SettingsFragment;
2124
import com.gh4a.loader.TimelineItem;
2225
import com.gh4a.utils.IntentUtils;
2326
import com.gh4a.utils.StringUtils;
@@ -27,6 +30,9 @@
2730

2831
class DiffViewHolder extends TimelineItemAdapter.TimelineItemViewHolder<TimelineItem.Diff>
2932
implements View.OnClickListener {
33+
private static final float[] DIFF_SIZE_MULTIPLIERS = new float[] {
34+
0.667F, 0.833F, 1F, 1.5F, 2F
35+
};
3036

3137
private final int mAddedLineBackgroundColor;
3238
private final int mRemovedLineBackgroundColor;
@@ -43,6 +49,7 @@ class DiffViewHolder extends TimelineItemAdapter.TimelineItemViewHolder<Timeline
4349
private final String mRepoOwner;
4450
private final String mRepoName;
4551
private final int mIssueNumber;
52+
private final float mInitialDiffTextSize;
4653

4754
public DiffViewHolder(View itemView, String repoOwner, String repoName, int issueNumber) {
4855
super(itemView);
@@ -67,6 +74,7 @@ public DiffViewHolder(View itemView, String repoOwner, String repoName, int issu
6774

6875
mDiffHunkTextView = itemView.findViewById(R.id.diff_hunk);
6976
mDiffHunkTextView.setMovementMethod(UiUtils.CHECKING_LINK_METHOD);
77+
mInitialDiffTextSize = mDiffHunkTextView.getTextSize();
7078
mFileTextView = itemView.findViewById(R.id.tv_file);
7179
mFileTextView.setOnClickListener(this);
7280
}
@@ -152,6 +160,17 @@ public void bind(TimelineItem.Diff item) {
152160
builder.setSpan(span, spanStart, builder.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
153161
}
154162
mDiffHunkTextView.setText(builder);
163+
mDiffHunkTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
164+
mInitialDiffTextSize * getDiffSizeMultiplier());
165+
}
166+
167+
private float getDiffSizeMultiplier() {
168+
Context context = itemView.getContext();
169+
SharedPreferences prefs = context.getSharedPreferences(SettingsFragment.PREF_NAME,
170+
Context.MODE_PRIVATE);
171+
int textSizeSetting = prefs.getInt(SettingsFragment.KEY_TEXT_SIZE, 2);
172+
return textSizeSetting >= 0 && textSizeSetting < DIFF_SIZE_MULTIPLIERS.length
173+
? DIFF_SIZE_MULTIPLIERS[textSizeSetting] : 1F;
155174
}
156175

157176
private void appendLineNumber(SpannableStringBuilder builder, int maxLength, String numberText,

app/src/main/res/layout/row_timeline_diff.xml

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
android:paddingBottom="@dimen/code_diff_padding"
3434
android:paddingTop="@dimen/code_diff_padding"
3535
android:textColor="?android:attr/textColorPrimary"
36+
android:textSize="13sp"
3637
android:textIsSelectable="true"
3738
tools:text="+Diff lines\n+Are cool" />
3839
</HorizontalScrollView>

0 commit comments

Comments
 (0)