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