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

Commit 51ac5ce5 authored by Adam Cohen's avatar Adam Cohen Committed by Android Git Automerger
Browse files

am cf09fa12: am b54a5989: Adding optional first run activity to Launcher

* commit 'cf09fa12':
  Adding optional first run activity to Launcher
parents 537ecd45 cf09fa12
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -78,7 +78,3 @@ public class Alarm implements Runnable{
        return mAlarmPending;
    }
}

interface OnAlarmListener {
    public void onAlarm(Alarm alarm);
}
+45 −9
Original line number Diff line number Diff line
@@ -187,6 +187,9 @@ public class Launcher extends Activity
    // Type: int[]
    private static final String RUNTIME_STATE_VIEW_IDS = "launcher.view_ids";


    static final String FIRST_RUN_ACTIVITY_DISPLAYED = "launcher.first_run_activity_displayed";

    private static final String TOOLBAR_ICON_METADATA_NAME = "com.android.launcher.toolbar_icon";
    private static final String TOOLBAR_SEARCH_ICON_METADATA_NAME =
            "com.android.launcher.toolbar_search_icon";
@@ -476,6 +479,7 @@ public class Launcher extends Activity
        // On large interfaces, we want the screen to auto-rotate based on the current orientation
        unlockScreenOrientation(true);

        showFirstRunActivity();
        showFirstRunCling();
    }

@@ -497,6 +501,21 @@ public class Launcher extends Activity
    protected void addCustomContentToLeft() {
    }

    /**
     * To be overridden by subclasses to indicate that there is an activity to launch
     * before showing the standard launcher experience.
     */
    protected boolean hasFirstRunActivity() {
        return false;
    }

    /**
     * To be overridden by subclasses to launch any first run activity
     */
    protected Intent getFirstRunActivity() {
        return null;
    }

    /**
     * Invoked by subclasses to signal a change to the {@link #addCustomContentToLeft} value to
     * ensure the custom content page is added or removed if necessary.
@@ -4206,6 +4225,10 @@ public class Launcher extends Activity
        }
    }

    private boolean shouldRunFirstRunActivity() {
        return !ActivityManager.isRunningInTestHarness();
    }

    /* Cling related */
    private boolean isClingsEnabled() {
        if (DISABLE_CLINGS) {
@@ -4274,15 +4297,9 @@ public class Launcher extends Activity
            final Runnable cleanUpClingCb = new Runnable() {
                public void run() {
                    cling.cleanup();
                    // We should update the shared preferences on a background thread
                    new AsyncTask<Void, Void, Void>() {
                        public Void doInBackground(Void ... args) {
                    SharedPreferences.Editor editor = mSharedPrefs.edit();
                    editor.putBoolean(flag, true);
                            editor.commit();
                            return null;
                        }
                    }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, (Void) null);
                    editor.apply();
                    if (postAnimationCb != null) {
                        postAnimationCb.run();
                    }
@@ -4379,10 +4396,29 @@ public class Launcher extends Activity
        }
    }

    public void showFirstRunActivity() {
        if (shouldRunFirstRunActivity() && hasFirstRunActivity()
                && !mSharedPrefs.getBoolean(FIRST_RUN_ACTIVITY_DISPLAYED, false)) {
            Intent firstRunIntent = getFirstRunActivity();
            if (firstRunIntent != null) {
                startActivity(firstRunIntent);
                markFirstRunActivityShown();
            }
        }
    }

    private void markFirstRunActivityShown() {
        SharedPreferences.Editor editor = mSharedPrefs.edit();
        editor.putBoolean(FIRST_RUN_ACTIVITY_DISPLAYED, true);
        editor.apply();
    }

    public void showFirstRunCling() {
        if (isClingsEnabled() &&
                !mSharedPrefs.getBoolean(Cling.FIRST_RUN_CLING_DISMISSED_KEY, false) &&
                !skipCustomClingIfNoAccounts() ) {


            // If we're not using the default workspace layout, replace workspace cling
            // with a custom workspace cling (usually specified in an overlay)
            // For now, only do this on tablets
+5 −0
Original line number Diff line number Diff line
package com.android.launcher3;

public interface OnAlarmListener {
    public void onAlarm(Alarm alarm);
}