All accounts are cached in db before being in Intent

custom_intent
Thomas 10 months ago
parent 2e20e78b7f
commit 2edfd8c945

@ -662,7 +662,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
Intent intentAccount = new Intent(activity, ProfileActivity.class); Intent intentAccount = new Intent(activity, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, account); args.putSerializable(Helper.ARG_ACCOUNT, account);
new CachedBundle(activity).insertBundle(args, bundleId -> { new CachedBundle(activity).insertBundle(args, currentAccount, bundleId -> {
Bundle bundleCached = new Bundle(); Bundle bundleCached = new Bundle();
bundleCached.putLong(Helper.ARG_INTENT_ID, bundleId); bundleCached.putLong(Helper.ARG_INTENT_ID, bundleId);
intentAccount.putExtras(bundleCached); intentAccount.putExtras(bundleCached);
@ -673,7 +673,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
Intent intentContext = new Intent(activity, ContextActivity.class); Intent intentContext = new Intent(activity, ContextActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_STATUS, status); args.putSerializable(Helper.ARG_STATUS, status);
new CachedBundle(activity).insertBundle(args, bundleId -> { new CachedBundle(activity).insertBundle(args, currentAccount, bundleId -> {
Bundle bundleCached = new Bundle(); Bundle bundleCached = new Bundle();
bundleCached.putLong(Helper.ARG_INTENT_ID, bundleId); bundleCached.putLong(Helper.ARG_INTENT_ID, bundleId);
intentContext.putExtras(bundleCached); intentContext.putExtras(bundleCached);
@ -1048,7 +1048,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
Intent intent = new Intent(activity, ProfileActivity.class); Intent intent = new Intent(activity, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, account); args.putSerializable(Helper.ARG_ACCOUNT, account);
new CachedBundle(activity).insertBundle(args, bundleId -> { new CachedBundle(activity).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -1435,7 +1435,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
Intent intent = new Intent(BaseMainActivity.this, ProfileActivity.class); Intent intent = new Intent(BaseMainActivity.this, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, currentAccount.mastodon_account); args.putSerializable(Helper.ARG_ACCOUNT, currentAccount.mastodon_account);
new CachedBundle(BaseMainActivity.this).insertBundle(args, bundleId -> { new CachedBundle(BaseMainActivity.this).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);

@ -15,6 +15,8 @@ package app.fedilab.android.activities;
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import android.content.ClipData; import android.content.ClipData;
import android.content.ClipboardManager; import android.content.ClipboardManager;
import android.content.Context; import android.content.Context;
@ -122,7 +124,7 @@ public class AboutActivity extends BaseBarActivity {
Intent intent = new Intent(AboutActivity.this, ProfileActivity.class); Intent intent = new Intent(AboutActivity.this, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, account); args.putSerializable(Helper.ARG_ACCOUNT, account);
new CachedBundle(AboutActivity.this).insertBundle(args, bundleId -> { new CachedBundle(AboutActivity.this).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);

@ -15,6 +15,8 @@ package app.fedilab.android.mastodon.activities;
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import android.app.Activity; import android.app.Activity;
import android.graphics.PorterDuff; import android.graphics.PorterDuff;
import android.os.Bundle; import android.os.Bundle;
@ -66,7 +68,7 @@ public class AccountReportActivity extends BaseBarActivity {
Bundle args = getIntent().getExtras(); Bundle args = getIntent().getExtras();
if (args != null) { if (args != null) {
long bundleId = args.getLong(Helper.ARG_INTENT_ID, -1); long bundleId = args.getLong(Helper.ARG_INTENT_ID, -1);
new CachedBundle(AccountReportActivity.this).getBundle(bundleId, this::initializeAfterBundle); new CachedBundle(AccountReportActivity.this).getBundle(bundleId, currentAccount, this::initializeAfterBundle);
} else { } else {
initializeAfterBundle(null); initializeAfterBundle(null);
} }

@ -488,7 +488,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
if(b != null) { if(b != null) {
long bundleId = b.getLong(Helper.ARG_INTENT_ID, -1); long bundleId = b.getLong(Helper.ARG_INTENT_ID, -1);
if(bundleId != -1 ) { if(bundleId != -1 ) {
new CachedBundle(ComposeActivity.this).getBundle(bundleId, this::initializeAfterBundle); new CachedBundle(ComposeActivity.this).getBundle(bundleId, currentAccount, this::initializeAfterBundle);
} else { } else {
initializeAfterBundle(b); initializeAfterBundle(b);
} }

@ -263,7 +263,7 @@ public class EditProfileActivity extends BaseBarActivity {
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putBoolean(Helper.RECEIVE_REDRAW_PROFILE, true); args.putBoolean(Helper.RECEIVE_REDRAW_PROFILE, true);
args.putSerializable(Helper.ARG_ACCOUNT, account); args.putSerializable(Helper.ARG_ACCOUNT, account);
new CachedBundle(EditProfileActivity.this).insertBundle(args, bundleId -> { new CachedBundle(EditProfileActivity.this).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
Intent intentBD = new Intent(Helper.BROADCAST_DATA); Intent intentBD = new Intent(Helper.BROADCAST_DATA);

@ -15,6 +15,8 @@ package app.fedilab.android.mastodon.activities;
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import android.content.Intent; import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
@ -81,7 +83,7 @@ public class PartnerShipActivity extends BaseBarActivity {
Intent intent = new Intent(PartnerShipActivity.this, ProfileActivity.class); Intent intent = new Intent(PartnerShipActivity.this, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, account); args.putSerializable(Helper.ARG_ACCOUNT, account);
new CachedBundle(PartnerShipActivity.this).insertBundle(args, bundleId -> { new CachedBundle(PartnerShipActivity.this).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);

@ -137,7 +137,7 @@ public class ProfileActivity extends BaseActivity {
if (args != null) { if (args != null) {
long bundleId = args.getLong(Helper.ARG_INTENT_ID, -1); long bundleId = args.getLong(Helper.ARG_INTENT_ID, -1);
if(bundleId != -1 ) { if(bundleId != -1 ) {
new CachedBundle(ProfileActivity.this).getBundle(bundleId, bundle -> { new CachedBundle(ProfileActivity.this).getBundle(bundleId, currentAccount, bundle -> {
Account accountReceived = (Account) bundle.getSerializable(Helper.ARG_ACCOUNT); Account accountReceived = (Account) bundle.getSerializable(Helper.ARG_ACCOUNT);
if (bundle.getBoolean(Helper.RECEIVE_REDRAW_PROFILE, false) && accountReceived != null) { if (bundle.getBoolean(Helper.RECEIVE_REDRAW_PROFILE, false) && accountReceived != null) {
if (account != null && accountReceived.id != null && account.id != null && accountReceived.id.equalsIgnoreCase(account.id)) { if (account != null && accountReceived.id != null && account.id != null && accountReceived.id.equalsIgnoreCase(account.id)) {
@ -190,7 +190,7 @@ public class ProfileActivity extends BaseActivity {
homeMuted = false; homeMuted = false;
if (args != null) { if (args != null) {
long bundleId = args.getLong(Helper.ARG_INTENT_ID, -1); long bundleId = args.getLong(Helper.ARG_INTENT_ID, -1);
new CachedBundle(ProfileActivity.this).getBundle(bundleId, this::initializeAfterBundle); new CachedBundle(ProfileActivity.this).getBundle(bundleId, currentAccount, this::initializeAfterBundle);
} else { } else {
initializeAfterBundle(null); initializeAfterBundle(null);
} }
@ -468,7 +468,7 @@ public class ProfileActivity extends BaseActivity {
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, account); args.putSerializable(Helper.ARG_ACCOUNT, account);
args.putSerializable(Helper.ARG_CHECK_REMOTELY, true); args.putSerializable(Helper.ARG_CHECK_REMOTELY, true);
new CachedBundle(ProfileActivity.this).insertBundle(args, bundleId -> { new CachedBundle(ProfileActivity.this).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -655,7 +655,7 @@ public class ProfileActivity extends BaseActivity {
Intent intent = new Intent(ProfileActivity.this, ProfileActivity.class); Intent intent = new Intent(ProfileActivity.this, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, account); args.putSerializable(Helper.ARG_ACCOUNT, account);
new CachedBundle(ProfileActivity.this).insertBundle(args, bundleId -> { new CachedBundle(ProfileActivity.this).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -1055,7 +1055,7 @@ public class ProfileActivity extends BaseActivity {
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT_MENTION, account); args.putSerializable(Helper.ARG_ACCOUNT_MENTION, account);
args.putString(Helper.ARG_VISIBILITY, "direct"); args.putString(Helper.ARG_VISIBILITY, "direct");
new CachedBundle(ProfileActivity.this).insertBundle(args, bundleId -> { new CachedBundle(ProfileActivity.this).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -1146,7 +1146,7 @@ public class ProfileActivity extends BaseActivity {
intent = new Intent(ProfileActivity.this, ComposeActivity.class); intent = new Intent(ProfileActivity.this, ComposeActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT_MENTION, account); args.putSerializable(Helper.ARG_ACCOUNT_MENTION, account);
new CachedBundle(ProfileActivity.this).insertBundle(args, bundleId -> { new CachedBundle(ProfileActivity.this).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);

@ -14,6 +14,8 @@ package app.fedilab.android.mastodon.activities;
* You should have received a copy of the GNU General Public License along with Fedilab; if not, * You should have received a copy of the GNU General Public License along with Fedilab; if not,
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import android.os.Bundle; import android.os.Bundle;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
@ -75,7 +77,7 @@ public class ReportActivity extends BaseBarActivity {
if(args != null) { if(args != null) {
long bundleId = args.getLong(Helper.ARG_INTENT_ID, -1); long bundleId = args.getLong(Helper.ARG_INTENT_ID, -1);
if(bundleId != -1 ) { if(bundleId != -1 ) {
new CachedBundle(ReportActivity.this).getBundle(bundleId, this::initializeAfterBundle); new CachedBundle(ReportActivity.this).getBundle(bundleId, currentAccount, this::initializeAfterBundle);
} else { } else {
initializeAfterBundle(args); initializeAfterBundle(args);
} }
@ -241,7 +243,7 @@ public class ReportActivity extends BaseBarActivity {
status.isChecked = true; status.isChecked = true;
args.putSerializable(Helper.ARG_STATUS_REPORT, status); args.putSerializable(Helper.ARG_STATUS_REPORT, status);
} }
new CachedBundle(ReportActivity.this).insertBundle(args, bundleId -> { new CachedBundle(ReportActivity.this).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
fragment.setArguments(bundle); fragment.setArguments(bundle);
@ -271,7 +273,7 @@ public class ReportActivity extends BaseBarActivity {
status.isChecked = true; status.isChecked = true;
args.putSerializable(Helper.ARG_STATUS_REPORT, status); args.putSerializable(Helper.ARG_STATUS_REPORT, status);
} }
new CachedBundle(ReportActivity.this).insertBundle(args, bundleId -> { new CachedBundle(ReportActivity.this).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
fragment.setArguments(bundle); fragment.setArguments(bundle);

@ -14,6 +14,8 @@ package app.fedilab.android.mastodon.activities;
* You should have received a copy of the GNU General Public License along with Fedilab; if not, * You should have received a copy of the GNU General Public License along with Fedilab; if not,
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import android.os.Bundle; import android.os.Bundle;
import android.view.MenuItem; import android.view.MenuItem;
@ -65,7 +67,7 @@ public class TimelineActivity extends BaseBarActivity {
if (status != null) { if (status != null) {
args.putSerializable(Helper.ARG_STATUS, status); args.putSerializable(Helper.ARG_STATUS, status);
} }
new CachedBundle(TimelineActivity.this).insertBundle(args, bundleId -> { new CachedBundle(TimelineActivity.this).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
fragmentMastodonTimeline.setArguments(bundle); fragmentMastodonTimeline.setArguments(bundle);

@ -15,6 +15,8 @@ package app.fedilab.android.mastodon.activities.admin;
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import android.content.ClipData; import android.content.ClipData;
import android.content.ClipboardManager; import android.content.ClipboardManager;
import android.content.Intent; import android.content.Intent;
@ -99,7 +101,7 @@ public class AdminAccountActivity extends BaseActivity {
if (args != null) { if (args != null) {
long bundleId = args.getLong(Helper.ARG_INTENT_ID, -1); long bundleId = args.getLong(Helper.ARG_INTENT_ID, -1);
new CachedBundle(AdminAccountActivity.this).getBundle(bundleId, this::initializeAfterBundle); new CachedBundle(AdminAccountActivity.this).getBundle(bundleId, currentAccount, this::initializeAfterBundle);
} else { } else {
initializeAfterBundle(null); initializeAfterBundle(null);
} }

@ -15,6 +15,8 @@ package app.fedilab.android.mastodon.activities.admin;
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import android.content.ClipData; import android.content.ClipData;
import android.content.ClipboardManager; import android.content.ClipboardManager;
import android.content.Intent; import android.content.Intent;
@ -105,7 +107,7 @@ public class AdminReportActivity extends BaseBarActivity {
if (args != null) { if (args != null) {
long bundleId = args.getLong(Helper.ARG_INTENT_ID, -1); long bundleId = args.getLong(Helper.ARG_INTENT_ID, -1);
new CachedBundle(AdminReportActivity.this).getBundle(bundleId, this::initializeAfterBundle); new CachedBundle(AdminReportActivity.this).getBundle(bundleId, currentAccount, this::initializeAfterBundle);
} else { } else {
initializeAfterBundle(null); initializeAfterBundle(null);
} }

@ -24,6 +24,8 @@ import android.os.Looper;
import android.os.Parcel; import android.os.Parcel;
import android.util.Base64; import android.util.Base64;
import com.google.gson.annotations.SerializedName;
import java.io.BufferedOutputStream; import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
@ -32,6 +34,7 @@ import java.util.Date;
import java.util.zip.GZIPInputStream; import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream; import java.util.zip.GZIPOutputStream;
import app.fedilab.android.mastodon.client.entities.api.Status;
import app.fedilab.android.mastodon.exception.DBException; import app.fedilab.android.mastodon.exception.DBException;
import app.fedilab.android.mastodon.helper.Helper; import app.fedilab.android.mastodon.helper.Helper;
import app.fedilab.android.sqlite.Sqlite; import app.fedilab.android.sqlite.Sqlite;
@ -43,6 +46,10 @@ public class CachedBundle {
public String id; public String id;
public Bundle bundle; public Bundle bundle;
public CacheType cacheType;
public String instance;
public String user_id;
public String target_id;
public Date created_at; public Date created_at;
private SQLiteDatabase db; private SQLiteDatabase db;
@ -64,14 +71,46 @@ public class CachedBundle {
* @return long - db id * @return long - db id
* @throws DBException exception with database * @throws DBException exception with database
*/ */
private long insertIntent(Bundle bundle) throws DBException { private long insertIntent(Bundle bundle, BaseAccount currentUser) throws DBException {
if (db == null) { if (db == null) {
throw new DBException("db is null. Wrong initialization."); throw new DBException("db is null. Wrong initialization.");
} }
ContentValues values = new ContentValues(); ContentValues values = new ContentValues();
values.put(Sqlite.COL_BUNDLE, serializeBundle(bundle)); values.put(Sqlite.COL_BUNDLE, serializeBundle(bundle));
values.put(Sqlite.COL_CREATED_AT, Helper.dateToString(new Date())); values.put(Sqlite.COL_CREATED_AT, Helper.dateToString(new Date()));
//Inserts token values.put(Sqlite.COL_TYPE, CacheType.ARGS.getValue());
if( bundle.containsKey(Helper.ARG_ACCOUNT) && currentUser != null) {
ContentValues valuesAccount = new ContentValues();
Bundle bundleAccount = new Bundle();
Account account = (Account) bundle.getSerializable(Helper.ARG_ACCOUNT);
if(account != null) {
bundleAccount.putSerializable(Helper.ARG_ACCOUNT, account);
valuesAccount.put(Sqlite.COL_BUNDLE, serializeBundle(bundleAccount));
valuesAccount.put(Sqlite.COL_CREATED_AT, Helper.dateToString(new Date()));
valuesAccount.put(Sqlite.COL_TARGET_ID, account.user_id);
valuesAccount.put(Sqlite.COL_USER_ID, currentUser.user_id);
valuesAccount.put(Sqlite.COL_INSTANCE, currentUser.instance);
valuesAccount.put(Sqlite.COL_TYPE, CacheType.ACCOUNT.getValue());
removeIntent(currentUser, account.user_id);
db.insertOrThrow(Sqlite.TABLE_INTENT, null, valuesAccount);
}
}
if( bundle.containsKey(Helper.ARG_STATUS) && currentUser != null) {
ContentValues valuesAccount = new ContentValues();
Bundle bundleStatus = new Bundle();
Status status = (Status) bundle.getSerializable(Helper.ARG_STATUS);
if(status != null) {
bundleStatus.putSerializable(Helper.ARG_STATUS, status);
valuesAccount.put(Sqlite.COL_BUNDLE, serializeBundle(bundleStatus));
valuesAccount.put(Sqlite.COL_CREATED_AT, Helper.dateToString(new Date()));
valuesAccount.put(Sqlite.COL_TARGET_ID, status.id);
valuesAccount.put(Sqlite.COL_USER_ID, currentUser.user_id);
valuesAccount.put(Sqlite.COL_INSTANCE, currentUser.instance);
valuesAccount.put(Sqlite.COL_TYPE, CacheType.STATUS.getValue());
removeIntent(currentUser, status.id);
db.insertOrThrow(Sqlite.TABLE_INTENT, null, valuesAccount);
}
}
try { try {
return db.insertOrThrow(Sqlite.TABLE_INTENT, null, values); return db.insertOrThrow(Sqlite.TABLE_INTENT, null, values);
} catch (Exception e) { } catch (Exception e) {
@ -81,20 +120,32 @@ public class CachedBundle {
} }
public interface BundleCallback{ public interface BundleCallback{
public void get(Bundle bundle); void get(Bundle bundle);
} }
public interface BundleInsertCallback{ public interface BundleInsertCallback{
public void inserted(long bundleId); void inserted(long bundleId);
} }
public void getBundle(long id, BundleCallback callback) { public void getBundle(long id, BaseAccount Account, BundleCallback callback) {
new Thread(()->{ new Thread(()->{
Bundle bundle = null; Bundle bundle = null;
try { try {
CachedBundle cachedBundle = getCachedBundle(String.valueOf(id)); CachedBundle cachedBundle = getCachedBundle(String.valueOf(id));
if (cachedBundle != null) { if (cachedBundle != null) {
bundle = cachedBundle.bundle; bundle = cachedBundle.bundle;
if(bundle != null && bundle.containsKey(Helper.ARG_CACHED_ACCOUNT_ID)) {
Account cachedAccount = getCachedAccount(Account, bundle.getString(Helper.ARG_CACHED_ACCOUNT_ID));
if(cachedAccount != null) {
bundle.putSerializable(Helper.ARG_ACCOUNT, cachedAccount);
}
}
if(bundle != null && bundle.containsKey(Helper.ARG_CACHED_STATUS_ID)) {
Status cachedStatus = getCachedStatus(Account, bundle.getString(Helper.ARG_CACHED_STATUS_ID));
if(cachedStatus != null) {
bundle.putSerializable(Helper.ARG_STATUS, cachedStatus);
}
}
} }
removeIntent(String.valueOf(id)); removeIntent(String.valueOf(id));
} catch (DBException ignored) {} } catch (DBException ignored) {}
@ -105,11 +156,11 @@ public class CachedBundle {
}).start(); }).start();
} }
public void insertBundle(Bundle bundle, BundleInsertCallback callback) { public void insertBundle(Bundle bundle, BaseAccount Account, BundleInsertCallback callback) {
new Thread(()->{ new Thread(()->{
long dbBundleId = -1; long dbBundleId = -1;
try { try {
dbBundleId = insertIntent(bundle); dbBundleId = insertIntent(bundle, Account);
} catch (DBException ignored) {} } catch (DBException ignored) {}
Handler mainHandler = new Handler(Looper.getMainLooper()); Handler mainHandler = new Handler(Looper.getMainLooper());
long finalDbBundleId = dbBundleId; long finalDbBundleId = dbBundleId;
@ -118,6 +169,66 @@ public class CachedBundle {
}).start(); }).start();
} }
/**
* Returns a bundle by targeted account id
*
* @param target_id String
* @return Account {@link Account}
*/
private Account getCachedAccount(BaseAccount account, String target_id) throws DBException {
if (db == null) {
throw new DBException("db is null. Wrong initialization.");
}
if(account == null || target_id == null) {
return null;
}
try {
Cursor c = db.query(Sqlite.TABLE_INTENT, null, Sqlite.COL_USER_ID + " = '" + account.user_id + "' AND "
+ Sqlite.COL_INSTANCE + " = '" + account.instance+ "' AND "
+ Sqlite.COL_TYPE + " = '" + CacheType.ACCOUNT.getValue() + "' AND "
+ Sqlite.COL_TARGET_ID + " = '" + target_id + "'", null, null, null, null, "1");
CachedBundle cachedBundle = cursorToCachedBundle(c);
if(cachedBundle != null && cachedBundle.bundle.containsKey(Helper.ARG_ACCOUNT) ) {
return (Account) cachedBundle.bundle.getSerializable(Helper.ARG_ACCOUNT);
}
} catch (Exception e) {
return null;
}
return null;
}
/**
* Returns a bundle by targeted status id
*
* @param target_id String
* @return Status {@link Status}
*/
private Status getCachedStatus(BaseAccount account, String target_id) throws DBException {
if (db == null) {
throw new DBException("db is null. Wrong initialization.");
}
if(account == null || target_id == null) {
return null;
}
try {
Cursor c = db.query(Sqlite.TABLE_INTENT, null, Sqlite.COL_USER_ID + " = '" + account.user_id + "' AND "
+ Sqlite.COL_INSTANCE + " = '" + account.instance+ "' AND "
+ Sqlite.COL_TYPE + " = '" + CacheType.STATUS.getValue() + "' AND "
+ Sqlite.COL_TARGET_ID + " = '" + target_id + "'", null, null, null, null, "1");
CachedBundle cachedBundle = cursorToCachedBundle(c);
if(cachedBundle != null && cachedBundle.bundle.containsKey(Helper.ARG_STATUS) ) {
return (Status) cachedBundle.bundle.getSerializable(Helper.ARG_STATUS);
}
} catch (Exception e) {
return null;
}
return null;
}
/** /**
* Returns a bundle by its ID * Returns a bundle by its ID
* *
@ -149,6 +260,22 @@ public class CachedBundle {
} }
/**
* Remove a bundle from db
*
*/
private void removeIntent(BaseAccount account, String target_id) throws DBException {
if (db == null) {
throw new DBException("db is null. Wrong initialization.");
}
if(account == null || target_id == null) {
return;
}
db.delete(Sqlite.TABLE_INTENT, Sqlite.COL_USER_ID + " = '" + account.user_id + "' AND "
+ Sqlite.COL_INSTANCE + " = '" + account.instance+ "' AND "
+ Sqlite.COL_TARGET_ID + " = '" + target_id + "'", null);
}
/*** /***
* Method to hydrate an CachedBundle from database * Method to hydrate an CachedBundle from database
@ -174,12 +301,16 @@ public class CachedBundle {
* Read cursor and hydrate without closing it * Read cursor and hydrate without closing it
* *
* @param c - Cursor * @param c - Cursor
* @return BaseAccount * @return Account
*/ */
private CachedBundle convertCursorToCachedBundle(Cursor c) { private CachedBundle convertCursorToCachedBundle(Cursor c) {
CachedBundle cachedBundle = new CachedBundle(); CachedBundle cachedBundle = new CachedBundle();
cachedBundle.id = c.getString(c.getColumnIndexOrThrow(Sqlite.COL_ID)); cachedBundle.id = c.getString(c.getColumnIndexOrThrow(Sqlite.COL_ID));
cachedBundle.bundle = deserializeBundle(c.getString(c.getColumnIndexOrThrow(Sqlite.COL_BUNDLE))); cachedBundle.bundle = deserializeBundle(c.getString(c.getColumnIndexOrThrow(Sqlite.COL_BUNDLE)));
cachedBundle.user_id = c.getString(c.getColumnIndexOrThrow(Sqlite.COL_USER_ID));
cachedBundle.instance = c.getString(c.getColumnIndexOrThrow(Sqlite.COL_INSTANCE));
cachedBundle.target_id = c.getString(c.getColumnIndexOrThrow(Sqlite.COL_TARGET_ID));
cachedBundle.cacheType = CacheType.valueOf(c.getString(c.getColumnIndexOrThrow(Sqlite.COL_TYPE)));
cachedBundle.created_at = Helper.stringToDate(context, c.getString(c.getColumnIndexOrThrow(Sqlite.COL_CREATED_AT))); cachedBundle.created_at = Helper.stringToDate(context, c.getString(c.getColumnIndexOrThrow(Sqlite.COL_CREATED_AT)));
return cachedBundle; return cachedBundle;
} }
@ -225,4 +356,23 @@ public class CachedBundle {
return bundle; return bundle;
} }
public enum CacheType {
@SerializedName("ARGS")
ARGS("ARGS"),
@SerializedName("ACCOUNT")
ACCOUNT("ACCOUNT"),
@SerializedName("STATUS")
STATUS("STATUS");
private final String value;
CacheType(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
} }

@ -14,6 +14,8 @@ package app.fedilab.android.mastodon.helper;
* You should have received a copy of the GNU General Public License along with Fedilab; if not, * You should have received a copy of the GNU General Public License along with Fedilab; if not,
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
@ -249,7 +251,7 @@ public class CrossActionHelper {
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_STATUS_REPLY, targetedStatus); args.putSerializable(Helper.ARG_STATUS_REPLY, targetedStatus);
args.putSerializable(Helper.ARG_ACCOUNT, ownerAccount); args.putSerializable(Helper.ARG_ACCOUNT, ownerAccount);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -260,7 +262,7 @@ public class CrossActionHelper {
Intent intentCompose = new Intent(context, ComposeActivity.class); Intent intentCompose = new Intent(context, ComposeActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, ownerAccount); args.putSerializable(Helper.ARG_ACCOUNT, ownerAccount);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intentCompose.putExtras(bundle); intentCompose.putExtras(bundle);
@ -443,7 +445,7 @@ public class CrossActionHelper {
final BaseAccount account = accountArray[which]; final BaseAccount account = accountArray[which];
Intent intentToot = new Intent(context, ComposeActivity.class); Intent intentToot = new Intent(context, ComposeActivity.class);
bundle.putSerializable(Helper.ARG_ACCOUNT, account); bundle.putSerializable(Helper.ARG_ACCOUNT, account);
new CachedBundle(context).insertBundle(bundle, bundleId -> { new CachedBundle(context).insertBundle(bundle, currentAccount, bundleId -> {
Bundle bundleCached = new Bundle(); Bundle bundleCached = new Bundle();
bundleCached.putLong(Helper.ARG_INTENT_ID, bundleId); bundleCached.putLong(Helper.ARG_INTENT_ID, bundleId);
intentToot.putExtras(bundleCached); intentToot.putExtras(bundleCached);

@ -244,6 +244,8 @@ public class Helper {
public static final String ARG_STATUS_REPLY_ID = "ARG_STATUS_REPLY_ID"; public static final String ARG_STATUS_REPLY_ID = "ARG_STATUS_REPLY_ID";
public static final String ARG_ACCOUNT = "ARG_ACCOUNT"; public static final String ARG_ACCOUNT = "ARG_ACCOUNT";
public static final String ARG_ACCOUNT_ID = "ARG_ACCOUNT_ID"; public static final String ARG_ACCOUNT_ID = "ARG_ACCOUNT_ID";
public static final String ARG_CACHED_ACCOUNT_ID = "ARG_CACHED_ACCOUNT_ID";
public static final String ARG_CACHED_STATUS_ID = "ARG_CACHED_STATUS_ID";
public static final String ARG_ADMIN_DOMAINBLOCK = "ARG_ADMIN_DOMAINBLOCK"; public static final String ARG_ADMIN_DOMAINBLOCK = "ARG_ADMIN_DOMAINBLOCK";
public static final String ARG_ADMIN_DOMAINBLOCK_DELETE = "ARG_ADMIN_DOMAINBLOCK_DELETE"; public static final String ARG_ADMIN_DOMAINBLOCK_DELETE = "ARG_ADMIN_DOMAINBLOCK_DELETE";
public static final String FEDILAB_MUTED_HASHTAGS = "Fedilab muted hashtags"; public static final String FEDILAB_MUTED_HASHTAGS = "Fedilab muted hashtags";
@ -1557,50 +1559,51 @@ public class Helper {
String channelTitle; String channelTitle;
switch (notifType) { switch (notifType) {
case FAV: case FAV -> {
channelId = "channel_favourite"; channelId = "channel_favourite";
channelTitle = context.getString(R.string.channel_notif_fav); channelTitle = context.getString(R.string.channel_notif_fav);
break; }
case FOLLLOW: case FOLLLOW -> {
channelId = "channel_follow"; channelId = "channel_follow";
channelTitle = context.getString(R.string.channel_notif_follow); channelTitle = context.getString(R.string.channel_notif_follow);
break; }
case MENTION: case MENTION -> {
channelId = "channel_mention"; channelId = "channel_mention";
channelTitle = context.getString(R.string.channel_notif_mention); channelTitle = context.getString(R.string.channel_notif_mention);
break; }
case POLL: case POLL -> {
channelId = "channel_poll"; channelId = "channel_poll";
channelTitle = context.getString(R.string.channel_notif_poll); channelTitle = context.getString(R.string.channel_notif_poll);
break; }
case BACKUP: case BACKUP -> {
channelId = "channel_backup"; channelId = "channel_backup";
channelTitle = context.getString(R.string.channel_notif_backup); channelTitle = context.getString(R.string.channel_notif_backup);
break; }
case STORE: case STORE -> {
channelId = "channel_media"; channelId = "channel_media";
channelTitle = context.getString(R.string.channel_notif_media); channelTitle = context.getString(R.string.channel_notif_media);
break; }
case TOOT: case TOOT -> {
channelId = "channel_status"; channelId = "channel_status";
channelTitle = context.getString(R.string.channel_notif_status); channelTitle = context.getString(R.string.channel_notif_status);
break; }
case UPDATE: case UPDATE -> {
channelId = "channel_update"; channelId = "channel_update";
channelTitle = context.getString(R.string.channel_notif_update); channelTitle = context.getString(R.string.channel_notif_update);
break; }
case SIGN_UP: case SIGN_UP -> {
channelId = "channel_signup"; channelId = "channel_signup";
channelTitle = context.getString(R.string.channel_notif_signup); channelTitle = context.getString(R.string.channel_notif_signup);
break; }
case REPORT: case REPORT -> {
channelId = "channel_report"; channelId = "channel_report";
channelTitle = context.getString(R.string.channel_notif_report); channelTitle = context.getString(R.string.channel_notif_report);
break; }
default: default -> {
channelId = "channel_boost"; channelId = "channel_boost";
channelTitle = context.getString(R.string.channel_notif_boost); channelTitle = context.getString(R.string.channel_notif_boost);
} }
}
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, channelId) NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context, channelId)
.setSmallIcon(getNotificationIcon(context)).setTicker(message); .setSmallIcon(getNotificationIcon(context)).setTicker(message);
/* if (notifType == NotifType.MENTION) { /* if (notifType == NotifType.MENTION) {
@ -1615,24 +1618,18 @@ public class Helper {
int prefColor; int prefColor;
prefColor = Integer.parseInt(sharedpreferences.getString(context.getString(R.string.SET_LED_COLOUR_VAL_N), String.valueOf(LED_COLOUR))); prefColor = Integer.parseInt(sharedpreferences.getString(context.getString(R.string.SET_LED_COLOUR_VAL_N), String.valueOf(LED_COLOUR)));
switch (prefColor) { switch (prefColor) {
case 1: // CYAN case 1 -> // CYAN
ledColour = Color.CYAN; ledColour = Color.CYAN;
break; case 2 -> // MAGENTA
case 2: // MAGENTA
ledColour = Color.MAGENTA; ledColour = Color.MAGENTA;
break; case 3 -> // GREEN
case 3: // GREEN
ledColour = Color.GREEN; ledColour = Color.GREEN;
break; case 4 -> // RED
case 4: // RED
ledColour = Color.RED; ledColour = Color.RED;
break; case 5 -> // YELLOW
case 5: // YELLOW
ledColour = Color.YELLOW; ledColour = Color.YELLOW;
break; case 6 -> // WHITE
case 6: // WHITE
ledColour = Color.WHITE; ledColour = Color.WHITE;
break;
} }
@ -1927,7 +1924,7 @@ public class Helper {
Intent intent = new Intent(activity, ProfileActivity.class); Intent intent = new Intent(activity, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, account); args.putSerializable(Helper.ARG_ACCOUNT, account);
new CachedBundle(activity).insertBundle(args, bundleId -> { new CachedBundle(activity).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);

@ -647,7 +647,7 @@ public class SpannableHelper {
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, account); args.putSerializable(Helper.ARG_ACCOUNT, account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -683,7 +683,7 @@ public class SpannableHelper {
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, account); args.putSerializable(Helper.ARG_ACCOUNT, account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -719,7 +719,7 @@ public class SpannableHelper {
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, account); args.putSerializable(Helper.ARG_ACCOUNT, account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -905,7 +905,7 @@ public class SpannableHelper {
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, account.moved); args.putSerializable(Helper.ARG_ACCOUNT, account.moved);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);

@ -15,6 +15,8 @@ package app.fedilab.android.mastodon.ui.drawer;
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@ -95,9 +97,9 @@ public class AccountAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
accountViewHolder.binding.muteHome.setChecked(muted); accountViewHolder.binding.muteHome.setChecked(muted);
accountViewHolder.binding.muteHome.setOnClickListener(v -> { accountViewHolder.binding.muteHome.setOnClickListener(v -> {
if (muted) { if (muted) {
accountsVM.unmuteHome(MainActivity.currentAccount, account).observe((LifecycleOwner) context, account1 -> adapter.notifyItemChanged(accountViewHolder.getLayoutPosition())); accountsVM.unmuteHome(currentAccount, account).observe((LifecycleOwner) context, account1 -> adapter.notifyItemChanged(accountViewHolder.getLayoutPosition()));
} else { } else {
accountsVM.muteHome(MainActivity.currentAccount, account).observe((LifecycleOwner) context, account1 -> adapter.notifyItemChanged(accountViewHolder.getLayoutPosition())); accountsVM.muteHome(currentAccount, account).observe((LifecycleOwner) context, account1 -> adapter.notifyItemChanged(accountViewHolder.getLayoutPosition()));
} }
}); });
} else { } else {
@ -114,7 +116,7 @@ public class AccountAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, account); args.putSerializable(Helper.ARG_ACCOUNT, account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -130,7 +132,7 @@ public class AccountAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, accountSearch); args.putSerializable(Helper.ARG_ACCOUNT, accountSearch);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);

@ -14,6 +14,8 @@ package app.fedilab.android.mastodon.ui.drawer;
* You should have received a copy of the GNU General Public License along with Fedilab; if not, * You should have received a copy of the GNU General Public License along with Fedilab; if not,
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@ -106,7 +108,7 @@ public class AccountFollowRequestAdapter extends RecyclerView.Adapter<RecyclerVi
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, account); args.putSerializable(Helper.ARG_ACCOUNT, account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);

@ -14,6 +14,8 @@ package app.fedilab.android.mastodon.ui.drawer;
* You should have received a copy of the GNU General Public License along with Fedilab; if not, * You should have received a copy of the GNU General Public License along with Fedilab; if not,
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.database.Cursor; import android.database.Cursor;
@ -65,7 +67,7 @@ public class AccountsSearchTopBarAdapter extends SimpleCursorAdapter {
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, accountList.get(position)); args.putSerializable(Helper.ARG_ACCOUNT, accountList.get(position));
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);

@ -15,6 +15,7 @@ package app.fedilab.android.mastodon.ui.drawer;
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import static app.fedilab.android.BaseMainActivity.currentNightMode; import static app.fedilab.android.BaseMainActivity.currentNightMode;
import static app.fedilab.android.mastodon.ui.drawer.StatusAdapter.statusManagement; import static app.fedilab.android.mastodon.ui.drawer.StatusAdapter.statusManagement;
@ -275,7 +276,7 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, notification.account); args.putSerializable(Helper.ARG_ACCOUNT, notification.account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -388,7 +389,7 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, notification.account); args.putSerializable(Helper.ARG_ACCOUNT, notification.account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -438,7 +439,7 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, relativeNotif.account); args.putSerializable(Helper.ARG_ACCOUNT, relativeNotif.account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -455,7 +456,7 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, notification.account); args.putSerializable(Helper.ARG_ACCOUNT, notification.account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -466,7 +467,7 @@ public class NotificationAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, notification.account); args.putSerializable(Helper.ARG_ACCOUNT, notification.account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);

@ -935,7 +935,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, fetchedStatus.reblog != null ? fetchedStatus.reblog.account : fetchedStatus.account); args.putSerializable(Helper.ARG_ACCOUNT, fetchedStatus.reblog != null ? fetchedStatus.reblog.account : fetchedStatus.account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount,bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -949,7 +949,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, status.reblog != null ? status.reblog.account : status.account); args.putSerializable(Helper.ARG_ACCOUNT, status.reblog != null ? status.reblog.account : status.account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -967,7 +967,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, fetchedStatus.account); args.putSerializable(Helper.ARG_ACCOUNT, fetchedStatus.account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -981,7 +981,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, status.account); args.putSerializable(Helper.ARG_ACCOUNT, status.account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -3159,7 +3159,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, status.account); args.putSerializable(Helper.ARG_ACCOUNT, status.account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);
@ -3215,7 +3215,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, statusToDeal.account); args.putSerializable(Helper.ARG_ACCOUNT, statusToDeal.account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);

@ -15,6 +15,8 @@ package app.fedilab.android.mastodon.ui.drawer;
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@ -90,7 +92,7 @@ public class SuggestionAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
Intent intent = new Intent(context, ProfileActivity.class); Intent intent = new Intent(context, ProfileActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, account); args.putSerializable(Helper.ARG_ACCOUNT, account);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);

@ -15,6 +15,8 @@ package app.fedilab.android.mastodon.ui.drawer.admin;
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
@ -80,7 +82,7 @@ public class AdminAccountAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
Intent intent = new Intent(context, AdminAccountActivity.class); Intent intent = new Intent(context, AdminAccountActivity.class);
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_ACCOUNT, adminAccount); args.putSerializable(Helper.ARG_ACCOUNT, adminAccount);
new CachedBundle(context).insertBundle(args, bundleId -> { new CachedBundle(context).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
intent.putExtras(bundle); intent.putExtras(bundle);

@ -14,6 +14,8 @@ package app.fedilab.android.mastodon.ui.fragment.media;
* You should have received a copy of the GNU General Public License along with Fedilab; if not, * You should have received a copy of the GNU General Public License along with Fedilab; if not,
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -72,7 +74,7 @@ public class FragmentMediaProfile extends Fragment {
if (getArguments() != null) { if (getArguments() != null) {
long bundleId = getArguments().getLong(Helper.ARG_INTENT_ID, -1); long bundleId = getArguments().getLong(Helper.ARG_INTENT_ID, -1);
new CachedBundle(requireActivity()).getBundle(bundleId, bundle -> { new CachedBundle(requireActivity()).getBundle(bundleId, currentAccount, bundle -> {
if(bundle != null) { if(bundle != null) {
accountTimeline = (Account) bundle.getSerializable(Helper.ARG_ACCOUNT); accountTimeline = (Account) bundle.getSerializable(Helper.ARG_ACCOUNT);
checkRemotely = bundle.getBoolean(Helper.ARG_CHECK_REMOTELY, false); checkRemotely = bundle.getBoolean(Helper.ARG_CHECK_REMOTELY, false);

@ -15,6 +15,7 @@ package app.fedilab.android.mastodon.ui.fragment.timeline;
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import static app.fedilab.android.BaseMainActivity.currentInstance; import static app.fedilab.android.BaseMainActivity.currentInstance;
import static app.fedilab.android.BaseMainActivity.currentToken; import static app.fedilab.android.BaseMainActivity.currentToken;
import static app.fedilab.android.mastodon.helper.MastodonHelper.ACCOUNTS_PER_CALL; import static app.fedilab.android.mastodon.helper.MastodonHelper.ACCOUNTS_PER_CALL;
@ -83,7 +84,7 @@ public class FragmentMastodonAccount extends Fragment {
token = currentToken; token = currentToken;
if (getArguments() != null) { if (getArguments() != null) {
long bundleId = getArguments().getLong(Helper.ARG_INTENT_ID, -1); long bundleId = getArguments().getLong(Helper.ARG_INTENT_ID, -1);
new CachedBundle(requireActivity()).getBundle(bundleId, this::initializeAfterBundle); new CachedBundle(requireActivity()).getBundle(bundleId, currentAccount, this::initializeAfterBundle);
} else { } else {
initializeAfterBundle(null); initializeAfterBundle(null);
} }
@ -217,7 +218,7 @@ public class FragmentMastodonAccount extends Fragment {
} }
} else if (timelineType == Timeline.TimeLineEnum.MUTED_TIMELINE_HOME) { } else if (timelineType == Timeline.TimeLineEnum.MUTED_TIMELINE_HOME) {
if (firstLoad) { if (firstLoad) {
accountsVM.getMutedHome(MainActivity.currentAccount) accountsVM.getMutedHome(currentAccount)
.observe(getViewLifecycleOwner(), this::initializeAccountCommonView); .observe(getViewLifecycleOwner(), this::initializeAccountCommonView);
} }
} else if (timelineType == Timeline.TimeLineEnum.BLOCKED_TIMELINE) { } else if (timelineType == Timeline.TimeLineEnum.BLOCKED_TIMELINE) {

@ -15,6 +15,7 @@ package app.fedilab.android.mastodon.ui.fragment.timeline;
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import static app.fedilab.android.BaseMainActivity.currentInstance; import static app.fedilab.android.BaseMainActivity.currentInstance;
import static app.fedilab.android.BaseMainActivity.networkAvailable; import static app.fedilab.android.BaseMainActivity.networkAvailable;
@ -385,7 +386,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
if (getArguments() != null) { if (getArguments() != null) {
long bundleId = getArguments().getLong(Helper.ARG_INTENT_ID, -1); long bundleId = getArguments().getLong(Helper.ARG_INTENT_ID, -1);
if(bundleId != -1 ) { if(bundleId != -1 ) {
new CachedBundle(requireActivity()).getBundle(bundleId, this::initializeAfterBundle); new CachedBundle(requireActivity()).getBundle(bundleId, currentAccount, this::initializeAfterBundle);
} else { } else {
initializeAfterBundle(getArguments()); initializeAfterBundle(getArguments());
} }

@ -14,6 +14,8 @@ package app.fedilab.android.mastodon.ui.fragment.timeline;
* You should have received a copy of the GNU General Public License along with Fedilab; if not, * You should have received a copy of the GNU General Public License along with Fedilab; if not,
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
@ -51,7 +53,7 @@ public class FragmentProfileTimeline extends Fragment {
if (getArguments() != null) { if (getArguments() != null) {
long bundleId = getArguments().getLong(Helper.ARG_INTENT_ID, -1); long bundleId = getArguments().getLong(Helper.ARG_INTENT_ID, -1);
if(bundleId != -1 ) { if(bundleId != -1 ) {
new CachedBundle(requireActivity()).getBundle(bundleId, bundle -> { new CachedBundle(requireActivity()).getBundle(bundleId, currentAccount, bundle -> {
account = (Account) bundle.getSerializable(Helper.ARG_ACCOUNT); account = (Account) bundle.getSerializable(Helper.ARG_ACCOUNT);
checkRemotely = bundle.getBoolean(Helper.ARG_CHECK_REMOTELY, false); checkRemotely = bundle.getBoolean(Helper.ARG_CHECK_REMOTELY, false);
}); });
@ -127,7 +129,7 @@ public class FragmentProfileTimeline extends Fragment {
args.putBoolean(Helper.ARG_CHECK_REMOTELY, checkRemotely); args.putBoolean(Helper.ARG_CHECK_REMOTELY, checkRemotely);
args.putBoolean(Helper.ARG_SHOW_REBLOGS, show_boosts); args.putBoolean(Helper.ARG_SHOW_REBLOGS, show_boosts);
args.putBoolean(Helper.ARG_SHOW_REPLIES, show_replies); args.putBoolean(Helper.ARG_SHOW_REPLIES, show_replies);
new CachedBundle(requireActivity()).insertBundle(args, bundleId -> { new CachedBundle(requireActivity()).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
fragmentMastodonTimeline.setArguments(bundle); fragmentMastodonTimeline.setArguments(bundle);

@ -61,7 +61,7 @@ public class FedilabProfilePageAdapter extends FragmentStatePagerAdapter {
case 0 -> { case 0 -> {
fragmentProfileTimeline = new FragmentMastodonTimeline(); fragmentProfileTimeline = new FragmentMastodonTimeline();
bundle.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.ACCOUNT_TIMELINE); bundle.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.ACCOUNT_TIMELINE);
bundle.putSerializable(Helper.ARG_ACCOUNT, account); bundle.putSerializable(Helper.ARG_CACHED_ACCOUNT_ID, account.id);
bundle.putBoolean(Helper.ARG_SHOW_PINNED, true); bundle.putBoolean(Helper.ARG_SHOW_PINNED, true);
bundle.putBoolean(Helper.ARG_SHOW_REPLIES, false); bundle.putBoolean(Helper.ARG_SHOW_REPLIES, false);
bundle.putBoolean(Helper.ARG_SHOW_REBLOGS, true); bundle.putBoolean(Helper.ARG_SHOW_REBLOGS, true);
@ -72,7 +72,7 @@ public class FedilabProfilePageAdapter extends FragmentStatePagerAdapter {
case 1 -> { case 1 -> {
fragmentProfileTimeline = new FragmentMastodonTimeline(); fragmentProfileTimeline = new FragmentMastodonTimeline();
bundle.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.ACCOUNT_TIMELINE); bundle.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.ACCOUNT_TIMELINE);
bundle.putSerializable(Helper.ARG_ACCOUNT, account); bundle.putSerializable(Helper.ARG_CACHED_ACCOUNT_ID, account.id);
bundle.putBoolean(Helper.ARG_SHOW_PINNED, false); bundle.putBoolean(Helper.ARG_SHOW_PINNED, false);
bundle.putBoolean(Helper.ARG_SHOW_REPLIES, true); bundle.putBoolean(Helper.ARG_SHOW_REPLIES, true);
bundle.putBoolean(Helper.ARG_SHOW_REBLOGS, false); bundle.putBoolean(Helper.ARG_SHOW_REBLOGS, false);
@ -82,7 +82,7 @@ public class FedilabProfilePageAdapter extends FragmentStatePagerAdapter {
} }
case 2 -> { case 2 -> {
FragmentMediaProfile fragmentMediaProfile = new FragmentMediaProfile(); FragmentMediaProfile fragmentMediaProfile = new FragmentMediaProfile();
bundle.putSerializable(Helper.ARG_ACCOUNT, account); bundle.putSerializable(Helper.ARG_CACHED_ACCOUNT_ID, account.id);
bundle.putBoolean(Helper.ARG_CHECK_REMOTELY, checkRemotely); bundle.putBoolean(Helper.ARG_CHECK_REMOTELY, checkRemotely);
fragmentMediaProfile.setArguments(bundle); fragmentMediaProfile.setArguments(bundle);
return fragmentMediaProfile; return fragmentMediaProfile;

@ -59,7 +59,7 @@ public class FedilabProfileTLPageAdapter extends FragmentStatePagerAdapter {
case 0 -> { case 0 -> {
FragmentProfileTimeline fragmentProfileTimeline = new FragmentProfileTimeline(); FragmentProfileTimeline fragmentProfileTimeline = new FragmentProfileTimeline();
bundle = new Bundle(); bundle = new Bundle();
bundle.putSerializable(Helper.ARG_ACCOUNT, account); bundle.putString(Helper.ARG_CACHED_ACCOUNT_ID, account.id);
bundle.putSerializable(Helper.ARG_CHECK_REMOTELY, checkRemotely); bundle.putSerializable(Helper.ARG_CHECK_REMOTELY, checkRemotely);
fragmentProfileTimeline.setArguments(bundle); fragmentProfileTimeline.setArguments(bundle);
return fragmentProfileTimeline; return fragmentProfileTimeline;
@ -67,7 +67,7 @@ public class FedilabProfileTLPageAdapter extends FragmentStatePagerAdapter {
case 1, 2 -> { case 1, 2 -> {
FragmentMastodonAccount fragmentMastodonAccount = new FragmentMastodonAccount(); FragmentMastodonAccount fragmentMastodonAccount = new FragmentMastodonAccount();
bundle = new Bundle(); bundle = new Bundle();
bundle.putSerializable(Helper.ARG_ACCOUNT, account); bundle.putString(Helper.ARG_CACHED_ACCOUNT_ID, account.id);
bundle.putSerializable(Helper.ARG_CHECK_REMOTELY, checkRemotely); bundle.putSerializable(Helper.ARG_CHECK_REMOTELY, checkRemotely);
bundle.putString(Helper.ARG_VIEW_MODEL_KEY, "FEDILAB_" + position); bundle.putString(Helper.ARG_VIEW_MODEL_KEY, "FEDILAB_" + position);
bundle.putSerializable(Helper.ARG_FOLLOW_TYPE, position == 1 ? follow_type.FOLLOWING : follow_type.FOLLOWERS); bundle.putSerializable(Helper.ARG_FOLLOW_TYPE, position == 1 ? follow_type.FOLLOWING : follow_type.FOLLOWERS);

@ -108,6 +108,7 @@ public class Sqlite extends SQLiteOpenHelper {
public static final String TABLE_INTENT = "INTENT"; public static final String TABLE_INTENT = "INTENT";
public static final String COL_BUNDLE = "BUNDLE"; public static final String COL_BUNDLE = "BUNDLE";
public static final String COL_TARGET_ID = "TARGET_ID";
private static final String CREATE_TABLE_USER_ACCOUNT = "CREATE TABLE " + TABLE_USER_ACCOUNT + " (" private static final String CREATE_TABLE_USER_ACCOUNT = "CREATE TABLE " + TABLE_USER_ACCOUNT + " ("
@ -239,7 +240,11 @@ public class Sqlite extends SQLiteOpenHelper {
private final String CREATE_TABLE_INTENT = "CREATE TABLE " private final String CREATE_TABLE_INTENT = "CREATE TABLE "
+ TABLE_INTENT + "(" + TABLE_INTENT + "("
+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ COL_BUNDLE + " TEXT NOT NULL, " + COL_INSTANCE + " TEXT, "
+ COL_USER_ID + " TEXT, "
+ COL_TYPE + " TEXT NOT NULL DEFAULT 'ARGS', "
+ COL_TARGET_ID + " TEXT, "
+ COL_BUNDLE + " TEXT, "
+ COL_CREATED_AT + " TEXT NOT NULL)"; + COL_CREATED_AT + " TEXT NOT NULL)";

@ -15,6 +15,8 @@ package app.fedilab.android.ui.fragment;
* see <http://www.gnu.org/licenses>. */ * see <http://www.gnu.org/licenses>. */
import static app.fedilab.android.BaseMainActivity.currentAccount;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -146,7 +148,7 @@ public class FragmentLoginPickInstanceMastodon extends Fragment implements Insta
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putSerializable(Helper.ARG_REMOTE_INSTANCE_STRING, clickedInstance.domain); args.putSerializable(Helper.ARG_REMOTE_INSTANCE_STRING, clickedInstance.domain);
args.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.TREND_MESSAGE_PUBLIC); args.putSerializable(Helper.ARG_TIMELINE_TYPE, Timeline.TimeLineEnum.TREND_MESSAGE_PUBLIC);
new CachedBundle(requireActivity()).insertBundle(args, bundleId -> { new CachedBundle(requireActivity()).insertBundle(args, currentAccount, bundleId -> {
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putLong(Helper.ARG_INTENT_ID, bundleId); bundle.putLong(Helper.ARG_INTENT_ID, bundleId);
Helper.addFragment( Helper.addFragment(

Loading…
Cancel
Save