blob: 827c5d604e3efcec9385a7cdbc244b2a446ebabd [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.weblayer_private;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.IntentSender;
import org.chromium.ui.base.ActivityAndroidPermissionDelegate;
import org.chromium.ui.base.ActivityKeyboardVisibilityDelegate;
import org.chromium.ui.base.IntentWindowAndroid;
import java.lang.ref.WeakReference;
/**
* Implements intent sending for a fragment based window. This should be created when
* onAttach() is called on the fragment, and destroyed when onDetach() is called.
*/
public class FragmentWindowAndroid extends IntentWindowAndroid {
private BrowserFragmentImpl mFragment;
FragmentWindowAndroid(Context context, BrowserFragmentImpl fragment) {
super(context);
mFragment = fragment;
setKeyboardDelegate(new ActivityKeyboardVisibilityDelegate(getActivity()));
setAndroidPermissionDelegate(new ActivityAndroidPermissionDelegate(getActivity()));
}
@Override
protected final boolean startIntentSenderForResult(IntentSender intentSender, int requestCode) {
return mFragment.startIntentSenderForResult(
intentSender, requestCode, new Intent(), 0, 0, 0, null);
}
@Override
protected final boolean startActivityForResult(Intent intent, int requestCode) {
return mFragment.startActivityForResult(intent, requestCode, null);
}
@Override
public final WeakReference<Activity> getActivity() {
return new WeakReference<>(mFragment.getActivity());
}
}