Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c9c13f20 authored by cretin45's avatar cretin45
Browse files

SetupWizard: Add callback for actions to run post finish

Change-Id: Ifa62c94f61afbe33a97a66dc0acb72e303023579
parent 4e192fd2
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -191,6 +191,13 @@ public abstract class AbstractSetupData extends BroadcastReceiver implements Set
        }
    }

    @Override
    public void addFinishRunnable(Runnable runnable) {
        for (int i = 0; i < mListeners.size(); i++) {
            mListeners.get(i).addFinishRunnable(runnable);
        }
    }

    public Bundle save() {
        Bundle bundle = new Bundle();
        for (Page page : mPageList.values()) {
+8 −3
Original line number Diff line number Diff line
@@ -123,9 +123,14 @@ public class CyanogenSettingsPage extends SetupPage {

    @Override
    public void onFinishSetup() {
        getCallbacks().addFinishRunnable(new Runnable() {
            @Override
            public void run() {
                if (getData().containsKey(KEY_ENABLE_NAV_KEYS)) {
                    writeDisableNavkeysOption(mContext, getData().getBoolean(KEY_ENABLE_NAV_KEYS));
                }
            }
        });
        handleWhisperPushRegistration();
        handleEnableMetrics();
        handleDefaultThemeSetup();
+1 −0
Original line number Diff line number Diff line
@@ -26,4 +26,5 @@ public interface SetupDataCallbacks {
    boolean isCurrentPage(Page page);
    Page getPage(String key);
    Page getPage(int key);
    void addFinishRunnable(Runnable runnable);
}
+34 −15
Original line number Diff line number Diff line
@@ -47,6 +47,8 @@ import com.cyanogenmod.setupwizard.setup.SetupDataCallbacks;
import com.cyanogenmod.setupwizard.util.EnableAccessibilityController;
import com.cyanogenmod.setupwizard.util.SetupWizardUtils;

import java.util.ArrayList;


public class SetupWizardActivity extends Activity implements SetupDataCallbacks {

@@ -69,6 +71,8 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks

    private volatile boolean mIsFinishing = false;

    private final ArrayList<Runnable> mFinishRunnables = new ArrayList<Runnable>();

    private ThemeManager.ThemeChangeListener mThemeChangeListener = new ThemeManager.ThemeChangeListener() {
        @Override
        public void onProgress(int progress) {
@@ -273,6 +277,11 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks
        return mSetupData.isCurrentPage(page);
    }

    @Override
    public void addFinishRunnable(Runnable runnable) {
        mFinishRunnables.add(runnable);
    }

    @Override
    public void onFinish() {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
@@ -313,6 +322,9 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks
    @Override
    public void finish() {
        super.finish();
        for (Runnable runnable : mFinishRunnables) {
            runnable.run();
        }
        overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
    }

@@ -390,15 +402,19 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks
    }

    private void finalizeSetup() {
        mFinishRunnables.add(new Runnable() {
            @Override
            public void run() {
                Settings.Global.putInt(getContentResolver(), Settings.Global.DEVICE_PROVISIONED, 1);
        Settings.Secure.putInt(getContentResolver(), Settings.Secure.USER_SETUP_COMPLETE, 1);
        finish();
                Settings.Secure.putInt(getContentResolver(),
                        Settings.Secure.USER_SETUP_COMPLETE, 1);
                if (mEnableAccessibilityController != null) {
                    mEnableAccessibilityController.onDestroy();
                }
        SetupWizardUtils.disableGMSSetupWizard(this);
        SetupWizardUtils.disableSetupWizard(this);
        final ThemeManager tm = (ThemeManager) this.getSystemService(THEME_SERVICE);
                SetupWizardUtils.disableGMSSetupWizard(SetupWizardActivity.this);
                SetupWizardUtils.disableSetupWizard(SetupWizardActivity.this);
                final ThemeManager tm =
                        (ThemeManager) SetupWizardActivity.this.getSystemService(THEME_SERVICE);
                tm.removeClient(mThemeChangeListener);
                Intent intent = new Intent(Intent.ACTION_MAIN);
                intent.addCategory(Intent.CATEGORY_HOME);
@@ -407,4 +423,7 @@ public class SetupWizardActivity extends Activity implements SetupDataCallbacks
                        WallpaperManager.getInstance(SetupWizardActivity.this);
                wallpaperManager.forgetLoadedWallpaper();
            }
        });
        finish();
    }
}