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

Commit 58337ce9 authored by Lixin Yue's avatar Lixin Yue Committed by Jaikumar Ganesh
Browse files

Not update TransferActivity button during activity creating.

This is to fix below issue: when an ongoing transfer is almost to complete,
click the ongoing notification to launch TransferActivity, there will be
possible crash due to NullPointerException.
Root casue is: when TransferActivity onCreate() is called, the transfer is
still ongoing, so mIsComplete is false; but when onCreate() call to
updateProgressbar(), the transfer may change to complete, and then  updateButton()
will be called; In updateButton(),  mAlert (which will be initialized in father
class AlertActivity) still not intialized, which caused NullPointerException.

Change-Id: Ibfe363f3822386a38b9b108e29f60ad6673f70f6
parent b6ee11e6
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -113,6 +113,10 @@ public class BluetoothOppTransferActivity extends AlertActivity implements
    /** Observer to get notified when the content observer's data changes */
    private BluetoothTransferContentObserver mObserver;

    // do not update button during activity creating, only update when db
    // changes after activity created
    private boolean mNeedUpdateButton = false;

    private class BluetoothTransferContentObserver extends ContentObserver {
        public BluetoothTransferContentObserver() {
            super(new Handler());
@@ -121,6 +125,7 @@ public class BluetoothOppTransferActivity extends AlertActivity implements
        @Override
        public void onChange(boolean selfChange) {
            if (V) Log.v(TAG, "received db changes.");
            mNeedUpdateButton = true;
            updateProgressbar();
        }
    }
@@ -245,6 +250,8 @@ public class BluetoothOppTransferActivity extends AlertActivity implements

        customizeViewContent();

        // no need update button when activity creating
        mNeedUpdateButton = false;
        updateProgressbar();

        return mView;
@@ -435,12 +442,10 @@ public class BluetoothOppTransferActivity extends AlertActivity implements
        // DIALOG_RECEIVE_COMPLETE_SUCCESS/DIALOG_RECEIVE_COMPLETE_FAIL
        // Handle the case when DIALOG_SEND_ONGOING evolve to
        // DIALOG_SEND_COMPLETE_SUCCESS/DIALOG_SEND_COMPLETE_FAIL
        if (!mIsComplete && BluetoothShare.isStatusCompleted(mTransInfo.mStatus)) {

        if (!mIsComplete && BluetoothShare.isStatusCompleted(mTransInfo.mStatus)
                && mNeedUpdateButton) {
            displayWhichDialog();

            updateButton();

            customizeViewContent();
        }
    }