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() {