Minor improvements to manage multicommunities

This commit is contained in:
Balazs Toldi 2023-11-10 22:48:26 +01:00
parent 421342734c
commit 726eac70a9
No known key found for this signature in database
GPG Key ID: 6C7D440036F99D58
5 changed files with 46 additions and 98 deletions

View File

@ -122,7 +122,7 @@ public class EditMultiRedditActivity extends BaseActivity {
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mAccessToken = mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCESS_TOKEN, null); mAccessToken = mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCESS_TOKEN, null);
mAccountName = mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCOUNT_NAME, "-"); mAccountName = mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCOUNT_QUALIFIED_NAME, "-");
if (mAccessToken == null) { if (mAccessToken == null) {
visibilityLinearLayout.setVisibility(View.GONE); visibilityLinearLayout.setVisibility(View.GONE);
@ -144,41 +144,24 @@ public class EditMultiRedditActivity extends BaseActivity {
private void bindView() { private void bindView() {
if (multiReddit == null) { if (multiReddit == null) {
if (mAccessToken == null) {
FetchMultiRedditInfo.anonymousFetchMultiRedditInfo(mExecutor, new Handler(),
mRedditDataRoomDatabase, multipath, new FetchMultiRedditInfo.FetchMultiRedditInfoListener() {
@Override
public void success(MultiReddit multiReddit) {
EditMultiRedditActivity.this.multiReddit = multiReddit;
progressBar.setVisibility(View.GONE);
linearLayout.setVisibility(View.VISIBLE);
nameEditText.setText(multiReddit.getDisplayName());
descriptionEditText.setText(multiReddit.getDescription());
}
@Override FetchMultiRedditInfo.anonymousFetchMultiRedditInfo(mExecutor, new Handler(),
public void failed() { mRedditDataRoomDatabase, multipath, mAccountName, new FetchMultiRedditInfo.FetchMultiRedditInfoListener() {
//Will not be called @Override
} public void success(MultiReddit multiReddit) {
}); EditMultiRedditActivity.this.multiReddit = multiReddit;
} else { progressBar.setVisibility(View.GONE);
FetchMultiRedditInfo.fetchMultiRedditInfo(mRetrofit, mAccessToken, multipath, new FetchMultiRedditInfo.FetchMultiRedditInfoListener() { linearLayout.setVisibility(View.VISIBLE);
@Override nameEditText.setText(multiReddit.getDisplayName());
public void success(MultiReddit multiReddit) { descriptionEditText.setText(multiReddit.getDescription());
EditMultiRedditActivity.this.multiReddit = multiReddit; }
progressBar.setVisibility(View.GONE);
linearLayout.setVisibility(View.VISIBLE); @Override
nameEditText.setText(multiReddit.getDisplayName()); public void failed() {
descriptionEditText.setText(multiReddit.getDescription()); //Will not be called
visibilitySwitch.setChecked(!multiReddit.getVisibility().equals("public")); }
} });
@Override
public void failed() {
Snackbar.make(coordinatorLayout, R.string.cannot_fetch_multireddit, Snackbar.LENGTH_SHORT).show();
}
});
}
} else { } else {
progressBar.setVisibility(View.GONE); progressBar.setVisibility(View.GONE);
linearLayout.setVisibility(View.VISIBLE); linearLayout.setVisibility(View.VISIBLE);
@ -215,39 +198,24 @@ public class EditMultiRedditActivity extends BaseActivity {
return true; return true;
} }
if (mAccessToken == null) {
String name = nameEditText.getText().toString();
multiReddit.setDisplayName(name);
multiReddit.setName(name);
multiReddit.setDescription(descriptionEditText.getText().toString());
EditMultiReddit.anonymousEditMultiReddit(mExecutor, new Handler(), mRedditDataRoomDatabase,
multiReddit, new EditMultiReddit.EditMultiRedditListener() {
@Override
public void success() {
finish();
}
@Override String name = nameEditText.getText().toString();
public void failed() { multiReddit.setDisplayName(name);
//Will not be called multiReddit.setName(name);
} multiReddit.setDescription(descriptionEditText.getText().toString());
}); EditMultiReddit.anonymousEditMultiReddit(mExecutor, new Handler(), mRedditDataRoomDatabase,
} else { multiReddit, new EditMultiReddit.EditMultiRedditListener() {
/*String jsonModel = new MultiRedditJSONModel(nameEditText.getText().toString(), descriptionEditText.getText().toString(), @Override
visibilitySwitch.isChecked(), multiReddit.getSubreddits()).createJSONModel(); public void success() {
EditMultiReddit.editMultiReddit(mRetrofit, mAccessToken, multiReddit.getPath(), finish();
jsonModel, new EditMultiReddit.EditMultiRedditListener() { }
@Override
public void success() { @Override
finish(); public void failed() {
} //Will not be called
}
});
@Override
public void failed() {
Snackbar.make(coordinatorLayout, R.string.edit_multi_reddit_failed, Snackbar.LENGTH_SHORT).show();
}
});*/
}
return true; return true;
} }
return false; return false;

View File

@ -63,7 +63,6 @@ import eu.toldi.infinityforlemmy.events.SwitchAccountEvent;
import eu.toldi.infinityforlemmy.fragments.FollowedUsersListingFragment; import eu.toldi.infinityforlemmy.fragments.FollowedUsersListingFragment;
import eu.toldi.infinityforlemmy.fragments.MultiRedditListingFragment; import eu.toldi.infinityforlemmy.fragments.MultiRedditListingFragment;
import eu.toldi.infinityforlemmy.fragments.SubscribedSubredditsListingFragment; import eu.toldi.infinityforlemmy.fragments.SubscribedSubredditsListingFragment;
import eu.toldi.infinityforlemmy.multireddit.DeleteMultiReddit;
import eu.toldi.infinityforlemmy.multireddit.FetchMyMultiReddits; import eu.toldi.infinityforlemmy.multireddit.FetchMyMultiReddits;
import eu.toldi.infinityforlemmy.multireddit.MultiReddit; import eu.toldi.infinityforlemmy.multireddit.MultiReddit;
import eu.toldi.infinityforlemmy.subreddit.SubredditData; import eu.toldi.infinityforlemmy.subreddit.SubredditData;
@ -386,7 +385,7 @@ public class SubscribedThingListingActivity extends BaseActivity implements Acti
FetchMyMultiReddits.fetchMyMultiReddits(mOauthRetrofit, mAccessToken, new FetchMyMultiReddits.FetchMyMultiRedditsListener() { FetchMyMultiReddits.fetchMyMultiReddits(mOauthRetrofit, mAccessToken, new FetchMyMultiReddits.FetchMyMultiRedditsListener() {
@Override @Override
public void success(ArrayList<MultiReddit> multiReddits) { public void success(ArrayList<MultiReddit> multiReddits) {
InsertMultireddit.insertMultireddits(mExecutor, new Handler(), mRedditDataRoomDatabase, multiReddits, mAccountName, () -> { InsertMultireddit.insertMultireddits(mExecutor, new Handler(), mRedditDataRoomDatabase, multiReddits, mAccountQualifiedName, () -> {
mInsertMultiredditSuccess = true; mInsertMultiredditSuccess = true;
sectionsPagerAdapter.stopMultiRedditRefreshProgressbar(); sectionsPagerAdapter.stopMultiRedditRefreshProgressbar();
}); });
@ -408,27 +407,11 @@ public class SubscribedThingListingActivity extends BaseActivity implements Acti
.setMessage(R.string.delete_multi_reddit_dialog_message) .setMessage(R.string.delete_multi_reddit_dialog_message)
.setPositiveButton(R.string.delete, (dialogInterface, i) .setPositiveButton(R.string.delete, (dialogInterface, i)
-> { -> {
if (mAccessToken == null) {
DeleteMultiredditInDatabase.deleteMultiredditInDatabase(mExecutor, new Handler(), mRedditDataRoomDatabase, mAccountName, multiReddit.getPath(),
() -> Toast.makeText(SubscribedThingListingActivity.this,
R.string.delete_multi_reddit_success, Toast.LENGTH_SHORT).show());
} else {
DeleteMultiReddit.deleteMultiReddit(mExecutor, new Handler(), mOauthRetrofit, mRedditDataRoomDatabase,
mAccessToken, mAccountName, multiReddit.getPath(), new DeleteMultiReddit.DeleteMultiRedditListener() {
@Override
public void success() {
Toast.makeText(SubscribedThingListingActivity.this,
R.string.delete_multi_reddit_success, Toast.LENGTH_SHORT).show();
//loadMultiReddits();
}
@Override DeleteMultiredditInDatabase.deleteMultiredditInDatabase(mExecutor, new Handler(), mRedditDataRoomDatabase, mAccountQualifiedName, multiReddit.getPath(),
public void failed() { () -> Toast.makeText(SubscribedThingListingActivity.this,
Toast.makeText(SubscribedThingListingActivity.this, R.string.delete_multi_reddit_success, Toast.LENGTH_SHORT).show());
R.string.delete_multi_reddit_failed, Toast.LENGTH_SHORT).show();
}
});
}
}) })
.setNegativeButton(R.string.cancel, null) .setNegativeButton(R.string.cancel, null)
.show(); .show();

View File

@ -13,11 +13,7 @@ public class DeleteMultiredditInDatabase {
String accountName, String multipath, String accountName, String multipath,
DeleteMultiredditInDatabaseListener deleteMultiredditInDatabaseListener) { DeleteMultiredditInDatabaseListener deleteMultiredditInDatabaseListener) {
executor.execute(() -> { executor.execute(() -> {
if (accountName.equals("-")) { redditDataRoomDatabase.multiRedditDao().anonymousDeleteMultiReddit(multipath);
redditDataRoomDatabase.multiRedditDao().anonymousDeleteMultiReddit(multipath);
} else {
redditDataRoomDatabase.multiRedditDao().deleteMultiReddit(multipath, accountName);
}
handler.post(deleteMultiredditInDatabaseListener::success); handler.post(deleteMultiredditInDatabaseListener::success);
}); });
} }

View File

@ -50,10 +50,10 @@ public class FetchMultiRedditInfo {
public static void anonymousFetchMultiRedditInfo(Executor executor, Handler handler, public static void anonymousFetchMultiRedditInfo(Executor executor, Handler handler,
RedditDataRoomDatabase redditDataRoomDatabase, RedditDataRoomDatabase redditDataRoomDatabase,
String multipath, String multipath, String accountName,
FetchMultiRedditInfoListener fetchMultiRedditInfoListener) { FetchMultiRedditInfoListener fetchMultiRedditInfoListener) {
executor.execute(() -> { executor.execute(() -> {
MultiReddit multiReddit = redditDataRoomDatabase.multiRedditDao().getMultiReddit(multipath, "-"); MultiReddit multiReddit = redditDataRoomDatabase.multiRedditDao().getMultiReddit(multipath, accountName);
ArrayList<AnonymousMultiredditSubreddit> anonymousMultiredditSubreddits = ArrayList<AnonymousMultiredditSubreddit> anonymousMultiredditSubreddits =
(ArrayList<AnonymousMultiredditSubreddit>) redditDataRoomDatabase.anonymousMultiredditSubredditDao().getAllAnonymousMultiRedditSubreddits(multipath); (ArrayList<AnonymousMultiredditSubreddit>) redditDataRoomDatabase.anonymousMultiredditSubredditDao().getAllAnonymousMultiRedditSubreddits(multipath);
ArrayList<SubredditWithSelection> subredditNames = new ArrayList<>(); ArrayList<SubredditWithSelection> subredditNames = new ArrayList<>();

View File

@ -89,10 +89,11 @@
android:id="@+id/visibility_wrapper_linear_layout_edit_multi_reddit_activity" android:id="@+id/visibility_wrapper_linear_layout_edit_multi_reddit_activity"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="16dp" android:background="?attr/selectableItemBackground"
android:clickable="true" android:clickable="true"
android:focusable="true" android:focusable="true"
android:background="?attr/selectableItemBackground"> android:padding="16dp"
tools:visibility="gone">
<TextView <TextView
android:id="@+id/visibility_text_view_edit_multi_reddit_activity" android:id="@+id/visibility_text_view_edit_multi_reddit_activity"
@ -100,8 +101,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:text="@string/private_multi_reddit" android:text="@string/private_multi_reddit"
android:textSize="?attr/font_default" android:textColor="?attr/primaryTextColor"
android:textColor="?attr/primaryTextColor" /> android:textSize="?attr/font_default" />
<Switch <Switch
android:id="@+id/visibility_switch_edit_multi_reddit_activity" android:id="@+id/visibility_switch_edit_multi_reddit_activity"