1 /* 2 * Copyright (C) 2017 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 package com.android.wallpaper.picker; 17 18 import android.content.pm.ActivityInfo; 19 import android.graphics.PixelFormat; 20 import android.os.Bundle; 21 22 import androidx.annotation.Nullable; 23 import androidx.core.view.WindowCompat; 24 25 import com.android.wallpaper.R; 26 import com.android.wallpaper.module.Injector; 27 import com.android.wallpaper.module.InjectorProvider; 28 import com.android.wallpaper.module.logging.UserEventLogger; 29 30 /** 31 * Abstract base class for a wallpaper full-screen preview activity. 32 */ 33 public abstract class BasePreviewActivity extends BaseActivity { 34 public static final String EXTRA_WALLPAPER_INFO = 35 "com.android.wallpaper.picker.wallpaper_info"; 36 public static final String EXTRA_VIEW_AS_HOME = 37 "com.android.wallpaper.picker.view_as_home"; 38 public static final String IS_ASSET_ID_PRESENT = 39 "com.android.wallpaper.picker.asset_id_present"; 40 public static final String IS_NEW_TASK = 41 "com.android.wallpaper.picker.new_task"; 42 43 @Override onCreate(@ullable Bundle savedInstanceState)44 protected void onCreate(@Nullable Bundle savedInstanceState) { 45 super.onCreate(savedInstanceState); 46 Injector injector = InjectorProvider.getInjector(); 47 UserEventLogger mUserEventLogger = injector.getUserEventLogger(); 48 getWindow().setColorMode(ActivityInfo.COLOR_MODE_WIDE_COLOR_GAMUT); 49 setTheme(R.style.WallpaperTheme); 50 getWindow().setFormat(PixelFormat.TRANSLUCENT); 51 52 // Check the launching intent's action to figure out the caller is from other application 53 // and log its launch source. 54 if (getIntent() != null && getIntent().getAction() != null) { 55 mUserEventLogger.logAppLaunched(getIntent()); 56 } 57 } 58 59 /** Allows the current activity to be full screen. */ enableFullScreen()60 protected void enableFullScreen() { 61 WindowCompat.setDecorFitsSystemWindows(getWindow(), /* decorFitsSystemWindows= */ false); 62 63 // Window insets are set in the PreviewFragment#onCreateView method. 64 } 65 } 66