public class

LoadingView

extends FrameLayout

 java.lang.Object

↳FrameLayout

↳androidx.car.app.activity.ui.LoadingView

Gradle dependencies

compile group: 'androidx.car.app', name: 'app-automotive', version: '1.7.0-beta01'

  • groupId: androidx.car.app
  • artifactId: app-automotive
  • version: 1.7.0-beta01

Artifact androidx.car.app:app-automotive:1.7.0-beta01 it located at Google repository (https://maven.google.com/)

Overview

A view to be displayed while the app is trying to connect to the host

Summary

Constructors
publicLoadingView(Context context)

publicLoadingView(Context context, AttributeSet attrs)

publicLoadingView(Context context, AttributeSet attrs, int defStyleAttr)

publicLoadingView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)

Methods
protected voidonFinishInflate()

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructors

public LoadingView(Context context)

public LoadingView(Context context, AttributeSet attrs)

public LoadingView(Context context, AttributeSet attrs, int defStyleAttr)

public LoadingView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)

Methods

protected void onFinishInflate()

Source

/*
 * Copyright 2021 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.car.app.activity.ui;

import static androidx.annotation.RestrictTo.Scope.LIBRARY;

import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.FrameLayout;
import android.widget.ImageView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.car.app.activity.CarAppActivity;
import androidx.car.app.automotive.R;

/**
 * A view to be displayed while the app is trying to connect to the host
 *
 */
@RestrictTo(LIBRARY)
public class LoadingView extends FrameLayout {
    private ImageView mAppIcon;

    public LoadingView(@NonNull Context context) {
        super(context);
    }

    public LoadingView(@NonNull Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    public LoadingView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public LoadingView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr,
            int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        mAppIcon = findViewById(R.id.app_icon);
        mAppIcon.setImageDrawable(getActivityIcon());
    }

    @SuppressWarnings("deprecation")
    @Nullable
    private Drawable getActivityIcon() {
        PackageManager packageManager = getContext().getPackageManager();

        Intent intent = new Intent(getContext(), CarAppActivity.class);
        ResolveInfo resolveInfo = packageManager.resolveActivity(intent, 0);
        if (resolveInfo == null) {
            return null;
        }
        return resolveInfo.loadIcon(packageManager);
    }
}