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

  ViewVC Help
Powered by ViewVC 1.1.20