bug fix
This commit is contained in:
parent
dcd2091b8d
commit
3e9b97c230
|
@ -33,7 +33,7 @@ public class DatabaseAction extends AsyncExecutor<DatabaseAction.DatabaseParam,
|
|||
} catch (Exception exception) {
|
||||
exception.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
return new DatabaseResult(DatabaseResult.ERROR);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -55,6 +55,7 @@ public class DatabaseAction extends AsyncExecutor<DatabaseAction.DatabaseParam,
|
|||
*/
|
||||
public static class DatabaseResult {
|
||||
|
||||
public static final int ERROR = -1;
|
||||
public static final int DELETE = 1;
|
||||
|
||||
public final int mode;
|
||||
|
|
|
@ -8,7 +8,6 @@ import android.util.LruCache;
|
|||
import androidx.annotation.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
|
@ -100,6 +99,7 @@ public class ImageCache {
|
|||
if (file.createNewFile()) {
|
||||
FileOutputStream output = new FileOutputStream(file);
|
||||
image.compress(Bitmap.CompressFormat.PNG, 1, output);
|
||||
output.close();
|
||||
files.put(key, file);
|
||||
}
|
||||
} catch (IOException|SecurityException e) {
|
||||
|
@ -118,15 +118,16 @@ public class ImageCache {
|
|||
public synchronized Bitmap getImage(String key) {
|
||||
Bitmap result = cache.get(key);
|
||||
if (result == null) {
|
||||
File file = files.get(key);
|
||||
if (file != null) {
|
||||
try {
|
||||
FileInputStream inputStream = new FileInputStream(file);
|
||||
result = BitmapFactory.decodeStream(inputStream);
|
||||
cache.put(key, result);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
try {
|
||||
File file = files.get(key);
|
||||
if (file != null && file.canRead()) {
|
||||
result = BitmapFactory.decodeFile(file.getAbsolutePath());
|
||||
if (result != null) {
|
||||
cache.put(key, result);
|
||||
}
|
||||
}
|
||||
} catch (SecurityException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
@ -139,7 +140,7 @@ public class ImageCache {
|
|||
public synchronized void trimCache() {
|
||||
File[] files = imageFolder.listFiles();
|
||||
if (files != null) {
|
||||
long size = 0;
|
||||
long size = 0L;
|
||||
for (File file : files) {
|
||||
size += file.length();
|
||||
}
|
||||
|
|
|
@ -809,7 +809,7 @@ public class ProfileActivity extends AppCompatActivity implements ActivityResult
|
|||
profileImage.setImageResource(0);
|
||||
}
|
||||
}
|
||||
if (user.getEmojis().length > 0) {
|
||||
if (settings.imagesEnabled() && user.getEmojis().length > 0) {
|
||||
if (!user.getUsername().isEmpty()) {
|
||||
SpannableString usernameSpan = new SpannableString(user.getUsername());
|
||||
EmojiParam param = new EmojiParam(user.getEmojis(), usernameSpan, getResources().getDimensionPixelSize(R.dimen.profile_icon_size));
|
||||
|
|
|
@ -598,8 +598,12 @@ public class SettingsActivity extends AppCompatActivity implements OnClickListen
|
|||
* called from {@link DatabaseAction}
|
||||
*/
|
||||
private void onDatabaseResult(@NonNull DatabaseResult result) {
|
||||
setResult(RETURN_DATA_CLEARED);
|
||||
Toast.makeText(getApplicationContext(), R.string.info_database_cleared, Toast.LENGTH_SHORT).show();
|
||||
if (result.mode == DatabaseResult.DELETE) {
|
||||
setResult(RETURN_DATA_CLEARED);
|
||||
Toast.makeText(getApplicationContext(), R.string.info_database_cleared, Toast.LENGTH_SHORT).show();
|
||||
} else if (result.mode == DatabaseResult.ERROR) {
|
||||
Toast.makeText(getApplicationContext(), R.string.error_database_cleared, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -922,14 +922,16 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
cardList.setVisibility(View.GONE);
|
||||
statusText.setMaxLines(10);
|
||||
}
|
||||
if (status.getEmojis().length > 0 && spannableText != null) {
|
||||
EmojiParam param = new EmojiParam(status.getEmojis(), spannableText, getResources().getDimensionPixelSize(R.dimen.page_status_icon_size));
|
||||
emojiAsync.execute(param, statusTextUpdate);
|
||||
}
|
||||
if (author.getEmojis().length > 0 && !author.getUsername().isEmpty()) {
|
||||
SpannableString usernameSpan = new SpannableString(author.getUsername());
|
||||
EmojiParam param = new EmojiParam(author.getEmojis(), usernameSpan, getResources().getDimensionPixelSize(R.dimen.page_status_icon_size));
|
||||
emojiAsync.execute(param, usernameUpdate);
|
||||
if (settings.imagesEnabled()) {
|
||||
if (status.getEmojis().length > 0 && spannableText != null) {
|
||||
EmojiParam param = new EmojiParam(status.getEmojis(), spannableText, getResources().getDimensionPixelSize(R.dimen.page_status_icon_size));
|
||||
emojiAsync.execute(param, statusTextUpdate);
|
||||
}
|
||||
if (author.getEmojis().length > 0 && !author.getUsername().isEmpty()) {
|
||||
SpannableString usernameSpan = new SpannableString(author.getUsername());
|
||||
EmojiParam param = new EmojiParam(author.getEmojis(), usernameSpan, getResources().getDimensionPixelSize(R.dimen.page_status_icon_size));
|
||||
emojiAsync.execute(param, usernameUpdate);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -960,9 +962,9 @@ public class StatusActivity extends AppCompatActivity implements OnClickListener
|
|||
// append translation
|
||||
statusText.append(textSpan);
|
||||
translateText.setText(R.string.status_translate_source);
|
||||
translateText.append(translation.getSource());
|
||||
// scroll to translation
|
||||
|
||||
translateText.append(translation.getSource() + ", ");
|
||||
translateText.append(getString(R.string.status_translate_source_language));
|
||||
translateText.append(translation.getOriginalLanguage());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ import jp.wasabeef.picasso.transformations.RoundedCornersTransformation;
|
|||
public class StatusHolder extends ViewHolder implements OnClickListener {
|
||||
|
||||
private ImageView profile, repostUserIcon, verifiedIcon, lockedIcon, repostIcon, favoriteIcon, replyStatus;
|
||||
private TextView username, screenname, text, repost, favorite, reply, reposter, created, replyname, label;
|
||||
private TextView username, screenname, statusText, repost, favorite, reply, reposter, created, replyname, label;
|
||||
private View dismissButton;
|
||||
private RecyclerView iconList;
|
||||
|
||||
|
@ -88,7 +88,7 @@ public class StatusHolder extends ViewHolder implements OnClickListener {
|
|||
replyStatus = itemView.findViewById(R.id.item_status_reply);
|
||||
username = itemView.findViewById(R.id.item_status_author_username);
|
||||
screenname = itemView.findViewById(R.id.item_status_author_screenname);
|
||||
text = itemView.findViewById(R.id.item_status_text);
|
||||
statusText = itemView.findViewById(R.id.item_status_text);
|
||||
repost = itemView.findViewById(R.id.item_status_repost_count);
|
||||
favorite = itemView.findViewById(R.id.item_status_favorite_count);
|
||||
reply = itemView.findViewById(R.id.item_status_reply_count);
|
||||
|
@ -155,18 +155,18 @@ public class StatusHolder extends ViewHolder implements OnClickListener {
|
|||
created.setText(StringTools.formatCreationTime(itemView.getResources(), status.getTimestamp()));
|
||||
if (!status.getText().trim().isEmpty()) {
|
||||
textSpan = Tagger.makeTextWithLinks(status.getText(), settings.getHighlightColor());
|
||||
text.setText(textSpan);
|
||||
text.setVisibility(View.VISIBLE);
|
||||
statusText.setText(textSpan);
|
||||
statusText.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
text.setVisibility(View.GONE);
|
||||
statusText.setVisibility(View.GONE);
|
||||
}
|
||||
if (settings.hideSensitiveEnabled() && status.isSpoiler()) {
|
||||
text.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
|
||||
float radius = text.getTextSize() / 3;
|
||||
statusText.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
|
||||
float radius = statusText.getTextSize() / 3;
|
||||
BlurMaskFilter filter = new BlurMaskFilter(radius, BlurMaskFilter.Blur.NORMAL);
|
||||
text.getPaint().setMaskFilter(filter);
|
||||
statusText.getPaint().setMaskFilter(filter);
|
||||
} else {
|
||||
text.getPaint().setMaskFilter(null);
|
||||
statusText.getPaint().setMaskFilter(null);
|
||||
}
|
||||
if (status.isReposted()) {
|
||||
repostIcon.setColorFilter(settings.getRepostIconColor());
|
||||
|
@ -218,14 +218,16 @@ public class StatusHolder extends ViewHolder implements OnClickListener {
|
|||
} else {
|
||||
iconList.setVisibility(View.GONE);
|
||||
}
|
||||
if (textSpan != null && status.getEmojis().length > 0) {
|
||||
EmojiParam param = new EmojiParam(tagId, status.getEmojis(), textSpan, text.getResources().getDimensionPixelSize(R.dimen.item_status_icon_size));
|
||||
emojiLoader.execute(param, textResult);
|
||||
}
|
||||
if (!user.getUsername().isEmpty() && user.getEmojis().length > 0) {
|
||||
SpannableString userSpan = new SpannableString(user.getUsername());
|
||||
EmojiParam param = new EmojiParam(tagId, user.getEmojis(), userSpan, text.getResources().getDimensionPixelSize(R.dimen.item_status_icon_size));
|
||||
emojiLoader.execute(param, usernameResult);
|
||||
if (settings.imagesEnabled()) {
|
||||
if (status.getEmojis().length > 0 && textSpan != null) {
|
||||
EmojiParam param = new EmojiParam(tagId, status.getEmojis(), textSpan, statusText.getResources().getDimensionPixelSize(R.dimen.item_status_icon_size));
|
||||
emojiLoader.execute(param, textResult);
|
||||
}
|
||||
if (user.getEmojis().length > 0 && !user.getUsername().isEmpty()) {
|
||||
SpannableString userSpan = new SpannableString(user.getUsername());
|
||||
EmojiParam param = new EmojiParam(tagId, user.getEmojis(), userSpan, statusText.getResources().getDimensionPixelSize(R.dimen.item_status_icon_size));
|
||||
emojiLoader.execute(param, usernameResult);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -298,8 +300,8 @@ public class StatusHolder extends ViewHolder implements OnClickListener {
|
|||
*/
|
||||
private void setTextEmojis(@NonNull EmojiResult result) {
|
||||
if (result.id == tagId && result.images != null) {
|
||||
Spannable spannable = TextWithEmoji.addEmojis(text.getContext(), result.spannable, result.images);
|
||||
text.setText(spannable);
|
||||
Spannable spannable = TextWithEmoji.addEmojis(statusText.getContext(), result.spannable, result.images);
|
||||
statusText.setText(spannable);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -143,7 +143,7 @@ public class UserHolder extends ViewHolder implements OnClickListener, AsyncCall
|
|||
} else {
|
||||
profileImg.setImageResource(0);
|
||||
}
|
||||
if (!user.getUsername().isEmpty() && user.getEmojis().length > 0) {
|
||||
if (settings.imagesEnabled() && user.getEmojis().length > 0 && !user.getUsername().isEmpty()) {
|
||||
SpannableString userSpan = new SpannableString(user.getUsername());
|
||||
EmojiParam param = new EmojiParam(tagId, user.getEmojis(), userSpan, username.getResources().getDimensionPixelSize(R.dimen.item_user_icon_size));
|
||||
emojiLoader.execute(param, this);
|
||||
|
|
|
@ -170,6 +170,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
android:text="@string/status_translate_text"
|
||||
android:lines="1"
|
||||
app:layout_constraintStart_toStartOf="@id/page_status_text"
|
||||
app:layout_constraintTop_toBottomOf="@id/page_status_text"/>
|
||||
|
||||
|
|
|
@ -295,4 +295,6 @@
|
|||
<string name="status_contains_spoiler">Spoiler!</string>
|
||||
<string name="settings_hide_sensitive">verstecke sensible Inhalte</string>
|
||||
<string name="status_translate_source">Übersetzt von:\u0020</string>
|
||||
<string name="error_database_cleared">Fehler beim Löschen der Datanbank!</string>
|
||||
<string name="status_translate_source_language">Sprache:\u0020</string>
|
||||
</resources>
|
|
@ -102,6 +102,7 @@
|
|||
<string name="error_api_access_limited">Error, API access limited by Twitter!</string>
|
||||
<string name="error_json_format">JSON error!</string>
|
||||
<string name="error_api_key_expired">Error, API Keys expired! Please update app!</string>
|
||||
<string name="error_database_cleared">Error while clearing database!</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_wrong_connection_settings">wrong connection settings! Discarc changes?</string>
|
||||
|
@ -296,6 +297,7 @@
|
|||
<string name="account_page" translatable="false">Accounts</string>
|
||||
<string name="status_translate_text">translate</string>
|
||||
<string name="status_translate_source">Translated by:\u0020</string>
|
||||
<string name="status_translate_source_language">Language:\u0020</string>
|
||||
<string name="confirm_remove_account">remove account from list?</string>
|
||||
<string name="dialog_confirm_warning">Warning</string>
|
||||
<string name="dialog_warning_videoview">videoplayer does not support proxy! Continue without proxy connection?</string>
|
||||
|
|
Loading…
Reference in New Issue