Skip to content

Commit

Permalink
quickboot: Only enable QuickBoot if package is installed
Browse files Browse the repository at this point in the history
 * Also move to Settings.Global

Change-Id: I87e1464d717b41437072523c0ecab52227d7888b

Conflicts:
	policy/src/com/android/internal/policy/impl/GlobalActions.java
  • Loading branch information
hyperb1iss authored and Mahdi-Rom committed Apr 22, 2014
1 parent cb6110f commit 35c9129
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 4 deletions.
7 changes: 7 additions & 0 deletions core/java/android/provider/Settings.java
Expand Up @@ -8448,6 +8448,13 @@ public static final String getBluetoothMapPriorityKey(String address) {
*/
public static final String LOW_BATTERY_SOUND_TIMEOUT = "low_battery_sound_timeout";

/**
* Enable the QuickBoot feature
*
* @hide
*/
public static final String ENABLE_QUICKBOOT = "enable_quickboot";

/**
* Settings to backup. This is here so that it's in the same place as the settings
* keys and easy to update.
Expand Down
Expand Up @@ -23,6 +23,7 @@
import android.content.pm.ActivityInfo;
import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.XmlResourceParser;
import android.database.Cursor;
import android.database.SQLException;
Expand Down Expand Up @@ -73,7 +74,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
// database gets upgraded properly. At a minimum, please confirm that 'upgradeVersion'
// is properly propagated through your change. Not doing so will result in a loss of user
// settings.
private static final int DATABASE_VERSION = 98;
private static final int DATABASE_VERSION = 99;

private Context mContext;
private int mUserHandle;
Expand Down Expand Up @@ -1604,6 +1605,13 @@ public void onUpgrade(SQLiteDatabase db, int oldVersion, int currentVersion) {
upgradeVersion = 98;
}

if (upgradeVersion == 98) {
if (mUserHandle == UserHandle.USER_OWNER) {
loadQuickBootSetting(db);
}
upgradeVersion = 99;
}

// *** Remember to update DATABASE_VERSION above!

if (upgradeVersion != currentVersion) {
Expand Down Expand Up @@ -2009,6 +2017,27 @@ private void loadVibrateWhenRingingSetting(SQLiteDatabase db) {
}
}

private void loadQuickBootSetting(SQLiteDatabase db) {
boolean qbEnabled = true;
final PackageManager pm = mContext.getPackageManager();
try {
pm.getPackageInfo("com.qapp.quickboot", PackageManager.GET_META_DATA);
} catch (NameNotFoundException e) {
qbEnabled = false;
}
db.beginTransaction();
SQLiteStatement stmt = null;
try {
stmt = db.compileStatement("INSERT OR REPLACE INTO global(name,value)"
+ " VALUES(?,?);");
loadSetting(stmt, Settings.Global.ENABLE_QUICKBOOT, qbEnabled ? 1 : 0);
db.setTransactionSuccessful();
} finally {
db.endTransaction();
if (stmt != null) stmt.close();
}
}

private void loadSettings(SQLiteDatabase db) {
loadSystemSettings(db);
loadSecureSettings(db);
Expand Down Expand Up @@ -2352,6 +2381,8 @@ private void loadGlobalSettings(SQLiteDatabase db) {
R.integer.def_wifi_suspend_optimizations_enabled);

// --- New global settings start here
loadQuickBootSetting(db);

} finally {
if (stmt != null) stmt.close();
}
Expand Down
20 changes: 17 additions & 3 deletions policy/src/com/android/internal/policy/impl/GlobalActions.java
Expand Up @@ -35,8 +35,10 @@
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.pm.ThemeUtils;
import android.content.pm.UserInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.database.ContentObserver;
import android.graphics.drawable.Drawable;
import android.Manifest;
Expand Down Expand Up @@ -82,6 +84,7 @@
import java.util.List;
import java.util.UUID;


/**
* Needed for takeScreenshot
*/
Expand Down Expand Up @@ -294,8 +297,18 @@ public boolean showBeforeProvisioning() {
final ContentResolver cr = mContext.getContentResolver();
mItems = new ArrayList<Action>();

final boolean quickbootEnabled = Settings.System.getInt(
mContext.getContentResolver(), "enable_quickboot", 0) == 1;
int quickbootAvailable = 1;
final PackageManager pm = mContext.getPackageManager();
try {
pm.getPackageInfo("com.qapp.quickboot", PackageManager.GET_META_DATA);
} catch (NameNotFoundException e) {
quickbootAvailable = 0;
}

final boolean quickbootEnabled = Settings.Global.getInt(
mContext.getContentResolver(), Settings.Global.ENABLE_QUICKBOOT,
quickbootAvailable) == 1;

// first: power off
mItems.add(
new SinglePressAction(
Expand All @@ -314,7 +327,8 @@ public void onPress() {
}

public boolean onLongPress() {
mWindowManagerFuncs.rebootSafeMode(true);
// long press always does a full shutdown in case quickboot is enabled
mWindowManagerFuncs.shutdown(true);
return true;
}

Expand Down

0 comments on commit 35c9129

Please sign in to comment.