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

Commit 17b90780 authored by Mike Lockwood's avatar Mike Lockwood Committed by Android (Google) Code Review
Browse files

Merge "USB connected notification and temporary USB options dialog"

parents 32b807b8 5787a2d5
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -2608,6 +2608,11 @@
    <!-- USB_STORAGE_ERROR dialog  ok button-->
    <string name="dlg_ok">OK</string>

    <!-- USB_PREFERENCES: When the user connects the phone to a computer via USB, we show a notification asking if he wants to share files across.  This is the title -->
    <string name="usb_preferences_notification_title">USB connected</string>
    <!-- See USB_PREFERENCES. This is the message. -->
    <string name="usb_preferece_notification_message">Select to configure USB file transfer.</string>

    <!-- External media format dialog strings -->
    <!-- This is the label for the activity, and should never be visible to the user. -->
    <!-- See EXTMEDIA_FORMAT.  EXTMEDIA_FORMAT_DIALOG:  After the user selects the notification, a dialog is shown asking if he wants to format the SD card.  This is the title. [CHAR LIMIT=20] -->
+4 −0
Original line number Diff line number Diff line
@@ -25,6 +25,10 @@
            android:exported="true"
            />

        <activity android:name=".usb.UsbPreferenceActivity"
             android:theme="@*android:style/Theme.Holo.Dialog.Alert"
             android:excludeFromRecents="true">
        </activity>
        <activity android:name=".usb.UsbStorageActivity"
                android:excludeFromRecents="true">
        </activity>
+43 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 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.
-->

<!-- Check box that is displayed in the activity resolver UI for the user
     to make their selection the preferred activity. -->
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="14dip"
    android:paddingRight="15dip"
    android:orientation="vertical">

    <Button
        android:id="@+id/mtp_ptp_button"
        android:text="@string/use_ptp_button_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:focusable="true"
        android:clickable="true" />

    <Button
        android:id="@+id/installer_cd_button"
        android:text="@string/installer_cd_button_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:focusable="true"
        android:clickable="true" />

</LinearLayout>
+9 −0
Original line number Diff line number Diff line
@@ -156,4 +156,13 @@

    <!-- Compatibility mode help screen: body text. [CHAR LIMIT=150] -->
    <string name="compat_mode_help_body">When an app was designed for a smaller screen, a zoom control will appear by the clock.</string>

    <!-- Title for the USB function chooser in UsbPreferenceActivity. [CHAR LIMIT=30] -->
    <string name="usb_preference_title">USB file transfer options</string>
    <!-- Label for the MTP USB function in UsbPreferenceActivity. [CHAR LIMIT=50] -->
    <string name="use_mtp_button_title">Mount as a media player (MTP)</string>
    <!-- Label for the PTP USB function in UsbPreferenceActivity. [CHAR LIMIT=50] -->
    <string name="use_ptp_button_title">Mount as a camera (PTP)</string>
    <!-- Label for the installer CD image option in UsbPreferenceActivity. [CHAR LIMIT=50] -->
    <string name="installer_cd_button_title">Install Android File Transfer application for Mac</string>
</resources>
+91 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2011 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.systemui.usb;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.hardware.usb.UsbManager;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.util.Log;
import android.widget.Button;

import java.io.File;

import com.android.systemui.R;

public class UsbPreferenceActivity extends Activity implements View.OnClickListener  {

    private static final String TAG = "UsbPreferenceActivity";

    private UsbManager mUsbManager;
    private String mCurrentFunction;
    private String[] mFunctions;
    private String mInstallerImagePath;
    private Button mMtpPtpButton;
    private Button mInstallerCdButton;
    private boolean mPtpActive;

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        mUsbManager = (UsbManager)getSystemService(Context.USB_SERVICE);

        AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
        dialogBuilder.setTitle(getString(R.string.usb_preference_title));

        LayoutInflater inflater = (LayoutInflater)getSystemService(
                Context.LAYOUT_INFLATER_SERVICE);
        View buttonView = inflater.inflate(R.layout.usb_preference_buttons, null);
        dialogBuilder.setView(buttonView);
        mMtpPtpButton = (Button)buttonView.findViewById(R.id.mtp_ptp_button);
        mInstallerCdButton = (Button)buttonView.findViewById(R.id.installer_cd_button);
        mMtpPtpButton.setOnClickListener(this);
        mInstallerCdButton.setOnClickListener(this);

        mPtpActive = mUsbManager.isFunctionEnabled(UsbManager.USB_FUNCTION_PTP);
        if (mPtpActive) {
            mMtpPtpButton.setText(R.string.use_mtp_button_title);
        }

        mInstallerImagePath = getString(com.android.internal.R.string.config_isoImagePath);
        if (!(new File(mInstallerImagePath)).exists()) {
            mInstallerCdButton.setVisibility(View.GONE);
        }

        dialogBuilder.show();
    }

    public void onClick(View v) {
        if (v.equals(mMtpPtpButton)) {
            if (mPtpActive) {
                mUsbManager.setPrimaryFunction(UsbManager.USB_FUNCTION_MTP);
            } else {
                mUsbManager.setPrimaryFunction(UsbManager.USB_FUNCTION_PTP);
            }
        } else if (v.equals(mInstallerCdButton)) {
            mUsbManager.setPrimaryFunction(UsbManager.USB_FUNCTION_MASS_STORAGE);
            mUsbManager.setMassStorageBackingFile(mInstallerImagePath);
        }

        finish();
    }
}
Loading