/[projects]/android/EKLLauncher/src/dk/thoerup/ekllauncher/EKLLauncherActivity.java
ViewVC logotype

Diff of /android/EKLLauncher/src/dk/thoerup/ekllauncher/EKLLauncherActivity.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1618 by torben, Thu Oct 20 20:30:48 2011 UTC revision 1924 by torben, Fri Feb 22 12:40:04 2013 UTC
# Line 1  Line 1 
1  package dk.thoerup.ekllauncher;  package dk.thoerup.ekllauncher;
2    
3  import android.app.Activity;  import android.app.Activity;
4    import android.app.AlertDialog;
5  import android.content.Context;  import android.content.Context;
6    import android.content.DialogInterface;
7  import android.content.Intent;  import android.content.Intent;
8    import android.location.LocationManager;
9  import android.net.ConnectivityManager;  import android.net.ConnectivityManager;
10    import android.net.NetworkInfo;
11  import android.os.Bundle;  import android.os.Bundle;
12  import android.os.Handler;  import android.os.Handler;
13  import android.os.Message;  import android.os.Message;
14    import android.os.PowerManager;
15  import android.provider.Settings;  import android.provider.Settings;
16  import android.telephony.TelephonyManager;  import android.telephony.TelephonyManager;
17    import android.text.InputType;
18  import android.util.Log;  import android.util.Log;
19  import android.view.Menu;  import android.view.Menu;
20  import android.view.MenuItem;  import android.view.MenuItem;
# Line 17  import android.webkit.GeolocationPermiss Line 23  import android.webkit.GeolocationPermiss
23  import android.webkit.JsPromptResult;  import android.webkit.JsPromptResult;
24  import android.webkit.WebChromeClient;  import android.webkit.WebChromeClient;
25  import android.webkit.WebSettings;  import android.webkit.WebSettings;
26    import android.webkit.WebStorage;
27  import android.webkit.WebStorage.QuotaUpdater;  import android.webkit.WebStorage.QuotaUpdater;
28  import android.webkit.WebView;  import android.webkit.WebView;
29  import android.webkit.WebViewClient;  import android.webkit.WebViewClient;
30  import android.widget.Toast;  import android.widget.EditText;
31    
32  public class EKLLauncherActivity extends Activity {  public class EKLLauncherActivity extends Activity {
33                    
34          class CustomChromeClient extends WebChromeClient {          class CustomChromeClient extends WebChromeClient {
35                                    
36                  @Override                  @Override
37                  public boolean onCreateWindow(WebView view, boolean dialog,                  public void onReachedMaxAppCacheSize(long spaceNeeded, long totalUsedQuota, QuotaUpdater quotaUpdater) {
38                                  boolean userGesture, Message resultMsg) {                          quotaUpdater.updateQuota(totalUsedQuota + 4096);
                         msg("create window");  
                         return super.onCreateWindow(view, dialog, userGesture, resultMsg);  
39                  }                  }
40    
41    
42    
43                  public void onProgressChanged(WebView view, int progress) {                  public void onProgressChanged(WebView view, int progress) {
44                          // Activities and WebViews measure progress with different scales.                          // Activities and WebViews measure progress with different scales.
45                          // The progress meter will automatically disappear when we reach 100%                          // The progress meter will automatically disappear when we reach 100%
# Line 65  public class EKLLauncherActivity extends Line 71  public class EKLLauncherActivity extends
71                  }*/                  }*/
72    
73                  @Override                  @Override
74                  public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {                  public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, final JsPromptResult result) {
75                          if (message.trim().toLowerCase().equals("pda identifikation mangler")) {                          String msg = message.trim().toLowerCase();
76    
77                            if (msg.equals("pda identifikation mangler")) {
78                                  result.confirm(device);                                  result.confirm(device);
79                                    
80                                  timeoutHandler.sendEmptyMessageDelayed(1, 500); //efter pdaID er sendt til app'en skal vi genindlæse siden for at tvinge den til at hente data                                  timeoutHandler.sendEmptyMessageDelayed(1, 500); //efter pdaID er sendt til app'en skal vi genindlæse siden for at tvinge den til at hente data
81                                  return true;                                  return true;
82                            } else if (msg.startsWith("indtast retur antal")) {
83    
84                                    AlertDialog.Builder alert = new AlertDialog.Builder(EKLLauncherActivity.this);
85    
86                                    //alert.setTitle("Title");
87                                    alert.setMessage(message);
88    
89                                    // Set an EditText view to get user input
90                                    final EditText input = new EditText(EKLLauncherActivity.this);
91                                    input.setInputType(InputType.TYPE_CLASS_NUMBER);
92                                    alert.setView(input);
93    
94                                    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
95                                            public void onClick(DialogInterface dialog, int whichButton) {
96                                                    result.confirm(input.getText().toString());
97                                            }
98                                    });
99                                    alert.show();
100    
101                                    return true;                            
102                          } else {                          } else {
103                                  return super.onJsPrompt(view, url, message, defaultValue, result);                                  return super.onJsPrompt(view, url, message, defaultValue, result);
104                          }                                                                                                }                                                                      
105                  }                  }
106                    
107          }          }
108    
109          class DummyWebViewClient extends WebViewClient {                          class DummyWebViewClient extends WebViewClient {                
# Line 83  public class EKLLauncherActivity extends Line 111  public class EKLLauncherActivity extends
111                    
112          static final String URL = "http://omdeling.info/mobil/ekl/login.php";          static final String URL = "http://omdeling.info/mobil/ekl/login.php";
113                    
114            LocationManager locMgr;
115          ConnectivityManager connMgr;          ConnectivityManager connMgr;
116          TelephonyManager telMgr;          TelephonyManager telMgr;
117          WebView web;          WebView web;
118          String device = "";          String device = "";
119                    
120                    PowerManager.WakeLock wakeLock;
         public void msg(String m) {  
                 Toast.makeText(EKLLauncherActivity.this, m, Toast.LENGTH_SHORT).show();  
         }  
121                    
122      /** Called when the activity is first created. */      /** Called when the activity is first created. */
123      @Override      @Override
# Line 113  public class EKLLauncherActivity extends Line 139  public class EKLLauncherActivity extends
139                  Log.d("EKL", "Exception " + e.getMessage() );                  Log.d("EKL", "Exception " + e.getMessage() );
140          }          }
141                    
142            PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
143            wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "EklLauncher");
144            wakeLock.acquire();        
145                    
146                    
147                    locMgr = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
148          telMgr = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);          telMgr = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
149          connMgr = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);          connMgr = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
150                    
# Line 127  public class EKLLauncherActivity extends Line 156  public class EKLLauncherActivity extends
156                          device = "";                          device = "";
157          }          }
158                    
159    
160                    
161          setContentView(R.layout.main);          setContentView(R.layout.main);
162          web = (WebView) findViewById(R.id.web);          web = (WebView) findViewById(R.id.web);
163                    
164          WebSettings settings = web.getSettings();          WebSettings settings = web.getSettings();
165                    
166                            
167          settings.setJavaScriptEnabled(true);          settings.setJavaScriptEnabled(true);
168                    
169          settings.setAppCacheEnabled(true);          settings.setAppCacheEnabled(true);
170            settings.setAppCachePath( this.getCacheDir().toString() );
171                    
172          settings.setJavaScriptCanOpenWindowsAutomatically(false);          settings.setJavaScriptCanOpenWindowsAutomatically(false);
173          settings.setGeolocationEnabled(true);          settings.setGeolocationEnabled(true);
174                    
175          settings.setDomStorageEnabled(true);                  settings.setDomStorageEnabled(true);
         settings.setDatabaseEnabled(true);  
176                    
177            settings.setDatabaseEnabled(true);        
178          settings.setDatabasePath( this.getCacheDir().toString() );          settings.setDatabasePath( this.getCacheDir().toString() );
179    
180                    
# Line 151  public class EKLLauncherActivity extends Line 182  public class EKLLauncherActivity extends
182                    
183          web.setWebChromeClient(new CustomChromeClient() );          web.setWebChromeClient(new CustomChromeClient() );
184          web.setWebViewClient( new DummyWebViewClient() ); // skal have en webviewclient for at kunne styre ved forlad tur          web.setWebViewClient( new DummyWebViewClient() ); // skal have en webviewclient for at kunne styre ved forlad tur
185    
186            
187            simHandler.sendEmptyMessage(0);
188            
189                    
         if ( (telMgr.getSimState() == TelephonyManager.SIM_STATE_READY && telMgr.getDataState() == TelephonyManager.DATA_CONNECTED) || connMgr.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI) {  
                 web.loadUrl( URL );  
         } else {  
                 web.loadData("<html><body><h2>afventer netv&aelig;rksforbindelse</h2></body></html>", "text/html", "iso-8859-1");  
                 simHandler.sendEmptyMessageDelayed(0, 1500);  
         }  
190                    
191            
192            if (!locMgr.isProviderEnabled(LocationManager.GPS_PROVIDER )) {
193                    //Settings.Secure.putString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED, "network,gps");
194                    
195                    AlertDialog.Builder builder = new AlertDialog.Builder(this);
196                    builder.setMessage("GPS er slået fra på telefonen!\nSæt et flueben ved GPS i næste vindue og tryk derefter på tilbage knappen (nederst på telefonen)")
197                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
198                    public void onClick(DialogInterface dialog, int id) {
199                            Intent myIntent = new Intent( Settings.ACTION_SECURITY_SETTINGS );
200                        startActivity(myIntent);      
201                    }
202                })
203                .create()
204                .show();      
205            }
206      }      }
207    
208          @Override          @Override
209            protected void onDestroy() {
210                    super.onDestroy();
211                    wakeLock.release();
212            }
213    
214            @Override
215          public boolean onCreateOptionsMenu(Menu menu) {          public boolean onCreateOptionsMenu(Menu menu) {
216                  MenuItem item;                  MenuItem item;
217                  item = menu.add(0, 1, 0, "Genindlæs side");                  item = menu.add(0, 1, 0, "Genindlæs side");
# Line 179  public class EKLLauncherActivity extends Line 229  public class EKLLauncherActivity extends
229                          web.reload();                          web.reload();
230                          break;                          break;
231                  case 2:                  case 2:
232                            WebStorage.getInstance().deleteAllData();
233                          web.clearCache(true);                          web.clearCache(true);
234                          web.reload();                          web.reload();
235                          break;                          break;
# Line 196  public class EKLLauncherActivity extends Line 247  public class EKLLauncherActivity extends
247          };          };
248                    
249                    
250    
251            SimHandler simHandler = new SimHandler();
252                    
253          Handler simHandler = new Handler() {          class SimHandler extends Handler {
254                  @Override                  
255                  public void handleMessage(Message msg) {                  public void testNetwork() {
256                          super.handleMessage(msg);                          NetworkInfo network = connMgr.getActiveNetworkInfo();
257                          if (telMgr.getSimState() == TelephonyManager.SIM_STATE_READY && telMgr.getDataState() == TelephonyManager.DATA_CONNECTED) {                          
258                            if ( (telMgr.getSimState() == TelephonyManager.SIM_STATE_READY && telMgr.getDataState() == TelephonyManager.DATA_CONNECTED) || ( network != null && network.getType() == ConnectivityManager.TYPE_WIFI) ) {
259                                  web.loadUrl( URL );                                  web.loadUrl( URL );
260                          } else {                          } else {
261                            web.loadData("<html><body><h2>afventer netv&aelig;rksforbindelse</h2></body></html>", "text/html", "iso-8859-1");
262                                  this.sendEmptyMessageDelayed(0, 1000);                                  this.sendEmptyMessageDelayed(0, 1000);
263                          }                          }
264                  }                  }
265                    
266                    @Override
267                    public void handleMessage(Message msg) {
268                            super.handleMessage(msg);
269                            
270                            testNetwork();
271                    }
272          };          };
273            
274            

Legend:
Removed from v.1618  
changed lines
  Added in v.1924

  ViewVC Help
Powered by ViewVC 1.1.20