1ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikaspackage androidx.appcompat.app;
28c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes/*
38c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes * Copyright (C) 2016 The Android Open Source Project
48c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes *
58c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes * Licensed under the Apache License, Version 2.0 (the "License");
68c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes * you may not use this file except in compliance with the License.
78c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes * You may obtain a copy of the License at
88c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes *
98c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes *      http://www.apache.org/licenses/LICENSE-2.0
108c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes *
118c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes * Unless required by applicable law or agreed to in writing, software
128c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes * distributed under the License is distributed on an "AS IS" BASIS,
138c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
148c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes * See the License for the specific language governing permissions and
158c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes * limitations under the License.
168c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes */
178c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes
188c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banesimport android.os.Bundle;
198c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banesimport android.view.LayoutInflater;
208c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banesimport android.view.View;
218c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banesimport android.view.ViewGroup;
228c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes
233de8a4e8305507475d7890205184946a25cf45e7Aurimas Liutikasimport androidx.annotation.Nullable;
243de8a4e8305507475d7890205184946a25cf45e7Aurimas Liutikasimport androidx.appcompat.test.R;
253de8a4e8305507475d7890205184946a25cf45e7Aurimas Liutikasimport androidx.appcompat.testutils.BaseTestActivity;
263de8a4e8305507475d7890205184946a25cf45e7Aurimas Liutikasimport androidx.fragment.app.Fragment;
273de8a4e8305507475d7890205184946a25cf45e7Aurimas Liutikas
288c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes
298c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banespublic class FragmentContentIdActivity extends BaseTestActivity {
308c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes
318c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes    @Override
328c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes    protected void onCreate(Bundle savedInstanceState) {
338c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes        super.onCreate(savedInstanceState);
348c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes
358c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes        getSupportFragmentManager().beginTransaction()
368c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes                .add(android.R.id.content, new FragmentA())
378c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes                .commit();
388c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes    }
398c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes
408c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes    @Override
418c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes    protected int getContentViewLayoutResId() {
428c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes        // We don't want to set a layout
438c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes        return 0;
448c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes    }
458c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes
468c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes    public void replaceWithFragmentB() {
478c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes        getSupportFragmentManager().beginTransaction()
488c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes                .replace(android.R.id.content, new FragmentB())
498c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes                .commit();
508c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes    }
518c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes
528c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes    public static class FragmentA extends Fragment {
538c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes        @Override
548c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
558c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes                @Nullable Bundle savedInstanceState) {
568c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes            View view = new View(getContext());
578c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes            view.setId(R.id.fragment_a);
588c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes            return view;
598c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes        }
608c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes    }
618c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes
628c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes    public static class FragmentB extends Fragment {
638c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes        @Nullable
648c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes        @Override
658c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
668c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes                @Nullable Bundle savedInstanceState) {
678c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes            View view = new View(getContext());
688c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes            view.setId(R.id.fragment_b);
698c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes            return view;
708c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes        }
718c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes    }
728c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes
738c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes}
748c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes
758c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes
768c3845ebb7e8198950510cd7a08bc8e66e2195feChris Banes
77