status dialog layout fix, moved "local timeline" option to settings activity, bug fix, translation update
This commit is contained in:
parent
a4c9af728f
commit
aca8dd5428
|
@ -38,6 +38,9 @@ public enum Configuration {
|
|||
private final boolean postLocationSupported;
|
||||
private final boolean userlistVisibility;
|
||||
private final boolean notificationDismissSupported;
|
||||
private final boolean statusSpoilerSupported;
|
||||
private final boolean statusVisibilitySupported;
|
||||
private final boolean directMessageSupported;
|
||||
private final int maxImages;
|
||||
private final int maxGifs;
|
||||
private final int maxVideos;
|
||||
|
@ -58,6 +61,9 @@ public enum Configuration {
|
|||
postLocationSupported = true;
|
||||
userlistVisibility = true;
|
||||
notificationDismissSupported = false;
|
||||
statusSpoilerSupported = false;
|
||||
statusVisibilitySupported = false;
|
||||
directMessageSupported = true;
|
||||
maxImages = 4;
|
||||
maxGifs = 1;
|
||||
maxVideos = 1;
|
||||
|
@ -73,6 +79,9 @@ public enum Configuration {
|
|||
postLocationSupported = false;
|
||||
userlistVisibility = false;
|
||||
notificationDismissSupported = true;
|
||||
statusSpoilerSupported = true;
|
||||
statusVisibilitySupported = true;
|
||||
directMessageSupported = false;
|
||||
maxImages = 4;
|
||||
maxGifs = 1;
|
||||
maxVideos = 1;
|
||||
|
@ -139,10 +148,31 @@ public enum Configuration {
|
|||
/**
|
||||
* @return true if notification dismiss is supported
|
||||
*/
|
||||
public boolean NotificationDismissEnabled() {
|
||||
public boolean notificationDismissEnabled() {
|
||||
return notificationDismissSupported;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return true if login type supports warining for status spoiler
|
||||
*/
|
||||
public boolean statusSpoilerSupported() {
|
||||
return statusSpoilerSupported;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return true if login type supports status visibility states
|
||||
*/
|
||||
public boolean statusVisibilitySupported() {
|
||||
return statusVisibilitySupported;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return true if directmessaging is supported
|
||||
*/
|
||||
public boolean directmessageSupported() {
|
||||
return directMessageSupported;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return image limit for posts
|
||||
*/
|
||||
|
|
|
@ -35,7 +35,6 @@ import org.nuclearfog.twidda.backend.async.LinkLoader;
|
|||
import org.nuclearfog.twidda.backend.async.LinkLoader.LinkResult;
|
||||
import org.nuclearfog.twidda.backend.utils.AppStyles;
|
||||
import org.nuclearfog.twidda.backend.utils.ErrorHandler;
|
||||
import org.nuclearfog.twidda.config.Configuration;
|
||||
import org.nuclearfog.twidda.config.GlobalSettings;
|
||||
import org.nuclearfog.twidda.ui.adapter.FragmentAdapter;
|
||||
import org.nuclearfog.twidda.ui.dialogs.ProgressDialog;
|
||||
|
@ -166,9 +165,8 @@ public class MainActivity extends AppCompatActivity implements ActivityResultCal
|
|||
|
||||
@Override
|
||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||
MenuItem localTl = menu.findItem(R.id.menu_local_timeline);
|
||||
localTl.setVisible(settings.getLogin().getConfiguration() == Configuration.MASTODON);
|
||||
localTl.setChecked(settings.useLocalTimeline());
|
||||
MenuItem message = menu.findItem(R.id.menu_message);
|
||||
message.setVisible(settings.getLogin().getConfiguration().directmessageSupported());
|
||||
return super.onPrepareOptionsMenu(menu);
|
||||
}
|
||||
|
||||
|
@ -206,13 +204,6 @@ public class MainActivity extends AppCompatActivity implements ActivityResultCal
|
|||
Intent accountManager = new Intent(this, AccountActivity.class);
|
||||
activityResultLauncher.launch(accountManager);
|
||||
}
|
||||
// enable disable Mastodon local timeline
|
||||
else if (item.getItemId() == R.id.menu_local_timeline) {
|
||||
boolean toggle = !settings.useLocalTimeline();
|
||||
settings.setLocalTimeline(toggle);
|
||||
adapter.notifySettingsChanged();
|
||||
item.setChecked(toggle);
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
|
|
|
@ -136,7 +136,8 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
|
|||
SwitchButton toggleImg = findViewById(R.id.toggleImg);
|
||||
SwitchButton toolbarOverlap = findViewById(R.id.settings_toolbar_ov);
|
||||
SwitchButton enableLike = findViewById(R.id.enable_like);
|
||||
SwitchButton enableTwitterAlt = findViewById(R.id.settings_enable_twitter_alt);
|
||||
SwitchButton enableNitter = findViewById(R.id.settings_enable_twitter_alt);
|
||||
SwitchButton enableLocalTl = findViewById(R.id.settings_local_timeline);
|
||||
View EnableTwitterAltDescr = findViewById(R.id.settings_enable_twitter_alt_descr);
|
||||
SwitchButton enableStatusIcons = findViewById(R.id.enable_status_indicators);
|
||||
SeekBar listSizeSelector = findViewById(R.id.settings_list_seek);
|
||||
|
@ -192,7 +193,8 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
|
|||
databaseAsync = new DatabaseAction(this);
|
||||
|
||||
if (configuration != Configuration.TWITTER1 && configuration != Configuration.TWITTER2) {
|
||||
enableTwitterAlt.setVisibility(View.GONE);
|
||||
enableLocalTl.setVisibility(View.VISIBLE);
|
||||
enableNitter.setVisibility(View.GONE);
|
||||
EnableTwitterAltDescr.setVisibility(View.GONE);
|
||||
trend_card.setVisibility(View.GONE);
|
||||
}
|
||||
|
@ -218,7 +220,8 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
|
|||
toggleImg.setCheckedImmediately(settings.imagesEnabled());
|
||||
toolbarOverlap.setCheckedImmediately(settings.toolbarOverlapEnabled());
|
||||
enableLike.setCheckedImmediately(settings.likeEnabled());
|
||||
enableTwitterAlt.setCheckedImmediately(settings.twitterAltSet());
|
||||
enableNitter.setCheckedImmediately(settings.twitterAltSet());
|
||||
enableLocalTl.setCheckedImmediately(settings.useLocalTimeline());
|
||||
enableStatusIcons.setCheckedImmediately(settings.statusIndicatorsEnabled());
|
||||
enableProxy.setCheckedImmediately(settings.isProxyEnabled());
|
||||
enableAuth.setCheckedImmediately(settings.isProxyAuthSet());
|
||||
|
@ -236,7 +239,8 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
|
|||
delButton.setOnClickListener(this);
|
||||
toggleImg.setOnCheckedChangeListener(this);
|
||||
enableLike.setOnCheckedChangeListener(this);
|
||||
enableTwitterAlt.setOnCheckedChangeListener(this);
|
||||
enableNitter.setOnCheckedChangeListener(this);
|
||||
enableLocalTl.setOnCheckedChangeListener(this);
|
||||
enableStatusIcons.setOnCheckedChangeListener(this);
|
||||
enableProxy.setOnCheckedChangeListener(this);
|
||||
enableAuth.setOnCheckedChangeListener(this);
|
||||
|
@ -506,6 +510,10 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
|
|||
else if (c.getId() == R.id.enable_status_indicators) {
|
||||
settings.enableStatusIndicators(checked);
|
||||
}
|
||||
// enable/disable local timeline (Mastodon)
|
||||
else if (c.getId() == R.id.settings_local_timeline) {
|
||||
settings.setLocalTimeline(checked);
|
||||
}
|
||||
// enable proxy settings
|
||||
else if (c.getId() == R.id.settings_enable_proxy) {
|
||||
if (checked) {
|
||||
|
|
|
@ -61,6 +61,7 @@ public class StatusEditor extends MediaActivity implements OnClickListener, OnPr
|
|||
|
||||
private View mediaBtn;
|
||||
private View locationBtn;
|
||||
private View pollBtn;
|
||||
private View locationPending;
|
||||
|
||||
private StatusUpdater uploaderAsync;
|
||||
|
@ -89,10 +90,10 @@ public class StatusEditor extends MediaActivity implements OnClickListener, OnPr
|
|||
ImageView background = findViewById(R.id.popup_status_background);
|
||||
View statusButton = findViewById(R.id.popup_status_send);
|
||||
View closeButton = findViewById(R.id.popup_status_close);
|
||||
View addPoll = findViewById(R.id.popup_status_add_poll);
|
||||
View preference = findViewById(R.id.popup_status_pref);
|
||||
RecyclerView iconList = findViewById(R.id.popup_status_media_icons);
|
||||
EditText statusText = findViewById(R.id.popup_status_input);
|
||||
pollBtn = findViewById(R.id.popup_status_add_poll);
|
||||
locationBtn = findViewById(R.id.popup_status_add_location);
|
||||
mediaBtn = findViewById(R.id.popup_status_add_media);
|
||||
locationPending = findViewById(R.id.popup_status_location_loading);
|
||||
|
@ -119,16 +120,16 @@ public class StatusEditor extends MediaActivity implements OnClickListener, OnPr
|
|||
iconList.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true));
|
||||
iconList.setAdapter(adapter);
|
||||
|
||||
statusText.addTextChangedListener(this);
|
||||
closeButton.setOnClickListener(this);
|
||||
preference.setOnClickListener(this);
|
||||
addPoll.setOnClickListener(this);
|
||||
statusButton.setOnClickListener(this);
|
||||
pollBtn.setOnClickListener(this);
|
||||
mediaBtn.setOnClickListener(this);
|
||||
locationBtn.setOnClickListener(this);
|
||||
confirmDialog.setConfirmListener(this);
|
||||
loadingCircle.addOnProgressStopListener(this);
|
||||
adapter.addOnMediaClickListener(this);
|
||||
statusText.addTextChangedListener(this);
|
||||
}
|
||||
|
||||
|
||||
|
@ -258,9 +259,14 @@ public class StatusEditor extends MediaActivity implements OnClickListener, OnPr
|
|||
Toast.makeText(getApplicationContext(), R.string.error_adding_media, Toast.LENGTH_SHORT).show();
|
||||
break;
|
||||
}
|
||||
// hide media button if limit is reached
|
||||
if (statusUpdate.mediaLimitReached()) {
|
||||
mediaBtn.setVisibility(View.GONE);
|
||||
}
|
||||
// hide poll button
|
||||
if (mediaType != StatusUpdate.MEDIA_ERROR && pollBtn.getVisibility() != View.GONE) {
|
||||
pollBtn.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -239,7 +239,7 @@ public class StatusHolder extends ViewHolder implements OnClickListener {
|
|||
label.setVisibility(View.VISIBLE);
|
||||
label.setText(text);
|
||||
label.setCompoundDrawablesWithIntrinsicBounds(iconRes, 0, 0, 0);
|
||||
if (settings.getLogin().getConfiguration().NotificationDismissEnabled()) {
|
||||
if (settings.getLogin().getConfiguration().notificationDismissEnabled()) {
|
||||
dismissButton.setVisibility(View.VISIBLE);
|
||||
}
|
||||
AppStyles.setDrawableColor(label, settings.getIconColor());
|
||||
|
|
|
@ -152,7 +152,7 @@ public class UserHolder extends ViewHolder implements OnClickListener {
|
|||
iconRes = R.drawable.follower_request;
|
||||
break;
|
||||
}
|
||||
if (settings.getLogin().getConfiguration().NotificationDismissEnabled()) {
|
||||
if (settings.getLogin().getConfiguration().notificationDismissEnabled()) {
|
||||
notificationDismiss.setVisibility(VISIBLE);
|
||||
}
|
||||
label.setVisibility(VISIBLE);
|
||||
|
|
|
@ -16,6 +16,7 @@ import com.kyleduo.switchbutton.SwitchButton;
|
|||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.helper.StatusUpdate;
|
||||
import org.nuclearfog.twidda.backend.utils.AppStyles;
|
||||
import org.nuclearfog.twidda.config.GlobalSettings;
|
||||
|
||||
/**
|
||||
* status editor preference dialog used to set additional status information
|
||||
|
@ -37,11 +38,19 @@ public class StatusPreferenceDialog extends Dialog implements OnCheckedChangeLis
|
|||
SwitchButton sensitiveCheck = findViewById(R.id.dialog_status_sensitive);
|
||||
SwitchButton spoilerCheck = findViewById(R.id.dialog_status_spoiler);
|
||||
Spinner visibilitySelector = findViewById(R.id.dialog_status_visibility);
|
||||
View statusVisibility = findViewById(R.id.dialog_status_visibility_container);
|
||||
View statusSpoiler = findViewById(R.id.dialog_status_spoiler_container);
|
||||
GlobalSettings settings = GlobalSettings.getInstance(context);
|
||||
|
||||
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(context, R.array.visibility, android.R.layout.simple_spinner_dropdown_item);
|
||||
visibilitySelector.setAdapter(adapter);
|
||||
AppStyles.setTheme(rootView);
|
||||
|
||||
if (!settings.getLogin().getConfiguration().statusVisibilitySupported()) {
|
||||
statusVisibility.setVisibility(View.GONE);
|
||||
}
|
||||
if (!settings.getLogin().getConfiguration().statusSpoilerSupported()) {
|
||||
statusSpoiler.setVisibility(View.GONE);
|
||||
}
|
||||
sensitiveCheck.setOnCheckedChangeListener(this);
|
||||
spoilerCheck.setOnCheckedChangeListener(this);
|
||||
visibilitySelector.setOnItemSelectedListener(this);
|
||||
|
|
|
@ -18,47 +18,46 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical|end"
|
||||
android:layout_marginBottom="@dimen/dialog_status_layout_margins">
|
||||
|
||||
<com.kyleduo.switchbutton.SwitchButton
|
||||
android:id="@+id/dialog_status_sensitive"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dialog_status_layout_margins"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/dialog_status_sensitive"
|
||||
android:layout_marginEnd="@dimen/dialog_status_layout_margins"
|
||||
android:lines="1"/>
|
||||
|
||||
<com.kyleduo.switchbutton.SwitchButton
|
||||
android:id="@+id/dialog_status_sensitive"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/dialog_status_spoiler_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="end"
|
||||
android:layout_marginBottom="@dimen/dialog_status_layout_margins">
|
||||
|
||||
<com.kyleduo.switchbutton.SwitchButton
|
||||
android:id="@+id/dialog_status_spoiler"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dialog_status_layout_margins"/>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/dialog_status_spoiler"
|
||||
android:layout_marginEnd="@dimen/dialog_status_layout_margins"
|
||||
android:lines="1"/>
|
||||
|
||||
<com.kyleduo.switchbutton.SwitchButton
|
||||
android:id="@+id/dialog_status_spoiler"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/dialog_status_visibility_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="end">
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:layout_width="0dp"
|
||||
|
|
|
@ -387,7 +387,7 @@
|
|||
android:layout_marginEnd="@dimen/settings_switch_margin"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/toggleImg"
|
||||
app:layout_constraintBottom_toTopOf="@id/settings_list_seek"
|
||||
app:layout_constraintBottom_toTopOf="@id/settings_local_timeline"
|
||||
app:layout_constraintEnd_toStartOf="@id/settings_enable_twitter_alt_descr" />
|
||||
|
||||
<TextView
|
||||
|
@ -402,6 +402,29 @@
|
|||
app:layout_constraintBottom_toBottomOf="@id/settings_enable_twitter_alt"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<com.kyleduo.switchbutton.SwitchButton
|
||||
android:id="@+id/settings_local_timeline"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/settings_column_margin"
|
||||
android:layout_marginEnd="@dimen/settings_switch_margin"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/settings_enable_twitter_alt"
|
||||
app:layout_constraintBottom_toTopOf="@id/settings_list_seek"
|
||||
app:layout_constraintEnd_toStartOf="@id/settings_local_timeline_descr" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/settings_local_timeline_descr"
|
||||
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"
|
||||
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" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/settings_list_seek_descr"
|
||||
android:layout_width="wrap_content"
|
||||
|
@ -419,10 +442,9 @@
|
|||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginBottom="@dimen/settings_column_margin"
|
||||
android:max="9"
|
||||
app:layout_constraintStart_toEndOf="@id/settings_list_seek_descr"
|
||||
app:layout_constraintTop_toBottomOf="@id/settings_enable_twitter_alt"
|
||||
app:layout_constraintTop_toBottomOf="@id/settings_local_timeline_descr"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/settings_list_size" />
|
||||
|
||||
|
|
|
@ -9,11 +9,6 @@
|
|||
app:actionViewClass="androidx.appcompat.widget.SearchView"
|
||||
app:showAsAction="always|collapseActionView" />
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_local_timeline"
|
||||
android:title="@string/menu_show_local_timeline"
|
||||
android:checkable="true" />
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_profile"
|
||||
android:title="@string/menu_open_home_profile"
|
||||
|
|
|
@ -267,7 +267,6 @@
|
|||
<string name="info_missing_key">bitte Schlüssel eingeben</string>
|
||||
<string name="info_missing_host">bitte gültigen Hostnamen eingeben</string>
|
||||
<string name="info_missing_api_keys">Bitte API-Schlüssel hinzufügen</string>
|
||||
<string name="menu_show_local_timeline">zeige lokale Timeline</string>
|
||||
<string name="info_status_bookmarked">Status zu Lesezeichen hinzugefügt</string>
|
||||
<string name="info_status_unbookmarked">Status aus Lesezeichen entfernt</string>
|
||||
<string name="settings_bookmark_color">Lesezeichen symbol</string>
|
||||
|
@ -285,4 +284,11 @@
|
|||
<string name="dialog_poll_duration_hint">Dauer</string>
|
||||
<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">sensibel</string>
|
||||
<string name="dialog_status_spoiler">Spoiler</string>
|
||||
<string name="dialog_status_visibility">Sichtbarkeit</string>
|
||||
</resources>
|
|
@ -146,7 +146,6 @@
|
|||
<string name="menu_excluded_users">Blocklists</string>
|
||||
<string name="menu_exclude_user">exclude user</string>
|
||||
<string name="menu_search_filter">filter results</string>
|
||||
<string name="menu_show_local_timeline">show local timeline</string>
|
||||
<string name="menu_hint_mute_user">enter @name to mute</string>
|
||||
<string name="menu_hint_block_user">enter @name to block</string>
|
||||
<string name="menu_refresh_exclude">refresh exclude list</string>
|
||||
|
@ -214,7 +213,7 @@
|
|||
<string name="status_add_image">add new image</string>
|
||||
<string name="notification_dismiss">dismiss notification</string>
|
||||
<string name="send_status">share status</string>
|
||||
<string name="status_pref">status preferences</string>
|
||||
<string name="status_pref">Status preferences</string>
|
||||
<string name="status_add_poll">add poll</string>
|
||||
<string name="status_close">close editor</string>
|
||||
<string name="profile_link">Link</string>
|
||||
|
@ -260,6 +259,7 @@
|
|||
<string name="settings_enable_toolbar_overlap">Collapsed profile layout</string>
|
||||
<string name="settings_look">Look</string>
|
||||
<string name="settings_description_enable_twitter_alt">use nitter.net for links</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>
|
||||
|
@ -316,6 +316,6 @@
|
|||
<string name="dialog_poll_close">close dialog</string>
|
||||
<string name="dialog_status_title">Status preferences</string>
|
||||
<string name="dialog_status_sensitive">sensitive</string>
|
||||
<string name="dialog_status_spoiler">spoiler</string>
|
||||
<string name="dialog_status_visibility">visibility</string>
|
||||
<string name="dialog_status_spoiler">Spoiler</string>
|
||||
<string name="dialog_status_visibility">Visibility</string>
|
||||
</resources>
|
Loading…
Reference in New Issue