Skip to content

Commit

Permalink
Add a support version of DaggerDialogFragment, and deprecate the fram…
Browse files Browse the repository at this point in the history
…ework fragment version

Fixes #1299

RELNOTES=Adds a support version of `DaggerDialogFragment`

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=215741860
  • Loading branch information
ronshapiro committed Oct 18, 2018
1 parent dd0e7b0 commit 47be5db
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
5 changes: 5 additions & 0 deletions java/dagger/android/DaggerDialogFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,12 @@
* A {@link DialogFragment} that injects its members in {@link #onAttach(Context)} and can be used
* to inject child {@link Fragment}s attached to it. Note that when this fragment gets reattached,
* its members will be injected again.
*
* @deprecated Framework fragments are deprecated in Android P; prefer {@code
* dagger.android.support.DaggerDialogFragment} to use a support-library-friendly {@code
* dagger.android} dialog fragment implementation.
*/
@Deprecated
@Beta
public abstract class DaggerDialogFragment extends DialogFragment implements HasFragmentInjector {

Expand Down
48 changes: 48 additions & 0 deletions java/dagger/android/support/DaggerDialogFragment.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/*
* Copyright (C) 2018 The Dagger Authors.
*
* 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 dagger.android.support;

import android.content.Context;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import dagger.android.AndroidInjector;
import dagger.android.DispatchingAndroidInjector;
import dagger.internal.Beta;
import javax.inject.Inject;

/**
* A {@link DialogFragment} that injects its members in {@link #onAttach(Context)} and can be used
* to inject child {@link Fragment}s attached to it. Note that when this fragment gets reattached,
* its members will be injected again.
*/
@Beta
public abstract class DaggerDialogFragment extends DialogFragment
implements HasSupportFragmentInjector {

@Inject DispatchingAndroidInjector<Fragment> childFragmentInjector;

@Override
public void onAttach(Context context) {
AndroidSupportInjection.inject(this);
super.onAttach(context);
}

@Override
public AndroidInjector<Fragment> supportFragmentInjector() {
return childFragmentInjector;
}
}

0 comments on commit 47be5db

Please sign in to comment.