@@ -47,6 +47,7 @@ public class MainActivity extends AppCompatActivity implements
4747 private static PowerManager .WakeLock wakeLock ;
4848
4949 private NetworkReceiver networkReceiver ;
50+ private PowerReceiver powerReceiver ;
5051
5152 private NetworkReceiver getNetworkReceiver () {
5253 if (networkReceiver == null )
@@ -55,6 +56,13 @@ private NetworkReceiver getNetworkReceiver() {
5556 return networkReceiver ;
5657 }
5758
59+ private PowerReceiver getPowerReceiver () {
60+ if (powerReceiver == null )
61+ powerReceiver = new PowerReceiver ();
62+
63+ return powerReceiver ;
64+ }
65+
5866 /**
5967 * Show message in TextView, used from Logger
6068 *
@@ -80,7 +88,9 @@ public void onCreate(Bundle savedInstanceState) {
8088 setContentView (R .layout .activity_main );
8189
8290 ActionBar actionBar = getSupportActionBar ();
83- actionBar .setDisplayHomeAsUpEnabled (true );
91+ if (actionBar != null ) {
92+ actionBar .setDisplayHomeAsUpEnabled (true );
93+ }
8494
8595 DrawerLayout drawer = findViewById (R .id .drawer_layout );
8696 ActionBarDrawerToggle toggle = new ActionBarDrawerToggle (
@@ -113,6 +123,16 @@ public void onCreate(Bundle savedInstanceState) {
113123 unregisterReceiver (networkReceiver );
114124 }
115125
126+ // Power receiver
127+ if (PrefStore .isPowerTrack (this )) {
128+ IntentFilter filter = new IntentFilter ();
129+ filter .addAction (Intent .ACTION_SCREEN_ON );
130+ filter .addAction (Intent .ACTION_SCREEN_OFF );
131+ registerReceiver (getPowerReceiver (), filter );
132+ } else if (powerReceiver != null ) {
133+ unregisterReceiver (powerReceiver );
134+ }
135+
116136 if (EnvUtils .isLatestVersion (this )) {
117137 // start services
118138 EnvUtils .execServices (getBaseContext (), new String []{"telnetd" , "httpd" }, "start" );
@@ -269,7 +289,7 @@ public void onResume() {
269289
270290 // Wake lock
271291 if (PrefStore .isWakeLock (this )) {
272- if (!wakeLock .isHeld ()) wakeLock .acquire ();
292+ if (!wakeLock .isHeld ()) wakeLock .acquire (60 * 60 * 1000L /*60 minutes*/ );
273293 } else {
274294 if (wakeLock .isHeld ()) wakeLock .release ();
275295 }
@@ -420,13 +440,11 @@ private void updateEnvWithRequestPermissions() {
420440 @ Override
421441 public void onRequestPermissionsResult (int requestCode , @ NonNull String [] permissions , @ NonNull int [] grantResults ) {
422442 super .onRequestPermissionsResult (requestCode , permissions , grantResults );
423- switch (requestCode ) {
424- case REQUEST_WRITE_STORAGE : {
425- if (grantResults .length > 0 && grantResults [0 ] == PackageManager .PERMISSION_GRANTED ) {
426- new UpdateEnvTask (this ).execute ();
427- } else {
428- Toast .makeText (this , getString (R .string .write_permissions_disallow ), Toast .LENGTH_LONG ).show ();
429- }
443+ if (requestCode == REQUEST_WRITE_STORAGE ) {
444+ if (grantResults .length > 0 && grantResults [0 ] == PackageManager .PERMISSION_GRANTED ) {
445+ new UpdateEnvTask (this ).execute ();
446+ } else {
447+ Toast .makeText (this , getString (R .string .write_permissions_disallow ), Toast .LENGTH_LONG ).show ();
430448 }
431449 }
432450 }
0 commit comments