Skip to content

Commit 54e42a4

Browse files
committed
Add back "always show alt text" and "back button enables alt text"
1 parent 2797f6b commit 54e42a4

4 files changed

Lines changed: 29 additions & 3 deletions

File tree

app/src/main/java/de/tap/easy_xkcd/comicBrowsing/ComicBrowserBaseFragment.kt

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import android.text.Html
1111
import android.transition.TransitionInflater
1212
import android.view.*
1313
import android.widget.*
14+
import androidx.activity.addCallback
1415
import androidx.appcompat.app.AlertDialog
1516
import androidx.appcompat.app.AppCompatActivity
1617
import androidx.browser.customtabs.CustomTabsIntent
@@ -100,6 +101,18 @@ abstract class ComicBrowserBaseFragment : Fragment() {
100101

101102
}
102103

104+
activity?.onBackPressedDispatcher
105+
?.addCallback {
106+
if (prefHelper.altBackButton()) {
107+
showAltText()
108+
} else {
109+
if (isEnabled) {
110+
isEnabled = false
111+
activity?.onBackPressed()
112+
}
113+
}
114+
}
115+
103116
return binding.root
104117
}
105118

@@ -161,7 +174,7 @@ abstract class ComicBrowserBaseFragment : Fragment() {
161174
}
162175

163176
fun altOrFullscreen(singleTap: Boolean) {
164-
if (singleTap xor prefHelper.altLongTap()) {
177+
if ((singleTap xor prefHelper.altLongTap()) && !prefHelper.alwaysShowAltText()) {
165178
if (prefHelper.altVibration()) {
166179
(activity?.getSystemService(Context.VIBRATOR_SERVICE) as? Vibrator?)?.vibrate(10)
167180
}
@@ -208,6 +221,11 @@ abstract class ComicBrowserBaseFragment : Fragment() {
208221
holder.image.setOnDoubleTapListener(it)
209222
holder.image.setOnLongClickListener(it)
210223
}
224+
225+
if (prefHelper.alwaysShowAltText()) {
226+
holder.altText.text = comic.altText
227+
holder.altText.visibility = View.VISIBLE
228+
}
211229
}
212230

213231
super.onBindViewHolder(holder, position)
@@ -240,6 +258,9 @@ abstract class ComicBrowserBaseFragment : Fragment() {
240258

241259
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
242260
MenuCompat.setGroupDividerEnabled(menu, true)
261+
262+
menu.findItem(R.id.action_alt)?.isVisible = prefHelper.showAltTip() && !prefHelper.alwaysShowAltText()
263+
243264
super.onCreateOptionsMenu(menu, inflater)
244265
}
245266

app/src/main/java/de/tap/easy_xkcd/comicBrowsing/FavoritesFragment.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,6 @@ class FavoritesFragment : ComicBrowserBaseFragment() {
117117

118118
override fun onPrepareOptionsMenu(menu: Menu) {
119119
menu.findItem(R.id.action_favorite)?.setIcon(R.drawable.ic_favorite_on_24dp)
120-
menu.findItem(R.id.action_alt)?.isVisible = prefHelper.showAltTip()
121120
super.onPrepareOptionsMenu(menu)
122121
}
123122

app/src/main/java/de/tap/easy_xkcd/utils/PrefHelper.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ public class PrefHelper {
6565
private static final String LAST_COMIC = "Last Comic";
6666
private static final String ALT_VIBRATION = "pref_alt";
6767
private static final String ALT_BACK = "pref_alt_back";
68+
private static final String ALT_ALWAYS_SHOW = "pref_show_alt";
6869
private static final String ALT_TIP = "alt_tip";
6970
private static final String WHAT_IF_TIP = "whatif_tip";
7071
private static final String RANDOM_TIP = "random_tip";
@@ -261,6 +262,10 @@ public boolean altBackButton() {
261262
return prefs.getStringSet(ALT_OPTIONS, new HashSet<String>()).contains(ALT_BACK);
262263
}
263264

265+
public boolean alwaysShowAltText() {
266+
return prefs.getStringSet(ALT_OPTIONS, new HashSet<String>()).contains(ALT_ALWAYS_SHOW);
267+
}
268+
264269
public boolean showAltTip() {
265270
return sharedPrefs.getBoolean(ALT_TIP, true);
266271
}

app/src/main/res/layout/pager_item.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@
3737
android:layout_alignParentBottom="true"
3838
android:layout_height="wrap_content"
3939
android:layout_marginLeft="@dimen/activity_horizontal_margin"
40-
android:layout_marginRight="@dimen/text_alt_margin_right"
40+
android:layout_marginRight="@dimen/activity_horizontal_margin"
41+
android:layout_marginBottom="30dp"
4142
android:layout_width="match_parent"
4243
android:textSize="@dimen/text_body1"
4344
android:visibility="gone" >

0 commit comments

Comments
 (0)