summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/app/fedilab/android/BaseMainActivity.java32
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/activities/ComposeActivity.java6
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/activities/DirectMessageActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/activities/MediaActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminAccountActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminReportActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Account.java9
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Announcement.java2
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Field.java4
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Poll.java2
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Status.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/client/entities/nitter/Nitter.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/helper/CrossActionHelper.java7
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/helper/Helper.java38
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/helper/NotificationsHelper.java53
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/helper/PushNotifications.java7
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/helper/SpannableHelper.java67
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/helper/TimelineHelper.java7
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/jobs/FetchHomeWorker.java7
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/drawer/ComposeAdapter.java13
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java12
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java50
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentThemingSettings.java1
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonContext.java10
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AccountsVM.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AdminVM.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AnnouncementsVM.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AppsVM.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/FiltersVM.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/InstanceSocialVM.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/InstancesVM.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/JoinInstancesVM.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/NodeInfoVM.java7
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/NotificationsVM.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/OauthVM.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/OembedVM.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/ReorderVM.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/SearchVM.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/TagVM.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/TimelinesVM.java8
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/viewmodel/pleroma/ActionsVM.java8
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/client/RetrofitPeertubeAPI.java13
-rw-r--r--app/src/main/res/drawables/mastodon/drawable/bubble_left_tail.xml4
-rw-r--r--app/src/main/res/drawables/mastodon/drawable/bubble_right_tail.xml4
-rw-r--r--app/src/main/res/layouts/mastodon/layout/activity_pagination.xml1
-rw-r--r--app/src/main/res/layouts/mastodon/layout/drawer_status_chat.xml5
-rw-r--r--app/src/main/res/values-ja/strings.xml6
-rw-r--r--src/fdroid/fastlane/metadata/android/en/full_description.txt19
49 files changed, 241 insertions, 299 deletions
diff --git a/app/src/main/java/app/fedilab/android/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/BaseMainActivity.java
index 0798dbd65..182920a2c 100644
--- a/app/src/main/java/app/fedilab/android/BaseMainActivity.java
+++ b/app/src/main/java/app/fedilab/android/BaseMainActivity.java
@@ -650,6 +650,24 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
* @param intent - Intent intent that will be cancelled
*/
private static void openNotifications(Activity activity, Intent intent) {
+ if (intent != null && intent.getExtras() != null) {
+ Bundle bundle = intent.getExtras();
+ app.fedilab.android.mastodon.client.entities.api.Account account = (app.fedilab.android.mastodon.client.entities.api.Account) bundle.getSerializable(Helper.INTENT_TARGETED_ACCOUNT);
+ Status status = (Status) bundle.getSerializable(Helper.INTENT_TARGETED_STATUS);
+ if (account != null) {
+ Intent intentAccount = new Intent(activity, ProfileActivity.class);
+ Bundle b = new Bundle();
+ b.putSerializable(Helper.ARG_ACCOUNT, account);
+ intentAccount.putExtras(b);
+ intentAccount.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ activity.startActivity(intentAccount);
+ } else if (status != null) {
+ Intent intentContext = new Intent(activity, ContextActivity.class);
+ intentContext.putExtra(Helper.ARG_STATUS, status);
+ intentContext.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ activity.startActivity(intentContext);
+ }
+ }
final Handler handler = new Handler();
handler.postDelayed(() -> {
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(activity);
@@ -682,6 +700,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
intent.removeExtra(Helper.INTENT_ACTION);
}
+
@SuppressLint("ApplySharedPref")
public static void mamageNewIntent(Activity activity, Intent intent) {
if (intent == null)
@@ -733,6 +752,10 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
editor.commit();
Intent mainActivity = new Intent(activity, MainActivity.class);
mainActivity.putExtra(Helper.INTENT_ACTION, Helper.OPEN_NOTIFICATION);
+ Bundle bundle = intent.getExtras();
+ if (bundle != null) {
+ mainActivity.putExtras(bundle);
+ }
activity.startActivity(mainActivity);
activity.finish();
} catch (DBException e) {
@@ -1107,12 +1130,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
}
//If the attached account is null, the app will fetch remote instance to get up-to-date values
if (currentAccount != null && currentAccount.mastodon_account == null) {
- OkHttpClient okHttpClient = new OkHttpClient.Builder()
- .readTimeout(60, TimeUnit.SECONDS)
- .connectTimeout(60, TimeUnit.SECONDS)
- .callTimeout(60, TimeUnit.SECONDS)
- .proxy(Helper.getProxy(getApplication().getApplicationContext()))
- .build();
+ OkHttpClient okHttpClient = Helper.myOkHttpClient(getApplication().getApplicationContext());
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://" + (MainActivity.currentInstance != null ? IDN.toASCII(MainActivity.currentInstance, IDN.ALLOW_UNASSIGNED) : null) + "/api/v1/")
.addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder()))
@@ -1224,7 +1242,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
}
if (!isFinishing()) {
headerMainBinding.accountName.setText(
- currentAccount.mastodon_account.getSpanDisplayName(BaseMainActivity.this,
+ currentAccount.mastodon_account.getSpanDisplayNameEmoji(BaseMainActivity.this,
new WeakReference<>(headerMainBinding.accountName)),
TextView.BufferType.SPANNABLE);
}
diff --git a/app/src/main/java/app/fedilab/android/mastodon/activities/ComposeActivity.java b/app/src/main/java/app/fedilab/android/mastodon/activities/ComposeActivity.java
index 348e47799..375576c93 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/activities/ComposeActivity.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/activities/ComposeActivity.java
@@ -114,6 +114,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
private List<Status> statusList;
private Status statusReply, statusMention, statusQuoted;
private StatusDraft statusDraft;
+ private ActionBar actionBar;
private ComposeAdapter composeAdapter;
private final BroadcastReceiver imageReceiver = new BroadcastReceiver() {
@Override
@@ -482,7 +483,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
setSupportActionBar(binding.toolbar);
promptSaveDraft = false;
restoredDraft = false;
- ActionBar actionBar = getSupportActionBar();
+ actionBar = getSupportActionBar();
//Remove title
if (actionBar != null) {
actionBar.setDisplayShowTitleEnabled(false);
@@ -1025,6 +1026,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
@Override
public void click(ComposeAdapter.ComposeViewHolder holder, Attachment attachment, int messagePosition, int mediaPosition) {
binding.description.setVisibility(View.VISIBLE);
+ actionBar.hide();
binding.recyclerView.setVisibility(View.GONE);
binding.mediaDescription.setText("");
String attachmentPath = attachment.local_path != null && !attachment.local_path.trim().isEmpty() ? attachment.local_path : attachment.preview_url;
@@ -1042,11 +1044,13 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
binding.mediaSave.setOnClickListener(v -> {
binding.description.setVisibility(View.GONE);
+ actionBar.show();
binding.recyclerView.setVisibility(View.VISIBLE);
composeAdapter.openDescriptionActivity(true, binding.mediaDescription.getText().toString().trim(), holder, attachment, messagePosition, mediaPosition);
});
binding.mediaCancel.setOnClickListener(v -> {
binding.description.setVisibility(View.GONE);
+ actionBar.show();
binding.recyclerView.setVisibility(View.VISIBLE);
composeAdapter.openDescriptionActivity(false, binding.mediaDescription.getText().toString().trim(), holder, attachment, messagePosition, mediaPosition);
});
diff --git a/app/src/main/java/app/fedilab/android/mastodon/activities/DirectMessageActivity.java b/app/src/main/java/app/fedilab/android/mastodon/activities/DirectMessageActivity.java
index 92bad7d67..7d63ccb72 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/activities/DirectMessageActivity.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/activities/DirectMessageActivity.java
@@ -53,7 +53,6 @@ public class DirectMessageActivity extends BaseActivity implements FragmentMasto
public static boolean displayCW;
FragmentMastodonDirectMessage currentFragment;
- private Status firstMessage;
private String remote_instance;
@Override
@@ -149,7 +148,6 @@ public class DirectMessageActivity extends BaseActivity implements FragmentMasto
@Override
public void get(Status status) {
- firstMessage = status;
invalidateOptionsMenu();
}
} \ No newline at end of file
diff --git a/app/src/main/java/app/fedilab/android/mastodon/activities/MediaActivity.java b/app/src/main/java/app/fedilab/android/mastodon/activities/MediaActivity.java
index c5313a297..9476dca8e 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/activities/MediaActivity.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/activities/MediaActivity.java
@@ -154,7 +154,7 @@ public class MediaActivity extends BaseTransparentActivity implements OnDownload
binding.mediaDescription.setMovementMethod(new ScrollingMovementMethod());
binding.mediaDescriptionTranslated.setMovementMethod(new ScrollingMovementMethod());
-
+
if (description != null && description.trim().length() > 0 && description.trim().compareTo("null") != 0) {
binding.mediaDescription.setText(description);
binding.translate.setOnClickListener(v -> {
diff --git a/app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java b/app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java
index ef0e4fc07..0c1648248 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java
@@ -456,7 +456,7 @@ public class ProfileActivity extends BaseActivity {
}
binding.accountDn.setText(
- account.getSpanDisplayName(ProfileActivity.this,
+ account.getSpanDisplayNameEmoji(ProfileActivity.this,
new WeakReference<>(binding.accountDn)),
TextView.BufferType.SPANNABLE);
diff --git a/app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminAccountActivity.java b/app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminAccountActivity.java
index 04074ea42..f78e0af61 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminAccountActivity.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminAccountActivity.java
@@ -310,7 +310,7 @@ public class AdminAccountActivity extends BaseActivity {
binding.accountDn.setText(
- adminAccount.account.getSpanDisplayName(AdminAccountActivity.this,
+ adminAccount.account.getSpanDisplayNameEmoji(AdminAccountActivity.this,
new WeakReference<>(binding.accountDn)),
TextView.BufferType.SPANNABLE);
binding.accountUn.setText(String.format("@%s", adminAccount.account.acct));
diff --git a/app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminReportActivity.java b/app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminReportActivity.java
index f5d79bb82..1ff4effea 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminReportActivity.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/activities/admin/AdminReportActivity.java
@@ -328,7 +328,7 @@ public class AdminReportActivity extends BaseBarActivity {
}
binding.accountDn.setText(
- account.getSpanDisplayName(AdminReportActivity.this,
+ account.getSpanDisplayNameEmoji(AdminReportActivity.this,
new WeakReference<>(binding.accountDn)),
TextView.BufferType.SPANNABLE);
binding.accountUn.setText(String.format("@%s", account.acct));
diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Account.java b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Account.java
index a29c37496..5fc2e8d76 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Account.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Account.java
@@ -89,14 +89,15 @@ public class Account implements Serializable {
public Role role;
public transient RelationShip relationShip;
+
public synchronized Spannable getSpanDisplayName(Context context, WeakReference<View> viewWeakReference) {
if (display_name == null || display_name.isEmpty()) {
display_name = username;
}
- return SpannableHelper.convert(context, display_name, null, this, null, viewWeakReference);
+ return SpannableHelper.convert(context, display_name, null, this, null, viewWeakReference, null, true, false);
}
- public synchronized Spannable getSpanDisplayName(Activity activity, WeakReference<View> viewWeakReference) {
+ public synchronized Spannable getSpanDisplayNameEmoji(Activity activity, WeakReference<View> viewWeakReference) {
if (display_name == null || display_name.isEmpty()) {
display_name = username;
}
@@ -104,11 +105,11 @@ public class Account implements Serializable {
}
public synchronized Spannable getSpanDisplayNameTitle(Context context, WeakReference<View> viewWeakReference, String title) {
- return SpannableHelper.convert(context, title, null, this, null, viewWeakReference);
+ return SpannableHelper.convert(context, title, null, this, null, viewWeakReference, null, true, false);
}
public synchronized Spannable getSpanNote(Context context, WeakReference<View> viewWeakReference) {
- return SpannableHelper.convert(context, note, null, this, null, viewWeakReference);
+ return SpannableHelper.convert(context, note, null, this, null, viewWeakReference, null, true, false);
}
@Override
diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Announcement.java b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Announcement.java
index 682eeb8b4..b429bb7df 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Announcement.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Announcement.java
@@ -56,7 +56,7 @@ public class Announcement {
public synchronized Spannable getSpanContent(Context context, WeakReference<View> viewWeakReference) {
- return SpannableHelper.convert(context, content, null, null, this, viewWeakReference);
+ return SpannableHelper.convert(context, content, null, null, this, viewWeakReference, null, true, false);
}
}
diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Field.java b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Field.java
index 6c24c0ea4..9b8551ff9 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Field.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Field.java
@@ -47,7 +47,7 @@ public class Field implements Serializable {
if (verified_at != null && value != null) {
value_span = new ForegroundColorSpan(ContextCompat.getColor(context, R.color.verified_text));
}
- Spannable spannable = SpannableHelper.convert(context, value, null, account, null, viewWeakReference);
+ Spannable spannable = SpannableHelper.convert(context, value, null, account, null, viewWeakReference, null, true, false);
if (value_span != null && spannable != null) {
spannable.setSpan(value_span, 0, spannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
@@ -57,7 +57,7 @@ public class Field implements Serializable {
public synchronized Spannable getLabelSpan(Context context, Account account, WeakReference<View> viewWeakReference) {
- Spannable spannable = SpannableHelper.convert(context, name, null, account, null, viewWeakReference);
+ Spannable spannable = SpannableHelper.convert(context, name, null, account, null, viewWeakReference, null, true, false);
if (name_span != null && spannable != null) {
spannable.setSpan(name_span, 0, spannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Poll.java b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Poll.java
index e9270f062..87269a59a 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Poll.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Poll.java
@@ -61,7 +61,7 @@ public class Poll implements Serializable {
public transient Spannable span_title;
public Spannable getSpanTitle(Context context, Status status, WeakReference<View> viewWeakReference) {
- span_title = SpannableHelper.convert(context, title, status, null, null, viewWeakReference, null, false);
+ span_title = SpannableHelper.convert(context, title, status, null, null, viewWeakReference, null, false, false);
return span_title;
}
}
diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Status.java b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Status.java
index 15fec66bb..70874d13d 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Status.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/client/entities/api/Status.java
@@ -133,6 +133,8 @@ public class Status implements Serializable, Cloneable {
public transient boolean setCursorToEnd = false;
public transient int cursorPosition = 0;
public transient boolean submitted = false;
+
+ public transient boolean underlined = false;
public boolean spoilerChecked = false;
public Filter filteredByApp;
public transient Spannable contentSpan;
@@ -152,21 +154,21 @@ public class Status implements Serializable, Cloneable {
public synchronized Spannable getSpanContent(Context context, WeakReference<View> viewWeakReference, Callback callback) {
if (contentSpan == null) {
- contentSpan = SpannableHelper.convert(context, content, this, null, null, viewWeakReference, callback);
+ contentSpan = SpannableHelper.convert(context, content, this, null, null, viewWeakReference, callback, true, true);
}
return contentSpan;
}
public synchronized Spannable getSpanSpoiler(Context context, WeakReference<View> viewWeakReference, Callback callback) {
if (contentSpoilerSpan == null) {
- contentSpoilerSpan = SpannableHelper.convert(context, spoiler_text, this, null, null, viewWeakReference, callback);
+ contentSpoilerSpan = SpannableHelper.convert(context, spoiler_text, this, null, null, viewWeakReference, callback, true, false);
}
return contentSpoilerSpan;
}
public synchronized Spannable getSpanTranslate(Context context, WeakReference<View> viewWeakReference, Callback callback) {
if (contentTranslateSpan == null) {
- contentTranslateSpan = SpannableHelper.convert(context, translationContent, this, null, null, viewWeakReference, callback);
+ contentTranslateSpan = SpannableHelper.convert(context, translationContent, this, null, null, viewWeakReference, callback, true, true);
}
return contentTranslateSpan;
}
diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/entities/nitter/Nitter.java b/app/src/main/java/app/fedilab/android/mastodon/client/entities/nitter/Nitter.java
index a3465ef11..015e0c7f2 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/client/entities/nitter/Nitter.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/client/entities/nitter/Nitter.java
@@ -29,7 +2