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

  ViewVC Help
Powered by ViewVC 1.1.20