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

Commit dcc746ea authored by James Lemieux's avatar James Lemieux Committed by Android (Google) Code Review
Browse files

Merge "Avoid NPE when rotating after deleting timer" into ub-deskclock-dazzle

parents 739e1ed7 f4d06f80
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -56,14 +56,10 @@ public class TimerItemFragment extends Fragment {
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        final TimerItem view = (TimerItem) inflater.inflate(R.layout.timer_item, container, false);

        final View resetAddButton = view.findViewById(R.id.reset_add);
        resetAddButton.setOnClickListener(new ResetAddListener());

        final View labelView = view.findViewById(R.id.timer_label);
        labelView.setOnClickListener(new EditLabelListener());

        view.findViewById(R.id.reset_add).setOnClickListener(new ResetAddListener());
        view.findViewById(R.id.timer_label).setOnClickListener(new EditLabelListener());
        view.update(getTimer());

        return view;
    }

+22 −8
Original line number Diff line number Diff line
@@ -78,10 +78,25 @@ class TimerPagerAdapter extends PagerAdapter implements TimerListener {
        }

        final Timer timer = getTimers().get(position);
        final TimerItemFragment fragment = TimerItemFragment.newInstance(timer);

        // Search for the existing fragment by tag.
        final String tag = getClass().getSimpleName() + timer.getId();
        TimerItemFragment fragment = (TimerItemFragment) mFragmentManager.findFragmentByTag(tag);

        if (fragment != null) {
            // Reattach the existing fragment.
            mCurrentTransaction.attach(fragment);
        } else {
            // Create and add a new fragment.
            fragment = TimerItemFragment.newInstance(timer);
            mCurrentTransaction.add(container.getId(), fragment, tag);
        }

        if (fragment != mCurrentPrimaryItem) {
            setItemVisible(fragment, false);
        }

        mFragments.put(timer.getId(), fragment);
        mCurrentTransaction.add(container.getId(), fragment);

        return fragment;
    }
@@ -128,6 +143,11 @@ class TimerPagerAdapter extends PagerAdapter implements TimerListener {
        notifyDataSetChanged();
    }

    @Override
    public void timerRemoved(Timer timer) {
        notifyDataSetChanged();
    }

    @Override
    public void timerUpdated(Timer before, Timer after) {
        final TimerItemFragment timerItemFragment = mFragments.get(after.getId());
@@ -136,12 +156,6 @@ class TimerPagerAdapter extends PagerAdapter implements TimerListener {
        }
    }

    @Override
    public void timerRemoved(Timer timer) {
        mFragments.remove(timer.getId());
        notifyDataSetChanged();
    }

    /**
     * @return {@code true} if at least one timer is in a state requiring continuous updates
     */