-1

我已经通过下面的 jd-gui 反编译了一个类,但我无法理解“linearLayout”是如何被初始化的以及为什么linearLayout.startAnimation(animationset)应该被调用,LockScreen 成员“linearLayout”没有引用任何实例。

谁能告诉我这是如何工作的?jd-gui 是否有可能在反编译 .class 文件时丢失一些东西?

下面的反编译文件:

// Referenced classes of package com.android.internal.policy.impl:
//          KeyguardScreen, KeyguardStatusViewManager, DrawWaterWave, KeyguardUpdateMonitor, 
//          KeyguardScreenCallback

class LockScreen extends RelativeLayout
    implements KeyguardScreen
{
    class MultiWaveViewMethods
        implements com.android.internal.widget.multiwaveview.MultiWaveView.OnTriggerListener, UnlockWidgetCommonMethods
    {

        private boolean mCameraDisabled;
        private final MultiWaveView mMultiWaveView;
        final LockScreen this$0;

        public View getView()
        {
            return mMultiWaveView;
        }

        public void onGrabbed(View view, int i)
        {
        }

        public void onGrabbedStateChange(View view, int i)
        {
            if (i != 0)
                mCallback.pokeWakelock();
        }

        public void onReleased(View view, int i)
        {
        }

        public void onTrigger(View view, int i)
        {
            if (i != 0 && i != 1) goto _L2; else goto _L1
_L1:
            mCallback.goToUnlockScreen();
_L4:
            return;
_L2:
            if (i == 2 || i == 3)
                if (!mCameraDisabled)
                {
                    Intent intent = new Intent("android.intent.action.CAMERA_BUTTON", null);
                    mContext.sendOrderedBroadcast(intent, null);
                    mCallback.goToUnlockScreen();
                } else
                {
                    toggleRingMode();
                    mUnlockWidgetMethods.updateResources();
                    mCallback.pokeWakelock();
                }
            if (true) goto _L4; else goto _L3
_L3:
        }

        public void ping()
        {
            mMultiWaveView.ping();
        }

        public void reset(boolean flag)
        {
            mMultiWaveView.reset(flag);
        }

        public void updateResources()
        {
            int i;
            if (mCameraDisabled)
            {
                if (mSilentMode)
                    i = 0x107000b;
                else
                    i = 0x107000e;
            } else
            {
                i = 0x1070010;
            }
            mMultiWaveView.setTargetResources(i);
        }

        MultiWaveViewMethods(MultiWaveView multiwaveview)
        {
            boolean flag = true;
            this$0 = LockScreen.this;
            super();
            mMultiWaveView = multiwaveview;
            if (mLockPatternUtils.getDevicePolicyManager().getCameraDisabled(null))
            {
                Log.v("LockScreen", "Camera disabled by Device Policy");
                mCameraDisabled = flag;
            } else
            {
                if (mMultiWaveView.getTargetResourceId() == 0x1070010)
                    flag = false;
                mCameraDisabled = flag;
            }
        }
    }

    class SlidingTabMethods
        implements com.android.internal.widget.SlidingTab.OnTriggerListener, UnlockWidgetCommonMethods
    {

        private final SlidingTab mSlidingTab;
        final LockScreen this$0;

        public View getView()
        {
            return mSlidingTab;
        }

        public void onGrabbedStateChange(View view, int i)
        {
            if (i == 2)
            {
                mSilentMode = isSilentMode();
                SlidingTab slidingtab = mSlidingTab;
                int j;
                if (mSilentMode)
                    j = 0x104030b;
                else
                    j = 0x104030c;
                slidingtab.setRightHintText(j);
            }
            if (i != 0)
                mCallback.pokeWakelock();
        }

        public void onTrigger(View view, int i)
        {
            if (i != 1) goto _L2; else goto _L1
_L1:
            mCallback.goToUnlockScreen();
_L4:
            return;
_L2:
            if (i == 2)
            {
                toggleRingMode();
                mCallback.pokeWakelock();
            }
            if (true) goto _L4; else goto _L3
_L3:
        }

        public void ping()
        {
        }

        public void reset(boolean flag)
        {
            mSlidingTab.reset(flag);
        }

        public void updateResources()
        {
            int i = 1;
            SlidingTab slidingtab;
            int j;
            int k;
            int l;
            int i1;
            if (!mSilentMode || mAudioManager.getRingerMode() != i)
                i = 0;
            slidingtab = mSlidingTab;
            if (mSilentMode)
            {
                if (i != 0)
                    j = 0x10802cc;
                else
                    j = 0x10802c9;
            } else
            {
                j = 0x10802ca;
            }
            if (mSilentMode)
                k = 0x1080398;
            else
                k = 0x1080395;
            if (mSilentMode)
                l = 0x1080381;
            else
                l = 0x1080380;
            if (mSilentMode)
                i1 = 0x1080394;
            else
                i1 = 0x1080393;
            slidingtab.setRightTabResources(j, k, l, i1);
        }

        SlidingTabMethods(SlidingTab slidingtab)
        {
            this$0 = LockScreen.this;
            super();
            mSlidingTab = slidingtab;
        }
    }

    private static interface UnlockWidgetCommonMethods
    {

        public abstract View getView();

        public abstract void ping();

        public abstract void reset(boolean flag);

        public abstract void updateResources();
    }

    class WaveViewMethods
        implements com.android.internal.widget.WaveView.OnTriggerListener, UnlockWidgetCommonMethods
    {

        private final WaveView mWaveView;
        final LockScreen this$0;

        public View getView()
        {
            return mWaveView;
        }

        public void onGrabbedStateChange(View view, int i)
        {
            if (i == 10)
                mCallback.pokeWakelock(30000);
        }

        public void onTrigger(View view, int i)
        {
            Log.i("LockScreen", (new StringBuilder()).append("onTrigger, whichHandle=").append(i).toString());
            if (i == 10)
            {
                Log.i("LockScreen", "onTrigger, requestUnlockScreen");
                requestUnlockScreen();
            }
        }

        public void ping()
        {
        }

        public void reset(boolean flag)
        {
            mWaveView.reset();
        }

        public void updateResources()
        {
        }

        WaveViewMethods(WaveView waveview)
        {
            this$0 = LockScreen.this;
            super();
            mWaveView = waveview;
        }
    }


    private static final boolean DBG = true;
    private static final String ENABLE_MENU_KEY_FILE = "/data/local/enable_menu_key";
    static final String LOCKSCREEN_WALLPAPER = "lockScreenWallpaper";
    static final File LOCKSCREEN_WALLPAPER_DIR;
    static final File LOCKSCREEN_WALLPAPER_FILE;
    private static final int MASTER_STREAM_TYPE = 3;
    private static final int ON_RESUME_PING_DELAY = 500;
    private static final int STAY_ON_WHILE_GRABBED_TIMEOUT = 30000;
    private static final String TAG = "LockScreen";
    private static final int WAIT_FOR_ANIMATION_TIMEOUT;
    Bitmap BitmapLock;
    Bitmap BitmapLockin;
    Bitmap BitmapLockout;
    final float MAX_LOCK_VOLUME = 0.2F;
    final float MIN_LOCK_VOLUME = 0.05F;
    int circleinwidth;
    int circlewidth;
    private ImageView imageCircle;
    private LinearLayout linearLayout;
    private LinearLayout linearLayout2;
    private int locationBrower[];
    private int locationCall[];
    private int locationCamera[];
    private boolean mAnimate;
    private AudioManager mAudioManager;
    private ImageView mBrower;
    private boolean mBrowerPress;
    private ImageView mCall;
    private boolean mCallPress;
    private KeyguardScreenCallback mCallback;
    private ImageView mCamera;
    private boolean mCameraPress;
    private RelativeLayout mChildView;
    private Context mContext;
    private int mCreationOrientation;
    private boolean mDMLock;
    private boolean mEnableMenuKeyInLockScreen;
    private float mFirstMotionX;
    private float mFirstMotionY;
    private HDMINative mHDMI;
    private int mKeyboardHidden;
    private float mLastMotionX;
    private float mLastMotionY;
    private LockPatternUtils mLockPatternUtils;
    private int mLockSoundId;
    private int mLockSoundStreamId;
    private SoundPool mLockSounds;
    private TextView mLockString;
    private int mMasterStreamMaxVolume;
    private float mMotionDeltaX;
    private float mMotionDeltaY;
    private int mMoveFirst;
    private boolean mMoveFirst2;
    private final Runnable mOnResumePing = new Runnable() {

        final LockScreen this$0;

        public void run()
        {
            if (mDMLock)
                mUnlockWidgetMethods.ping();
        }


            {
                this$0 = LockScreen.this;
                super();
            }
    };
    Paint mPaintin;
    Paint mPaintout;
    private boolean mScreenOn;
    private boolean mSilentMode;
    private KeyguardStatusViewManager mStatusViewManager;
    private boolean mTouching;
    private boolean mUnlock;
    private int mUnlockSoundId;
    private View mUnlockWidget;
    private UnlockWidgetCommonMethods mUnlockWidgetMethods;
    private KeyguardUpdateMonitor mUpdateMonitor;
    private final WallpaperManager mWallpaperManager;
    private float mYVelocity;
    DrawWaterWave m_DrawWaterWave;

    LockScreen(Context context, Configuration configuration, LockPatternUtils lockpatternutils, KeyguardUpdateMonitor keyguardupdatemonitor, KeyguardScreenCallback keyguardscreencallback)
    {
        super(context);
        mHDMI = new HDMINative();
        BitmapLockin = null;
        BitmapLockout = null;
        BitmapLock = null;
        circleinwidth = 75;
        circlewidth = 180;
        mMoveFirst = 0;
        mMoveFirst2 = false;
        mPaintin = null;
        mPaintout = null;
        mTouching = false;
        mAnimate = false;
        mUnlock = false;
        mScreenOn = false;
        mDMLock = false;
        mContext = null;
        mCallPress = false;
        mBrowerPress = false;
        mCameraPress = false;
        locationCall = new int[2];
        locationBrower = new int[2];
        locationCamera = new int[2];
        mContext = context;
        mLockPatternUtils = lockpatternutils;
        mUpdateMonitor = keyguardupdatemonitor;
        mCallback = keyguardscreencallback;
        mEnableMenuKeyInLockScreen = shouldEnableMenuKey();
        mWallpaperManager = WallpaperManager.getInstance(context);
        mCreationOrientation = configuration.orientation;
        mKeyboardHidden = configuration.hardKeyboardHidden;
        LayoutInflater layoutinflater = LayoutInflater.from(context);
        Log.v("LockScreen", (new StringBuilder()).append("Creation orientation = ").append(mCreationOrientation).toString());
        Log.i("LockScreen", "we will initialize the LockScreen single portrait layout");
        layoutinflater.inflate(0x109005a, this, true);
        mChildView = (RelativeLayout)findViewById(0x10202b4);
        setBackDrawable();
        mStatusViewManager = new KeyguardStatusViewManager(this, mUpdateMonitor, mLockPatternUtils, mCallback, false);
        setFocusable(true);
        setFocusableInTouchMode(true);
        setDescendantFocusability(0x60000);
        mAudioManager = (AudioManager)mContext.getSystemService("audio");
        mSilentMode = isSilentMode();
        m_DrawWaterWave = new DrawWaterWave(context);
        if (mDMLock)
        {
            mUnlockWidget = findViewById(0x102029b);
            android.content.ContentResolver contentresolver;
            String s;
            StringBuilder stringbuilder;
            if (mUnlockWidget instanceof SlidingTab)
            {
                SlidingTab slidingtab = (SlidingTab)mUnlockWidget;
                slidingtab.setHoldAfterTrigger(true, false);
                slidingtab.setLeftHintText(0x104030a);
                slidingtab.setLeftTabResources(0x10802cb, 0x1080396, 0x1080377, 0x108038a);
                SlidingTabMethods slidingtabmethods = new SlidingTabMethods(slidingtab);
                slidingtab.setOnTriggerListener(slidingtabmethods);
                mUnlockWidgetMethods = slidingtabmethods;
            } else
            if (mUnlockWidget instanceof WaveView)
            {
                WaveView waveview = (WaveView)mUnlockWidget;
                WaveViewMethods waveviewmethods = new WaveViewMethods(waveview);
                waveview.setOnTriggerListener(waveviewmethods);
                mUnlockWidgetMethods = waveviewmethods;
            } else
            if (mUnlockWidget instanceof MultiWaveView)
            {
                MultiWaveView multiwaveview = (MultiWaveView)mUnlockWidget;
                MultiWaveViewMethods multiwaveviewmethods = new MultiWaveViewMethods(multiwaveview);
                multiwaveview.setOnTriggerListener(multiwaveviewmethods);
                mUnlockWidgetMethods = multiwaveviewmethods;
            } else
            {
                throw new IllegalStateException((new StringBuilder()).append("Unrecognized unlock widget: ").append(mUnlockWidget).toString());
            }
            mUnlockWidgetMethods.updateResources();
        }
        BitmapLockin = ((BitmapDrawable)(BitmapDrawable)getResources().getDrawable(0x1080617)).getBitmap();
        BitmapLockout = ((BitmapDrawable)(BitmapDrawable)getResources().getDrawable(0x1080619)).getBitmap();
        BitmapLock = ((BitmapDrawable)(BitmapDrawable)getResources().getDrawable(0x1080618)).getBitmap();
        imageCircle = (ImageView)findViewById(0x10202c7);
        mCall = (ImageView)findViewById(0x10202c0);
        mBrower = (ImageView)findViewById(0x10202c1);
        mCamera = (ImageView)findViewById(0x10202c2);
        mLockString = (TextView)findViewById(0x10202bd);
        mPaintin = new Paint();
        mPaintout = new Paint();
        contentresolver = mContext.getContentResolver();
        mLockSounds = new SoundPool(1, 1, 0);
        s = android.provider.Settings.System.getString(contentresolver, "lock_sound");
        if (s != null)
            mLockSoundId = mLockSounds.load(s, 1);
        if (s == null || mLockSoundId == 0)
            Log.d("LockScreen", (new StringBuilder()).append("failed to load sound from ").append(s).toString());
        if ("/system/media/audio/ui/Effect_Tick.ogg" != null)
            mUnlockSoundId = mLockSounds.load("/system/media/audio/ui/Effect_Tick.ogg", 1);
        if ("/system/media/audio/ui/Effect_Tick.ogg" == null || mUnlockSoundId == 0)
            Log.d("LockScreen", (new StringBuilder()).append("failed to load sound from ").append("/system/media/audio/ui/Effect_Tick.ogg").toString());
        if (mUpdateMonitor.DM_IsLocked() && mDMLock)
        {
            Log.i("LockScreen", "we should hide unlock widget");
            mUnlockWidget.setVisibility(4);
        }
        if (mDMLock)
        {
            stringbuilder = (new StringBuilder()).append("*** LockScreen accel is ");
            String s1;
            if (mUnlockWidget.isHardwareAccelerated())
                s1 = "on";
            else
                s1 = "off";
            Log.v("LockScreen", stringbuilder.append(s1).toString());
        }
    }

    private boolean isScreenOn()
    {
        PowerManager powermanager = (PowerManager)mContext.getSystemService("power");
        boolean flag = false;
        if (powermanager != null)
        {
            flag = powermanager.isScreenOn();
            Log.d("LockScreen", (new StringBuilder()).append("screenOn:").append(flag).toString());
        }
        return flag;
    }

    private boolean isSilentMode()
    {
        boolean flag;
        if (mAudioManager.getRingerMode() != 2)
            flag = true;
        else
            flag = false;
        return flag;
    }

    private void playSounds(boolean flag)
    {
        if (android.provider.Settings.System.getInt(mContext.getContentResolver(), "lockscreen_sounds_enabled", 1) != 1) goto _L2; else goto _L1
_L1:
        int i;
        if (flag)
            i = mLockSoundId;
        else
            i = mUnlockSoundId;
        mLockSounds.stop(mLockSoundStreamId);
        if (mAudioManager != null) goto _L4; else goto _L3
_L3:
        mAudioManager = (AudioManager)mContext.getSystemService("audio");
        if (mAudioManager != null) goto _L5; else goto _L2
_L2:
        return;
_L5:
        mMasterStreamMaxVolume = mAudioManager.getStreamMaxVolume(3);
_L4:
        int j = mAudioManager.getStreamVolume(3);
        if (j != 0)
        {
            float f = 0.05F + 0.15F * ((float)j / (float)mMasterStreamMaxVolume);
            Log.d("LockScreen", (new StringBuilder()).append("playSounds").append(i).toString());
            mLockSoundStreamId = mLockSounds.play(i, f, f, 1, 0, 1.0F);
        }
        if (true) goto _L2; else goto _L6
_L6:
    }

    private void requestUnlockScreen()
    {
        postDelayed(new Runnable() {

            final LockScreen this$0;

            public void run()
            {
                mCallback.goToUnlockScreen();
            }


            {
                this$0 = LockScreen.this;
                super();
            }
        }, 0L);
    }

    private void setBackDrawable()
    {
    }

    private boolean shouldEnableMenuKey()
    {
        boolean flag = getResources().getBoolean(0x111001a);
        boolean flag1 = ActivityManager.isRunningInTestHarness();
        boolean flag2 = (new File("/data/local/enable_menu_key")).exists();
        boolean flag3;
        if (!flag || flag1 || flag2)
            flag3 = true;
        else
            flag3 = false;
        return flag3;
    }

    private void toggleRingMode()
    {
        int i = 1;
        boolean flag;
        if (!mSilentMode)
            flag = i;
        else
            flag = false;
        mSilentMode = flag;
        if (mSilentMode)
        {
            int j;
            AudioManager audiomanager;
            if (android.provider.Settings.System.getInt(mContext.getContentResolver(), "vibrate_in_silent", i) == i)
                j = i;
            else
                j = 0;
            audiomanager = mAudioManager;
            if (j == 0)
                i = 0;
            audiomanager.setRingerMode(i);
        } else
        {
            mAudioManager.setRingerMode(2);
        }
    }

    public void cleanUp()
    {
        mUpdateMonitor.removeCallback(this);
        mLockPatternUtils = null;
        mUpdateMonitor = null;
        mCallback = null;
    }

    protected void dispatchDraw(Canvas canvas)
    {
        if ((mTouching || mMoveFirst != 0) && !mDMLock)
        {
            super.dispatchDraw(canvas);
            canvas.save();
            canvas.translate(0.0F, 0.0F);
            if (mMotionDeltaX * mMotionDeltaX + mMotionDeltaY * mMotionDeltaY > (float)(circleinwidth * circleinwidth))
            {
                float f = mMotionDeltaX * mMotionDeltaX + mMotionDeltaY * mMotionDeltaY;
                float f1 = (0 + (0 + circlewidth)) * (0 + (0 + circlewidth));
                float f2 = (255F * f) / f1;
                if (f2 >= 255F)
                    f2 = 255F;
                mPaintin.setAlpha((int)(255F - f2));
            } else
            {
                mPaintin.setAlpha(255);
            }
            canvas.drawBitmap(BitmapLockin, mFirstMotionX - (float)circlewidth, mFirstMotionY - (float)circlewidth, mPaintin);
            canvas.drawBitmap(BitmapLock, mFirstMotionX - 25F, mFirstMotionY - 25F, null);
            canvas.restore();
            invalidate();
            if (mMoveFirst == 1)
                mMoveFirst = 2;
            if (isScreenOn())
                mCallback.pokeWakelock();
            else
                Log.i("LockScreen", "dispatch, screenoff");
        } else
        {
            setBackDrawable();
            super.dispatchDraw(canvas);
        }
    }

    public boolean needsInput()
    {
        return false;
    }

    protected void onAttachedToWindow()
    {
        super.onAttachedToWindow();
        updateConfiguration();
    }

    public void onClick2(View view)
    {
        if (view.getId() != 0x10202c0) goto _L2; else goto _L1
_L1:
        mCallPress = true;
        mBrowerPress = false;
        mCameraPress = false;
        mCall.setVisibility(0);
        mBrower.setVisibility(4);
        mCamera.setVisibility(4);
_L4:
        return;
_L2:
        if (view.getId() == 0x10202c1)
        {
            mCallPress = false;
            mBrowerPress = true;
            mCameraPress = false;
            mCall.setVisibility(4);
            mBrower.setVisibility(0);
            mCamera.setVisibility(4);
        } else
        if (view.getId() == 0x10202c2)
        {
            mCallPress = false;
            mBrowerPress = false;
            mCameraPress = true;
            mCall.setVisibility(4);
            mBrower.setVisibility(4);
            mCamera.setVisibility(0);
        }
        if (true) goto _L4; else goto _L3
_L3:
    }

    protected void onConfigurationChanged(Configuration configuration)
    {
        super.onConfigurationChanged(configuration);
        updateConfiguration();
    }

    public boolean onKeyDown(int i, KeyEvent keyevent)
    {
        if (i == 82 && mEnableMenuKeyInLockScreen)
            mCallback.goToUnlockScreen();
        return false;
    }

    public void onPause()
    {
        mScreenOn = false;
        mTouching = false;
        mStatusViewManager.onPause();
        setBackDrawable();
        if (mDMLock)
            mUnlockWidgetMethods.reset(false);
        mHDMI.hdmiPortraitEnable(false);
    }

    public void onPhoneStateChanged(String s)
    {
    }

    public void onResume()
    {
        mAnimate = false;
        mTouching = false;
        mMotionDeltaY = 0.0F;
        mStatusViewManager.onResume();
        postDelayed(mOnResumePing, 500L);
        mHDMI.hdmiPortraitEnable(true);
        mScreenOn = isScreenOn();
        setBackDrawable();
    }

    public void onRingerModeChanged(int i)
    {
        boolean flag;
        if (2 != i)
            flag = true;
        else
            flag = false;
        if (flag != mSilentMode)
        {
            mSilentMode = flag;
            if (mDMLock)
                mUnlockWidgetMethods.updateResources();
        }
    }

    public boolean onTouchEvent(MotionEvent motionevent)
    {
        if (mScreenOn && !mDMLock) goto _L2; else goto _L1
_L1:
        boolean flag;
        Log.w("LockScreen", " ** Lock Screen is off or animation is running **");
        flag = false;
_L8:
        return flag;
_L2:
        int i;
        int j;
        int k;
        int l;
        int i1;
        int j1;
        int k1;
        int l1;
        int i2;
        i = motionevent.getAction();
        j = (int)motionevent.getX();
        mUnlock = false;
        k = (int)motionevent.getY();
        l = mCall.getWidth();
        i1 = mCall.getHeight();
        j1 = mBrower.getWidth();
        k1 = mBrower.getHeight();
        l1 = mCamera.getWidth();
        i2 = mCamera.getHeight();
        mCall.getLocationInWindow(locationCall);
        mBrower.getLocationInWindow(locationBrower);
        mCamera.getLocationInWindow(locationCamera);
        i & 0xff;
        JVM INSTR tableswitch 0 2: default 172
    //                 0 193
    //                 1 834
    //                 2 662;
           goto _L3 _L4 _L5 _L6
_L5:
        break MISSING_BLOCK_LABEL_834;
_L3:
        break; /* Loop/switch isn't completed */
_L4:
        break; /* Loop/switch isn't completed */
_L9:
        if (mUnlock)
            mCallback.goToUnlockScreen();
        flag = true;
        if (true) goto _L8; else goto _L7
_L7:
        if (!mAnimate)
        {
            if (k > locationCall[1] && k < i1 + locationCall[1] && j > locationCall[0] && j < l + locationCall[0])
            {
                mCallPress = true;
                mBrowerPress = false;
                mCameraPress = false;
                mCall.setVisibility(0);
                mBrower.setVisibility(4);
                mCamera.setVisibility(4);
                mLockString.setText(0x10404db);
            } else
            if (k > locationBrower[1] && k < k1 + locationBrower[1] && j > locationBrower[0] && j < j1 + locationBrower[0])
            {
                mCallPress = false;
                mBrowerPress = true;
                mCameraPress = false;
                mCall.setVisibility(4);
                mBrower.setVisibility(0);
                mCamera.setVisibility(4);
                mLockString.setText(0x10404db);
            } else
            if (k > locationCamera[1] && k < i2 + locationCamera[1] && j > locationCamera[0] && j < l1 + locationCamera[0])
            {
                mCallPress = false;
                mBrowerPress = false;
                mCameraPress = true;
                mCall.setVisibility(4);
                mBrower.setVisibility(4);
                mCamera.setVisibility(0);
                mLockString.setText(0x10404db);
            } else
            {
                onWallpaperTap(motionevent);
            }
            playSounds(true);
            mFirstMotionX = j;
            mFirstMotionY = k;
            mMoveFirst2 = true;
            m_DrawWaterWave.DropStone(j, k, 10, 50);
            if (mMoveFirst == 10)
            {
                mMoveFirst = 1;
                AnimationSet animationset = new AnimationSet(false);
                b8 b8_1 = new b8(mFirstMotionX - (float)circlewidth, mFirstMotionY - (float)circlewidth, linearLayout, linearLayout2);
                b8_1.initialize(circlewidth, circlewidth, 0, 0);
                animationset.addAnimation(b8_1);
                linearLayout.startAnimation(animationset);
                android.view.animation.Animation.AnimationListener animationlistener = new android.view.animation.Animation.AnimationListener() {

                    final LockScreen this$0;

                    public void onAnimationEnd(Animation animation)
                    {
                        if (mTouching)
                            linearLayout2.setVisibility(0);
                        linearLayout.clearAnimation();
                        linearLayout.setVisibility(4);
                    }

                    public void onAnimationRepeat(Animation animation)
                    {
                    }

                    public void onAnimationStart(Animation animation)
                    {
                    }


            {
                this$0 = LockScreen.this;
                super();
            }
                };
                b8_1.setAnimationListener(animationlistener);
            }
        }
          goto _L9
_L6:
        if (!mAnimate)
        {
            mTouching = true;
            mMotionDeltaY = (float)k - mFirstMotionY;
            mMotionDeltaX = (float)j - mFirstMotionX;
            if ((mMotionDeltaX % 3F == 0.0F || mMotionDeltaY % 3F == 0.0F) && mFirstMotionY < 750F)
                onWallpaperTap(motionevent);
            if (mMoveFirst2 && (mMotionDeltaX >= 20F || mMotionDeltaY >= 20F || mMotionDeltaX <= -20F || mMotionDeltaY <= -20F) && mFirstMotionY < 750F)
                mMoveFirst2 = false;
            if (mMotionDeltaY <= 0.0F);
            m_DrawWaterWave.DropStone(j, k, 10, 50);
        }
          goto _L9
        if (!mAnimate)
        {
            onWallpaperTap(motionevent);
            float f = mMotionDeltaX;
            float f1 = mMotionDeltaY;
            mTouching = false;
            mMotionDeltaY = 0.0F;
            mMotionDeltaX = 0.0F;
            mMoveFirst = 0;
            if ((mCallPress || mBrowerPress || mCameraPress) && k < 700 && mFirstMotionY > 750F)
            {
                Intent intent = new Intent();
                if (mCallPress)
                {
                    intent.setClassName("com.android.contacts", "com.android.contacts.DialtactsActivity");
                    intent.setAction("android.intent.action.DIAL");
                } else
                if (mBrowerPress)
                    intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
                else
                if (mCameraPress)
                    intent.setClassName("com.android.camera", "com.android.camera.Camera");
                intent.setFlags(0x10000000);
                mCallback.goToUnlockScreen();
                mContext.startActivity(intent);
                mUnlock = false;
            } else
            if (f * f + f1 * f1 > (float)(circlewidth * circlewidth))
            {
                mUnlock = true;
            } else
            {
                mCall.setVisibility(0);
                mBrower.setVisibility(0);
                mCamera.setVisibility(0);
                mLockString.setText(0x10404a0);
                mUnlock = false;
            }
            imageCircle.setVisibility(8);
        }
          goto _L9
    }

    protected void onWallpaperTap(MotionEvent motionevent)
    {
        motionevent.findPointerIndex(motionevent.getPointerId(0));
        Log.d("SlideButton", (new StringBuilder()).append("eee   ").append(motionevent).toString());
        mWallpaperManager.sendWallpaperTouch(getWindowToken(), motionevent);
    }

    protected void onWallpaperTapSecondary(MotionEvent motionevent)
    {
        int i = motionevent.findPointerIndex(motionevent.getPointerId(0));
        mWallpaperManager.sendWallpaperCommand(getWindowToken(), "android.wallpaper.secondaryTap", 0 + (int)motionevent.getX(i), 0 + (int)motionevent.getY(i), 0, null);
    }

    void updateConfiguration()
    {
        int i;
        Configuration configuration;
        i = 1;
        configuration = getResources().getConfiguration();
        if (configuration.orientation == mCreationOrientation) goto _L2; else goto _L1
_L1:
        mCallback.recreateMe(configuration);
_L4:
        return;
_L2:
        if (configuration.hardKeyboardHidden != mKeyboardHidden)
        {
            mKeyboardHidden = configuration.hardKeyboardHidden;
            if (mKeyboardHidden != i)
                i = 0;
            if (mUpdateMonitor.isKeyguardBypassEnabled() && i != 0)
                mCallback.goToUnlockScreen();
        }
        if (true) goto _L4; else goto _L3
_L3:
    }

    static 
    {
        LOCKSCREEN_WALLPAPER_DIR = new File("/data/data/com.android.settings/mtk");
        LOCKSCREEN_WALLPAPER_FILE = new File(LOCKSCREEN_WALLPAPER_DIR, "lockScreenWallpaper");
    }



/*
    static boolean access$002(LockScreen lockscreen, boolean flag)
    {
        lockscreen.mSilentMode = flag;
        return flag;
    }

*/








    enter code here



}
4

1 回答 1

1

一个好的经验法则是这些反编译器只生成类似于 java 代码的东西。经常存在语法/编译问题,并且无法保证语义与原始类的语义匹配。

如果您想要无损表示,最好使用反汇编程序查看字节码。对于 dex 文件,您可以使用baksmalidexdumpdedexer

于 2013-05-22T17:17:07.467 回答