blob: bbedb7fb66ca730ff934043595f422f8691efb0f [file] [log] [blame]
Jon Miranda16ea1b12017-12-12 14:52:48 -08001/*
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 */
16package com.android.wallpaper.picker;
17
18import android.content.Context;
19import android.content.Intent;
20import android.os.Bundle;
Jon Miranda16ea1b12017-12-12 14:52:48 -080021
22import com.android.wallpaper.R;
23import com.android.wallpaper.model.InlinePreviewIntentFactory;
24import com.android.wallpaper.model.WallpaperInfo;
Clément Julliardea1638d2018-05-21 19:15:17 -070025import com.android.wallpaper.module.InjectorProvider;
Jon Miranda16ea1b12017-12-12 14:52:48 -080026
Sunny Goyal8600a3f2018-08-15 12:48:01 -070027import androidx.fragment.app.Fragment;
28import androidx.fragment.app.FragmentManager;
29
Jon Miranda16ea1b12017-12-12 14:52:48 -080030/**
31 * Activity that displays a preview of a specific wallpaper and provides the ability to set the
32 * wallpaper as the user's current wallpaper.
33 */
34public class PreviewActivity extends BasePreviewActivity {
35
36 /**
37 * Returns a new Intent with the provided WallpaperInfo instance put as an extra.
38 */
39 public static Intent newIntent(Context packageContext, WallpaperInfo wallpaperInfo) {
40 Intent intent = new Intent(packageContext, PreviewActivity.class);
41 intent.putExtra(EXTRA_WALLPAPER_INFO, wallpaperInfo);
42 return intent;
43 }
44
45 @Override
46 protected void onCreate(Bundle savedInstanceState) {
47 super.onCreate(savedInstanceState);
48 setContentView(R.layout.activity_preview);
49
50 FragmentManager fm = getSupportFragmentManager();
51 Fragment fragment = fm.findFragmentById(R.id.fragment_container);
52
53 if (fragment == null) {
54 Intent intent = getIntent();
55 WallpaperInfo wallpaper = intent.getParcelableExtra(EXTRA_WALLPAPER_INFO);
56 boolean testingModeEnabled = intent.getBooleanExtra(EXTRA_TESTING_MODE_ENABLED, false);
Clément Julliardea1638d2018-05-21 19:15:17 -070057 fragment = InjectorProvider.getInjector().getPreviewFragment(
Jon Miranda16ea1b12017-12-12 14:52:48 -080058 wallpaper, PreviewFragment.MODE_CROP_AND_SET_WALLPAPER, testingModeEnabled);
59 fm.beginTransaction()
60 .add(R.id.fragment_container, fragment)
61 .commit();
62 }
63 }
64
65 /**
66 * Implementation that provides an intent to start a PreviewActivity.
67 */
68 public static class PreviewActivityIntentFactory implements InlinePreviewIntentFactory {
69 @Override
70 public Intent newIntent(Context context, WallpaperInfo wallpaper) {
71 return PreviewActivity.newIntent(context, wallpaper);
72 }
73 }
74}