/[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 2185 - (hide annotations) (download)
Fri May 30 12:41:17 2014 UTC (10 years ago) by torben
File size: 7402 byte(s)
Restructure a bit + test of addJavascriptInterface
1 torben 1616 package dk.thoerup.ekllauncher;
2    
3     import android.app.Activity;
4 torben 1624 import android.app.AlertDialog;
5 torben 1616 import android.content.Context;
6 torben 1624 import android.content.DialogInterface;
7 torben 1616 import android.content.Intent;
8 torben 1623 import android.location.LocationManager;
9 torben 1617 import android.net.ConnectivityManager;
10 torben 1619 import android.net.NetworkInfo;
11 torben 1616 import android.os.Bundle;
12     import android.os.Handler;
13     import android.os.Message;
14 torben 1924 import android.os.PowerManager;
15 torben 1616 import android.provider.Settings;
16     import android.telephony.TelephonyManager;
17     import android.util.Log;
18     import android.view.Menu;
19     import android.view.MenuItem;
20     import android.view.Window;
21 torben 1931 import android.view.WindowManager;
22 torben 1616 import android.webkit.WebSettings;
23 torben 1621 import android.webkit.WebStorage;
24 torben 1616 import android.webkit.WebView;
25 torben 1618 import android.webkit.WebViewClient;
26 torben 1616
27     public class EKLLauncherActivity extends Activity {
28    
29 torben 1620
30 torben 1616
31    
32 torben 1618 class DummyWebViewClient extends WebViewClient {
33     }
34 torben 1616
35 torben 2185 public static final String LOGTAG = "EklLauncher";
36 torben 1932 static final String URL = "http://omdeling.info/mobil/ekl/";
37 torben 2185 //static final String URL = "http://t-hoerup.dk/android_js.html";
38 torben 1616
39 torben 1623 LocationManager locMgr;
40 torben 1617 ConnectivityManager connMgr;
41 torben 1616 TelephonyManager telMgr;
42     WebView web;
43    
44 torben 1924 PowerManager.WakeLock wakeLock;
45 torben 1616
46 torben 1925 SimHandler simHandler = new SimHandler();
47    
48 torben 1931 @Override
49     public void onAttachedToWindow() {
50     this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
51     super.onAttachedToWindow();
52     }
53    
54 torben 1616 /** Called when the activity is first created. */
55 torben 1926 @Override
56 torben 1616 public void onCreate(Bundle savedInstanceState) {
57     super.onCreate(savedInstanceState);
58    
59 torben 1931 Log.e(LOGTAG, "Creating");
60 torben 1926
61 torben 1616 getWindow().requestFeature(Window.FEATURE_PROGRESS);
62    
63    
64     try {
65     int airplane = Settings.System.getInt(this.getContentResolver(), Settings.System.AIRPLANE_MODE_ON);
66 torben 1926
67 torben 1616 if (airplane > 0) {
68     Settings.System.putInt(this.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0);
69     Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
70     intent.putExtra("state", false);
71     sendBroadcast(intent);
72     }
73     } catch (Settings.SettingNotFoundException e) {
74     Log.d("EKL", "Exception " + e.getMessage() );
75     }
76 torben 1925
77     locMgr = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
78     telMgr = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
79     connMgr = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
80 torben 1931
81 torben 1616
82 torben 2185
83 torben 1931
84 torben 1927
85 torben 1616 setContentView(R.layout.main);
86     web = (WebView) findViewById(R.id.web);
87    
88     WebSettings settings = web.getSettings();
89    
90 torben 1620
91 torben 1616 settings.setJavaScriptEnabled(true);
92    
93     settings.setAppCacheEnabled(true);
94 torben 1620 settings.setAppCachePath( this.getCacheDir().toString() );
95 torben 1616
96     settings.setJavaScriptCanOpenWindowsAutomatically(false);
97     settings.setGeolocationEnabled(true);
98    
99 torben 1620 settings.setDomStorageEnabled(true);
100 torben 1616
101 torben 1620 settings.setDatabaseEnabled(true);
102 torben 1616 settings.setDatabasePath( this.getCacheDir().toString() );
103    
104    
105     settings.setSupportMultipleWindows(false);
106    
107 torben 2185 JsPhoneObject jsPhone = new JsPhoneObject(telMgr);
108    
109     web.addJavascriptInterface( jsPhone , "jsPhone");
110    
111     web.setWebChromeClient(new EKLChromeClient(this) );
112 torben 1618 web.setWebViewClient( new DummyWebViewClient() ); // skal have en webviewclient for at kunne styre ved forlad tur
113 torben 1927
114 torben 1619
115 torben 1616
116 torben 1620
117 torben 1624 if (!locMgr.isProviderEnabled(LocationManager.GPS_PROVIDER )) {
118     //Settings.Secure.putString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED, "network,gps");
119    
120     AlertDialog.Builder builder = new AlertDialog.Builder(this);
121     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)")
122     .setPositiveButton("OK", new DialogInterface.OnClickListener() {
123     public void onClick(DialogInterface dialog, int id) {
124 torben 1926 Intent myIntent = new Intent( Settings.ACTION_LOCATION_SOURCE_SETTINGS );
125 torben 1624 startActivity(myIntent);
126     }
127     })
128     .create()
129     .show();
130     }
131 torben 1926
132 torben 1616 }
133 torben 1931
134     @Override
135     protected void onStart() {
136     super.onStart();
137    
138     Log.e(LOGTAG, "Starting");
139     PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
140     wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "EklLauncher");
141     wakeLock.acquire();
142 torben 1933
143     //Hvis at tlf rebooter mit i et område uden dækning er det ikke smart at vi skal vente på data
144     //simHandler.sendEmptyMessage(0);
145     web.loadUrl( URL );
146    
147 torben 1931 }
148 torben 1926
149     void showMessage(String msg) {
150     AlertDialog.Builder builder = new AlertDialog.Builder(this);
151     builder.setMessage(msg)
152     .setPositiveButton("OK", new DialogInterface.OnClickListener() {
153     public void onClick(DialogInterface dialog, int id) {
154     dialog.dismiss();
155     }
156     })
157     .create()
158     .show();
159    
160     }
161 torben 1616
162     @Override
163 torben 1931 protected void onStop() {
164    
165     Log.e(LOGTAG, "Stopping");
166    
167     if (wakeLock != null && wakeLock.isHeld())
168     wakeLock.release();
169    
170     if (!web.getUrl().equals("about:blank"))
171     web.loadUrl("about:blank");
172    
173     super.onStop();
174 torben 1924 }
175 torben 1931
176     static final int RELOAD = 1;
177     static final int FLUSH = 2;
178     static final int EXIT = 3;
179 torben 1924
180     @Override
181 torben 1616 public boolean onCreateOptionsMenu(Menu menu) {
182     MenuItem item;
183 torben 1931 item = menu.add(0, RELOAD, 0, "Genindlæs side");
184 torben 1616 item.setIcon( R.drawable.ic_menu_refresh );
185    
186 torben 1931 item = menu.add(0, FLUSH, 0, "Slet cache");
187 torben 1616 item.setIcon( R.drawable.ic_menu_delete );
188 torben 1931
189     item = menu.add(0, EXIT, 0, "Forlad");
190     item.setIcon( android.R.drawable.ic_menu_close_clear_cancel);
191    
192 torben 1616 return super.onCreateOptionsMenu(menu);
193     }
194    
195     @Override
196     public boolean onMenuItemSelected(int featureId, MenuItem item) {
197     switch (item.getItemId()) {
198 torben 1931 case RELOAD:
199 torben 1616 web.reload();
200     break;
201 torben 1931 case FLUSH:
202 torben 1616 web.clearCache(true);
203 torben 1927
204     WebStorage.getInstance().deleteAllData();
205     WebStorage.getInstance().deleteOrigin(URL);
206    
207 torben 1616 web.reload();
208     break;
209 torben 1931 case EXIT:
210     this.finish();
211     break;
212 torben 1616 }
213 torben 1931
214 torben 1616 return super.onMenuItemSelected(featureId, item);
215     }
216    
217     Handler timeoutHandler = new Handler() {
218     @Override
219     public void handleMessage(Message msg) {
220     super.handleMessage(msg);
221     web.reload();
222     }
223    
224     };
225    
226    
227 torben 1620
228 torben 1925
229 torben 1616
230 torben 1620 class SimHandler extends Handler {
231    
232     public void testNetwork() {
233     NetworkInfo network = connMgr.getActiveNetworkInfo();
234    
235     if ( (telMgr.getSimState() == TelephonyManager.SIM_STATE_READY && telMgr.getDataState() == TelephonyManager.DATA_CONNECTED) || ( network != null && network.getType() == ConnectivityManager.TYPE_WIFI) ) {
236 torben 1616 web.loadUrl( URL );
237     } else {
238 torben 1620 web.loadData("<html><body><h2>afventer netv&aelig;rksforbindelse</h2></body></html>", "text/html", "iso-8859-1");
239 torben 1616 this.sendEmptyMessageDelayed(0, 1000);
240     }
241     }
242 torben 1620
243     @Override
244     public void handleMessage(Message msg) {
245     super.handleMessage(msg);
246    
247     testNetwork();
248     }
249 torben 1616 };
250    
251    
252     }

  ViewVC Help
Powered by ViewVC 1.1.20