forked from organicmaps/organicmaps
[android] Replaced WakeLock with more efficient window flags
This commit is contained in:
parent
094f4a1eae
commit
8c2051a2e9
7 changed files with 15 additions and 70 deletions
|
@ -21,7 +21,6 @@
|
|||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
||||
|
||||
<supports-screen android:largeScreens="true"/>
|
||||
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
||||
|
||||
<supports-screen android:largeScreens="true"/>
|
||||
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
||||
|
||||
<supports-screen android:largeScreens="true"/>
|
||||
|
||||
|
|
|
@ -95,15 +95,12 @@ public class DownloadResourcesActivity extends Activity implements LocationServi
|
|||
}
|
||||
else
|
||||
{
|
||||
mApplication.disableAutomaticStandby();
|
||||
finishFilesDownload(mBytesToDownload);
|
||||
}
|
||||
}
|
||||
|
||||
public void onDownloadClicked(View v)
|
||||
{
|
||||
mApplication.disableAutomaticStandby();
|
||||
|
||||
mProgress.setVisibility(View.VISIBLE);
|
||||
mProgress.setMax(mBytesToDownload);
|
||||
|
||||
|
@ -115,8 +112,6 @@ public class DownloadResourcesActivity extends Activity implements LocationServi
|
|||
|
||||
public void onPauseClicked(View v)
|
||||
{
|
||||
mApplication.enableAutomaticStandby();
|
||||
|
||||
mResumeButton.setVisibility(View.VISIBLE);
|
||||
mPauseButton.setVisibility(View.GONE);
|
||||
|
||||
|
@ -125,8 +120,6 @@ public class DownloadResourcesActivity extends Activity implements LocationServi
|
|||
|
||||
public void onResumeClicked(View v)
|
||||
{
|
||||
mApplication.disableAutomaticStandby();
|
||||
|
||||
mPauseButton.setVisibility(View.VISIBLE);
|
||||
mResumeButton.setVisibility(View.GONE);
|
||||
|
||||
|
@ -136,8 +129,6 @@ public class DownloadResourcesActivity extends Activity implements LocationServi
|
|||
|
||||
public void onTryAgainClicked(View v)
|
||||
{
|
||||
mApplication.disableAutomaticStandby();
|
||||
|
||||
mProgress.setVisibility(View.VISIBLE);
|
||||
mTryAgainButton.setVisibility(View.GONE);
|
||||
mPauseButton.setVisibility(View.VISIBLE);
|
||||
|
@ -183,7 +174,6 @@ public class DownloadResourcesActivity extends Activity implements LocationServi
|
|||
|
||||
public void finishFilesDownload(int result)
|
||||
{
|
||||
mApplication.enableAutomaticStandby();
|
||||
if (result == ERR_NO_MORE_FILES)
|
||||
{
|
||||
if (mCountryName != null && mDownloadCountryCheckBox.isChecked())
|
||||
|
@ -278,6 +268,9 @@ public class DownloadResourcesActivity extends Activity implements LocationServi
|
|||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
// Do not turn off the screen while downloading needed resources
|
||||
getWindow().addFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
mApplication = (MWMApplication)getApplication();
|
||||
|
|
|
@ -189,9 +189,17 @@ public class MWMActivity extends NvEventQueueActivity implements LocationService
|
|||
|
||||
final boolean isLocationActive = v.isSelected();
|
||||
if (isLocationActive)
|
||||
{
|
||||
getLocationService().stopUpdate(this);
|
||||
// Enable automatic turning screen off while app is idle
|
||||
getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||
}
|
||||
else
|
||||
{
|
||||
getLocationService().startUpdate(this);
|
||||
// Do not turn off the screen while displaying position
|
||||
getWindow().addFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||
}
|
||||
v.setSelected(!isLocationActive);
|
||||
|
||||
// Store active state of My Position
|
||||
|
@ -400,6 +408,10 @@ public class MWMActivity extends NvEventQueueActivity implements LocationService
|
|||
|
||||
mApplication = (MWMApplication)getApplication();
|
||||
|
||||
// Do not turn off the screen while benchmarking
|
||||
if (mApplication.nativeIsBenchmarking())
|
||||
getWindow().addFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||
|
||||
nativeSetString("country_status_added_to_queue", getString(R.string.country_status_added_to_queue));
|
||||
nativeSetString("country_status_downloading", getString(R.string.country_status_downloading));
|
||||
nativeSetString("country_status_download", getString(R.string.country_status_download));
|
||||
|
@ -474,9 +486,6 @@ public class MWMActivity extends NvEventQueueActivity implements LocationService
|
|||
@Override
|
||||
protected void onPause()
|
||||
{
|
||||
if (mApplication.nativeIsBenchmarking())
|
||||
mApplication.enableAutomaticStandby();
|
||||
|
||||
getLocationService().stopUpdate(this);
|
||||
|
||||
stopWatchingExternalStorage();
|
||||
|
@ -487,9 +496,6 @@ public class MWMActivity extends NvEventQueueActivity implements LocationService
|
|||
@Override
|
||||
protected void onResume()
|
||||
{
|
||||
if (mApplication.nativeIsBenchmarking())
|
||||
mApplication.disableAutomaticStandby();
|
||||
|
||||
View button = findViewById(R.id.map_button_myposition);
|
||||
if (button.isSelected())
|
||||
{
|
||||
|
|
|
@ -10,8 +10,6 @@ import android.content.pm.PackageManager.NameNotFoundException;
|
|||
import android.content.res.AssetManager;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
import android.os.PowerManager;
|
||||
import android.os.PowerManager.WakeLock;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
|
@ -164,28 +162,6 @@ public class MWMApplication extends android.app.Application implements MapStorag
|
|||
return getFilesDir().getAbsolutePath() + "/";
|
||||
}
|
||||
|
||||
private WakeLock mWakeLock = null;
|
||||
|
||||
public void disableAutomaticStandby()
|
||||
{
|
||||
if (mWakeLock == null)
|
||||
{
|
||||
PowerManager pm = (PowerManager) getSystemService(android.content.Context.POWER_SERVICE);
|
||||
mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, TAG);
|
||||
mWakeLock.acquire();
|
||||
}
|
||||
}
|
||||
|
||||
public void enableAutomaticStandby()
|
||||
{
|
||||
if (mWakeLock != null)
|
||||
{
|
||||
mWakeLock.release();
|
||||
mWakeLock = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
{
|
||||
System.loadLibrary("mapswithme");
|
||||
|
|
|
@ -14,8 +14,6 @@ import android.location.Location;
|
|||
import android.location.LocationListener;
|
||||
import android.location.LocationManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.PowerManager;
|
||||
import android.os.PowerManager.WakeLock;
|
||||
import android.util.Log;
|
||||
import android.view.Surface;
|
||||
|
||||
|
@ -59,7 +57,6 @@ public class LocationService implements LocationListener, SensorEventListener, W
|
|||
/// true when GPS is on
|
||||
private boolean m_isActive = false;
|
||||
|
||||
private WakeLock m_wakeLock = null;
|
||||
private MWMApplication mApplication = null;
|
||||
|
||||
public LocationService(MWMApplication application)
|
||||
|
@ -97,26 +94,6 @@ public class LocationService implements LocationListener, SensorEventListener, W
|
|||
it.next().onCompassUpdated(time, magneticNorth, trueNorth, accuracy);
|
||||
}
|
||||
|
||||
|
||||
private void disableAutomaticStandby()
|
||||
{
|
||||
if (m_wakeLock == null)
|
||||
{
|
||||
PowerManager pm = (PowerManager) mApplication.getSystemService(Context.POWER_SERVICE);
|
||||
m_wakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, TAG);
|
||||
m_wakeLock.acquire();
|
||||
}
|
||||
}
|
||||
|
||||
private void enableAutomaticStandby()
|
||||
{
|
||||
if (m_wakeLock != null)
|
||||
{
|
||||
m_wakeLock.release();
|
||||
m_wakeLock = null;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
private void printLocation(Location l)
|
||||
{
|
||||
|
@ -158,8 +135,6 @@ public class LocationService implements LocationListener, SensorEventListener, W
|
|||
if (m_wifiScanner == null)
|
||||
m_wifiScanner = new WifiLocation();
|
||||
m_wifiScanner.StartScan(mApplication, this);
|
||||
|
||||
disableAutomaticStandby();
|
||||
}
|
||||
else
|
||||
observer.onLocationStatusChanged(DISABLED_BY_USER);
|
||||
|
@ -169,7 +144,6 @@ public class LocationService implements LocationListener, SensorEventListener, W
|
|||
m_isActive = true;
|
||||
|
||||
observer.onLocationStatusChanged(STARTED);
|
||||
disableAutomaticStandby();
|
||||
|
||||
Location lastKnown = null;
|
||||
|
||||
|
@ -233,7 +207,6 @@ public class LocationService implements LocationListener, SensorEventListener, W
|
|||
m_lastLocation = null;
|
||||
|
||||
m_isActive = false;
|
||||
enableAutomaticStandby();
|
||||
}
|
||||
|
||||
observer.onLocationStatusChanged(STOPPED);
|
||||
|
|
Loading…
Add table
Reference in a new issue