package com.jwipc.nodka_alarmpower;
|
|
import java.io.File;
|
import java.io.FileNotFoundException;
|
import java.io.FileWriter;
|
import java.net.ServerSocket;
|
import java.util.ArrayList;
|
import java.util.Calendar;
|
import java.util.List;
|
|
import android.annotation.SuppressLint;
|
import android.app.ActionBar;
|
import android.app.Activity;
|
import android.content.Intent;
|
import android.content.pm.PackageManager.NameNotFoundException;
|
import android.hardware.spirit.AlarmPowerItem;
|
import android.hardware.spirit.AlarmPowerManager;
|
import android.os.Bundle;
|
import android.os.Handler;
|
import android.os.Message;
|
import android.os.RemoteException;
|
import android.text.format.DateFormat;
|
import android.util.Log;
|
import android.view.MenuItem;
|
import android.view.MotionEvent;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.view.WindowManager;
|
import android.view.View.OnClickListener;
|
import android.view.View.OnFocusChangeListener;
|
import android.view.View.OnHoverListener;
|
import android.widget.Button;
|
import android.widget.CheckBox;
|
import android.widget.CompoundButton;
|
import android.widget.EditText;
|
import android.widget.FrameLayout;
|
import android.widget.LinearLayout;
|
import android.widget.CompoundButton.OnCheckedChangeListener;
|
import android.widget.LinearLayout.LayoutParams;
|
import android.widget.NumberPicker;
|
import android.widget.TextView;
|
import android.widget.TimePicker;
|
import android.widget.TimePicker.OnTimeChangedListener;
|
import android.provider.Settings;
|
|
public class MainActivity extends Activity{
|
|
|
TextView tv_reboot_time,tv_poweron,tv_shutdown;
|
Button bn_reboot_now,bn_shutdown_now,bn_alarm_poweron,bn_alarm_shutdown,bn_reboot_time,bn_watch_dog_stop, bn_cancel_input;
|
CheckBox checkBox_alarm_power_repeat;
|
TimePicker mTimePicker;
|
|
public static Handler handler;
|
|
final int reboot_now = 1;
|
final int shutdown_now = 2;
|
final int set_AlarmPower_on = 3;
|
final int set_AlarmPower_off = 4;
|
public static final int set_check_AlarmPower_repeat = 5;
|
public static final int set_Alarm_Reboot = 6;
|
public static final int set_Alarm_poweron_repeat = 7;
|
public static final int set_Alarm_poweroff_repeat = 8;
|
public static final int set_check_Alarm_Reboot_repeat = 9;
|
final int watch_dog = 10;
|
final int cancel_input = 11;
|
|
String time_alarm_reboot = "";
|
String time_alarm_power_on = "";
|
String time_alarm_power_off = "";
|
String time_alarm_power_repeat = "";
|
boolean time_Alarm_Reboot_repeat = false;
|
|
String intent_button = "intent_button";
|
String intent_button_AlarmPower = "intent_button_AlarmPower";
|
String intent_button_Reboot = "intent_button_Reboot";
|
|
public final String MCUEnableWdt = "/sys/class/minix-mcu/MCUEnableWdt";
|
|
|
|
|
|
@SuppressLint("NewApi") @Override
|
protected void onCreate(Bundle arg0) {
|
// TODO Auto-generated method stub
|
super.onCreate(arg0);
|
|
setContentView(R.layout.main);
|
|
|
|
findViewById();
|
handler();
|
init_data();
|
actionbar();
|
|
|
}
|
|
|
private void findViewById()
|
{
|
tv_reboot_time = (TextView) findViewById(R.id.tv_reboot_time);
|
tv_poweron = (TextView) findViewById(R.id.tv_poweron);
|
tv_shutdown = (TextView) findViewById(R.id.tv_shutdown);
|
|
bn_reboot_now = (Button) findViewById(R.id.bn_reboot_now);
|
bn_shutdown_now = (Button) findViewById(R.id.bn_shutdown_now);
|
bn_alarm_poweron = (Button) findViewById(R.id.bn_alarm_poweron);
|
bn_alarm_shutdown = (Button) findViewById(R.id.bn_alarm_shutdown);
|
bn_reboot_time = (Button) findViewById(R.id.bn_reboot_time);
|
bn_watch_dog_stop = (Button) findViewById(R.id.bn_watch_dog_stop);
|
bn_cancel_input = (Button) findViewById(R.id.bn_cancel_input);
|
|
checkBox_alarm_power_repeat = (CheckBox) findViewById(R.id.checkBox_alarm_power_repeat);
|
|
mTimePicker = (TimePicker) findViewById(R.id.mTimePicker);
|
mTimePicker.setIs24HourView(true);
|
|
|
bn_reboot_now.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View arg0) {
|
// TODO Auto-generated method stub
|
Intent it = new Intent();
|
it.setAction("android.intent.action.auto_power_shut");
|
it.putExtra("power_type", 1);
|
sendBroadcast(it);
|
}
|
});
|
bn_shutdown_now.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View arg0) {
|
// TODO Auto-generated method stub
|
Intent it = new Intent();
|
it.setAction("android.intent.action.auto_power_shut");
|
it.putExtra("power_type", 2);
|
sendBroadcast(it);
|
}
|
});
|
bn_alarm_poweron.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View arg0) {
|
// TODO Auto-generated method stub
|
time_alarm_power_on = get_TimePicker_time();
|
|
Intent it_AlarmPower = new Intent();
|
it_AlarmPower.setAction("android.intent.action.auto_power_shut");
|
it_AlarmPower.putExtra("power_type", 3);
|
it_AlarmPower.putExtra("power_time", time_alarm_power_on);
|
it_AlarmPower.putExtra("shut_time", time_alarm_power_off);
|
it_AlarmPower.putExtra("repeat", checkBox_alarm_power_repeat.isChecked() ? "true" : "false");
|
it_AlarmPower.putExtra("effective", true);
|
sendBroadcast(it_AlarmPower);
|
|
Message msg = new Message();
|
msg.what = set_AlarmPower_on;
|
msg.obj = time_alarm_power_on;
|
|
handler.sendMessage(msg);
|
}
|
});
|
bn_alarm_shutdown.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View arg0) {
|
// TODO Auto-generated method stub
|
time_alarm_power_off = get_TimePicker_time();
|
|
Intent it_AlarmPower = new Intent();
|
it_AlarmPower.setAction("android.intent.action.auto_power_shut");
|
it_AlarmPower.putExtra("power_type", 3);
|
it_AlarmPower.putExtra("power_time", time_alarm_power_on);
|
it_AlarmPower.putExtra("shut_time", time_alarm_power_off);
|
it_AlarmPower.putExtra("repeat", checkBox_alarm_power_repeat.isChecked() ? "true" : "false");
|
it_AlarmPower.putExtra("effective", true);
|
sendBroadcast(it_AlarmPower);
|
|
Message msg = new Message();
|
msg.what = set_AlarmPower_off;
|
msg.obj = time_alarm_power_off;
|
|
handler.sendMessage(msg);
|
}
|
});
|
bn_reboot_time.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View arg0) {
|
// TODO Auto-generated method stub
|
|
time_alarm_reboot = get_TimePicker_time();
|
|
Intent it_Reboot = new Intent();
|
it_Reboot.setAction("android.intent.action.auto_power_shut");
|
it_Reboot.putExtra("power_type", 4);
|
it_Reboot.putExtra("power_time", time_alarm_reboot);
|
it_Reboot.putExtra("shut_time", time_alarm_reboot);
|
it_Reboot.putExtra("repeat", checkBox_alarm_power_repeat.isChecked() ? "true" : "false");
|
it_Reboot.putExtra("effective", true);
|
sendBroadcast(it_Reboot);
|
|
Message msg = new Message();
|
msg.what = set_Alarm_Reboot;
|
msg.obj = time_alarm_reboot;
|
|
handler.sendMessage(msg);
|
}
|
});
|
bn_watch_dog_stop.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View arg0) {
|
Intent intent = new Intent();
|
intent.setAction("android.intent.action.STOP_APK_FEED");
|
sendBroadcast(intent);
|
}
|
});
|
bn_cancel_input.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View arg0) {
|
// TODO Auto-generated method stub
|
|
Intent it_AlarmPower = new Intent();
|
it_AlarmPower.setAction("android.intent.action.auto_power_shut");
|
it_AlarmPower.putExtra("power_type", 3);
|
it_AlarmPower.putExtra("power_time", time_alarm_power_on);
|
it_AlarmPower.putExtra("shut_time", time_alarm_power_off);
|
it_AlarmPower.putExtra("effective", false);
|
sendBroadcast(it_AlarmPower);
|
|
Intent it_Reboot = new Intent();
|
it_Reboot.setAction("android.intent.action.auto_power_shut");
|
it_Reboot.putExtra("power_type", 4);
|
it_Reboot.putExtra("power_time", time_alarm_reboot);
|
it_Reboot.putExtra("shut_time", time_alarm_reboot);
|
it_Reboot.putExtra("effective", false);
|
sendBroadcast(it_Reboot);
|
|
Message msg = new Message();
|
msg.what = cancel_input;
|
|
handler.sendMessage(msg);
|
}
|
});
|
|
checkBox_alarm_power_repeat.setOnCheckedChangeListener(new OnCheckedChangeListener() {
|
|
@Override
|
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
|
// TODO Auto-generated method stub
|
|
time_alarm_power_repeat = arg1 ? "true" : "false";
|
|
Intent it_AlarmPower = new Intent();
|
it_AlarmPower.setAction("android.intent.action.auto_power_shut");
|
it_AlarmPower.putExtra("power_type", 3);
|
it_AlarmPower.putExtra("repeat", arg1 ? "true" : "false");
|
it_AlarmPower.putExtra("power_time", time_alarm_power_on);
|
it_AlarmPower.putExtra("shut_time", time_alarm_power_off);
|
it_AlarmPower.putExtra("effective", true);
|
sendBroadcast(it_AlarmPower);
|
|
|
time_Alarm_Reboot_repeat = arg1;
|
|
Intent it_Reboot = new Intent();
|
it_Reboot.setAction("android.intent.action.auto_power_shut");
|
it_Reboot.putExtra("power_type", 4);
|
it_Reboot.putExtra("repeat", time_Alarm_Reboot_repeat ? "true" : "false");
|
it_Reboot.putExtra("effective", true);
|
sendBroadcast(it_Reboot);
|
}
|
});
|
}
|
|
|
private String get_TimePicker_time()
|
{
|
String time = "";
|
|
if(mTimePicker != null)
|
{
|
time = mTimePicker.getHour()+":"+mTimePicker.getMinute()+":"+0;
|
}
|
|
return time;
|
}
|
|
|
private void handler()
|
{
|
handler = new Handler()
|
{
|
@Override
|
public void handleMessage(Message msg) {
|
// TODO Auto-generated method stub
|
super.handleMessage(msg);
|
|
switch (msg.what) {
|
case set_Alarm_Reboot:
|
tv_reboot_time.setText(set_cross((String)msg.obj));
|
break;
|
case set_Alarm_poweron_repeat:
|
tv_poweron.setText(set_cross((String)msg.obj));
|
time_alarm_power_on = (String)msg.obj;
|
break;
|
case set_Alarm_poweroff_repeat:
|
tv_shutdown.setText(set_cross((String)msg.obj));
|
time_alarm_power_off = (String)msg.obj;
|
break;
|
case set_AlarmPower_on:
|
tv_poweron.setText(set_cross((String)msg.obj));
|
time_alarm_power_on = (String)msg.obj;
|
break;
|
case set_AlarmPower_off:
|
tv_shutdown.setText(set_cross((String)msg.obj));
|
time_alarm_power_off = (String)msg.obj;
|
break;
|
case set_check_AlarmPower_repeat:
|
checkBox_alarm_power_repeat.setChecked((Boolean) msg.obj);
|
|
break;
|
case cancel_input:
|
tv_reboot_time.setText(getString(R.string.empty));
|
tv_poweron.setText(getString(R.string.empty));
|
tv_shutdown.setText(getString(R.string.empty));
|
|
time_alarm_power_on = "";
|
time_alarm_power_off = "";
|
|
checkBox_alarm_power_repeat.setChecked(false);
|
break;
|
}
|
}
|
};
|
}
|
|
|
private void init_data()
|
{
|
sendBroadcast(new Intent("android.intent.action.NDJ_GET_ALARM_REBOOT"));
|
|
try {
|
AlarmPowerManager mAlarmPowerManager = new AlarmPowerManager();
|
|
List<AlarmPowerItem> list_AlarmPowerItem = mAlarmPowerManager.getAlarmPowerList();
|
|
if(list_AlarmPowerItem != null)
|
{
|
if(list_AlarmPowerItem.size() > 0)
|
{
|
|
AlarmPowerItem mAlarmPowerItem = list_AlarmPowerItem.get(0);
|
|
Message msg_on = new Message();
|
msg_on.what = set_AlarmPower_on;
|
msg_on.obj = mAlarmPowerItem.getAlarmPowerOnHour() + ":" + mAlarmPowerItem.getAlarmPowerOnMinute() + ":" + mAlarmPowerItem.getAlarmPowerOnSecond();
|
time_alarm_power_on = (String) msg_on.obj;
|
handler.sendMessage(msg_on);
|
|
Message msg_off = new Message();
|
msg_off.what = set_AlarmPower_off;
|
msg_off.obj = mAlarmPowerItem.getAlarmPowerOffHour() + ":" + mAlarmPowerItem.getAlarmPowerOffMinute() + ":" + mAlarmPowerItem.getAlarmPowerOffSecond();
|
time_alarm_power_off = (String) msg_off.obj;
|
handler.sendMessage(msg_off);
|
|
|
/*Message msg_check_AlarmPower_repeat = new Message();
|
msg_check_AlarmPower_repeat.what = set_check_AlarmPower_repeat;
|
msg_check_AlarmPower_repeat.obj = mAlarmPowerItem.getAlarmPowerRepeat().equals("true") ? true : false;
|
time_alarm_power_repeat = mAlarmPowerItem.getAlarmPowerRepeat();
|
handler.sendMessage(msg_check_AlarmPower_repeat);*/
|
|
}
|
}
|
|
} catch (RemoteException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
|
|
}
|
|
|
public void setFileState(String state, String file) {
|
FileWriter fw;
|
|
try {
|
fw = new FileWriter(file);
|
fw.write(state);
|
fw.close();
|
} catch (FileNotFoundException e) {
|
e.printStackTrace();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
}
|
|
|
@SuppressLint("NewApi")
|
private void actionbar()
|
{
|
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
|
getWindow().setStatusBarColor(getColor(R.color.blue_p));
|
getWindow().getDecorView().setSystemUiVisibility(0);
|
|
|
ActionBar actionBar = getActionBar();
|
if (actionBar != null) {
|
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); //Enable自定义的View
|
actionBar.setCustomView(R.layout.actionbar_custom);//设置自定义的布局:actionbar_custom
|
}
|
|
TextView action_bar_title = (TextView) findViewById(R.id.action_bar_title);
|
Button bn_back = (Button) findViewById(R.id.bn_back);
|
final LinearLayout layout_bn_back = (LinearLayout) findViewById(R.id.layout_bn_back);
|
|
try {
|
//action_bar_title.setText(getResources().getString(getPackageManager().getPackageInfo(getPackageName(), 0).applicationInfo.labelRes)+" "+getPackageManager().getPackageInfo(getPackageName(), 0).versionName);
|
action_bar_title.setText(getString(R.string.app_name)+" "+getPackageManager().getPackageInfo(getPackageName(), 0).versionName);
|
} catch (NameNotFoundException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
|
bn_back.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View arg0) {
|
// TODO Auto-generated method stub
|
finish();
|
}
|
});
|
bn_back.setOnFocusChangeListener(new OnFocusChangeListener() {
|
|
@Override
|
public void onFocusChange(View arg0, boolean arg1) {
|
// TODO Auto-generated method stub
|
if(arg1)
|
{
|
layout_bn_back.setBackgroundColor(getColor(R.color.mid_white));
|
}
|
else
|
{
|
layout_bn_back.setBackground(null);
|
}
|
}
|
});
|
bn_back.setOnHoverListener(new OnHoverListener() {
|
|
@Override
|
public boolean onHover(View arg0, MotionEvent event) {
|
// TODO Auto-generated method stub
|
|
if(event.getAction() == MotionEvent.ACTION_HOVER_ENTER)
|
{
|
layout_bn_back.setBackgroundColor(getColor(R.color.mid_white));
|
}
|
else if(event.getAction() == MotionEvent.ACTION_HOVER_EXIT)
|
{
|
layout_bn_back.setBackground(null);
|
}
|
|
return false;
|
}
|
});
|
}
|
|
|
private String set_cross(String time)
|
{
|
if(time.contains(":"))
|
{
|
time = time.replaceAll(":", "\\ :\\ ");
|
}
|
|
return time;
|
}
|
|
|
@SuppressLint("NewApi")
|
private void resizeTimerPicker(TimePicker tp)
|
{
|
List<NumberPicker> npList = findNumberPicker(tp);
|
|
for (NumberPicker np : npList)
|
{
|
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(200, 250);
|
params.setMargins(10, 10, 10, 10);
|
np.setLayoutParams(params);
|
}
|
|
|
}
|
|
|
private List<NumberPicker> findNumberPicker(ViewGroup viewGroup)
|
{
|
List<NumberPicker> npList = new ArrayList<NumberPicker>();
|
View child = null;
|
|
if (null != viewGroup)
|
{
|
for (int i = 0; i < viewGroup.getChildCount(); i++)
|
{
|
child = viewGroup.getChildAt(i);
|
if (child instanceof NumberPicker)
|
{
|
npList.add((NumberPicker)child);
|
}
|
else if (child instanceof NumberPicker)
|
{
|
npList.add((NumberPicker)child);
|
}
|
else if (child instanceof LinearLayout)
|
{
|
List<NumberPicker> result = findNumberPicker((ViewGroup)child);
|
if (result.size() > 0)
|
{
|
return result;
|
}
|
}
|
}
|
}
|
|
return npList;
|
}
|
|
|
|
|
|
|
|
|
|
}
|