提交 9e5bc2a5 编写于 作者: A andrewleo

Added: #74 Add a new option in Settings: keep screen awake or not

上级 29e11a22
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.netease.qa.emmagee"
android:versionCode="32"
android:versionName="2.4.1" >
<uses-sdk android:minSdkVersion="8" />
<application android:name=".utils.MyApplication"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
<application
android:name=".utils.MyApplication"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar" >
<activity
android:name=".activity.MainPageActivity"
android:configChanges="orientation|keyboardHidden"
android:launchMode="singleInstance"
android:screenOrientation="portrait">
android:name=".activity.MainPageActivity"
android:configChanges="orientation|keyboardHidden"
android:launchMode="singleInstance"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activity.SettingsActivity"
android:launchMode="singleInstance"
android:screenOrientation="portrait"
android:theme="@style/customTheme" />
<activity
android:name=".activity.AboutActivity"
android:screenOrientation="portrait" />
<activity
android:name=".activity.MailSettingsActivity"
android:screenOrientation="portrait" />
<activity android:name=".activity.SettingsActivity"
android:theme="@style/customTheme"
android:screenOrientation="portrait"/>
<activity android:name=".activity.AboutActivity"
android:screenOrientation="portrait"/>
<activity android:name=".activity.MailSettingsActivity"
android:screenOrientation="portrait"/>
<service android:name="com.netease.qa.emmagee.service.EmmageeService"/>
<service android:name="com.netease.qa.emmagee.service.EmmageeService" />
</application>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_LOGS"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
</manifest>
\ No newline at end of file
......@@ -137,6 +137,33 @@
android:paddingLeft="@dimen/image_padding"
android:paddingRight="@dimen/image_padding" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/wake_lock_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="@dimen/layout_vertical_margin_small" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/wake_lock"
android:textColor="@color/black"
android:textSize="@dimen/text_size" />
<CheckBox
android:id="@+id/wake_lock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="@drawable/custom_checkbox"
android:button="@null"
android:checked="false"
android:paddingLeft="@dimen/image_padding"
android:paddingRight="@dimen/image_padding" />
</RelativeLayout>
<LinearLayout
android:id="@+id/heap_item"
......
......@@ -89,4 +89,7 @@
<string name="update_list">列表更新成功</string>
<string name="nougat_warning">由于Google的限制,Emmagee无法支持7.0及以上版本</string>
<string name="wake_lock">屏幕保持常亮</string>
<string name="wake_lock_on_toast">WakeLock已开启,屏幕会保持常亮</string>
</resources>
......@@ -88,4 +88,6 @@
<string name="update_list">Update List Successfully</string>
<string name="nougat_warning">Don\'t support 7.0 and above while Google has restricted access to shell commands and file system</string>
<string name="wake_lock">WakeLock</string>
<string name="wake_lock_on_toast">WakeLock is on,screen will stay awake</string>
</resources>
......@@ -23,12 +23,15 @@ import com.netease.qa.emmagee.R;
import com.netease.qa.emmagee.service.EmmageeService;
import com.netease.qa.emmagee.utils.ProcessInfo;
import com.netease.qa.emmagee.utils.Programe;
import com.netease.qa.emmagee.utils.Settings;
import com.netease.qa.emmagee.utils.WakeLockHelper;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
......@@ -83,6 +86,7 @@ public class MainPageActivity extends Activity {
setContentView(R.layout.mainpage);
initTitleLayout();
loadSettings();
processInfo = new ProcessInfo();
btnTest.setOnClickListener(new OnClickListener() {
@Override
......@@ -177,6 +181,15 @@ public class MainPageActivity extends Activity {
btnTest = (Button) findViewById(R.id.test);
layBtnSet = (LinearLayout) findViewById(R.id.lay_btn_set);
}
private void loadSettings() {
SharedPreferences preferences = Settings.getDefaultSharedPreferences(this);
boolean wakeLock = preferences.getBoolean(Settings.KEY_WACK_LOCK, false);
if (wakeLock) {
Toast.makeText(this, R.string.wake_lock_on_toast, Toast.LENGTH_LONG).show();
Settings.getDefaultWakeLock(this).acquireFullWakeLock();
}
}
/**
* customized BroadcastReceiver
......@@ -248,8 +261,7 @@ public class MainPageActivity extends Activity {
Log.d(LOG_TAG, "stop service");
stopService(monitorService);
}
Log.d(LOG_TAG, "exit Emmagee");
finish();
System.exit(0);
}
return true;
}
......@@ -349,7 +361,7 @@ public class MainPageActivity extends Activity {
@Override
protected void onDestroy() {
unregisterReceiver(receiver);
super.onDestroy();
unregisterReceiver(receiver);
}
}
......@@ -20,6 +20,7 @@ import java.io.DataOutputStream;
import com.netease.qa.emmagee.R;
import com.netease.qa.emmagee.utils.Settings;
import com.netease.qa.emmagee.utils.WakeLockHelper;
import android.app.Activity;
import android.content.Intent;
......@@ -50,11 +51,13 @@ public class SettingsActivity extends Activity {
private CheckBox chkFloat;
private CheckBox chkRoot;
private CheckBox chkAutoStop;
private CheckBox chkWakeLock;
private TextView tvTime;
private LinearLayout about;
private LinearLayout mailSettings;
private SharedPreferences preferences;
private WakeLockHelper wakeLockHelper;
@Override
public void onCreate(Bundle savedInstanceState) {
......@@ -63,9 +66,12 @@ public class SettingsActivity extends Activity {
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.settings);
wakeLockHelper = Settings.getDefaultWakeLock(this);
chkFloat = (CheckBox) findViewById(R.id.floating);
chkRoot = (CheckBox) findViewById(R.id.is_root);
chkAutoStop = (CheckBox) findViewById(R.id.auto_stop);
chkWakeLock = (CheckBox) findViewById(R.id.wake_lock);
tvTime = (TextView) findViewById(R.id.time);
about = (LinearLayout) findViewById(R.id.about);
mailSettings = (LinearLayout) findViewById(R.id.mail_settings);
......@@ -73,9 +79,9 @@ public class SettingsActivity extends Activity {
ImageView btnSave = (ImageView) findViewById(R.id.btn_set);
RelativeLayout floatingItem = (RelativeLayout) findViewById(R.id.floating_item);
RelativeLayout autoStopItem = (RelativeLayout) findViewById(R.id.auto_stop_item);
RelativeLayout wakeLockItem = (RelativeLayout) findViewById(R.id.wake_lock_item);
LinearLayout layGoBack = (LinearLayout) findViewById(R.id.lay_go_back);
LinearLayout layHeapItem = (LinearLayout) findViewById(R.id.heap_item);
btnSave.setVisibility(ImageView.INVISIBLE);
......@@ -84,11 +90,13 @@ public class SettingsActivity extends Activity {
boolean isfloat = preferences.getBoolean(Settings.KEY_ISFLOAT, true);
boolean isRoot = preferences.getBoolean(Settings.KEY_ROOT, false);
boolean autoStop = preferences.getBoolean(Settings.KEY_AUTO_STOP, true);
boolean wakeLock = preferences.getBoolean(Settings.KEY_WACK_LOCK, false);
tvTime.setText(String.valueOf(interval));
chkFloat.setChecked(isfloat);
chkRoot.setChecked(isRoot);
chkAutoStop.setChecked(autoStop);
chkWakeLock.setChecked(wakeLock);
timeBar.setProgress(interval);
timeBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
......@@ -155,6 +163,20 @@ public class SettingsActivity extends Activity {
}
});
wakeLockItem.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
boolean isChecked = chkWakeLock.isChecked();
chkWakeLock.setChecked(!isChecked);
preferences.edit().putBoolean(Settings.KEY_WACK_LOCK, !isChecked).commit();
if (chkWakeLock.isChecked()) {
wakeLockHelper.acquireFullWakeLock();
} else {
wakeLockHelper.releaseWakeLock();
}
}
});
// get root permission
layHeapItem.setOnClickListener(new OnClickListener() {
@Override
......@@ -181,11 +203,6 @@ public class SettingsActivity extends Activity {
});
}
@Override
public void finish() {
super.finish();
}
@Override
protected void onDestroy() {
super.onDestroy();
......
......@@ -289,9 +289,6 @@ public class EmmageeService extends Service {
// 在4.0以下的低版本上/sdcard连接至/mnt/sdcard,而4.0以上版本则连接至/storage/sdcard0,所以有外接sdcard,/sdcard路径一定存在
resultFilePath = "/sdcard" + File.separator + "Emmagee_TestResult_"
+ mDateTime + ".csv";
// resultFilePath =
// android.os.Environment.getExternalStorageDirectory() +
// File.separator + "Emmagee_TestResult_" + mDateTime + ".csv";
} else {
resultFilePath = getBaseContext().getFilesDir().getPath()
+ File.separator + "Emmagee_TestResult_" + mDateTime
......
......@@ -20,9 +20,18 @@ public final class Settings {
public static final String KEY_INTERVAL = "interval";
public static final String KEY_ROOT = "root";
public static final String KEY_AUTO_STOP = "autoStop";
public static final String KEY_WACK_LOCK = "wakeLock";
private static WakeLockHelper wakeLockHelper;
public static SharedPreferences getDefaultSharedPreferences(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context);
}
public static WakeLockHelper getDefaultWakeLock(Context context) {
if (wakeLockHelper == null) {
wakeLockHelper = new WakeLockHelper(context);
}
return wakeLockHelper;
}
}
package com.netease.qa.emmagee.utils;
import android.content.Context;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
public class WakeLockHelper {
private WakeLock wakeLock = null;
private Context context;
public WakeLockHelper(Context context) {
this.context = context;
}
public void acquireFullWakeLock() {
if (null == wakeLock) {
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "WakeLock");
}
wakeLock.acquire();
}
public void releaseWakeLock() {
if (null != wakeLock) {
wakeLock.release();
wakeLock = null;
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册