From 11b7e2e339dbed15d20df264922d89af4ea2799f Mon Sep 17 00:00:00 2001 From: Carlos Silva Date: Thu, 7 Oct 2010 18:53:59 +0100 Subject: [PATCH] - Add support for Update the uptime with a button - Fix a bug where the client wouldn't update the uptime at the server - Languages updates --- AndroidManifest.xml | 52 +++++---- res/layout/main.xml | 101 +++++++++++++----- res/values-pt/strings.xml | 7 +- res/values-zh-rCN/strings.xml | 7 +- res/values-zh-rTW/strings.xml | 7 +- res/values/strings.xml | 7 +- .../r3pek/droiduptime/DroidUptimeService.java | 68 +++++++----- src/org/r3pek/droiduptime/Main.java | 14 ++- 8 files changed, 176 insertions(+), 87 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index b2a914c..55ac6f9 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,31 +1,41 @@ - + package="org.r3pek.droiduptime" android:versionCode="8" + android:versionName="1.3.2"> + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + + - + - + + + \ No newline at end of file diff --git a/res/layout/main.xml b/res/layout/main.xml index 17a7e59..c8203f0 100644 --- a/res/layout/main.xml +++ b/res/layout/main.xml @@ -1,38 +1,83 @@ - - + android:layout_width="fill_parent" android:layout_height="fill_parent"> + + - - + + + + + + + + + + + - - - - - - - - - + + + + - - - - - - + + + + + + + + + + - - \ No newline at end of file + + + + \ No newline at end of file diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index 5a7a445..b54c926 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -41,6 +41,9 @@ 7200 Insira o utilizador e a senha no menu configuração - Hostname - Hostname a reportar para o Uptime Project + Nome do telefone + Nome do telefone a reportar para o Uptime Project + Força uma actualização do Uptime no site + Permite que uma aplicação submita o uptime corrente para o site uptimeprj.com + Actualizar diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 2268f8e..df94c65 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -41,6 +41,9 @@ 7200 请设定用户名和密码 - 主机名 - 主机名发送到 Uptime 项目 + 电话名称 + 手机名称发送到系统正常运行时间 + 强制提交系统正常运行时间 + 允许任何应用程序强制提交系统正常运行时间执行时间到 uptimeprj.com 网站 + 更新 diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 4eb13eb..0013211 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -41,6 +41,9 @@ 7200 請設定使用者名稱和密碼 - 主機名 - 主機名發送到 Uptime 項目 + 電話名稱 + 手機名稱發送到系統正常執行時間 + 強制提交系統正常執行時間 + 允許任何套用程式強制提交系統正常執行時間執行時間到 uptimeprj.com 網站 + 更新 diff --git a/res/values/strings.xml b/res/values/strings.xml index 0d86ba9..9959a8c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -41,6 +41,9 @@ 7200 Please setup Username and Password - Hostname - Hostname to send to the Uptime Project + Phone Name + Phone Name to send to the Uptime Project + Force an uptime submission + Allows any application to force the current uptime to be submitted to the uptimeprj.com site + Update diff --git a/src/org/r3pek/droiduptime/DroidUptimeService.java b/src/org/r3pek/droiduptime/DroidUptimeService.java index 228cb1a..5238dfe 100644 --- a/src/org/r3pek/droiduptime/DroidUptimeService.java +++ b/src/org/r3pek/droiduptime/DroidUptimeService.java @@ -1,15 +1,5 @@ package org.r3pek.droiduptime; -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Timer; -import java.util.TimerTask; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; @@ -18,7 +8,10 @@ import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import android.app.Service; +import android.content.BroadcastReceiver; +import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; import android.net.ConnectivityManager; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; @@ -26,6 +19,16 @@ import android.os.IBinder; import android.os.SystemClock; import android.util.Log; +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Timer; +import java.util.TimerTask; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + public class DroidUptimeService extends Service { private Timer timer; private ConfigValues cv; @@ -38,15 +41,23 @@ public class DroidUptimeService extends Service { @Override public void onCreate() { super.onCreate(); - cv = new ConfigValues(getApplicationContext()); + cv = new ConfigValues(this); timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { - @Override public void run() { sendUptime(); } }, 60000, cv.getUpdateInterval() * 1000); + + BroadcastReceiver receiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + sendUptime(); + } + }; + IntentFilter filter = new IntentFilter("org.r3pek.droiduptime.FORCE_UPDATE"); + registerReceiver(receiver, filter, "org.r3pek.droiduptime.permission.FORCE_UPDATE", null); } @Override @@ -55,14 +66,15 @@ public class DroidUptimeService extends Service { if (timer != null) timer.cancel(); } - @SuppressWarnings("static-access") private String getMACAddrMD5() { - WifiManager manager = (WifiManager)getApplicationContext().getSystemService(getApplicationContext().WIFI_SERVICE); + WifiManager manager = (WifiManager)getSystemService(Context.WIFI_SERVICE); WifiInfo info = manager.getConnectionInfo(); try { return MD5.calculateMD5(info.getMacAddress().toLowerCase().replaceAll(":", "")); - } catch (Exception e) { } + } catch (Exception e) { + e.printStackTrace(); + } return ""; } @@ -115,17 +127,16 @@ public class DroidUptimeService extends Service { } } - @SuppressWarnings("static-access") public void sendUptime() { if (cv.getUsername().equals("") || cv.getPassword().equals("")) return; - ConnectivityManager conMngr = (ConnectivityManager)getSystemService(getApplicationContext().CONNECTIVITY_SERVICE); + ConnectivityManager conMngr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); boolean isConnected = false || conMngr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected(); isConnected |= conMngr.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected(); if (!isConnected) return; long uptime = SystemClock.elapsedRealtime() / 1000; - String agent = "DroidUptime-v1.3"; + String agent = "DroidUptime-v1.4"; String cnb = "1"; String mac = getMACAddrMD5(); String hostname = cv.getHostname(); @@ -134,16 +145,15 @@ public class DroidUptimeService extends Service { String distrib = "Android"; String distribContent = "SDK " + android.os.Build.VERSION.RELEASE; distribContent = Base64.encodeToString(distribContent.getBytes(), false); - Log.d("DroidUptime", agent); - Log.d("DroidUptime", cnb); - Log.d("DroidUptime", mac); - Log.d("DroidUptime", machine); - Log.d("DroidUptime", os); - Log.d("DroidUptime", distrib); - Log.d("DroidUptime", distribContent); - Log.d("DroidUptime", cv.getUsername()); - Log.d("DroidUptime", cv.getPassword()); - + /*Log.d("DroidUptime", URLEncoder.encode("http://update.uptimeprj.com/update.php?username=" + cv.getUsername() + + "&pass=" + cv.getPassword() + + "&cnb=" + cnb + + "&mac=" + mac + + "&machine=" + machine + + "&os="+ os + + "&uptime=" +String.valueOf(uptime) + + "&distrib=" + distrib + + "&distribcontent=" +distribContent));*/ try { DefaultHttpClient httpclient = new DefaultHttpClient(); HttpPost post = new HttpPost("http://update.uptimeprj.com/update.php?username=" + cv.getUsername()); @@ -161,7 +171,9 @@ public class DroidUptimeService extends Service { data.add(new BasicNameValuePair("distribcontent", distribContent)); post.setEntity(new UrlEncodedFormEntity(data, HTTP.UTF_8)); + Log.d("DroidUptime", "Updating uptime"); httpclient.execute(post); + Log.d("DroidUptime", "Done with updating"); cv.setLastUpdate(System.currentTimeMillis()); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/org/r3pek/droiduptime/Main.java b/src/org/r3pek/droiduptime/Main.java index 1d9038b..b011363 100644 --- a/src/org/r3pek/droiduptime/Main.java +++ b/src/org/r3pek/droiduptime/Main.java @@ -1,7 +1,5 @@ package org.r3pek.droiduptime; -import java.util.List; - import android.app.Activity; import android.app.ActivityManager; import android.app.AlertDialog; @@ -22,12 +20,15 @@ import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; +import java.util.List; + public class Main extends Activity { private static final int MENU_ABOUT = 0; private static final int MENU_SETUP = 1; private static final int DIALOG_ABOUT = 0; private Button btnStartStopService; + private Button btnUpdate; private TextView tvStatus; private TextView tvUptime; private TextView tvLastUpdate; @@ -49,6 +50,7 @@ public class Main extends Activity { cv = new ConfigValues(getApplicationContext()); btnStartStopService = (Button)findViewById(R.id.btnStartStopService); + btnUpdate = (Button)findViewById(R.id.btnUpdate); tvStatus = (TextView)findViewById(R.id.tvStatus); tvUptime = (TextView)findViewById(R.id.tvUptime); tvLastUpdate = (TextView)findViewById(R.id.tvLastUpdate); @@ -65,6 +67,14 @@ public class Main extends Activity { updateStatus(); } }); + + btnUpdate.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + Intent i = new Intent("org.r3pek.droiduptime.FORCE_UPDATE"); + sendBroadcast(i); + } + }); } private void startThread() {