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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1618 - (show annotations) (download)
Thu Oct 20 20:30:48 2011 UTC (12 years, 6 months ago) by torben
File size: 6681 byte(s)
Brug en dummy webviewclient
1 package dk.thoerup.ekllauncher;
2
3 import android.app.Activity;
4 import android.content.Context;
5 import android.content.Intent;
6 import android.net.ConnectivityManager;
7 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 import android.webkit.WebViewClient;
23 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
81 class DummyWebViewClient extends WebViewClient {
82 }
83
84 static final String URL = "http://omdeling.info/mobil/ekl/login.php";
85
86 ConnectivityManager connMgr;
87 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 connMgr = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
121
122 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 web.setWebViewClient( new DummyWebViewClient() ); // skal have en webviewclient for at kunne styre ved forlad tur
154
155 if ( (telMgr.getSimState() == TelephonyManager.SIM_STATE_READY && telMgr.getDataState() == TelephonyManager.DATA_CONNECTED) || connMgr.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI) {
156 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