1 // Copyright 2023 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 package org.chromium.cronet_sample_apk; 6 7 import androidx.fragment.app.Fragment; 8 import androidx.lifecycle.ViewModel; 9 10 import java.util.HashMap; 11 import java.util.Map; 12 13 public class SampleActivityViewModel extends ViewModel { 14 private Map<Integer, Fragment> mFragmentMap = new HashMap<>(); 15 16 public static final int FRAGMENT_ID_HOME = 0; 17 public static final int FRAGMENT_ID_FLAGS = 1; 18 getFragment(int fragmentId)19 public Fragment getFragment(int fragmentId) { 20 if (mFragmentMap.containsKey(fragmentId)) { 21 return mFragmentMap.get(fragmentId); 22 } 23 Fragment fragment; 24 switch (fragmentId) { 25 case FRAGMENT_ID_HOME: 26 fragment = new MainFragment(); 27 break; 28 case FRAGMENT_ID_FLAGS: 29 fragment = new OptionsFragment(); 30 break; 31 default: 32 throw new IllegalArgumentException( 33 String.format( 34 "Fragment %d does not map to any implementation.", fragmentId)); 35 } 36 mFragmentMap.put(fragmentId, fragment); 37 return fragment; 38 } 39 } 40