/[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 1617 - (hide annotations) (download)
Thu Oct 20 20:23:48 2011 UTC (12 years, 7 months ago) by torben
File size: 6526 byte(s)
Also work if connected network is wifi
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     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 torben 1617 ConnectivityManager connMgr;
84 torben 1616 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 torben 1617 connMgr = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
118    
119 torben 1616 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 torben 1617 if ( (telMgr.getSimState() == TelephonyManager.SIM_STATE_READY && telMgr.getDataState() == TelephonyManager.DATA_CONNECTED) || connMgr.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI) {
153 torben 1616 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