diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/api/twitter/Tokens.java b/app/src/main/java/org/nuclearfog/twidda/backend/api/twitter/Tokens.java
index a7e1f36b..e64d4979 100644
--- a/app/src/main/java/org/nuclearfog/twidda/backend/api/twitter/Tokens.java
+++ b/app/src/main/java/org/nuclearfog/twidda/backend/api/twitter/Tokens.java
@@ -19,7 +19,7 @@ public class Tokens {
* false means there are no API keys available
* set to true when {@link #CONSUMER_TOKEN} and {@link #TOKEN_SECRET} are set
*/
- public static final boolean USE_DEFAULT_KEYS = true;
+ public static final boolean USE_DEFAULT_KEYS = false;
/**
* for compability mode disable Twitter API version 2.0 (use only version 1.1) if the API access don't support this.
diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/helper/StatusUpdate.java b/app/src/main/java/org/nuclearfog/twidda/backend/helper/StatusUpdate.java
index 43916e02..a6d7d431 100644
--- a/app/src/main/java/org/nuclearfog/twidda/backend/helper/StatusUpdate.java
+++ b/app/src/main/java/org/nuclearfog/twidda/backend/helper/StatusUpdate.java
@@ -8,6 +8,9 @@ import android.net.Uri;
import androidx.annotation.NonNull;
import androidx.documentfile.provider.DocumentFile;
+import org.nuclearfog.twidda.config.Configuration;
+import org.nuclearfog.twidda.config.GlobalSettings;
+
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
@@ -44,20 +47,6 @@ public class StatusUpdate {
*/
public static final int MEDIA_GIF = 3;
- /**
- * image limit of a status
- */
- private static final int MAX_IMAGES = 4;
-
- /**
- * video limit of a status
- */
- private static final int MAX_VIDEOS = 1;
-
- /**
- * gif limit of a status
- */
- private static final int MAX_GIF = 1;
private static final String MIME_GIF = "image/gif";
private static final String MIME_IMAGE_ALL = "image/";
@@ -98,6 +87,7 @@ public class StatusUpdate {
*/
public int addMedia(Context context, Uri mediaUri) {
String mime = context.getContentResolver().getType(mediaUri);
+ Configuration configuration = GlobalSettings.getInstance(context).getLogin().getConfiguration();
if (mime == null) {
return MEDIA_ERROR;
}
@@ -111,7 +101,7 @@ public class StatusUpdate {
DocumentFile file = DocumentFile.fromSingleUri(context, mediaUri);
if (file != null && file.length() > 0) {
mediaUris.add(mediaUri);
- if (mediaUris.size() == MAX_GIF) {
+ if (mediaUris.size() == configuration.getGifLimit()) {
mediaLimitReached = true;
}
return MEDIA_GIF;
@@ -130,7 +120,7 @@ public class StatusUpdate {
DocumentFile file = DocumentFile.fromSingleUri(context, mediaUri);
if (file != null && file.length() > 0) {
mediaUris.add(mediaUri);
- if (mediaUris.size() == MAX_IMAGES) {
+ if (mediaUris.size() == configuration.getImageLimit()) {
mediaLimitReached = true;
}
return MEDIA_IMAGE;
@@ -144,11 +134,11 @@ public class StatusUpdate {
case MEDIA_NONE:
mediaType = MEDIA_VIDEO;
- case MAX_VIDEOS:
+ case MEDIA_VIDEO:
DocumentFile file = DocumentFile.fromSingleUri(context, mediaUri);
if (file != null && file.length() > 0) {
mediaUris.add(mediaUri);
- if (mediaUris.size() == MAX_VIDEOS) {
+ if (mediaUris.size() == configuration.getVideoLimit()) {
mediaLimitReached = true;
}
return MEDIA_VIDEO;
diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/utils/StringTools.java b/app/src/main/java/org/nuclearfog/twidda/backend/utils/StringTools.java
index 4e872366..e88d8a98 100644
--- a/app/src/main/java/org/nuclearfog/twidda/backend/utils/StringTools.java
+++ b/app/src/main/java/org/nuclearfog/twidda/backend/utils/StringTools.java
@@ -181,21 +181,6 @@ public class StringTools {
return buf.toString();
}
- /**
- * count @username mentions in a string
- *
- * @param text text
- * @return username count
- */
- public static int countMentions(String text) {
- int result = 0;
- Matcher m = MENTION.matcher(text);
- while (m.find()) {
- result++;
- }
- return result;
- }
-
/**
* convert time strings from different APIs to the local format
*
diff --git a/app/src/main/java/org/nuclearfog/twidda/config/Configuration.java b/app/src/main/java/org/nuclearfog/twidda/config/Configuration.java
index 1e202b10..1dfadd04 100644
--- a/app/src/main/java/org/nuclearfog/twidda/config/Configuration.java
+++ b/app/src/main/java/org/nuclearfog/twidda/config/Configuration.java
@@ -38,6 +38,9 @@ public enum Configuration {
private final boolean profileUrlEnabled;
private final boolean idBlocklistEnabled;
private final boolean postLocationSupported;
+ private final int maxImages;
+ private final int maxGifs;
+ private final int maxVideos;
/**
* @param accountType account login type, see {@link Account}
@@ -55,6 +58,9 @@ public enum Configuration {
profileUrlEnabled = true;
idBlocklistEnabled = true;
postLocationSupported = true;
+ maxImages = 4;
+ maxGifs = 1;
+ maxVideos = 1;
break;
case Account.API_MASTODON:
@@ -66,6 +72,9 @@ public enum Configuration {
profileUrlEnabled = false;
idBlocklistEnabled = false;
postLocationSupported = false;
+ maxImages = 4;
+ maxGifs = 1;
+ maxVideos = 1;
break;
default:
@@ -77,6 +86,9 @@ public enum Configuration {
profileUrlEnabled = false;
idBlocklistEnabled = false;
postLocationSupported = false;
+ maxImages = 4;
+ maxGifs = 1;
+ maxVideos = 1;
break;
}
}
@@ -143,4 +155,25 @@ public enum Configuration {
public boolean locationSupported() {
return postLocationSupported;
}
+
+ /**
+ * @return image limit for posts
+ */
+ public int getImageLimit() {
+ return maxImages;
+ }
+
+ /**
+ * @return video limit for posts
+ */
+ public int getVideoLimit() {
+ return maxVideos;
+ }
+
+ /**
+ * @return gif limit for posts
+ */
+ public int getGifLimit() {
+ return maxGifs;
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/org/nuclearfog/twidda/ui/activities/StatusEditor.java b/app/src/main/java/org/nuclearfog/twidda/ui/activities/StatusEditor.java
index 3e88c6b2..0e07b234 100644
--- a/app/src/main/java/org/nuclearfog/twidda/ui/activities/StatusEditor.java
+++ b/app/src/main/java/org/nuclearfog/twidda/ui/activities/StatusEditor.java
@@ -33,7 +33,6 @@ import org.nuclearfog.twidda.backend.async.StatusUpdater;
import org.nuclearfog.twidda.backend.helper.StatusUpdate;
import org.nuclearfog.twidda.backend.utils.AppStyles;
import org.nuclearfog.twidda.backend.utils.ErrorHandler;
-import org.nuclearfog.twidda.backend.utils.StringTools;
import org.nuclearfog.twidda.config.GlobalSettings;
import org.nuclearfog.twidda.ui.dialogs.ConfirmDialog;
import org.nuclearfog.twidda.ui.dialogs.ConfirmDialog.OnConfirmListener;
@@ -59,11 +58,6 @@ public class StatusEditor extends MediaActivity implements OnClickListener, OnPr
*/
public static final String KEY_STATUS_EDITOR_TEXT = "status_text";
- /**
- * mention limit of a status
- */
- private static final int MAX_MENTIONS = 10;
-
private ImageButton mediaBtn, locationBtn;
private EditText statusText;
private View locationPending;
@@ -166,10 +160,6 @@ public class StatusEditor extends MediaActivity implements OnClickListener, OnPr
if (statusText.trim().isEmpty() && statusUpdate.mediaCount() == 0) {
Toast.makeText(getApplicationContext(), R.string.error_empty_tweet, LENGTH_SHORT).show();
}
- // check if mentions exceed the limit
- else if (StringTools.countMentions(statusText) > MAX_MENTIONS) {
- Toast.makeText(getApplicationContext(), R.string.error_mention_exceed, LENGTH_SHORT).show();
- }
// check if GPS location is pending
else if (isLocating()) {
Toast.makeText(getApplicationContext(), R.string.info_location_pending, LENGTH_SHORT).show();
diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml
index 1ff4cc17..fe803a44 100644
--- a/app/src/main/res/values-de-rDE/strings.xml
+++ b/app/src/main/res/values-de-rDE/strings.xml
@@ -176,7 +176,6 @@
Consumer Secret
Fehler während des Abruf
Fehler, API Zugang wurde abgelehnt! Bitte API Schlüssel überprüfen!
- Zu viele Nutzer Erwähnungen!
Fehler, API Schlüssel veraltet, bitte App aktualisieren!
Ortung läuft, bitte warten.
Twitter Regeln:
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 0f44cb5c..03883fd9 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -151,7 +151,6 @@
用户信息更新失败!请检查您输入的内容!
错误,API 访问被拒绝!请检察您的 API 密钥。
错误,API 密钥已过期!请更新应用!
- 提及用户过多!
未定义错误!
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 615e70c4..b0819dc4 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -100,7 +100,6 @@
Error, API access denied! Please check your API Keys.
Error, API access limited by Twitter!
Error, API Keys expired! Please update app!
- Too much mentions!
Error, result cancelled!
Error, search query is too long or contains illegal characters!
Invalid media file!
diff --git a/build.gradle b/build.gradle
index fda29a59..b4fc6796 100644
--- a/build.gradle
+++ b/build.gradle
@@ -9,7 +9,7 @@ buildscript {
}
dependencies {
- classpath 'com.android.tools.build:gradle:7.4.0'
+ classpath 'com.android.tools.build:gradle:7.4.1'
classpath 'io.michaelrocks:paranoid-gradle-plugin:0.3.7' // fixme Find replacement
classpath 'gradle.plugin.ru.cleverpumpkin.proguard-dictionaries-generator:plugin:1.0.8'
}