aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/mygram/droid/FolderActivity.java
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-22 11:15:44 +0200
committerDanilo M. <danix@danix.xyz>2026-10-22 11:15:44 +0200
commitbf319064f127e3cf97a46d2c172bdacdc8f8a783 (patch)
tree22f85161e27635be2f92dd7f68883e3bc08a8627 /app/src/main/java/mygram/droid/FolderActivity.java
parent3d30fb560c073fe78adc2ada2563ea97bf0f5019 (diff)
downloadmygram-droid-bf319064f127e3cf97a46d2c172bdacdc8f8a783.tar.gz
mygram-droid-bf319064f127e3cf97a46d2c172bdacdc8f8a783.zip
Add main screen with top bar, Home rows, Liked and Folders tabs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'app/src/main/java/mygram/droid/FolderActivity.java')
-rw-r--r--app/src/main/java/mygram/droid/FolderActivity.java51
1 files changed, 51 insertions, 0 deletions
diff --git a/app/src/main/java/mygram/droid/FolderActivity.java b/app/src/main/java/mygram/droid/FolderActivity.java
index d53588a..8da2533 100644
--- a/app/src/main/java/mygram/droid/FolderActivity.java
+++ b/app/src/main/java/mygram/droid/FolderActivity.java
@@ -12,9 +12,60 @@
* for more details.
*/
+
package mygram.droid;
import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.recyclerview.widget.RecyclerView;
+import java.util.Collections;
+
+/** One folder as a grid, shuffled once per open. */
public final class FolderActivity extends Activity {
+ private FrameLayout content;
+ private RecyclerView grid;
+
+ static void open(Context c, Api.Folder f) {
+ c.startActivity(new Intent(c, FolderActivity.class).putExtra("slug", f.slug).putExtra("name", f.name));
+ }
+
+ @Override
+ protected void onCreate(Bundle state) {
+ super.onCreate(state);
+ LinearLayout column = new LinearLayout(this);
+ column.setOrientation(LinearLayout.VERTICAL);
+ TextView title = Ui.text(this, getIntent().getStringExtra("name"), 24);
+ title.setPadding(Ui.dp(this, 36), Ui.dp(this, 24), 0, 0);
+ column.addView(title);
+ content = new FrameLayout(this);
+ column.addView(content, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 0, 1));
+ setContentView(column);
+ show(Ui.text(this, "Loading…", 18));
+ Api.async(() -> Api.folderPosts(getIntent().getStringExtra("slug")), posts -> {
+ Collections.shuffle(posts);
+ grid = Ui.grid(this, Ui.postTiles(this, posts), Ui.POST_W, Ui.POST_H, 6);
+ show(grid);
+ grid.requestFocus();
+ }, e -> show(Ui.text(this, "Cannot load folder: " + e.getMessage(), 18)));
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ if (grid != null && grid.getAdapter() != null)
+ grid.getAdapter().notifyItemRangeChanged(0, grid.getAdapter().getItemCount());
+ }
+
+ private void show(android.view.View v) {
+ content.removeAllViews();
+ content.addView(v);
+ }
}