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

  ViewVC Help
Powered by ViewVC 1.1.20