/[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 1616 - (hide annotations) (download)
Thu Oct 20 18:39:19 2011 UTC (12 years, 7 months ago) by torben
File size: 6322 byte(s)
first version
1 torben 1616 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