• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2020 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.test.silkfx.app
18 
19 import android.app.Activity
20 import android.content.Context
21 import android.os.Bundle
22 import android.util.AttributeSet
23 import android.view.LayoutInflater
24 import android.view.MenuItem
25 import android.view.View
26 
27 open class BaseDemoActivity : Activity() {
onCreatenull28     override fun onCreate(savedInstanceState: Bundle?) {
29         super.onCreate(savedInstanceState)
30 
31         val inflater = LayoutInflater.from(this)
32         inflater.factory2 = object : LayoutInflater.Factory2 {
33             private val sClassPrefixList = arrayOf(
34                     "android.widget.",
35                     "android.webkit.",
36                     "android.app.",
37                     null
38             )
39             override fun onCreateView(
40                 parent: View?,
41                 name: String,
42                 context: Context,
43                 attrs: AttributeSet
44             ): View? {
45                 return onCreateView(name, context, attrs)
46             }
47 
48             override fun onCreateView(name: String, context: Context, attrs: AttributeSet): View? {
49                 for (prefix in sClassPrefixList) {
50                     try {
51                         val view = inflater.createView(name, prefix, attrs)
52                         if (view != null) {
53                             if (view is WindowObserver) {
54                                 view.setWindow(window)
55                             }
56                             return view
57                         }
58                     } catch (e: ClassNotFoundException) { }
59                 }
60                 return null
61             }
62         }
63     }
64 
onStartnull65     override fun onStart() {
66         super.onStart()
67         actionBar?.setDisplayHomeAsUpEnabled(true)
68     }
69 
onOptionsItemSelectednull70     override fun onOptionsItemSelected(item: MenuItem): Boolean {
71         if (item.itemId == android.R.id.home) {
72             onBackPressed()
73             return true
74         }
75         return super.onOptionsItemSelected(item)
76     }
77 }