bug fix on screen on/off issue

This commit is contained in:
HappyZ 2017-02-02 10:19:23 -08:00
parent 5840307c6f
commit 2c1d7319f1
4 changed files with 153 additions and 80 deletions

View File

@ -29,7 +29,7 @@ import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.Locale; import java.util.Locale;
public class MainActivity extends Activity { class MainActivity extends Activity {
// tmp fixed // tmp fixed
protected static final String remoteIP = "128.111.68.220"; protected static final String remoteIP = "128.111.68.220";
protected static final String remoteMAC = "18:03:73:c8:86:52"; protected static final String remoteMAC = "18:03:73:c8:86:52";
@ -57,8 +57,6 @@ public class MainActivity extends Activity {
private Button btn_startTransmit, btn_startReceive; private Button btn_startTransmit, btn_startReceive;
private Button btn_setByte2send, btn_setRepeatTimes, btn_setTCPDumpInterface, private Button btn_setByte2send, btn_setRepeatTimes, btn_setTCPDumpInterface,
btn_clearStatus, btn_setLogFreq, btn_setOthers; btn_clearStatus, btn_setLogFreq, btn_setOthers;
private CharSequence[] existedItems;
private CharSequence[] existedItemsThrpt;
private WifiManager wm; private WifiManager wm;
private Intent intentSSLogger; private Intent intentSSLogger;
protected static int coreNum = 1; protected static int coreNum = 1;
@ -73,7 +71,7 @@ public class MainActivity extends Activity {
protected static String RXportNum = "4444"; protected static String RXportNum = "4444";
protected static String outFolderPath; protected static String outFolderPath;
protected static String btn_click_time; protected static String btn_click_time;
protected static String tcpdumpInterface = "wlan0"; protected static String tcpdumpInterface = "wlan0"; // default "wlan0"
protected static String binary_TX_Normal; protected static String binary_TX_Normal;
protected static String binary_TX_NormalUDP; protected static String binary_TX_NormalUDP;
protected static String binary_TX_Sendfile; protected static String binary_TX_Sendfile;
@ -173,10 +171,10 @@ public class MainActivity extends Activity {
} catch (IOException | InterruptedException e) { } catch (IOException | InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
} }
Toast.makeText(this, "Created a 2Gbits big file", Toast.LENGTH_LONG).show(); Toast.makeText(this, R.string.txt_created_bigfile, Toast.LENGTH_LONG).show();
} }
if (!missingFiles.equals("")) { if (!missingFiles.equals("")) {
final String mFiles = "Failed to find following files:\n" + missingFiles; final String mFiles = getString(R.string.err_filecheck_failed) + missingFiles;
myHandler.post(new Runnable() { myHandler.post(new Runnable() {
@Override @Override
public void run() { public void run() {
@ -202,7 +200,8 @@ public class MainActivity extends Activity {
final ArrayList<Integer> selectedItems = new ArrayList<>(); final ArrayList<Integer> selectedItems = new ArrayList<>();
AlertDialog.Builder adb = new AlertDialog.Builder(MainActivity.this); AlertDialog.Builder adb = new AlertDialog.Builder(MainActivity.this);
adb.setMultiChoiceItems(existedItems, null, new DialogInterface.OnMultiChoiceClickListener() { adb.setMultiChoiceItems(Utilities.existedItems, null,
new DialogInterface.OnMultiChoiceClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) { public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (which == 5 || (flagRecv && which == 2) || (mVersion < 21 && which == 3)) { if (which == 5 || (flagRecv && which == 2) || (mVersion < 21 && which == 3)) {
@ -217,18 +216,19 @@ public class MainActivity extends Activity {
} }
}); });
adb.setPositiveButton("Continue", new DialogInterface.OnClickListener() { adb.setPositiveButton(R.string.txt_continue, new DialogInterface.OnClickListener() {
// Process su = null; // Process su = null;
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
if (selectedItems.size() < 1) { if (selectedItems.size() < 1) {
Toast.makeText(MainActivity.this, "Nothing is selected", Toast.LENGTH_SHORT) Toast.makeText(MainActivity.this, R.string.err_no_selection, Toast.LENGTH_SHORT)
.show(); .show();
return; return;
} }
final ArrayList<Integer> selectedItemsThrpt = new ArrayList<>(); final ArrayList<Integer> selectedItemsThrpt = new ArrayList<>();
AlertDialog.Builder adb = new AlertDialog.Builder(MainActivity.this); AlertDialog.Builder adb = new AlertDialog.Builder(MainActivity.this);
adb.setMultiChoiceItems(existedItemsThrpt, null, new DialogInterface.OnMultiChoiceClickListener() { adb.setMultiChoiceItems(Utilities.existedItemsThrpt, null,
new DialogInterface.OnMultiChoiceClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) { public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked) { if (isChecked) {
@ -238,45 +238,35 @@ public class MainActivity extends Activity {
} }
} }
}); });
adb.setPositiveButton("Go!", new DialogInterface.OnClickListener() { adb.setPositiveButton(R.string.txt_go, new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
if (selectedItemsThrpt.size() < 1) { if (selectedItemsThrpt.size() < 1) {
Toast.makeText( Toast.makeText(
MainActivity.this, "Nothing is selected", Toast.LENGTH_SHORT) MainActivity.this,
.show(); R.string.err_no_selection,
Toast.LENGTH_SHORT).show();
return; return;
} }
if (isVerbose) { if (isVerbose) {
Log.d(TAG, "selected variations " + selectedItemsThrpt); Log.d(TAG, "selected variations " + selectedItemsThrpt);
} }
Utilities.estimateTime( Utilities.estimateTime(
repeatCounts, selectedItems.size(), bytes2send, selectedItemsThrpt); repeatCounts, selectedItems.size(), bytes2send, selectedItemsThrpt);
// power management
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
final PowerManager.WakeLock wakelock = powerManager.newWakeLock(
PowerManager.PARTIAL_WAKE_LOCK, "MyWakelockTag");
new Thread(new Runnable() { new Thread(new Runnable() {
@Override @Override
public void run() { public void run() {
String[] commd = new String[3]; String[] commd = new String[3];
commd[0] = "su"; commd[0] = "su";
commd[1] = "&&"; commd[1] = "&&";
wakelock.acquire();
// change screen brightness to 0 // change screen brightness to 0
// Settings.System.putInt(MainActivity.this.getContentResolver(), Utilities.switchScreenStatus();
// Settings.System.SCREEN_BRIGHTNESS, 0);
final WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = 0.0f;// 100 / 100.0f;
try {
Runtime.getRuntime().exec(
"su -c echo 0 > /sys/class/lcd/panel/lcd_power")
.waitFor();
} catch (InterruptedException | IOException e) {
e.printStackTrace();
}
myHandler.post(new Runnable() { myHandler.post(new Runnable() {
@Override @Override
public void run() { public void run() {
@ -284,6 +274,7 @@ public class MainActivity extends Activity {
// getWindow().setAttributes(lp); // getWindow().setAttributes(lp);
} }
}); });
// prepare // prepare
try { try {
killAllBinaries(); killAllBinaries();
@ -311,15 +302,17 @@ public class MainActivity extends Activity {
} catch (InterruptedException | IOException e) { } catch (InterruptedException | IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
// start iteration // start iteration
for (int k = 0; k < selectedItemsThrpt.size(); ++k) { for (int k = 0; k < selectedItemsThrpt.size(); ++k) {
int myI = selectedItemsThrpt.get(k); int myI = selectedItemsThrpt.get(k);
currentBandwidth = Utilities.findCorrespondingThrpt(myI); currentBandwidth = Utilities.findCorrespondingThrpt(myI);
// RXportNum = Integer.toString(4445 - myI + 24);
if (isVerbose) { if (isVerbose) {
Log.d(TAG, "bandwidth is set to " + currentBandwidth Log.d(TAG, "bandwidth is set to " + currentBandwidth
+ "\nRXportNum is set to " + RXportNum); + "\nRXportNum is set to " + RXportNum);
} }
// start // start
try { try {
commd[2] = "cd " + outFolderPath commd[2] = "cd " + outFolderPath
@ -328,11 +321,12 @@ public class MainActivity extends Activity {
commd[2] = "mkdir -p"; commd[2] = "mkdir -p";
for (int i = 0; i < selectedItems.size(); ++i) { for (int i = 0; i < selectedItems.size(); ++i) {
commd[2] += " " + outFolderPath + "/" commd[2] += " " + outFolderPath + "/"
+ existedItems[selectedItems.get(i)]; + Utilities.existedItems[selectedItems.get(i)];
} }
Log.d(TAG, "commd: " + commd[2]);
Runtime.getRuntime().exec(commd).waitFor(); Runtime.getRuntime().exec(commd).waitFor();
Thread.sleep(1000); Thread.sleep(1000);
// start repeating // start repeating
int waitTimeSec = 0; int waitTimeSec = 0;
for (int i = 0; i < repeatCounts; ++i) { for (int i = 0; i < repeatCounts; ++i) {
@ -460,10 +454,10 @@ public class MainActivity extends Activity {
Thread.sleep(Math.abs(waitTimeSec*1000 - UDPfinishTime)); Thread.sleep(Math.abs(waitTimeSec*1000 - UDPfinishTime));
} }
commd[2] = "cd " + outFolderPath + " && mv *" + btn_click_time commd[2] = "cd " + outFolderPath + " && mv *" + btn_click_time
+ "* " + existedItems[selectedItems.get(j)] + "/"; + "* " + Utilities.existedItems[selectedItems.get(j)] + "/";
Runtime.getRuntime().exec(commd).waitFor(); Runtime.getRuntime().exec(commd).waitFor();
Log.d(TAG, "Finished " + (currentBandwidth / 1000000.0) + "Mbps, " Log.d(TAG, "Finished " + (currentBandwidth / 1000000.0) + "Mbps, "
+ i + "th repeat on " + existedItems[selectedItems.get(j)] + (i + 1) + "th repeat on " + Utilities.existedItems[selectedItems.get(j)]
+ ", t="+reportedFinishTime+"ms"); + ", t="+reportedFinishTime+"ms");
Thread.sleep(5000); Thread.sleep(5000);
} }
@ -471,10 +465,10 @@ public class MainActivity extends Activity {
// parse and zip it // parse and zip it
for (int i = 0; i < selectedItems.size(); ++i) { for (int i = 0; i < selectedItems.size(); ++i) {
if (Utilities.parseCPUforFolder( if (Utilities.parseCPUforFolder(
(String) existedItems[selectedItems.get(i)])) { (String) Utilities.existedItems[selectedItems.get(i)])) {
String tarName = ( String tarName = (
(flagRecv) ? "download_" : "upload_") (flagRecv) ? "download_" : "upload_")
+ existedItems[selectedItems.get(i)] + "_" + Utilities.existedItems[selectedItems.get(i)] + "_"
+ (bytes2send / 1024) + "KB_" + (bytes2send / 1024) + "KB_"
+ repeatCounts + "repeats_thrpt_" + repeatCounts + "repeats_thrpt_"
+ (currentBandwidth == -1 ? "Unlimited" : + (currentBandwidth == -1 ? "Unlimited" :
@ -484,13 +478,13 @@ public class MainActivity extends Activity {
.format(new Date())) .format(new Date()))
+ ".tar.gz"; + ".tar.gz";
commd[2] = "cd " + outFolderPath + "/" commd[2] = "cd " + outFolderPath + "/"
+ existedItems[selectedItems.get(i)] + Utilities.existedItems[selectedItems.get(i)]
+ " && busybox tar -czf ../" + " && busybox tar -czf ../"
+ tarName + " *"; + tarName + " *";
Runtime.getRuntime().exec(commd).waitFor(); Runtime.getRuntime().exec(commd).waitFor();
} else { } else {
final CharSequence failedFolderName = final CharSequence failedFolderName =
existedItems[selectedItems.get(i)]; Utilities.existedItems[selectedItems.get(i)];
myHandler.post(new Runnable() { myHandler.post(new Runnable() {
@Override @Override
public void run() { public void run() {
@ -506,23 +500,13 @@ public class MainActivity extends Activity {
} }
} }
// change screen brightness back // change screen brightness back
wakelock.release(); Utilities.switchScreenStatus();
// Settings.System.putInt(MainActivity.this.getContentResolver(),
// Settings.System.SCREEN_BRIGHTNESS, 200);
lp.screenBrightness = 50;// 50 / 100.0f;
try {
Runtime.getRuntime().exec(
"su -c echo 1 > /sys/class/lcd/panel/lcd_power")
.waitFor();
} catch (InterruptedException | IOException e) {
e.printStackTrace();
}
// msg indicating all done // msg indicating all done
myHandler.post(new Runnable() { myHandler.post(new Runnable() {
@Override @Override
public void run() { public void run() {
txt_results.append("All Done\n"); txt_results.append("All Done\n");
getWindow().setAttributes(lp);
} }
}); });
} }
@ -545,7 +529,7 @@ public class MainActivity extends Activity {
// must have root privilege in order to run // must have root privilege in order to run
try { try {
Runtime.getRuntime().exec("su"); Runtime.getRuntime().exec("su");
Toast.makeText(MainActivity.this, "Remember to silent SuperUser", Toast.LENGTH_SHORT) Toast.makeText(MainActivity.this, R.string.txt_silentsu, Toast.LENGTH_SHORT)
.show(); .show();
} catch (Throwable e) { } catch (Throwable e) {
Toast.makeText(this, R.string.warn_root, Toast.LENGTH_LONG).show(); Toast.makeText(this, R.string.warn_root, Toast.LENGTH_LONG).show();
@ -556,11 +540,11 @@ public class MainActivity extends Activity {
// permission error // permission error
if (!Utilities.canWriteOnExternalStorage()) { if (!Utilities.canWriteOnExternalStorage()) {
Log.d(TAG, "Permission error: cannot write on external storage."); Log.d(TAG, getString(R.string.err_writepermission));
MainActivity.myHandler.post(new Runnable() { MainActivity.myHandler.post(new Runnable() {
@Override @Override
public void run() { public void run() {
MainActivity.txt_results.append("Can't write on external storage!\n"); MainActivity.txt_results.append(getString(R.string.err_writepermission) + "\n");
} }
}); });
} }
@ -572,26 +556,9 @@ public class MainActivity extends Activity {
// sslogger intent // sslogger intent
intentSSLogger = new Intent(this, SSLogger.class); intentSSLogger = new Intent(this, SSLogger.class);
// grab WiFi service and check if wifi is enabled
wm = (WifiManager) this.getSystemService(WIFI_SERVICE);
isUsingWifi = wm.isWifiEnabled();
Utilities.getSelfIdentity(tcpdumpInterface, true); Utilities.getSelfIdentity(tcpdumpInterface, true);
// predefined selections
existedItems = new CharSequence[] {
"Socket_Normal", "Socket_NormalUDP", "Socket_Sendfile",
"Socket_Splice", "RawSocket_Normal"
};
existedItemsThrpt = new CharSequence[]{
"800Mbps", "760Mbps", "720Mbps", "680Mbps", "640Mbps", "600Mbps", "560Mbps",// 0-6
"520Mbps", "480Mbps", "440Mbps", "400Mbps", "360Mbps", "320Mbps", "280Mbps",// 7-13
"240Mbps", "200Mbps", "160Mbps", "120Mbps", "80Mbps", // 14-18
"76Mbps", "72Mbps", "68Mbps", "64Mbps", "60Mbps", "56Mbps", "52Mbps", // 19-25
"48Mbps", "44Mbps", "40Mbps", "36Mbps", "32Mbps", "28Mbps", "24Mbps", // 26-32
"20Mbps", "16Mbps", "12Mbps", "8Mbps", // 33-36
"6Mbps", "5Mbps", "4Mbps", "3Mbps", "2Mbps", "1Mbps", // 37-42
"800Kbps", "600Kbps", "400Kbps", "200Kbps", // 43-46
"Unlimited", // 47
};
// binary executables to run // binary executables to run
binary_TX_Normal = "client_send_normaltcp"; binary_TX_Normal = "client_send_normaltcp";
binary_TX_NormalUDP = "client_send_normaludp"; binary_TX_NormalUDP = "client_send_normaludp";
@ -602,6 +569,7 @@ public class MainActivity extends Activity {
binary_RX_NormalUDP = "client_recv_normaludp"; binary_RX_NormalUDP = "client_recv_normaludp";
binary_RX_Splice = "client_recv_normaltcp_splice"; binary_RX_Splice = "client_recv_normaltcp_splice";
binary_RX_RawNormal = "client_recv_bypassl3"; binary_RX_RawNormal = "client_recv_bypassl3";
// get number of cores // get number of cores
coreNum = Utilities.getNumCores(); coreNum = Utilities.getNumCores();
@ -609,7 +577,7 @@ public class MainActivity extends Activity {
outFolderPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/SSLogger"; outFolderPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/SSLogger";
if (!Utilities.dirExist(outFolderPath, true)) { if (!Utilities.dirExist(outFolderPath, true)) {
// checked and cannot create this folder // checked and cannot create this folder
Toast.makeText(this, "Cannot create folder!!!", Toast.LENGTH_LONG).show(); Toast.makeText(this, R.string.err_mkdir_failed, Toast.LENGTH_LONG).show();
} }
// elements in the page // elements in the page
@ -623,7 +591,12 @@ public class MainActivity extends Activity {
btn_setLogFreq = (Button) findViewById(R.id.btn_setLogFreq); btn_setLogFreq = (Button) findViewById(R.id.btn_setLogFreq);
btn_clearStatus = (Button) findViewById(R.id.btn_clearStatus); btn_clearStatus = (Button) findViewById(R.id.btn_clearStatus);
txt_results.append(isUsingWifi?getString(R.string.stat_wifion):getString(R.string.stat_wifioff)); // grab WiFi service and check if wifi is enabled
wm = (WifiManager) this.getSystemService(WIFI_SERVICE);
isUsingWifi = wm.isWifiEnabled();
txt_results.append(
(isUsingWifi ? getString(R.string.stat_wifion) : getString(R.string.stat_wifioff)));
// click listener // click listener
btn_startTransmit.setOnClickListener(new View.OnClickListener() { btn_startTransmit.setOnClickListener(new View.OnClickListener() {
@Override @Override
@ -683,6 +656,7 @@ public class MainActivity extends Activity {
mDialog.create().show(); mDialog.create().show();
} }
}); });
btn_setRepeatTimes.setOnClickListener(new View.OnClickListener() { btn_setRepeatTimes.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -709,6 +683,7 @@ public class MainActivity extends Activity {
mDialog.create().show(); mDialog.create().show();
} }
}); });
btn_setTCPDumpInterface.setOnClickListener(new View.OnClickListener() { btn_setTCPDumpInterface.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -765,6 +740,7 @@ public class MainActivity extends Activity {
mDialog.create().show(); mDialog.create().show();
} }
}); });
btn_setOthers.setOnClickListener(new View.OnClickListener() { btn_setOthers.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -845,6 +821,7 @@ public class MainActivity extends Activity {
adb.create().show(); adb.create().show();
} }
}); });
btn_clearStatus.setOnClickListener(new View.OnClickListener() { btn_clearStatus.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -856,6 +833,7 @@ public class MainActivity extends Activity {
}); });
} }
}); });
btn_setLogFreq.setOnClickListener(new View.OnClickListener() { btn_setLogFreq.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {

View File

@ -22,7 +22,7 @@ import java.util.ArrayList;
* Updated by yanzi on 01/27/2017 * Updated by yanzi on 01/27/2017
* support multiple cores now * support multiple cores now
*/ */
public class SSLogger extends Service { class SSLogger extends Service {
private static final String TAG = "SSLogger"; private static final String TAG = "SSLogger";
private boolean isRunning = false; private boolean isRunning = false;
private boolean isRunningPollingThread = false; private boolean isRunningPollingThread = false;

View File

@ -3,6 +3,7 @@ package edu.ucsb.cs.sandlab.offloadingdemo;
import android.Manifest; import android.Manifest;
import android.app.Activity; import android.app.Activity;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Environment; import android.os.Environment;
import android.support.v4.app.ActivityCompat; import android.support.v4.app.ActivityCompat;
import android.util.Log; import android.util.Log;
@ -26,13 +27,34 @@ import java.util.Locale;
* Created by yanzi on 10/1/15. * Created by yanzi on 10/1/15.
* Updated by yanzi on 01/27/2017 * Updated by yanzi on 01/27/2017
*/ */
public class Utilities { class Utilities {
private static final String TAG = "Utilities"; private static final String TAG = "Utilities";
// variables // variables
static int oneMB = 1048576; static int oneMB = 1048576;
static String myInetIP = null; static String myInetIP = null;
static String myMAC = null; static String myMAC = null;
private static boolean screenIsOff = false;
private static int screenBrightness = 1;
// selections
// predefined selections
static CharSequence[] existedItems = new CharSequence[] {
"Socket_Normal", "Socket_NormalUDP", "Socket_Sendfile", "Socket_Splice", "RawSocket_Normal"
};
static CharSequence[] existedItemsThrpt = new CharSequence[]{
"800Mbps", "760Mbps", "720Mbps", "680Mbps", "640Mbps", "600Mbps", "560Mbps",// 0-6
"520Mbps", "480Mbps", "440Mbps", "400Mbps", "360Mbps", "320Mbps", "280Mbps",// 7-13
"240Mbps", "200Mbps", "160Mbps", "120Mbps", "80Mbps", // 14-18
"76Mbps", "72Mbps", "68Mbps", "64Mbps", "60Mbps", "56Mbps", "52Mbps", // 19-25
"48Mbps", "44Mbps", "40Mbps", "36Mbps", "32Mbps", "28Mbps", "24Mbps", // 26-32
"20Mbps", "16Mbps", "12Mbps", "8Mbps", // 33-36
"6Mbps", "5Mbps", "4Mbps", "3Mbps", "2Mbps", "1Mbps", // 37-42
"800Kbps", "600Kbps", "400Kbps", "200Kbps", // 43-46
"Unlimited", // 47
};
// Storage Permissions // Storage Permissions
private static final int REQUEST_EXTERNAL_STORAGE = 1; private static final int REQUEST_EXTERNAL_STORAGE = 1;
@ -42,6 +64,60 @@ public class Utilities {
}; };
/**
* switch the screen on/off
*/
static void switchScreenStatus() {
String fp_brightness;
String device_name = getDeviceName();
Log.d(TAG, "device name: " + device_name);
if (device_name.equals("shamu")) {
fp_brightness = "/sys/class/leds/lcd-backlight/brightness";
} else {
fp_brightness = "/sys/class/lcd/panel/lcd_power";
}
if (!screenIsOff) {
Process proc;
String stdout;
BufferedReader stdout_buf;
try {
proc = Runtime.getRuntime().exec(
"su -c cat " + fp_brightness);
proc.waitFor();
stdout_buf = new BufferedReader(new InputStreamReader(
proc.getInputStream()));
stdout = stdout_buf.readLine();
if (stdout != null) {
screenBrightness = Integer.parseInt(stdout);
}
} catch (Exception e) {
e.printStackTrace();
}
}
Log.d(TAG, "original screen brightness: " + screenBrightness);
try {
Runtime.getRuntime().exec(
"su -c echo " + (screenIsOff ? screenBrightness : "0") + " > " + fp_brightness)
.waitFor();
} catch (InterruptedException | IOException e) {
e.printStackTrace();
}
screenIsOff = !screenIsOff;
}
/**
* get the name of device (product name)
* @return String
*/
static String getDeviceName() {
return Build.PRODUCT;
}
/** /**
* Android 6.0 + required * Android 6.0 + required
@ -74,6 +150,7 @@ public class Utilities {
return Environment.MEDIA_MOUNTED.equals(state); return Environment.MEDIA_MOUNTED.equals(state);
} }
/** /**
* get the ip and mac addresses * get the ip and mac addresses
*/ */
@ -150,6 +227,7 @@ public class Utilities {
Log.d(TAG, "myIP: " + myInetIP); Log.d(TAG, "myIP: " + myInetIP);
} }
/** /**
* parse binary file output * parse binary file output
* @param output: * @param output:
@ -163,6 +241,7 @@ public class Utilities {
return -1; return -1;
} }
/** /**
* get the number of cores of device * get the number of cores of device
* @return int > 0 * @return int > 0
@ -204,6 +283,7 @@ public class Utilities {
} }
} }
/** /**
* get pid of the binary process * get pid of the binary process
* @param inName the name of process * @param inName the name of process
@ -244,6 +324,7 @@ public class Utilities {
return -1; return -1;
} }
/** /**
* check if a file exists * check if a file exists
* @param myFile: * @param myFile:
@ -254,6 +335,7 @@ public class Utilities {
return file.exists() && file.isFile(); return file.exists() && file.isFile();
} }
/** /**
* check if a directory exists * check if a directory exists
* @param myDirectory: * @param myDirectory:
@ -265,6 +347,7 @@ public class Utilities {
return (file.exists() && file.isDirectory()) || (createIfNot && file.mkdirs()); return (file.exists() && file.isDirectory()) || (createIfNot && file.mkdirs());
} }
/** /**
* post parse CPU for a folder * post parse CPU for a folder
* @param folderName: * @param folderName:
@ -424,12 +507,14 @@ public class Utilities {
return (800 - ((myI - 43) * 200)) * 1000; return (800 - ((myI - 43) * 200)) * 1000;
} else { // default unlimited } else { // default unlimited
if (MainActivity.isLocal) if (MainActivity.isLocal)
return 8 * 100000000; // for loopback, the unlimited shouldn't be really unlimited.. // for loopback, the unlimited shouldn't be really unlimited..
return 8 * 100000000;
else else
return -1; return -1;
} }
} }
/** /**
* Estimate how much time left * Estimate how much time left
* @param numRepeats: * @param numRepeats:
@ -444,10 +529,12 @@ public class Utilities {
if (MainActivity.isLocal) { if (MainActivity.isLocal) {
for (int k = 0; k < selectedItemsThrpt.size(); ++k) for (int k = 0; k < selectedItemsThrpt.size(); ++k)
time += (Math.max(totalBytes / findCorrespondingThrpt(selectedItemsThrpt.get(k)) + 20, 20)); time += (Math.max(totalBytes / findCorrespondingThrpt(selectedItemsThrpt.get(k))
+ 20, 20));
} else { } else {
for (int k = 0; k < selectedItemsThrpt.size(); ++k) for (int k = 0; k < selectedItemsThrpt.size(); ++k)
time += (Math.max(totalBytes / findCorrespondingThrpt(selectedItemsThrpt.get(k)) + 20, 60)); time += (Math.max(totalBytes / findCorrespondingThrpt(selectedItemsThrpt.get(k))
+ 20, 60));
} }
time = (time + 15) * numSelectedItems * numRepeats * 1000; time = (time + 15) * numSelectedItems * numRepeats * 1000;

View File

@ -10,4 +10,12 @@
<string name="warn_root">Not rooted!! Must be rooted!</string> <string name="warn_root">Not rooted!! Must be rooted!</string>
<string name="stat_wifion">WiFi is ON!\n</string> <string name="stat_wifion">WiFi is ON!\n</string>
<string name="stat_wifioff">WiFi is NOT On!\n</string> <string name="stat_wifioff">WiFi is NOT On!\n</string>
<string name="txt_silentsu">Remember to silent SuperUser</string>
<string name="err_writepermission">Error: cannot write to external storage.</string>
<string name="err_mkdir_failed">Error: cannot create folder!!!</string>
<string name="txt_created_bigfile">Created a 2GB big file</string>
<string name="err_filecheck_failed">Failed to find following files:\n</string>
<string name="err_no_selection">Nothing is selected</string>
<string name="txt_go">Go!</string>
<string name="txt_continue">Continue</string>
</resources> </resources>