aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/mygram/droid/MainActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/mygram/droid/MainActivity.java')
-rw-r--r--app/src/main/java/mygram/droid/MainActivity.java14
1 files changed, 11 insertions, 3 deletions
diff --git a/app/src/main/java/mygram/droid/MainActivity.java b/app/src/main/java/mygram/droid/MainActivity.java
index 877f180..7c7f194 100644
--- a/app/src/main/java/mygram/droid/MainActivity.java
+++ b/app/src/main/java/mygram/droid/MainActivity.java
@@ -59,7 +59,7 @@ public final class MainActivity extends Activity {
private RecyclerView homeList;
private HomeRows homeRows;
private int tab = HOME;
- private boolean ready, resumed, homeLoading;
+ private boolean ready, resumed, homeLoading, connecting;
private LinearLayout homeButton, likedButton, foldersButton;
@Override
@@ -90,7 +90,7 @@ public final class MainActivity extends Activity {
column.addView(content, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0, 1));
root.addView(column, FILL);
setContentView(root);
- connect();
+ // connect() runs from onResume once the splash has let the user in.
}
/** [logo] [Reels] [Liked] [Folders] [Settings]; the current view is marked. */
@@ -114,13 +114,17 @@ public final class MainActivity extends Activity {
}
private void connect() {
+ if (connecting)
+ return;
message("Connecting…");
+ connecting = true;
Api.async(() -> {
if (!Prefs.password().isEmpty())
Api.login(Prefs.server(), Prefs.password());
Likes.load();
return Api.randomFeed();
}, posts -> {
+ connecting = false;
if (isDestroyed())
return;
ready = true;
@@ -129,6 +133,7 @@ public final class MainActivity extends Activity {
rotateBackground();
show(tab);
}, e -> {
+ connecting = false;
if (!isDestroyed())
failed(e);
});
@@ -205,8 +210,11 @@ public final class MainActivity extends Activity {
protected void onResume() {
super.onResume();
resumed = true;
- if (!ready)
+ if (!ready) {
+ if (!connecting && !App.locked)
+ connect(); // also retries after an error, e.g. back from Settings
return;
+ }
handler.removeCallbacks(rotate);
handler.postDelayed(rotate, Prefs.backgroundSeconds() * 1000L);
if (tab == LIKED)