1394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov/*
2394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov * Copyright (C) 2015 The Android Open Source Project
3394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov *
4394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov * Licensed under the Apache License, Version 2.0 (the "License");
5394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov * you may not use this file except in compliance with the License.
6394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov * You may obtain a copy of the License at
7394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov *
8394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov *      http://www.apache.org/licenses/LICENSE-2.0
9394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov *
10394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov * Unless required by applicable law or agreed to in writing, software
11394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov * distributed under the License is distributed on an "AS IS" BASIS,
12394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov * See the License for the specific language governing permissions and
14394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov * limitations under the License.
15394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov */
16394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov
17394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikovpackage android.support.design.widget;
18394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov
19394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikovimport android.os.Bundle;
20394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikovimport android.support.v7.app.AppCompatActivity;
21394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikovimport android.view.WindowManager;
22394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov
23394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikovabstract class BaseTestActivity extends AppCompatActivity {
24394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov
25394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov    private boolean mDestroyed;
26394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov
27394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov    @Override
28394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov    protected void onCreate(Bundle savedInstanceState) {
29394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov        super.onCreate(savedInstanceState);
30320463c1cf5f8e50cce340df195b60835fe23002Aurimas Liutikas        overridePendingTransition(0, 0);
31320463c1cf5f8e50cce340df195b60835fe23002Aurimas Liutikas
32394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
33394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov        final int contentView = getContentViewLayoutResId();
34394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov        if (contentView > 0) {
35394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov            setContentView(contentView);
36394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov        }
37394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov        onContentViewSet();
38394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
39394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov    }
40394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov
41320463c1cf5f8e50cce340df195b60835fe23002Aurimas Liutikas    @Override
42320463c1cf5f8e50cce340df195b60835fe23002Aurimas Liutikas    public void finish() {
43320463c1cf5f8e50cce340df195b60835fe23002Aurimas Liutikas        super.finish();
44320463c1cf5f8e50cce340df195b60835fe23002Aurimas Liutikas        overridePendingTransition(0, 0);
45320463c1cf5f8e50cce340df195b60835fe23002Aurimas Liutikas    }
46320463c1cf5f8e50cce340df195b60835fe23002Aurimas Liutikas
47394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov    protected abstract int getContentViewLayoutResId();
48394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov
49394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov    protected void onContentViewSet() {}
50394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov
51394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov    @Override
52394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov    protected void onDestroy() {
53394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov        super.onDestroy();
54394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov        mDestroyed = true;
55394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov    }
56394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov
57394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov    @Override
58394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov    public boolean isDestroyed() {
59394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov        return mDestroyed;
60394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov    }
61394c4272d0e220cf7af236665eecaf99dfed25b1Kirill Grouchnikov}
62