From 236f8e5f6f69d8b19cbd21ca2fe50113b68c4d3d Mon Sep 17 00:00:00 2001
From: Ash <>
Date: Fri, 15 May 2020 04:39:50 +0530
Subject: [PATCH 001/115] Fix: unblock option not working in account activity's
menu
---
.../fedilab/android/activities/ShowAccountActivity.java | 9 +++++++--
app/src/main/res/values/strings.xml | 1 +
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java b/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java
index bb39b6732..96edc6d7b 100644
--- a/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java
@@ -1330,8 +1330,13 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
return true;
case R.id.action_block:
builderInner = new AlertDialog.Builder(ShowAccountActivity.this, style);
- builderInner.setTitle(stringArrayConf[1]);
- doActionAccount = API.StatusAction.BLOCK;
+ if (relationship.isBlocking()) {
+ builderInner.setTitle(stringArrayConf[5]);
+ doActionAccount = API.StatusAction.UNBLOCK;
+ } else {
+ builderInner.setTitle(stringArrayConf[1]);
+ doActionAccount = API.StatusAction.BLOCK;
+ }
break;
case R.id.action_block_instance:
builderInner = new AlertDialog.Builder(ShowAccountActivity.this, style);
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b0a84b134..202aadd38 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -115,6 +115,7 @@
- Report this toot?
- Block this domain?
- Unmute this account?
+ - Unblock this account?
From d5ef4f05a1506d85481ef68d1198fd471782c055 Mon Sep 17 00:00:00 2001
From: Thomas
Date: Sat, 16 May 2020 11:12:49 +0200
Subject: [PATCH 002/115] copy release notes
---
.../app/fedilab/android/helper/CacheDataSourceFactory.java | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 app/src/main/java/app/fedilab/android/helper/CacheDataSourceFactory.java
diff --git a/app/src/main/java/app/fedilab/android/helper/CacheDataSourceFactory.java b/app/src/main/java/app/fedilab/android/helper/CacheDataSourceFactory.java
new file mode 100644
index 000000000..71012f898
--- /dev/null
+++ b/app/src/main/java/app/fedilab/android/helper/CacheDataSourceFactory.java
@@ -0,0 +1,4 @@
+package app.fedilab.android.helper;
+
+public class CacheDataSourceFactory {
+}
From dd26a6aeb50f8f18c6e5080b1e6097361fca6fe0 Mon Sep 17 00:00:00 2001
From: Thomas
Date: Sat, 16 May 2020 11:32:09 +0200
Subject: [PATCH 003/115] video cache
---
.../android/activities/BaseMainActivity.java | 10 +-
.../android/activities/PeertubeActivity.java | 134 ++++++++++------
.../android/activities/SettingsActivity.java | 2 +-
.../activities/WebviewConnectActivity.java | 2 +-
.../DownloadTrackingDomainsAsyncTask.java | 1 -
.../java/app/fedilab/android/client/API.java | 20 +--
.../client/Entities/ManageTimelines.java | 9 +-
.../android/client/Entities/Status.java | 55 ++++---
.../android/drawers/StatusListAdapter.java | 11 +-
.../fragments/ColorSettingsFragment.java | 2 +-
.../fragments/ContentSettingsFragment.java | 148 +++++++++++++-----
.../fragments/MediaSliderFragment.java | 32 +++-
.../helper/CacheDataSourceFactory.java | 48 +++++-
.../app/fedilab/android/helper/Helper.java | 31 ++--
.../fedilab/android/helper/ThemeHelper.java | 23 +--
.../imageeditor/ColorPickerAdapter.java | 22 +--
.../android/imageeditor/EmojiBSFragment.java | 16 +-
.../imageeditor/PropertiesBSFragment.java | 11 +-
.../imageeditor/StickerBSFragment.java | 18 +--
.../imageeditor/TextEditorDialogFragment.java | 57 ++++---
.../tools/EditingToolsAdapter.java | 9 +-
.../BackupNotificationInDataBaseService.java | 27 ++--
.../BackupStatusInDataBaseService.java | 27 ++--
.../android/services/BackupStatusService.java | 22 +--
.../LiveNotificationDelayedService.java | 57 ++++---
.../services/LiveNotificationService.java | 1 -
.../StreamingFederatedTimelineService.java | 41 ++---
.../StreamingHomeTimelineService.java | 41 ++---
.../StreamingLocalTimelineService.java | 41 ++---
.../android/sqlite/DomainBlockDAO.java | 3 +-
.../layout-sw600dp/activity_show_account.xml | 14 +-
.../res/layout-sw600dp/drawer_account.xml | 14 +-
.../main/res/layout/activity_edit_profile.xml | 2 +-
app/src/main/res/layout/activity_login.xml | 10 +-
.../layout/activity_manage_accounts_list.xml | 2 +-
app/src/main/res/layout/activity_peertube.xml | 2 +-
.../res/layout/activity_peertube_upload.xml | 2 +-
.../main/res/layout/activity_show_account.xml | 14 +-
.../main/res/layout/add_blocked_instance.xml | 2 +-
app/src/main/res/layout/add_filter.xml | 2 +-
app/src/main/res/layout/add_list.xml | 2 +-
app/src/main/res/layout/add_playlist.xml | 2 +-
.../main/res/layout/dialog_create_folder.xml | 2 +-
app/src/main/res/layout/dialog_profile.xml | 2 +-
app/src/main/res/layout/domains_blocked.xml | 2 +-
app/src/main/res/layout/drawer_account.xml | 14 +-
.../main/res/layout/drawer_account_admin.xml | 8 +-
.../layout/drawer_account_follow_request.xml | 4 +-
.../main/res/layout/drawer_account_list.xml | 4 +-
.../res/layout/drawer_account_main_search.xml | 12 +-
.../main/res/layout/drawer_account_reply.xml | 2 +-
.../main/res/layout/drawer_account_search.xml | 4 +-
.../main/res/layout/drawer_emoji_search.xml | 3 +-
.../main/res/layout/drawer_notification.xml | 4 +-
app/src/main/res/layout/drawer_report.xml | 6 +-
app/src/main/res/layout/drawer_status.xml | 19 ++-
.../main/res/layout/drawer_status_compact.xml | 18 +--
.../main/res/layout/drawer_status_console.xml | 20 +--
.../main/res/layout/drawer_status_focused.xml | 20 +--
.../res/layout/drawer_status_main_search.xml | 6 +-
.../main/res/layout/drawer_suggestions.xml | 2 +-
app/src/main/res/layout/filter_regex.xml | 2 +-
.../res/layout/fragment_settings_reveal.xml | 94 +++++++++--
.../main/res/layout/fragment_slide_media.xml | 2 +-
app/src/main/res/layout/nav_header_main.xml | 2 +-
app/src/main/res/layout/popup_contact.xml | 3 +-
app/src/main/res/layout/search_instance.xml | 2 +-
app/src/main/res/layout/search_toot.xml | 2 +-
app/src/main/res/layout/simple_bar.xml | 2 +-
app/src/main/res/layout/simple_bar_add.xml | 2 +-
.../res/layout/simple_bar_muted_instance.xml | 2 +-
app/src/main/res/layout/simple_bar_search.xml | 2 +-
app/src/main/res/layout/tags_all.xml | 2 +-
app/src/main/res/layout/tags_any.xml | 2 +-
app/src/main/res/layout/tags_instance.xml | 2 +-
app/src/main/res/layout/tags_name.xml | 2 +-
app/src/main/res/layout/webview_actionbar.xml | 2 +-
app/src/main/res/values/strings.xml | 6 +
78 files changed, 733 insertions(+), 539 deletions(-)
diff --git a/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java
index c1928b179..f22ff876b 100644
--- a/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java
@@ -1258,7 +1258,7 @@ public abstract class BaseMainActivity extends BaseActivity
int lastReleaseNoteRead = sharedpreferences.getInt(Helper.SET_POPUP_RELEASE_NOTES, 0);
int versionCode = BuildConfig.VERSION_CODE;
- if (lastReleaseNoteRead != versionCode ) { //Need to push release notes
+ if (lastReleaseNoteRead != versionCode) { //Need to push release notes
if (social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA) {
new RetrieveRemoteDataAsyncTask(BaseMainActivity.this, BaseMainActivity.this).execute();
}
@@ -1279,12 +1279,12 @@ public abstract class BaseMainActivity extends BaseActivity
Button liberapay_support = dialogReleaseNoteView.findViewById(R.id.liberapay_support);
release_title.setText(getString(R.string.release_note_title, BuildConfig.VERSION_NAME));
release_notes.setText(finalContent);
- if( BuildConfig.DONATIONS) {
+ if (BuildConfig.DONATIONS) {
liberapay_support.setVisibility(View.VISIBLE);
- }else{
+ } else {
liberapay_support.setVisibility(View.GONE);
}
- liberapay_support.setOnClickListener(v->{
+ liberapay_support.setOnClickListener(v -> {
Intent intentLiberapay = new Intent(Intent.ACTION_VIEW);
intentLiberapay.setData(Uri.parse("https://liberapay.com/tom79"));
try {
@@ -1693,7 +1693,7 @@ public abstract class BaseMainActivity extends BaseActivity
}
});
}
- if( trackingDomains != null){
+ if (trackingDomains != null) {
trackingDomains = null;
}
if (hidde_menu != null)
diff --git a/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java b/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java
index c188ecc4e..7d67984e1 100644
--- a/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java
@@ -60,10 +60,10 @@ import androidx.recyclerview.widget.RecyclerView;
import com.google.android.exoplayer2.ExoPlayerFactory;
import com.google.android.exoplayer2.SimpleExoPlayer;
-import com.google.android.exoplayer2.source.ExtractorMediaSource;
+import com.google.android.exoplayer2.source.ProgressiveMediaSource;
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout;
-import com.google.android.exoplayer2.ui.PlaybackControlView;
-import com.google.android.exoplayer2.ui.SimpleExoPlayerView;
+import com.google.android.exoplayer2.ui.PlayerControlView;
+import com.google.android.exoplayer2.ui.PlayerView;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
import com.google.android.exoplayer2.util.Util;
@@ -96,6 +96,7 @@ import app.fedilab.android.client.Entities.Status;
import app.fedilab.android.client.Entities.StatusDrawerParams;
import app.fedilab.android.client.TLSSocketFactory;
import app.fedilab.android.drawers.StatusListAdapter;
+import app.fedilab.android.helper.CacheDataSourceFactory;
import app.fedilab.android.helper.CrossActions;
import app.fedilab.android.helper.FullScreenMediaController;
import app.fedilab.android.helper.Helper;
@@ -130,7 +131,7 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
private ScrollView peertube_information_container;
private Peertube peertube;
private TextView toolbar_title;
- private SimpleExoPlayerView playerView;
+ private PlayerView playerView;
private SimpleExoPlayer player;
private boolean fullScreenMode;
private Dialog fullScreenDialog;
@@ -278,7 +279,7 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
peertube_information_container.setVisibility(View.VISIBLE);
}
});
- String user_agent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, null);
+ String user_agent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT);
if (user_agent != null) {
webview_video.getSettings().setUserAgentString(user_agent);
}
@@ -369,40 +370,7 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
case R.id.action_comment:
if (MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA) {
Toasty.info(PeertubeActivity.this, getString(R.string.retrieve_remote_status), Toast.LENGTH_LONG).show();
- new AsyncTask() {
-
- private List remoteStatuses;
- private WeakReference contextReference = new WeakReference<>(PeertubeActivity.this);
-
- @Override
- protected Void doInBackground(Void... voids) {
-
- if (peertube != null) {
- APIResponse search = new API(contextReference.get()).search("https://" + peertube.getAccount().getHost() + "/videos/watch/" + peertube.getUuid());
- if (search != null && search.getResults() != null) {
- remoteStatuses = search.getResults().getStatuses();
- }
- }
- return null;
- }
-
- @Override
- protected void onPostExecute(Void result) {
- Intent intent = new Intent(contextReference.get(), TootActivity.class);
- Bundle b = new Bundle();
- if (remoteStatuses == null || remoteStatuses.size() == 0) {
- Toasty.error(contextReference.get(), getString(R.string.toast_error), Toast.LENGTH_SHORT).show();
- return;
- }
- if (remoteStatuses.get(0).getReblog() != null) {
- b.putParcelable("tootReply", remoteStatuses.get(0).getReblog());
- } else {
- b.putParcelable("tootReply", remoteStatuses.get(0));
- }
- intent.putExtras(b); //Put your id to your next Intent
- contextReference.get().startActivity(intent);
- }
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ new commentTask(new WeakReference<>(PeertubeActivity.this), peertube).execute();
} else if (MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PEERTUBE) {
if (!peertube.isCommentsEnabled()) {
Toasty.info(PeertubeActivity.this, getString(R.string.comment_no_allowed_peertube), Toast.LENGTH_LONG).show();
@@ -443,6 +411,52 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
}
}
+ private static class commentTask extends AsyncTask{
+
+ private WeakReference contextReference;
+ private Peertube peertube;
+
+ commentTask(WeakReference contextReference, Peertube peertube){
+ this.peertube = peertube;
+ this.contextReference = contextReference;
+ }
+
+ @Override
+ protected app.fedilab.android.client.Entities.Status doInBackground(Void... voids) {
+
+ List remoteStatuses = null;
+ if (peertube != null) {
+ APIResponse search = new API(contextReference.get()).search("https://" + peertube.getAccount().getHost() + "/videos/watch/" + peertube.getUuid());
+ if (search != null && search.getResults() != null) {
+ remoteStatuses = search.getResults().getStatuses();
+ }
+ }
+ if( remoteStatuses != null && remoteStatuses.size() > 0) {
+ return remoteStatuses.get(0);
+ }else {
+ return null;
+ }
+ }
+
+ @Override
+ protected void onPostExecute(app.fedilab.android.client.Entities.Status remoteStatuses) {
+ Intent intent = new Intent(contextReference.get(), TootActivity.class);
+ Bundle b = new Bundle();
+ if (remoteStatuses == null) {
+ Toasty.error(contextReference.get(), contextReference.get().getString(R.string.toast_error), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if (remoteStatuses.getReblog() != null) {
+ b.putParcelable("tootReply", remoteStatuses.getReblog());
+ } else {
+ b.putParcelable("tootReply", remoteStatuses);
+ }
+ intent.putExtras(b); //Put your id to your next Intent
+ contextReference.get().startActivity(intent);
+ }
+ }
+
+
public FullScreenMediaController.fullscreen getFullscreen() {
return fullscreen;
}
@@ -583,16 +597,24 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
if (mode == Helper.VIDEO_MODE_DIRECT) {
- DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(PeertubeActivity.this,
- Util.getUserAgent(PeertubeActivity.this, "Mastalab"), null);
- ExtractorMediaSource videoSource = new ExtractorMediaSource.Factory(dataSourceFactory)
- .createMediaSource(Uri.parse(apiResponse.getPeertubes().get(0).getFileUrl(null, apiResponse.getPeertubes().get(0).isStreamService())));
+ String userAgent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT);
+ int video_cache = sharedpreferences.getInt(Helper.SET_VIDEO_CACHE, Helper.DEFAULT_VIDEO_CACHE_MB);
+ ProgressiveMediaSource videoSource;
+ if( video_cache == 0) {
+ DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(PeertubeActivity.this,
+ Util.getUserAgent(PeertubeActivity.this, userAgent), null);
+ videoSource = new ProgressiveMediaSource.Factory(dataSourceFactory)
+ .createMediaSource(Uri.parse(apiResponse.getPeertubes().get(0).getFileUrl(null, apiResponse.getPeertubes().get(0).isStreamService())));
+ }else{
+ CacheDataSourceFactory cacheDataSourceFactory = new CacheDataSourceFactory(PeertubeActivity.this, video_cache * 1024 * 1024, 5 * 1024 * 1024);
+ videoSource = new ProgressiveMediaSource.Factory(cacheDataSourceFactory)
+ .createMediaSource(Uri.parse(apiResponse.getPeertubes().get(0).getFileUrl(null, apiResponse.getPeertubes().get(0).isStreamService())));
+ }
player = ExoPlayerFactory.newSimpleInstance(PeertubeActivity.this);
playerView.setPlayer(player);
loader.setVisibility(View.GONE);
-
player.prepare(videoSource);
player.setPlayWhenReady(true);
}
@@ -777,7 +799,7 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
if (playerView != null) {
loader.setVisibility(View.VISIBLE);
long position = player.getCurrentPosition();
- PlaybackControlView controlView = playerView.findViewById(R.id.exo_controller);
+ PlayerControlView controlView = playerView.findViewById(R.id.exo_controller);
resolution = controlView.findViewById(R.id.resolution);
resolution.setText(String.format("%sp", res));
if (mode == Helper.VIDEO_MODE_DIRECT) {
@@ -786,11 +808,19 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
player = ExoPlayerFactory.newSimpleInstance(PeertubeActivity.this);
playerView.setPlayer(player);
loader.setVisibility(View.GONE);
- DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(PeertubeActivity.this,
- Util.getUserAgent(PeertubeActivity.this, "Mastalab"), null);
-
- ExtractorMediaSource videoSource = new ExtractorMediaSource.Factory(dataSourceFactory)
- .createMediaSource(Uri.parse(peertube.getFileUrl(res, peertube.isStreamService())));
+ String userAgent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT);
+ int video_cache = sharedpreferences.getInt(Helper.SET_VIDEO_CACHE, Helper.DEFAULT_VIDEO_CACHE_MB);
+ ProgressiveMediaSource videoSource;
+ if( video_cache == 0) {
+ DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(PeertubeActivity.this,
+ Util.getUserAgent(PeertubeActivity.this, userAgent), null);
+ videoSource = new ProgressiveMediaSource.Factory(dataSourceFactory)
+ .createMediaSource(Uri.parse(peertube.getFileUrl(res, peertube.isStreamService())));
+ }else{
+ CacheDataSourceFactory cacheDataSourceFactory = new CacheDataSourceFactory(PeertubeActivity.this, video_cache * 1024 * 1024, 5 * 1024 * 1024);
+ videoSource = new ProgressiveMediaSource.Factory(cacheDataSourceFactory)
+ .createMediaSource(Uri.parse(peertube.getFileUrl(res, peertube.isStreamService())));
+ }
player.prepare(videoSource);
player.seekTo(0, position);
player.setPlayWhenReady(true);
@@ -842,7 +872,7 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
private void initFullscreenButton() {
- PlaybackControlView controlView = playerView.findViewById(R.id.exo_controller);
+ PlayerControlView controlView = playerView.findViewById(R.id.exo_controller);
fullScreenIcon = controlView.findViewById(R.id.exo_fullscreen_icon);
View fullScreenButton = controlView.findViewById(R.id.exo_fullscreen_button);
fullScreenButton.setOnClickListener(v -> {
@@ -854,7 +884,7 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
}
private void initResolution() {
- PlaybackControlView controlView = playerView.findViewById(R.id.exo_controller);
+ PlayerControlView controlView = playerView.findViewById(R.id.exo_controller);
resolution = controlView.findViewById(R.id.resolution);
resolution.setText(String.format("%sp", peertube.getResolution().get(0)));
resolution.setOnClickListener(v -> displayResolution());
diff --git a/app/src/main/java/app/fedilab/android/activities/SettingsActivity.java b/app/src/main/java/app/fedilab/android/activities/SettingsActivity.java
index 55495958c..9be6379ca 100644
--- a/app/src/main/java/app/fedilab/android/activities/SettingsActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/SettingsActivity.java
@@ -154,7 +154,7 @@ public class SettingsActivity extends BaseActivity {
}
@Override
- public void onDestroy(){
+ public void onDestroy() {
super.onDestroy();
}
diff --git a/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java b/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java
index c920816e1..f360dcc3c 100644
--- a/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java
@@ -125,7 +125,7 @@ public class WebviewConnectActivity extends BaseActivity {
webView = findViewById(R.id.webviewConnect);
clearCookies(WebviewConnectActivity.this);
webView.getSettings().setJavaScriptEnabled(true);
- String user_agent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, null);
+ String user_agent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT);
if (user_agent != null) {
webView.getSettings().setUserAgentString(user_agent);
}
diff --git a/app/src/main/java/app/fedilab/android/asynctasks/DownloadTrackingDomainsAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/DownloadTrackingDomainsAsyncTask.java
index e1ad99c1b..8dfb2132f 100644
--- a/app/src/main/java/app/fedilab/android/asynctasks/DownloadTrackingDomainsAsyncTask.java
+++ b/app/src/main/java/app/fedilab/android/asynctasks/DownloadTrackingDomainsAsyncTask.java
@@ -33,7 +33,6 @@ import java.util.List;
import javax.net.ssl.HttpsURLConnection;
import app.fedilab.android.R;
-import app.fedilab.android.helper.Helper;
import app.fedilab.android.sqlite.DomainBlockDAO;
import app.fedilab.android.sqlite.Sqlite;
import es.dmoral.toasty.Toasty;
diff --git a/app/src/main/java/app/fedilab/android/client/API.java b/app/src/main/java/app/fedilab/android/client/API.java
index b49b2b44c..312dec3ac 100644
--- a/app/src/main/java/app/fedilab/android/client/API.java
+++ b/app/src/main/java/app/fedilab/android/client/API.java
@@ -2205,7 +2205,7 @@ public class API {
JSONObject resobj = new JSONObject(response);
JSONObject jsonObject = resobj.getJSONObject("software");
String name = jsonObject.getString("name").toUpperCase();
- if( name.compareTo("CORGIDON") == 0 ){
+ if (name.compareTo("CORGIDON") == 0) {
name = "MASTODON";
}
instanceNodeInfo.setName(name);
@@ -3699,14 +3699,16 @@ public class API {
if (apiResponse.getStatuses() != null && apiResponse.getStatuses().size() > 0) {
for (Status status : apiResponse.getStatuses()) {
if (status.getMedia_attachments() != null) {
- String statusSerialized = Helper.statusToStringStorage(status);
- for (Attachment attachment : status.getMedia_attachments()) {
- Status newStatus = Helper.restoreStatusFromString(statusSerialized);
- if (newStatus == null)
- break;
- newStatus.setArt_attachment(attachment);
- apiResponseReply.getStatuses().add(newStatus);
- }
+ try {
+ String statusSerialized = Helper.statusToStringStorage(status);
+ for (Attachment attachment : status.getMedia_attachments()) {
+ Status newStatus = Helper.restoreStatusFromString(statusSerialized);
+ if (newStatus == null)
+ break;
+ newStatus.setArt_attachment(attachment);
+ apiResponseReply.getStatuses().add(newStatus);
+ }
+ }catch (Exception ignored){}
}
}
}
diff --git a/app/src/main/java/app/fedilab/android/client/Entities/ManageTimelines.java b/app/src/main/java/app/fedilab/android/client/Entities/ManageTimelines.java
index fb2ec3b98..a59f94d7d 100644
--- a/app/src/main/java/app/fedilab/android/client/Entities/ManageTimelines.java
+++ b/app/src/main/java/app/fedilab/android/client/Entities/ManageTimelines.java
@@ -500,10 +500,11 @@ public class ManageTimelines {
if (mPageReferenceMap != null) {
FragmentTransaction fragTransaction = ((MainActivity) context).getSupportFragmentManager().beginTransaction();
DisplayStatusFragment displayStatusFragment = (DisplayStatusFragment) mPageReferenceMap.get(tl.getPosition());
- assert displayStatusFragment != null;
- fragTransaction.detach(displayStatusFragment);
- fragTransaction.attach(displayStatusFragment);
- fragTransaction.commit();
+ if (displayStatusFragment != null) {
+ fragTransaction.detach(displayStatusFragment);
+ fragTransaction.attach(displayStatusFragment);
+ fragTransaction.commit();
+ }
}
}
});
diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Status.java b/app/src/main/java/app/fedilab/android/client/Entities/Status.java
index 9a6a00000..edd0862c5 100644
--- a/app/src/main/java/app/fedilab/android/client/Entities/Status.java
+++ b/app/src/main/java/app/fedilab/android/client/Entities/Status.java
@@ -310,31 +310,42 @@ public class Status implements Parcelable {
}
}
+ matcher = Helper.bibliogramPattern.matcher(content);
+ boolean bibliogram = sharedpreferences.getBoolean(Helper.SET_BIBLIOGRAM, false);
+ if (bibliogram) {
+ while (matcher.find()) {
+ final String bibliogram_directory = matcher.group(2);
+ String bibliogramHost = sharedpreferences.getString(Helper.SET_BIBLIOGRAM_HOST, Helper.DEFAULT_BIBLIOGRAM_HOST).toLowerCase();
+ content = content.replaceAll("https://" + Pattern.quote(matcher.group()), Matcher.quoteReplacement("https://" + bibliogramHost + bibliogram_directory));
+ content = content.replaceAll(">" + Pattern.quote(matcher.group()), Matcher.quoteReplacement(">" + bibliogramHost + bibliogram_directory));
+ }
+ }
+
matcher = Helper.ouichesPattern.matcher(content);
while (matcher.find()) {
- Attachment attachment = new Attachment();
- attachment.setType("audio");
- String tag = matcher.group(1);
- attachment.setId(tag);
- if( tag == null){
- continue;
- }
- attachment.setRemote_url("http://ouich.es/mp3/"+tag+".mp3");
- attachment.setUrl("http://ouich.es/mp3/"+tag+".mp3");
- if( status.getMedia_attachments() == null) {
- status.setMedia_attachments(new ArrayList<>());
- }
- boolean alreadyAdded = false;
- for(Attachment at: status.getMedia_attachments()){
- if( tag.compareTo(at.getId()) == 0 ){
- alreadyAdded = true;
- break;
- }
- }
- if( !alreadyAdded) {
- status.getMedia_attachments().add(attachment);
- }
+ Attachment attachment = new Attachment();
+ attachment.setType("audio");
+ String tag = matcher.group(1);
+ attachment.setId(tag);
+ if (tag == null) {
+ continue;
+ }
+ attachment.setRemote_url("http://ouich.es/mp3/" + tag + ".mp3");
+ attachment.setUrl("http://ouich.es/mp3/" + tag + ".mp3");
+ if (status.getMedia_attachments() == null) {
+ status.setMedia_attachments(new ArrayList<>());
+ }
+ boolean alreadyAdded = false;
+ for (Attachment at : status.getMedia_attachments()) {
+ if (tag.compareTo(at.getId()) == 0) {
+ alreadyAdded = true;
+ break;
+ }
+ }
+ if (!alreadyAdded) {
+ status.getMedia_attachments().add(attachment);
+ }
}
Pattern aLink = Pattern.compile("]*(((?!");
diff --git a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java
index a23d15d46..7af1c7045 100644
--- a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java
+++ b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java
@@ -2289,6 +2289,15 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
url = url.replaceAll("https://" + Pattern.quote(matcher.group()), Matcher.quoteReplacement("https://" + nitterHost + nitter_directory));
}
}
+ boolean bibliogram = sharedpreferences.getBoolean(Helper.SET_BIBLIOGRAM, false);
+ if (bibliogram) {
+ Matcher matcher = Helper.bibliogramPattern.matcher(url);
+ while (matcher.find()) {
+ final String bibliogram_directory = matcher.group(2);
+ String bibliogramHost = sharedpreferences.getString(Helper.SET_BIBLIOGRAM_HOST, Helper.DEFAULT_BIBLIOGRAM_HOST).toLowerCase();
+ url = url.replaceAll("https://" + Pattern.quote(matcher.group()), Matcher.quoteReplacement("https://" + bibliogramHost + bibliogram_directory));
+ }
+ }
Helper.openBrowser(context, url);
});
} else if (card.getType().toLowerCase().equals("video") && (display_video_preview || (type == RetrieveFeedsAsyncTask.Type.CONTEXT && viewHolder.getAdapterPosition() == conversationPosition))) {
@@ -2298,7 +2307,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
.into(holder.webview_preview_card);
holder.status_cardview.setVisibility(View.GONE);
holder.status_cardview_video.setVisibility(View.VISIBLE);
- String user_agent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, null);
+ String user_agent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT);
if (user_agent != null) {
holder.status_cardview_webview.getSettings().setUserAgentString(user_agent);
}
diff --git a/app/src/main/java/app/fedilab/android/fragments/ColorSettingsFragment.java b/app/src/main/java/app/fedilab/android/fragments/ColorSettingsFragment.java
index 7dcbe3ad7..a94eadc63 100644
--- a/app/src/main/java/app/fedilab/android/fragments/ColorSettingsFragment.java
+++ b/app/src/main/java/app/fedilab/android/fragments/ColorSettingsFragment.java
@@ -275,7 +275,7 @@ public class ColorSettingsFragment extends PreferenceFragmentCompat implements S
entryValues[2] = String.valueOf(Helper.THEME_BLACK);
pref_theme_picker.setEntries(entries);
int default_theme_value;
- switch (theme){
+ switch (theme) {
case Helper.THEME_LIGHT:
default_theme_value = 1;
break;
diff --git a/app/src/main/java/app/fedilab/android/fragments/ContentSettingsFragment.java b/app/src/main/java/app/fedilab/android/fragments/ContentSettingsFragment.java
index c421d3db7..d8c00e20e 100644
--- a/app/src/main/java/app/fedilab/android/fragments/ContentSettingsFragment.java
+++ b/app/src/main/java/app/fedilab/android/fragments/ContentSettingsFragment.java
@@ -15,6 +15,7 @@ package app.fedilab.android.fragments;
* see . */
+import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.TimePickerDialog;
import android.content.ComponentName;
@@ -54,7 +55,6 @@ import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.SwitchCompat;
import androidx.fragment.app.Fragment;
@@ -345,6 +345,7 @@ public class ContentSettingsFragment extends Fragment implements OnRetrieveRemot
}
context = getActivity();
+ assert context != null;
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
@@ -468,9 +469,9 @@ public class ContentSettingsFragment extends Fragment implements OnRetrieveRemot
Button update_tracking_domains = rootView.findViewById(R.id.update_tracking_domains);
- update_tracking_domains.setOnClickListener(v -> {
- new DownloadTrackingDomainsAsyncTask(Objects.requireNonNull(getActivity()), update_tracking_domains).execute();
- });
+ update_tracking_domains.setOnClickListener(v ->
+ new DownloadTrackingDomainsAsyncTask(Objects.requireNonNull(getActivity()), update_tracking_domains).execute()
+ );
Spinner set_attachment_group = rootView.findViewById(R.id.set_attachment_group);
@@ -837,7 +838,7 @@ public class ContentSettingsFragment extends Fragment implements OnRetrieveRemot
TextView set_user_agent = rootView.findViewById(R.id.set_user_agent);
- String user_agent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, null);
+ String user_agent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT);
if (user_agent != null) {
set_user_agent.setText(user_agent);
@@ -922,6 +923,55 @@ public class ContentSettingsFragment extends Fragment implements OnRetrieveRemot
}
});
+
+ TextView set_bibliogram_host = rootView.findViewById(R.id.set_bibliogram_host);
+ boolean bibliogram = sharedpreferences.getBoolean(Helper.SET_BIBLIOGRAM, false);
+ final SwitchCompat set_bibliogram = rootView.findViewById(R.id.set_bibliogram);
+ set_bibliogram.setChecked(bibliogram);
+
+ set_bibliogram.setOnClickListener(v -> {
+ SharedPreferences.Editor editor = sharedpreferences.edit();
+ editor.putBoolean(Helper.SET_BIBLIOGRAM, set_bibliogram.isChecked());
+ editor.apply();
+ if (set_bibliogram.isChecked()) {
+ set_bibliogram_host.setVisibility(View.VISIBLE);
+ } else {
+ set_bibliogram_host.setVisibility(View.GONE);
+ }
+ });
+ if (bibliogram) {
+ set_bibliogram_host.setVisibility(View.VISIBLE);
+ } else {
+ set_bibliogram_host.setVisibility(View.GONE);
+ }
+
+ String bibliogramHost = sharedpreferences.getString(Helper.SET_BIBLIOGRAM_HOST, null);
+ if (bibliogramHost != null) {
+ set_bibliogram_host.setText(bibliogramHost);
+ }
+ set_bibliogram_host.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ SharedPreferences.Editor editor = sharedpreferences.edit();
+ if (s.toString().trim().length() > 0) {
+ editor.putString(Helper.SET_BIBLIOGRAM_HOST, s.toString().toLowerCase().trim());
+ } else {
+ editor.putString(Helper.SET_BIBLIOGRAM_HOST, null);
+ }
+ editor.apply();
+ }
+ });
+
boolean long_press_media = sharedpreferences.getBoolean(Helper.SET_LONG_PRESS_MEDIA, true);
final SwitchCompat set_long_press_media = rootView.findViewById(R.id.set_long_press_media);
set_long_press_media.setChecked(long_press_media);
@@ -976,6 +1026,32 @@ public class ContentSettingsFragment extends Fragment implements OnRetrieveRemot
getActivity().recreate();
});
+ int video_cache_size = sharedpreferences.getInt(Helper.SET_VIDEO_CACHE, Helper.DEFAULT_VIDEO_CACHE_MB);
+ SeekBar set_video_cache_size = rootView.findViewById(R.id.set_video_cache_size);
+ set_video_cache_size.setMax(5*Helper.DEFAULT_VIDEO_CACHE_MB);
+ set_video_cache_size.setProgress(video_cache_size);
+ TextView set_video_cache = rootView.findViewById(R.id.set_video_cache);
+ set_video_cache.setText(String.valueOf(video_cache_size));
+ set_video_cache_size.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
+ @Override
+ public void onStopTrackingTouch(SeekBar seekBar) {
+ }
+
+ @Override
+ public void onStartTrackingTouch(SeekBar seekBar) {
+ }
+
+ @Override
+ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
+ set_video_cache.setText(String.valueOf(progress));
+ SharedPreferences.Editor editor = sharedpreferences.edit();
+ editor.putInt(Helper.SET_VIDEO_CACHE, progress);
+ editor.apply();
+ }
+ });
+
+
+
int truncate_toots_size = sharedpreferences.getInt(Helper.SET_TRUNCATE_TOOTS_SIZE, 0);
SeekBar set_truncate_size = rootView.findViewById(R.id.set_truncate_size);
set_truncate_size.setMax(20);
@@ -1543,40 +1619,37 @@ public class ContentSettingsFragment extends Fragment implements OnRetrieveRemot
final ArrayAdapter arrayAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, stringArray);
dialog.setNegativeButton(R.string.cancel, (dialog1, position) -> dialog1.dismiss());
- dialog.setAdapter(arrayAdapter, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int position) {
- String visibility = "public";
+ dialog.setAdapter(arrayAdapter, (dialog12, position) -> {
+ String visibility = "public";
- switch (position) {
- case 0:
- visibility = "public";
- set_toot_visibility.setImageResource(R.drawable.ic_public);
- break;
- case 1:
- visibility = "unlisted";
- set_toot_visibility.setImageResource(R.drawable.ic_lock_open);
- break;
- case 2:
- visibility = "private";
- set_toot_visibility.setImageResource(R.drawable.ic_lock_outline);
- break;
- case 3:
- visibility = "direct";
- set_toot_visibility.setImageResource(R.drawable.ic_mail_outline);
- break;
- }
- if (account != null) {
- SharedPreferences.Editor editor = sharedpreferences12.edit();
- editor.putString(Helper.SET_TOOT_VISIBILITY + "@" + account.getAcct() + "@" + account.getInstance(), visibility);
- editor.apply();
- Toasty.info(context, context.getString(R.string.toast_visibility_changed, "@" + account.getAcct() + "@" + account.getInstance()), Toast.LENGTH_SHORT).show();
- } else {
- Toasty.error(context, context.getString(R.string.toast_error), Toast.LENGTH_LONG).show();
- }
-
- dialog.dismiss();
+ switch (position) {
+ case 0:
+ visibility = "public";
+ set_toot_visibility.setImageResource(R.drawable.ic_public);
+ break;
+ case 1:
+ visibility = "unlisted";
+ set_toot_visibility.setImageResource(R.drawable.ic_lock_open);
+ break;
+ case 2:
+ visibility = "private";
+ set_toot_visibility.setImageResource(R.drawable.ic_lock_outline);
+ break;
+ case 3:
+ visibility = "direct";
+ set_toot_visibility.setImageResource(R.drawable.ic_mail_outline);
+ break;
}
+ if (account != null) {
+ SharedPreferences.Editor editor = sharedpreferences12.edit();
+ editor.putString(Helper.SET_TOOT_VISIBILITY + "@" + account.getAcct() + "@" + account.getInstance(), visibility);
+ editor.apply();
+ Toasty.info(context, context.getString(R.string.toast_visibility_changed, "@" + account.getAcct() + "@" + account.getInstance()), Toast.LENGTH_SHORT).show();
+ } else {
+ Toasty.error(context, context.getString(R.string.toast_error), Toast.LENGTH_LONG).show();
+ }
+
+ dialog12.dismiss();
});
dialog.show();
});
@@ -2175,6 +2248,7 @@ public class ContentSettingsFragment extends Fragment implements OnRetrieveRemot
set_change_locale.setSelection(positionSpinnerLanguage);
countLanguage = 0;
set_change_locale.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @SuppressLint("ApplySharedPref")
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
if (countLanguage > 0) {
diff --git a/app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java b/app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java
index 36e6e4313..1c963ba4a 100644
--- a/app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java
+++ b/app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java
@@ -51,8 +51,9 @@ import com.github.chrisbanes.photoview.PhotoView;
import com.google.android.exoplayer2.ExoPlayerFactory;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.SimpleExoPlayer;
-import com.google.android.exoplayer2.source.ExtractorMediaSource;
-import com.google.android.exoplayer2.ui.SimpleExoPlayerView;
+
+import com.google.android.exoplayer2.source.ProgressiveMediaSource;
+import com.google.android.exoplayer2.ui.PlayerView;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
import com.google.android.exoplayer2.util.Util;
@@ -70,6 +71,7 @@ import app.fedilab.android.R;
import app.fedilab.android.activities.SlideMediaActivity;
import app.fedilab.android.client.Entities.Attachment;
import app.fedilab.android.client.TLSSocketFactory;
+import app.fedilab.android.helper.CacheDataSourceFactory;
import app.fedilab.android.helper.Helper;
import app.fedilab.android.webview.CustomWebview;
import app.fedilab.android.webview.MastalabWebChromeClient;
@@ -132,7 +134,7 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl
ImageView next = rootView.findViewById(R.id.media_next);
imageView = rootView.findViewById(R.id.media_picture);
- SimpleExoPlayerView videoView = rootView.findViewById(R.id.media_video);
+ PlayerView videoView = rootView.findViewById(R.id.media_video);
if (theme == Helper.THEME_BLACK) {
changeDrawableColor(context, prev, R.color.dark_icon);
changeDrawableColor(context, next, R.color.dark_icon);
@@ -236,10 +238,20 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl
}
videoView.setVisibility(View.VISIBLE);
Uri uri = Uri.parse(url);
- DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(context,
- Util.getUserAgent(context, "Fedilab"), null);
- ExtractorMediaSource videoSource = new ExtractorMediaSource.Factory(dataSourceFactory)
- .createMediaSource(uri);
+
+ String userAgent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT);
+ int video_cache = sharedpreferences.getInt(Helper.SET_VIDEO_CACHE, Helper.DEFAULT_VIDEO_CACHE_MB);
+ ProgressiveMediaSource videoSource;
+ if( video_cache == 0) {
+ DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(context,
+ Util.getUserAgent(context, userAgent), null);
+ videoSource = new ProgressiveMediaSource.Factory(dataSourceFactory)
+ .createMediaSource(uri);
+ }else{
+ CacheDataSourceFactory cacheDataSourceFactory = new CacheDataSourceFactory(context, video_cache * 1024 * 1024, 5 * 1024 * 1024);
+ videoSource = new ProgressiveMediaSource.Factory(cacheDataSourceFactory)
+ .createMediaSource(uri);
+ }
player = ExoPlayerFactory.newSimpleInstance(context);
if (type.toLowerCase().equals("gifv"))
player.setRepeatMode(Player.REPEAT_MODE_ONE);
@@ -278,7 +290,7 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl
webview_video.setWebChromeClient(mastalabWebChromeClient);
webview_video.getSettings().setDomStorageEnabled(true);
webview_video.getSettings().setAppCacheEnabled(true);
- String user_agent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, null);
+ String user_agent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT);
if (user_agent != null) {
webview_video.getSettings().setUserAgentString(user_agent);
}
@@ -453,6 +465,10 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl
}
} catch (Exception ignored) {
}
+ if (timer != null) {
+ timer.cancel();
+ timer = null;
+ }
super.onDestroy();
}
diff --git a/app/src/main/java/app/fedilab/android/helper/CacheDataSourceFactory.java b/app/src/main/java/app/fedilab/android/helper/CacheDataSourceFactory.java
index 71012f898..2ab4f83c0 100644
--- a/app/src/main/java/app/fedilab/android/helper/CacheDataSourceFactory.java
+++ b/app/src/main/java/app/fedilab/android/helper/CacheDataSourceFactory.java
@@ -1,4 +1,48 @@
package app.fedilab.android.helper;
-public class CacheDataSourceFactory {
-}
+import android.content.Context;
+import android.content.SharedPreferences;
+
+import com.google.android.exoplayer2.database.ExoDatabaseProvider;
+import com.google.android.exoplayer2.upstream.DataSource;
+import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
+import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
+import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory;
+import com.google.android.exoplayer2.upstream.FileDataSource;
+import com.google.android.exoplayer2.upstream.cache.CacheDataSink;
+import com.google.android.exoplayer2.upstream.cache.CacheDataSource;
+import com.google.android.exoplayer2.upstream.cache.LeastRecentlyUsedCacheEvictor;
+import com.google.android.exoplayer2.upstream.cache.SimpleCache;
+
+import java.io.File;
+
+
+public class CacheDataSourceFactory implements DataSource.Factory {
+ private final Context context;
+ private final DefaultDataSourceFactory defaultDatasourceFactory;
+ private final long maxFileSize, maxCacheSize;
+
+ public CacheDataSourceFactory(Context context, long maxCacheSize, long maxFileSize) {
+ super();
+ this.context = context;
+ this.maxCacheSize = maxCacheSize;
+ this.maxFileSize = maxFileSize;
+ SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
+ String userAgent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT);
+ DefaultBandwidthMeter.Builder bandwidthMeterBuilder = new DefaultBandwidthMeter.Builder(context);
+ DefaultBandwidthMeter bandwidthMeter = bandwidthMeterBuilder.build();
+ defaultDatasourceFactory = new DefaultDataSourceFactory(this.context,
+ bandwidthMeter,
+ new DefaultHttpDataSourceFactory(userAgent, bandwidthMeter));
+ }
+
+ @Override
+ public DataSource createDataSource() {
+ LeastRecentlyUsedCacheEvictor evictor = new LeastRecentlyUsedCacheEvictor(maxCacheSize);
+ ExoDatabaseProvider exoDatabaseProvider = new ExoDatabaseProvider(context);
+ SimpleCache simpleCache = new SimpleCache(new File(context.getCacheDir(), "media"), evictor, exoDatabaseProvider);
+ return new CacheDataSource(simpleCache, defaultDatasourceFactory.createDataSource(),
+ new FileDataSource(), new CacheDataSink(simpleCache, maxFileSize),
+ CacheDataSource.FLAG_BLOCK_ON_CACHE | CacheDataSource.FLAG_IGNORE_CACHE_ON_ERROR, null);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java
index c95fb25f6..50f324922 100644
--- a/app/src/main/java/app/fedilab/android/helper/Helper.java
+++ b/app/src/main/java/app/fedilab/android/helper/Helper.java
@@ -320,6 +320,7 @@ public class Helper {
public static final int TOOTS_PER_PAGE = 40;
public static final int ACCOUNTS_PER_PAGE = 40;
public static final int NOTIFICATIONS_PER_PAGE = 30;
+ public static final int DEFAULT_VIDEO_CACHE_MB = 100;
public static final String SET_ATTACHMENT_ACTION = "set_attachment_action";
public static final String SET_TOOT_PER_PAGE = "set_toot_per_page";
public static final String SET_THEME = "set_theme";
@@ -435,6 +436,10 @@ public class Helper {
public static final String SET_NITTER_HOST = "set_nitter_host";
public static final String DEFAULT_NITTER_HOST = "nitter.net";
+ public static final String SET_BIBLIOGRAM = "set_bibliogram";
+ public static final String SET_BIBLIOGRAM_HOST = "set_bibliogram_host";
+ public static final String DEFAULT_BIBLIOGRAM_HOST = "bibliogram.art";
+
public static final String SET_NOTIF_VALIDATION = "set_share_validation";
public static final String SET_NOTIF_VALIDATION_FAV = "set_share_validation_fav";
public static final String SET_WIFI_ONLY = "set_wifi_only";
@@ -462,10 +467,13 @@ public class Helper {
public static final String SET_SECURITY_PROVIDER = "set_security_provider";
public static final String SET_ALLOW_STREAM = "set_allow_stream";
public static final String SET_CUSTOM_USER_AGENT = "set_custom_user_agent";
+ public static final String SET_VIDEO_CACHE = "set_video_cache";
//End points
public static final String EP_AUTHORIZE = "/oauth/authorize";
+
+
//Proxy
public static final String SET_PROXY_ENABLED = "set_proxy_enabled";
public static final String SET_PROXY_TYPE = "set_proxy_type";
@@ -512,6 +520,7 @@ public class Helper {
public static final Pattern twitterPattern = Pattern.compile("((@[\\w]+)@twitter\\.com)");
public static final Pattern youtubePattern = Pattern.compile("(www\\.|m\\.)?(youtube\\.com|youtu\\.be|youtube-nocookie\\.com)/(((?!([\"'<])).)*)");
public static final Pattern nitterPattern = Pattern.compile("(mobile\\.|www\\.)?twitter.com([\\w-/]+)");
+ public static final Pattern bibliogramPattern = Pattern.compile("(m\\.|www\\.)?instagram.com(/p/[\\w-/]+)");
public static final Pattern ouichesPattern = Pattern.compile("https://ouich\\.es/tag/(\\w+)");
public static final Pattern xmppPattern = Pattern.compile("xmpp:[-a-zA-Z0-9+$&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]");
//Default values
@@ -1322,9 +1331,9 @@ public class Helper {
if (url.startsWith("/")) {
url = "https://" + account.getInstance() + account.getAvatar();
}
- if( isValidContextForGlide(activity)) {
+ if (isValidContextForGlide(activity)) {
if (!url.equals("null")) {
- if( url.contains(".gif")) {
+ if (url.contains(".gif")) {
Glide.with(navigationView.getContext())
.asGif()
.load(url)
@@ -1340,7 +1349,7 @@ public class Helper {
}
});
- }else{
+ } else {
Glide.with(navigationView.getContext())
.asDrawable()
.load(url)
@@ -1750,14 +1759,14 @@ public class Helper {
String avatarUrl = !disableGif ? accountChoice.getAvatar() : accountChoice.getAvatar_static();
- if( avatarUrl.contains(".gif")) {
+ if (avatarUrl.contains(".gif")) {
Glide.with(finalIcon.getContext())
.asGif()
.load(avatarUrl)
.thumbnail(0.1f)
.apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners(270)))
.into(finalIcon);
- }else{
+ } else {
Glide.with(activity)
.asDrawable()
.apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners(270)))
@@ -1820,17 +1829,17 @@ public class Helper {
if (!accountChoice.getAvatar().startsWith("http"))
accountChoice.setAvatar("https://" + accountChoice.getInstance() + accountChoice.getAvatar());
ImageView itemIconAcc = new ImageView(activity);
- if (isValidContextForGlide(activity) ) {
+ if (isValidContextForGlide(activity)) {
try {
String avatarUrl = !disableGif ? accountChoice.getAvatar() : accountChoice.getAvatar_static();
- if( avatarUrl.contains(".gif")) {
+ if (avatarUrl.contains(".gif")) {
Glide.with(itemIconAcc.getContext())
.asGif()
.load(avatarUrl)
.thumbnail(0.1f)
.apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners(270)))
.into(itemIconAcc);
- }else{
+ } else {
Glide.with(activity)
.asDrawable()
.apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners(270)))
@@ -2263,10 +2272,8 @@ public class Helper {
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setSupportMultipleWindows(false);
webView.getSettings().setMediaPlaybackRequiresUserGesture(true);
- String user_agent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, null);
- if (user_agent != null) {
- webView.getSettings().setUserAgentString(user_agent);
- }
+ String user_agent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT);
+ webView.getSettings().setUserAgentString(user_agent);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
boolean cookies = sharedpreferences.getBoolean(Helper.SET_COOKIES, false);
CookieManager cookieManager = CookieManager.getInstance();
diff --git a/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java b/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java
index db63cad09..cd796f346 100644
--- a/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java
+++ b/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java
@@ -1,21 +1,26 @@
package app.fedilab.android.helper;
-
+/* Copyright 2019 Thomas Schneider
+ *
+ * This file is a part of Fedilab
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the
+ * GNU General Public License as published by the Free Software Foundation; either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * Fedilab is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+ * Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with Fedilab; if not,
+ * see . */
import android.content.Context;
-import android.content.SharedPreferences;
import android.content.res.Resources;
import android.util.TypedValue;
-import static android.content.Context.MODE_PRIVATE;
public class ThemeHelper {
-
- public static void changeTheme(Context context, int theme) {
- final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
-
- }
-
public static int getAttColor(Context context, int attColor) {
TypedValue typedValue = new TypedValue();
Resources.Theme theme = context.getTheme();
diff --git a/app/src/main/java/app/fedilab/android/imageeditor/ColorPickerAdapter.java b/app/src/main/java/app/fedilab/android/imageeditor/ColorPickerAdapter.java
index 7356faf95..36ca2c91f 100644
--- a/app/src/main/java/app/fedilab/android/imageeditor/ColorPickerAdapter.java
+++ b/app/src/main/java/app/fedilab/android/imageeditor/ColorPickerAdapter.java
@@ -15,6 +15,8 @@ import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
+import org.jetbrains.annotations.NotNull;
+
import java.util.ArrayList;
import java.util.List;
@@ -31,7 +33,7 @@ public class ColorPickerAdapter extends RecyclerView.Adapter colorPickerColors;
private OnColorPickerClickListener onColorPickerClickListener;
- ColorPickerAdapter(@NonNull Context context, @NonNull List colorPickerColors) {
+ private ColorPickerAdapter(@NonNull Context context, @NonNull List colorPickerColors) {
this.context = context;
this.inflater = LayoutInflater.from(context);
this.colorPickerColors = colorPickerColors;
@@ -43,7 +45,7 @@ public class ColorPickerAdapter extends RecyclerView.Adapter getDefaultColors(Context context) {
+ private static List getDefaultColors(Context context) {
ArrayList colorPickerColors = new ArrayList<>();
colorPickerColors.add(ContextCompat.getColor(context, R.color.blue_color_picker));
colorPickerColors.add(ContextCompat.getColor(context, R.color.brown_color_picker));
@@ -60,8 +62,9 @@ public class ColorPickerAdapter extends RecyclerView.Adapter {
+ if (onColorPickerClickListener != null)
+ onColorPickerClickListener.onColorPickerClickListener(colorPickerColors.get(getAdapterPosition()));
});
}
}
diff --git a/app/src/main/java/app/fedilab/android/imageeditor/EmojiBSFragment.java b/app/src/main/java/app/fedilab/android/imageeditor/EmojiBSFragment.java
index 894875914..af3f0c49d 100644
--- a/app/src/main/java/app/fedilab/android/imageeditor/EmojiBSFragment.java
+++ b/app/src/main/java/app/fedilab/android/imageeditor/EmojiBSFragment.java
@@ -18,6 +18,7 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
+import java.util.Objects;
import app.fedilab.android.R;
import ja.burhanrashid52.photoeditor.PhotoEditor;
@@ -46,7 +47,7 @@ public class EmojiBSFragment extends BottomSheetDialogFragment {
@SuppressLint("RestrictedApi")
@Override
- public void setupDialog(Dialog dialog, int style) {
+ public void setupDialog(@NotNull Dialog dialog, int style) {
super.setupDialog(dialog, style);
View contentView = View.inflate(getContext(), R.layout.fragment_bottom_sticker_emoji_dialog, null);
dialog.setContentView(contentView);
@@ -75,7 +76,7 @@ public class EmojiBSFragment extends BottomSheetDialogFragment {
public class EmojiAdapter extends RecyclerView.Adapter {
- ArrayList emojisList = PhotoEditor.getEmojis(getActivity());
+ ArrayList emojisList = PhotoEditor.getEmojis(Objects.requireNonNull(getActivity()));
@NotNull
@Override
@@ -101,14 +102,11 @@ public class EmojiBSFragment extends BottomSheetDialogFragment {
super(itemView);
txtEmoji = itemView.findViewById(R.id.txtEmoji);
- itemView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (mEmojiListener != null) {
- mEmojiListener.onEmojiClick(emojisList.get(getLayoutPosition()));
- }
- dismiss();
+ itemView.setOnClickListener(v -> {
+ if (mEmojiListener != null) {
+ mEmojiListener.onEmojiClick(emojisList.get(getLayoutPosition()));
}
+ dismiss();
});
}
}
diff --git a/app/src/main/java/app/fedilab/android/imageeditor/PropertiesBSFragment.java b/app/src/main/java/app/fedilab/android/imageeditor/PropertiesBSFragment.java
index 0142c03ac..5a7d48087 100644
--- a/app/src/main/java/app/fedilab/android/imageeditor/PropertiesBSFragment.java
+++ b/app/src/main/java/app/fedilab/android/imageeditor/PropertiesBSFragment.java
@@ -51,13 +51,10 @@ public class PropertiesBSFragment extends BottomSheetDialogFragment implements S
rvColor.setLayoutManager(layoutManager);
rvColor.setHasFixedSize(true);
ColorPickerAdapter colorPickerAdapter = new ColorPickerAdapter(Objects.requireNonNull(getActivity()));
- colorPickerAdapter.setOnColorPickerClickListener(new ColorPickerAdapter.OnColorPickerClickListener() {
- @Override
- public void onColorPickerClickListener(int colorCode) {
- if (mProperties != null) {
- dismiss();
- mProperties.onColorChanged(colorCode);
- }
+ colorPickerAdapter.setOnColorPickerClickListener(colorCode -> {
+ if (mProperties != null) {
+ dismiss();
+ mProperties.onColorChanged(colorCode);
}
});
rvColor.setAdapter(colorPickerAdapter);
diff --git a/app/src/main/java/app/fedilab/android/imageeditor/StickerBSFragment.java b/app/src/main/java/app/fedilab/android/imageeditor/StickerBSFragment.java
index e87a1ab37..a2f71520e 100644
--- a/app/src/main/java/app/fedilab/android/imageeditor/StickerBSFragment.java
+++ b/app/src/main/java/app/fedilab/android/imageeditor/StickerBSFragment.java
@@ -51,7 +51,7 @@ public class StickerBSFragment extends BottomSheetDialogFragment {
@SuppressLint("RestrictedApi")
@Override
- public void setupDialog(Dialog dialog, int style) {
+ public void setupDialog(@NotNull Dialog dialog, int style) {
super.setupDialog(dialog, style);
View contentView = View.inflate(getContext(), R.layout.fragment_bottom_sticker_emoji_dialog, null);
dialog.setContentView(contentView);
@@ -76,6 +76,7 @@ public class StickerBSFragment extends BottomSheetDialogFragment {
}
+ @SuppressWarnings("unused")
private String convertEmoji(String emoji) {
String returnedEmoji = "";
try {
@@ -137,16 +138,13 @@ public class StickerBSFragment extends BottomSheetDialogFragment {
super(itemView);
imgSticker = itemView.findViewById(R.id.imgSticker);
- itemView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (mStickerListener != null) {
- mStickerListener.onStickerClick(
- BitmapFactory.decodeResource(getResources(),
- stickerList[getLayoutPosition()]));
- }
- dismiss();
+ itemView.setOnClickListener(v -> {
+ if (mStickerListener != null) {
+ mStickerListener.onStickerClick(
+ BitmapFactory.decodeResource(getResources(),
+ stickerList[getLayoutPosition()]));
}
+ dismiss();
});
}
}
diff --git a/app/src/main/java/app/fedilab/android/imageeditor/TextEditorDialogFragment.java b/app/src/main/java/app/fedilab/android/imageeditor/TextEditorDialogFragment.java
index e65dcd382..2e6c88b12 100644
--- a/app/src/main/java/app/fedilab/android/imageeditor/TextEditorDialogFragment.java
+++ b/app/src/main/java/app/fedilab/android/imageeditor/TextEditorDialogFragment.java
@@ -32,10 +32,9 @@ import app.fedilab.android.R;
public class TextEditorDialogFragment extends DialogFragment {
public static final String TAG = TextEditorDialogFragment.class.getSimpleName();
- public static final String EXTRA_INPUT_TEXT = "extra_input_text";
- public static final String EXTRA_COLOR_CODE = "extra_color_code";
+ private static final String EXTRA_INPUT_TEXT = "extra_input_text";
+ private static final String EXTRA_COLOR_CODE = "extra_color_code";
private EditText mAddTextEditText;
- private TextView mAddTextDoneTextView;
private InputMethodManager mInputMethodManager;
private int mColorCode;
private TextEditor mTextEditor;
@@ -64,7 +63,7 @@ public class TextEditorDialogFragment extends DialogFragment {
super.onStart();
Dialog dialog = getDialog();
//Make dialog full screen with transparent background
- if (dialog != null) {
+ if (dialog != null && dialog.getWindow() != null) {
int width = ViewGroup.LayoutParams.MATCH_PARENT;
int height = ViewGroup.LayoutParams.MATCH_PARENT;
dialog.getWindow().setLayout(width, height);
@@ -82,41 +81,39 @@ public class TextEditorDialogFragment extends DialogFragment {
public void onViewCreated(@NotNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mAddTextEditText = view.findViewById(R.id.add_text_edit_text);
- mInputMethodManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
- mAddTextDoneTextView = view.findViewById(R.id.add_text_done_tv);
+ if( getActivity() != null) {
+ mInputMethodManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+ TextView mAddTextDoneTextView = view.findViewById(R.id.add_text_done_tv);
- //Setup the color picker for text color
- RecyclerView addTextColorPickerRecyclerView = view.findViewById(R.id.add_text_color_picker_recycler_view);
- LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false);
- addTextColorPickerRecyclerView.setLayoutManager(layoutManager);
- addTextColorPickerRecyclerView.setHasFixedSize(true);
- ColorPickerAdapter colorPickerAdapter = new ColorPickerAdapter(getActivity());
- //This listener will change the text color when clicked on any color from picker
- colorPickerAdapter.setOnColorPickerClickListener(new ColorPickerAdapter.OnColorPickerClickListener() {
- @Override
- public void onColorPickerClickListener(int colorCode) {
+
+ //Setup the color picker for text color
+ RecyclerView addTextColorPickerRecyclerView = view.findViewById(R.id.add_text_color_picker_recycler_view);
+ LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false);
+ addTextColorPickerRecyclerView.setLayoutManager(layoutManager);
+ addTextColorPickerRecyclerView.setHasFixedSize(true);
+ ColorPickerAdapter colorPickerAdapter = new ColorPickerAdapter(getActivity());
+ //This listener will change the text color when clicked on any color from picker
+ colorPickerAdapter.setOnColorPickerClickListener(colorCode -> {
mColorCode = colorCode;
mAddTextEditText.setTextColor(colorCode);
- }
- });
- addTextColorPickerRecyclerView.setAdapter(colorPickerAdapter);
- mAddTextEditText.setText(getArguments().getString(EXTRA_INPUT_TEXT));
- mColorCode = getArguments().getInt(EXTRA_COLOR_CODE);
- mAddTextEditText.setTextColor(mColorCode);
- mInputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
+ });
+ addTextColorPickerRecyclerView.setAdapter(colorPickerAdapter);
+ assert getArguments() != null;
+ mAddTextEditText.setText(getArguments().getString(EXTRA_INPUT_TEXT));
+ mColorCode = getArguments().getInt(EXTRA_COLOR_CODE);
+ mAddTextEditText.setTextColor(mColorCode);
+ mInputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
- //Make a callback on activity when user is done with text editing
- mAddTextDoneTextView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- mInputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
+ //Make a callback on activity when user is done with text editing
+ mAddTextDoneTextView.setOnClickListener(view1 -> {
+ mInputMethodManager.hideSoftInputFromWindow(view1.getWindowToken(), 0);
dismiss();
String inputText = mAddTextEditText.getText().toString();
if (!TextUtils.isEmpty(inputText) && mTextEditor != null) {
mTextEditor.onDone(inputText, mColorCode);
}
- }
- });
+ });
+ }
}
diff --git a/app/src/main/java/app/fedilab/android/imageeditor/tools/EditingToolsAdapter.java b/app/src/main/java/app/fedilab/android/imageeditor/tools/EditingToolsAdapter.java
index 81f110251..0ee63e63a 100644
--- a/app/src/main/java/app/fedilab/android/imageeditor/tools/EditingToolsAdapter.java
+++ b/app/src/main/java/app/fedilab/android/imageeditor/tools/EditingToolsAdapter.java
@@ -59,7 +59,7 @@ public class EditingToolsAdapter extends RecyclerView.Adapter mOnItemSelected.onToolSelected(mToolList.get(getLayoutPosition()).mToolType));
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/app/fedilab/android/services/BackupNotificationInDataBaseService.java b/app/src/main/java/app/fedilab/android/services/BackupNotificationInDataBaseService.java
index 60da93afc..16bfdb9a1 100644
--- a/app/src/main/java/app/fedilab/android/services/BackupNotificationInDataBaseService.java
+++ b/app/src/main/java/app/fedilab/android/services/BackupNotificationInDataBaseService.java
@@ -93,21 +93,15 @@ public class BackupNotificationInDataBaseService extends IntentService {
}
boolean finalToastMessage = toastMessage;
if (instanceRunning == 0) {
- new Handler(Looper.getMainLooper()).post(new Runnable() {
- @Override
- public void run() {
- if (finalToastMessage) {
- Toasty.info(BackupNotificationInDataBaseService.this, getString(R.string.data_export_start), Toast.LENGTH_LONG).show();
- }
+ new Handler(Looper.getMainLooper()).post(() -> {
+ if (finalToastMessage) {
+ Toasty.info(BackupNotificationInDataBaseService.this, getString(R.string.data_export_start), Toast.LENGTH_LONG).show();
}
});
} else {
- new Handler(Looper.getMainLooper()).post(new Runnable() {
- @Override
- public void run() {
- if (finalToastMessage) {
- Toasty.info(BackupNotificationInDataBaseService.this, getString(R.string.data_export_running), Toast.LENGTH_LONG).show();
- }
+ new Handler(Looper.getMainLooper()).post(() -> {
+ if (finalToastMessage) {
+ Toasty.info(BackupNotificationInDataBaseService.this, getString(R.string.data_export_running), Toast.LENGTH_LONG).show();
}
});
return;
@@ -161,12 +155,9 @@ public class BackupNotificationInDataBaseService extends IntentService {
e.printStackTrace();
message = getString(R.string.data_export_error, account.getAcct());
final String finalMessage = message;
- new Handler(Looper.getMainLooper()).post(new Runnable() {
- @Override
- public void run() {
- if (finalToastMessage) {
- Toasty.error(BackupNotificationInDataBaseService.this, finalMessage, Toast.LENGTH_LONG).show();
- }
+ new Handler(Looper.getMainLooper()).post(() -> {
+ if (finalToastMessage) {
+ Toasty.error(BackupNotificationInDataBaseService.this, finalMessage, Toast.LENGTH_LONG).show();
}
});
}
diff --git a/app/src/main/java/app/fedilab/android/services/BackupStatusInDataBaseService.java b/app/src/main/java/app/fedilab/android/services/BackupStatusInDataBaseService.java
index 33d57bfc7..cf8e756e7 100644
--- a/app/src/main/java/app/fedilab/android/services/BackupStatusInDataBaseService.java
+++ b/app/src/main/java/app/fedilab/android/services/BackupStatusInDataBaseService.java
@@ -94,21 +94,15 @@ public class BackupStatusInDataBaseService extends IntentService {
}
boolean finalToastMessage = toastMessage;
if (instanceRunning == 0) {
- new Handler(Looper.getMainLooper()).post(new Runnable() {
- @Override
- public void run() {
- if (finalToastMessage) {
- Toasty.info(BackupStatusInDataBaseService.this, getString(R.string.data_export_start), Toast.LENGTH_LONG).show();
- }
+ new Handler(Looper.getMainLooper()).post(() -> {
+ if (finalToastMessage) {
+ Toasty.info(BackupStatusInDataBaseService.this, getString(R.string.data_export_start), Toast.LENGTH_LONG).show();
}
});
} else {
- new Handler(Looper.getMainLooper()).post(new Runnable() {
- @Override
- public void run() {
- if (finalToastMessage) {
- Toasty.info(BackupStatusInDataBaseService.this, getString(R.string.data_export_running), Toast.LENGTH_LONG).show();
- }
+ new Handler(Looper.getMainLooper()).post(() -> {
+ if (finalToastMessage) {
+ Toasty.info(BackupStatusInDataBaseService.this, getString(R.string.data_export_running), Toast.LENGTH_LONG).show();
}
});
return;
@@ -159,12 +153,9 @@ public class BackupStatusInDataBaseService extends IntentService {
e.printStackTrace();
message = getString(R.string.data_export_error, account.getAcct());
final String finalMessage = message;
- new Handler(Looper.getMainLooper()).post(new Runnable() {
- @Override
- public void run() {
- if (finalToastMessage) {
- Toasty.error(BackupStatusInDataBaseService.this, finalMessage, Toast.LENGTH_LONG).show();
- }
+ new Handler(Looper.getMainLooper()).post(() -> {
+ if (finalToastMessage) {
+ Toasty.error(BackupStatusInDataBaseService.this, finalMessage, Toast.LENGTH_LONG).show();
}
});
}
diff --git a/app/src/main/java/app/fedilab/android/services/BackupStatusService.java b/app/src/main/java/app/fedilab/android/services/BackupStatusService.java
index 271bdf276..901b42dbd 100644
--- a/app/src/main/java/app/fedilab/android/services/BackupStatusService.java
+++ b/app/src/main/java/app/fedilab/android/services/BackupStatusService.java
@@ -86,19 +86,9 @@ public class BackupStatusService extends IntentService {
@Override
protected void onHandleIntent(@Nullable Intent intent) {
if (instanceRunning == 0) {
- new Handler(Looper.getMainLooper()).post(new Runnable() {
- @Override
- public void run() {
- Toasty.info(BackupStatusService.this, getString(R.string.data_export_start), Toast.LENGTH_LONG).show();
- }
- });
+ new Handler(Looper.getMainLooper()).post(() -> Toasty.info(BackupStatusService.this, getString(R.string.data_export_start), Toast.LENGTH_LONG).show());
} else {
- new Handler(Looper.getMainLooper()).post(new Runnable() {
- @Override
- public void run() {
- Toasty.info(BackupStatusService.this, getString(R.string.data_export_running), Toast.LENGTH_LONG).show();
- }
- });
+ new Handler(Looper.getMainLooper()).post(() -> Toasty.info(BackupStatusService.this, getString(R.string.data_export_running), Toast.LENGTH_LONG).show());
return;
}
instanceRunning++;
@@ -164,7 +154,6 @@ public class BackupStatusService extends IntentService {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
content = Html.fromHtml(status.getContent(), Html.FROM_HTML_MODE_LEGACY).toString();
else
- //noinspection deprecation
content = Html.fromHtml(status.getContent()).toString();
builder.append("\"").append(content.replace("\"", "'").replace("\n", " ")).append("\"").append(',');
builder.append("\"").append(Helper.shortDateTime(BackupStatusService.this, status.getCreated_at())).append("\"").append(',');
@@ -198,12 +187,7 @@ public class BackupStatusService extends IntentService {
e.printStackTrace();
message = getString(R.string.data_export_error, account.getAcct());
final String finalMessage = message;
- new Handler(Looper.getMainLooper()).post(new Runnable() {
- @Override
- public void run() {
- Toasty.error(BackupStatusService.this, finalMessage, Toast.LENGTH_LONG).show();
- }
- });
+ new Handler(Looper.getMainLooper()).post(() -> Toasty.error(BackupStatusService.this, finalMessage, Toast.LENGTH_LONG).show());
}
instanceRunning--;
diff --git a/app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java b/app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java
index 0dbdf4c72..0aa989132 100644
--- a/app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java
+++ b/app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java
@@ -210,6 +210,7 @@ public class LiveNotificationDelayedService extends Service {
private void startThread(Account accountStream, String key) {
Thread thread = new Thread() {
+ @SuppressWarnings("ConstantConditions")
@Override
public void run() {
while (fetch) {
@@ -236,6 +237,7 @@ public class LiveNotificationDelayedService extends Service {
}
+ @SuppressWarnings("ConstantConditions")
private void taks(Account account) {
String key = account.getUsername() + "@" + account.getInstance();
APIResponse apiResponse;
@@ -433,39 +435,36 @@ public class LiveNotificationDelayedService extends Service {
final String finalMessage = message;
Handler mainHandler = new Handler(Looper.getMainLooper());
Helper.NotifType finalNotifType = notifType;
- Runnable myRunnable = new Runnable() {
- @Override
- public void run() {
- if (finalMessage != null) {
- Glide.with(LiveNotificationDelayedService.this)
- .asBitmap()
- .load(notification.getAccount().getAvatar())
- .listener(new RequestListener() {
- @Override
- public boolean onResourceReady(Bitmap resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) {
- return false;
- }
+ Runnable myRunnable = () -> {
+ if (finalMessage != null) {
+ Glide.with(LiveNotificationDelayedService.this)
+ .asBitmap()
+ .load(notification.getAccount().getAvatar())
+ .listener(new RequestListener() {
+ @Override
+ public boolean onResourceReady(Bitmap resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) {
+ return false;
+ }
- @Override
- public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
- Helper.notify_user(LiveNotificationDelayedService.this, account, intent, BitmapFactory.decodeResource(getResources(),
- getMainLogo(LiveNotificationDelayedService.this)), finalNotifType, "@" + notification.getAccount().getAcct(), finalMessage);
- return false;
- }
- })
- .into(new CustomTarget() {
- @Override
- public void onResourceReady(@NonNull Bitmap resource, Transition super Bitmap> transition) {
+ @Override
+ public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
+ Helper.notify_user(LiveNotificationDelayedService.this, account, intent, BitmapFactory.decodeResource(getResources(),
+ getMainLogo(LiveNotificationDelayedService.this)), finalNotifType, "@" + notification.getAccount().getAcct(), finalMessage);
+ return false;
+ }
+ })
+ .into(new CustomTarget() {
+ @Override
+ public void onResourceReady(@NonNull Bitmap resource, Transition super Bitmap> transition) {
- Helper.notify_user(LiveNotificationDelayedService.this, account, intent, resource, finalNotifType, "@" + notification.getAccount().getAcct(), finalMessage);
- }
+ Helper.notify_user(LiveNotificationDelayedService.this, account, intent, resource, finalNotifType, "@" + notification.getAccount().getAcct(), finalMessage);
+ }
- @Override
- public void onLoadCleared(@Nullable Drawable placeholder) {
+ @Override
+ public void onLoadCleared(@Nullable Drawable placeholder) {
- }
- });
- }
+ }
+ });
}
};
mainHandler.post(myRunnable);
diff --git a/app/src/main/java/app/fedilab/android/services/LiveNotificationService.java b/app/src/main/java/app/fedilab/android/services/LiveNotificationService.java
index 7e3c26c68..25cf2e1fb 100644
--- a/app/src/main/java/app/fedilab/android/services/LiveNotificationService.java
+++ b/app/src/main/java/app/fedilab/android/services/LiveNotificationService.java
@@ -197,7 +197,6 @@ public class LiveNotificationService extends Service implements NetworkStateRece
for (Thread t : Thread.getAllStackTraces().keySet()) {
if (t.getName().startsWith("notif_live_")) {
t.interrupt();
- t = null;
}
}
Thread.currentThread().interrupt();
diff --git a/app/src/main/java/app/fedilab/android/services/StreamingFederatedTimelineService.java b/app/src/main/java/app/fedilab/android/services/StreamingFederatedTimelineService.java
index 03b2aef6a..2ff960735 100644
--- a/app/src/main/java/app/fedilab/android/services/StreamingFederatedTimelineService.java
+++ b/app/src/main/java/app/fedilab/android/services/StreamingFederatedTimelineService.java
@@ -29,7 +29,6 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.koushikdutta.async.http.AsyncHttpClient;
import com.koushikdutta.async.http.AsyncHttpRequest;
import com.koushikdutta.async.http.Headers;
-import com.koushikdutta.async.http.WebSocket;
import org.json.JSONException;
import org.json.JSONObject;
@@ -37,8 +36,6 @@ import org.json.JSONObject;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
-import javax.net.ssl.HttpsURLConnection;
-
import app.fedilab.android.client.API;
import app.fedilab.android.client.Entities.Account;
import app.fedilab.android.client.Entities.Status;
@@ -55,7 +52,6 @@ import app.fedilab.android.sqlite.Sqlite;
public class StreamingFederatedTimelineService extends IntentService {
- private static HttpsURLConnection httpsURLConnection;
static {
Helper.installProvider();
@@ -116,34 +112,27 @@ public class StreamingFederatedTimelineService extends IntentService {
try {
AsyncHttpClient.getDefaultInstance().getSSLSocketMiddleware().setSSLContext(new TLSSocketFactory(accountStream.getInstance()).getSSLContext());
AsyncHttpClient.getDefaultInstance().getSSLSocketMiddleware().setConnectAllAddresses(true);
- } catch (KeyManagementException e) {
- e.printStackTrace();
- } catch (NoSuchAlgorithmException e) {
+ } catch (KeyManagementException | NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
- AsyncHttpClient.getDefaultInstance().websocket("wss://" + accountStream.getInstance() + "/api/v1/streaming/?stream=public&access_token=" + accountStream.getToken(), "wss", new AsyncHttpClient.WebSocketConnectCallback() {
- @Override
- public void onCompleted(Exception ex, WebSocket webSocket) {
- if (ex != null) {
- ex.printStackTrace();
+ AsyncHttpClient.getDefaultInstance().websocket("wss://" + accountStream.getInstance() + "/api/v1/streaming/?stream=public&access_token=" + accountStream.getToken(), "wss", (ex, webSocket) -> {
+ if (ex != null) {
+ ex.printStackTrace();
+ return;
+ }
+ webSocket.setStringCallback(s -> {
+ if (!sharedpreferences.getBoolean(Helper.SHOULD_CONTINUE_STREAMING_FEDERATED + finalAccountStream.getId() + finalAccountStream.getInstance(), true)) {
+ stopSelf();
return;
}
- webSocket.setStringCallback(new WebSocket.StringCallback() {
- public void onStringAvailable(String s) {
- if (!sharedpreferences.getBoolean(Helper.SHOULD_CONTINUE_STREAMING_FEDERATED + finalAccountStream.getId() + finalAccountStream.getInstance(), true)) {
- stopSelf();
- return;
- }
- try {
- JSONObject eventJson = new JSONObject(s);
+ try {
+ JSONObject eventJson = new JSONObject(s);
- onRetrieveStreaming(finalAccountStream, eventJson);
- } catch (JSONException ignored) {
- }
- }
- });
- }
+ onRetrieveStreaming(finalAccountStream, eventJson);
+ } catch (JSONException ignored) {
+ }
+ });
});
}
}
diff --git a/app/src/main/java/app/fedilab/android/services/StreamingHomeTimelineService.java b/app/src/main/java/app/fedilab/android/services/StreamingHomeTimelineService.java
index a263b904a..858727ffa 100644
--- a/app/src/main/java/app/fedilab/android/services/StreamingHomeTimelineService.java
+++ b/app/src/main/java/app/fedilab/android/services/StreamingHomeTimelineService.java
@@ -29,7 +29,6 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.koushikdutta.async.http.AsyncHttpClient;
import com.koushikdutta.async.http.AsyncHttpRequest;
import com.koushikdutta.async.http.Headers;
-import com.koushikdutta.async.http.WebSocket;
import org.json.JSONException;
import org.json.JSONObject;
@@ -37,8 +36,6 @@ import org.json.JSONObject;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
-import javax.net.ssl.HttpsURLConnection;
-
import app.fedilab.android.client.API;
import app.fedilab.android.client.Entities.Account;
import app.fedilab.android.client.Entities.Status;
@@ -55,7 +52,6 @@ import app.fedilab.android.sqlite.Sqlite;
public class StreamingHomeTimelineService extends IntentService {
- private static HttpsURLConnection httpsURLConnection;
static {
Helper.installProvider();
@@ -116,34 +112,27 @@ public class StreamingHomeTimelineService extends IntentService {
try {
AsyncHttpClient.getDefaultInstance().getSSLSocketMiddleware().setSSLContext(new TLSSocketFactory(accountStream.getInstance()).getSSLContext());
AsyncHttpClient.getDefaultInstance().getSSLSocketMiddleware().setConnectAllAddresses(true);
- } catch (KeyManagementException e) {
- e.printStackTrace();
- } catch (NoSuchAlgorithmException e) {
+ } catch (KeyManagementException | NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
- AsyncHttpClient.getDefaultInstance().websocket("wss://" + accountStream.getInstance() + "/api/v1/streaming/?stream=user&access_token=" + accountStream.getToken(), "wss", new AsyncHttpClient.WebSocketConnectCallback() {
- @Override
- public void onCompleted(Exception ex, WebSocket webSocket) {
- if (ex != null) {
- ex.printStackTrace();
+ AsyncHttpClient.getDefaultInstance().websocket("wss://" + accountStream.getInstance() + "/api/v1/streaming/?stream=user&access_token=" + accountStream.getToken(), "wss", (ex, webSocket) -> {
+ if (ex != null) {
+ ex.printStackTrace();
+ return;
+ }
+ webSocket.setStringCallback(s -> {
+ if (!sharedpreferences.getBoolean(Helper.SHOULD_CONTINUE_STREAMING_HOME + finalAccountStream.getId() + finalAccountStream.getInstance(), true)) {
+ stopSelf();
return;
}
- webSocket.setStringCallback(new WebSocket.StringCallback() {
- public void onStringAvailable(String s) {
- if (!sharedpreferences.getBoolean(Helper.SHOULD_CONTINUE_STREAMING_HOME + finalAccountStream.getId() + finalAccountStream.getInstance(), true)) {
- stopSelf();
- return;
- }
- try {
- JSONObject eventJson = new JSONObject(s);
+ try {
+ JSONObject eventJson = new JSONObject(s);
- onRetrieveStreaming(finalAccountStream, eventJson);
- } catch (JSONException ignored) {
- }
- }
- });
- }
+ onRetrieveStreaming(finalAccountStream, eventJson);
+ } catch (JSONException ignored) {
+ }
+ });
});
}
}
diff --git a/app/src/main/java/app/fedilab/android/services/StreamingLocalTimelineService.java b/app/src/main/java/app/fedilab/android/services/StreamingLocalTimelineService.java
index 4cd1be065..ae9a2f7ea 100644
--- a/app/src/main/java/app/fedilab/android/services/StreamingLocalTimelineService.java
+++ b/app/src/main/java/app/fedilab/android/services/StreamingLocalTimelineService.java
@@ -29,7 +29,6 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.koushikdutta.async.http.AsyncHttpClient;
import com.koushikdutta.async.http.AsyncHttpRequest;
import com.koushikdutta.async.http.Headers;
-import com.koushikdutta.async.http.WebSocket;
import org.json.JSONException;
import org.json.JSONObject;
@@ -37,8 +36,6 @@ import org.json.JSONObject;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
-import javax.net.ssl.HttpsURLConnection;
-
import app.fedilab.android.client.API;
import app.fedilab.android.client.Entities.Account;
import app.fedilab.android.client.Entities.Status;
@@ -55,7 +52,6 @@ import app.fedilab.android.sqlite.Sqlite;
public class StreamingLocalTimelineService extends IntentService {
- private static HttpsURLConnection httpsURLConnection;
static {
Helper.installProvider();
@@ -117,33 +113,26 @@ public class StreamingLocalTimelineService extends IntentService {
try {
AsyncHttpClient.getDefaultInstance().getSSLSocketMiddleware().setSSLContext(new TLSSocketFactory(accountStream.getInstance()).getSSLContext());
AsyncHttpClient.getDefaultInstance().getSSLSocketMiddleware().setConnectAllAddresses(true);
- } catch (KeyManagementException e) {
- e.printStackTrace();
- } catch (NoSuchAlgorithmException e) {
+ } catch (KeyManagementException | NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
- AsyncHttpClient.getDefaultInstance().websocket("wss://" + accountStream.getInstance() + "/api/v1/streaming/?stream=public:local&access_token=" + accountStream.getToken(), "wss", new AsyncHttpClient.WebSocketConnectCallback() {
- @Override
- public void onCompleted(Exception ex, WebSocket webSocket) {
- if (ex != null) {
- ex.printStackTrace();
+ AsyncHttpClient.getDefaultInstance().websocket("wss://" + accountStream.getInstance() + "/api/v1/streaming/?stream=public:local&access_token=" + accountStream.getToken(), "wss", (ex, webSocket) -> {
+ if (ex != null) {
+ ex.printStackTrace();
+ return;
+ }
+ webSocket.setStringCallback(s -> {
+ if (!sharedpreferences.getBoolean(Helper.SHOULD_CONTINUE_STREAMING_LOCAL + finalAccountStream.getId() + finalAccountStream.getInstance(), true)) {
+ stopSelf();
return;
}
- webSocket.setStringCallback(new WebSocket.StringCallback() {
- public void onStringAvailable(String s) {
- if (!sharedpreferences.getBoolean(Helper.SHOULD_CONTINUE_STREAMING_LOCAL + finalAccountStream.getId() + finalAccountStream.getInstance(), true)) {
- stopSelf();
- return;
- }
- try {
- JSONObject eventJson = new JSONObject(s);
- onRetrieveStreaming(finalAccountStream, eventJson);
- } catch (JSONException ignored) {
- }
- }
- });
- }
+ try {
+ JSONObject eventJson = new JSONObject(s);
+ onRetrieveStreaming(finalAccountStream, eventJson);
+ } catch (JSONException ignored) {
+ }
+ });
});
}
}
diff --git a/app/src/main/java/app/fedilab/android/sqlite/DomainBlockDAO.java b/app/src/main/java/app/fedilab/android/sqlite/DomainBlockDAO.java
index 6a1ab654d..15d2bddbd 100644
--- a/app/src/main/java/app/fedilab/android/sqlite/DomainBlockDAO.java
+++ b/app/src/main/java/app/fedilab/android/sqlite/DomainBlockDAO.java
@@ -51,7 +51,8 @@ public class DomainBlockDAO {
values.put(Sqlite.COL_DOMAIN, domain);
try {
db.insert(Sqlite.TABLE_TRACKING_BLOCK, null, values);
- } catch (Exception ignored) {}
+ } catch (Exception ignored) {
+ }
}
/**
diff --git a/app/src/main/res/layout-sw600dp/activity_show_account.xml b/app/src/main/res/layout-sw600dp/activity_show_account.xml
index 489d971be..49de64803 100644
--- a/app/src/main/res/layout-sw600dp/activity_show_account.xml
+++ b/app/src/main/res/layout-sw600dp/activity_show_account.xml
@@ -172,7 +172,7 @@
android:id="@+id/account_dn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:maxLines="1"
+ android:singleLine="true"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textColor="?colorAccent"
android:textSize="16sp" />
@@ -181,7 +181,7 @@
android:id="@+id/account_un"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="14sp" />
@@ -279,7 +279,7 @@
android:layout_marginStart="3dp"
android:layout_marginEnd="3dp"
android:background="@drawable/blue_border"
- android:maxLines="1"
+ android:singleLine="true"
android:visibility="gone"
android:textColor="@color/mastodonC4" />
@@ -290,7 +290,7 @@
android:layout_marginStart="3dp"
android:layout_marginEnd="3dp"
android:background="@drawable/green_border"
- android:maxLines="1"
+ android:singleLine="true"
android:text="@string/followed_by"
android:textColor="@color/verified_text"
android:visibility="gone" />
@@ -302,7 +302,7 @@
android:layout_marginStart="3dp"
android:layout_marginEnd="3dp"
android:background="@drawable/blue_border"
- android:maxLines="1"
+ android:singleLine="true"
android:text="@string/request_sent"
android:textColor="@color/mastodonC4"
android:visibility="gone" />
@@ -521,7 +521,7 @@
android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
android:layout_weight="1"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="14sp" />
@@ -57,7 +57,7 @@
android:id="@+id/account_un"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="14sp" />
@@ -66,7 +66,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="16sp"
android:visibility="gone" />
@@ -93,7 +93,7 @@
diff --git a/app/src/main/res/layout/activity_edit_profile.xml b/app/src/main/res/layout/activity_edit_profile.xml
index 415401a84..62ecd8c27 100644
--- a/app/src/main/res/layout/activity_edit_profile.xml
+++ b/app/src/main/res/layout/activity_edit_profile.xml
@@ -56,7 +56,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:inputType="textPersonName"
- android:maxLines="1" />
+ android:singleLine="true" />
+ android:singleLine="true" />
@@ -91,7 +91,7 @@
android:drawableStart="@drawable/ic_check_circle"
android:drawablePadding="10dp"
android:gravity="center"
- android:maxLines="1"
+ android:singleLine="true"
android:paddingStart="15dp"
android:paddingTop="12dp"
android:paddingEnd="20dp"
@@ -169,7 +169,7 @@
android:layout_height="wrap_content"
android:hint="@string/username"
android:inputType="textEmailAddress"
- android:maxLines="1" />
+ android:singleLine="true" />
@@ -189,7 +189,7 @@
android:layout_height="wrap_content"
android:hint="@string/password"
android:inputType="textPassword"
- android:maxLines="1" />
+ android:singleLine="true" />
@@ -213,7 +213,7 @@
android:drawableStart="@drawable/mastodon_icon"
android:drawablePadding="10dp"
android:gravity="center"
- android:maxLines="1"
+ android:singleLine="true"
android:paddingStart="15dp"
android:paddingTop="12dp"
android:paddingEnd="20dp"
diff --git a/app/src/main/res/layout/activity_manage_accounts_list.xml b/app/src/main/res/layout/activity_manage_accounts_list.xml
index 909b77dad..cd851cd3e 100644
--- a/app/src/main/res/layout/activity_manage_accounts_list.xml
+++ b/app/src/main/res/layout/activity_manage_accounts_list.xml
@@ -26,7 +26,7 @@
android:drawableEnd="@drawable/ic_search"
android:drawableRight="@drawable/ic_search"
android:inputType="text"
- android:maxLines="1" />
+ android:singleLine="true" />
-
+ android:singleLine="true" />
@@ -188,7 +188,7 @@
android:id="@+id/account_un"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="16sp" />
@@ -288,7 +288,7 @@
android:layout_marginStart="3dp"
android:layout_marginEnd="3dp"
android:background="@drawable/blue_border"
- android:maxLines="1"
+ android:singleLine="true"
android:visibility="gone"
android:textColor="@color/mastodonC4" />
@@ -299,7 +299,7 @@
android:layout_marginStart="3dp"
android:layout_marginEnd="3dp"
android:background="@drawable/green_border"
- android:maxLines="1"
+ android:singleLine="true"
android:text="@string/followed_by"
android:textColor="@color/verified_text"
android:visibility="gone" />
@@ -311,7 +311,7 @@
android:layout_marginStart="3dp"
android:layout_marginEnd="3dp"
android:background="@drawable/blue_border"
- android:maxLines="1"
+ android:singleLine="true"
android:text="@string/request_sent"
android:textColor="@color/mastodonC4"
android:visibility="gone" />
@@ -528,7 +528,7 @@
android:layout_gravity="center_vertical"
android:layout_marginStart="5dp"
android:layout_weight="1"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="14sp" />
+ android:singleLine="true" />
diff --git a/app/src/main/res/layout/add_filter.xml b/app/src/main/res/layout/add_filter.xml
index 04c38d47a..c4593280c 100644
--- a/app/src/main/res/layout/add_filter.xml
+++ b/app/src/main/res/layout/add_filter.xml
@@ -41,7 +41,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
- android:maxLines="1" />
+ android:singleLine="true" />
+ android:singleLine="true" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/add_playlist.xml b/app/src/main/res/layout/add_playlist.xml
index f4e0ad0cf..4380ebc2a 100644
--- a/app/src/main/res/layout/add_playlist.xml
+++ b/app/src/main/res/layout/add_playlist.xml
@@ -19,7 +19,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:inputType="text"
- android:maxLines="1" />
+ android:singleLine="true" />
+ android:singleLine="true" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_profile.xml b/app/src/main/res/layout/dialog_profile.xml
index b29ba9624..5a1a3442f 100644
--- a/app/src/main/res/layout/dialog_profile.xml
+++ b/app/src/main/res/layout/dialog_profile.xml
@@ -51,7 +51,7 @@
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:gravity="center_horizontal|top"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="18sp"
android:textStyle="bold" />
diff --git a/app/src/main/res/layout/domains_blocked.xml b/app/src/main/res/layout/domains_blocked.xml
index c05060943..e6eedbf8e 100644
--- a/app/src/main/res/layout/domains_blocked.xml
+++ b/app/src/main/res/layout/domains_blocked.xml
@@ -2,7 +2,7 @@
@@ -55,7 +55,7 @@
android:id="@+id/account_un"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="14sp" />
@@ -64,7 +64,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="16sp"
android:visibility="gone" />
@@ -91,7 +91,7 @@
diff --git a/app/src/main/res/layout/drawer_account_admin.xml b/app/src/main/res/layout/drawer_account_admin.xml
index abb025e37..356d69955 100644
--- a/app/src/main/res/layout/drawer_account_admin.xml
+++ b/app/src/main/res/layout/drawer_account_admin.xml
@@ -46,7 +46,7 @@
android:id="@+id/account_dn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:maxLines="1"
+ android:singleLine="true"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textSize="18sp" />
@@ -54,7 +54,7 @@
android:id="@+id/account_un"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="14sp" />
@@ -63,7 +63,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="16sp"
android:visibility="gone" />
@@ -73,7 +73,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
- android:maxLines="1"
+ android:singleLine="true"
android:text="@string/request_sent"
android:textColor="?colorAccent"
android:visibility="gone" />
diff --git a/app/src/main/res/layout/drawer_account_follow_request.xml b/app/src/main/res/layout/drawer_account_follow_request.xml
index 17d217b5c..3e5438f1a 100644
--- a/app/src/main/res/layout/drawer_account_follow_request.xml
+++ b/app/src/main/res/layout/drawer_account_follow_request.xml
@@ -37,7 +37,7 @@
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="16sp"
app:layout_constraintBottom_toTopOf="@id/account_un"
app:layout_constraintLeft_toRightOf="@id/account_pp"
@@ -49,7 +49,7 @@
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="15sp"
app:layout_constraintBottom_toTopOf="@id/btn_top_barrier"
app:layout_constraintLeft_toRightOf="@id/account_pp"
diff --git a/app/src/main/res/layout/drawer_account_list.xml b/app/src/main/res/layout/drawer_account_list.xml
index 881f4da65..0337f5254 100644
--- a/app/src/main/res/layout/drawer_account_list.xml
+++ b/app/src/main/res/layout/drawer_account_list.xml
@@ -44,7 +44,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="14sp"
android:textStyle="bold" />
@@ -54,7 +54,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="14sp" />
diff --git a/app/src/main/res/layout/drawer_account_main_search.xml b/app/src/main/res/layout/drawer_account_main_search.xml
index c9fc1f4a4..724f4ad5c 100644
--- a/app/src/main/res/layout/drawer_account_main_search.xml
+++ b/app/src/main/res/layout/drawer_account_main_search.xml
@@ -73,7 +73,7 @@
android:id="@+id/account_dn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:maxLines="1"
+ android:singleLine="true"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textSize="18sp" />
@@ -81,7 +81,7 @@
android:id="@+id/account_un"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="14sp" />
@@ -90,7 +90,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="16sp"
android:visibility="gone" />
@@ -110,7 +110,7 @@
+ android:singleLine="true" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/drawer_account_search.xml b/app/src/main/res/layout/drawer_account_search.xml
index 00aed2617..c0d258651 100644
--- a/app/src/main/res/layout/drawer_account_search.xml
+++ b/app/src/main/res/layout/drawer_account_search.xml
@@ -36,7 +36,7 @@
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
android:layout_marginLeft="10dp"
- android:maxLines="1" />
+ android:singleLine="true" />
+ android:singleLine="true" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/drawer_emoji_search.xml b/app/src/main/res/layout/drawer_emoji_search.xml
index fd62bcf2d..3dd874921 100644
--- a/app/src/main/res/layout/drawer_emoji_search.xml
+++ b/app/src/main/res/layout/drawer_emoji_search.xml
@@ -37,6 +37,5 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
- android:layout_marginLeft="10dp"
- android:maxLines="1" />
+ android:singleLine="true" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/drawer_notification.xml b/app/src/main/res/layout/drawer_notification.xml
index 24db190f2..3102650eb 100644
--- a/app/src/main/res/layout/drawer_notification.xml
+++ b/app/src/main/res/layout/drawer_notification.xml
@@ -129,7 +129,7 @@
android:drawableStart="@drawable/ic_remove_red_eye"
android:drawablePadding="5dp"
android:gravity="center"
- android:maxLines="1"
+ android:singleLine="true"
android:paddingStart="10dp"
android:paddingLeft="10dp"
android:paddingTop="5dp"
@@ -278,7 +278,7 @@
android:drawableStart="@drawable/ic_photo"
android:drawablePadding="5dp"
android:gravity="center"
- android:maxLines="1"
+ android:singleLine="true"
android:paddingStart="10dp"
android:paddingLeft="10dp"
android:paddingTop="5dp"
diff --git a/app/src/main/res/layout/drawer_report.xml b/app/src/main/res/layout/drawer_report.xml
index 0aad4a2df..5380b2506 100644
--- a/app/src/main/res/layout/drawer_report.xml
+++ b/app/src/main/res/layout/drawer_report.xml
@@ -47,7 +47,7 @@
android:id="@+id/account_dn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:maxLines="1"
+ android:singleLine="true"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textSize="18sp" />
@@ -56,7 +56,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="16sp" />
@@ -78,7 +78,7 @@
android:layout_width="80dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textSize="18sp" />
diff --git a/app/src/main/res/layout/drawer_status.xml b/app/src/main/res/layout/drawer_status.xml
index 8eda48cbb..b318f5da5 100644
--- a/app/src/main/res/layout/drawer_status.xml
+++ b/app/src/main/res/layout/drawer_status.xml
@@ -96,7 +96,7 @@
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:ellipsize="end"
- android:maxLines="1"
+ android:singleLine="true"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@id/status_account_profile_boost_by"
app:layout_constraintEnd_toStartOf="@id/status_boosted_date"
@@ -273,7 +273,7 @@
android:layout_marginStart="5dp"
android:drawablePadding="2dp"
android:ellipsize="end"
- android:maxLines="1"
+ android:singleLine="true"
android:textAlignment="viewStart"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/status_account_username"
@@ -302,7 +302,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:ellipsize="end"
- android:maxLines="1"
+ android:singleLine="true"
android:textAlignment="viewStart"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@id/barrier_account_info_bottom"
@@ -315,7 +315,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@id/status_account_username"
app:layout_constraintEnd_toEndOf="parent"
@@ -360,7 +360,7 @@
android:drawableStart="@drawable/ic_remove_red_eye"
android:drawablePadding="5dp"
android:gravity="center_vertical"
- android:maxLines="1"
+ android:singleLine="true"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:text="@string/load_attachment_spoiler"
@@ -387,7 +387,7 @@
android:drawableStart="@drawable/ic_more_toot_content"
android:drawablePadding="5dp"
android:gravity="center_vertical"
- android:maxLines="1"
+ android:singleLine="true"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:text="@string/display_toot_truncate"
@@ -403,7 +403,7 @@
android:layout_marginEnd="10dp"
android:layout_marginBottom="10dp"
android:gravity="end"
- android:maxLines="1"
+ android:singleLine="true"
android:textStyle="italic"
android:visibility="gone" />
@@ -503,7 +503,6 @@
android:id="@+id/status_cardview_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:maxLines="1"
android:singleLine="true"
android:textSize="14sp"
android:textStyle="bold" />
@@ -521,7 +520,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="12sp" />
@@ -1100,7 +1099,7 @@
android:layout_gravity="center_vertical"
android:layout_marginTop="10dp"
android:gravity="center"
- android:maxLines="1"
+ android:singleLine="true"
android:text="@string/fetch_more_toots"
android:textAllCaps="false"
android:textSize="16sp"
diff --git a/app/src/main/res/layout/drawer_status_compact.xml b/app/src/main/res/layout/drawer_status_compact.xml
index b8fd02e5e..78cd520f3 100644
--- a/app/src/main/res/layout/drawer_status_compact.xml
+++ b/app/src/main/res/layout/drawer_status_compact.xml
@@ -215,7 +215,7 @@
android:layout_marginEnd="5dp"
android:drawablePadding="2dp"
android:ellipsize="end"
- android:maxLines="1"
+ android:singleLine="true"
android:textAlignment="viewStart"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/status_account_username"
@@ -232,7 +232,7 @@
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:ellipsize="end"
- android:maxLines="1"
+ android:singleLine="true"
android:textAlignment="viewStart"
android:textSize="12sp"
app:layout_constraintBottom_toTopOf="@id/barrier_status_account_info"
@@ -258,7 +258,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="@id/status_account_username"
app:layout_constraintEnd_toEndOf="parent"
@@ -301,7 +301,7 @@
android:drawableStart="@drawable/ic_remove_red_eye"
android:drawablePadding="5dp"
android:gravity="center_vertical"
- android:maxLines="1"
+ android:singleLine="true"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:text="@string/load_attachment_spoiler"
@@ -328,7 +328,7 @@
android:drawableStart="@drawable/ic_more_toot_content"
android:drawablePadding="5dp"
android:gravity="center_vertical"
- android:maxLines="1"
+ android:singleLine="true"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:text="@string/display_toot_truncate"
@@ -430,7 +430,7 @@
android:id="@+id/status_cardview_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="14sp"
android:textStyle="bold" />
@@ -447,7 +447,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="12sp" />
@@ -837,7 +837,7 @@
android:layout_marginEnd="20dp"
android:layout_marginBottom="5dp"
android:gravity="end"
- android:maxLines="1"
+ android:singleLine="true"
android:textColor="?colorAccent"
android:textSize="16sp"
android:textStyle="italic"
@@ -1073,7 +1073,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
- android:maxLines="1"
+ android:singleLine="true"
android:text="@string/fetch_more_toots"
android:textAllCaps="false"
android:textSize="16sp"
diff --git a/app/src/main/res/layout/drawer_status_console.xml b/app/src/main/res/layout/drawer_status_console.xml
index 1f43910ab..16f746374 100644
--- a/app/src/main/res/layout/drawer_status_console.xml
+++ b/app/src/main/res/layout/drawer_status_console.xml
@@ -174,7 +174,7 @@
android:layout_marginLeft="-2dp"
android:layout_marginTop="-2dp"
android:drawablePadding="2dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textStyle="bold" />
@@ -246,7 +246,7 @@
android:drawableLeft="@drawable/ic_remove_red_eye"
android:drawablePadding="5dp"
android:gravity="center_vertical"
- android:maxLines="1"
+ android:singleLine="true"
android:paddingStart="10dp"
android:paddingLeft="10dp"
android:paddingTop="5dp"
@@ -278,7 +278,7 @@
android:drawableLeft="@drawable/ic_more_toot_content"
android:drawablePadding="5dp"
android:gravity="center_vertical"
- android:maxLines="1"
+ android:singleLine="true"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:text="@string/display_toot_truncate"
@@ -381,7 +381,7 @@
android:id="@+id/status_cardview_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="14sp"
android:textStyle="bold" />
@@ -398,7 +398,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="12sp" />
@@ -759,7 +759,7 @@
android:layout_marginEnd="20dp"
android:layout_marginBottom="5dp"
android:gravity="end"
- android:maxLines="1"
+ android:singleLine="true"
android:textColor="?colorAccent"
android:textSize="16sp"
android:textStyle="italic"
@@ -974,7 +974,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
- android:maxLines="1"
+ android:singleLine="true"
android:text="@string/fetch_more_toots"
android:textAllCaps="false"
android:textSize="16sp"
diff --git a/app/src/main/res/layout/drawer_status_focused.xml b/app/src/main/res/layout/drawer_status_focused.xml
index 1a5596376..e01b6299b 100644
--- a/app/src/main/res/layout/drawer_status_focused.xml
+++ b/app/src/main/res/layout/drawer_status_focused.xml
@@ -174,7 +174,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="2dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textAlignment="viewStart"
android:textStyle="bold" />
@@ -197,7 +197,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawablePadding="2dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textAlignment="viewStart"
android:textStyle="bold" />
@@ -207,7 +207,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="12sp" />
@@ -234,7 +234,7 @@
android:drawableLeft="@drawable/ic_remove_red_eye"
android:drawablePadding="5dp"
android:gravity="center_vertical"
- android:maxLines="1"
+ android:singleLine="true"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:text="@string/load_attachment_spoiler"
@@ -260,7 +260,7 @@
android:drawableStart="@drawable/ic_more_toot_content"
android:drawablePadding="5dp"
android:gravity="center_vertical"
- android:maxLines="1"
+ android:singleLine="true"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:text="@string/display_toot_truncate"
@@ -362,7 +362,7 @@
android:id="@+id/status_cardview_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="14sp"
android:textStyle="bold" />
@@ -379,7 +379,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="12sp" />
@@ -757,7 +757,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
- android:maxLines="1"
+ android:singleLine="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -766,7 +766,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textColor="?colorAccent"
android:textSize="16sp"
android:textStyle="italic"
@@ -963,7 +963,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
- android:maxLines="1"
+ android:singleLine="true"
android:text="@string/fetch_more_toots"
android:textAllCaps="false"
android:textSize="16sp"
diff --git a/app/src/main/res/layout/drawer_status_main_search.xml b/app/src/main/res/layout/drawer_status_main_search.xml
index 1cb2371a5..3d53506df 100644
--- a/app/src/main/res/layout/drawer_status_main_search.xml
+++ b/app/src/main/res/layout/drawer_status_main_search.xml
@@ -66,7 +66,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="2dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="16sp"
android:textStyle="bold" />
@@ -75,7 +75,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="14sp"
android:textStyle="bold" />
@@ -85,7 +85,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="14sp"
android:visibility="gone" />
diff --git a/app/src/main/res/layout/drawer_suggestions.xml b/app/src/main/res/layout/drawer_suggestions.xml
index 40ada88ed..61f118ef0 100644
--- a/app/src/main/res/layout/drawer_suggestions.xml
+++ b/app/src/main/res/layout/drawer_suggestions.xml
@@ -37,5 +37,5 @@
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
android:layout_weight="1"
- android:maxLines="1" />
+ android:singleLine="true" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/filter_regex.xml b/app/src/main/res/layout/filter_regex.xml
index 3a08ada2e..09743d569 100644
--- a/app/src/main/res/layout/filter_regex.xml
+++ b/app/src/main/res/layout/filter_regex.xml
@@ -10,5 +10,5 @@
android:layout_height="wrap_content"
android:hint="@string/filter_regex"
android:inputType="text"
- android:maxLines="1" />
+ android:singleLine="true" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_settings_reveal.xml b/app/src/main/res/layout/fragment_settings_reveal.xml
index e3be902d4..de46c1354 100644
--- a/app/src/main/res/layout/fragment_settings_reveal.xml
+++ b/app/src/main/res/layout/fragment_settings_reveal.xml
@@ -844,7 +844,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
- android:maxLines="1"
+ android:singleLine="true"
android:text="@string/channel_notif_mention"
android:tint="@android:color/white" />
@@ -855,7 +855,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
- android:maxLines="1"
+ android:singleLine="true"
android:text="@string/channel_notif_follow"
android:tint="@android:color/white" />
@@ -872,7 +872,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
- android:maxLines="1"
+ android:singleLine="true"
android:text="@string/channel_notif_boost"
android:tint="@android:color/white" />
@@ -883,7 +883,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
- android:maxLines="1"
+ android:singleLine="true"
android:text="@string/channel_notif_fav"
android:tint="@android:color/white" />
@@ -901,7 +901,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
- android:maxLines="1"
+ android:singleLine="true"
android:text="@string/channel_notif_poll"
android:tint="@android:color/white" />
@@ -912,7 +912,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
- android:maxLines="1"
+ android:singleLine="true"
android:text="@string/channel_notif_media"
android:tint="@android:color/white" />
@@ -929,7 +929,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
- android:maxLines="1"
+ android:singleLine="true"
android:text="@string/channel_notif_backup"
android:tint="@android:color/white" />
@@ -1738,6 +1738,37 @@
android:text="@string/set_video_mode_indication"
android:textColor="@color/mastodonC2" />
+
+
+
+
+
+
+
+
+
+
@@ -2544,7 +2575,6 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+ android:singleLine="true"/>
+ android:singleLine="true" />
+ android:singleLine="true" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/simple_bar.xml b/app/src/main/res/layout/simple_bar.xml
index 3310950a8..3574b4276 100644
--- a/app/src/main/res/layout/simple_bar.xml
+++ b/app/src/main/res/layout/simple_bar.xml
@@ -47,7 +47,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:ellipsize="end"
- android:maxLines="1"
+ android:singleLine="true"
android:scrollHorizontally="true"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/simple_bar_add.xml b/app/src/main/res/layout/simple_bar_add.xml
index 659593862..401d059ae 100644
--- a/app/src/main/res/layout/simple_bar_add.xml
+++ b/app/src/main/res/layout/simple_bar_add.xml
@@ -53,7 +53,7 @@
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:ellipsize="end"
- android:maxLines="1"
+ android:singleLine="true"
android:scrollHorizontally="true"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/simple_bar_muted_instance.xml b/app/src/main/res/layout/simple_bar_muted_instance.xml
index 3b0c8d53a..3076f5771 100644
--- a/app/src/main/res/layout/simple_bar_muted_instance.xml
+++ b/app/src/main/res/layout/simple_bar_muted_instance.xml
@@ -52,7 +52,7 @@
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:ellipsize="end"
- android:maxLines="1"
+ android:singleLine="true"
android:scrollHorizontally="true"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/simple_bar_search.xml b/app/src/main/res/layout/simple_bar_search.xml
index 6eb5dfe8b..b78317c22 100644
--- a/app/src/main/res/layout/simple_bar_search.xml
+++ b/app/src/main/res/layout/simple_bar_search.xml
@@ -51,7 +51,7 @@
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:ellipsize="end"
- android:maxLines="1"
+ android:singleLine="true"
android:scrollHorizontally="true"
android:textSize="16sp" />
+ android:singleLine="true" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/tags_any.xml b/app/src/main/res/layout/tags_any.xml
index 22a72f106..411dc2c07 100644
--- a/app/src/main/res/layout/tags_any.xml
+++ b/app/src/main/res/layout/tags_any.xml
@@ -10,5 +10,5 @@
android:layout_height="wrap_content"
android:hint="@string/some_words_any"
android:inputType="text"
- android:maxLines="1" />
+ android:singleLine="true" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/tags_instance.xml b/app/src/main/res/layout/tags_instance.xml
index 17d505dd3..7f6e77c8f 100644
--- a/app/src/main/res/layout/tags_instance.xml
+++ b/app/src/main/res/layout/tags_instance.xml
@@ -10,5 +10,5 @@
android:layout_height="wrap_content"
android:hint="@string/some_tags"
android:inputType="text"
- android:maxLines="1" />
+ android:singleLine="true" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/tags_name.xml b/app/src/main/res/layout/tags_name.xml
index 42ad47c99..abcac91c9 100644
--- a/app/src/main/res/layout/tags_name.xml
+++ b/app/src/main/res/layout/tags_name.xml
@@ -10,5 +10,5 @@
android:layout_height="wrap_content"
android:hint="@string/change_tag_column"
android:inputType="text"
- android:maxLines="1" />
+ android:singleLine="true" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/webview_actionbar.xml b/app/src/main/res/layout/webview_actionbar.xml
index e301c9628..640214c6c 100644
--- a/app/src/main/res/layout/webview_actionbar.xml
+++ b/app/src/main/res/layout/webview_actionbar.xml
@@ -36,6 +36,6 @@
android:layout_marginStart="5dp"
android:layout_marginLeft="5dp"
android:layout_weight="1"
- android:maxLines="1"
+ android:singleLine="true"
android:textSize="12sp" />
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b0a84b134..c11208d0d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1105,6 +1105,11 @@
Nitter is an open source alternative Twitter front-end focused on privacy.
Enter your custom host or leave blank for using nitter.net
+
+ Replace Instagram with Bibliogram
+ Bibliogram is an open source alternative Instagram front-end focused on privacy.
+ Enter your custom host or leave blank for using bibliogram.art
+
Hide Fedilab notification bar
For hiding the remaining notification in the status bar, tap on the eye icon button then uncheck: \"Display in status bar\"
Notifications will be delayed every 30 seconds. That will allow to drain less battery.
@@ -1226,4 +1231,5 @@
No announcements!
Add a reaction
Use your favourite browser inside the app. Uncheck this feature to open links externally.
+ Video cache in MB, zero means no cache.
\ No newline at end of file
From cf70b3aea586c288c20bda27a58020e73ebc5f73 Mon Sep 17 00:00:00 2001
From: Thomas
Date: Sat, 16 May 2020 14:30:03 +0200
Subject: [PATCH 004/115] New Crowdin translations
---
app/src/main/res/values-ar/strings.xml | 1 +
app/src/main/res/values-bn/strings.xml | 1 +
app/src/main/res/values-br/strings.xml | 1 +
app/src/main/res/values-ca/strings.xml | 1 +
app/src/main/res/values-cs/strings.xml | 1 +
app/src/main/res/values-cy/strings.xml | 1 +
app/src/main/res/values-da/strings.xml | 1 +
app/src/main/res/values-de/strings.xml | 1 +
app/src/main/res/values-el/strings.xml | 1 +
app/src/main/res/values-eo/strings.xml | 1 +
app/src/main/res/values-es/strings.xml | 1 +
app/src/main/res/values-eu/strings.xml | 1 +
app/src/main/res/values-fa/strings.xml | 1 +
app/src/main/res/values-fr/strings.xml | 1 +
app/src/main/res/values-gl/strings.xml | 1 +
app/src/main/res/values-hi/strings.xml | 1 +
app/src/main/res/values-hu/strings.xml | 1 +
app/src/main/res/values-hy/strings.xml | 1 +
app/src/main/res/values-id/strings.xml | 1 +
app/src/main/res/values-it/strings.xml | 1 +
app/src/main/res/values-ja/strings.xml | 1 +
app/src/main/res/values-kab/strings.xml | 1 +
app/src/main/res/values-ko/strings.xml | 1 +
app/src/main/res/values-ml/strings.xml | 1 +
app/src/main/res/values-nl/strings.xml | 1 +
app/src/main/res/values-no/strings.xml | 1 +
app/src/main/res/values-oc/strings.xml | 1 +
app/src/main/res/values-pl/strings.xml | 1 +
app/src/main/res/values-pt/strings.xml | 1 +
app/src/main/res/values-ro/strings.xml | 1 +
app/src/main/res/values-ru/strings.xml | 1 +
app/src/main/res/values-si/strings.xml | 1 +
app/src/main/res/values-sl/strings.xml | 1 +
app/src/main/res/values-sr/strings.xml | 1 +
app/src/main/res/values-sv/strings.xml | 1 +
app/src/main/res/values-tr/strings.xml | 1 +
app/src/main/res/values-uk/strings.xml | 1 +
app/src/main/res/values-vi/strings.xml | 1 +
app/src/main/res/values-zh-rCN/strings.xml | 1 +
app/src/main/res/values-zh-rTW/strings.xml | 1 +
40 files changed, 40 insertions(+)
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index ca455e7e8..8cbbd325e 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -110,6 +110,7 @@
- هل تود الإبلاغ عن هذا التبويق؟
- هل تريد حظر هذا النطاق؟
- هل تود إلغاء كتم هذا الحساب؟
+ - Unblock this account?
- إشعار
diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml
index 4ee608e8a..777369d79 100644
--- a/app/src/main/res/values-bn/strings.xml
+++ b/app/src/main/res/values-bn/strings.xml
@@ -110,6 +110,7 @@
- এই টুট টি প্রতিবেদন করবেন?
- এই ডোমেইন ব্লক করবেন?
- এই একাউন্ট টি কে নিঃশব্দ তালিকা থেকে সরাবেন?
+ - Unblock this account?
- বিজ্ঞপ্তি
diff --git a/app/src/main/res/values-br/strings.xml b/app/src/main/res/values-br/strings.xml
index d685987c3..acbcfaa7c 100644
--- a/app/src/main/res/values-br/strings.xml
+++ b/app/src/main/res/values-br/strings.xml
@@ -110,6 +110,7 @@
- Report this toot?
- Block this domain?
- Unmute this account?
+ - Unblock this account?
- Notify
diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml
index 8f5423cb9..8d6487562 100644
--- a/app/src/main/res/values-ca/strings.xml
+++ b/app/src/main/res/values-ca/strings.xml
@@ -110,6 +110,7 @@
- Vols denunciar aquest bram?
- Vols blocar el domini?
- Desilenciar aquest compte?
+ - Unblock this account?
- Notificar
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index c3c572e51..cab92813a 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -110,6 +110,7 @@
- Nahlásit tento toot?
- Blokovat tuto doménu?
- Zrušit ztlumení tohoto účtu?
+ - Unblock this account?
- Oznámit
diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml
index 91ec07ec5..b224a7ac0 100644
--- a/app/src/main/res/values-cy/strings.xml
+++ b/app/src/main/res/values-cy/strings.xml
@@ -110,6 +110,7 @@
- Cwyno am y tŵt hwn?
- Blocio\'r parth hwn?
- Unmute this account?
+ - Unblock this account?
- Hysbysu
diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml
index 31742ffa8..63ea07cdb 100644
--- a/app/src/main/res/values-da/strings.xml
+++ b/app/src/main/res/values-da/strings.xml
@@ -110,6 +110,7 @@
- Anmeld dette toot?
- Blokér dette domæne?
- Fjern \"Gør tavs\" for denne konto?
+ - Unblock this account?
- Notificér
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index bdc44b5fd..594a0718e 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -110,6 +110,7 @@
- Diesen Toot melden?
- Diese Domäne sperren?
- Lautlosmodus für dieses Konto aufheben?
+ - Unblock this account?
- Benachrichtigen
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index b87a80b54..ffc350aae 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -110,6 +110,7 @@
- Αναφορά αυτής της φωνής;
- Φραγή αυτού του τομέα;
- Ξεφίμωμα αυτού του λογαριασμού;
+ - Unblock this account?
- Ειδοποίηση
diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml
index e2d0c86dc..601ad3aa7 100644
--- a/app/src/main/res/values-eo/strings.xml
+++ b/app/src/main/res/values-eo/strings.xml
@@ -110,6 +110,7 @@
- Report this toot?
- Blokiti domajno?
- Unmute this account?
+ - Unblock this account?
- Sciigi
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 6d132c0df..80157ba17 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -110,6 +110,7 @@
- ¿Reportar este toot?
- ¿Bloquear este dominio?
- ¿Dejar de silenciar esta cuenta?
+ - Unblock this account?
- Notificar
diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml
index 217d3d73f..e15f791c2 100644
--- a/app/src/main/res/values-eu/strings.xml
+++ b/app/src/main/res/values-eu/strings.xml
@@ -110,6 +110,7 @@
- Salatu toot hau?
- Blokeatu domeinu hau?
- Desmututu kontu hau?
+ - Unblock this account?
- Jakinarazi
diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml
index 4f844e1f1..0c4af8a83 100644
--- a/app/src/main/res/values-fa/strings.xml
+++ b/app/src/main/res/values-fa/strings.xml
@@ -110,6 +110,7 @@
- این بوق گزارش شود؟
- این دامنه مسدود شود؟
- Unmute this account?
+ - Unblock this account?
- با اعلان
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index e1114a1cd..c84bd4c2f 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -110,6 +110,7 @@
- Signaler ce pouet ?
- Désirez-vous bloquer ce domaine ?
- Ne plus masquer ce compte ?
+ - Unblock this account?
- Notifier
diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml
index ec21e9f5b..c9af8b362 100644
--- a/app/src/main/res/values-gl/strings.xml
+++ b/app/src/main/res/values-gl/strings.xml
@@ -110,6 +110,7 @@
- Informar sobre este toot?
- Bloquear este dominio?
- Voltar a ler esta conta?
+ - Unblock this account?
- Notificar
diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml
index 0e844554d..40af65a8f 100644
--- a/app/src/main/res/values-hi/strings.xml
+++ b/app/src/main/res/values-hi/strings.xml
@@ -110,6 +110,7 @@
- इस संदेश को रिपोर्ट करें?
- इस इंस्टेंस को अवरुद्ध करें?
- इस खाते को मौन करें?
+ - Unblock this account?
- सूचित करें
diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml
index 137a2d74b..b22dc8cbc 100644
--- a/app/src/main/res/values-hu/strings.xml
+++ b/app/src/main/res/values-hu/strings.xml
@@ -110,6 +110,7 @@
- Jelented ezt a tootot?
- Letiltod ezt a domént?
- Megszünteted a fiók elnémítását?
+ - Unblock this account?
- Értesítés
diff --git a/app/src/main/res/values-hy/strings.xml b/app/src/main/res/values-hy/strings.xml
index e2e245f09..da5733226 100644
--- a/app/src/main/res/values-hy/strings.xml
+++ b/app/src/main/res/values-hy/strings.xml
@@ -110,6 +110,7 @@
- Ահազանգե՞լ այս հաշվի մասին
- Block this domain?
- Unmute this account?
+ - Unblock this account?
- Notify
diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml
index fe15a1ed5..0f200a72d 100644
--- a/app/src/main/res/values-id/strings.xml
+++ b/app/src/main/res/values-id/strings.xml
@@ -110,6 +110,7 @@
- Laporkan kutipan ini?
- Blok domain ini?
- Unmute this account?
+ - Unblock this account?
- Notifikasi
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index abff9f45f..216069e17 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -110,6 +110,7 @@
- Segnalare questo toot?
- Bloccare questo dominio?
- Smettere di silenziare questo account?
+ - Unblock this account?
- Notifica
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 1499a081f..c40c942fb 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -110,6 +110,7 @@
- このトゥートを報告しますか?
- このドメインをブロックしますか?
- このアカウントのミュートを解除しますか?
+ - Unblock this account?
- 通知
diff --git a/app/src/main/res/values-kab/strings.xml b/app/src/main/res/values-kab/strings.xml
index 002a775ae..a38ccf052 100644
--- a/app/src/main/res/values-kab/strings.xml
+++ b/app/src/main/res/values-kab/strings.xml
@@ -110,6 +110,7 @@
- Report this toot?
- Block this domain?
- Unmute this account?
+ - Unblock this account?
- Selɣu
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 1b628bbed..0dfe94978 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -110,6 +110,7 @@
- 이 툿을 신고하시겠습니까?
- 이 도메인을 차단하시겠습니까?
- 이 계정의 뮤트를 해제하겠습니까?
+ - Unblock this account?
- 알림
diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml
index 439c0f8c9..00996bc16 100644
--- a/app/src/main/res/values-ml/strings.xml
+++ b/app/src/main/res/values-ml/strings.xml
@@ -110,6 +110,7 @@
- ഈ ടൂട്ടിനെ റിപ്പോർട്ട് ചെയ്യട്ടെ?
- ഈ ഡൊമെയിൻ തടയട്ടെ?
- ഈ അക്കൗണ്ട് ശബ്ദിക്കട്ടെ?
+ - Unblock this account?
- അറിയിക്കുക
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 5f44558ed..487f22b36 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -110,6 +110,7 @@
- Toot rapporteren?
- Dit domein blokkeren?
- Dit account niet langer negeren?
+ - Unblock this account?
- Melden
diff --git a/app/src/main/res/values-no/strings.xml b/app/src/main/res/values-no/strings.xml
index 27cd9f20c..b57014076 100644
--- a/app/src/main/res/values-no/strings.xml
+++ b/app/src/main/res/values-no/strings.xml
@@ -110,6 +110,7 @@
- Rapportere dette tootet?
- Blokkere dette domenet?
- Fjern demping for denne kontoen?
+ - Unblock this account?
- Varsle
diff --git a/app/src/main/res/values-oc/strings.xml b/app/src/main/res/values-oc/strings.xml
index d4010380e..72689fac9 100644
--- a/app/src/main/res/values-oc/strings.xml
+++ b/app/src/main/res/values-oc/strings.xml
@@ -110,6 +110,7 @@
- Report this toot?
- Block this domain?
- Unmute this account?
+ - Unblock this account?
- Notify
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 4fa614a60..0e20b9154 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -110,6 +110,7 @@
- Zgłosić ten wpis?
- Zablokować tę domenę?
- Cofnąć wyciszenie tego konta?
+ - Unblock this account?
- Powiadomienie
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml
index 3ba07807b..f69651be2 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -110,6 +110,7 @@
- Denunciar este toot?
- Bloquear esta instância?
- Desativar silêncio da conta?
+ - Unblock this account?
- Notificar
diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml
index a86d43447..1cbac45ab 100644
--- a/app/src/main/res/values-ro/strings.xml
+++ b/app/src/main/res/values-ro/strings.xml
@@ -110,6 +110,7 @@
- Raportează acestă notiță?
- Block this domain?
- Unmute this account?
+ - Unblock this account?
- Notify
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 427eaa41e..6b4be2ae3 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -110,6 +110,7 @@
- Пожаловаться на этот тут?
- Заблокировать этот домен?
- Не игнорировать этот аккаунт?
+ - Unblock this account?
- Уведомлять
diff --git a/app/src/main/res/values-si/strings.xml b/app/src/main/res/values-si/strings.xml
index 9f737ab1d..aa18670b6 100644
--- a/app/src/main/res/values-si/strings.xml
+++ b/app/src/main/res/values-si/strings.xml
@@ -110,6 +110,7 @@
- Report this toot?
- මෙම අඩවිය අවහිර කරනවා ද?
- Unmute this account?
+ - Unblock this account?
- දැනුම්දෙන්න
diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml
index 0b17f0f4b..8622c0c25 100644
--- a/app/src/main/res/values-sl/strings.xml
+++ b/app/src/main/res/values-sl/strings.xml
@@ -110,6 +110,7 @@
- Želite prijaviti sporne vsebine v tej objavi?
- Želite blokirati to domeno?
- Unmute this account?
+ - Unblock this account?
- Obvesti
diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml
index fe0d182dc..b6b9d978a 100644
--- a/app/src/main/res/values-sr/strings.xml
+++ b/app/src/main/res/values-sr/strings.xml
@@ -110,6 +110,7 @@
- Пријави овaj тут?
- Блокирај овај домен?
- Unmute this account?
+ - Unblock this account?
- Обавести
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index 3cb38ec47..c6234d575 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -110,6 +110,7 @@
- Anmäl den här tooten?
- Blockera denna domän?
- Återställ ljud på detta konto?
+ - Unblock this account?
- Meddela
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index 83b3a7c3e..cec5b24ab 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -110,6 +110,7 @@
- Bu toot\'u bildir?
- Bu alan adı engellensin mi?
- Bu hesabın susturulması açılsın mı?
+ - Unblock this account?
- Bilgilendir
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index 4eab56e26..fa2bd3d25 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -110,6 +110,7 @@
- Поскаржитися на цей дмух?
- Блокувати цей домен?
- Unmute this account?
+ - Unblock this account?
- Notify
diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml
index fa00f7404..772917aec 100644
--- a/app/src/main/res/values-vi/strings.xml
+++ b/app/src/main/res/values-vi/strings.xml
@@ -110,6 +110,7 @@
- Báo cáo này thổi còi?
- Block this domain?
- Unmute this account?
+ - Unblock this account?
- Notify
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 641175d6d..6f51cf591 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -110,6 +110,7 @@
- 举报这条嘟文吗?
- 是否屏蔽此域名?
- 取消该用户的禁言吗?
+ - Unblock this account?
- 通知
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 081fd1ca3..7eaef747d 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -110,6 +110,7 @@
- 檢舉此嘟文?
- 是否封鎖該站點?
- 取消靜音此帳號?
+ - Unblock this account?
- 通知
From e755dc79ecf6414bc480590bf91035e59f75e023 Mon Sep 17 00:00:00 2001
From: Thomas
Date: Sat, 16 May 2020 16:21:45 +0200
Subject: [PATCH 005/115] copy release notes
---
.../activities/BaseFragmentActivity.java | 153 ++++++++++++++++++
1 file changed, 153 insertions(+)
create mode 100644 app/src/main/java/app/fedilab/android/activities/BaseFragmentActivity.java
diff --git a/app/src/main/java/app/fedilab/android/activities/BaseFragmentActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseFragmentActivity.java
new file mode 100644
index 000000000..95656ccd7
--- /dev/null
+++ b/app/src/main/java/app/fedilab/android/activities/BaseFragmentActivity.java
@@ -0,0 +1,153 @@
+package app.fedilab.android.activities;
+
+import android.annotation.SuppressLint;
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.content.res.Configuration;
+import android.os.Bundle;
+import android.os.StrictMode;
+import android.view.ActionMode;
+import android.view.View;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+
+import com.franmontiel.localechanger.LocaleChanger;
+import com.google.android.material.snackbar.Snackbar;
+import com.jaredrummler.cyanea.app.CyaneaAppCompatActivity;
+import com.vanniktech.emoji.EmojiManager;
+import com.vanniktech.emoji.one.EmojiOneProvider;
+
+import org.jetbrains.annotations.NotNull;
+
+import java.util.Timer;
+
+import app.fedilab.android.BuildConfig;
+import app.fedilab.android.helper.Helper;
+import es.dmoral.toasty.Toasty;
+
+/**
+ * Created by Thomas on 12/12/2017.
+ * Base activity which updates security provider
+ */
+
+@SuppressLint("Registered")
+public class BaseFragmentActivity extends CyaneaAppCompatActivity {
+
+
+ public static final int READ_WRITE_STORAGE = 52;
+ public static Timer timer;
+ public static boolean canShowActionMode = true;
+
+ static {
+ Helper.installProvider();
+ EmojiManager.install(new EmojiOneProvider());
+ }
+
+ private ProgressDialog mProgressDialog;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+
+ if (BuildConfig.DEBUG) {
+ StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
+ .detectDiskReads()
+ .detectDiskWrites()
+ .detectAll()
+ .penaltyLog()
+ .build());
+ StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
+ .detectLeakedSqlLiteObjects()
+ .detectLeakedClosableObjects()
+ .detectLeakedRegistrationObjects()
+ .detectActivityLeaks()
+ .penaltyLog()
+ // .penaltyDeath()
+ .build());
+ }
+ canShowActionMode = true;
+ super.onCreate(savedInstanceState);
+
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ if (timer != null) {
+ timer.cancel();
+ timer = null;
+ }
+ }
+
+
+ @Override
+ public void onConfigurationChanged(@NotNull Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+ LocaleChanger.onConfigurationChanged();
+ }
+
+ @Override
+ protected void attachBaseContext(@NotNull Context newBase) {
+ newBase = LocaleChanger.configureBaseContext(newBase);
+ super.attachBaseContext(newBase);
+ }
+
+ public boolean requestPermission(String permission) {
+ boolean isGranted = ContextCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_GRANTED;
+ if (!isGranted) {
+ ActivityCompat.requestPermissions(
+ this,
+ new String[]{permission},
+ READ_WRITE_STORAGE);
+ }
+ return isGranted;
+ }
+
+ public void isPermissionGranted(boolean isGranted, String permission) {
+
+ }
+
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+ if (requestCode == READ_WRITE_STORAGE) {
+ isPermissionGranted(grantResults[0] == PackageManager.PERMISSION_GRANTED, permissions[0]);
+ }
+ }
+
+ protected void showLoading(@NonNull String message) {
+ mProgressDialog = new ProgressDialog(this);
+ mProgressDialog.setMessage(message);
+ mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
+ mProgressDialog.setCancelable(false);
+ mProgressDialog.show();
+ }
+
+ protected void hideLoading() {
+ if (mProgressDialog != null) {
+ mProgressDialog.dismiss();
+ }
+ }
+
+ protected void showSnackbar(@NonNull String message) {
+ View view = findViewById(android.R.id.content);
+ if (view != null) {
+ Snackbar.make(view, message, Snackbar.LENGTH_SHORT).show();
+ } else {
+ Toasty.info(BaseFragmentActivity.this, message, Toast.LENGTH_SHORT).show();
+ }
+ }
+
+
+ @Override
+ public void onActionModeStarted(ActionMode mode) {
+ if (!canShowActionMode) {
+ mode.finish();
+ }
+ super.onActionModeStarted(mode);
+
+ }
+}
From a1e0d13663216781dea4b7653642dc344b981b33 Mon Sep 17 00:00:00 2001
From: Thomas
Date: Sat, 16 May 2020 17:06:13 +0200
Subject: [PATCH 006/115] Improve media activity
---
.../activities/BaseFragmentActivity.java | 135 +------
.../android/activities/PeertubeActivity.java | 104 +++---
.../activities/ShowAccountActivity.java | 1 +
.../activities/SlideMediaActivity.java | 50 +--
.../java/app/fedilab/android/client/API.java | 3 +-
.../android/drawers/ArtListAdapter.java | 1 +
.../fedilab/android/drawers/ImageAdapter.java | 1 +
.../drawers/NotificationsListAdapter.java | 1 +
.../android/drawers/PixelfedListAdapter.java | 1 +
.../drawers/PixelfedStoriesListAdapter.java | 1 +
.../android/drawers/SliderAdapter.java | 1 +
.../android/drawers/StatusListAdapter.java | 1 +
.../fragments/ContentSettingsFragment.java | 6 +-
.../fragments/MediaSliderFragment.java | 72 +++-
.../app/fedilab/android/helper/Helper.java | 2 -
.../imageeditor/TextEditorDialogFragment.java | 2 +-
.../main/res/layout/activity_media_pager.xml | 1 +
.../main/res/layout/fragment_slide_media.xml | 336 +++++++++---------
app/src/main/res/layout/media_action_bar.xml | 1 -
app/src/main/res/values/styles.xml | 7 +-
20 files changed, 319 insertions(+), 408 deletions(-)
diff --git a/app/src/main/java/app/fedilab/android/activities/BaseFragmentActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseFragmentActivity.java
index 95656ccd7..a4a2f6b0f 100644
--- a/app/src/main/java/app/fedilab/android/activities/BaseFragmentActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/BaseFragmentActivity.java
@@ -1,153 +1,26 @@
package app.fedilab.android.activities;
import android.annotation.SuppressLint;
-import android.app.ProgressDialog;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.content.res.Configuration;
-import android.os.Bundle;
-import android.os.StrictMode;
-import android.view.ActionMode;
-import android.view.View;
-import android.widget.Toast;
-import androidx.annotation.NonNull;
-import androidx.core.app.ActivityCompat;
-import androidx.core.content.ContextCompat;
+import androidx.appcompat.app.AppCompatActivity;
-import com.franmontiel.localechanger.LocaleChanger;
-import com.google.android.material.snackbar.Snackbar;
-import com.jaredrummler.cyanea.app.CyaneaAppCompatActivity;
import com.vanniktech.emoji.EmojiManager;
import com.vanniktech.emoji.one.EmojiOneProvider;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.Timer;
-
-import app.fedilab.android.BuildConfig;
import app.fedilab.android.helper.Helper;
-import es.dmoral.toasty.Toasty;
/**
- * Created by Thomas on 12/12/2017.
- * Base activity which updates security provider
+ * Created by Thomas on 16/05/2020.
+ * Fragment base activity which updates security provider
*/
@SuppressLint("Registered")
-public class BaseFragmentActivity extends CyaneaAppCompatActivity {
+public class BaseFragmentActivity extends AppCompatActivity {
- public static final int READ_WRITE_STORAGE = 52;
- public static Timer timer;
- public static boolean canShowActionMode = true;
-
static {
Helper.installProvider();
EmojiManager.install(new EmojiOneProvider());
}
- private ProgressDialog mProgressDialog;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
-
- if (BuildConfig.DEBUG) {
- StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
- .detectDiskReads()
- .detectDiskWrites()
- .detectAll()
- .penaltyLog()
- .build());
- StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
- .detectLeakedSqlLiteObjects()
- .detectLeakedClosableObjects()
- .detectLeakedRegistrationObjects()
- .detectActivityLeaks()
- .penaltyLog()
- // .penaltyDeath()
- .build());
- }
- canShowActionMode = true;
- super.onCreate(savedInstanceState);
-
- }
-
- @Override
- public void onDestroy() {
- super.onDestroy();
- if (timer != null) {
- timer.cancel();
- timer = null;
- }
- }
-
-
- @Override
- public void onConfigurationChanged(@NotNull Configuration newConfig) {
- super.onConfigurationChanged(newConfig);
- LocaleChanger.onConfigurationChanged();
- }
-
- @Override
- protected void attachBaseContext(@NotNull Context newBase) {
- newBase = LocaleChanger.configureBaseContext(newBase);
- super.attachBaseContext(newBase);
- }
-
- public boolean requestPermission(String permission) {
- boolean isGranted = ContextCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_GRANTED;
- if (!isGranted) {
- ActivityCompat.requestPermissions(
- this,
- new String[]{permission},
- READ_WRITE_STORAGE);
- }
- return isGranted;
- }
-
- public void isPermissionGranted(boolean isGranted, String permission) {
-
- }
-
-
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
- if (requestCode == READ_WRITE_STORAGE) {
- isPermissionGranted(grantResults[0] == PackageManager.PERMISSION_GRANTED, permissions[0]);
- }
- }
-
- protected void showLoading(@NonNull String message) {
- mProgressDialog = new ProgressDialog(this);
- mProgressDialog.setMessage(message);
- mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
- mProgressDialog.setCancelable(false);
- mProgressDialog.show();
- }
-
- protected void hideLoading() {
- if (mProgressDialog != null) {
- mProgressDialog.dismiss();
- }
- }
-
- protected void showSnackbar(@NonNull String message) {
- View view = findViewById(android.R.id.content);
- if (view != null) {
- Snackbar.make(view, message, Snackbar.LENGTH_SHORT).show();
- } else {
- Toasty.info(BaseFragmentActivity.this, message, Toast.LENGTH_SHORT).show();
- }
- }
-
-
- @Override
- public void onActionModeStarted(ActionMode mode) {
- if (!canShowActionMode) {
- mode.finish();
- }
- super.onActionModeStarted(mode);
-
- }
}
diff --git a/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java b/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java
index 7d67984e1..54982e19f 100644
--- a/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java
@@ -411,52 +411,6 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
}
}
- private static class commentTask extends AsyncTask{
-
- private WeakReference contextReference;
- private Peertube peertube;
-
- commentTask(WeakReference contextReference, Peertube peertube){
- this.peertube = peertube;
- this.contextReference = contextReference;
- }
-
- @Override
- protected app.fedilab.android.client.Entities.Status doInBackground(Void... voids) {
-
- List remoteStatuses = null;
- if (peertube != null) {
- APIResponse search = new API(contextReference.get()).search("https://" + peertube.getAccount().getHost() + "/videos/watch/" + peertube.getUuid());
- if (search != null && search.getResults() != null) {
- remoteStatuses = search.getResults().getStatuses();
- }
- }
- if( remoteStatuses != null && remoteStatuses.size() > 0) {
- return remoteStatuses.get(0);
- }else {
- return null;
- }
- }
-
- @Override
- protected void onPostExecute(app.fedilab.android.client.Entities.Status remoteStatuses) {
- Intent intent = new Intent(contextReference.get(), TootActivity.class);
- Bundle b = new Bundle();
- if (remoteStatuses == null) {
- Toasty.error(contextReference.get(), contextReference.get().getString(R.string.toast_error), Toast.LENGTH_SHORT).show();
- return;
- }
- if (remoteStatuses.getReblog() != null) {
- b.putParcelable("tootReply", remoteStatuses.getReblog());
- } else {
- b.putParcelable("tootReply", remoteStatuses);
- }
- intent.putExtras(b); //Put your id to your next Intent
- contextReference.get().startActivity(intent);
- }
- }
-
-
public FullScreenMediaController.fullscreen getFullscreen() {
return fullscreen;
}
@@ -601,12 +555,12 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
String userAgent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT);
int video_cache = sharedpreferences.getInt(Helper.SET_VIDEO_CACHE, Helper.DEFAULT_VIDEO_CACHE_MB);
ProgressiveMediaSource videoSource;
- if( video_cache == 0) {
+ if (video_cache == 0) {
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(PeertubeActivity.this,
Util.getUserAgent(PeertubeActivity.this, userAgent), null);
videoSource = new ProgressiveMediaSource.Factory(dataSourceFactory)
.createMediaSource(Uri.parse(apiResponse.getPeertubes().get(0).getFileUrl(null, apiResponse.getPeertubes().get(0).isStreamService())));
- }else{
+ } else {
CacheDataSourceFactory cacheDataSourceFactory = new CacheDataSourceFactory(PeertubeActivity.this, video_cache * 1024 * 1024, 5 * 1024 * 1024);
videoSource = new ProgressiveMediaSource.Factory(cacheDataSourceFactory)
.createMediaSource(Uri.parse(apiResponse.getPeertubes().get(0).getFileUrl(null, apiResponse.getPeertubes().get(0).isStreamService())));
@@ -684,7 +638,6 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
});
}
-
@Override
public void onConfigurationChanged(@NotNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
@@ -767,7 +720,6 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
}
}
-
@Override
public void onResume() {
super.onResume();
@@ -811,12 +763,12 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
String userAgent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT);
int video_cache = sharedpreferences.getInt(Helper.SET_VIDEO_CACHE, Helper.DEFAULT_VIDEO_CACHE_MB);
ProgressiveMediaSource videoSource;
- if( video_cache == 0) {
+ if (video_cache == 0) {
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(PeertubeActivity.this,
Util.getUserAgent(PeertubeActivity.this, userAgent), null);
videoSource = new ProgressiveMediaSource.Factory(dataSourceFactory)
.createMediaSource(Uri.parse(peertube.getFileUrl(res, peertube.isStreamService())));
- }else{
+ } else {
CacheDataSourceFactory cacheDataSourceFactory = new CacheDataSourceFactory(PeertubeActivity.this, video_cache * 1024 * 1024, 5 * 1024 * 1024);
videoSource = new ProgressiveMediaSource.Factory(cacheDataSourceFactory)
.createMediaSource(Uri.parse(peertube.getFileUrl(res, peertube.isStreamService())));
@@ -839,7 +791,6 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
}
-
private void initFullscreenDialog() {
fullScreenDialog = new Dialog(this, android.R.style.Theme_Black_NoTitleBar_Fullscreen) {
@@ -860,7 +811,6 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
fullScreenDialog.show();
}
-
private void closeFullscreenDialog() {
((ViewGroup) playerView.getParent()).removeView(playerView);
@@ -890,7 +840,6 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
resolution.setOnClickListener(v -> displayResolution());
}
-
private void changeColor() {
if (peertube.getMyRating() != null && peertube.getMyRating().equals("like")) {
changeDrawableColor(PeertubeActivity.this, R.drawable.ic_thumb_up_peertube, R.color.positive_thumbs);
@@ -912,4 +861,49 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
playlists = apiResponse.getPlaylists();
}
}
+
+ private static class commentTask extends AsyncTask {
+
+ private WeakReference contextReference;
+ private Peertube peertube;
+
+ commentTask(WeakReference contextReference, Peertube peertube) {
+ this.peertube = peertube;
+ this.contextReference = contextReference;
+ }
+
+ @Override
+ protected app.fedilab.android.client.Entities.Status doInBackground(Void... voids) {
+
+ List remoteStatuses = null;
+ if (peertube != null) {
+ APIResponse search = new API(contextReference.get()).search("https://" + peertube.getAccount().getHost() + "/videos/watch/" + peertube.getUuid());
+ if (search != null && search.getResults() != null) {
+ remoteStatuses = search.getResults().getStatuses();
+ }
+ }
+ if (remoteStatuses != null && remoteStatuses.size() > 0) {
+ return remoteStatuses.get(0);
+ } else {
+ return null;
+ }
+ }
+
+ @Override
+ protected void onPostExecute(app.fedilab.android.client.Entities.Status remoteStatuses) {
+ Intent intent = new Intent(contextReference.get(), TootActivity.class);
+ Bundle b = new Bundle();
+ if (remoteStatuses == null) {
+ Toasty.error(contextReference.get(), contextReference.get().getString(R.string.toast_error), Toast.LENGTH_SHORT).show();
+ return;
+ }
+ if (remoteStatuses.getReblog() != null) {
+ b.putParcelable("tootReply", remoteStatuses.getReblog());
+ } else {
+ b.putParcelable("tootReply", remoteStatuses);
+ }
+ intent.putExtras(b); //Put your id to your next Intent
+ contextReference.get().startActivity(intent);
+ }
+ }
}
diff --git a/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java b/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java
index 96edc6d7b..18ee706b0 100644
--- a/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java
@@ -737,6 +737,7 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt
attachments.add(attachment);
intent.putParcelableArrayListExtra("mediaArray", attachments);
b.putInt("position", 1);
+ b.putInt("bgcolor", getResources().getColor(R.color.cyanea_primary_dark));
intent.putExtras(b);
startActivity(intent);
});
diff --git a/app/src/main/java/app/fedilab/android/activities/SlideMediaActivity.java b/app/src/main/java/app/fedilab/android/activities/SlideMediaActivity.java
index 695456f1a..58807de8f 100644
--- a/app/src/main/java/app/fedilab/android/activities/SlideMediaActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/SlideMediaActivity.java
@@ -24,7 +24,6 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
-import android.graphics.Color;
import android.graphics.Point;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
@@ -49,11 +48,6 @@ import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
-import com.r0adkll.slidr.Slidr;
-import com.r0adkll.slidr.model.SlidrConfig;
-import com.r0adkll.slidr.model.SlidrInterface;
-import com.r0adkll.slidr.model.SlidrPosition;
-
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
@@ -72,7 +66,7 @@ import es.dmoral.toasty.Toasty;
* Media Activity
*/
-public class SlideMediaActivity extends BaseActivity implements OnDownloadInterface {
+public class SlideMediaActivity extends BaseFragmentActivity implements OnDownloadInterface {
int flags;
private ArrayList attachments;
@@ -80,13 +74,13 @@ public class SlideMediaActivity extends BaseActivity implements OnDownloadInterf
private ViewPager mPager;
private long downloadID;
private boolean fullscreen;
- private SlidrInterface slidrInterface;
private TextView media_description;
private Handler handler;
- private boolean swipeEnabled;
private int minTouch, maxTouch;
private float startX;
private float startY;
+ private int bgColor;
+
private BroadcastReceiver onDownloadComplete = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
@@ -131,21 +125,24 @@ public class SlideMediaActivity extends BaseActivity implements OnDownloadInterf
media_description = findViewById(R.id.media_description);
final int med_desc_timeout = sharedpreferences.getInt(Helper.SET_MED_DESC_TIMEOUT, 3) * 1000;
flags = getWindow().getDecorView().getSystemUiVisibility();
+ if (getIntent().getExtras() != null) {
+ mediaPosition = getIntent().getExtras().getInt("position", 1);
+ bgColor = getIntent().getExtras().getInt("bgcolor", -1);
+ }
- swipeEnabled = true;
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
- //actionBar.setBackgroundDrawable(new ColorDrawable(ContextCompat.getColor(SlideMediaActivity.this, R.color.cyanea_primary)));
+ actionBar.setBackgroundDrawable(new ColorDrawable(bgColor));
LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
assert inflater != null;
View view = inflater.inflate(R.layout.media_action_bar, new LinearLayout(SlideMediaActivity.this), false);
- view.setBackground(new ColorDrawable(ContextCompat.getColor(SlideMediaActivity.this, R.color.cyanea_primary)));
+ view.setBackgroundColor(bgColor);
actionBar.setCustomView(view, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
ImageView toolbar_close = actionBar.getCustomView().findViewById(R.id.toolbar_close);
TextView toolbar_title = actionBar.getCustomView().findViewById(R.id.toolbar_title);
- ImageView media_save = getSupportActionBar().getCustomView().findViewById(R.id.media_save);
- ImageView media_share = getSupportActionBar().getCustomView().findViewById(R.id.media_share);
+ ImageView media_save = actionBar.getCustomView().findViewById(R.id.media_save);
+ ImageView media_share = actionBar.getCustomView().findViewById(R.id.media_share);
toolbar_close.setOnClickListener(v -> finish());
media_save.setOnClickListener(view12 -> {
int position = mPager.getCurrentItem();
@@ -198,8 +195,7 @@ public class SlideMediaActivity extends BaseActivity implements OnDownloadInterf
}
attachments = getIntent().getParcelableArrayListExtra("mediaArray");
- if (getIntent().getExtras() != null)
- mediaPosition = getIntent().getExtras().getInt("position", 1);
+
if (attachments == null || attachments.size() == 0)
finish();
@@ -246,19 +242,7 @@ public class SlideMediaActivity extends BaseActivity implements OnDownloadInterf
}
});
- SlidrConfig config = new SlidrConfig.Builder()
- .sensitivity(1f)
- .scrimColor(Color.BLACK)
- .scrimStartAlpha(0.8f)
- .scrimEndAlpha(0f)
- .position(SlidrPosition.VERTICAL)
- .velocityThreshold(2400)
- .distanceThreshold(0.25f)
- .edgeSize(0.18f)
- .build();
-
- slidrInterface = Slidr.attach(SlideMediaActivity.this, config);
setFullscreen(true);
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
@@ -352,15 +336,6 @@ public class SlideMediaActivity extends BaseActivity implements OnDownloadInterf
super.onPostResume();
}
- public void enableSliding(boolean enable) {
- if (enable && !swipeEnabled) {
- slidrInterface.unlock();
- swipeEnabled = true;
- } else if (!enable && swipeEnabled) {
- slidrInterface.lock();
- swipeEnabled = false;
- }
- }
public boolean getFullScreen() {
return this.fullscreen;
@@ -419,6 +394,7 @@ public class SlideMediaActivity extends BaseActivity implements OnDownloadInterf
MediaSliderFragment mediaSliderFragment = new MediaSliderFragment();
bundle.putInt("position", position);
bundle.putParcelable("attachment", attachments.get(position));
+ bundle.putInt("bgcolor", bgColor);
mediaSliderFragment.setArguments(bundle);
return mediaSliderFragment;
}
diff --git a/app/src/main/java/app/fedilab/android/client/API.java b/app/src/main/java/app/fedilab/android/client/API.java
index 312dec3ac..ebba63033 100644
--- a/app/src/main/java/app/fedilab/android/client/API.java
+++ b/app/src/main/java/app/fedilab/android/client/API.java
@@ -3708,7 +3708,8 @@ public class API {
newStatus.setArt_attachment(attachment);
apiResponseReply.getStatuses().add(newStatus);
}
- }catch (Exception ignored){}
+ } catch (Exception ignored) {
+ }
}
}
}
diff --git a/app/src/main/java/app/fedilab/android/drawers/ArtListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/ArtListAdapter.java
index 0fce270be..859b8b011 100644
--- a/app/src/main/java/app/fedilab/android/drawers/ArtListAdapter.java
+++ b/app/src/main/java/app/fedilab/android/drawers/ArtListAdapter.java
@@ -173,6 +173,7 @@ public class ArtListAdapter extends RecyclerView.Adapter implements OnPostAction
else if (status.getMedia_attachments() != null && status.getMedia_attachments().size() > 0)
attachments.add(status.getMedia_attachments().get(0));
intent.putParcelableArrayListExtra("mediaArray", attachments);
+ b.putInt("bgcolor", context.getResources().getColor(R.color.cyanea_primary_dark));
b.putInt("position", 1);
intent.putExtras(b);
context.startActivity(intent);
diff --git a/app/src/main/java/app/fedilab/android/drawers/ImageAdapter.java b/app/src/main/java/app/fedilab/android/drawers/ImageAdapter.java
index e346f8a24..8c4b76b14 100644
--- a/app/src/main/java/app/fedilab/android/drawers/ImageAdapter.java
+++ b/app/src/main/java/app/fedilab/android/drawers/ImageAdapter.java
@@ -84,6 +84,7 @@ public class ImageAdapter extends RecyclerView.Adapter {
}
intent.putParcelableArrayListExtra("mediaArray", attachmentsTmp);
b.putInt("position", (viewHolder.getAdapterPosition() + 1));
+ b.putInt("bgcolor", context.getResources().getColor(R.color.cyanea_primary_dark));
intent.putExtras(b);
context.startActivity(intent);
});
diff --git a/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java
index bf028988e..e1d77bce0 100644
--- a/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java
+++ b/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java
@@ -1184,6 +1184,7 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On
Bundle b = new Bundle();
intent.putParcelableArrayListExtra("mediaArray", notification.getStatus().getMedia_attachments());
b.putInt("position", finalPosition);
+ b.putInt("bgcolor", context.getResources().getColor(R.color.cyanea_primary_dark));
intent.putExtras(b);
context.startActivity(intent);
});
diff --git a/app/src/main/java/app/fedilab/android/drawers/PixelfedListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/PixelfedListAdapter.java
index 54b5126b7..de0124764 100644
--- a/app/src/main/java/app/fedilab/android/drawers/PixelfedListAdapter.java
+++ b/app/src/main/java/app/fedilab/android/drawers/PixelfedListAdapter.java
@@ -397,6 +397,7 @@ public class PixelfedListAdapter extends RecyclerView.Adapter implements OnPostA
Bundle b = new Bundle();
intent.putParcelableArrayListExtra("mediaArray", status.getMedia_attachments());
b.putInt("position", 1);
+ b.putInt("bgcolor", context.getResources().getColor(R.color.cyanea_primary_dark));
intent.putExtras(b);
context.startActivity(intent);
});
diff --git a/app/src/main/java/app/fedilab/android/drawers/PixelfedStoriesListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/PixelfedStoriesListAdapter.java
index 432d62619..6731b7941 100644
--- a/app/src/main/java/app/fedilab/android/drawers/PixelfedStoriesListAdapter.java
+++ b/app/src/main/java/app/fedilab/android/drawers/PixelfedStoriesListAdapter.java
@@ -134,6 +134,7 @@ public class PixelfedStoriesListAdapter extends RecyclerView.Adapter {
Bundle b = new Bundle();
intent.putParcelableArrayListExtra("mediaArray", attachments);
b.putInt("position", 1);
+ b.putInt("bgcolor", context.getResources().getColor(R.color.cyanea_primary_dark));
intent.putExtras(b);
context.startActivity(intent);
});
diff --git a/app/src/main/java/app/fedilab/android/drawers/SliderAdapter.java b/app/src/main/java/app/fedilab/android/drawers/SliderAdapter.java
index 37ec990cd..310b51280 100644
--- a/app/src/main/java/app/fedilab/android/drawers/SliderAdapter.java
+++ b/app/src/main/java/app/fedilab/android/drawers/SliderAdapter.java
@@ -107,6 +107,7 @@ public class SliderAdapter extends SliderViewAdapter
- new DownloadTrackingDomainsAsyncTask(Objects.requireNonNull(getActivity()), update_tracking_domains).execute()
+ new DownloadTrackingDomainsAsyncTask(Objects.requireNonNull(getActivity()), update_tracking_domains).execute()
);
@@ -1028,7 +1027,7 @@ public class ContentSettingsFragment extends Fragment implements OnRetrieveRemot
int video_cache_size = sharedpreferences.getInt(Helper.SET_VIDEO_CACHE, Helper.DEFAULT_VIDEO_CACHE_MB);
SeekBar set_video_cache_size = rootView.findViewById(R.id.set_video_cache_size);
- set_video_cache_size.setMax(5*Helper.DEFAULT_VIDEO_CACHE_MB);
+ set_video_cache_size.setMax(5 * Helper.DEFAULT_VIDEO_CACHE_MB);
set_video_cache_size.setProgress(video_cache_size);
TextView set_video_cache = rootView.findViewById(R.id.set_video_cache);
set_video_cache.setText(String.valueOf(video_cache_size));
@@ -1051,7 +1050,6 @@ public class ContentSettingsFragment extends Fragment implements OnRetrieveRemot
});
-
int truncate_toots_size = sharedpreferences.getInt(Helper.SET_TRUNCATE_TOOTS_SIZE, 0);
SeekBar set_truncate_size = rootView.findViewById(R.id.set_truncate_size);
set_truncate_size.setMax(20);
diff --git a/app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java b/app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java
index 1c963ba4a..38175411c 100644
--- a/app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java
+++ b/app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java
@@ -20,6 +20,7 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
+import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.media.MediaPlayer;
import android.net.Uri;
@@ -51,12 +52,16 @@ import com.github.chrisbanes.photoview.PhotoView;
import com.google.android.exoplayer2.ExoPlayerFactory;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.SimpleExoPlayer;
-
import com.google.android.exoplayer2.source.ProgressiveMediaSource;
import com.google.android.exoplayer2.ui.PlayerView;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
import com.google.android.exoplayer2.util.Util;
+import com.r0adkll.slidr.Slidr;
+import com.r0adkll.slidr.model.SlidrConfig;
+import com.r0adkll.slidr.model.SlidrInterface;
+import com.r0adkll.slidr.model.SlidrListener;
+import com.r0adkll.slidr.model.SlidrPosition;
import org.jetbrains.annotations.NotNull;
@@ -107,6 +112,9 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl
private ImageButton playView;
private GLAudioVisualizationView visualizerView;
private View rootView;
+ private SlidrInterface slidrInterface;
+ private boolean swipeEnabled;
+ private int bgColor;
public MediaSliderFragment() {
}
@@ -120,8 +128,10 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl
if (bundle != null) {
attachment = bundle.getParcelable("attachment");
- }
+ bgColor = bundle.getInt("bgcolor", R.color.black);
+ }
+ swipeEnabled = true;
message_ready = rootView.findViewById(R.id.message_ready);
RelativeLayout content_audio = rootView.findViewById(R.id.content_audio);
@@ -154,9 +164,9 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl
if (!((SlideMediaActivity) context).getFullScreen()) {
((SlideMediaActivity) context).setFullscreen(true);
}
- ((SlideMediaActivity) context).enableSliding(false);
+ enableSliding(false);
} else {
- ((SlideMediaActivity) context).enableSliding(true);
+ enableSliding(true);
}
});
ProgressBar pbar_inf = rootView.findViewById(R.id.pbar_inf);
@@ -173,6 +183,11 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl
attachment.setType(type);
}
+ if (bgColor != -1) {
+ RelativeLayout media_fragment_container = rootView.findViewById(R.id.media_fragment_container);
+ media_fragment_container.setBackgroundColor(bgColor);
+ }
+
switch (type.toLowerCase()) {
case "image":
pbar_inf.setScaleY(1f);
@@ -242,12 +257,12 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl
String userAgent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT);
int video_cache = sharedpreferences.getInt(Helper.SET_VIDEO_CACHE, Helper.DEFAULT_VIDEO_CACHE_MB);
ProgressiveMediaSource videoSource;
- if( video_cache == 0) {
+ if (video_cache == 0) {
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(context,
Util.getUserAgent(context, userAgent), null);
videoSource = new ProgressiveMediaSource.Factory(dataSourceFactory)
.createMediaSource(uri);
- }else{
+ } else {
CacheDataSourceFactory cacheDataSourceFactory = new CacheDataSourceFactory(context, video_cache * 1024 * 1024, 5 * 1024 * 1024);
videoSource = new ProgressiveMediaSource.Factory(cacheDataSourceFactory)
.createMediaSource(uri);
@@ -291,9 +306,7 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl
webview_video.getSettings().setDomStorageEnabled(true);
webview_video.getSettings().setAppCacheEnabled(true);
String user_agent = sharedpreferences.getString(Helper.SET_CUSTOM_USER_AGENT, Helper.USER_AGENT);
- if (user_agent != null) {
- webview_video.getSettings().setUserAgentString(user_agent);
- }
+ webview_video.getSettings().setUserAgentString(user_agent);
webview_video.getSettings().setMediaPlaybackRequiresUserGesture(false);
webview_video.setWebViewClient(new MastalabWebViewClient((Activity) context));
webview_video.loadUrl(attachment.getUrl());
@@ -491,8 +504,49 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl
visualizerView.onResume();
} catch (Exception ignored) {
}
+ if (slidrInterface == null && rootView != null) {
+ slidrInterface = Slidr.replace(rootView.findViewById(R.id.media_fragment_container), new SlidrConfig.Builder().sensitivity(1f)
+ .scrimColor(Color.BLACK)
+ .scrimStartAlpha(0.8f)
+ .scrimEndAlpha(0f)
+ .position(SlidrPosition.VERTICAL)
+ .velocityThreshold(2400)
+ .distanceThreshold(0.25f)
+ .edgeSize(0.18f)
+ .listener(new SlidrListener() {
+ @Override
+ public void onSlideStateChanged(int state) {
+
+ }
+
+ @Override
+ public void onSlideChange(float percent) {
+ ((SlideMediaActivity) context).setFullscreen(true);
+ }
+
+ @Override
+ public void onSlideOpened() {
+
+ }
+
+ @Override
+ public boolean onSlideClosed() {
+ return false;
+ }
+ })
+ .build());
+ }
}
+ private void enableSliding(boolean enable) {
+ if (enable && !swipeEnabled) {
+ slidrInterface.unlock();
+ swipeEnabled = true;
+ } else if (!enable && swipeEnabled) {
+ slidrInterface.lock();
+ swipeEnabled = false;
+ }
+ }
@Override
public void onCompletion(MediaPlayer mp) {
diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java
index 50f324922..53a06f5f4 100644
--- a/app/src/main/java/app/fedilab/android/helper/Helper.java
+++ b/app/src/main/java/app/fedilab/android/helper/Helper.java
@@ -472,8 +472,6 @@ public class Helper {
public static final String EP_AUTHORIZE = "/oauth/authorize";
-
-
//Proxy
public static final String SET_PROXY_ENABLED = "set_proxy_enabled";
public static final String SET_PROXY_TYPE = "set_proxy_type";
diff --git a/app/src/main/java/app/fedilab/android/imageeditor/TextEditorDialogFragment.java b/app/src/main/java/app/fedilab/android/imageeditor/TextEditorDialogFragment.java
index 2e6c88b12..e366618a7 100644
--- a/app/src/main/java/app/fedilab/android/imageeditor/TextEditorDialogFragment.java
+++ b/app/src/main/java/app/fedilab/android/imageeditor/TextEditorDialogFragment.java
@@ -81,7 +81,7 @@ public class TextEditorDialogFragment extends DialogFragment {
public void onViewCreated(@NotNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mAddTextEditText = view.findViewById(R.id.add_text_edit_text);
- if( getActivity() != null) {
+ if (getActivity() != null) {
mInputMethodManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
TextView mAddTextDoneTextView = view.findViewById(R.id.add_text_done_tv);
diff --git a/app/src/main/res/layout/activity_media_pager.xml b/app/src/main/res/layout/activity_media_pager.xml
index caca26c2a..00688cf9e 100644
--- a/app/src/main/res/layout/activity_media_pager.xml
+++ b/app/src/main/res/layout/activity_media_pager.xml
@@ -17,6 +17,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_height="match_parent"
+ android:background="@android:color/transparent">
-
-
+
+
+ android:gravity="center">
+
+
-
-
-
-
-
-
-
-
+ android:layout_gravity="center"
+ android:gravity="center"
+ android:textColor="@color/dark_text"
+ android:textSize="12sp" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/media_action_bar.xml b/app/src/main/res/layout/media_action_bar.xml
index 366a75f84..20e68d9ba 100644
--- a/app/src/main/res/layout/media_action_bar.xml
+++ b/app/src/main/res/layout/media_action_bar.xml
@@ -20,7 +20,6 @@
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="?colorPrimary"
android:contentInsetStart="0dp"
android:contentInsetLeft="0dp"
android:contentInsetEnd="0dp"
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index ed4f7064e..a1e3643bd 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -152,27 +152,28 @@
- @color/black
- @color/light_link_toot
- @drawable/menu_selector
+ - true