mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-11-07 03:07:26 +01:00
Add an option to disable NSFW forever.
This commit is contained in:
parent
f22b649bee
commit
6282027334
@ -8,11 +8,14 @@ import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.google.android.material.switchmaterial.SwitchMaterial;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
@ -49,6 +52,15 @@ public class NsfwAndSpoilerFragment extends Fragment {
|
||||
LinearLayout blurSpoilerLinearLayout;
|
||||
@BindView(R.id.blur_spoiler_switch_nsfw_and_spoiler_fragment)
|
||||
SwitchMaterial blurSpoilerSwitchMaterial;
|
||||
@BindView(R.id.disable_nsfw_forever_linear_layout_nsfw_and_spoiler_fragment)
|
||||
LinearLayout disableNsfwForeverLinearLayout;
|
||||
@BindView(R.id.disable_nsfw_forever_text_view_nsfw_and_spoiler_fragment)
|
||||
TextView disableNsfwForeverTextView;
|
||||
@BindView(R.id.disable_nsfw_forever_switch_nsfw_and_spoiler_fragment)
|
||||
SwitchMaterial disableNsfwForeverSwitchMaterial;
|
||||
@Inject
|
||||
@Named("default")
|
||||
SharedPreferences sharedPreferences;
|
||||
@Inject
|
||||
@Named("nsfw_and_spoiler")
|
||||
SharedPreferences nsfwAndBlurringSharedPreferences;
|
||||
@ -56,6 +68,8 @@ public class NsfwAndSpoilerFragment extends Fragment {
|
||||
private Activity activity;
|
||||
private boolean blurNsfw;
|
||||
private boolean doNotBlurNsfwInNsfwSubreddits;
|
||||
private boolean disableNsfwForever;
|
||||
private boolean manuallyCheckDisableNsfwForever = true;
|
||||
|
||||
public NsfwAndSpoilerFragment() {
|
||||
// Required empty public constructor
|
||||
@ -77,6 +91,7 @@ public class NsfwAndSpoilerFragment extends Fragment {
|
||||
blurNsfw = nsfwAndBlurringSharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.BLUR_NSFW_BASE, true);
|
||||
doNotBlurNsfwInNsfwSubreddits = nsfwAndBlurringSharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.DO_NOT_BLUR_NSFW_IN_NSFW_SUBREDDITS, false);
|
||||
boolean blurSpoiler = nsfwAndBlurringSharedPreferences.getBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.BLUR_SPOILER_BASE, false);
|
||||
disableNsfwForever = sharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_NSFW_FOREVER, false);
|
||||
|
||||
if (enableNsfw) {
|
||||
blurNsfwLinearLayout.setVisibility(View.VISIBLE);
|
||||
@ -87,6 +102,12 @@ public class NsfwAndSpoilerFragment extends Fragment {
|
||||
blurNsfwSwitchMaterial.setChecked(blurNsfw);
|
||||
doNotBlurNsfwInNsfwSubredditsSwitch.setChecked(doNotBlurNsfwInNsfwSubreddits);
|
||||
blurSpoilerSwitchMaterial.setChecked(blurSpoiler);
|
||||
disableNsfwForeverSwitchMaterial.setChecked(disableNsfwForever);
|
||||
disableNsfwForeverSwitchMaterial.setEnabled(!disableNsfwForever);
|
||||
if (disableNsfwForever) {
|
||||
disableNsfwForeverTextView.setTextColor(ContextCompat.getColor(activity, R.color.settingsSubtitleColor));
|
||||
disableNsfwForeverLinearLayout.setEnabled(false);
|
||||
}
|
||||
|
||||
enableNsfwLinearLayout.setOnClickListener(view -> enableNsfwSwitchMaterial.performClick());
|
||||
enableNsfwSwitchMaterial.setOnCheckedChangeListener((compoundButton, b) -> {
|
||||
@ -120,6 +141,39 @@ public class NsfwAndSpoilerFragment extends Fragment {
|
||||
nsfwAndBlurringSharedPreferences.edit().putBoolean((accountName == null ? "" : accountName) + SharedPreferencesUtils.BLUR_SPOILER_BASE, b).apply();
|
||||
EventBus.getDefault().post(new ChangeSpoilerBlurEvent(b));
|
||||
});
|
||||
|
||||
disableNsfwForeverLinearLayout.setOnClickListener(view -> {
|
||||
disableNsfwForeverSwitchMaterial.performClick();
|
||||
});
|
||||
disableNsfwForeverSwitchMaterial.setOnCheckedChangeListener((compoundButton, b) -> {
|
||||
if (manuallyCheckDisableNsfwForever) {
|
||||
manuallyCheckDisableNsfwForever = false;
|
||||
new MaterialAlertDialogBuilder(activity, R.style.MaterialAlertDialogTheme)
|
||||
.setTitle(R.string.warning)
|
||||
.setMessage(R.string.disable_nsfw_forever_message)
|
||||
.setPositiveButton(R.string.yes, (dialogInterface, i)
|
||||
-> {
|
||||
sharedPreferences.edit().putBoolean(SharedPreferencesUtils.DISABLE_NSFW_FOREVER, true).apply();
|
||||
disableNsfwForever = true;
|
||||
disableNsfwForeverSwitchMaterial.setEnabled(false);
|
||||
disableNsfwForeverLinearLayout.setEnabled(false);
|
||||
disableNsfwForeverSwitchMaterial.setChecked(true);
|
||||
disableNsfwForeverTextView.setTextColor(ContextCompat.getColor(activity, R.color.settingsSubtitleColor));
|
||||
EventBus.getDefault().post(new ChangeNSFWEvent(false));
|
||||
})
|
||||
.setNegativeButton(R.string.no, (dialogInterface, i) -> {
|
||||
disableNsfwForeverSwitchMaterial.setChecked(false);
|
||||
manuallyCheckDisableNsfwForever = true;
|
||||
})
|
||||
.setOnDismissListener(dialogInterface -> {
|
||||
if (!disableNsfwForever) {
|
||||
disableNsfwForeverSwitchMaterial.setChecked(false);
|
||||
}
|
||||
manuallyCheckDisableNsfwForever = true;
|
||||
})
|
||||
.show();
|
||||
}
|
||||
});
|
||||
return rootView;
|
||||
}
|
||||
|
||||
|
@ -176,6 +176,7 @@ public class SharedPreferencesUtils {
|
||||
public static final String SWIPE_BETWEEN_POSTS = "swipe_between_posts";
|
||||
public static final String NUMBER_OF_COLUMNS_IN_POST_FEED_PORTRAIT_CARD_LAYOUT_2 = "number_of_columns_in_post_feed_portrait_card_layout_2";
|
||||
public static final String NUMBER_OF_COLUMNS_IN_POST_FEED_LANDSCAPE_CARD_LAYOUT_2 = "number_of_columns_in_post_feed_landscape_card_layout_2";
|
||||
public static final String DISABLE_NSFW_FOREVER = "disable_nsfw_forever";
|
||||
|
||||
public static final String DEFAULT_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit_preferences";
|
||||
public static final String MAIN_PAGE_TABS_SHARED_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit.main_page_tabs";
|
||||
|
@ -141,6 +141,54 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="@color/dividerColor" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="16dp"
|
||||
android:paddingStart="72dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:text="@string/settings_nsfw_and_spoiler_dangerous_group_title"
|
||||
android:textColor="@color/colorAccent"
|
||||
android:textSize="?attr/font_default"
|
||||
android:fontFamily="?attr/font_family" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/disable_nsfw_forever_linear_layout_nsfw_and_spoiler_fragment"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="4dp"
|
||||
android:paddingBottom="4dp"
|
||||
android:paddingStart="72dp"
|
||||
android:paddingEnd="16dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:background="?attr/selectableItemBackground">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/disable_nsfw_forever_text_view_nsfw_and_spoiler_fragment"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:text="@string/settings_disable_nsfw_forever_title"
|
||||
android:textColor="?attr/primaryTextColor"
|
||||
android:textSize="?attr/font_16"
|
||||
android:fontFamily="?attr/font_family" />
|
||||
|
||||
<com.google.android.material.switchmaterial.SwitchMaterial
|
||||
android:id="@+id/disable_nsfw_forever_switch_nsfw_and_spoiler_fragment"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
@ -559,6 +559,8 @@
|
||||
<string name="settings_hide_subscribed_subreddits_sections_title">Hide Subscribed Subreddits Section</string>
|
||||
<string name="settings_default_search_result_tab">Default Search Result Tab</string>
|
||||
<string name="settings_crash_reports_title">Crash Reports</string>
|
||||
<string name="settings_nsfw_and_spoiler_dangerous_group_title">Dangerous</string>
|
||||
<string name="settings_disable_nsfw_forever_title">Disable NSFW Forever</string>
|
||||
|
||||
<string name="no_link_available">Cannot get the link</string>
|
||||
|
||||
@ -1098,4 +1100,6 @@
|
||||
|
||||
<string name="crash_reports_deleted">Crash reports are deleted</string>
|
||||
|
||||
<string name="disable_nsfw_forever_message">Once enabled, NSFW will be permanently disabled, regardless of whether the NSFW setting is enabled or not. And this option is irreversible, the only way to re-enable NSFW is to clear the app data.\n\nStill want to enable it?</string>
|
||||
|
||||
</resources>
|
||||
|
Loading…
Reference in New Issue
Block a user