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

Commit 9eef8749 authored by Dan Sandler's avatar Dan Sandler Committed by Android Git Automerger
Browse files

am 2200f86f: All (er, L) is finally revealed.

* commit '2200f86f':
  All (er, L) is finally revealed.
parents c4ad8753 2200f86f
Loading
Loading
Loading
Loading
+169 −94
Original line number Diff line number Diff line
@@ -16,102 +16,160 @@

package com.android.internal.app;

import android.animation.ObjectAnimator;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Build;
import android.content.res.ColorStateList;
import android.graphics.Canvas;
import android.graphics.Outline;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.RippleDrawable;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.OvalShape;
import android.os.Bundle;
import android.provider.Settings;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewOutlineProvider;
import android.view.animation.PathInterpolator;
import android.widget.FrameLayout;
import android.widget.TextView;
import android.widget.ImageView;

public class PlatLogoActivity extends Activity {
    private static class Torso extends FrameLayout {
        boolean mAnimate = false;
        TextView mText;
    final static int[] FLAVORS = {
            0xFF9C27B0, 0xFFBA68C8, // grape
            0xFFFF9800, 0xFFFFB74D, // orange
            0xFFF06292, 0xFFF8BBD0, // bubblegum
            0xFFAFB42B, 0xFFCDDC39, // lime
            0xFFFFEB3B, 0xFFFFF176, // lemon
            0xFF795548, 0xFFA1887F, // mystery flavor
    };
    FrameLayout mLayout;
    int mTapCount;
    PathInterpolator mInterpolator = new PathInterpolator(0f, 0f, 0.5f, 1f);

        public Torso(Context context) {
            this(context, null);
        }
        public Torso(Context context, AttributeSet attrs) {
            this(context, attrs, 0);
    static int newColorIndex() {
        return 2*((int) (Math.random()*FLAVORS.length/2));
    }
        public Torso(Context context, AttributeSet attrs, int flags) {
            super(context, attrs, flags);

            for (int i=0; i<2; i++) {
                final View v = new View(context);
                v.setBackgroundColor(i % 2 == 0 ? Color.BLUE : Color.RED);
                addView(v);
    Drawable makeRipple() {
        final int idx = newColorIndex();
        final ShapeDrawable popbg = new ShapeDrawable(new OvalShape());
        popbg.getPaint().setColor(FLAVORS[idx]);
        final RippleDrawable ripple = new RippleDrawable(
                ColorStateList.valueOf(FLAVORS[idx+1]),
                popbg, null);
        return ripple;
    }

            mText = new TextView(context);
            mText.setTextColor(Color.BLACK);
            mText.setTextSize(14 /* sp */);
            mText.setTypeface(Typeface.create("monospace", Typeface.BOLD));
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

            addView(mText, new FrameLayout.LayoutParams(
                    FrameLayout.LayoutParams.MATCH_PARENT,
                    FrameLayout.LayoutParams.WRAP_CONTENT,
                    Gravity.BOTTOM | Gravity.LEFT
            ));
        mLayout = new FrameLayout(this);
        setContentView(mLayout);
    }

        private Runnable mRunnable = new Runnable() {
    @Override
            public void run() {
                mText.setText(String.format("android_%s.flv - build %s",
                        Build.VERSION.CODENAME,
                        Build.VERSION.INCREMENTAL));
                final int N = getChildCount();
                final float parentw = getMeasuredWidth();
                final float parenth = getMeasuredHeight();
                for (int i=0; i<N; i++) {
                    final View v = getChildAt(i);
                    if (v instanceof TextView) continue;

                    final int w = (int) (Math.random() * parentw);
                    final int h = (int) (Math.random() * parenth);
                    v.setLayoutParams(new FrameLayout.LayoutParams(w, h));

                    v.setX((float) Math.random() * (parentw - w));
                    v.setY((float) Math.random() * (parenth - h));
                }
    public void onAttachedToWindow() {
        final DisplayMetrics dm = getResources().getDisplayMetrics();
        final float dp = dm.density;
        final int size = (int)
                (Math.min(Math.min(dm.widthPixels, dm.heightPixels), 600*dp) - 100*dp);

        final View stick = new View(this) {
            Paint mPaint = new Paint();
            Path mShadow = new Path();

                if (mAnimate) postDelayed(this, 1000);
            }
        };
            @Override
        protected void onAttachedToWindow() {
            mAnimate = true;
            post(mRunnable);
        }
            public void onAttachedToWindow() {
                super.onAttachedToWindow();
                setWillNotDraw(false);
                setOutlineProvider(new ViewOutlineProvider() {
                    @Override
        protected void onDetachedFromWindow() {
            mAnimate = false;
            removeCallbacks(mRunnable);
                    public void getOutline(View view, Outline outline) {
                        outline.setRect(0, getHeight() / 2, getWidth(), getHeight());
                    }
                });
            }
            @Override
            public void onDraw(Canvas c) {
                final int w = c.getWidth();
                final int h = c.getHeight() / 2;
                c.translate(0, h);
                final GradientDrawable g = new GradientDrawable();
                g.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT);
                g.setGradientCenter(w * 0.75f, 0);
                g.setColors(new int[] { 0xFFFFFFFF, 0xFFAAAAAA });
                g.setBounds(0, 0, w, h);
                g.draw(c);
                mPaint.setColor(0xFFAAAAAA);
                mShadow.reset();
                mShadow.moveTo(0,0);
                mShadow.lineTo(w, 0);
                mShadow.lineTo(w, size/2 + 1.5f*w);
                mShadow.lineTo(0, size/2);
                mShadow.close();
                c.drawPath(mShadow, mPaint);
            }
        };
        mLayout.addView(stick, new FrameLayout.LayoutParams((int) (32 * dp),
                ViewGroup.LayoutParams.MATCH_PARENT, Gravity.CENTER_HORIZONTAL));
        stick.setAlpha(0f);

        final ImageView im = new ImageView(this);
        im.setTranslationZ(20);
        im.setScaleX(0);
        im.setScaleY(0);
        final Drawable platlogo = getDrawable(com.android.internal.R.drawable.platlogo);
        platlogo.setAlpha(0);
        im.setImageDrawable(platlogo);
        im.setBackground(makeRipple());
        im.setClickable(true);
        final ShapeDrawable highlight = new ShapeDrawable(new OvalShape());
        highlight.getPaint().setColor(0x10FFFFFF);
        highlight.setBounds((int)(size*.15f), (int)(size*.15f),
                            (int)(size*.6f), (int)(size*.6f));
        im.getOverlay().add(highlight);
        im.setOnClickListener(new View.OnClickListener() {
            @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            public void onClick(View v) {
                if (mTapCount == 0) {
                    im.animate()
                            .translationZ(40)
                            .scaleX(1)
                            .scaleY(1)
                            .setInterpolator(mInterpolator)
                            .setDuration(700)
                            .setStartDelay(500)
                            .start();

                    final ObjectAnimator a = ObjectAnimator.ofInt(platlogo, "alpha", 0, 255);
                    a.setInterpolator(mInterpolator);
                    a.setStartDelay(1000);
                    a.start();

        final Torso t = new Torso(this);
        t.setBackgroundColor(Color.WHITE);
                    stick.animate()
                            .translationZ(20)
                            .alpha(1)
                            .setInterpolator(mInterpolator)
                            .setDuration(700)
                            .setStartDelay(750)
                            .start();

        t.getChildAt(0)
                .setOnLongClickListener(new View.OnLongClickListener() {
                    im.setOnLongClickListener(new View.OnLongClickListener() {
                        @Override
                        public boolean onLongClick(View v) {
                            if (mTapCount < 5) return false;

                            final ContentResolver cr = getContentResolver();
                            if (Settings.System.getLong(cr, Settings.System.EGG_MODE, 0)
                                    == 0) {
@@ -120,6 +178,9 @@ public class PlatLogoActivity extends Activity {
                                        Settings.System.EGG_MODE,
                                        System.currentTimeMillis());
                            }
                            im.post(new Runnable() {
                                @Override
                                public void run() {
                                    try {
                                        startActivity(new Intent(Intent.ACTION_MAIN)
                                                .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
@@ -127,13 +188,27 @@ public class PlatLogoActivity extends Activity {
                                                        | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS)
                                                .addCategory("com.android.internal.category.PLATLOGO"));
                                    } catch (ActivityNotFoundException ex) {
                            android.util.Log.e("PlatLogoActivity", "Couldn't catch a break.");
                                        Log.e("PlatLogoActivity", "No more eggs.");
                                    }
                                    finish();
                                }
                            });
                            return true;
                        }
                    });
                } else {
                    im.setBackground(makeRipple());
                }
                mTapCount++;
            }
        });

        mLayout.addView(im, new FrameLayout.LayoutParams(size, size, Gravity.CENTER));

        setContentView(t);
        im.animate().scaleX(0.3f).scaleY(0.3f)
                .setInterpolator(mInterpolator)
                .setDuration(500)
                .setStartDelay(800)
                .start();
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -2916,6 +2916,7 @@
        </activity>
        <activity android:name="com.android.internal.app.PlatLogoActivity"
                android:theme="@style/Theme.Wallpaper.NoTitleBar.Fullscreen"
                android:configChanges="orientation|keyboardHidden"
                android:process=":ui">
        </activity>
        <activity android:name="com.android.internal.app.DisableCarModeActivity"
+33 −27
Original line number Diff line number Diff line
<!--
Copyright (C) 2014 The Android Open Source Project

   Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at"+
    You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

@@ -12,31 +13,36 @@
    See the License for the specific language governing permissions and
    limitations under the License.
-->

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="400dp"
        android:height="400dp"
        android:viewportHeight="25"
        android:viewportWidth="25" >

        android:width="560.0dp"
        android:height="560.0dp"
        android:viewportWidth="560.0"
        android:viewportHeight="560.0">
    <path
        android:name="torso"
        android:pathData="m2,2 l21,0 l0,21 l-21,0 z"
        android:fillColor="#FFFFFFFF"
        />

        android:pathData="M264.079987,240.736l0.0,9.82c7.31,-7.15 17.139999,-11.56 28.07,-11.56c22.639999,0.0 40.799999,18.48 40.799999,41.12c0.0,22.48 -18.16,40.880 -40.799999,40.880c-10.93,0.0 -20.280,-4.09 -27.59,-10.93L264.559998,339.0l-11.32,0.0l0.0,-98.269997L264.079987,240.731zM265.809998,264.869995c-0.47,0.79 -1.26,2.04 -1.26,4.79l0.0,21.07c0.0,1.97 0.47,3.07 1.1,4.17c5.19,8.88 14.78,14.94 25.63,14.94c16.43,0.0 29.950,-13.44 29.950,-29.870c0.0,-16.280 -13.52,-29.799999 -29.950,-29.799999C280.51,250.169998 271.0,256.059998 265.809998,264.869995z"
        android:fillColor="#FFFFFF"/>
    <path
        android:name="|"
        android:pathData="m4,4 l8,0 l0,17 l-8,0 z"
        android:fillColor="#FF0000FF"
        />

        android:pathData="M445.731,240.736l0.0,9.82c7.31,-7.15 17.139999,-11.56 28.07,-11.56c22.639999,0.0 40.799999,18.48 40.799999,41.12c0.0,22.48 -18.16,40.880 -40.799999,40.880c-10.93,0.0 -20.280,-4.09 -27.59,-10.93L446.210052,339.0l-11.32,0.0l0.0,-98.269997L445.731,240.731zM447.459991,264.869995c-0.47,0.79 -1.26,2.04 -1.26,4.79l0.0,21.07c0.0,1.97 0.47,3.07 1.1,4.17c5.19,8.88 14.78,14.94 25.63,14.94c16.43,0.0 29.950,-13.44 29.950,-29.870c0.0,-16.280 -13.52,-29.799999 -29.950,-29.799999C462.160004,250.169998 452.649994,256.059998 447.459991,264.869995z"
        android:fillColor="#FFFFFF"/>
    <path
        android:name="_"
        android:pathData="m5,14 l16,0 l0,6 l-16,0 z"
        android:fillColor="#FFFF0000"
        />

        android:pathData="M169.490005,279.880005c0.0,22.639999 -18.32,41.12 -40.810,41.12c-22.639999,0.0 -41.040,-18.48 -41.040,-41.12c0.0,-22.48 18.389999,-40.880 41.040,-40.880C151.169998,239.0 169.490005,257.399994 169.490005,279.880005zM158.089996,280.040009c0.0,-16.43 -13.13,-29.870 -29.41,-29.870c-16.51,0.0 -29.4,13.44 -29.4,29.870c0.0,16.280 12.89,29.799999 29.4,29.799999C144.960007,309.8387 158.089996,296.309998 158.089996,280.040009z"
        android:fillColor="#FFFFFF"/>
    <path
        android:pathData="M423.790009,279.880005c0.0,22.639999 -18.32,41.12 -40.810,41.12c-22.639999,0.0 -41.040,-18.48 -41.040,-41.12c0.0,-22.48 18.389999,-40.880 41.040,-40.880C405.470,239.0 423.790009,257.399994 423.790009,279.880005zM412.395,280.040009c0.0,-16.43 -13.13,-29.870 -29.41,-29.870c-16.51,0.0 -29.4,13.44 -29.4,29.870c0.0,16.280 12.89,29.799999 29.4,29.799999C399.26,309.8387 412.395,296.309998 412.395,280.040009z"
        android:fillColor="#FFFFFF"/>
    <path
        android:pathData="M229.02,221.0l11.17,0.0l0.0,11.48l-11.17,0.0z"
        android:fillColor="#FFFFFF"/>
    <path
        android:pathData="M229.02,240.65l11.17,0.0l0.0,78.62l-11.17,0.0z"
        android:fillColor="#FFFFFF"/>
    <path
        android:pathData="M65.4,221.0l11.17,0.0l0.0,98.27l-11.17,0.0z"
        android:fillColor="#FFFFFF"/>
    <path
        android:pathData="M180.58,221.0l11.17,0.0l0.0,98.27l-11.17,0.0z"
        android:fillColor="#FFFFFF"/>
    <path
        android:pathData="M204.8,221.0l11.17,0.0l0.0,98.27l-11.17,0.0z"
        android:fillColor="#FFFFFF"/>
</vector>

+14 −31
Original line number Diff line number Diff line
<!--
Copyright (C) 2014 The Android Open Source Project

   Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at"+
    You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

@@ -12,33 +13,15 @@
    See the License for the specific language governing permissions and
    limitations under the License.
-->

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="25dp"
        android:height="25dp"
        android:viewportHeight="25"
        android:viewportWidth="25" >

        android:width="24.0dp"
        android:height="24.0dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:name="L-card"

        android:pathData="
        m4,2
        a2,2,0,0,0,-2,2 l0,17
        a2,2,0,0,0,2,2  l17,0
        a2,2,0,0,0,2,-2 l0,-17
        a2,2,0,0,0,-2,-2
        z

        M7,2 l3,0 l0,13 l13,0 l0,3 l-16,0

        M15,2 l3,0 l0,5 l5,0 l0,3 l-8,0

        z"
        android:fillColor="#FFFFFFFF"
        />


        android:pathData="M19.000000,10.000000c0.000000,3.866000 -3.134000,7.000000 -7.000000,7.000000s-7.000000,-3.134000 -7.000000,-7.000000c0.000000,-2.318000 1.131000,-4.367000 2.867000,-5.641000L5.778000,2.270000l0.824000,-0.825000l2.290000,2.290000C9.830000,3.269000 10.882000,3.000000 12.000000,3.000000c1.118000,0.000000 2.170000,0.269000 3.107000,0.734000l2.290000,-2.290000l0.824000,0.825000l-2.089000,2.090000C17.868000,5.633000 19.000000,7.682000 19.000000,10.000000zM10.000000,8.000000c0.000000,-0.552000 -0.447000,-1.000000 -1.000000,-1.000000S8.000000,7.448000 8.000000,8.000000s0.447000,1.000000 1.000000,1.000000S10.000000,8.552000 10.000000,8.000000zM16.000000,8.000000c0.000000,-0.552000 -0.447000,-1.000000 -1.000000,-1.000000s-1.000000,0.448000 -1.000000,1.000000s0.447000,1.000000 1.000000,1.000000S16.000000,8.552000 16.000000,8.000000z"
        android:fillColor="#FFFFFF"/>
    <path
        android:pathData="M11,18l2,0l0,5l-2,0z"
        android:fillColor="#FFFFFF"/>
</vector>

+2 −2
Original line number Diff line number Diff line
@@ -121,7 +121,7 @@
        android:allowBackup="false"
        android:hardwareAccelerated="true"
        android:label="@string/app_label"
        android:icon="@*android:drawable/platlogo"
        android:icon="@drawable/icon"
        android:process="com.android.systemui"
        android:supportsRtl="true"
        android:theme="@style/systemui_theme">
@@ -288,7 +288,7 @@
        </activity>

        <activity android:name=".egg.LLandActivity"
                  android:theme="@android:style/Theme.Material.Light.NoActionBar.TranslucentDecor"
                  android:theme="@android:style/Theme.Material.Light.NoActionBar"
                  android:exported="true"
                  android:label="@string/lland"
                  android:hardwareAccelerated="true"
Loading