/[projects]/android/EKLLauncher/src/dk/thoerup/ekllauncher/EKLLauncherActivity.java
ViewVC logotype

Annotation of /android/EKLLauncher/src/dk/thoerup/ekllauncher/EKLLauncherActivity.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1618 - (hide annotations) (download)
Thu Oct 20 20:30:48 2011 UTC (12 years, 7 months ago) by torben
File size: 6681 byte(s)
Brug en dummy webviewclient
1 torben 1616 package dk.thoerup.ekllauncher;
2    
3     import android.app.Activity;
4     import android.content.Context;
5     import android.content.Intent;
6 torben 1617 import android.net.ConnectivityManager;
7 torben 1616 import android.os.Bundle;
8     import android.os.Handler;
9     import android.os.Message;
10     import android.provider.Settings;
11     import android.telephony.TelephonyManager;
12     import android.util.Log;
13     import android.view.Menu;
14     import android.view.MenuItem;
15     import android.view.Window;
16     import android.webkit.GeolocationPermissions.Callback;
17     import android.webkit.JsPromptResult;
18     import android.webkit.WebChromeClient;
19     import android.webkit.WebSettings;
20     import android.webkit.WebStorage.QuotaUpdater;
21     import android.webkit.WebView;
22 torben 1618 import android.webkit.WebViewClient;
23 torben 1616 import android.widget.Toast;
24    
25     public class EKLLauncherActivity extends Activity {
26    
27     class CustomChromeClient extends WebChromeClient {
28    
29     @Override
30     public boolean onCreateWindow(WebView view, boolean dialog,
31     boolean userGesture, Message resultMsg) {
32     msg("create window");
33     return super.onCreateWindow(view, dialog, userGesture, resultMsg);
34     }
35    
36    
37     public void onProgressChanged(WebView view, int progress) {
38     // Activities and WebViews measure progress with different scales.
39     // The progress meter will automatically disappear when we reach 100%
40     EKLLauncherActivity.this.setProgress(progress * 100);
41     }
42    
43    
44     @Override
45     public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize, long totalUsedQuota, QuotaUpdater quotaUpdater) {
46     quotaUpdater.updateQuota(estimatedSize); // altid giv tilladelse til større db quota
47     }
48    
49    
50     @Override
51     public void onGeolocationPermissionsShowPrompt(String origin, Callback callback) {
52     callback.invoke(origin, true, true); //altid give tilladelse til geo location
53     }
54     /*
55     @Override
56     public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
57    
58     return super.onJsAlert(view, url, message, result);
59     }
60    
61     @Override
62     public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
63     Toast.makeText(EKLLauncherActivity.this, "Oh no! " + message, Toast.LENGTH_SHORT).show();
64     return super.onJsConfirm(view, url, message, result);
65     }*/
66    
67     @Override
68     public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
69     if (message.trim().toLowerCase().equals("pda identifikation mangler")) {
70     result.confirm(device);
71    
72     timeoutHandler.sendEmptyMessageDelayed(1, 500); //efter pdaID er sendt til app'en skal vi genindlæse siden for at tvinge den til at hente data
73     return true;
74     } else {
75     return super.onJsPrompt(view, url, message, defaultValue, result);
76     }
77     }
78    
79     }
80 torben 1618
81     class DummyWebViewClient extends WebViewClient {
82     }
83 torben 1616
84     static final String URL = "http://omdeling.info/mobil/ekl/login.php";
85    
86 torben 1617 ConnectivityManager connMgr;
87 torben 1616 TelephonyManager telMgr;
88     WebView web;
89     String device = "";
90    
91    
92     public void msg(String m) {
93     Toast.makeText(EKLLauncherActivity.this, m, Toast.LENGTH_SHORT).show();
94     }
95    
96     /** Called when the activity is first created. */
97     @Override
98     public void onCreate(Bundle savedInstanceState) {
99     super.onCreate(savedInstanceState);
100    
101     getWindow().requestFeature(Window.FEATURE_PROGRESS);
102    
103    
104     try {
105     int airplane = Settings.System.getInt(this.getContentResolver(), Settings.System.AIRPLANE_MODE_ON);
106     if (airplane > 0) {
107     Settings.System.putInt(this.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0);
108     Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
109     intent.putExtra("state", false);
110     sendBroadcast(intent);
111     }
112     } catch (Settings.SettingNotFoundException e) {
113     Log.d("EKL", "Exception " + e.getMessage() );
114     }
115    
116    
117    
118    
119     telMgr = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
120 torben 1617 connMgr = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
121    
122 torben 1616 device = telMgr.getLine1Number();
123     if (device == null || device.equals("")) {
124     device = telMgr.getDeviceId();
125    
126     if(device == null)
127     device = "";
128     }
129    
130    
131     setContentView(R.layout.main);
132     web = (WebView) findViewById(R.id.web);
133    
134     WebSettings settings = web.getSettings();
135    
136    
137     settings.setJavaScriptEnabled(true);
138    
139     settings.setAppCacheEnabled(true);
140    
141     settings.setJavaScriptCanOpenWindowsAutomatically(false);
142     settings.setGeolocationEnabled(true);
143    
144     settings.setDomStorageEnabled(true);
145     settings.setDatabaseEnabled(true);
146    
147     settings.setDatabasePath( this.getCacheDir().toString() );
148    
149    
150     settings.setSupportMultipleWindows(false);
151    
152     web.setWebChromeClient(new CustomChromeClient() );
153 torben 1618 web.setWebViewClient( new DummyWebViewClient() ); // skal have en webviewclient for at kunne styre ved forlad tur
154 torben 1616
155 torben 1617 if ( (telMgr.getSimState() == TelephonyManager.SIM_STATE_READY && telMgr.getDataState() == TelephonyManager.DATA_CONNECTED) || connMgr.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI) {
156 torben 1616 web.loadUrl( URL );
157     } else {
158     web.loadData("<html><body><h2>afventer netv&aelig;rksforbindelse</h2></body></html>", "text/html", "iso-8859-1");
159     simHandler.sendEmptyMessageDelayed(0, 1500);
160     }
161    
162     }
163    
164     @Override
165     public boolean onCreateOptionsMenu(Menu menu) {
166     MenuItem item;
167     item = menu.add(0, 1, 0, "Genindlæs side");
168     item.setIcon( R.drawable.ic_menu_refresh );
169    
170     item = menu.add(0, 2, 0, "Slet cache");
171     item.setIcon( R.drawable.ic_menu_delete );
172     return super.onCreateOptionsMenu(menu);
173     }
174    
175     @Override
176     public boolean onMenuItemSelected(int featureId, MenuItem item) {
177     switch (item.getItemId()) {
178     case 1:
179     web.reload();
180     break;
181     case 2:
182     web.clearCache(true);
183     web.reload();
184     break;
185     }
186     return super.onMenuItemSelected(featureId, item);
187     }
188    
189     Handler timeoutHandler = new Handler() {
190     @Override
191     public void handleMessage(Message msg) {
192     super.handleMessage(msg);
193     web.reload();
194     }
195    
196     };
197    
198    
199    
200     Handler simHandler = new Handler() {
201     @Override
202     public void handleMessage(Message msg) {
203     super.handleMessage(msg);
204     if (telMgr.getSimState() == TelephonyManager.SIM_STATE_READY && telMgr.getDataState() == TelephonyManager.DATA_CONNECTED) {
205     web.loadUrl( URL );
206     } else {
207     this.sendEmptyMessageDelayed(0, 1000);
208     }
209     }
210     };
211    
212    
213     }

  ViewVC Help
Powered by ViewVC 1.1.20