more consistent text-mode loading messages

This commit is contained in:
dosiecki 2018-07-06 02:55:22 -07:00
parent d2fb84c50e
commit 97b2d725d7
3 changed files with 42 additions and 17 deletions

View file

@ -51,6 +51,20 @@
android:visibility="gone"
/>
<TextView
android:id="@+id/reading_textmodefailed"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:paddingBottom="5dp"
style="?readingBackground"
android:gravity="center_horizontal"
android:text="@string/orig_text_failed"
android:textSize="16sp"
android:textStyle="italic"
android:visibility="gone"
/>
<com.newsblur.view.NewsblurWebview
android:id="@+id/reading_webview"
android:layout_width="match_parent"

View file

@ -70,7 +70,7 @@
<string name="overlay_count_toast_1">1 unread story</string>
<string name="overlay_text">TEXT</string>
<string name="overlay_story">STORY</string>
<string name="text_mode_unavailable">Sorry, the story\'s text could not be extracted.</string>
<string name="orig_text_failed">Sorry, the story\'s text could not be extracted.</string>
<string name="state_all">ALL</string>
<string name="state_unread">UNREAD</string>

View file

@ -27,7 +27,6 @@ import android.webkit.WebView.HitTestResult;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import butterknife.ButterKnife;
import butterknife.Bind;
@ -83,6 +82,7 @@ public class ReadingItemFragment extends NbFragment {
private DefaultFeedView selectedFeedView;
private boolean textViewUnavailable;
@Bind(R.id.reading_textloading) TextView textViewLoadingMsg;
@Bind(R.id.reading_textmodefailed) TextView textViewLoadingFailedMsg;
@Bind(R.id.save_story_button) Button saveButton;
@Bind(R.id.share_story_button) Button shareButton;
@ -500,25 +500,38 @@ public class ReadingItemFragment extends NbFragment {
}
private void reloadStoryContent() {
if ((selectedFeedView == DefaultFeedView.STORY) || textViewUnavailable) {
textViewLoadingMsg.setVisibility(View.GONE);
enableProgress(false);
// reset indicators
textViewLoadingMsg.setVisibility(View.GONE);
textViewLoadingFailedMsg.setVisibility(View.GONE);
enableProgress(false);
boolean needStoryContent = false;
if (selectedFeedView == DefaultFeedView.STORY) {
needStoryContent = true;
} else {
if (textViewUnavailable) {
textViewLoadingFailedMsg.setVisibility(View.VISIBLE);
needStoryContent = true;
} else if (originalText == null) {
textViewLoadingMsg.setVisibility(View.VISIBLE);
enableProgress(true);
loadOriginalText();
// still show the story mode version, as the text mode one may take some time
needStoryContent = true;
} else {
setupWebview(originalText);
onContentLoadFinished();
}
}
if (needStoryContent) {
if (storyContent == null) {
loadStoryContent();
} else {
setupWebview(storyContent);
onContentLoadFinished();
}
} else {
if (originalText == null) {
enableProgress(true);
loadOriginalText();
} else {
textViewLoadingMsg.setVisibility(View.GONE);
setupWebview(originalText);
onContentLoadFinished();
enableProgress(false);
}
}
}
@ -575,7 +588,6 @@ public class ReadingItemFragment extends NbFragment {
if (OriginalTextService.NULL_STORY_TEXT.equals(result)) {
// the server reported that text mode is not available. kick back to story mode
com.newsblur.util.Log.d(this, "orig text not avail for story: " + story.storyHash);
UIUtils.safeToast(getActivity(), R.string.text_mode_unavailable, Toast.LENGTH_SHORT);
textViewUnavailable = true;
} else {
ReadingItemFragment.this.originalText = result;
@ -583,7 +595,6 @@ public class ReadingItemFragment extends NbFragment {
reloadStoryContent();
} else {
com.newsblur.util.Log.d(this, "orig text not yet cached for story: " + story.storyHash);
textViewLoadingMsg.setVisibility(View.VISIBLE);
OriginalTextService.addPriorityHash(story.storyHash);
triggerSync();
}