Hide activities when setup finishes, so they don't pop up at the end
Change-Id: Ica6b5babf7df7a7d8033ecd7694e3f45144b363a
This commit is contained in:
committed by
Alessandro Astone
parent
8ab720a45d
commit
799d3cb3b3
@@ -49,6 +49,9 @@
|
||||
android:name="lineageos.permission.FINISH_SETUP"
|
||||
android:protectionLevel="signatureOrSystem" />
|
||||
|
||||
<protected-broadcast android:name="org.lineageos.setupwizard.LINEAGE_SETUP_COMPLETE"
|
||||
android:permission="lineageos.permission.FINISH_SETUP"/>
|
||||
|
||||
<protected-broadcast android:name="org.lineageos.setupwizard.SETUP_FINISHED"
|
||||
android:permission="lineageos.permission.FINISH_SETUP"/>
|
||||
|
||||
|
||||
@@ -17,12 +17,14 @@
|
||||
|
||||
package org.lineageos.setupwizard;
|
||||
|
||||
import static android.view.View.INVISIBLE;
|
||||
import static com.google.android.setupcompat.util.ResultCodes.RESULT_ACTIVITY_NOT_FOUND;
|
||||
import static com.google.android.setupcompat.util.ResultCodes.RESULT_RETRY;
|
||||
import static com.google.android.setupcompat.util.ResultCodes.RESULT_SKIP;
|
||||
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.ACTION_EMERGENCY_DIAL;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.ACTION_NEXT;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.ACTION_SETUP_COMPLETE;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.EXTRA_ACTION_ID;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.EXTRA_FIRST_RUN;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.EXTRA_HAS_MULTIPLE_USERS;
|
||||
@@ -36,7 +38,10 @@ import android.annotation.Nullable;
|
||||
import android.app.Activity;
|
||||
import android.app.ActivityManager;
|
||||
import android.content.ActivityNotFoundException;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.wifi.WifiManager;
|
||||
@@ -91,6 +96,18 @@ public abstract class BaseSetupWizardActivity extends Activity implements Naviga
|
||||
private boolean mIsPrimaryUser;
|
||||
protected int mResultCode = 0;
|
||||
private Intent mResultData;
|
||||
private final BroadcastReceiver finishReceiver = new BroadcastReceiver() {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (ACTION_SETUP_COMPLETE.equals(intent.getAction())) {
|
||||
if (BaseSetupWizardActivity.this instanceof FinishActivity) return;
|
||||
if (mNavigationBar != null) {
|
||||
// hide the activity's view, so it does not pop up again
|
||||
mNavigationBar.getRootView().setVisibility(INVISIBLE);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
@@ -98,6 +115,7 @@ public abstract class BaseSetupWizardActivity extends Activity implements Naviga
|
||||
logActivityState("onCreate savedInstanceState=" + savedInstanceState);
|
||||
}
|
||||
super.onCreate(savedInstanceState);
|
||||
registerReceiver(finishReceiver, new IntentFilter(ACTION_SETUP_COMPLETE));
|
||||
mIsPrimaryUser = UserHandle.myUserId() == 0;
|
||||
initLayout();
|
||||
mNavigationBar = getNavigationBar();
|
||||
@@ -169,6 +187,7 @@ public abstract class BaseSetupWizardActivity extends Activity implements Naviga
|
||||
if (LOGV) {
|
||||
logActivityState("onDestroy");
|
||||
}
|
||||
unregisterReceiver(finishReceiver);
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@@ -307,7 +326,7 @@ public abstract class BaseSetupWizardActivity extends Activity implements Naviga
|
||||
Animation fadeOut = AnimationUtils.loadAnimation(this, android.R.anim.fade_out);
|
||||
final Button next = mNavigationBar.getNextButton();
|
||||
next.startAnimation(fadeOut);
|
||||
next.setVisibility(View.INVISIBLE);
|
||||
next.setVisibility(INVISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -515,7 +534,7 @@ public abstract class BaseSetupWizardActivity extends Activity implements Naviga
|
||||
Animation fadeOut = AnimationUtils.loadAnimation(this, android.R.anim.fade_out);
|
||||
final Button back = mNavigationBar.getBackButton();
|
||||
back.startAnimation(fadeOut);
|
||||
back.setVisibility(View.INVISIBLE);
|
||||
back.setVisibility(INVISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
package org.lineageos.setupwizard;
|
||||
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.ACTION_SETUP_COMPLETE;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.DISABLE_NAV_KEYS;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.KEY_BUTTON_BACKLIGHT;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.KEY_SEND_METRICS;
|
||||
@@ -45,6 +46,9 @@ import org.lineageos.setupwizard.util.EnableAccessibilityController;
|
||||
|
||||
import lineageos.providers.LineageSettings;
|
||||
|
||||
import static android.os.Binder.getCallingUserHandle;
|
||||
import static org.lineageos.setupwizard.Manifest.permission.FINISH_SETUP;
|
||||
|
||||
public class FinishActivity extends BaseSetupWizardActivity {
|
||||
|
||||
public static final String TAG = FinishActivity.class.getSimpleName();
|
||||
@@ -100,6 +104,10 @@ public class FinishActivity extends BaseSetupWizardActivity {
|
||||
}
|
||||
|
||||
private void startFinishSequence() {
|
||||
Intent i = new Intent(ACTION_SETUP_COMPLETE);
|
||||
i.setPackage(getPackageName());
|
||||
sendBroadcastAsUser(i, getCallingUserHandle(), FINISH_SETUP);
|
||||
|
||||
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
|
||||
hideBackButton();
|
||||
hideNextButton();
|
||||
|
||||
@@ -35,6 +35,7 @@ public class SetupWizardApp extends Application {
|
||||
/* Verbose Logging */
|
||||
public static final boolean LOGV = Log.isLoggable(TAG, Log.VERBOSE);
|
||||
|
||||
public static final String ACTION_SETUP_COMPLETE = "org.lineageos.setupwizard.LINEAGE_SETUP_COMPLETE";
|
||||
public static final String ACTION_FINISHED = "org.lineageos.setupwizard.SETUP_FINISHED";
|
||||
public static final String ACTION_SETUP_WIFI = "android.net.wifi.PICK_WIFI_NETWORK";
|
||||
public static final String ACTION_SETUP_FINGERPRINT = "android.settings.FINGERPRINT_SETUP";
|
||||
|
||||
Reference in New Issue
Block a user