88import android .view .MenuItem ;
99import android .view .View ;
1010import android .view .ViewGroup ;
11+ import android .view .WindowManager ;
1112import android .view .inputmethod .InputMethodManager ;
1213import android .webkit .WebChromeClient ;
1314import android .webkit .WebSettings ;
1415import android .webkit .WebView ;
1516import android .webkit .WebViewClient ;
17+ import android .widget .LinearLayout ;
18+ import android .widget .ProgressBar ;
19+ import android .widget .RelativeLayout ;
1620
1721public class TransitFragment extends Fragment {
1822
1923 WebView mWebView ;
2024 private boolean mIsWebViewAvailable ;
25+ private View mView ;
26+ private RelativeLayout Pbar ;
2127
2228 public TransitFragment () {
2329 super ();
@@ -27,6 +33,11 @@ public TransitFragment() {
2733 public void onCreate (Bundle savedInstanceState ) {
2834 super .onCreate (savedInstanceState );
2935
36+ mWebView = new WebView (getActivity ());
37+ getActivity ().getWindow ().setFlags (
38+ WindowManager .LayoutParams .FLAG_HARDWARE_ACCELERATED ,
39+ WindowManager .LayoutParams .FLAG_HARDWARE_ACCELERATED );
40+
3041 InputMethodManager inputManager = (InputMethodManager ) getActivity ().getSystemService (Context .INPUT_METHOD_SERVICE );
3142
3243 View view = getActivity ().getCurrentFocus ();
@@ -37,11 +48,12 @@ public void onCreate(Bundle savedInstanceState) {
3748
3849 @ Override
3950 public View onCreateView (LayoutInflater inflater , ViewGroup container , Bundle savedInstanceState ) {
40- if (mWebView != null ) {
41- mWebView .destroy ();
42- }
51+ mView = inflater .inflate (R .layout .fragment_transit , container , false );
52+
53+ Pbar = (RelativeLayout ) mView .findViewById (R .id .loadingPanel );
54+
4355 mIsWebViewAvailable = true ;
44- mWebView = new WebView ( getActivity () );
56+ mWebView = ( WebView ) mView . findViewById ( R . id . transitWebView );
4557 mWebView .setOnKeyListener (new View .OnKeyListener () {
4658 @ Override
4759 public boolean onKey (View v , int keyCode , KeyEvent event ) {
@@ -54,11 +66,26 @@ public boolean onKey(View v, int keyCode, KeyEvent event) {
5466 });
5567 WebSettings webSettings = mWebView .getSettings ();
5668 webSettings .setJavaScriptEnabled (true );
57- mWebView .setWebChromeClient (new WebChromeClient ());
69+ mWebView .getSettings ().setCacheMode (WebSettings .LOAD_NO_CACHE );
70+ mWebView .setLayerType (View .LAYER_TYPE_SOFTWARE , null );
71+ mWebView .setWebChromeClient (new WebChromeClient () {
72+ @ Override
73+ public void onProgressChanged (WebView view , int progress )
74+ {
75+ if (progress >= 90 ) {
76+ ViewGroup parentWebView = (ViewGroup ) mWebView .getParent ();
77+ if (parentWebView != null ) {
78+ parentWebView .removeView (mWebView );
79+ }
80+ Pbar .setVisibility (View .GONE );
81+ ((LinearLayout ) mView ).addView (mWebView );
82+ }
83+ }
84+ });
5885 mWebView .setWebViewClient (new InnerWebViewClient ()); // forces it to open in app
5986 String mUrl = "http://www.pennrides.com/map?showHeader=0&route=229,230&silent_disable_timeout=1" ;
6087 mWebView .loadUrl (mUrl );
61- return mWebView ;
88+ return mView ;
6289 }
6390
6491 /* To ensure links open within the application */
0 commit comments