• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2018 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.tv.settings.connectivity;
18 
19 import android.arch.lifecycle.ViewModelProviders;
20 import android.support.v4.app.Fragment;
21 import android.support.v4.app.FragmentActivity;
22 
23 import com.android.tv.settings.connectivity.setup.AdvancedOptionsFlowInfo;
24 import com.android.tv.settings.connectivity.util.State;
25 import com.android.tv.settings.connectivity.util.StateMachine;
26 
27 /**
28  * State responsible for deciding enter advanced flow or retry.
29  */
30 public class EnterAdvancedFlowOrRetryState implements State {
31     private final FragmentActivity mActivity;
32     private Fragment mFragment;
33 
EnterAdvancedFlowOrRetryState(FragmentActivity activity)34     public EnterAdvancedFlowOrRetryState(FragmentActivity activity) {
35         mActivity = activity;
36     }
37 
38     @Override
processForward()39     public void processForward() {
40         mFragment = null;
41         StateMachine stateMachine = ViewModelProviders.of(mActivity).get(StateMachine.class);
42         AdvancedOptionsFlowInfo advInfo = ViewModelProviders.of(mActivity)
43                 .get(AdvancedOptionsFlowInfo.class);
44         if (advInfo.canStart()) {
45             stateMachine.getListener().onComplete(StateMachine.ENTER_ADVANCED_FLOW);
46         } else {
47             stateMachine.getListener().onComplete(StateMachine.CONTINUE);
48         }
49     }
50 
51     @Override
processBackward()52     public void processBackward() {
53         mFragment = null;
54         StateMachine stateMachine = ViewModelProviders.of(mActivity).get(StateMachine.class);
55         stateMachine.back();
56     }
57 
58     @Override
getFragment()59     public Fragment getFragment() {
60         return mFragment;
61     }
62 }
63