Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fdb307bf authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Display a hardware info dialog when click model number."

parents 5b60b793 dc5a06e7
Loading
Loading
Loading
Loading
+57 −0
Original line number Original line Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  Copyright (C) 2017 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.
  -->

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="24dp">

        <TextView
            android:id="@+id/model_label"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAppearance="@android:style/TextAppearance.Material.Body1"
            android:textColor="?android:attr/textColorSecondary"
            android:text="@string/model_info" />
        <TextView
            android:id="@+id/model_value"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="24dp"
            android:textAppearance="@android:style/TextAppearance.Material.Body2" />

        <TextView
            android:id="@+id/hardware_rev_label"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAppearance="@android:style/TextAppearance.Material.Body1"
            android:textColor="?android:attr/textColorSecondary"
            android:text="@string/hardware_revision" />
        <TextView
            android:id="@+id/hardware_rev_value"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="24dp"
            android:textAppearance="@android:style/TextAppearance.Material.Body2" />

    </LinearLayout>
</ScrollView>
 No newline at end of file
+4 −0
Original line number Original line Diff line number Diff line
@@ -2364,6 +2364,10 @@
    <string name="security_patch">Android security patch level</string>
    <string name="security_patch">Android security patch level</string>
    <!-- About phone screen, status item label  [CHAR LIMIT=40] -->
    <!-- About phone screen, status item label  [CHAR LIMIT=40] -->
    <string name="model_info">Model</string>
    <string name="model_info">Model</string>
    <!-- About phone screen, dialog title for showing hardware information such as model, serial number, etc.[CHAR LIMIT=60] -->
    <string name="hardware_info">Model &amp; hardware</string>
    <!-- Label for device's hardware revision value [CHAR LIMIT=40] -->
    <string name="hardware_revision">Hardware version</string>
    <!-- About phone screen, fcc equipment id label  [CHAR LIMIT=40] -->
    <!-- About phone screen, fcc equipment id label  [CHAR LIMIT=40] -->
    <string name="fcc_equipment_id">Equipment ID</string>
    <string name="fcc_equipment_id">Equipment ID</string>
    <!-- About phone screen,  setting option name  [CHAR LIMIT=40] -->
    <!-- About phone screen,  setting option name  [CHAR LIMIT=40] -->
+1 −1
Original line number Original line Diff line number Diff line
@@ -128,7 +128,7 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable {
        controllers.add(new BasebandVersionPreferenceController(context));
        controllers.add(new BasebandVersionPreferenceController(context));
        controllers.add(new FirmwareVersionPreferenceController(context, lifecycle));
        controllers.add(new FirmwareVersionPreferenceController(context, lifecycle));
        controllers.add(new RegulatoryInfoPreferenceController(context));
        controllers.add(new RegulatoryInfoPreferenceController(context));
        controllers.add(new DeviceModelPreferenceController(context));
        controllers.add(new DeviceModelPreferenceController(context, fragment));
        controllers.add(new SecurityPatchPreferenceController(context));
        controllers.add(new SecurityPatchPreferenceController(context));
        controllers.add(new FccEquipmentIdPreferenceController(context));
        controllers.add(new FccEquipmentIdPreferenceController(context));
        controllers.add(new SELinuxStatusPreferenceController(context));
        controllers.add(new SELinuxStatusPreferenceController(context));
+16 −1
Original line number Original line Diff line number Diff line
@@ -15,10 +15,12 @@
 */
 */
package com.android.settings.deviceinfo;
package com.android.settings.deviceinfo;


import android.app.Fragment;
import android.content.Context;
import android.content.Context;
import android.os.Build;
import android.os.Build;
import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils;


import com.android.settings.core.PreferenceController;
import com.android.settings.core.PreferenceController;
import com.android.settingslib.DeviceInfoUtils;
import com.android.settingslib.DeviceInfoUtils;
@@ -27,8 +29,11 @@ public class DeviceModelPreferenceController extends PreferenceController {


    private static final String KEY_DEVICE_MODEL = "device_model";
    private static final String KEY_DEVICE_MODEL = "device_model";


    public DeviceModelPreferenceController(Context context) {
    private final Fragment mHost;

    public DeviceModelPreferenceController(Context context, Fragment host) {
        super(context);
        super(context);
        mHost = host;
    }
    }


    @Override
    @Override
@@ -49,4 +54,14 @@ public class DeviceModelPreferenceController extends PreferenceController {
    public String getPreferenceKey() {
    public String getPreferenceKey() {
        return KEY_DEVICE_MODEL;
        return KEY_DEVICE_MODEL;
    }
    }

    @Override
    public boolean handlePreferenceTreeClick(Preference preference) {
        if (!TextUtils.equals(preference.getKey(), KEY_DEVICE_MODEL)) {
            return false;
        }
        final HardwareInfoDialogFragment fragment = HardwareInfoDialogFragment.newInstance();
        fragment.show(mHost.getFragmentManager(), HardwareInfoDialogFragment.TAG);
        return true;
    }
}
}
+82 −0
Original line number Original line Diff line number Diff line
/*
 * Copyright (C) 2017 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 com.android.settings.deviceinfo;

import android.app.AlertDialog;
import android.app.Dialog;
import android.os.Build;
import android.os.Bundle;
import android.os.SystemProperties;
import android.support.annotation.VisibleForTesting;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;

import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settingslib.DeviceInfoUtils;

public class HardwareInfoDialogFragment extends InstrumentedDialogFragment {

    public static final String TAG = "HardwareInfo";

    @Override
    public int getMetricsCategory() {
        return MetricsProto.MetricsEvent.DIALOG_SETTINGS_HARDWARE_INFO;
    }

    public static HardwareInfoDialogFragment newInstance() {
        final HardwareInfoDialogFragment fragment = new HardwareInfoDialogFragment();
        return fragment;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
                .setTitle(R.string.hardware_info)
                .setPositiveButton(android.R.string.ok, null);
        final View content = LayoutInflater.from(builder.getContext())
                .inflate(R.layout.dialog_hardware_info, null /* parent */);
        // Model
        setText(content, R.id.model_label, R.id.model_value,
                Build.MODEL + DeviceInfoUtils.getMsvSuffix());
        // Hardware rev
        setText(content, R.id.hardware_rev_label, R.id.hardware_rev_value,
                SystemProperties.get("ro.boot.hardware.revision"));

        return builder.setView(content).create();
    }

    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
    void setText(View content, int labelViewId, int valueViewId, String value) {
        if (content == null) {
            return;
        }
        final View labelView = content.findViewById(labelViewId);
        final TextView valueView = content.findViewById(valueViewId);
        if (!TextUtils.isEmpty(value)) {
            labelView.setVisibility(View.VISIBLE);
            valueView.setVisibility(View.VISIBLE);
            valueView.setText(value);
        } else {
            labelView.setVisibility(View.GONE);
            valueView.setVisibility(View.GONE);
        }
    }
}
Loading