bug fix, AGP update

This commit is contained in:
nuclearfog 2023-02-04 14:41:27 +01:00
parent 4a0a76fdfb
commit 234825389c
No known key found for this signature in database
GPG Key ID: 03488A185C476379
9 changed files with 43 additions and 48 deletions

View File

@ -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.

View File

@ -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;

View File

@ -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
*

View File

@ -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;
}
}

View File

@ -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();

View File

@ -176,7 +176,6 @@
<string name="settings_key2_hint">Consumer Secret</string>
<string name="error_acc_loading">Fehler während des Abruf</string>
<string name="error_api_access_denied">Fehler, API Zugang wurde abgelehnt! Bitte API Schlüssel überprüfen!</string>
<string name="error_mention_exceed">Zu viele Nutzer Erwähnungen!</string>
<string name="error_api_key_expired">Fehler, API Schlüssel veraltet, bitte App aktualisieren!</string>
<string name="info_location_pending">Ortung läuft, bitte warten.</string>
<string name="app_info_twitter_rules">Twitter Regeln:</string>

View File

@ -151,7 +151,6 @@
<string name="error_acc_update">用户信息更新失败!请检查您输入的内容!</string>
<string name="error_api_access_denied">错误API 访问被拒绝!请检察您的 API 密钥。</string>
<string name="error_api_key_expired">错误API 密钥已过期!请更新应用!</string>
<string name="error_mention_exceed">提及用户过多!</string>
<string name="error_not_defined">未定义错误!</string>
<!-- menu icon strings -->

View File

@ -100,7 +100,6 @@
<string name="error_api_access_denied">Error, API access denied! Please check your API Keys.</string>
<string name="error_api_access_limited">Error, API access limited by Twitter!</string>
<string name="error_api_key_expired">Error, API Keys expired! Please update app!</string>
<string name="error_mention_exceed">Too much mentions!</string>
<string name="error_result_cancelled">Error, result cancelled!</string>
<string name="error_twitter_search">Error, search query is too long or contains illegal characters!</string>
<string name="error_invalid_media">Invalid media file!</string>

View File

@ -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'
}