1 /*
2  * Copyright 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.example.androidx.webkit;
18 
19 import android.app.Activity;
20 import android.content.Context;
21 import android.content.Intent;
22 import android.os.Bundle;
23 import android.widget.ListView;
24 
25 import androidx.appcompat.app.AppCompatActivity;
26 
27 import org.jspecify.annotations.Nullable;
28 
29 /**
30  * An {@link Activity} for exercising various WebView functionality. This Activity is a {@link
31  * ListView} which starts other Activities, each of which may similarly be a ListView, or may
32  * actually exercise specific {@link android.webkit.WebView} features.
33  */
34 public class MainActivity extends AppCompatActivity {
35 
36     @Override
onCreate(@ullable Bundle savedInstanceState)37     protected void onCreate(@Nullable Bundle savedInstanceState) {
38         super.onCreate(savedInstanceState);
39 
40         setContentView(R.layout.activity_main);
41         WebkitHelpers.appendWebViewVersionToTitle(this);
42 
43         final Context activityContext = this;
44         MenuListView listView = findViewById(R.id.top_level_list);
45         MenuListView.MenuItem[] menuItems = new MenuListView.MenuItem[] {
46                 new MenuListView.MenuItem(
47                         getResources().getString(R.string.safebrowsing_activity_title),
48                         new Intent(activityContext, SafeBrowsingActivity.class)),
49                 new MenuListView.MenuItem(
50                         getResources().getString(R.string.proxy_override_activity_title),
51                         new Intent(activityContext, ProxyOverrideActivity.class)),
52                 new MenuListView.MenuItem(
53                         getResources().getString(R.string.asset_loader_list_activity_title),
54                         new Intent(activityContext, AssetLoaderListActivity.class)),
55                 new MenuListView.MenuItem(
56                         getResources().getString(R.string.force_dark_activity_title),
57                         new Intent(activityContext, ForceDarkActivity.class)),
58                 new MenuListView.MenuItem(
59                         getResources().getString(R.string.force_dark_strategy_activity_title),
60                         new Intent(activityContext, ForceDarkStrategyActivity.class)),
61                 new MenuListView.MenuItem(
62                         getResources().getString(R.string.multi_process_enabled_activity_title),
63                         new Intent(activityContext, MultiProcessEnabledActivity.class)),
64                 new MenuListView.MenuItem(
65                         getResources().getString(R.string.tracing_controller_activity_title),
66                         new Intent(activityContext, TracingControllerActivity.class)),
67                 new MenuListView.MenuItem(
68                         getResources().getString(R.string.renderer_termination_activity_title),
69                         new Intent(activityContext, RendererTerminationActivity.class)),
70                 new MenuListView.MenuItem(
71                         getResources().getString(R.string.fullscreen_activity_title),
72                         new Intent(activityContext, FullscreenActivity.class)),
73                 new MenuListView.MenuItem(
74                         getResources().getString(R.string.js_java_interaction_activity_title),
75                         new Intent(activityContext, JsJavaInteractionActivity.class)),
76                 new MenuListView.MenuItem(
77                         getResources().getString(R.string.variations_header_activity_title),
78                         new Intent(activityContext, GetVariationsHeaderActivity.class)),
79                 new MenuListView.MenuItem(
80                         getResources().getString(R.string.process_global_config_activity_title),
81                         new Intent(activityContext, ProcessGlobalConfigActivity.class)),
82                 new MenuListView.MenuItem(
83                         getResources().getString(R.string.requested_with_activity_title),
84                         new Intent(activityContext, RequestedWithHeaderActivity.class)),
85                 new MenuListView.MenuItem(
86                         getResources().getString(R.string.cookie_manager_activity_title),
87                         new Intent(activityContext, CookieManagerActivity.class)),
88                 new MenuListView.MenuItem(
89                         getResources().getString(R.string.image_drag_drop_activity_title),
90                         new Intent(activityContext, ImageDragActivity.class)),
91                 new MenuListView.MenuItem(
92                         getResources().getString(R.string.user_agent_metadata_activity_title),
93                         new Intent(activityContext, UserAgentMetadataActivity.class)),
94                 new MenuListView.MenuItem(
95                         getResources().getString(R.string.multi_profile_activity_title),
96                         new Intent(activityContext, MultiProfileTestActivity.class)),
97                 new MenuListView.MenuItem(
98                         getResources().getString(R.string.mute_audio_activity_title),
99                         new Intent(activityContext, MuteAudioActivity.class)),
100                 new MenuListView.MenuItem(
101                         getResources().getString(R.string.restricted_content_activity_title),
102                         new Intent(activityContext, RestrictedContentActivity.class)),
103                 new MenuListView.MenuItem(
104                         getResources().getString(R.string.async_startup_activity_title),
105                         new Intent(activityContext, AsyncStartUpActivity.class)),
106                 new MenuListView.MenuItem(
107                         getResources().getString(R.string.default_trafficstats_tagging_activity),
108                         new Intent(activityContext, DefaultTrafficStatsTaggingActivity.class)),
109                 new MenuListView.MenuItem(
110                         getResources().getString(R.string.web_storage_activity_title),
111                         new Intent(activityContext, WebStorageCompatActivity.class)),
112                 new MenuListView.MenuItem(
113                         getResources().getString(R.string.payment_request_activity_title),
114                         new Intent(activityContext, PaymentRequestActivity.class)),
115         };
116         listView.setItems(menuItems);
117     }
118 }
119