[prefs] ui fixes

This commit is contained in:
immat0x1
2022-07-04 23:23:05 +05:00
parent 7371be2ffb
commit 493918e4d8
6 changed files with 40 additions and 59 deletions

View File

@@ -16,7 +16,7 @@ public class ExteraConfig {
private static final Object sync = new Object();
private static final int[] OFFICIAL_CHANNELS = {1233768168, 1524581881, 1571726392, 1632728092, 1638754701, 1779596027, 1172503281};
private static final int[] DEVS = {963080346, 1282540315, 1374434073, 388099852, 1999113390, 1566664501};
private static final int[] DEVS = {963080346, 1282540315, 1374434073, 388099852, 1972014627};
public static boolean useSystemFonts;
public static boolean disableVibration;

View File

@@ -415,7 +415,11 @@ public class AppearancePreferencesEntry extends BaseFragment {
}
switch (holder.getItemViewType()) {
case 1:
holder.itemView.setBackground(Theme.getThemedDrawable(mContext, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow));
if (position == drawerDividerRow) {
holder.itemView.setBackground(Theme.getThemedDrawable(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow));
} else {
holder.itemView.setBackground(Theme.getThemedDrawable(mContext, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow));
}
break;
case 2:
HeaderCell headerCell = (HeaderCell) holder.itemView;

View File

@@ -382,7 +382,11 @@ public class ChatsPreferencesEntry extends BaseFragment {
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
switch (holder.getItemViewType()) {
case 1:
holder.itemView.setBackground(Theme.getThemedDrawable(mContext, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow));
if (position == mediaDividerRow) {
holder.itemView.setBackground(Theme.getThemedDrawable(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow));
} else {
holder.itemView.setBackground(Theme.getThemedDrawable(mContext, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow));
}
break;
case 2:
HeaderCell headerCell = (HeaderCell) holder.itemView;

View File

@@ -272,6 +272,9 @@ public class GeneralPreferencesEntry extends BaseFragment {
TextInfoPrivacyCell cell = (TextInfoPrivacyCell) holder.itemView;
if (position == forcePacmanAnimationInfoRow) {
cell.setText(LocaleController.getString("ForcePacmanAnimationInfo", R.string.ForcePacmanAnimationInfo));
holder.itemView.setBackground(Theme.getThemedDrawable(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow));
} else {
holder.itemView.setBackground(Theme.getThemedDrawable(mContext, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow));
}
break;
}
@@ -298,7 +301,6 @@ public class GeneralPreferencesEntry extends BaseFragment {
break;
case 4:
view = new TextInfoPrivacyCell(mContext);
view.setBackgroundDrawable(Theme.getThemedDrawable(mContext, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow));
break;
default:
view = new ShadowSectionCell(mContext);

View File

@@ -38,8 +38,8 @@ public class MainPreferencesEntry extends BaseFragment {
private int appearanceRow;
private int chatsRow;
private int dividerInfoRow;
private int dividerExteraInfoRow;
private int categoryDividerRow;
private int aboutExteraDividerRow;
private int infoHeaderRow;
private int aboutExteraRow;
@@ -47,6 +47,7 @@ public class MainPreferencesEntry extends BaseFragment {
private int channelRow;
private int groupRow;
private int crowdinRow;
private int infoDividerRow;
@Override
public boolean onFragmentCreate() {
@@ -117,21 +118,20 @@ public class MainPreferencesEntry extends BaseFragment {
rowCount = 0;
aboutExteraRow = rowCount++;
dividerExteraInfoRow = rowCount++;
aboutExteraDividerRow = rowCount++;
categoryHeaderRow = rowCount++;
generalRow = rowCount++;
appearanceRow = rowCount++;
chatsRow = rowCount++;
dividerInfoRow = rowCount++;
categoryDividerRow = rowCount++;
infoHeaderRow = rowCount++;
channelRow = rowCount++;
groupRow = rowCount++;
crowdinRow = rowCount++;
sourceCodeRow = rowCount++;
infoDividerRow = rowCount++;
if (listAdapter != null) {
listAdapter.notifyDataSetChanged();
@@ -163,7 +163,11 @@ public class MainPreferencesEntry extends BaseFragment {
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
switch (holder.getItemViewType()) {
case 1:
holder.itemView.setBackground(Theme.getThemedDrawable(mContext, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow));
if (position == infoDividerRow) {
holder.itemView.setBackground(Theme.getThemedDrawable(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow));
} else {
holder.itemView.setBackground(Theme.getThemedDrawable(mContext, R.drawable.greydivider, Theme.key_windowBackgroundGrayShadow));
}
break;
case 2:
TextCell textCell = (TextCell) holder.itemView;
@@ -194,10 +198,6 @@ public class MainPreferencesEntry extends BaseFragment {
break;
case 4:
InfoSettingsCell textDetailCell = (InfoSettingsCell) holder.itemView;
textDetailCell.setMultilineDetail(true);
if (position == aboutExteraRow) {
textDetailCell.setTextAndValueAndIcon(ExteraUtils.getAppName() + " | v" + BuildVars.BUILD_VERSION_STRING, LocaleController.getString("AboutExteraDescription", R.string.AboutExteraDescription), R.drawable.ic_logo_foreground, false);
}
break;
}
}
@@ -234,7 +234,7 @@ public class MainPreferencesEntry extends BaseFragment {
}
@Override
public int getItemViewType(int position) {
if (position == dividerInfoRow || position == dividerExteraInfoRow) {
if (position == categoryDividerRow || position == aboutExteraDividerRow || position == infoDividerRow) {
return 1;
} else if (position == generalRow || position == appearanceRow || position == chatsRow ||
position == channelRow || position == groupRow || position == crowdinRow ||

View File

@@ -19,16 +19,19 @@ import android.widget.ImageView;
import android.widget.TextView;
import org.telegram.messenger.AndroidUtilities;
import org.telegram.messenger.BuildVars;
import org.telegram.messenger.LocaleController;
import org.telegram.messenger.R;
import org.telegram.ui.ActionBar.Theme;
import org.telegram.ui.Components.LayoutHelper;
import com.exteragram.messenger.ExteraUtils;
public class InfoSettingsCell extends FrameLayout {
private TextView textView;
private TextView valueTextView;
private ImageView imageView;
private boolean needDivider;
private boolean multiline;
public InfoSettingsCell(Context context) {
super(context);
@@ -36,59 +39,34 @@ public class InfoSettingsCell extends FrameLayout {
textView = new TextView(context);
textView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteBlackText));
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18);
textView.setText(ExteraUtils.getAppName() + " | v" + BuildVars.BUILD_VERSION_STRING);
textView.setLines(1);
textView.setMaxLines(1);
textView.setSingleLine(true);
textView.setPadding(0, 0, 0, 0);
textView.setGravity(Gravity.CENTER);
addView(textView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER | Gravity.TOP, 50, 148, 50, 0));
valueTextView = new TextView(context);
valueTextView.setTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteGrayText2));
valueTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13);
valueTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14);
valueTextView.setText(LocaleController.getString("AboutExteraDescription", R.string.AboutExteraDescription));
valueTextView.setGravity(Gravity.CENTER);
valueTextView.setLines(1);
valueTextView.setMaxLines(1);
valueTextView.setSingleLine(true);
valueTextView.setLines(0);
valueTextView.setMaxLines(0);
valueTextView.setSingleLine(false);
valueTextView.setPadding(0, 0, 0, 0);
addView(valueTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER | Gravity.TOP, 70, 178, 70, 20));
imageView = new ImageView(context);
imageView.setScaleType(ImageView.ScaleType.CENTER);
imageView.setImageResource(R.drawable.ic_logo_foreground);
addView(imageView, LayoutHelper.createFrame(108, 108, Gravity.CENTER | Gravity.TOP, 0, 20, 0, 0));
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if (!multiline) {
super.onMeasure(MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(64) + (needDivider ? 1 : 0), MeasureSpec.EXACTLY));
} else {
super.onMeasure(MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
}
}
public void setMultilineDetail(boolean value) {
multiline = value;
if (value) {
valueTextView.setLines(0);
valueTextView.setMaxLines(0);
valueTextView.setSingleLine(false);
valueTextView.setPadding(0, 0, 0, AndroidUtilities.dp(12));
} else {
valueTextView.setLines(1);
valueTextView.setMaxLines(1);
valueTextView.setSingleLine(true);
valueTextView.setPadding(0, 0, 0, 0);
}
}
public void setTextAndValueAndIcon(String text, CharSequence value, int resId, boolean divider) {
textView.setText(text);
valueTextView.setText(value);
imageView.setImageResource(resId);
textView.setPadding(0, 0, 0, 0);
valueTextView.setPadding(0, 0, 0, 0);
needDivider = divider;
setWillNotDraw(!divider);
super.onMeasure(MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
}
@Override
@@ -96,11 +74,4 @@ public class InfoSettingsCell extends FrameLayout {
super.invalidate();
textView.invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
if (needDivider && Theme.dividerPaint != null) {
canvas.drawLine(getMeasuredWidth(), getMeasuredHeight() - 1, 0, getMeasuredHeight() - 1, Theme.dividerPaint);
}
}
}