bug fix, AGP update
This commit is contained in:
parent
4a0a76fdfb
commit
234825389c
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
*
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 -->
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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'
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue