Loading app/src/main/java/app/fedilab/android/activities/AboutActivity.java +1 −1 Original line number Diff line number Diff line Loading @@ -113,7 +113,7 @@ public class AboutActivity extends BaseBarActivity { if (relationShips != null && relationShips.size() > 0) { if (!relationShips.get(0).following) { binding.accountFollow.setVisibility(View.VISIBLE); binding.accountFollow.setOnClickListener(v -> accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false) binding.accountFollow.setOnClickListener(v -> accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false, null) .observe(AboutActivity.this, relationShip -> binding.accountFollow.setVisibility(View.GONE))); } } Loading app/src/main/java/app/fedilab/android/activities/ComposeActivity.java +15 −1 Original line number Diff line number Diff line Loading @@ -65,6 +65,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Set; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.TimeUnit; Loading Loading @@ -641,7 +642,20 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana } } if (statusReply.language != null && !statusReply.language.isEmpty()) { Set<String> storedLanguages = sharedpreferences.getStringSet(getString(R.string.SET_SELECTED_LANGUAGE), null); if (storedLanguages == null || storedLanguages.size() == 0) { statusDraftList.get(0).language = statusReply.language; } else { if (storedLanguages.contains(statusReply.language)) { statusDraftList.get(0).language = statusReply.language; } else { String currentCode = sharedpreferences.getString(getString(R.string.SET_COMPOSE_LANGUAGE) + account.user_id + account.instance, Locale.getDefault().getLanguage()); if (currentCode.isEmpty()) { currentCode = "EN"; } statusDraftList.get(0).language = currentCode; } } } //StatusDraftList at this point should only have one element statusList.addAll(statusDraftList); Loading app/src/main/java/app/fedilab/android/activities/PartnerShipActivity.java +1 −1 Original line number Diff line number Diff line Loading @@ -93,7 +93,7 @@ public class PartnerShipActivity extends BaseBarActivity { if (relationShips != null && relationShips.size() > 0) { if (!relationShips.get(0).following) { binding.accountFollow.setVisibility(View.VISIBLE); binding.accountFollow.setOnClickListener(v -> accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false) binding.accountFollow.setOnClickListener(v -> accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false, null) .observe(PartnerShipActivity.this, relationShip -> binding.accountFollow.setVisibility(View.GONE))); } } Loading app/src/main/java/app/fedilab/android/activities/ProfileActivity.java +65 −5 Original line number Diff line number Diff line Loading @@ -83,6 +83,7 @@ import app.fedilab.android.client.entities.api.Field; import app.fedilab.android.client.entities.api.IdentityProof; import app.fedilab.android.client.entities.api.MastodonList; import app.fedilab.android.client.entities.api.RelationShip; import app.fedilab.android.client.entities.app.Languages; import app.fedilab.android.client.entities.app.Pinned; import app.fedilab.android.client.entities.app.PinnedTimeline; import app.fedilab.android.client.entities.app.RemoteInstance; Loading Loading @@ -467,7 +468,7 @@ public class ProfileActivity extends BaseActivity { Toasty.info(ProfileActivity.this, getString(R.string.nothing_to_do), Toast.LENGTH_LONG).show(); } else if (doAction == action.FOLLOW) { binding.accountFollow.setEnabled(false); accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false) accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false, null) .observe(ProfileActivity.this, relationShip -> { this.relationship = relationShip; updateAccount(); Loading Loading @@ -660,7 +661,7 @@ public class ProfileActivity extends BaseActivity { binding.accountNotification.setOnClickListener(v -> { if (relationship != null && relationship.following) { relationship.notifying = !relationship.notifying; accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, relationship.showing_reblogs, relationship.notifying) accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, relationship.showing_reblogs, relationship.notifying, relationship.languages) .observe(ProfileActivity.this, relationShip -> { this.relationship = relationShip; updateAccount(); Loading Loading @@ -726,6 +727,7 @@ public class ProfileActivity extends BaseActivity { menu.findItem(R.id.action_direct_message).setVisible(false); menu.findItem(R.id.action_add_to_list).setVisible(false); menu.findItem(R.id.action_mute_home).setVisible(false); menu.findItem(R.id.action_subscribed_language).setVisible(false); } else { menu.findItem(R.id.action_block).setVisible(true); menu.findItem(R.id.action_mute).setVisible(true); Loading @@ -739,6 +741,7 @@ public class ProfileActivity extends BaseActivity { menu.findItem(R.id.action_hide_boost).setVisible(false); menu.findItem(R.id.action_endorse).setVisible(false); menu.findItem(R.id.action_mute_home).setVisible(false); menu.findItem(R.id.action_subscribed_language).setVisible(false); } if (relationship.blocking) { menu.findItem(R.id.action_block).setTitle(R.string.action_unblock); Loading Loading @@ -898,13 +901,70 @@ public class ProfileActivity extends BaseActivity { .observe(ProfileActivity.this, relationShip -> this.relationship = relationShip); } return true; } else if (itemId == R.id.action_subscribed_language) { if (relationship != null) { List<String> subscribedLanguages = relationship.languages; Set<String> storedLanguages = sharedpreferences.getStringSet(getString(R.string.SET_SELECTED_LANGUAGE), null); List<Languages.Language> languages = Languages.get(ProfileActivity.this); if (languages == null) { return true; } String[] codesArr; String[] languagesArr; boolean[] presentArr; if (storedLanguages != null && storedLanguages.size() > 0) { int i = 0; codesArr = new String[storedLanguages.size()]; languagesArr = new String[storedLanguages.size()]; presentArr = new boolean[storedLanguages.size()]; for (String code : storedLanguages) { for (Languages.Language language : languages) { if (language.code.equalsIgnoreCase(code)) { languagesArr[i] = language.language; } } codesArr[i] = code; presentArr[i] = subscribedLanguages != null && subscribedLanguages.contains(code); i++; } } else { codesArr = new String[languages.size()]; presentArr = new boolean[languages.size()]; languagesArr = new String[languages.size()]; int i = 0; for (Languages.Language language : languages) { codesArr[i] = language.code; languagesArr[i] = language.language; if (subscribedLanguages != null && subscribedLanguages.contains(language.code)) { presentArr[i] = true; } i++; } } AlertDialog.Builder builder = new MaterialAlertDialogBuilder(ProfileActivity.this, Helper.dialogStyle()); builder.setTitle(getString(R.string.filter_languages)); builder.setMultiChoiceItems(languagesArr, presentArr, (dialog, which, isChecked) -> { List<String> languagesFilter = new ArrayList<>(); for (int i = 0; i < codesArr.length; i++) { if (presentArr[i]) { languagesFilter.add(codesArr[i]); } } accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, relationship.showing_reblogs, relationship.notifying, languagesFilter) .observe(ProfileActivity.this, relationShip -> this.relationship = relationShip); }); builder.setNegativeButton(R.string.close, (dialog, which) -> dialog.dismiss()); builder.create().show(); } return true; } else if (itemId == R.id.action_hide_boost) { if (relationship != null) if (relationship.showing_reblogs) { accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, false, relationship.notifying) accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, false, relationship.notifying, relationship.languages) .observe(ProfileActivity.this, relationShip -> this.relationship = relationShip); } else { accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, relationship.notifying) accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, relationship.notifying, relationship.languages) .observe(ProfileActivity.this, relationShip -> this.relationship = relationShip); } return true; Loading Loading @@ -949,7 +1009,7 @@ public class ProfileActivity extends BaseActivity { } builderSingle.setMultiChoiceItems(listsArray, presentArray, (dialog, which, isChecked) -> { if (relationship == null || !relationship.following) { accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false) accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false, null) .observe(ProfileActivity.this, newRelationShip -> { if (newRelationShip != null) { relationship = newRelationShip; Loading app/src/main/java/app/fedilab/android/client/endpoints/MastodonAccountsService.java +2 −1 Original line number Diff line number Diff line Loading @@ -174,7 +174,8 @@ public interface MastodonAccountsService { @Header("Authorization") String app_token, @Path("id") String id, @Field("reblogs") boolean reblogs, @Field("notify") boolean notify @Field("notify") boolean notify, @Field("languages[]") List<String> languages ); //Follow account Loading Loading
app/src/main/java/app/fedilab/android/activities/AboutActivity.java +1 −1 Original line number Diff line number Diff line Loading @@ -113,7 +113,7 @@ public class AboutActivity extends BaseBarActivity { if (relationShips != null && relationShips.size() > 0) { if (!relationShips.get(0).following) { binding.accountFollow.setVisibility(View.VISIBLE); binding.accountFollow.setOnClickListener(v -> accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false) binding.accountFollow.setOnClickListener(v -> accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false, null) .observe(AboutActivity.this, relationShip -> binding.accountFollow.setVisibility(View.GONE))); } } Loading
app/src/main/java/app/fedilab/android/activities/ComposeActivity.java +15 −1 Original line number Diff line number Diff line Loading @@ -65,6 +65,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Set; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.TimeUnit; Loading Loading @@ -641,7 +642,20 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana } } if (statusReply.language != null && !statusReply.language.isEmpty()) { Set<String> storedLanguages = sharedpreferences.getStringSet(getString(R.string.SET_SELECTED_LANGUAGE), null); if (storedLanguages == null || storedLanguages.size() == 0) { statusDraftList.get(0).language = statusReply.language; } else { if (storedLanguages.contains(statusReply.language)) { statusDraftList.get(0).language = statusReply.language; } else { String currentCode = sharedpreferences.getString(getString(R.string.SET_COMPOSE_LANGUAGE) + account.user_id + account.instance, Locale.getDefault().getLanguage()); if (currentCode.isEmpty()) { currentCode = "EN"; } statusDraftList.get(0).language = currentCode; } } } //StatusDraftList at this point should only have one element statusList.addAll(statusDraftList); Loading
app/src/main/java/app/fedilab/android/activities/PartnerShipActivity.java +1 −1 Original line number Diff line number Diff line Loading @@ -93,7 +93,7 @@ public class PartnerShipActivity extends BaseBarActivity { if (relationShips != null && relationShips.size() > 0) { if (!relationShips.get(0).following) { binding.accountFollow.setVisibility(View.VISIBLE); binding.accountFollow.setOnClickListener(v -> accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false) binding.accountFollow.setOnClickListener(v -> accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false, null) .observe(PartnerShipActivity.this, relationShip -> binding.accountFollow.setVisibility(View.GONE))); } } Loading
app/src/main/java/app/fedilab/android/activities/ProfileActivity.java +65 −5 Original line number Diff line number Diff line Loading @@ -83,6 +83,7 @@ import app.fedilab.android.client.entities.api.Field; import app.fedilab.android.client.entities.api.IdentityProof; import app.fedilab.android.client.entities.api.MastodonList; import app.fedilab.android.client.entities.api.RelationShip; import app.fedilab.android.client.entities.app.Languages; import app.fedilab.android.client.entities.app.Pinned; import app.fedilab.android.client.entities.app.PinnedTimeline; import app.fedilab.android.client.entities.app.RemoteInstance; Loading Loading @@ -467,7 +468,7 @@ public class ProfileActivity extends BaseActivity { Toasty.info(ProfileActivity.this, getString(R.string.nothing_to_do), Toast.LENGTH_LONG).show(); } else if (doAction == action.FOLLOW) { binding.accountFollow.setEnabled(false); accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false) accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false, null) .observe(ProfileActivity.this, relationShip -> { this.relationship = relationShip; updateAccount(); Loading Loading @@ -660,7 +661,7 @@ public class ProfileActivity extends BaseActivity { binding.accountNotification.setOnClickListener(v -> { if (relationship != null && relationship.following) { relationship.notifying = !relationship.notifying; accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, relationship.showing_reblogs, relationship.notifying) accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, relationship.showing_reblogs, relationship.notifying, relationship.languages) .observe(ProfileActivity.this, relationShip -> { this.relationship = relationShip; updateAccount(); Loading Loading @@ -726,6 +727,7 @@ public class ProfileActivity extends BaseActivity { menu.findItem(R.id.action_direct_message).setVisible(false); menu.findItem(R.id.action_add_to_list).setVisible(false); menu.findItem(R.id.action_mute_home).setVisible(false); menu.findItem(R.id.action_subscribed_language).setVisible(false); } else { menu.findItem(R.id.action_block).setVisible(true); menu.findItem(R.id.action_mute).setVisible(true); Loading @@ -739,6 +741,7 @@ public class ProfileActivity extends BaseActivity { menu.findItem(R.id.action_hide_boost).setVisible(false); menu.findItem(R.id.action_endorse).setVisible(false); menu.findItem(R.id.action_mute_home).setVisible(false); menu.findItem(R.id.action_subscribed_language).setVisible(false); } if (relationship.blocking) { menu.findItem(R.id.action_block).setTitle(R.string.action_unblock); Loading Loading @@ -898,13 +901,70 @@ public class ProfileActivity extends BaseActivity { .observe(ProfileActivity.this, relationShip -> this.relationship = relationShip); } return true; } else if (itemId == R.id.action_subscribed_language) { if (relationship != null) { List<String> subscribedLanguages = relationship.languages; Set<String> storedLanguages = sharedpreferences.getStringSet(getString(R.string.SET_SELECTED_LANGUAGE), null); List<Languages.Language> languages = Languages.get(ProfileActivity.this); if (languages == null) { return true; } String[] codesArr; String[] languagesArr; boolean[] presentArr; if (storedLanguages != null && storedLanguages.size() > 0) { int i = 0; codesArr = new String[storedLanguages.size()]; languagesArr = new String[storedLanguages.size()]; presentArr = new boolean[storedLanguages.size()]; for (String code : storedLanguages) { for (Languages.Language language : languages) { if (language.code.equalsIgnoreCase(code)) { languagesArr[i] = language.language; } } codesArr[i] = code; presentArr[i] = subscribedLanguages != null && subscribedLanguages.contains(code); i++; } } else { codesArr = new String[languages.size()]; presentArr = new boolean[languages.size()]; languagesArr = new String[languages.size()]; int i = 0; for (Languages.Language language : languages) { codesArr[i] = language.code; languagesArr[i] = language.language; if (subscribedLanguages != null && subscribedLanguages.contains(language.code)) { presentArr[i] = true; } i++; } } AlertDialog.Builder builder = new MaterialAlertDialogBuilder(ProfileActivity.this, Helper.dialogStyle()); builder.setTitle(getString(R.string.filter_languages)); builder.setMultiChoiceItems(languagesArr, presentArr, (dialog, which, isChecked) -> { List<String> languagesFilter = new ArrayList<>(); for (int i = 0; i < codesArr.length; i++) { if (presentArr[i]) { languagesFilter.add(codesArr[i]); } } accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, relationship.showing_reblogs, relationship.notifying, languagesFilter) .observe(ProfileActivity.this, relationShip -> this.relationship = relationShip); }); builder.setNegativeButton(R.string.close, (dialog, which) -> dialog.dismiss()); builder.create().show(); } return true; } else if (itemId == R.id.action_hide_boost) { if (relationship != null) if (relationship.showing_reblogs) { accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, false, relationship.notifying) accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, false, relationship.notifying, relationship.languages) .observe(ProfileActivity.this, relationShip -> this.relationship = relationShip); } else { accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, relationship.notifying) accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, relationship.notifying, relationship.languages) .observe(ProfileActivity.this, relationShip -> this.relationship = relationShip); } return true; Loading Loading @@ -949,7 +1009,7 @@ public class ProfileActivity extends BaseActivity { } builderSingle.setMultiChoiceItems(listsArray, presentArray, (dialog, which, isChecked) -> { if (relationship == null || !relationship.following) { accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false) accountsVM.follow(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, account.id, true, false, null) .observe(ProfileActivity.this, newRelationShip -> { if (newRelationShip != null) { relationship = newRelationShip; Loading
app/src/main/java/app/fedilab/android/client/endpoints/MastodonAccountsService.java +2 −1 Original line number Diff line number Diff line Loading @@ -174,7 +174,8 @@ public interface MastodonAccountsService { @Header("Authorization") String app_token, @Path("id") String id, @Field("reblogs") boolean reblogs, @Field("notify") boolean notify @Field("notify") boolean notify, @Field("languages[]") List<String> languages ); //Follow account Loading