aboutsummaryrefslogtreecommitdiff
path: root/sample/src/main/java/com/davemorrissey/labs/subscaleview/test/AbstractPagesActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'sample/src/main/java/com/davemorrissey/labs/subscaleview/test/AbstractPagesActivity.java')
-rw-r--r--sample/src/main/java/com/davemorrissey/labs/subscaleview/test/AbstractPagesActivity.java99
1 files changed, 99 insertions, 0 deletions
diff --git a/sample/src/main/java/com/davemorrissey/labs/subscaleview/test/AbstractPagesActivity.java b/sample/src/main/java/com/davemorrissey/labs/subscaleview/test/AbstractPagesActivity.java
new file mode 100644
index 0000000..4ce36de
--- /dev/null
+++ b/sample/src/main/java/com/davemorrissey/labs/subscaleview/test/AbstractPagesActivity.java
@@ -0,0 +1,99 @@
+package com.davemorrissey.labs.subscaleview.test;
+
+import android.app.ActionBar;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.support.v4.app.FragmentActivity;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.TextView;
+
+import java.util.List;
+
+public abstract class AbstractPagesActivity extends FragmentActivity {
+
+ private static final String BUNDLE_PAGE = "page";
+
+ private int page;
+
+ private final int title;
+ private final int layout;
+ private final List<Page> notes;
+
+ protected AbstractPagesActivity(int title, int layout, List<Page> notes) {
+ this.title = title;
+ this.layout = layout;
+ this.notes = notes;
+ }
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(layout);
+ ActionBar actionBar = getActionBar();
+ if (actionBar != null) {
+ actionBar.setTitle(getString(title));
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ }
+ findViewById(R.id.next).setOnClickListener(new View.OnClickListener() {
+ @Override public void onClick(View v) { next(); }
+ });
+ findViewById(R.id.previous).setOnClickListener(new View.OnClickListener() {
+ @Override public void onClick(View v) { previous(); }
+ });
+ if (savedInstanceState != null && savedInstanceState.containsKey(BUNDLE_PAGE)) {
+ page = savedInstanceState.getInt(BUNDLE_PAGE);
+ }
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ updateNotes();
+ }
+
+ @Override
+ protected void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putInt(BUNDLE_PAGE, page);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ finish();
+ return true;
+ }
+
+ private void next() {
+ page++;
+ updateNotes();
+ }
+
+ private void previous() {
+ page--;
+ updateNotes();
+ }
+
+ private void updateNotes() {
+ if (page > notes.size() - 1) {
+ return;
+ }
+ ActionBar actionBar = getActionBar();
+ if (actionBar != null) {
+ actionBar.setSubtitle(notes.get(page).getSubtitle());
+ }
+ ((TextView)findViewById(R.id.note)).setText(notes.get(page).getText());
+ findViewById(R.id.next).setVisibility(page >= notes.size() - 1 ? View.INVISIBLE : View.VISIBLE);
+ findViewById(R.id.previous).setVisibility(page <= 0 ? View.INVISIBLE : View.VISIBLE);
+ onPageChanged(page);
+ }
+
+ protected final int getPage() {
+ return page;
+ }
+
+ protected void onPageChanged(int page) {
+
+ }
+
+}