-1

以下の jd-gui でクラスを逆コンパイルしましたが、"linearLayout"がどのように初期化されているのか、なぜlinearLayout.startAnimation(animationset)呼び出されるべきなのか理解できません。LockScreen メンバー"linearLayout"はどのインスタンスにも参照されていません。

これがどのように機能するか誰か教えてもらえますか?.class ファイルの逆コンパイル中に jd-gui が何かを失う可能性はありますか?

以下の逆コンパイルされたファイル:

// 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 ファイルの場合、baksmalidexdumpまたはdedexerを使用できます。

于 2013-05-22T17:17:07.467 に答える