blob: dd7844cac200a81515e450bb75bb2e22f9f5b80b [file] [log] [blame]
cretin450328b872015-01-15 16:04:44 -08001/*
2 * Copyright (C) 2013 The CyanogenMod Project
Joey Rizzolid1331882016-12-29 17:28:02 +01003 * Copyright (C) 2017 The LineageOS Project
cretin450328b872015-01-15 16:04:44 -08004 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
Maarten Derkse901e0c2017-05-22 11:15:44 +020018package com.fairphone.setupwizard.setup;
cretin450328b872015-01-15 16:04:44 -080019
cretin4563550482016-04-27 12:38:53 -070020import android.app.Activity;
cretin450328b872015-01-15 16:04:44 -080021import android.app.Fragment;
cretin4561a331f2015-01-23 11:37:23 -080022import android.app.FragmentManager;
cretin4501f21da2015-02-23 13:52:37 -080023import android.content.Context;
Luis Mejiab31e14b2016-07-14 11:51:58 -070024import android.content.Intent;
cretin450328b872015-01-15 16:04:44 -080025import android.os.Bundle;
Luis Mejiab31e14b2016-07-14 11:51:58 -070026import android.os.Handler;
27import android.os.Message;
28import android.os.Messenger;
29import android.os.RemoteException;
30import android.util.Log;
cretin4563550482016-04-27 12:38:53 -070031import android.view.View;
cretin45031e58e2015-01-27 15:23:16 -080032
Maarten Derkse901e0c2017-05-22 11:15:44 +020033import com.fairphone.setupwizard.R;
34import com.fairphone.setupwizard.ui.SetupPageFragment;
35import com.fairphone.setupwizard.ui.SetupWizardActivity;
36import com.fairphone.setupwizard.util.SetupWizardUtils;
cretin450328b872015-01-15 16:04:44 -080037
Luis Mejiab31e14b2016-07-14 11:51:58 -070038import java.lang.ref.WeakReference;
39
cretin450328b872015-01-15 16:04:44 -080040public class FinishPage extends SetupPage {
41
42 public static final String TAG = "FinishPage";
43
Luis Mejiab31e14b2016-07-14 11:51:58 -070044 private static final String KEY_MESSENGER = "key_messenger";
Luis Mejiab31e14b2016-07-14 11:51:58 -070045
cretin45716ffa82015-01-21 15:55:03 -080046 private FinishFragment mFinishFragment;
47
cretin4501f21da2015-02-23 13:52:37 -080048 public FinishPage(Context context, SetupDataCallbacks callbacks) {
cretin450328b872015-01-15 16:04:44 -080049 super(context, callbacks);
50 }
51
52 @Override
cretin4561a331f2015-01-23 11:37:23 -080053 public Fragment getFragment(FragmentManager fragmentManager, int action) {
54 mFinishFragment = (FinishFragment)fragmentManager.findFragmentByTag(getKey());
55 if (mFinishFragment == null) {
56 Bundle args = new Bundle();
57 args.putString(Page.KEY_PAGE_ARGUMENT, getKey());
58 args.putInt(Page.KEY_PAGE_ACTION, action);
Luis Mejiab31e14b2016-07-14 11:51:58 -070059 args.putParcelable(KEY_MESSENGER, new Messenger(mHandler));
cretin4561a331f2015-01-23 11:37:23 -080060 mFinishFragment = new FinishFragment();
61 mFinishFragment.setArguments(args);
62 }
cretin45716ffa82015-01-21 15:55:03 -080063 return mFinishFragment;
cretin450328b872015-01-15 16:04:44 -080064 }
65
Luis Mejiab31e14b2016-07-14 11:51:58 -070066 private final PageHandler mHandler = new PageHandler(this);
67
68 private static class PageHandler extends Handler {
69
70 private final WeakReference<FinishPage> mPage;
71
72 private PageHandler(final FinishPage page) {
73 mPage = new WeakReference<>(page);
74 }
75
76 @Override
77 public void handleMessage(final Message msg) {
Luis Mejiab31e14b2016-07-14 11:51:58 -070078 }
79 }
80
cretin450328b872015-01-15 16:04:44 -080081 @Override
82 public String getKey() {
83 return TAG;
84 }
85
86 @Override
Joey Rizzolid1331882016-12-29 17:28:02 +010087 public int getTitleResId() {
88 return R.string.setup_complete;
Luis Mejiab31e14b2016-07-14 11:51:58 -070089 }
90
91 @Override
Joey Rizzolid1331882016-12-29 17:28:02 +010092 public int getIconResId() {
93 return -1;
cretin450328b872015-01-15 16:04:44 -080094 }
95
96 @Override
97 public boolean doNextAction() {
cretin45031e58e2015-01-27 15:23:16 -080098 getCallbacks().onFinish();
cretin450328b872015-01-15 16:04:44 -080099 return true;
100 }
101
102 @Override
103 public int getNextButtonTitleResId() {
Joey Rizzolid1331882016-12-29 17:28:02 +0100104 return R.string.start;
cretin450328b872015-01-15 16:04:44 -0800105 }
106
cretin450328b872015-01-15 16:04:44 -0800107 public static class FinishFragment extends SetupPageFragment {
108
109 @Override
cretin4563550482016-04-27 12:38:53 -0700110 protected void initializePage() {
111 final Activity activity = getActivity();
Joey Rizzolid1331882016-12-29 17:28:02 +0100112 if (activity == null) {
Luis Mejiab31e14b2016-07-14 11:51:58 -0700113 return;
cretin4563550482016-04-27 12:38:53 -0700114 }
115 }
cretin450328b872015-01-15 16:04:44 -0800116
117 @Override
118 protected int getLayoutResource() {
Joey Rizzolid1331882016-12-29 17:28:02 +0100119 return R.layout.setup_finished_page;
cretin450328b872015-01-15 16:04:44 -0800120 }
cretin450328b872015-01-15 16:04:44 -0800121 }
122
123}