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

Commit fb7d6aa8 authored by calderwoodra's avatar calderwoodra Committed by android-build-merger
Browse files

Merge "Split MainActivity into two peers, old and new to keep logic isolated."

am: 056c1911

Change-Id: I5e0de9471f877035d4739eb7a9adada669ead538
parents 33e06da5 056c1911
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.VisibleForTesting;
import android.support.v4.app.Fragment;
import com.android.dialer.main.MainActivityPeer;

/** Utility methods for working with Fragments */
public class FragmentUtils {
@@ -89,6 +90,11 @@ public class FragmentUtils {
      @SuppressWarnings("unchecked") // Casts are checked using runtime methods
      T parent = ((FragmentUtilListener) fragment.getActivity()).getImpl(callbackInterface);
      return parent;
    } else if (fragment.getActivity() instanceof MainActivityPeer.PeerSupplier) {
      MainActivityPeer peer = ((MainActivityPeer.PeerSupplier) fragment.getActivity()).getPeer();
      if (peer instanceof FragmentUtilListener) {
        return ((FragmentUtilListener) peer).getImpl(callbackInterface);
      }
    }
    return null;
  }
+44 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2018 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
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License
 */

package com.android.dialer.main;

import android.content.Intent;
import android.os.Bundle;

/** Interface for peers of MainActivity. */
public interface MainActivityPeer {

  void onActivityCreate(Bundle saveInstanceState);

  void onActivityResume();

  void onActivityStop();

  void onNewIntent(Intent intent);

  void onActivityResult(int requestCode, int resultCode, Intent data);

  void onSaveInstanceState(Bundle bundle);

  boolean onBackPressed();

  /** Supplies the MainActivityPeer */
  interface PeerSupplier {

    MainActivityPeer getPeer();
  }
}