diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-22 11:15:44 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-22 11:15:44 +0200 |
| commit | bf319064f127e3cf97a46d2c172bdacdc8f8a783 (patch) | |
| tree | 22f85161e27635be2f92dd7f68883e3bc08a8627 /app/src/main/java/mygram/droid/FolderActivity.java | |
| parent | 3d30fb560c073fe78adc2ada2563ea97bf0f5019 (diff) | |
| download | mygram-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.java | 51 |
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); + } } |
