diff --git a/app/src/main/java/com/etesync/syncadapter/ui/JournalItemActivity.java b/app/src/main/java/com/etesync/syncadapter/ui/JournalItemActivity.java
index ae339860..20577b41 100644
--- a/app/src/main/java/com/etesync/syncadapter/ui/JournalItemActivity.java
+++ b/app/src/main/java/com/etesync/syncadapter/ui/JournalItemActivity.java
@@ -3,7 +3,14 @@ package com.etesync.syncadapter.ui;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
+import android.support.design.widget.TabLayout;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentPagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.view.LayoutInflater;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.TextView;
import com.etesync.syncadapter.App;
@@ -12,7 +19,6 @@ import com.etesync.syncadapter.R;
import com.etesync.syncadapter.model.CollectionInfo;
import com.etesync.syncadapter.model.JournalEntity;
import com.etesync.syncadapter.model.SyncEntry;
-import com.etesync.syncadapter.resource.LocalCalendar;
import io.requery.Persistable;
import io.requery.sql.EntityDataStore;
@@ -44,27 +50,7 @@ public class JournalItemActivity extends BaseActivity implements Refreshable {
info = journalEntity.getInfo();
- setTitle(R.string.journal_item_title);
-
- final View colorSquare = findViewById(R.id.color);
- if (info.type == CollectionInfo.Type.CALENDAR) {
- if (info.color != null) {
- colorSquare.setBackgroundColor(info.color);
- } else {
- colorSquare.setBackgroundColor(LocalCalendar.defaultColor);
- }
- } else {
- colorSquare.setVisibility(View.GONE);
- }
-
- final TextView title = (TextView) findViewById(R.id.display_name);
- title.setText(info.displayName);
-
- final TextView desc = (TextView) findViewById(R.id.description);
- desc.setText(info.description);
-
- final TextView content = (TextView) findViewById(R.id.content);
- content.setText(syncEntry.getContent());
+ setTitle(info.displayName);
setJournalEntryView(findViewById(R.id.journal_list_item), info, syncEntry);
}
@@ -82,14 +68,63 @@ public class JournalItemActivity extends BaseActivity implements Refreshable {
refresh();
- // We refresh before this, so we don't refresh the list before it was fully created.
- if (savedInstanceState == null) {
- /*
- listFragment = CollectionMembersListFragment.newInstance(account, info);
- getSupportFragmentManager().beginTransaction()
- .add(R.id.list_entries_container, listFragment)
- .commit();
- */
+ ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
+ viewPager.setAdapter(new TabsAdapter(getSupportFragmentManager(), info, syncEntry));
+
+ TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
+ tabLayout.setupWithViewPager(viewPager);
+ }
+
+ private static class TabsAdapter extends FragmentPagerAdapter {
+ private CollectionInfo info;
+ private SyncEntry syncEntry;
+ public TabsAdapter(FragmentManager fm, CollectionInfo info, SyncEntry syncEntry) {
+ super(fm);
+ this.info = info;
+ this.syncEntry = syncEntry;
+ }
+
+ @Override
+ public int getCount() {
+ // FIXME: Make it depend on info type (only have non-raw for known types)
+ return 2;
+ }
+
+ @Override
+ public CharSequence getPageTitle(int position) {
+ // FIXME: use string resources
+ if (position == 0) {
+ return "Main";
+ } else {
+ return "Raw";
+ }
+ }
+
+ @Override
+ public Fragment getItem(int position) {
+ return TextFragment.newInstance(syncEntry);
+ }
+ }
+
+ public static class TextFragment extends Fragment {
+ public static TextFragment newInstance(SyncEntry syncEntry) {
+ TextFragment frag = new TextFragment();
+ Bundle args = new Bundle(1);
+ args.putSerializable(KEY_SYNC_ENTRY, syncEntry);
+ frag.setArguments(args);
+ return frag;
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ View v = inflater.inflate(R.layout.text_fragment, container, false);
+
+ TextView tv = (TextView) v.findViewById(R.id.content);
+
+ SyncEntry syncEntry = (SyncEntry) getArguments().getSerializable(KEY_SYNC_ENTRY);
+ tv.setText(syncEntry.getContent());
+
+ return v;
}
}
diff --git a/app/src/main/res/layout/journal_item_activity.xml b/app/src/main/res/layout/journal_item_activity.xml
index f770361e..97e113ab 100644
--- a/app/src/main/res/layout/journal_item_activity.xml
+++ b/app/src/main/res/layout/journal_item_activity.xml
@@ -2,13 +2,16 @@
-
+ android:layout_height="wrap_content"/>
-
-
-
-
+ android:layout_height="match_parent"
+ app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
diff --git a/app/src/main/res/layout/text_fragment.xml b/app/src/main/res/layout/text_fragment.xml
new file mode 100644
index 00000000..28513cad
--- /dev/null
+++ b/app/src/main/res/layout/text_fragment.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a66f79b0..4d6ee4eb 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -129,7 +129,6 @@
Would you like to revoke %s\'s access?\nPlease be advised that a malicious user would potentially be able to retain access to encryption keys. Please refer to the FAQ for more information.
- Journal Item
EteSync permissions