mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-11-06 02:37:27 +01:00
Editing multireddits is now available.
This commit is contained in:
parent
9690c5eeac
commit
d6dd171ac4
@ -64,7 +64,7 @@ dependencies {
|
||||
implementation 'com.jakewharton:butterknife:10.2.0'
|
||||
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.0'
|
||||
implementation 'com.github.santalu:aspect-ratio-imageview:1.0.6'
|
||||
implementation 'androidx.paging:paging-runtime:2.1.1'
|
||||
implementation 'androidx.paging:paging-runtime:2.1.2'
|
||||
implementation 'com.lsjwzh:materialloadingprogressbar:0.5.8-RELEASE'
|
||||
implementation 'io.noties.markwon:core:4.2.0'
|
||||
implementation 'io.noties.markwon:linkify:4.2.0'
|
||||
@ -79,7 +79,7 @@ dependencies {
|
||||
implementation 'com.github.livefront:bridge:v1.2.0'
|
||||
implementation 'com.evernote:android-state:1.4.1'
|
||||
annotationProcessor 'com.evernote:android-state-processor:1.4.1'
|
||||
implementation 'androidx.work:work-runtime:2.3.2'
|
||||
implementation 'androidx.work:work-runtime:2.3.4'
|
||||
implementation 'androidx.preference:preference:1.1.0'
|
||||
implementation 'com.nex3z:flow-layout:1.3.0'
|
||||
implementation 'com.r0adkll:slidableactivity:2.1.0'
|
||||
|
@ -21,7 +21,16 @@
|
||||
android:theme="@style/AppTheme"
|
||||
android:usesCleartextTraffic="true"
|
||||
tools:replace="android:label">
|
||||
<activity android:name=".Activity.ThemePreviewActivity"
|
||||
<activity android:name=".Activity.SelectedSubredditsActivity"
|
||||
android:label="@string/selected_subeddits_activity_label"
|
||||
android:parentActivityName=".Activity.MainActivity"
|
||||
android:theme="@style/AppTheme.NoActionBar" />
|
||||
<activity android:name=".Activity.EditMultiRedditActivity"
|
||||
android:label="@string/edit_multi_reddit_activity_label"
|
||||
android:parentActivityName=".Activity.MainActivity"
|
||||
android:theme="@style/AppTheme.NoActionBar"/>
|
||||
<activity
|
||||
android:name=".Activity.ThemePreviewActivity"
|
||||
android:label="@string/theme_preview_activity_label"
|
||||
android:parentActivityName=".Activity.MainActivity"
|
||||
android:theme="@style/AppTheme.NoActionBar" />
|
||||
|
@ -35,7 +35,6 @@ import ml.docilealligator.infinityforreddit.MultiReddit.CreateMultiReddit;
|
||||
import ml.docilealligator.infinityforreddit.MultiReddit.MultiRedditJSONModel;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||
import ml.docilealligator.infinityforreddit.SubredditWithSelection;
|
||||
import retrofit2.Retrofit;
|
||||
|
||||
public class CreateMultiRedditActivity extends BaseActivity {
|
||||
@ -44,8 +43,7 @@ public class CreateMultiRedditActivity extends BaseActivity {
|
||||
private static final String NULL_ACCESS_TOKEN_STATE = "NATS";
|
||||
private static final String ACCESS_TOKEN_STATE = "ATS";
|
||||
private static final String ACCOUNT_NAME_STATE = "ANS";
|
||||
private static final String SELECTED_SUBSCRIBED_SUBREDDITS_STATE = "SSSS";
|
||||
private static final String SELECTED_OTHER_SUBREDDITS_STATE = "SOSS";
|
||||
private static final String SELECTED_SUBREDDITS_STATE = "SSS";
|
||||
@BindView(R.id.coordinator_layout_create_multi_reddit_activity)
|
||||
CoordinatorLayout coordinatorLayout;
|
||||
@BindView(R.id.appbar_layout_create_multi_reddit_activity)
|
||||
@ -81,8 +79,7 @@ public class CreateMultiRedditActivity extends BaseActivity {
|
||||
private boolean mNullAccessToken = false;
|
||||
private String mAccessToken;
|
||||
private String mAccountName;
|
||||
private ArrayList<SubredditWithSelection> mSelectedSubscribedSubreddits;
|
||||
private ArrayList<SubredditWithSelection> mSelectedOtherSubreddits;
|
||||
private ArrayList<String> mSubreddits;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@ -105,8 +102,7 @@ public class CreateMultiRedditActivity extends BaseActivity {
|
||||
mNullAccessToken = savedInstanceState.getBoolean(NULL_ACCESS_TOKEN_STATE);
|
||||
mAccessToken = savedInstanceState.getString(ACCESS_TOKEN_STATE);
|
||||
mAccountName = savedInstanceState.getString(ACCOUNT_NAME_STATE);
|
||||
mSelectedSubscribedSubreddits = savedInstanceState.getParcelableArrayList(SELECTED_SUBSCRIBED_SUBREDDITS_STATE);
|
||||
mSelectedOtherSubreddits = savedInstanceState.getParcelableArrayList(SELECTED_OTHER_SUBREDDITS_STATE);
|
||||
mSubreddits = savedInstanceState.getStringArrayList(SELECTED_SUBREDDITS_STATE);
|
||||
|
||||
if (!mNullAccessToken && mAccountName == null) {
|
||||
getCurrentAccountAndBindView();
|
||||
@ -114,8 +110,7 @@ public class CreateMultiRedditActivity extends BaseActivity {
|
||||
bindView();
|
||||
}
|
||||
} else {
|
||||
mSelectedSubscribedSubreddits = new ArrayList<>();
|
||||
mSelectedOtherSubreddits = new ArrayList<>();
|
||||
mSubreddits = new ArrayList<>();
|
||||
getCurrentAccountAndBindView();
|
||||
}
|
||||
}
|
||||
@ -136,11 +131,8 @@ public class CreateMultiRedditActivity extends BaseActivity {
|
||||
|
||||
private void bindView() {
|
||||
selectSubredditTextView.setOnClickListener(view -> {
|
||||
Intent intent = new Intent(CreateMultiRedditActivity.this, SubredditMultiselectionActivity.class);
|
||||
intent.putParcelableArrayListExtra(SubredditMultiselectionActivity.EXTRA_SELECTED_SUBSCRIBED_SUBREDDITS,
|
||||
mSelectedSubscribedSubreddits);
|
||||
intent.putParcelableArrayListExtra(SubredditMultiselectionActivity.EXTRA_SELECTED_OTHER_SUBREDDITS,
|
||||
mSelectedOtherSubreddits);
|
||||
Intent intent = new Intent(CreateMultiRedditActivity.this, SelectedSubredditsActivity.class);
|
||||
intent.putStringArrayListExtra(SelectedSubredditsActivity.EXTRA_SELECTED_SUBREDDITS, mSubreddits);
|
||||
startActivityForResult(intent, SUBREDDIT_SELECTION_REQUEST_CODE);
|
||||
});
|
||||
}
|
||||
@ -158,7 +150,7 @@ public class CreateMultiRedditActivity extends BaseActivity {
|
||||
case android.R.id.home:
|
||||
finish();
|
||||
return true;
|
||||
case R.id.action_create_create_multi_reddit_activity:
|
||||
case R.id.action_save_create_multi_reddit_activity:
|
||||
if (mAccountName == null || mAccessToken == null) {
|
||||
Snackbar.make(coordinatorLayout, R.string.something_went_wrong, Snackbar.LENGTH_SHORT).show();
|
||||
return true;
|
||||
@ -168,11 +160,8 @@ public class CreateMultiRedditActivity extends BaseActivity {
|
||||
return true;
|
||||
}
|
||||
|
||||
ArrayList<SubredditWithSelection> allSelectedSubreddits = new ArrayList<>();
|
||||
allSelectedSubreddits.addAll(mSelectedSubscribedSubreddits);
|
||||
allSelectedSubreddits.addAll(mSelectedOtherSubreddits);
|
||||
String jsonModel = new MultiRedditJSONModel(nameEditText.getText().toString(), descriptionEditText.getText().toString(),
|
||||
visibilitySwitch.isChecked(), allSelectedSubreddits).createJSONModel();
|
||||
visibilitySwitch.isChecked(), mSubreddits).createJSONModel();
|
||||
CreateMultiReddit.createMultiReddit(mOauthRetrofit, mRedditDataRoomDatabase, mAccessToken,
|
||||
"/user/" + mAccountName + "/m/" + nameEditText.getText().toString(),
|
||||
jsonModel, new CreateMultiReddit.CreateMultiRedditListener() {
|
||||
@ -199,26 +188,8 @@ public class CreateMultiRedditActivity extends BaseActivity {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == SUBREDDIT_SELECTION_REQUEST_CODE && resultCode == RESULT_OK) {
|
||||
if (data != null) {
|
||||
if (mSelectedSubscribedSubreddits == null) {
|
||||
mSelectedSubscribedSubreddits = new ArrayList<>();
|
||||
}
|
||||
if (mSelectedOtherSubreddits == null) {
|
||||
mSelectedOtherSubreddits = new ArrayList<>();
|
||||
}
|
||||
ArrayList<SubredditWithSelection> selectedSubscribedSubreddits = data.getParcelableArrayListExtra(
|
||||
SubredditMultiselectionActivity.EXTRA_RETURN_SELECTED_SUBSCRIBED_SUBREDDITS);
|
||||
ArrayList<SubredditWithSelection> selectedOtherSubreddits = data.getParcelableArrayListExtra(
|
||||
SubredditMultiselectionActivity.EXTRA_RETURN_SUBSCRIBED_OTHER_SUBREDDITS);
|
||||
if (selectedSubscribedSubreddits != null) {
|
||||
mSelectedSubscribedSubreddits.clear();
|
||||
mSelectedSubscribedSubreddits.addAll(selectedSubscribedSubreddits);
|
||||
}
|
||||
if (selectedOtherSubreddits != null) {
|
||||
mSelectedOtherSubreddits.clear();
|
||||
mSelectedOtherSubreddits.addAll(selectedOtherSubreddits);
|
||||
}
|
||||
|
||||
descriptionEditText.setText(mSelectedSubscribedSubreddits.toString() + mSelectedOtherSubreddits.toString());
|
||||
mSubreddits = data.getStringArrayListExtra(
|
||||
SubredditMultiselectionActivity.EXTRA_RETURN_SELECTED_SUBREDDITS);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -229,8 +200,7 @@ public class CreateMultiRedditActivity extends BaseActivity {
|
||||
outState.putBoolean(NULL_ACCESS_TOKEN_STATE, mNullAccessToken);
|
||||
outState.putString(ACCESS_TOKEN_STATE, mAccessToken);
|
||||
outState.putString(ACCOUNT_NAME_STATE, mAccountName);
|
||||
outState.putParcelableArrayList(SELECTED_SUBSCRIBED_SUBREDDITS_STATE, mSelectedSubscribedSubreddits);
|
||||
outState.putParcelableArrayList(SELECTED_OTHER_SUBREDDITS_STATE, mSelectedOtherSubreddits);
|
||||
outState.putStringArrayList(SELECTED_SUBREDDITS_STATE, mSubreddits);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -0,0 +1,263 @@
|
||||
package ml.docilealligator.infinityforreddit.Activity;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.Switch;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
import com.google.android.material.snackbar.Snackbar;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
||||
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
||||
import ml.docilealligator.infinityforreddit.Infinity;
|
||||
import ml.docilealligator.infinityforreddit.MultiReddit.EditMultiReddit;
|
||||
import ml.docilealligator.infinityforreddit.MultiReddit.FetchMultiRedditInfo;
|
||||
import ml.docilealligator.infinityforreddit.MultiReddit.MultiReddit;
|
||||
import ml.docilealligator.infinityforreddit.MultiReddit.MultiRedditJSONModel;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||
import retrofit2.Retrofit;
|
||||
|
||||
public class EditMultiRedditActivity extends BaseActivity {
|
||||
public static final String EXTRA_MULTI_REDDIT = "EMR";
|
||||
public static final String EXTRA_MULTI_PATH = "EMP";
|
||||
private static final int SUBREDDIT_SELECTION_REQUEST_CODE = 1;
|
||||
private static final String NULL_ACCESS_TOKEN_STATE = "NATS";
|
||||
private static final String ACCESS_TOKEN_STATE = "ATS";
|
||||
private static final String ACCOUNT_NAME_STATE = "ANS";
|
||||
private static final String MULTI_REDDIT_STATE = "MRS";
|
||||
private static final String MULTI_PATH_STATE = "MPS";
|
||||
@BindView(R.id.coordinator_layout_edit_multi_reddit_activity)
|
||||
CoordinatorLayout coordinatorLayout;
|
||||
@BindView(R.id.appbar_layout_edit_multi_reddit_activity)
|
||||
AppBarLayout appBarLayout;
|
||||
@BindView(R.id.toolbar_edit_multi_reddit_activity)
|
||||
Toolbar toolbar;
|
||||
@BindView(R.id.progress_bar_edit_multi_reddit_activity)
|
||||
ProgressBar progressBar;
|
||||
@BindView(R.id.linear_layout_edit_multi_reddit_activity)
|
||||
LinearLayout linearLayout;
|
||||
@BindView(R.id.multi_reddit_name_edit_text_edit_multi_reddit_activity)
|
||||
EditText nameEditText;
|
||||
@BindView(R.id.divider_1_edit_multi_reddit_activity)
|
||||
View divider1;
|
||||
@BindView(R.id.description_edit_text_edit_multi_reddit_activity)
|
||||
EditText descriptionEditText;
|
||||
@BindView(R.id.divider_2_edit_multi_reddit_activity)
|
||||
View divider2;
|
||||
@BindView(R.id.visibility_wrapper_linear_layout_edit_multi_reddit_activity)
|
||||
LinearLayout visibilityLinearLayout;
|
||||
@BindView(R.id.visibility_text_view_edit_multi_reddit_activity)
|
||||
TextView visibilityTextView;
|
||||
@BindView(R.id.visibility_switch_edit_multi_reddit_activity)
|
||||
Switch visibilitySwitch;
|
||||
@BindView(R.id.select_subreddit_text_view_edit_multi_reddit_activity)
|
||||
TextView selectSubredditTextView;
|
||||
@Inject
|
||||
@Named("oauth")
|
||||
Retrofit mRetrofit;
|
||||
@Inject
|
||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||
@Inject
|
||||
@Named("default")
|
||||
SharedPreferences mSharedPreferences;
|
||||
@Inject
|
||||
CustomThemeWrapper mCustomThemeWrapper;
|
||||
private boolean mNullAccessToken = false;
|
||||
private String mAccessToken;
|
||||
private String mAccountName;
|
||||
private MultiReddit multiReddit;
|
||||
private String multipath;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
((Infinity) getApplication()).getAppComponent().inject(this);
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_edit_multi_reddit);
|
||||
|
||||
ButterKnife.bind(this);
|
||||
|
||||
applyCustomTheme();
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && isChangeStatusBarIconColor()) {
|
||||
addOnOffsetChangedListener(appBarLayout);
|
||||
}
|
||||
|
||||
setSupportActionBar(toolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
if (savedInstanceState != null) {
|
||||
mNullAccessToken = savedInstanceState.getBoolean(NULL_ACCESS_TOKEN_STATE);
|
||||
mAccessToken = savedInstanceState.getString(ACCESS_TOKEN_STATE);
|
||||
mAccountName = savedInstanceState.getString(ACCOUNT_NAME_STATE);
|
||||
multiReddit = savedInstanceState.getParcelable(MULTI_REDDIT_STATE);
|
||||
multipath = savedInstanceState.getString(MULTI_PATH_STATE);
|
||||
|
||||
if (!mNullAccessToken && mAccountName == null) {
|
||||
getCurrentAccountAndBindView();
|
||||
} else {
|
||||
bindView();
|
||||
}
|
||||
} else {
|
||||
multiReddit = getIntent().getParcelableExtra(EXTRA_MULTI_REDDIT);
|
||||
multipath = getIntent().getStringExtra(EXTRA_MULTI_PATH);
|
||||
getCurrentAccountAndBindView();
|
||||
}
|
||||
}
|
||||
|
||||
private void getCurrentAccountAndBindView() {
|
||||
new GetCurrentAccountAsyncTask(mRedditDataRoomDatabase.accountDao(), account -> {
|
||||
if (account == null) {
|
||||
mNullAccessToken = true;
|
||||
Toast.makeText(this, R.string.logged_out, Toast.LENGTH_SHORT).show();
|
||||
finish();
|
||||
} else {
|
||||
mAccessToken = account.getAccessToken();
|
||||
mAccountName = account.getUsername();
|
||||
bindView();
|
||||
}
|
||||
}).execute();
|
||||
}
|
||||
|
||||
private void bindView() {
|
||||
if (multiReddit == null) {
|
||||
FetchMultiRedditInfo.fetchMultiRedditInfo(mRetrofit, mAccessToken, 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());
|
||||
visibilitySwitch.setChecked(!multiReddit.getVisibility().equals("public"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
Snackbar.make(coordinatorLayout, R.string.cannot_fetch_multireddit, Snackbar.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
progressBar.setVisibility(View.GONE);
|
||||
linearLayout.setVisibility(View.VISIBLE);
|
||||
nameEditText.setText(multiReddit.getDisplayName());
|
||||
descriptionEditText.setText(multiReddit.getDescription());
|
||||
visibilitySwitch.setChecked(!multiReddit.getVisibility().equals("public"));
|
||||
}
|
||||
|
||||
selectSubredditTextView.setOnClickListener(view -> {
|
||||
Intent intent = new Intent(EditMultiRedditActivity.this, SelectedSubredditsActivity.class);
|
||||
if (multiReddit.getSubreddits() != null) {
|
||||
intent.putStringArrayListExtra(SelectedSubredditsActivity.EXTRA_SELECTED_SUBREDDITS, multiReddit.getSubreddits());
|
||||
}
|
||||
startActivityForResult(intent, SUBREDDIT_SELECTION_REQUEST_CODE);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.edit_multi_reddit_activity, menu);
|
||||
applyMenuItemTheme(menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case android.R.id.home:
|
||||
finish();
|
||||
return true;
|
||||
case R.id.action_save_edit_multi_reddit_activity:
|
||||
if (mAccountName == null || mAccessToken == null) {
|
||||
Snackbar.make(coordinatorLayout, R.string.something_went_wrong, Snackbar.LENGTH_SHORT).show();
|
||||
return true;
|
||||
}
|
||||
if (nameEditText.getText() == null || nameEditText.getText().toString().equals("")) {
|
||||
Snackbar.make(coordinatorLayout, R.string.no_multi_reddit_name, Snackbar.LENGTH_SHORT).show();
|
||||
return true;
|
||||
}
|
||||
|
||||
String jsonModel = new MultiRedditJSONModel(nameEditText.getText().toString(), descriptionEditText.getText().toString(),
|
||||
visibilitySwitch.isChecked(), multiReddit.getSubreddits()).createJSONModel();
|
||||
EditMultiReddit.editMultiReddit(mRetrofit, mAccessToken, multiReddit.getPath(),
|
||||
jsonModel, new EditMultiReddit.EditMultiRedditListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
Snackbar.make(coordinatorLayout, R.string.edit_multi_reddit_failed, Snackbar.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == SUBREDDIT_SELECTION_REQUEST_CODE && resultCode == RESULT_OK) {
|
||||
if (data != null) {
|
||||
multiReddit.setSubreddits(data.getStringArrayListExtra(
|
||||
SubredditMultiselectionActivity.EXTRA_RETURN_SELECTED_SUBREDDITS));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(@NonNull Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
outState.putBoolean(NULL_ACCESS_TOKEN_STATE, mNullAccessToken);
|
||||
outState.putString(ACCESS_TOKEN_STATE, mAccessToken);
|
||||
outState.putString(ACCOUNT_NAME_STATE, mAccountName);
|
||||
outState.putParcelable(MULTI_REDDIT_STATE, multiReddit);
|
||||
outState.putString(MULTI_PATH_STATE, multipath);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SharedPreferences getSharedPreferences() {
|
||||
return mSharedPreferences;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CustomThemeWrapper getCustomThemeWrapper() {
|
||||
return mCustomThemeWrapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyCustomTheme() {
|
||||
applyAppBarLayoutAndToolbarTheme(appBarLayout, toolbar);
|
||||
progressBar.setIndeterminateTintList(ColorStateList.valueOf(mCustomThemeWrapper.getColorAccent()));
|
||||
int primaryTextColor = mCustomThemeWrapper.getPrimaryTextColor();
|
||||
nameEditText.setTextColor(primaryTextColor);
|
||||
int dividerColor = mCustomThemeWrapper.getDividerColor();
|
||||
divider1.setBackgroundColor(dividerColor);
|
||||
divider2.setBackgroundColor(dividerColor);
|
||||
descriptionEditText.setTextColor(primaryTextColor);
|
||||
visibilityTextView.setTextColor(primaryTextColor);
|
||||
selectSubredditTextView.setTextColor(primaryTextColor);
|
||||
}
|
||||
}
|
@ -38,7 +38,7 @@ import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask
|
||||
import ml.docilealligator.infinityforreddit.AsyncTask.InsertMultiRedditAsyncTask;
|
||||
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
||||
import ml.docilealligator.infinityforreddit.Infinity;
|
||||
import ml.docilealligator.infinityforreddit.MultiReddit.FetchMultiReddit;
|
||||
import ml.docilealligator.infinityforreddit.MultiReddit.FetchMyMultiReddits;
|
||||
import ml.docilealligator.infinityforreddit.MultiReddit.MultiReddit;
|
||||
import ml.docilealligator.infinityforreddit.MultiReddit.MultiRedditViewModel;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
@ -204,7 +204,7 @@ public class MultiRedditListingActivity extends BaseActivity {
|
||||
|
||||
private void loadMultiReddits() {
|
||||
mSwipeRefreshLayout.setRefreshing(true);
|
||||
FetchMultiReddit.fetchMyMultiReddits(mOauthRetrofit, mAccessToken, new FetchMultiReddit.FetchMultiRedditListener() {
|
||||
FetchMyMultiReddits.fetchMyMultiReddits(mOauthRetrofit, mAccessToken, new FetchMyMultiReddits.FetchMyMultiRedditsListener() {
|
||||
@Override
|
||||
public void success(ArrayList<MultiReddit> multiReddits) {
|
||||
new InsertMultiRedditAsyncTask(mRedditDataRoomDatabase, multiReddits, mAccountName, () -> {
|
||||
|
@ -0,0 +1,146 @@
|
||||
package ml.docilealligator.infinityforreddit.Activity;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import ml.docilealligator.infinityforreddit.Adapter.SelectedSubredditsRecyclerViewAdapter;
|
||||
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
||||
import ml.docilealligator.infinityforreddit.Infinity;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
|
||||
public class SelectedSubredditsActivity extends BaseActivity {
|
||||
|
||||
public static final String EXTRA_SELECTED_SUBREDDITS = "ESS";
|
||||
public static final String EXTRA_RETURN_SELECTED_SUBREDDITS = "ERSS";
|
||||
private static final int SUBREDDIT_SELECTION_REQUEST_CODE = 1;
|
||||
private static final String SELECTED_SUBREDDITS_STATE = "SSS";
|
||||
|
||||
@BindView(R.id.coordinator_layout_selected_subreddits_activity)
|
||||
CoordinatorLayout coordinatorLayout;
|
||||
@BindView(R.id.appbar_layout_selected_subreddits_activity)
|
||||
AppBarLayout appBarLayout;
|
||||
@BindView(R.id.toolbar_selected_subreddits_activity)
|
||||
Toolbar toolbar;
|
||||
@BindView(R.id.recycler_view_selected_subreddits_activity)
|
||||
RecyclerView recyclerView;
|
||||
@BindView(R.id.fab_selected_subreddits_activity)
|
||||
FloatingActionButton fab;
|
||||
@Inject
|
||||
@Named("default")
|
||||
SharedPreferences mSharedPreferences;
|
||||
@Inject
|
||||
CustomThemeWrapper mCustomThemeWrapper;
|
||||
private SelectedSubredditsRecyclerViewAdapter adapter;
|
||||
private ArrayList<String> subreddits;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
((Infinity) getApplication()).getAppComponent().inject(this);
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_selected_subreddits);
|
||||
|
||||
ButterKnife.bind(this);
|
||||
applyCustomTheme();
|
||||
|
||||
setSupportActionBar(toolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
if (savedInstanceState != null) {
|
||||
subreddits = savedInstanceState.getStringArrayList(SELECTED_SUBREDDITS_STATE);
|
||||
} else {
|
||||
subreddits = getIntent().getStringArrayListExtra(EXTRA_SELECTED_SUBREDDITS);
|
||||
}
|
||||
|
||||
adapter = new SelectedSubredditsRecyclerViewAdapter(mCustomThemeWrapper, subreddits);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(this));
|
||||
recyclerView.setAdapter(adapter);
|
||||
|
||||
fab.setOnClickListener(view -> {
|
||||
Intent intent = new Intent(this, SubredditMultiselectionActivity.class);
|
||||
startActivityForResult(intent, SUBREDDIT_SELECTION_REQUEST_CODE);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.selected_subreddits_activity, menu);
|
||||
applyMenuItemTheme(menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
||||
if (item.getItemId() == android.R.id.home) {
|
||||
finish();
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.action_save_selected_subreddits_activity) {
|
||||
if (adapter != null) {
|
||||
Intent returnIntent = new Intent();
|
||||
returnIntent.putExtra(EXTRA_RETURN_SELECTED_SUBREDDITS, adapter.getSubreddits());
|
||||
setResult(Activity.RESULT_OK, returnIntent);
|
||||
}
|
||||
finish();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == SUBREDDIT_SELECTION_REQUEST_CODE && resultCode == RESULT_OK) {
|
||||
if (data != null) {
|
||||
if (subreddits == null) {
|
||||
subreddits = new ArrayList<>();
|
||||
}
|
||||
subreddits = data.getStringArrayListExtra(SubredditMultiselectionActivity.EXTRA_RETURN_SELECTED_SUBREDDITS);
|
||||
adapter.addSubreddits(subreddits);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onSaveInstanceState(@NonNull Bundle outState) {
|
||||
super.onSaveInstanceState(outState);
|
||||
if (adapter != null) {
|
||||
outState.putStringArrayList(SELECTED_SUBREDDITS_STATE, adapter.getSubreddits());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SharedPreferences getSharedPreferences() {
|
||||
return mSharedPreferences;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CustomThemeWrapper getCustomThemeWrapper() {
|
||||
return mCustomThemeWrapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyCustomTheme() {
|
||||
coordinatorLayout.setBackgroundColor(mCustomThemeWrapper.getBackgroundColor());
|
||||
applyAppBarLayoutAndToolbarTheme(appBarLayout, toolbar);
|
||||
applyFABTheme(fab, R.drawable.ic_add_24dp);
|
||||
}
|
||||
}
|
@ -40,24 +40,17 @@ import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
||||
import ml.docilealligator.infinityforreddit.Infinity;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||
import ml.docilealligator.infinityforreddit.SubredditDatabase.SubredditData;
|
||||
import ml.docilealligator.infinityforreddit.SubredditWithSelection;
|
||||
import ml.docilealligator.infinityforreddit.SubscribedSubredditDatabase.SubscribedSubredditViewModel;
|
||||
import retrofit2.Retrofit;
|
||||
|
||||
public class SubredditMultiselectionActivity extends BaseActivity {
|
||||
|
||||
static final String EXTRA_SELECTED_SUBSCRIBED_SUBREDDITS = "ESS";
|
||||
static final String EXTRA_SELECTED_OTHER_SUBREDDITS = "EOSS";
|
||||
static final String EXTRA_RETURN_SELECTED_SUBSCRIBED_SUBREDDITS = "ERSSS";
|
||||
static final String EXTRA_RETURN_SUBSCRIBED_OTHER_SUBREDDITS = "EROSS";
|
||||
static final String EXTRA_RETURN_SELECTED_SUBREDDITS = "ERSS";
|
||||
|
||||
private static final int SUBREDDIT_SEARCH_REQUEST_CODE = 1;
|
||||
private static final String NULL_ACCESS_TOKEN_STATE = "NATS";
|
||||
private static final String ACCESS_TOKEN_STATE = "ATS";
|
||||
private static final String ACCOUNT_NAME_STATE = "ANS";
|
||||
private static final String SELECTED_SUBSCRIBED_SUBREDDITS_STATE = "SSSS";
|
||||
private static final String SELECTED_OTHER_SUBREDDITS_STATE = "SOSS";
|
||||
|
||||
@BindView(R.id.coordinator_layout_subreddits_multiselection_activity)
|
||||
CoordinatorLayout mCoordinatorLayout;
|
||||
@ -132,20 +125,16 @@ public class SubredditMultiselectionActivity extends BaseActivity {
|
||||
mAccountName = savedInstanceState.getString(ACCOUNT_NAME_STATE);
|
||||
|
||||
if (!mNullAccessToken && mAccountName == null) {
|
||||
getCurrentAccountAndBindView(savedInstanceState.getParcelableArrayList(SELECTED_SUBSCRIBED_SUBREDDITS_STATE),
|
||||
savedInstanceState.getParcelableArrayList(SELECTED_OTHER_SUBREDDITS_STATE));
|
||||
getCurrentAccountAndBindView();
|
||||
} else {
|
||||
bindView(savedInstanceState.getParcelableArrayList(SELECTED_SUBSCRIBED_SUBREDDITS_STATE),
|
||||
savedInstanceState.getParcelableArrayList(SELECTED_OTHER_SUBREDDITS_STATE));
|
||||
bindView();
|
||||
}
|
||||
} else {
|
||||
getCurrentAccountAndBindView(getIntent().getParcelableArrayListExtra(EXTRA_SELECTED_SUBSCRIBED_SUBREDDITS),
|
||||
getIntent().getParcelableArrayListExtra(EXTRA_SELECTED_OTHER_SUBREDDITS));
|
||||
getCurrentAccountAndBindView();
|
||||
}
|
||||
}
|
||||
|
||||
private void getCurrentAccountAndBindView(ArrayList<SubredditWithSelection> selectedSubscribedSubreddits,
|
||||
ArrayList<SubredditWithSelection> otherSubreddits) {
|
||||
private void getCurrentAccountAndBindView() {
|
||||
new GetCurrentAccountAsyncTask(mRedditDataRoomDatabase.accountDao(), account -> {
|
||||
if (account == null) {
|
||||
mNullAccessToken = true;
|
||||
@ -154,16 +143,14 @@ public class SubredditMultiselectionActivity extends BaseActivity {
|
||||
} else {
|
||||
mAccessToken = account.getAccessToken();
|
||||
mAccountName = account.getUsername();
|
||||
bindView(selectedSubscribedSubreddits, otherSubreddits);
|
||||
bindView();
|
||||
}
|
||||
}).execute();
|
||||
}
|
||||
|
||||
private void bindView(ArrayList<SubredditWithSelection> selectedSubscribedSubreddits,
|
||||
ArrayList<SubredditWithSelection> otherSubreddits) {
|
||||
private void bindView() {
|
||||
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
|
||||
mAdapter = new SubredditMultiselectionRecyclerViewAdapter(this, mCustomThemeWrapper,
|
||||
selectedSubscribedSubreddits, otherSubreddits);
|
||||
mAdapter = new SubredditMultiselectionRecyclerViewAdapter(this, mCustomThemeWrapper);
|
||||
mRecyclerView.setAdapter(mAdapter);
|
||||
|
||||
mSubscribedSubredditViewModel = new ViewModelProvider(this,
|
||||
@ -201,10 +188,8 @@ public class SubredditMultiselectionActivity extends BaseActivity {
|
||||
case R.id.action_save_subreddit_multiselection_activity:
|
||||
if (mAdapter != null) {
|
||||
Intent returnIntent = new Intent();
|
||||
returnIntent.putParcelableArrayListExtra(EXTRA_RETURN_SELECTED_SUBSCRIBED_SUBREDDITS,
|
||||
mAdapter.getAllSelectedSubscribedSubreddits());
|
||||
returnIntent.putParcelableArrayListExtra(EXTRA_RETURN_SUBSCRIBED_OTHER_SUBREDDITS,
|
||||
mAdapter.getAllSelectedOtherSubreddits());
|
||||
returnIntent.putStringArrayListExtra(EXTRA_RETURN_SELECTED_SUBREDDITS,
|
||||
mAdapter.getAllSelectedSubreddits());
|
||||
setResult(RESULT_OK, returnIntent);
|
||||
}
|
||||
finish();
|
||||
@ -221,12 +206,13 @@ public class SubredditMultiselectionActivity extends BaseActivity {
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == SUBREDDIT_SEARCH_REQUEST_CODE && resultCode == RESULT_OK && data != null
|
||||
&& mAdapter != null) {
|
||||
String subredditName = data.getStringExtra(SearchActivity.EXTRA_RETURN_SUBREDDIT_NAME);
|
||||
String subredditIconUrl = data.getStringExtra(SearchActivity.EXTRA_RETURN_SUBREDDIT_ICON_URL);
|
||||
mAdapter.addOtherSubreddit(new SubredditData("-1", subredditName, subredditIconUrl,
|
||||
null, null, null, 0));
|
||||
if (requestCode == SUBREDDIT_SEARCH_REQUEST_CODE && resultCode == RESULT_OK && data != null) {
|
||||
Intent returnIntent = new Intent();
|
||||
ArrayList<String> selectedSubreddits = mAdapter.getAllSelectedSubreddits();
|
||||
selectedSubreddits.add(data.getStringExtra(SearchActivity.EXTRA_RETURN_SUBREDDIT_NAME));
|
||||
returnIntent.putStringArrayListExtra(EXTRA_RETURN_SELECTED_SUBREDDITS, selectedSubreddits);
|
||||
setResult(RESULT_OK, returnIntent);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
@ -236,8 +222,6 @@ public class SubredditMultiselectionActivity extends BaseActivity {
|
||||
outState.putBoolean(NULL_ACCESS_TOKEN_STATE, mNullAccessToken);
|
||||
outState.putString(ACCESS_TOKEN_STATE, mAccessToken);
|
||||
outState.putString(ACCOUNT_NAME_STATE, mAccountName);
|
||||
outState.putParcelableArrayList(SELECTED_SUBSCRIBED_SUBREDDITS_STATE, mAdapter.getAllSelectedSubscribedSubreddits());
|
||||
outState.putParcelableArrayList(SELECTED_OTHER_SUBREDDITS_STATE, mAdapter.getAllOtherSubreddits());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -33,6 +33,7 @@ import ml.docilealligator.infinityforreddit.Fragment.SortTypeBottomSheetFragment
|
||||
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
||||
import ml.docilealligator.infinityforreddit.Infinity;
|
||||
import ml.docilealligator.infinityforreddit.MultiReddit.DeleteMultiReddit;
|
||||
import ml.docilealligator.infinityforreddit.MultiReddit.EditMultiReddit;
|
||||
import ml.docilealligator.infinityforreddit.MultiReddit.MultiReddit;
|
||||
import ml.docilealligator.infinityforreddit.Post.PostDataSource;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
@ -248,7 +249,12 @@ public class ViewMultiRedditDetailActivity extends BaseActivity implements SortT
|
||||
case R.id.action_change_post_layout_view_multi_reddit_detail_activity:
|
||||
postLayoutBottomSheetFragment.show(getSupportFragmentManager(), postLayoutBottomSheetFragment.getTag());
|
||||
return true;
|
||||
case R.id.action_delte_view_multi_reddit_detail_activity:
|
||||
case R.id.action_edit_view_multi_reddit_detail_activity:
|
||||
Intent editIntent = new Intent(this, EditMultiRedditActivity.class);
|
||||
editIntent.putExtra(EditMultiRedditActivity.EXTRA_MULTI_PATH, multiPath);
|
||||
startActivity(editIntent);
|
||||
return true;
|
||||
case R.id.action_delete_view_multi_reddit_detail_activity:
|
||||
new MaterialAlertDialogBuilder(this, R.style.MaterialAlertDialogTheme)
|
||||
.setTitle(R.string.delete)
|
||||
.setMessage(R.string.delete_multi_reddit_dialog_message)
|
||||
|
@ -109,7 +109,7 @@ public class MultiRedditListingRecyclerViewAdapter extends RecyclerView.Adapter<
|
||||
mFavoriteMultiReddits.size() + 2 : 0;
|
||||
|
||||
MultiReddit multiReddit = mMultiReddits.get(holder.getAdapterPosition() - offset);
|
||||
name = multiReddit.getName();
|
||||
name = multiReddit.getDisplayName();
|
||||
iconUrl = multiReddit.getIconUrl();
|
||||
if(multiReddit.isFavorite()) {
|
||||
((MultiRedditViewHolder) holder).favoriteImageView.setImageResource(R.drawable.ic_favorite_24dp);
|
||||
@ -192,7 +192,7 @@ public class MultiRedditListingRecyclerViewAdapter extends RecyclerView.Adapter<
|
||||
((MultiRedditViewHolder) holder).multiRedditNameTextView.setText(name);
|
||||
} else if (holder instanceof FavoriteMultiRedditViewHolder) {
|
||||
MultiReddit multiReddit = mFavoriteMultiReddits.get(holder.getAdapterPosition() - 1);
|
||||
String name = multiReddit.getName();
|
||||
String name = multiReddit.getDisplayName();
|
||||
String iconUrl = multiReddit.getIconUrl();
|
||||
if(multiReddit.isFavorite()) {
|
||||
((FavoriteMultiRedditViewHolder) holder).favoriteImageView.setImageResource(R.drawable.ic_favorite_24dp);
|
||||
|
@ -0,0 +1,79 @@
|
||||
package ml.docilealligator.infinityforreddit.Adapter;
|
||||
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
|
||||
public class SelectedSubredditsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
private CustomThemeWrapper customThemeWrapper;
|
||||
private ArrayList<String> subreddits;
|
||||
|
||||
public SelectedSubredditsRecyclerViewAdapter(CustomThemeWrapper customThemeWrapper, ArrayList<String> subreddits) {
|
||||
this.customThemeWrapper = customThemeWrapper;
|
||||
if (subreddits == null) {
|
||||
this.subreddits = new ArrayList<>();
|
||||
} else {
|
||||
this.subreddits = subreddits;
|
||||
}
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
return new SubredditViewHolder(LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.item_selected_subreddit, parent, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||
if (holder instanceof SubredditViewHolder) {
|
||||
((SubredditViewHolder) holder).subredditNameTextView.setText(subreddits.get(holder.getAdapterPosition()));
|
||||
((SubredditViewHolder) holder).deleteButton.setOnClickListener(view -> {
|
||||
subreddits.remove(holder.getAdapterPosition());
|
||||
notifyItemRemoved(holder.getAdapterPosition());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return subreddits.size();
|
||||
}
|
||||
|
||||
public void addSubreddits(ArrayList<String> newSubreddits) {
|
||||
int oldSize = subreddits.size();
|
||||
subreddits.addAll(newSubreddits);
|
||||
notifyItemRangeInserted(oldSize, newSubreddits.size());
|
||||
}
|
||||
|
||||
public ArrayList<String> getSubreddits() {
|
||||
return subreddits;
|
||||
}
|
||||
|
||||
class SubredditViewHolder extends RecyclerView.ViewHolder {
|
||||
@BindView(R.id.subreddit_name_item_selected_subreddit)
|
||||
TextView subredditNameTextView;
|
||||
@BindView(R.id.delete_image_view_item_selected_subreddit)
|
||||
ImageView deleteButton;
|
||||
|
||||
public SubredditViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
ButterKnife.bind(this, itemView);
|
||||
|
||||
subredditNameTextView.setTextColor(customThemeWrapper.getPrimaryIconColor());
|
||||
deleteButton.setColorFilter(customThemeWrapper.getPrimaryIconColor(), android.graphics.PorterDuff.Mode.SRC_IN);
|
||||
}
|
||||
}
|
||||
}
|
@ -7,7 +7,6 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
@ -24,134 +23,61 @@ import butterknife.ButterKnife;
|
||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
||||
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
import ml.docilealligator.infinityforreddit.SubredditDatabase.SubredditData;
|
||||
import ml.docilealligator.infinityforreddit.SubredditWithSelection;
|
||||
import ml.docilealligator.infinityforreddit.SubscribedSubredditDatabase.SubscribedSubredditData;
|
||||
import pl.droidsonroids.gif.GifImageView;
|
||||
|
||||
public class SubredditMultiselectionRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
|
||||
private static final int SUBSCRIBED_SUBREDDIT_VIEW_TYPE = 0;
|
||||
private static final int OTHER_SUBREDDIT_VIEW_TYPE = 1;
|
||||
|
||||
private ArrayList<SubredditWithSelection> subscribedSubreddits;
|
||||
private ArrayList<SubredditWithSelection> otherSubreddits;
|
||||
private ArrayList<SubredditWithSelection> selectedSubscribedSubreddits;
|
||||
private ArrayList<SubredditWithSelection> selectedOtherSubreddits;
|
||||
private Context context;
|
||||
private RequestManager glide;
|
||||
private int primaryTextColor;
|
||||
private int colorAccent;
|
||||
|
||||
public SubredditMultiselectionRecyclerViewAdapter(Context context, CustomThemeWrapper customThemeWrapper,
|
||||
ArrayList<SubredditWithSelection> selectedSubscribedSubreddits,
|
||||
ArrayList<SubredditWithSelection> otherSubreddits) {
|
||||
this.context = context;
|
||||
public SubredditMultiselectionRecyclerViewAdapter(Context context, CustomThemeWrapper customThemeWrapper) {
|
||||
glide = Glide.with(context);
|
||||
subscribedSubreddits = new ArrayList<>();
|
||||
this.otherSubreddits = new ArrayList<>();
|
||||
this.selectedSubscribedSubreddits = new ArrayList<>();
|
||||
selectedOtherSubreddits = new ArrayList<>();
|
||||
|
||||
if (selectedSubscribedSubreddits != null) {
|
||||
this.selectedSubscribedSubreddits.addAll(selectedSubscribedSubreddits);
|
||||
}
|
||||
|
||||
if (otherSubreddits != null) {
|
||||
this.selectedOtherSubreddits.addAll(otherSubreddits);
|
||||
this.otherSubreddits.addAll(otherSubreddits);
|
||||
}
|
||||
|
||||
primaryTextColor = customThemeWrapper.getPrimaryTextColor();
|
||||
colorAccent = customThemeWrapper.getColorAccent();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (otherSubreddits.size() > 0) {
|
||||
if (position >= otherSubreddits.size()) {
|
||||
return SUBSCRIBED_SUBREDDIT_VIEW_TYPE;
|
||||
}
|
||||
|
||||
return OTHER_SUBREDDIT_VIEW_TYPE;
|
||||
}
|
||||
|
||||
return SUBSCRIBED_SUBREDDIT_VIEW_TYPE;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
if (viewType == SUBSCRIBED_SUBREDDIT_VIEW_TYPE) {
|
||||
return new SubscribedSubredditViewHolder(LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.item_subscribed_subreddit_multi_selection, parent, false));
|
||||
} else {
|
||||
return new OtherSubredditViewHolder(LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.item_subscribed_subreddit_multi_selection, parent, false));
|
||||
}
|
||||
return new SubscribedSubredditViewHolder(LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.item_subscribed_subreddit_multi_selection, parent, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||
if (holder instanceof SubscribedSubredditViewHolder) {
|
||||
int offset = otherSubreddits.size();
|
||||
((SubscribedSubredditViewHolder) holder).nameTextView.setText(subscribedSubreddits.get(position - offset).getName());
|
||||
glide.load(subscribedSubreddits.get(position - offset).getIconUrl())
|
||||
((SubscribedSubredditViewHolder) holder).nameTextView.setText(subscribedSubreddits.get(position).getName());
|
||||
glide.load(subscribedSubreddits.get(position).getIconUrl())
|
||||
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
|
||||
.error(glide.load(R.drawable.subreddit_default_icon)
|
||||
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0))))
|
||||
.into(((SubscribedSubredditViewHolder) holder).iconImageView);
|
||||
if (subscribedSubreddits.get(position - offset).isSelected()) {
|
||||
if (subscribedSubreddits.get(position).isSelected()) {
|
||||
((SubscribedSubredditViewHolder) holder).checkBox.setChecked(true);
|
||||
} else {
|
||||
((SubscribedSubredditViewHolder) holder).checkBox.setChecked(false);
|
||||
}
|
||||
((SubscribedSubredditViewHolder) holder).checkBox.setOnClickListener(view -> {
|
||||
if (subscribedSubreddits.get(position - offset).isSelected()) {
|
||||
if (subscribedSubreddits.get(position).isSelected()) {
|
||||
((SubscribedSubredditViewHolder) holder).checkBox.setChecked(false);
|
||||
subscribedSubreddits.get(position - offset).setSelected(false);
|
||||
selectedSubscribedSubreddits.remove(subscribedSubreddits.get(position - offset));
|
||||
subscribedSubreddits.get(position).setSelected(false);
|
||||
} else {
|
||||
((SubscribedSubredditViewHolder) holder).checkBox.setChecked(true);
|
||||
subscribedSubreddits.get(position - offset).setSelected(true);
|
||||
insertIntoSelectedSubredditsArrayListAscend(selectedSubscribedSubreddits,
|
||||
subscribedSubreddits.get(position - offset));
|
||||
subscribedSubreddits.get(position).setSelected(true);
|
||||
}
|
||||
});
|
||||
((SubscribedSubredditViewHolder) holder).itemView.setOnClickListener(view ->
|
||||
((SubscribedSubredditViewHolder) holder).checkBox.performClick());
|
||||
} else if (holder instanceof OtherSubredditViewHolder) {
|
||||
SubredditWithSelection subreddit = otherSubreddits.get(position);
|
||||
((OtherSubredditViewHolder) holder).nameTextView.setText(subreddit.getName());
|
||||
glide.load(subreddit.getIconUrl())
|
||||
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
|
||||
.error(glide.load(R.drawable.subreddit_default_icon)
|
||||
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0))))
|
||||
.into(((OtherSubredditViewHolder) holder).iconImageView);
|
||||
if (subreddit.isSelected()) {
|
||||
((OtherSubredditViewHolder) holder).checkBox.setChecked(true);
|
||||
} else {
|
||||
((OtherSubredditViewHolder) holder).checkBox.setChecked(false);
|
||||
}
|
||||
((OtherSubredditViewHolder) holder).checkBox.setOnClickListener(view -> {
|
||||
if (subreddit.isSelected()) {
|
||||
((OtherSubredditViewHolder) holder).checkBox.setChecked(false);
|
||||
subreddit.setSelected(false);
|
||||
selectedOtherSubreddits.remove(subreddit);
|
||||
} else {
|
||||
((OtherSubredditViewHolder) holder).checkBox.setChecked(true);
|
||||
subreddit.setSelected(true);
|
||||
insertIntoSelectedSubredditsArrayListAscend(selectedOtherSubreddits, subreddit);
|
||||
}
|
||||
});
|
||||
((OtherSubredditViewHolder) holder).itemView.setOnClickListener(view ->
|
||||
((OtherSubredditViewHolder) holder).checkBox.performClick());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return subscribedSubreddits.size() + otherSubreddits.size();
|
||||
return subscribedSubreddits == null ? 0 : subscribedSubreddits.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -159,95 +85,22 @@ public class SubredditMultiselectionRecyclerViewAdapter extends RecyclerView.Ada
|
||||
super.onViewRecycled(holder);
|
||||
if (holder instanceof SubscribedSubredditViewHolder) {
|
||||
glide.clear(((SubscribedSubredditViewHolder) holder).iconImageView);
|
||||
} else if (holder instanceof OtherSubredditViewHolder) {
|
||||
glide.clear(((OtherSubredditViewHolder) holder).iconImageView);
|
||||
}
|
||||
}
|
||||
|
||||
public void setSubscribedSubreddits(List<SubscribedSubredditData> subscribedSubreddits) {
|
||||
if (this.subscribedSubreddits.isEmpty()) {
|
||||
ArrayList<SubredditWithSelection> temp =
|
||||
SubredditWithSelection.convertSubscribedSubreddits(subscribedSubreddits);
|
||||
this.subscribedSubreddits.addAll(temp);
|
||||
checkAllSelectedSubreddits(0, 0);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
this.subscribedSubreddits = SubredditWithSelection.convertSubscribedSubreddits(subscribedSubreddits);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void addOtherSubreddit(SubredditData subreddit) {
|
||||
SubredditWithSelection subredditWithSelection =
|
||||
SubredditWithSelection.convertSubreddit(subreddit);
|
||||
subredditWithSelection.setSelected(true);
|
||||
int i = subscribedSubreddits.indexOf(subredditWithSelection);
|
||||
if (i > 0) {
|
||||
subscribedSubreddits.get(i).setSelected(true);
|
||||
insertIntoSelectedSubredditsArrayListAscend(selectedSubscribedSubreddits, subredditWithSelection);
|
||||
Toast.makeText(context, context.getString(R.string.subreddit_selected, subreddit.getName()), Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
insertIntoOtherSubredditsArrayListAscend(subredditWithSelection);
|
||||
insertIntoSelectedSubredditsArrayListAscend(selectedOtherSubreddits, subredditWithSelection);
|
||||
}
|
||||
|
||||
public ArrayList<SubredditWithSelection> getAllSelectedSubscribedSubreddits() {
|
||||
return new ArrayList<>(selectedSubscribedSubreddits);
|
||||
}
|
||||
|
||||
public ArrayList<SubredditWithSelection> getAllSelectedOtherSubreddits() {
|
||||
return new ArrayList<>(selectedOtherSubreddits);
|
||||
}
|
||||
|
||||
public ArrayList<SubredditWithSelection> getAllOtherSubreddits() {
|
||||
return new ArrayList<>(otherSubreddits);
|
||||
}
|
||||
|
||||
private void insertIntoSelectedSubredditsArrayListAscend(ArrayList<SubredditWithSelection> subreddits,
|
||||
SubredditWithSelection subreddit) {
|
||||
for (int i = 0; i < subreddits.size(); i++) {
|
||||
if (subreddits.get(i).compareName(subreddit) < 0) {
|
||||
continue;
|
||||
public ArrayList<String> getAllSelectedSubreddits() {
|
||||
ArrayList<String> selectedSubreddits = new ArrayList<>();
|
||||
for (SubredditWithSelection s : subscribedSubreddits) {
|
||||
if (s.isSelected()) {
|
||||
selectedSubreddits.add(s.getName());
|
||||
}
|
||||
if (subreddits.get(i).compareName(subreddit) == 0) {
|
||||
return;
|
||||
}
|
||||
subreddits.add(i, subreddit);
|
||||
return;
|
||||
}
|
||||
subreddits.add(subreddit);
|
||||
}
|
||||
|
||||
private void insertIntoOtherSubredditsArrayListAscend(SubredditWithSelection subreddit) {
|
||||
for (int i = 0; i < otherSubreddits.size(); i++) {
|
||||
if (otherSubreddits.get(i).compareName(subreddit) < 0) {
|
||||
continue;
|
||||
}
|
||||
if (otherSubreddits.get(i).compareName(subreddit) == 0) {
|
||||
return;
|
||||
}
|
||||
otherSubreddits.add(i, subreddit);
|
||||
notifyItemInserted(i);
|
||||
return;
|
||||
}
|
||||
otherSubreddits.add(subreddit);
|
||||
notifyItemInserted(otherSubreddits.size() - 1);
|
||||
}
|
||||
|
||||
private void checkAllSelectedSubreddits(int i1, int i2) {
|
||||
if (selectedSubscribedSubreddits.size() <= i1 || subscribedSubreddits.size() <= i2) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (selectedSubscribedSubreddits.get(i1).compareName(subscribedSubreddits.get(i2)) == 0) {
|
||||
subscribedSubreddits.get(i2).setSelected(true);
|
||||
checkAllSelectedSubreddits(i1 + 1, i2 + 1);
|
||||
} else if (selectedSubscribedSubreddits.get(i1).compareName(subscribedSubreddits.get(i2)) < 0) {
|
||||
//Insert to other subreddits
|
||||
insertIntoOtherSubredditsArrayListAscend(selectedSubscribedSubreddits.get(i1));
|
||||
insertIntoSelectedSubredditsArrayListAscend(selectedOtherSubreddits, selectedSubscribedSubreddits.get(i1));
|
||||
checkAllSelectedSubreddits(i1 + 1, i2);
|
||||
} else {
|
||||
checkAllSelectedSubreddits(i1, i2 + 1);
|
||||
}
|
||||
return selectedSubreddits;
|
||||
}
|
||||
|
||||
class SubscribedSubredditViewHolder extends RecyclerView.ViewHolder {
|
||||
@ -267,22 +120,4 @@ public class SubredditMultiselectionRecyclerViewAdapter extends RecyclerView.Ada
|
||||
checkBox.setButtonTintList(ColorStateList.valueOf(colorAccent));
|
||||
}
|
||||
}
|
||||
|
||||
class OtherSubredditViewHolder extends RecyclerView.ViewHolder {
|
||||
View itemView;
|
||||
@BindView(R.id.icon_gif_image_view_item_subscribed_subreddit_multiselection)
|
||||
GifImageView iconImageView;
|
||||
@BindView(R.id.name_text_view_item_subscribed_subreddit_multiselection)
|
||||
TextView nameTextView;
|
||||
@BindView(R.id.checkbox_item_subscribed_subreddit_multiselection)
|
||||
CheckBox checkBox;
|
||||
|
||||
OtherSubredditViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
this.itemView = itemView;
|
||||
ButterKnife.bind(this, itemView);
|
||||
nameTextView.setTextColor(primaryTextColor);
|
||||
checkBox.setButtonTintList(ColorStateList.valueOf(colorAccent));
|
||||
}
|
||||
}
|
||||
}
|
@ -10,6 +10,7 @@ import ml.docilealligator.infinityforreddit.Activity.CreateMultiRedditActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.CustomThemeListingActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.CustomizeThemeActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.EditCommentActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.EditMultiRedditActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.EditPostActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.FilteredThingActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.LinkResolverActivity;
|
||||
@ -24,6 +25,7 @@ import ml.docilealligator.infinityforreddit.Activity.RulesActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.SearchActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.SearchResultActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.SearchSubredditsResultActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.SelectedSubredditsActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.SettingsActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.SubredditMultiselectionActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.SubredditSelectionActivity;
|
||||
@ -155,4 +157,8 @@ public interface AppComponent {
|
||||
void inject(AdvancedPreferenceFragment advancedPreferenceFragment);
|
||||
|
||||
void inject(ThemePreviewActivity themePreviewActivity);
|
||||
|
||||
void inject(EditMultiRedditActivity editMultiRedditActivity);
|
||||
|
||||
void inject(SelectedSubredditsActivity selectedSubredditsActivity);
|
||||
}
|
||||
|
@ -0,0 +1,43 @@
|
||||
package ml.docilealligator.infinityforreddit.MultiReddit;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.RedditAPI;
|
||||
import ml.docilealligator.infinityforreddit.Utils.RedditUtils;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
import retrofit2.Retrofit;
|
||||
|
||||
public class EditMultiReddit {
|
||||
public interface EditMultiRedditListener {
|
||||
void success();
|
||||
void failed();
|
||||
}
|
||||
|
||||
public static void editMultiReddit(Retrofit oauthRetrofit, String accessToken, String multipath, String model,
|
||||
EditMultiRedditListener editMultiRedditListener) {
|
||||
Map<String, String> params = new HashMap<>();
|
||||
params.put(RedditUtils.MULTIPATH_KEY, multipath);
|
||||
params.put(RedditUtils.MODEL_KEY, model);
|
||||
oauthRetrofit.create(RedditAPI.class).updateMultiReddit(RedditUtils.getOAuthHeader(accessToken),
|
||||
params).enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
editMultiRedditListener.success();
|
||||
} else {
|
||||
editMultiRedditListener.failed();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
|
||||
editMultiRedditListener.failed();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@ -0,0 +1,101 @@
|
||||
package ml.docilealligator.infinityforreddit.MultiReddit;
|
||||
|
||||
import android.os.AsyncTask;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.RedditAPI;
|
||||
import ml.docilealligator.infinityforreddit.Utils.JSONUtils;
|
||||
import ml.docilealligator.infinityforreddit.Utils.RedditUtils;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
import retrofit2.Retrofit;
|
||||
|
||||
public class FetchMultiRedditInfo {
|
||||
|
||||
public interface FetchMultiRedditInfoListener {
|
||||
void success(MultiReddit multiReddit);
|
||||
void failed();
|
||||
}
|
||||
|
||||
public static void fetchMultiRedditInfo(Retrofit retrofit, String accessToken, String multipath,
|
||||
FetchMultiRedditInfoListener fetchMultiRedditInfoListener) {
|
||||
retrofit.create(RedditAPI.class).getMultiRedditInfo(RedditUtils.getOAuthHeader(accessToken), multipath).enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
new ParseMultiRedditInfoAsyncTask(response.body(), fetchMultiRedditInfoListener).execute();
|
||||
} else {
|
||||
fetchMultiRedditInfoListener.failed();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
|
||||
fetchMultiRedditInfoListener.failed();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static class ParseMultiRedditInfoAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||
|
||||
private String response;
|
||||
private FetchMultiRedditInfoListener fetchMultiRedditInfoListener;
|
||||
private MultiReddit multiReddit;
|
||||
private boolean parseFailed = false;
|
||||
|
||||
public ParseMultiRedditInfoAsyncTask(String response, FetchMultiRedditInfoListener fetchMultiRedditInfoListener) {
|
||||
this.response = response;
|
||||
this.fetchMultiRedditInfoListener = fetchMultiRedditInfoListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Void doInBackground(Void... voids) {
|
||||
try {
|
||||
JSONObject object = new JSONObject(response).getJSONObject(JSONUtils.DATA_KEY);
|
||||
String path = object.getString(JSONUtils.PATH_KEY);
|
||||
String displayName = object.getString(JSONUtils.DISPLAY_NAME_KEY);
|
||||
String name = object.getString(JSONUtils.NAME_KEY);
|
||||
String description = object.getString(JSONUtils.DESCRIPTION_MD_KEY);
|
||||
String copiedFrom = object.getString(JSONUtils.COPIED_FROM_KEY);
|
||||
String iconUrl = object.getString(JSONUtils.ICON_URL_KEY);
|
||||
String visibility = object.getString(JSONUtils.VISIBILITY_KEY);
|
||||
String owner = object.getString(JSONUtils.OWNER_KEY);
|
||||
int nSubscribers = object.getInt(JSONUtils.NUM_SUBSCRIBERS_KEY);
|
||||
long createdUTC = object.getLong(JSONUtils.CREATED_UTC_KEY);
|
||||
boolean over18 = object.getBoolean(JSONUtils.OVER_18_KEY);
|
||||
boolean isSubscriber = object.getBoolean(JSONUtils.IS_SUBSCRIBER_KEY);
|
||||
boolean isFavorite = object.getBoolean(JSONUtils.IS_FAVORITED_KEY);
|
||||
ArrayList<String> subreddits = new ArrayList<>();
|
||||
JSONArray subredditsArray = object.getJSONArray(JSONUtils.SUBREDDITS_KEY);
|
||||
for (int i = 0; i < subredditsArray.length(); i++) {
|
||||
subreddits.add(subredditsArray.getJSONObject(i).getString(JSONUtils.NAME_KEY));
|
||||
}
|
||||
|
||||
multiReddit = new MultiReddit(path, displayName, name, description, copiedFrom, iconUrl,
|
||||
visibility, owner, nSubscribers, createdUTC, over18, isSubscriber, isFavorite,
|
||||
subreddits);
|
||||
} catch (JSONException e) {
|
||||
parseFailed = true;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Void aVoid) {
|
||||
super.onPostExecute(aVoid);
|
||||
if (parseFailed) {
|
||||
fetchMultiRedditInfoListener.failed();
|
||||
} else {
|
||||
fetchMultiRedditInfoListener.success(multiReddit);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -11,13 +11,13 @@ import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
import retrofit2.Retrofit;
|
||||
|
||||
public class FetchMultiReddit {
|
||||
public interface FetchMultiRedditListener {
|
||||
public class FetchMyMultiReddits {
|
||||
public interface FetchMyMultiRedditsListener {
|
||||
void success(ArrayList<MultiReddit> multiReddits);
|
||||
void failed();
|
||||
}
|
||||
|
||||
public static void fetchMyMultiReddits(Retrofit oauthRetrofit, String accessToken, FetchMultiRedditListener fetchMultiRedditListener) {
|
||||
public static void fetchMyMultiReddits(Retrofit oauthRetrofit, String accessToken, FetchMyMultiRedditsListener fetchMyMultiRedditsListener) {
|
||||
oauthRetrofit.create(RedditAPI.class)
|
||||
.getMyMultiReddits(RedditUtils.getOAuthHeader(accessToken)).enqueue(new Callback<String>() {
|
||||
@Override
|
||||
@ -26,22 +26,22 @@ public class FetchMultiReddit {
|
||||
ParseMultiReddit.parseMultiRedditsList(response.body(), new ParseMultiReddit.ParseMultiRedditsListListener() {
|
||||
@Override
|
||||
public void success(ArrayList<MultiReddit> multiReddits) {
|
||||
fetchMultiRedditListener.success(multiReddits);
|
||||
fetchMyMultiRedditsListener.success(multiReddits);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
fetchMultiRedditListener.failed();
|
||||
fetchMyMultiRedditsListener.failed();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
fetchMultiRedditListener.failed();
|
||||
fetchMyMultiRedditsListener.failed();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
|
||||
fetchMultiRedditListener.failed();
|
||||
fetchMyMultiRedditsListener.failed();
|
||||
}
|
||||
});
|
||||
}
|
@ -4,8 +4,6 @@ import com.google.gson.Gson;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.SubredditWithSelection;
|
||||
|
||||
public class MultiRedditJSONModel {
|
||||
private String display_name;
|
||||
private String description_md;
|
||||
@ -15,7 +13,7 @@ public class MultiRedditJSONModel {
|
||||
public MultiRedditJSONModel() {}
|
||||
|
||||
public MultiRedditJSONModel(String display_name, String description_md, boolean isPrivate,
|
||||
ArrayList<SubredditWithSelection> subreddits) {
|
||||
ArrayList<String> subreddits) {
|
||||
this.display_name = display_name;
|
||||
this.description_md = description_md;
|
||||
if (isPrivate) {
|
||||
@ -27,7 +25,7 @@ public class MultiRedditJSONModel {
|
||||
if (subreddits != null) {
|
||||
this.subreddits = new SubredditInMultiReddit[subreddits.size()];
|
||||
for (int i = 0; i < subreddits.size(); i++) {
|
||||
SubredditInMultiReddit subredditInMultiReddit = new SubredditInMultiReddit(subreddits.get(i).getName());
|
||||
SubredditInMultiReddit subredditInMultiReddit = new SubredditInMultiReddit(subreddits.get(i));
|
||||
this.subreddits[i] = subredditInMultiReddit;
|
||||
}
|
||||
}
|
||||
|
@ -32,9 +32,9 @@ public class ParseMultiReddit {
|
||||
}
|
||||
|
||||
private static MultiReddit parseMultiReddit(JSONObject singleMultiRedditJSON) throws JSONException {
|
||||
String displayName = singleMultiRedditJSON.getString(JSONUtils.DISPLAY_NAME);
|
||||
String displayName = singleMultiRedditJSON.getString(JSONUtils.DISPLAY_NAME_KEY);
|
||||
String name = singleMultiRedditJSON.getString(JSONUtils.NAME_KEY);
|
||||
String description = singleMultiRedditJSON.getString(JSONUtils.DESCRIPTION_HTML_KEY);
|
||||
String description = singleMultiRedditJSON.getString(JSONUtils.DESCRIPTION_MD_KEY);
|
||||
int nSubscribers = singleMultiRedditJSON.getInt(JSONUtils.NUM_SUBSCRIBERS_KEY);
|
||||
String copiedFrom = singleMultiRedditJSON.getString(JSONUtils.COPIED_FROM_KEY);
|
||||
String iconUrl = singleMultiRedditJSON.getString(JSONUtils.ICON_URL_KEY);
|
||||
|
@ -22,7 +22,7 @@ class ParseSubredditData {
|
||||
|
||||
private static SubredditData parseSubredditData(JSONObject subredditDataJsonObject) throws JSONException {
|
||||
String id = subredditDataJsonObject.getString(JSONUtils.NAME_KEY);
|
||||
String subredditFullName = subredditDataJsonObject.getString(JSONUtils.DISPLAY_NAME);
|
||||
String subredditFullName = subredditDataJsonObject.getString(JSONUtils.DISPLAY_NAME_KEY);
|
||||
String description = subredditDataJsonObject.getString(JSONUtils.PUBLIC_DESCRIPTION_KEY).trim();
|
||||
String sidebarDescription = subredditDataJsonObject.getString(JSONUtils.DESCRIPTION_KEY).trim();
|
||||
|
||||
|
@ -72,7 +72,7 @@ class ParseSubscribedThing {
|
||||
JSONArray children = jsonResponse.getJSONObject(JSONUtils.DATA_KEY).getJSONArray(JSONUtils.CHILDREN_KEY);
|
||||
for (int i = 0; i < children.length(); i++) {
|
||||
JSONObject data = children.getJSONObject(i).getJSONObject(JSONUtils.DATA_KEY);
|
||||
String name = data.getString(JSONUtils.DISPLAY_NAME);
|
||||
String name = data.getString(JSONUtils.DISPLAY_NAME_KEY);
|
||||
String bannerImageUrl = data.getString(JSONUtils.BANNER_BACKGROUND_IMAGE_KEY);
|
||||
if (bannerImageUrl.equals("") || bannerImageUrl.equals("null")) {
|
||||
bannerImageUrl = data.getString(JSONUtils.BANNER_IMG_KEY);
|
||||
@ -95,7 +95,7 @@ class ParseSubscribedThing {
|
||||
//It's a user
|
||||
newSubscribedUserData.add(new SubscribedUserData(name.substring(2), iconUrl, accountName, isFavorite));
|
||||
} else {
|
||||
String subredditFullName = data.getString(JSONUtils.DISPLAY_NAME);
|
||||
String subredditFullName = data.getString(JSONUtils.DISPLAY_NAME_KEY);
|
||||
String description = data.getString(JSONUtils.PUBLIC_DESCRIPTION_KEY).trim();
|
||||
String sidebarDescription = data.getString(JSONUtils.DESCRIPTION_KEY);
|
||||
int nSubscribers = data.getInt(JSONUtils.SUBSCRIBERS_KEY);
|
||||
|
@ -12,6 +12,7 @@ import retrofit2.http.GET;
|
||||
import retrofit2.http.HeaderMap;
|
||||
import retrofit2.http.Multipart;
|
||||
import retrofit2.http.POST;
|
||||
import retrofit2.http.PUT;
|
||||
import retrofit2.http.Part;
|
||||
import retrofit2.http.PartMap;
|
||||
import retrofit2.http.Path;
|
||||
@ -294,6 +295,13 @@ public interface RedditAPI {
|
||||
@POST("/api/multi/multipath")
|
||||
Call<String> createMultiReddit(@HeaderMap Map<String, String> headers, @FieldMap Map<String, String> params);
|
||||
|
||||
@FormUrlEncoded
|
||||
@PUT("/api/multi/multipath")
|
||||
Call<String> updateMultiReddit(@HeaderMap Map<String, String> headers, @FieldMap Map<String, String> params);
|
||||
|
||||
@DELETE("/api/multi/multipath")
|
||||
Call<String> deleteMultiReddit(@HeaderMap Map<String, String> headers, @Query("multipath") String multipath);
|
||||
|
||||
@GET("/api/multi/multipath/")
|
||||
Call<String> getMultiRedditInfo(@HeaderMap Map<String, String> headers, @Query("multipath") String multipath);
|
||||
}
|
||||
|
@ -58,7 +58,7 @@ public class JSONUtils {
|
||||
public static final String COMMUNITY_ICON_KEY = "community_icon";
|
||||
public static final String LINK_KARMA_KEY = "link_karma";
|
||||
public static final String COMMENT_KARMA_KEY = "comment_karma";
|
||||
public static final String DISPLAY_NAME = "display_name";
|
||||
public static final String DISPLAY_NAME_KEY = "display_name";
|
||||
public static final String SUBREDDIT_TYPE_KEY = "subreddit_type";
|
||||
public static final String SUBREDDIT_TYPE_VALUE_USER = "user";
|
||||
public static final String SUBSCRIBERS_KEY = "subscribers";
|
||||
@ -80,6 +80,7 @@ public class JSONUtils {
|
||||
public static final String SHORT_NAME_KEY = "short_name";
|
||||
public static final String DESCRIPTION_KEY = "description";
|
||||
public static final String DESCRIPTION_HTML_KEY = "description_html";
|
||||
public static final String DESCRIPTION_MD_KEY = "description_md";
|
||||
public static final String ARCHIVED_KEY = "archived";
|
||||
public static final String LOCKEC_KEY = "locked";
|
||||
public static final String SAVED_KEY = "saved";
|
||||
|
@ -108,7 +108,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="16dp"
|
||||
android:text="@string/select_subreddit"
|
||||
android:text="@string/select_subreddits"
|
||||
android:textSize="?attr/font_default"
|
||||
android:textColor="?attr/primaryTextColor"
|
||||
android:clickable="true"
|
||||
@ -119,5 +119,4 @@
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
130
app/src/main/res/layout/activity_edit_multi_reddit.xml
Normal file
130
app/src/main/res/layout/activity_edit_multi_reddit.xml
Normal file
@ -0,0 +1,130 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/coordinator_layout_edit_multi_reddit_activity"
|
||||
tools:context=".Activity.CreateMultiRedditActivity">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/appbar_layout_edit_multi_reddit_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/toolbarAndTabBackgroundColor"
|
||||
android:theme="@style/AppTheme.AppBarOverlay">
|
||||
|
||||
<com.google.android.material.appbar.CollapsingToolbarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_scrollFlags="scroll|enterAlways"
|
||||
app:titleEnabled="false"
|
||||
app:toolbarId="@+id/toolbar_edit_multi_reddit_activity">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar_edit_multi_reddit_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:popupTheme="@style/AppTheme.PopupOverlay"
|
||||
app:navigationIcon="?attr/homeAsUpIndicator" />
|
||||
|
||||
</com.google.android.material.appbar.CollapsingToolbarLayout>
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progress_bar_edit_multi_reddit_activity"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center" />
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/linear_layout_edit_multi_reddit_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/multi_reddit_name_edit_text_edit_multi_reddit_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="16dp"
|
||||
android:hint="@string/multi_reddit_name_hint"
|
||||
android:inputType="textMultiLine"
|
||||
android:textSize="?attr/font_default"
|
||||
android:background="#00000000"
|
||||
android:textColor="?attr/primaryTextColor"
|
||||
android:maxLength="50" />
|
||||
|
||||
<View
|
||||
android:id="@+id/divider_1_edit_multi_reddit_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="?attr/dividerColor" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/description_edit_text_edit_multi_reddit_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="16dp"
|
||||
android:hint="@string/multi_reddit_description_hint"
|
||||
android:inputType="textMultiLine"
|
||||
android:textSize="?attr/font_default"
|
||||
android:background="#00000000"
|
||||
android:textColor="?attr/primaryTextColor" />
|
||||
|
||||
<View
|
||||
android:id="@+id/divider_2_edit_multi_reddit_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="?attr/dividerColor" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/visibility_wrapper_linear_layout_edit_multi_reddit_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="16dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:background="?attr/selectableItemBackground">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/visibility_text_view_edit_multi_reddit_activity"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/private_multi_reddit"
|
||||
android:textSize="?attr/font_default"
|
||||
android:textColor="?attr/primaryTextColor" />
|
||||
|
||||
<Switch
|
||||
android:id="@+id/visibility_switch_edit_multi_reddit_activity"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:checked="true" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/select_subreddit_text_view_edit_multi_reddit_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="16dp"
|
||||
android:text="@string/select_subreddits"
|
||||
android:textSize="?attr/font_default"
|
||||
android:textColor="?attr/primaryTextColor"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:background="?attr/selectableItemBackground" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
49
app/src/main/res/layout/activity_selected_subreddits.xml
Normal file
49
app/src/main/res/layout/activity_selected_subreddits.xml
Normal file
@ -0,0 +1,49 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/backgroundColor"
|
||||
android:id="@+id/coordinator_layout_selected_subreddits_activity"
|
||||
tools:context=".Activity.AccountPostsActivity">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/appbar_layout_selected_subreddits_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/toolbarAndTabBackgroundColor"
|
||||
android:theme="@style/AppTheme.AppBarOverlay">
|
||||
|
||||
<com.google.android.material.appbar.CollapsingToolbarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_scrollFlags="scroll|enterAlways"
|
||||
app:titleEnabled="false"
|
||||
app:toolbarId="@+id/toolbar_selected_subreddits_activity">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar_selected_subreddits_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:popupTheme="@style/AppTheme.PopupOverlay"
|
||||
app:navigationIcon="?attr/homeAsUpIndicator" />
|
||||
|
||||
</com.google.android.material.appbar.CollapsingToolbarLayout>
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view_selected_subreddits_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
||||
|
||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/fab_selected_subreddits_activity"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="@dimen/fab_margin"
|
||||
android:layout_gravity="bottom|end" />
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
25
app/src/main/res/layout/item_selected_subreddit.xml
Normal file
25
app/src/main/res/layout/item_selected_subreddit.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingBottom="16dp"
|
||||
android:paddingStart="72dp"
|
||||
android:paddingEnd="16dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/subreddit_name_item_selected_subreddit"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginEnd="16dp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/delete_image_view_item_selected_subreddit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:src="@drawable/ic_delete_24dp" />
|
||||
|
||||
</LinearLayout>
|
@ -2,9 +2,9 @@
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/action_create_create_multi_reddit_activity"
|
||||
android:id="@+id/action_save_create_multi_reddit_activity"
|
||||
android:orderInCategory="1"
|
||||
android:title="@string/action_send"
|
||||
android:title="@string/action_save"
|
||||
android:icon="@drawable/ic_add_day_night_24dp"
|
||||
app:showAsAction="ifRoom" />
|
||||
</menu>
|
10
app/src/main/res/menu/edit_multi_reddit_activity.xml
Normal file
10
app/src/main/res/menu/edit_multi_reddit_activity.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/action_save_edit_multi_reddit_activity"
|
||||
android:orderInCategory="1"
|
||||
android:title="@string/action_save"
|
||||
android:icon="@drawable/ic_check_circle_toolbar_24dp"
|
||||
app:showAsAction="ifRoom" />
|
||||
</menu>
|
10
app/src/main/res/menu/selected_subreddits_activity.xml
Normal file
10
app/src/main/res/menu/selected_subreddits_activity.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/action_save_selected_subreddits_activity"
|
||||
android:orderInCategory="1"
|
||||
android:title="@string/action_save"
|
||||
android:icon="@drawable/ic_check_circle_toolbar_24dp"
|
||||
app:showAsAction="ifRoom" />
|
||||
</menu>
|
@ -35,8 +35,14 @@
|
||||
app:showAsAction="never" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_delte_view_multi_reddit_detail_activity"
|
||||
android:id="@+id/action_edit_view_multi_reddit_detail_activity"
|
||||
android:orderInCategory="6"
|
||||
android:title="@string/action_edit_multi_reddit"
|
||||
app:showAsAction="never" />
|
||||
|
||||
<item
|
||||
android:id="@+id/action_delete_view_multi_reddit_detail_activity"
|
||||
android:orderInCategory="7"
|
||||
android:title="@string/action_delete_multi_reddit"
|
||||
app:showAsAction="never" />
|
||||
</menu>
|
@ -23,6 +23,8 @@
|
||||
<string name="customize_theme_activity_label">Customize Theme</string>
|
||||
<string name="customize_theme_activity_create_theme_label">Create Theme</string>
|
||||
<string name="theme_preview_activity_label">Theme Preview</string>
|
||||
<string name="edit_multi_reddit_activity_label">Edit Multireddit</string>
|
||||
<string name="selected_subeddits_activity_label">Selected Subreddits</string>
|
||||
|
||||
<string name="navigation_drawer_open">Open navigation drawer</string>
|
||||
<string name="navigation_drawer_close">Close navigation drawer</string>
|
||||
@ -51,6 +53,7 @@
|
||||
<string name="action_change_post_layout">Change Post Layout</string>
|
||||
<string name="action_view_side_bar">View Sidebar</string>
|
||||
<string name="action_save">Save</string>
|
||||
<string name="action_edit_multi_reddit">Edit MultiReddit</string>
|
||||
<string name="action_delete_multi_reddit">Delete Multireddit</string>
|
||||
<string name="action_share">Share</string>
|
||||
|
||||
@ -103,6 +106,7 @@
|
||||
<string name="cannot_fetch_subreddit_info">Cannot fetch subreddit info</string>
|
||||
<string name="cannot_fetch_user_info">Cannot fetch user info</string>
|
||||
<string name="cannot_fetch_sidebar">Cannot fetch sidebar</string>
|
||||
<string name="cannot_fetch_multireddit">Cannot fetch multireddit info</string>
|
||||
|
||||
<string name="gilded_count">x%1$d</string>
|
||||
<string name="title_activity_view_user_detail">ViewUserDetailActivity</string>
|
||||
@ -308,6 +312,7 @@
|
||||
<string name="settings_open_link_in_app_title">Open Link In App</string>
|
||||
<string name="settings_immersive_interface_title">Immersive Interface</string>
|
||||
<string name="settings_enable_bottom_app_bar_title">Enable Bottom Navigation</string>
|
||||
<string name="settings_enable_bottom_app_bar_summary">Has No Effect in Anonymous Mode</string>
|
||||
<string name="settings_vote_buttons_on_the_right_title">Vote Buttons on the Right</string>
|
||||
<string name="settings_volume_keys_navigate_comments_title">Use Volume Keys to Navigate Comments in Posts</string>
|
||||
<string name="settings_volume_keys_navigate_posts_title">Use Volume Keys to Navigate Posts</string>
|
||||
@ -461,10 +466,11 @@
|
||||
<string name="multi_reddit_name_hint">Name (Max 50 Characters)</string>
|
||||
<string name="multi_reddit_description_hint">Description</string>
|
||||
<string name="private_multi_reddit">Private</string>
|
||||
<string name="select_subreddit">Select Subreddit</string>
|
||||
<string name="select_subreddits">Select Subreddits</string>
|
||||
<string name="no_multi_reddit_name">Where is the name?</string>
|
||||
<string name="create_multi_reddit_failed">Cannot create this multireddit</string>
|
||||
<string name="duplicate_multi_reddit">This multireddit already exists</string>
|
||||
<string name="edit_multi_reddit_failed">Cannot edit this multireddit</string>
|
||||
<string name="logged_out">You are logged out</string>
|
||||
<string name="subreddit_selected">%1$s selected</string>
|
||||
<string name="delete_multi_reddit_success">Delete successfully</string>
|
||||
|
@ -16,7 +16,8 @@
|
||||
<SwitchPreference
|
||||
app:defaultValue="false"
|
||||
app:key="bottom_app_bar"
|
||||
app:title="@string/settings_enable_bottom_app_bar_title" />
|
||||
app:title="@string/settings_enable_bottom_app_bar_title"
|
||||
app:summary="@string/settings_enable_bottom_app_bar_summary" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="false"
|
||||
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:value="@string/app_label"
|
||||
android:hint="@string/search_hint"
|
||||
android:voiceSearchMode="showVoiceSearchButton|launchRecognizer" >
|
||||
</searchable>
|
@ -31,6 +31,6 @@ task clean(type: Delete) {
|
||||
}
|
||||
|
||||
ext {
|
||||
roomVersion = '2.2.4'
|
||||
roomVersion = '2.2.5'
|
||||
archLifecycleVersion = '2.2.0'
|
||||
}
|
Loading…
Reference in New Issue
Block a user