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

  ViewVC Help
Powered by ViewVC 1.1.20