Load WebViews into a ViewPager
2 files changed, 130 lines added, 16 lines removed
Changes
--- WebViewTest/src/webView/test/WebViewTestActivity.java 15d44a5222bab666f7c7a9b8c6e8e32ea20fe87c
+++ WebViewTest/src/webView/test/WebViewTestActivity.java e26d8ea67b29dcefabcd4eff249da99a3c89fe07
@@ -1,25 +1,139 @@
+import java.util.ArrayList;
+
+import blue.mesh.BlueMeshService;
+import android.content.Context;
+import android.os.Parcelable;
+import android.support.v4.view.PagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.util.Log;
+import android.view.View;
+import android.widget.Toast;
-
- WebView webview;
-
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- webview = (WebView) findViewById(R.id.webview);
-
- String html = "<html><body>some html here</body></html>";
- webview.loadData(html, "text/html", "UTF-8");
- }
-
-
+ private static final Boolean EMULATOR = true;
+ private static final String TAG = "WebViewTestActivity";
+ private ViewPager awesomePager;
+ private static int NUM_AWESOME_VIEWS = 0;
+ private Context cxt;
+ private AwesomePagerAdapter awesomeAdapter;
+ private BlueMeshServiceStub bms;
+ private Boolean stop = false;
+ private ArrayList <String> slides;
+
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+ cxt = this;
+
+ awesomeAdapter = new AwesomePagerAdapter();
+ awesomePager = (ViewPager) findViewById(R.id.awesomepager);
+ awesomePager.setAdapter(awesomeAdapter);
+ slides = new ArrayList<String>();
+ }
+
+ public void onStart(){+ super.onStart();
+
+
+ if( !EMULATOR ){+ try{+ //bms = new BlueMeshService(getApplicationContext());
+ }
+ catch(NullPointerException e){+ Toast.makeText(cxt, "Bluetooth Not Enabeled", Toast.LENGTH_LONG).show();
+ Log.e(TAG, "BlueMeshService Constructor failed");
+ return;
+ }
+ }
+ else{+ bms = new BlueMeshServiceStub(cxt);
+ }
+
+ slides.add("<html><body>WELCOME</body></html>");+ NUM_AWESOME_VIEWS++;
+ awesomeAdapter.notifyDataSetChanged();
+
+
+ while (true){+ if(stop){+ Log.d(TAG, "readThread interrupted");
+ return;
+ }
+ byte bytes[] = null;
+ bytes = bms.pull();
+ if( bytes == null){+ //We got nothing
+ }
+ else{+ if( EMULATOR && NUM_AWESOME_VIEWS > 10 ){ stop = true; }+ slides.add(new String(bytes) + NUM_AWESOME_VIEWS);
+ awesomeAdapter.notifyDataSetChanged();
+ NUM_AWESOME_VIEWS++;
+ }
+ }
+ }
+
+ private class AwesomePagerAdapter extends PagerAdapter{+
+
+ @Override
+ public int getCount() {+ return NUM_AWESOME_VIEWS;
+ }
+
+ @Override
+ public Object instantiateItem(View collection, int position) {+ WebView wv = new WebView(cxt);
+ String data;
+ switch(position){+ default:
+ data = slides.get(position);
+ wv.loadData(data, "text/html", null);
+ break;
+ }
+
+ ((ViewPager) collection).addView(wv,0);
+
+ return wv;
+ }
+
+ @Override
+ public void destroyItem(View collection, int position, Object view) {+ ((ViewPager) collection).removeView((WebView) view);
+ }
+
+
+
+ @Override
+ public boolean isViewFromObject(View view, Object object) {+ return view==((WebView)object);
+ }
+
+
+ @Override
+ public void finishUpdate(View arg0) {}+
+
+ @Override
+ public void restoreState(Parcelable arg0, ClassLoader arg1) {}+
+ @Override
+ public Parcelable saveState() {+ return null;
+ }
+
+ @Override
+ public void startUpdate(View arg0) {}+
+ }
+
+