added public timeline selector, version upgrade, settings page layout fix. removed unused settings

This commit is contained in:
nuclearfog 2023-10-12 21:17:08 +02:00
parent b07e27f64c
commit 504f400355
No known key found for this signature in database
GPG Key ID: 03488A185C476379
17 changed files with 328 additions and 370 deletions

View File

@ -12,8 +12,8 @@ android {
applicationId 'org.nuclearfog.twidda'
minSdkVersion 21
targetSdkVersion 34
versionCode 99
versionName '3.4.3'
versionCode 100
versionName '3.4.4'
resConfigs 'en', 'es', 'de-rDE', 'zh-rCN'
}

View File

@ -467,8 +467,10 @@ public class Mastodon implements Connection {
@Override
public Statuses searchStatuses(String search, long minId, long maxId) throws MastodonException {
List<String> params = new ArrayList<>();
if (settings.useLocalTimeline())
if (settings.getPublicTimeline().equals(GlobalSettings.TIMELINE_LOCAL))
params.add("local=true");
else if (settings.getPublicTimeline().equals(GlobalSettings.TIMELINE_REMOTE))
params.add("remote=true");
if (search.matches("#\\S+")) {
return getStatuses(ENDPOINT_HASHTAG_TIMELINE + search.substring(1), params, minId, maxId);
} else {
@ -482,8 +484,10 @@ public class Mastodon implements Connection {
@Override
public Statuses getPublicTimeline(long minId, long maxId) throws MastodonException {
List<String> params = new ArrayList<>();
if (settings.useLocalTimeline())
if (settings.getPublicTimeline().equals(GlobalSettings.TIMELINE_LOCAL))
params.add("local=true");
else if (settings.getPublicTimeline().equals(GlobalSettings.TIMELINE_REMOTE))
params.add("remote=true");
return getStatuses(ENDPOINT_PUBLIC_TIMELINE, params, minId, maxId);
}

View File

@ -171,12 +171,6 @@ public class MastodonUser implements User {
}
@Override
public boolean followRequested() {
return false;
}
@Override
public int getFollowing() {
return following;

View File

@ -48,6 +48,21 @@ public class GlobalSettings {
*/
public static final float[] FONT_SCALES = {0.5f, 0.8f, 1.0f, 1.5f, 2.0f};
/**
* indicates a remote public timelines only
*/
public static final String TIMELINE_REMOTE = "public_timeline_remote";
/**
* indicates a local public timeline only
*/
public static final String TIMELINE_LOCAL = "public_timeline_local";
/**
* indicates all public timelines (local&remote)
*/
public static final String TIMELINE_COMBINED = "public_timeline_all";
/**
* singleton instance
*/
@ -63,7 +78,6 @@ public class GlobalSettings {
private static final String RT_COLOR = "retweet_color";
private static final String FV_COLOR = "favorite_color";
private static final String FOLLOW_COLOR = "following_color";
private static final String F_REQ_COLOR = "following_pending_color";
private static final String INDEX_FONT = "index_font";
private static final String INDEX_SCALE = "index_scale";
private static final String LIST_SIZE = "preload";
@ -79,7 +93,7 @@ public class GlobalSettings {
private static final String PROXY_WARNING = "proxy_warning";
private static final String ENABLE_LIKE = "like_enable";
private static final String FILTER_RESULTS = "filter_results";
private static final String MASTODON_LOCAL_TIMELINE = "mastodon_local_timeline";
private static final String PUBLIC_TIMELINE = "public_timeline";
private static final String HIDE_SENSITIVE = "hide_sensitive";
private static final String FLOATING_BUTTON = "floating_button_enabled";
private static final String PUSH_ENABLED = "push_enabled";
@ -126,7 +140,6 @@ public class GlobalSettings {
private static final int DEFAULT_ICON_COLOR = Color.WHITE;
private static final int DEFAULT_RT_ICON_COLOR = Color.GREEN;
private static final int DEFAULT_FV_ICON_COLOR = Color.YELLOW;
private static final int DEFAULT_FR_ICON_COLOR = Color.YELLOW;
private static final int DEFAULT_FW_ICON_COLOR = Color.CYAN;
private SharedPreferences settings;
@ -136,6 +149,7 @@ public class GlobalSettings {
private String proxyHost, proxyPort;
private String proxyUser, proxyPass;
private String pushInstance;
private String publicTimeline;
private boolean loadImage;
private boolean loggedIn;
private boolean push_enabled;
@ -146,7 +160,6 @@ public class GlobalSettings {
private boolean showStatusIcons;
private boolean filterResults;
private boolean enableLike;
private boolean localOnly;
private boolean hideSensitive;
private boolean floatingEnabled;
private int background_color;
@ -157,7 +170,6 @@ public class GlobalSettings {
private int popup_color;
private int repost_color;
private int favorite_color;
private int request_color;
private int follow_color;
private int indexFont;
private int indexScale;
@ -362,28 +374,6 @@ public class GlobalSettings {
edit.apply();
}
/**
* get icon color of the follow button
*
* @return icon color
*/
public int getFollowPendingColor() {
return request_color;
}
/**
* set icon color of the follow button
*
* @param color icon color
*/
public void setFollowPendingColor(int color) {
request_color = color;
Editor edit = settings.edit();
edit.putInt(F_REQ_COLOR, color);
edit.apply();
}
/**
* get icon color for the follow button
*
@ -417,7 +407,7 @@ public class GlobalSettings {
popup_color, highlight_color,
card_color, icon_color,
repost_color, favorite_color,
request_color, follow_color
follow_color
};
}
@ -716,23 +706,24 @@ public class GlobalSettings {
}
/**
* use public Mastodon timeline of the local server only
* get public timeline type
*
* @return true to use local timeline only
* @return type {@link #TIMELINE_LOCAL,#TIMELINE_REMOTE,#TIMELINE_COMBINED}
*/
public boolean useLocalTimeline() {
return localOnly;
public String getPublicTimeline() {
return publicTimeline;
}
/**
* set public Mastodon timeline
* set public timeline type
*
* @param enable true to use local timeline only
* @param publicTimeline type {@link #TIMELINE_LOCAL,#TIMELINE_REMOTE,#TIMELINE_COMBINED}
*/
public void setLocalTimeline(boolean enable) {
localOnly = enable;
public void setPublicTimeline(String publicTimeline) {
this.publicTimeline = publicTimeline;
Editor edit = settings.edit();
edit.putBoolean(MASTODON_LOCAL_TIMELINE, enable);
edit.putString(PUBLIC_TIMELINE, publicTimeline);
edit.apply();
}
@ -1009,7 +1000,6 @@ public class GlobalSettings {
icon_color = settings.getInt(ICON_COLOR, DEFAULT_ICON_COLOR);
repost_color = settings.getInt(RT_COLOR, DEFAULT_RT_ICON_COLOR);
favorite_color = settings.getInt(FV_COLOR, DEFAULT_FV_ICON_COLOR);
request_color = settings.getInt(F_REQ_COLOR, DEFAULT_FR_ICON_COLOR);
follow_color = settings.getInt(FOLLOW_COLOR, DEFAULT_FW_ICON_COLOR);
indexFont = settings.getInt(INDEX_FONT, DEFAULT_FONT_INDEX);
indexScale = settings.getInt(INDEX_SCALE, DEFAULT_SCALE_INDEX);
@ -1023,11 +1013,11 @@ public class GlobalSettings {
toolbarOverlap = settings.getBoolean(PROFILE_OVERLAP, true);
filterResults = settings.getBoolean(FILTER_RESULTS, true);
enableLike = settings.getBoolean(ENABLE_LIKE, false);
localOnly = settings.getBoolean(MASTODON_LOCAL_TIMELINE, false);
hideSensitive = settings.getBoolean(HIDE_SENSITIVE, true);
floatingEnabled = settings.getBoolean(FLOATING_BUTTON, true);
proxyWarning = settings.getBoolean(PROXY_WARNING, true);
pushInstance = settings.getString(PUSH_INSTANCE, ConstantsKt.INSTANCE_DEFAULT);
publicTimeline = settings.getString(PUBLIC_TIMELINE, TIMELINE_COMBINED);
proxyHost = settings.getString(PROXY_ADDR, "");
proxyPort = settings.getString(PROXY_PORT, "");
proxyUser = settings.getString(PROXY_USER, "");

View File

@ -134,11 +134,6 @@ public class AppDatabase {
*/
public static final int MASK_USER_PRIVATE = 1 << 1;
/**
* flag indicates that the current user has sent a follow request to an user
*/
public static final int MASK_USER_FOLLOW_REQUESTED = 1 << 2;
/**
* flag indicates that the statuses of an user are excluded from timeline
*/
@ -1357,11 +1352,6 @@ public class AppDatabase {
} else {
flags &= ~MASK_USER_PRIVATE;
}
if (user.followRequested()) {
flags |= MASK_USER_FOLLOW_REQUESTED;
} else {
flags &= ~MASK_USER_FOLLOW_REQUESTED;
}
if (user.hasDefaultProfileImage()) {
flags |= MASK_USER_DEFAULT_IMAGE;
} else {

View File

@ -27,7 +27,7 @@ public class DatabaseUser implements User, UserTable, UserRegisterTable {
private long id, createdAt;
private int following, follower, statusCount, favorCount;
private boolean isCurrentUser, isVerified, isLocked, followReqSent, defaultImage;
private boolean isCurrentUser, isVerified, isLocked, defaultImage;
private String username = "";
private String screen_name = "";
private String bio = "";
@ -62,7 +62,6 @@ public class DatabaseUser implements User, UserTable, UserRegisterTable {
int register = cursor.getInt(cursor.getColumnIndexOrThrow(REGISTER));
isVerified = (register & AppDatabase.MASK_USER_VERIFIED) != 0;
isLocked = (register & AppDatabase.MASK_USER_PRIVATE) != 0;
followReqSent = (register & AppDatabase.MASK_USER_FOLLOW_REQUESTED) != 0;
defaultImage = (register & AppDatabase.MASK_USER_DEFAULT_IMAGE) != 0;
if (username != null)
@ -169,12 +168,6 @@ public class DatabaseUser implements User, UserTable, UserRegisterTable {
}
@Override
public boolean followRequested() {
return followReqSent;
}
@Override
public int getFollowing() {
return following;

View File

@ -79,11 +79,6 @@ public interface User extends Serializable, Comparable<User> {
*/
boolean isProtected();
/**
* @return true if current user has requested a follow
*/
boolean followRequested();
/**
* @return number of following
*/

View File

@ -302,11 +302,6 @@ public class ProfileActivity extends AppCompatActivity implements OnClickListene
reportItem.setVisible(!user.isCurrentUser());
break;
}
if (user.followRequested()) {
MenuItem followIcon = m.findItem(R.id.profile_follow);
AppStyles.setMenuItemColor(followIcon, settings.getFollowPendingColor());
followIcon.setTitle(R.string.menu_follow_requested);
}
if (!user.isCurrentUser()) {
MenuItem followIcon = m.findItem(R.id.profile_follow);
MenuItem blockIcon = m.findItem(R.id.profile_block);

View File

@ -79,7 +79,7 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
/**
* total count of all colors defined
*/
private static final int COLOR_COUNT = 10;
private static final int COLOR_COUNT = 9;
// app colors
private static final int COLOR_BACKGROUND = 0;
private static final int COLOR_TEXT = 1;
@ -89,8 +89,7 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
private static final int COLOR_ICON = 5;
private static final int COLOR_REPOST = 6;
private static final int COLOR_FAVORITE = 7;
private static final int COLOR_FOLLOW_REQUEST = 8;
private static final int COLOR_FOLLOWING = 9;
private static final int COLOR_FOLLOWING = 8;
private GlobalSettings settings;
private DatabaseAction databaseAction;
@ -124,41 +123,40 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
protected void onCreate(@Nullable Bundle b) {
super.onCreate(b);
setContentView(R.layout.page_settings);
Button delButton = findViewById(R.id.delete_db);
Button logout = findViewById(R.id.logout);
Toolbar toolbar = findViewById(R.id.toolbar_setting);
View user_card = findViewById(R.id.settings_data_card);
View push_label = findViewById(R.id.settings_enable_push_descr);
SwitchButton toggleImg = findViewById(R.id.toggleImg);
SwitchButton toolbarOverlap = findViewById(R.id.settings_toolbar_ov);
SwitchButton enableLike = findViewById(R.id.enable_like);
SwitchButton enableLocalTl = findViewById(R.id.settings_local_timeline);
SwitchButton hideSensitive = findViewById(R.id.enable_status_hide_sensitive);
SwitchButton enableStatusIcons = findViewById(R.id.enable_status_indicators);
SwitchButton enableFloatingButton = findViewById(R.id.settings_enable_floating_button);
SeekBar listSizeSelector = findViewById(R.id.settings_list_seek);
Spinner fontSelector = findViewById(R.id.spinner_font);
Spinner scaleSelector = findViewById(R.id.spinner_scale);
enablePush = findViewById(R.id.settings_enable_push);
enable_proxy = findViewById(R.id.settings_enable_proxy);
enable_auth = findViewById(R.id.settings_enable_auth);
enable_auth_label = findViewById(R.id.settings_enable_auth_descr);
colorButtons[COLOR_BACKGROUND] = findViewById(R.id.color_background);
colorButtons[COLOR_TEXT] = findViewById(R.id.color_text);
colorButtons[COLOR_WINDOW] = findViewById(R.id.color_window);
colorButtons[COLOR_HIGHLIGHT] = findViewById(R.id.highlight_color);
colorButtons[COLOR_CARD] = findViewById(R.id.color_card);
colorButtons[COLOR_ICON] = findViewById(R.id.color_icon);
colorButtons[COLOR_REPOST] = findViewById(R.id.color_rt);
colorButtons[COLOR_FAVORITE] = findViewById(R.id.color_fav);
colorButtons[COLOR_FOLLOW_REQUEST] = findViewById(R.id.color_f_req);
colorButtons[COLOR_FOLLOWING] = findViewById(R.id.color_follow);
proxy_address = findViewById(R.id.edit_proxy_address);
proxy_port = findViewById(R.id.edit_proxy_port);
proxy_user = findViewById(R.id.edit_proxyuser);
proxy_pass = findViewById(R.id.edit_proxypass);
list_size = findViewById(R.id.settings_list_size);
root = findViewById(R.id.settings_layout);
Button delButton = findViewById(R.id.page_settings_button_delete_data);
Button logout = findViewById(R.id.page_settings_button_logout);
Toolbar toolbar = findViewById(R.id.page_settings_toolbar);
View user_card = findViewById(R.id.page_settings_card_data);
View push_label = findViewById(R.id.page_settings_enable_push_label);
SwitchButton toggleImg = findViewById(R.id.page_settings_enable_images);
SwitchButton toolbarOverlap = findViewById(R.id.page_settings_toolbar_collapse);
SwitchButton enableLike = findViewById(R.id.page_settings_enable_like);
SwitchButton hideSensitive = findViewById(R.id.page_Settings_sensitive_enable);
SwitchButton enableStatusIcons = findViewById(R.id.page_Settings_enable_status_indicators);
SwitchButton enableFloatingButton = findViewById(R.id.page_settings_enable_floating_button);
SeekBar listSizeSelector = findViewById(R.id.page_settings_list_seek);
Spinner fontSelector = findViewById(R.id.page_settings_font_selector);
Spinner scaleSelector = findViewById(R.id.page_settings_textscale_selector);
Spinner publicTimelineSelector = findViewById(R.id.page_settings_public_timeline_selector);
enablePush = findViewById(R.id.page_settings_enable_push);
enable_proxy = findViewById(R.id.page_settings_enable_proxy);
enable_auth = findViewById(R.id.page_settings_enable_proxyauth);
enable_auth_label = findViewById(R.id.page_settings_enable_proxyauth_label);
colorButtons[COLOR_BACKGROUND] = findViewById(R.id.page_settings_color_background);
colorButtons[COLOR_TEXT] = findViewById(R.id.page_settings_color_text);
colorButtons[COLOR_WINDOW] = findViewById(R.id.page_settings_color_window);
colorButtons[COLOR_HIGHLIGHT] = findViewById(R.id.page_settings_highlight_color);
colorButtons[COLOR_CARD] = findViewById(R.id.page_settings_color_card);
colorButtons[COLOR_ICON] = findViewById(R.id.page_settings_color_icon);
colorButtons[COLOR_REPOST] = findViewById(R.id.page_settings_color_repost);
colorButtons[COLOR_FAVORITE] = findViewById(R.id.page_settings_color_favorite);
colorButtons[COLOR_FOLLOWING] = findViewById(R.id.page_settings_color_follow);
proxy_address = findViewById(R.id.page_settings_input_proxyaddress);
proxy_port = findViewById(R.id.page_settings_input_proxyport);
proxy_user = findViewById(R.id.page_settings_input_proxyuser);
proxy_pass = findViewById(R.id.page_settings_input_proxypass);
list_size = findViewById(R.id.page_settings_list_seek_value);
root = findViewById(R.id.page_settings_root);
settings = GlobalSettings.get(this);
Configuration configuration = settings.getLogin().getConfiguration();
@ -175,10 +173,13 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
AppStyles.setTheme(root);
AppStyles.setOverflowIcon(toolbar, settings.getIconColor());
DropdownAdapter publicTimelineAdapter = new DropdownAdapter(this);
fontAdapter.setFonts(GlobalSettings.FONT_TYPES);
fontAdapter.setItems(GlobalSettings.FONT_NAMES);
scaleAdapter.setItems(R.array.scales);
publicTimelineAdapter.setItems(R.array.public_timelines);
publicTimelineSelector.setAdapter(publicTimelineAdapter);
fontSelector.setAdapter(fontAdapter);
scaleSelector.setAdapter(scaleAdapter);
fontSelector.setSelection(settings.getFontIndex(), false);
@ -186,8 +187,8 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
fontSelector.setSelected(false);
scaleSelector.setSelected(false);
if (configuration.isPublicTimelinesupported()) {
enableLocalTl.setVisibility(View.VISIBLE);
if (!configuration.isPublicTimelinesupported()) {
publicTimelineSelector.setVisibility(View.GONE);
}
if (!configuration.isWebpushSupported()) {
push_label.setVisibility(View.GONE);
@ -214,10 +215,16 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
} else {
colorButtons[COLOR_FAVORITE].setText(R.string.settings_color_fav);
}
if (settings.getPublicTimeline().equals(GlobalSettings.TIMELINE_COMBINED)) {
publicTimelineSelector.setSelection(0);
} else if (settings.getPublicTimeline().equals(GlobalSettings.TIMELINE_LOCAL)) {
publicTimelineSelector.setSelection(1);
} else if (settings.getPublicTimeline().equals(GlobalSettings.TIMELINE_REMOTE)) {
publicTimelineSelector.setSelection(2);
}
toggleImg.setCheckedImmediately(settings.imagesEnabled());
toolbarOverlap.setCheckedImmediately(settings.toolbarOverlapEnabled());
enableLike.setCheckedImmediately(settings.likeEnabled());
enableLocalTl.setCheckedImmediately(settings.useLocalTimeline());
hideSensitive.setCheckedImmediately(settings.hideSensitiveEnabled());
enableStatusIcons.setCheckedImmediately(settings.statusIndicatorsEnabled());
enableFloatingButton.setCheckedImmediately(settings.floatingButtonEnabled());
@ -239,7 +246,6 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
toggleImg.setOnCheckedChangeListener(this);
enablePush.setOnCheckedChangeListener(this);
enableLike.setOnCheckedChangeListener(this);
enableLocalTl.setOnCheckedChangeListener(this);
enableStatusIcons.setOnCheckedChangeListener(this);
hideSensitive.setOnCheckedChangeListener(this);
enableFloatingButton.setOnCheckedChangeListener(this);
@ -249,6 +255,7 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
toolbarOverlap.setOnCheckedChangeListener(this);
fontSelector.setOnItemSelectedListener(this);
scaleSelector.setOnItemSelectedListener(this);
publicTimelineSelector.setOnItemSelectedListener(this);
listSizeSelector.setOnSeekBarChangeListener(this);
}
@ -331,75 +338,69 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
@Override
public void onClick(View v) {
// delete database
if (v.getId() == R.id.delete_db) {
if (v.getId() == R.id.page_settings_button_delete_data) {
confirmDialog.show(ConfirmDialog.DELETE_APP_DATA);
}
// logout
else if (v.getId() == R.id.logout) {
else if (v.getId() == R.id.page_settings_button_logout) {
confirmDialog.show(ConfirmDialog.APP_LOG_OUT);
}
// set background color
else if (v.getId() == R.id.color_background) {
else if (v.getId() == R.id.page_settings_color_background) {
mode = COLOR_BACKGROUND;
color = settings.getBackgroundColor();
showColorPicker(color, false);
}
// set font color
else if (v.getId() == R.id.color_text) {
else if (v.getId() == R.id.page_settings_color_text) {
mode = COLOR_TEXT;
color = settings.getTextColor();
showColorPicker(color, false);
}
// set popup color
else if (v.getId() == R.id.color_window) {
else if (v.getId() == R.id.page_settings_color_window) {
mode = COLOR_WINDOW;
color = settings.getPopupColor();
showColorPicker(color, false);
}
// set highlight color
else if (v.getId() == R.id.highlight_color) {
else if (v.getId() == R.id.page_settings_highlight_color) {
mode = COLOR_HIGHLIGHT;
color = settings.getHighlightColor();
showColorPicker(color, false);
}
// set card color
else if (v.getId() == R.id.color_card) {
else if (v.getId() == R.id.page_settings_color_card) {
mode = COLOR_CARD;
color = settings.getCardColor();
showColorPicker(color, true);
}
// set icon color
else if (v.getId() == R.id.color_icon) {
else if (v.getId() == R.id.page_settings_color_icon) {
mode = COLOR_ICON;
color = settings.getIconColor();
showColorPicker(color, false);
}
// set repost icon color
else if (v.getId() == R.id.color_rt) {
else if (v.getId() == R.id.page_settings_color_repost) {
mode = COLOR_REPOST;
color = settings.getRepostIconColor();
showColorPicker(color, false);
}
// set favorite icon color
else if (v.getId() == R.id.color_fav) {
else if (v.getId() == R.id.page_settings_color_favorite) {
mode = COLOR_FAVORITE;
color = settings.getFavoriteIconColor();
showColorPicker(color, false);
}
// set follow icon color
else if (v.getId() == R.id.color_f_req) {
mode = COLOR_FOLLOW_REQUEST;
color = settings.getFollowPendingColor();
showColorPicker(color, false);
}
// set follow icon color
else if (v.getId() == R.id.color_follow) {
else if (v.getId() == R.id.page_settings_color_follow) {
mode = COLOR_FOLLOWING;
color = settings.getFollowIconColor();
showColorPicker(color, false);
}
// show push configuration dialog
else if (v.getId() == R.id.settings_enable_push_descr) {
else if (v.getId() == R.id.page_settings_enable_push_label) {
if (enablePush.isChecked()) {
pushDialog.show();
}
@ -462,11 +463,6 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
AppStyles.setColorButton(colorButtons[COLOR_FAVORITE], color);
break;
case COLOR_FOLLOW_REQUEST:
settings.setFollowPendingColor(color);
AppStyles.setColorButton(colorButtons[COLOR_FOLLOW_REQUEST], color);
break;
case COLOR_FOLLOWING:
settings.setFollowIconColor(color);
AppStyles.setColorButton(colorButtons[COLOR_FOLLOWING], color);
@ -479,15 +475,15 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
@Override
public void onCheckedChanged(CompoundButton c, boolean checked) {
// toggle image loading
if (c.getId() == R.id.toggleImg) {
if (c.getId() == R.id.page_settings_enable_images) {
settings.setImageLoad(checked);
}
// enable toolbar overlap
else if (c.getId() == R.id.settings_toolbar_ov) {
else if (c.getId() == R.id.page_settings_toolbar_collapse) {
settings.setToolbarOverlap(checked);
}
// enable like
else if (c.getId() == R.id.enable_like) {
else if (c.getId() == R.id.page_settings_enable_like) {
settings.enableLike(checked);
if (checked) {
colorButtons[COLOR_FAVORITE].setText(R.string.settings_color_like);
@ -496,19 +492,15 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
}
}
// enable status indicators
else if (c.getId() == R.id.enable_status_indicators) {
else if (c.getId() == R.id.page_Settings_enable_status_indicators) {
settings.enableStatusIndicators(checked);
}
// enable floating button
else if (c.getId() == R.id.settings_enable_floating_button) {
else if (c.getId() == R.id.page_settings_enable_floating_button) {
settings.enableFloatingButton(checked);
}
// enable/disable local timeline (Mastodon)
else if (c.getId() == R.id.settings_local_timeline) {
settings.setLocalTimeline(checked);
}
// enable/disable push notification
else if (c.getId() == R.id.settings_enable_push) {
else if (c.getId() == R.id.page_settings_enable_push) {
if (checked) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU && checkSelfPermission(POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{POST_NOTIFICATIONS}, REQUEST_PERMISSION_NOTIFICATION);
@ -522,7 +514,7 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
settings.setPushEnabled(checked);
}
// enable proxy settings
else if (c.getId() == R.id.settings_enable_proxy) {
else if (c.getId() == R.id.page_settings_enable_proxy) {
if (checked) {
proxy_address.setVisibility(View.VISIBLE);
proxy_port.setVisibility(View.VISIBLE);
@ -537,7 +529,7 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
}
}
// enable proxy authentication
else if (c.getId() == R.id.settings_enable_auth) {
else if (c.getId() == R.id.page_settings_enable_proxyauth) {
if (checked) {
proxy_user.setVisibility(View.VISIBLE);
proxy_pass.setVisibility(View.VISIBLE);
@ -547,7 +539,7 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
}
}
// hide sensitive content
else if (c.getId() == R.id.enable_status_hide_sensitive) {
else if (c.getId() == R.id.page_Settings_sensitive_enable) {
settings.hideSensitive(checked);
}
}
@ -556,15 +548,23 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// Font type spinner
if (parent.getId() == R.id.spinner_font) {
if (parent.getId() == R.id.page_settings_font_selector) {
settings.setFontIndex(position);
AppStyles.setFontStyle(root);
}
// Font scale spinner
else if (parent.getId() == R.id.spinner_scale) {
else if (parent.getId() == R.id.page_settings_textscale_selector) {
settings.setScaleIndex(position);
AppStyles.updateFontScale(this);
setResult(RETURN_FONT_SCALE_CHANGED);
} else if (parent.getId() == R.id.page_settings_public_timeline_selector) {
if (position == 0) {
settings.setPublicTimeline(GlobalSettings.TIMELINE_COMBINED);
} else if (position == 1) {
settings.setPublicTimeline(GlobalSettings.TIMELINE_LOCAL);
} else if (position == 2) {
settings.setPublicTimeline(GlobalSettings.TIMELINE_REMOTE);
}
}
}

View File

@ -2,7 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/settings_layout"
android:id="@+id/page_settings_root"
android:fitsSystemWindows="true"
android:orientation="vertical"
android:layout_width="match_parent"
@ -11,7 +11,7 @@
tools:context=".ui.activities.SettingsActivity">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar_setting"
android:id="@+id/page_settings_toolbar"
android:layout_width="match_parent"
android:layout_height="@dimen/settings_toolbar_height" />
@ -40,141 +40,131 @@
android:padding="@dimen/settings_cardview_padding">
<TextView
android:id="@+id/page_settings_title_color"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/settings_column_margin"
android:lines="1"
android:text="@string/settings_color_settings"
android:textSize="@dimen/settings_textsize"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/color_barrier"
app:layout_constraintEnd_toEndOf="parent" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/color_barrier"
android:id="@+id/page_settings_barrier_color_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="top"
app:constraint_referenced_ids="color_background,color_text" />
app:layout_constraintTop_toBottomOf="@id/page_settings_title_color"
app:constraint_referenced_ids="page_settings_color_background,page_settings_color_text" />
<Button
android:id="@+id/color_background"
android:id="@+id/page_settings_color_background"
android:layout_width="0dp"
android:layout_height="@dimen/settings_color_button_height"
android:layout_margin="@dimen/settings_color_button_margin"
android:text="@string/settings_background"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/color_barrier"
app:layout_constraintBottom_toTopOf="@id/color_window"
app:layout_constraintEnd_toStartOf="@id/color_text"
app:layout_constraintTop_toBottomOf="@id/page_settings_barrier_color_button"
app:layout_constraintEnd_toStartOf="@id/page_settings_color_text"
style="@style/ColorButton" />
<Button
android:id="@+id/color_text"
android:id="@+id/page_settings_color_text"
android:layout_width="0dp"
android:layout_height="@dimen/settings_color_button_height"
android:layout_margin="@dimen/settings_color_button_margin"
android:text="@string/settings_text"
app:layout_constraintStart_toEndOf="@id/color_background"
app:layout_constraintTop_toBottomOf="@id/color_barrier"
app:layout_constraintBottom_toTopOf="@id/highlight_color"
app:layout_constraintStart_toEndOf="@id/page_settings_color_background"
app:layout_constraintTop_toBottomOf="@id/page_settings_barrier_color_button"
app:layout_constraintEnd_toEndOf="parent"
style="@style/ColorButton" />
<Button
android:id="@+id/color_window"
android:id="@+id/page_settings_color_window"
android:layout_width="0dp"
android:layout_height="@dimen/settings_color_button_height"
android:layout_margin="@dimen/settings_color_button_margin"
android:text="@string/settings_button_popup"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/color_background"
app:layout_constraintBottom_toTopOf="@id/color_card"
app:layout_constraintEnd_toStartOf="@id/highlight_color"
app:layout_constraintTop_toBottomOf="@id/page_settings_color_background"
app:layout_constraintEnd_toStartOf="@id/page_settings_highlight_color"
style="@style/ColorButton" />
<Button
android:id="@+id/highlight_color"
android:id="@+id/page_settings_highlight_color"
android:layout_width="0dp"
android:layout_height="@dimen/settings_color_button_height"
android:layout_margin="@dimen/settings_color_button_margin"
android:text="@string/highlight"
app:layout_constraintStart_toEndOf="@id/color_window"
app:layout_constraintTop_toBottomOf="@id/color_text"
app:layout_constraintBottom_toTopOf="@id/color_icon"
app:layout_constraintStart_toEndOf="@id/page_settings_color_window"
app:layout_constraintTop_toBottomOf="@id/page_settings_color_text"
app:layout_constraintEnd_toEndOf="parent"
style="@style/ColorButton" />
<Button
android:id="@+id/color_card"
android:id="@+id/page_settings_color_card"
android:layout_width="0dp"
android:layout_height="@dimen/settings_color_button_height"
android:layout_margin="@dimen/settings_color_button_margin"
android:text="@string/settings_color_card"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/color_window"
app:layout_constraintBottom_toTopOf="@id/color_rt"
app:layout_constraintEnd_toStartOf="@id/color_icon"
app:layout_constraintTop_toBottomOf="@id/page_settings_color_window"
app:layout_constraintEnd_toStartOf="@id/page_settings_color_icon"
style="@style/ColorButton" />
<Button
android:id="@+id/color_icon"
android:id="@+id/page_settings_color_icon"
android:layout_width="0dp"
android:layout_height="@dimen/settings_color_button_height"
android:layout_margin="@dimen/settings_color_button_margin"
android:text="@string/settings_icon_color"
app:layout_constraintStart_toEndOf="@id/color_card"
app:layout_constraintTop_toBottomOf="@id/highlight_color"
app:layout_constraintBottom_toTopOf="@id/color_fav"
app:layout_constraintStart_toEndOf="@id/page_settings_color_card"
app:layout_constraintTop_toBottomOf="@id/page_settings_highlight_color"
app:layout_constraintEnd_toEndOf="parent"
style="@style/ColorButton" />
<Button
android:id="@+id/color_rt"
android:id="@+id/page_settings_color_repost"
android:layout_width="0dp"
android:layout_height="@dimen/settings_color_button_height"
android:layout_margin="@dimen/settings_color_button_margin"
android:text="@string/settings_rt_icon_color"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/color_card"
app:layout_constraintBottom_toTopOf="@id/color_f_req"
app:layout_constraintEnd_toStartOf="@id/color_fav"
app:layout_constraintTop_toBottomOf="@id/page_settings_color_card"
app:layout_constraintEnd_toStartOf="@id/page_settings_color_favorite"
style="@style/ColorButton" />
<Button
android:id="@+id/color_fav"
android:id="@+id/page_settings_color_favorite"
android:layout_width="0dp"
android:layout_height="@dimen/settings_color_button_height"
android:layout_margin="@dimen/settings_color_button_margin"
android:text="@string/settings_color_fav"
app:layout_constraintStart_toEndOf="@id/color_rt"
app:layout_constraintTop_toBottomOf="@id/color_icon"
app:layout_constraintBottom_toTopOf="@id/color_follow"
app:layout_constraintStart_toEndOf="@id/page_settings_color_repost"
app:layout_constraintTop_toBottomOf="@id/page_settings_color_icon"
app:layout_constraintEnd_toEndOf="parent"
style="@style/ColorButton" />
<Button
android:id="@+id/color_f_req"
android:id="@+id/page_settings_color_follow"
android:layout_width="0dp"
android:layout_height="@dimen/settings_color_button_height"
android:layout_margin="@dimen/settings_color_button_margin"
android:text="@string/settings_follow_req_color"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/color_rt"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/color_follow"
app:layout_constraintTop_toBottomOf="@id/page_settings_color_repost"
app:layout_constraintEnd_toStartOf="@id/settings_color_placeholder"
style="@style/ColorButton" />
<Button
android:id="@+id/color_follow"
<View
android:id="@+id/settings_color_placeholder"
android:layout_width="0dp"
android:layout_height="@dimen/settings_color_button_height"
android:layout_margin="@dimen/settings_color_button_margin"
android:text="@string/settings_follow_color"
app:layout_constraintStart_toEndOf="@id/color_f_req"
app:layout_constraintTop_toBottomOf="@id/color_fav"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/page_settings_color_follow"
app:layout_constraintTop_toBottomOf="@id/page_settings_color_favorite"
app:layout_constraintEnd_toEndOf="parent"
style="@style/ColorButton" />
@ -193,7 +183,7 @@
android:padding="@dimen/settings_cardview_padding">
<TextView
android:id="@+id/settings_look_text"
android:id="@+id/page_settings_title_look"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:lines="1"
@ -204,78 +194,75 @@
app:layout_constraintEnd_toEndOf="parent" />
<com.kyleduo.switchbutton.SwitchButton
android:id="@+id/settings_toolbar_ov"
android:id="@+id/page_settings_toolbar_collapse"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/settings_column_margin"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/settings_look_text" />
app:layout_constraintTop_toBottomOf="@id/page_settings_title_look" />
<TextView
android:id="@+id/page_settings_toolbar_collapse_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:lines="1"
android:text="@string/settings_enable_toolbar_overlap"
android:textSize="@dimen/settings_textsize_small"
android:layout_marginStart="@dimen/settings_switch_margin"
android:layout_marginEnd="@dimen/settings_switch_margin"
app:layout_constraintStart_toEndOf="@id/settings_toolbar_ov"
app:layout_constraintTop_toTopOf="@id/settings_toolbar_ov"
app:layout_constraintBottom_toBottomOf="@id/settings_toolbar_ov"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toEndOf="@id/page_settings_toolbar_collapse"
app:layout_constraintTop_toTopOf="@id/page_settings_toolbar_collapse"
app:layout_constraintBottom_toBottomOf="@id/page_settings_toolbar_collapse"
app:layout_constraintEnd_toEndOf="parent" />
<com.kyleduo.switchbutton.SwitchButton
android:id="@+id/settings_enable_floating_button"
android:id="@+id/page_settings_enable_floating_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/settings_column_margin"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/settings_toolbar_ov" />
app:layout_constraintTop_toBottomOf="@id/page_settings_toolbar_collapse" />
<TextView
android:id="@+id/page_settings_enable_floating_button_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:lines="1"
android:text="@string/settings_enable_floating_button"
android:textSize="@dimen/settings_textsize_small"
android:layout_marginStart="@dimen/settings_switch_margin"
android:layout_marginEnd="@dimen/settings_switch_margin"
app:layout_constraintStart_toEndOf="@id/settings_enable_floating_button"
app:layout_constraintTop_toTopOf="@id/settings_enable_floating_button"
app:layout_constraintBottom_toBottomOf="@id/settings_enable_floating_button"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toEndOf="@id/page_settings_enable_floating_button"
app:layout_constraintTop_toTopOf="@id/page_settings_enable_floating_button"
app:layout_constraintBottom_toBottomOf="@id/page_settings_enable_floating_button"
app:layout_constraintEnd_toEndOf="parent" />
<com.kyleduo.switchbutton.SwitchButton
android:id="@+id/enable_like"
android:id="@+id/page_settings_enable_like"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/settings_column_margin"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/settings_enable_floating_button"
app:layout_constraintEnd_toStartOf="@id/enable_like_descr" />
app:layout_constraintTop_toBottomOf="@id/page_settings_enable_floating_button" />
<TextView
android:id="@+id/enable_like_descr"
android:id="@+id/page_settings_enable_like_descr"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:lines="1"
android:text="@string/settings_enable_like"
android:textSize="@dimen/settings_textsize_small"
android:layout_marginStart="@dimen/settings_switch_margin"
android:layout_marginEnd="@dimen/settings_switch_margin"
app:layout_constraintStart_toEndOf="@id/enable_like"
app:layout_constraintTop_toTopOf="@id/enable_like"
app:layout_constraintBottom_toBottomOf="@id/enable_like"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toEndOf="@id/page_settings_enable_like"
app:layout_constraintTop_toTopOf="@id/page_settings_enable_like"
app:layout_constraintBottom_toBottomOf="@id/page_settings_enable_like"
app:layout_constraintEnd_toEndOf="parent" />
<com.kyleduo.switchbutton.SwitchButton
android:id="@+id/enable_status_indicators"
android:id="@+id/page_Settings_enable_status_indicators"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/settings_column_margin"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/enable_like"
app:layout_constraintEnd_toStartOf="@id/status_indicators_descr" />
app:layout_constraintTop_toBottomOf="@id/page_settings_enable_like" />
<TextView
android:id="@+id/status_indicators_descr"
@ -284,65 +271,85 @@
android:lines="1"
android:text="@string/settings_enable_indicators"
android:textSize="@dimen/settings_textsize_small"
android:layout_marginStart="@dimen/settings_switch_margin"
android:layout_marginEnd="@dimen/settings_switch_margin"
app:layout_constraintStart_toEndOf="@id/enable_status_indicators"
app:layout_constraintTop_toTopOf="@id/enable_status_indicators"
app:layout_constraintBottom_toBottomOf="@id/enable_status_indicators"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toEndOf="@id/page_Settings_enable_status_indicators"
app:layout_constraintTop_toTopOf="@id/page_Settings_enable_status_indicators"
app:layout_constraintBottom_toBottomOf="@id/page_Settings_enable_status_indicators"
app:layout_constraintEnd_toEndOf="parent" />
<com.kyleduo.switchbutton.SwitchButton
android:id="@+id/enable_status_hide_sensitive"
android:id="@+id/page_Settings_sensitive_enable"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/settings_column_margin"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/enable_status_indicators"
app:layout_constraintEnd_toStartOf="@id/enable_status_hide_sensitive_descr" />
app:layout_constraintTop_toBottomOf="@id/page_Settings_enable_status_indicators" />
<TextView
android:id="@+id/enable_status_hide_sensitive_descr"
android:id="@+id/page_Settings_sensitive_enable_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:lines="1"
android:text="@string/settings_hide_sensitive"
android:textSize="@dimen/settings_textsize_small"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toEndOf="@id/page_Settings_sensitive_enable"
app:layout_constraintTop_toTopOf="@id/page_Settings_sensitive_enable"
app:layout_constraintBottom_toBottomOf="@id/page_Settings_sensitive_enable"
app:layout_constraintEnd_toEndOf="parent" />
<TextView
android:id="@+id/page_settings_public_timeline_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/description_show_timeline"
android:lines="1"
android:textSize="@dimen/settings_textsize_small"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/page_settings_public_timeline_selector"
app:layout_constraintBottom_toBottomOf="@id/page_settings_public_timeline_selector"
app:layout_constraintEnd_toStartOf="@id/page_settings_public_timeline_selector" />
<Spinner
android:id="@+id/page_settings_public_timeline_selector"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/settings_switch_margin"
android:layout_marginEnd="@dimen/settings_switch_margin"
app:layout_constraintStart_toEndOf="@id/enable_status_hide_sensitive"
app:layout_constraintTop_toTopOf="@id/enable_status_hide_sensitive"
app:layout_constraintBottom_toBottomOf="@id/enable_status_hide_sensitive"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toEndOf="@id/page_settings_public_timeline_label"
app:layout_constraintTop_toBottomOf="@id/page_Settings_sensitive_enable"
app:layout_constraintEnd_toEndOf="parent" />
<ImageView
android:id="@+id/page_settings_font_icon"
android:layout_width="@dimen/settings_icon_size"
android:layout_height="@dimen/settings_icon_size"
android:src="@drawable/font"
app:layout_constraintDimensionRatio="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/spinner_font"
app:layout_constraintBottom_toBottomOf="@id/spinner_font"
app:layout_constraintEnd_toEndOf="@id/enable_status_indicators"
app:layout_constraintTop_toTopOf="@id/page_settings_font_selector"
app:layout_constraintBottom_toBottomOf="@id/page_settings_font_selector"
app:layout_constraintEnd_toEndOf="@id/page_Settings_sensitive_enable"
tools:ignore="ContentDescription" />
<Spinner
android:id="@+id/spinner_font"
android:id="@+id/page_settings_font_selector"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/settings_column_margin"
app:layout_constraintStart_toStartOf="@+id/enable_status_hide_sensitive_descr"
app:layout_constraintTop_toBottomOf="@id/enable_status_hide_sensitive"
app:layout_constraintEnd_toStartOf="@id/spinner_scale"
android:layout_marginStart="@dimen/settings_switch_margin"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toEndOf="@+id/page_settings_font_icon"
app:layout_constraintTop_toBottomOf="@id/page_settings_public_timeline_selector"
app:layout_constraintEnd_toStartOf="@id/page_settings_textscale_selector"
app:layout_constraintHorizontal_weight="3" />
<Spinner
android:id="@+id/spinner_scale"
android:id="@+id/page_settings_textscale_selector"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/settings_spinner_margin"
app:layout_constraintHorizontal_weight="2"
app:layout_constraintStart_toEndOf="@id/spinner_font"
app:layout_constraintTop_toTopOf="@id/spinner_font"
app:layout_constraintStart_toEndOf="@id/page_settings_font_selector"
app:layout_constraintTop_toTopOf="@id/page_settings_font_selector"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
@ -360,7 +367,7 @@
android:padding="@dimen/settings_cardview_padding">
<TextView
android:id="@+id/settings_data_text"
android:id="@+id/page_settings_title_dataconsumption"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:lines="1"
@ -371,102 +378,89 @@
app:layout_constraintEnd_toEndOf="parent" />
<com.kyleduo.switchbutton.SwitchButton
android:id="@+id/toggleImg"
android:id="@+id/page_settings_enable_images"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/settings_column_margin"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/settings_data_text" />
app:layout_constraintTop_toBottomOf="@id/page_settings_title_dataconsumption" />
<TextView
android:id="@+id/page_settings_enable_images_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:lines="1"
android:text="@string/settings_image"
android:textSize="@dimen/settings_textsize_small"
android:layout_marginStart="@dimen/settings_switch_margin"
android:layout_marginEnd="@dimen/settings_switch_margin"
app:layout_constraintStart_toEndOf="@id/toggleImg"
app:layout_constraintTop_toTopOf="@id/toggleImg"
app:layout_constraintBottom_toBottomOf="@id/toggleImg"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toEndOf="@id/page_settings_enable_images"
app:layout_constraintTop_toTopOf="@id/page_settings_enable_images"
app:layout_constraintBottom_toBottomOf="@id/page_settings_enable_images"
app:layout_constraintEnd_toEndOf="parent" />
<com.kyleduo.switchbutton.SwitchButton
android:id="@+id/settings_local_timeline"
android:id="@+id/page_settings_enable_push"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/settings_column_margin"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toggleImg" />
app:layout_constraintTop_toBottomOf="@id/page_settings_enable_images" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:lines="1"
android:text="@string/settings_description_local_timeline"
android:textSize="@dimen/settings_textsize_small"
android:layout_marginStart="@dimen/settings_switch_margin"
android:layout_marginEnd="@dimen/settings_switch_margin"
app:layout_constraintStart_toEndOf="@id/settings_local_timeline"
app:layout_constraintTop_toTopOf="@id/settings_local_timeline"
app:layout_constraintBottom_toBottomOf="@id/settings_local_timeline"
app:layout_constraintEnd_toEndOf="parent" />
<com.kyleduo.switchbutton.SwitchButton
android:id="@+id/settings_enable_push"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/settings_column_margin"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/settings_local_timeline" />
<TextView
android:id="@+id/settings_enable_push_descr"
android:id="@+id/page_settings_enable_push_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:lines="2"
android:text="@string/settings_enable_push_label"
android:textSize="@dimen/settings_textsize_small"
android:layout_marginStart="@dimen/settings_switch_margin"
android:layout_marginEnd="@dimen/settings_switch_margin"
app:layout_constraintStart_toEndOf="@id/settings_enable_push"
app:layout_constraintTop_toTopOf="@id/settings_enable_push"
app:layout_constraintBottom_toBottomOf="@id/settings_enable_push"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toEndOf="@id/page_settings_enable_push"
app:layout_constraintTop_toTopOf="@id/page_settings_enable_push"
app:layout_constraintBottom_toBottomOf="@id/page_settings_enable_push"
app:layout_constraintEnd_toEndOf="parent" />
<TextView
android:id="@+id/settings_list_seek_descr"
<androidx.constraintlayout.widget.Barrier
android:id="@+id/page_settings_barrier_list_seek"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="bottom"
app:constraint_referenced_ids="page_settings_enable_push,page_settings_enable_push_label" />
<TextView
android:id="@+id/page_settings_list_seek_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/settings_layout_margin"
android:lines="1"
android:text="@string/settings_list_size"
android:textSize="@dimen/settings_textsize_small"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/settings_list_seek"
app:layout_constraintBottom_toBottomOf="@id/settings_list_seek"
app:layout_constraintEnd_toStartOf="@id/settings_list_seek" />
app:layout_constraintTop_toTopOf="@id/page_settings_list_seek"
app:layout_constraintBottom_toBottomOf="@id/page_settings_list_seek"
app:layout_constraintEnd_toStartOf="@id/page_settings_list_seek" />
<SeekBar
android:id="@+id/settings_list_seek"
android:id="@+id/page_settings_list_seek"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:max="9"
android:layout_marginTop="@dimen/settings_column_margin"
app:layout_constraintStart_toEndOf="@id/settings_list_seek_descr"
app:layout_constraintTop_toBottomOf="@id/settings_enable_push"
app:layout_constraintEnd_toStartOf="@id/settings_list_size" />
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toEndOf="@id/page_settings_list_seek_label"
app:layout_constraintTop_toBottomOf="@id/page_settings_barrier_list_seek"
app:layout_constraintEnd_toStartOf="@id/page_settings_list_seek_value" />
<TextView
android:id="@+id/settings_list_size"
android:id="@+id/page_settings_list_seek_value"
android:layout_width="@dimen/settings_seek_number_width"
android:layout_height="wrap_content"
android:layout_margin="@dimen/settings_layout_margin"
android:lines="1"
android:textSize="@dimen/settings_textsize_small"
app:layout_constraintStart_toEndOf="@id/settings_list_seek"
app:layout_constraintTop_toTopOf="@id/settings_list_seek"
app:layout_constraintBottom_toBottomOf="@id/settings_list_seek"
app:layout_constraintStart_toEndOf="@id/page_settings_list_seek"
app:layout_constraintTop_toTopOf="@id/page_settings_list_seek"
app:layout_constraintBottom_toBottomOf="@id/page_settings_list_seek"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
@ -474,7 +468,7 @@
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/settings_data_card"
android:id="@+id/page_settings_card_data"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/CardViewStyle">
@ -485,7 +479,7 @@
android:padding="@dimen/settings_cardview_padding">
<TextView
android:id="@+id/user_data_text"
android:id="@+id/page_settings_title_userdata"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:lines="1"
@ -496,27 +490,27 @@
app:layout_constraintEnd_toEndOf="parent" />
<Button
android:id="@+id/delete_db"
android:id="@+id/page_settings_button_delete_data"
android:layout_width="0dp"
android:layout_height="@dimen/settings_button_height"
android:layout_marginTop="@dimen/settings_button_margin"
android:layout_marginEnd="@dimen/settings_button_margin"
android:text="@string/settings_clear_data"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/user_data_text"
app:layout_constraintTop_toBottomOf="@id/page_settings_title_userdata"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/logout"
app:layout_constraintEnd_toStartOf="@id/page_settings_button_logout"
style="@style/FeedbackButton" />
<Button
android:id="@+id/logout"
android:id="@+id/page_settings_button_logout"
android:layout_width="0dp"
android:layout_height="@dimen/settings_button_height"
android:layout_marginStart="@dimen/settings_button_margin"
android:layout_marginTop="@dimen/settings_button_margin"
android:text="@string/settings_logout"
app:layout_constraintStart_toEndOf="@id/delete_db"
app:layout_constraintTop_toBottomOf="@id/user_data_text"
app:layout_constraintStart_toEndOf="@id/page_settings_button_delete_data"
app:layout_constraintTop_toBottomOf="@id/page_settings_title_userdata"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
style="@style/FeedbackButton" />
@ -536,46 +530,44 @@
android:padding="@dimen/settings_cardview_padding">
<TextView
android:id="@+id/settings_connections_text"
android:id="@+id/page_settings_title_connection"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/settings_column_margin"
android:lines="1"
android:text="@string/settings_connections"
android:textSize="@dimen/settings_textsize"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/settings_enable_proxy"
app:layout_constraintEnd_toEndOf="parent" />
<com.kyleduo.switchbutton.SwitchButton
android:id="@+id/settings_enable_proxy"
android:id="@+id/page_settings_enable_proxy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/settings_column_margin"
android:layout_marginEnd="@dimen/settings_switch_margin"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/settings_connections_text"
app:layout_constraintBottom_toTopOf="@id/edit_proxy_address"
app:layout_constraintEnd_toStartOf="@id/settings_enable_proxy_descr" />
app:layout_constraintTop_toBottomOf="@id/page_settings_title_connection"
app:layout_constraintBottom_toTopOf="@id/page_settings_input_proxyaddress"
app:layout_constraintEnd_toStartOf="@id/page_settings_enable_proxy_label" />
<TextView
android:id="@+id/settings_enable_proxy_descr"
android:id="@+id/page_settings_enable_proxy_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/settings_layout_margin"
android:lines="1"
android:text="@string/settings_enable_proxy"
android:textSize="@dimen/settings_textsize_small"
app:layout_constraintStart_toEndOf="@id/settings_enable_proxy"
app:layout_constraintTop_toTopOf="@id/settings_enable_proxy"
app:layout_constraintBottom_toBottomOf="@id/settings_enable_proxy"
app:layout_constraintStart_toEndOf="@id/page_settings_enable_proxy"
app:layout_constraintTop_toTopOf="@id/page_settings_enable_proxy"
app:layout_constraintBottom_toBottomOf="@id/page_settings_enable_proxy"
app:layout_constraintEnd_toEndOf="parent" />
<EditText
android:id="@+id/edit_proxy_address"
android:id="@+id/page_settings_input_proxyaddress"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/settings_column_margin"
android:layout_margin="@dimen/settings_layout_margin"
android:digits="0123456789."
android:hint="@string/settings_hint_proxy_ip"
android:importantForAutofill="no"
@ -583,14 +575,13 @@
android:maxLength="15"
android:lines="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/settings_enable_proxy"
app:layout_constraintBottom_toTopOf="@id/settings_enable_auth"
app:layout_constraintEnd_toStartOf="@id/edit_proxy_port"
app:layout_constraintTop_toBottomOf="@id/page_settings_enable_proxy"
app:layout_constraintEnd_toStartOf="@id/page_settings_input_proxyport"
app:layout_constraintHorizontal_weight="2"
style="@style/TextInput" />
<EditText
android:id="@+id/edit_proxy_port"
android:id="@+id/page_settings_input_proxyport"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/proxy_port"
@ -598,63 +589,62 @@
android:inputType="number"
android:maxLength="5"
android:lines="1"
app:layout_constraintStart_toEndOf="@id/edit_proxy_address"
app:layout_constraintTop_toTopOf="@id/edit_proxy_address"
app:layout_constraintBottom_toBottomOf="@id/edit_proxy_address"
app:layout_constraintStart_toEndOf="@id/page_settings_input_proxyaddress"
app:layout_constraintTop_toTopOf="@id/page_settings_input_proxyaddress"
app:layout_constraintBottom_toBottomOf="@id/page_settings_input_proxyaddress"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_weight="1"
style="@style/TextInput" />
<com.kyleduo.switchbutton.SwitchButton
android:id="@+id/settings_enable_auth"
android:id="@+id/page_settings_enable_proxyauth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/settings_column_margin"
android:layout_marginEnd="@dimen/settings_switch_margin"
android:layout_margin="@dimen/settings_layout_margin"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/edit_proxy_address"
app:layout_constraintBottom_toTopOf="@id/edit_proxyuser"
app:layout_constraintEnd_toStartOf="@id/settings_enable_auth_descr" />
app:layout_constraintTop_toBottomOf="@id/page_settings_input_proxyaddress"
app:layout_constraintEnd_toStartOf="@id/page_settings_enable_proxyauth_label" />
<TextView
android:id="@+id/settings_enable_auth_descr"
android:id="@+id/page_settings_enable_proxyauth_label"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/settings_layout_margin"
android:lines="1"
android:text="@string/settings_enable_proxy_auth"
android:textSize="@dimen/settings_textsize_small"
app:layout_constraintStart_toEndOf="@id/settings_enable_auth"
app:layout_constraintTop_toTopOf="@id/settings_enable_auth"
app:layout_constraintBottom_toBottomOf="@id/settings_enable_auth"
app:layout_constraintStart_toEndOf="@id/page_settings_enable_proxyauth"
app:layout_constraintTop_toTopOf="@id/page_settings_enable_proxyauth"
app:layout_constraintBottom_toBottomOf="@id/page_settings_enable_proxyauth"
app:layout_constraintEnd_toEndOf="parent" />
<EditText
android:id="@+id/edit_proxyuser"
android:id="@+id/page_settings_input_proxyuser"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/settings_column_margin"
android:layout_margin="@dimen/settings_layout_margin"
android:hint="@string/edit_proxy_user"
android:importantForAutofill="no"
android:inputType="textPersonName"
android:lines="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/settings_enable_auth"
app:layout_constraintTop_toBottomOf="@id/page_settings_enable_proxyauth_label"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/edit_proxypass"
app:layout_constraintEnd_toStartOf="@id/page_settings_input_proxypass"
app:layout_constraintHorizontal_weight="3"
style="@style/TextInput" />
<EditText
android:id="@+id/edit_proxypass"
android:id="@+id/page_settings_input_proxypass"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/proxy_password"
android:importantForAutofill="no"
android:inputType="textPassword"
android:lines="1"
app:layout_constraintStart_toEndOf="@id/edit_proxyuser"
app:layout_constraintTop_toTopOf="@id/edit_proxyuser"
app:layout_constraintBottom_toBottomOf="@id/edit_proxyuser"
app:layout_constraintStart_toEndOf="@id/page_settings_input_proxyuser"
app:layout_constraintTop_toTopOf="@id/page_settings_input_proxyuser"
app:layout_constraintBottom_toBottomOf="@id/page_settings_input_proxyuser"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_weight="2"
style="@style/TextInput" />

View File

@ -47,4 +47,10 @@
<item>zeige alle Replies</item>
</string-array>
<string-array name="public_timelines">
<item>zeige alle</item>
<item>nur lokale</item>
<item>nur entfernte</item>
</string-array>
</resources>

View File

@ -72,7 +72,6 @@
<string name="error_status_length">Status ist zu lang!</string>
<string name="error_duplicate_status">Status wurde schon versendet!</string>
<string name="error_dm_length">Direktnachricht länge überschritten!</string>
<string name="menu_follow_requested">Anfrage gesendet</string>
<string name="info_loading">lädt..</string>
<string name="profile_location">Standort</string>
<string name="profile_bio">Bio</string>
@ -279,7 +278,6 @@
<string name="poll_option_edit_button">hinzufügen/entfernen</string>
<string name="status_add_poll">Umfrage hinzufügen</string>
<string name="status_pref">Statuseinstellungen</string>
<string name="settings_description_local_timeline">nur lokale Timeline zeigen</string>
<string name="dialog_poll_close">Dialogfenster schließen</string>
<string name="dialog_status_title">Statuseinstellungen</string>
<string name="dialog_status_sensitive">Inhalt als sensibel markieren</string>
@ -365,4 +363,5 @@
<string name="userlist_update_list">Nutzerliste bearbeiten</string>
<string name="confirm_accept_follow_request">Follow-Anfrage annehmen?</string>
<string name="info_follow_request_accepted">Follow-Anfrage angenommen</string>
<string name="description_show_timeline">öffentl. Timeline</string>
</resources>

View File

@ -118,7 +118,6 @@
<string name="menu_bookmark_add">Marcador</string>
<string name="menu_bookmark_remove">Eliminar marcador</string>
<string name="menu_unmute_user">No silenciar</string>
<string name="menu_follow_requested">Se solicitó seguir</string>
<string name="menu_status_edit">Editar</string>
<string name="menu_status_delete">Borrar</string>
<string name="menu_status_hide">Ocultar</string>
@ -226,7 +225,6 @@
<string name="settings_app_information">Código fuente de la app:</string>
<string name="settings_enable_toolbar_overlap">Diseño del perfil colapsado</string>
<string name="settings_look">Mirar</string>
<string name="settings_description_local_timeline">Mostrar solo líneas de tiempo locales</string>
<string name="item_load_more">Cargar más</string>
<string name="item_image_save">Guardar imagen</string>
<string name="item_poll_option_vote">Votar</string>

View File

@ -138,7 +138,6 @@
<string name="menu_app_info">关于</string>
<string name="menu_block_user">屏蔽</string>
<string name="menu_unmute_user">取消隐藏</string>
<string name="menu_follow_requested">关注请求已发送</string>
<string name="menu_status_delete">删除推文</string>
<string name="menu_status_open_browser">在浏览器中打开</string>
<string name="menu_mute_user">隐藏</string>

View File

@ -123,4 +123,10 @@
<item>show all replies</item>
</string-array>
<string-array name="public_timelines">
<item>show all</item>
<item>local only</item>
<item>remote only</item>
</string-array>
</resources>

View File

@ -23,7 +23,7 @@
<dimen name="settings_button_margin">5dp</dimen>
<dimen name="settings_switch_margin">10dp</dimen>
<dimen name="settings_spinner_margin">10dp</dimen>
<dimen name="settings_column_margin">5dp</dimen>
<dimen name="settings_layout_margin">5dp</dimen>
<dimen name="settings_seek_number_width">30sp</dimen>
<dimen name="settings_scroll_padding">@dimen/fragment_list_layout_padding</dimen>

View File

@ -150,7 +150,6 @@
<string name="menu_bookmark_add">bookmark</string>
<string name="menu_bookmark_remove">remove bookmark</string>
<string name="menu_unmute_user">unmute</string>
<string name="menu_follow_requested">follow requested</string>
<string name="menu_status_edit">edit</string>
<string name="menu_status_delete">delete</string>
<string name="menu_status_report">report</string>
@ -273,7 +272,6 @@
<string name="settings_enable_toolbar_overlap">Collapsed profile layout</string>
<string name="settings_enable_floating_button">enable floating button</string>
<string name="settings_look">Look</string>
<string name="settings_description_local_timeline">show local timelines only</string>
<string name="item_load_more">load more</string>
<string name="item_image_save">save image</string>
<string name="item_poll_option_vote">vote</string>
@ -375,6 +373,7 @@
<string name="description_filter_home_timeline">Home timeline filter enabled</string>
<string name="description_filter_notification">Notification filter enabled</string>
<string name="description_filter_public_timeline">Public timeline filter enabled</string>
<string name="description_show_timeline">public timeline</string>
<string name="description_filter_thread">Thread filter enabled</string>
<string name="description_filter_user_timeline">User timeline filter enabled</string>
<string name="dialog_filter_create">create filter</string>