SUW: add page for navigation mode

Skip the page if device has HW-keys and does not enable software keys.

Change-Id: I9efb49ddb1c2a101e6395c9034eacbeb0cfec6b6
This commit is contained in:
Timi Rautamäki
2022-03-16 13:21:30 +00:00
committed by Michael W
parent 563a38c121
commit e83f9e12a1
12 changed files with 366 additions and 5 deletions

View File

@@ -1,6 +1,6 @@
/*
* Copyright (C) 2016 The CyanogenMod Project
* Copyright (C) 2017-2020 The LineageOS Project
* Copyright (C) 2017-2020, 2022 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,9 @@
package org.lineageos.setupwizard;
import static android.os.Binder.getCallingUserHandle;
import static android.os.UserHandle.USER_CURRENT;
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY;
import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY;
import static org.lineageos.setupwizard.Manifest.permission.FINISH_SETUP;
import static org.lineageos.setupwizard.SetupWizardApp.ACTION_SETUP_COMPLETE;
@@ -25,6 +28,7 @@ import static org.lineageos.setupwizard.SetupWizardApp.DISABLE_NAV_KEYS;
import static org.lineageos.setupwizard.SetupWizardApp.ENABLE_RECOVERY_UPDATE;
import static org.lineageos.setupwizard.SetupWizardApp.KEY_SEND_METRICS;
import static org.lineageos.setupwizard.SetupWizardApp.LOGV;
import static org.lineageos.setupwizard.SetupWizardApp.NAVIGATION_OPTION_KEY;
import static org.lineageos.setupwizard.SetupWizardApp.UPDATE_RECOVERY_PROP;
import android.animation.Animator;
@@ -33,11 +37,13 @@ import android.app.WallpaperManager;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.om.IOverlayManager;
import android.content.pm.ActivityInfo;
import android.graphics.Bitmap;
import android.graphics.Point;
import android.os.Bundle;
import android.os.Handler;
import android.os.ServiceManager;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.preference.PreferenceManager;
@@ -172,6 +178,7 @@ public class FinishActivity extends BaseSetupWizardActivity {
handleEnableMetrics(mSetupWizardApp);
handleNavKeys(mSetupWizardApp);
handleRecoveryUpdate(mSetupWizardApp);
handleNavigationOption(mSetupWizardApp);
final WallpaperManager wallpaperManager =
WallpaperManager.getInstance(mSetupWizardApp);
wallpaperManager.forgetLoadedWallpaper();
@@ -209,6 +216,19 @@ public class FinishActivity extends BaseSetupWizardActivity {
}
}
private void handleNavigationOption(Context context) {
Bundle settingsBundle = mSetupWizardApp.getSettingsBundle();
if (settingsBundle.containsKey(NAVIGATION_OPTION_KEY)) {
IOverlayManager overlayManager = IOverlayManager.Stub.asInterface(
ServiceManager.getService(Context.OVERLAY_SERVICE));
String selectedNavMode = settingsBundle.getString(NAVIGATION_OPTION_KEY);
try {
overlayManager.setEnabledExclusiveInCategory(selectedNavMode, USER_CURRENT);
} catch (Exception e) {}
}
}
private static void writeDisableNavkeysOption(Context context, boolean enabled) {
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);