1
2package com.google.android.example.locktasktests;
3
4import android.app.Activity;
5import android.app.ActivityManager;
6import android.content.Context;
7import android.content.Intent;
8import android.os.Bundle;
9import android.os.Handler;
10import android.os.Looper;
11import android.view.View;
12
13public class MainActivity extends Activity {
14
15    private final static String TAG = "LockTaskTests";
16    Runnable mBackgroundPolling;
17    boolean mRunning;
18    Handler mHandler;
19
20    @Override
21    protected void onCreate(Bundle savedInstanceState) {
22        super.onCreate(savedInstanceState);
23        setContentView(R.layout.activity_main);
24        mBackgroundPolling = new Runnable() {
25            // Poll lock task state and set background pink if locked, otherwise white.
26            @Override
27            public void run() {
28                if (!mRunning) {
29                    return;
30                }
31                ActivityManager activityManager =
32                        (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
33                final int color = activityManager.getLockTaskModeState() !=
34                        ActivityManager.LOCK_TASK_MODE_NONE ? 0xFFFFC0C0 : 0xFFFFFFFF;
35                findViewById(R.id.root_launch).setBackgroundColor(color);
36                mHandler.postDelayed(this, 500);
37            }
38        };
39        mHandler = new Handler(Looper.getMainLooper());
40    }
41
42    @Override
43    public void onResume() {
44        super.onResume();
45        mRunning = true;
46        mBackgroundPolling.run();
47    }
48
49    @Override
50    public void onPause() {
51        super.onPause();
52        mRunning = false;
53    }
54
55    public void onButtonPressed(View v) {
56        Class activity = null;
57        switch (v.getId()) {
58            case R.id.button_default:
59                activity = LockDefaultActivity.class;
60                break;
61            case R.id.button_never:
62                activity = LockTaskNeverActivity.class;
63                break;
64            case R.id.button_whitelist:
65                activity = LockWhitelistedActivity.class;
66                break;
67            case R.id.button_always:
68                activity = LockAtLaunchActivity.class;
69                break;
70        }
71        Intent intent = new Intent(this, activity);
72        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
73        startActivity(intent);
74    }
75
76    public void onToast(View v) {
77        showLockTaskEscapeMessage();
78    }
79}
80