Commit f23c6999 authored by Gayane Petrosyan's avatar Gayane Petrosyan Committed by Commit Bot

[QrCode Android] Add QR code sharing dialog.

In this CL create a simple dialog with a close button. The dialog also
displays Share/Scan tabs but no functionality is implemented for those.

screenshot:
https://screenshot.googleplex.com/JHExGzx6ds6.png

Bug: 993920
Change-Id: I056c8397d640092ac7c3aa56e3d0a983a9551cf0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1869884
Commit-Queue: Gayane Petrosyan <gayane@chromium.org>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Reviewed-by: default avatarDavid Trainor <dtrainor@chromium.org>
Cr-Commit-Position: refs/heads/master@{#709243}
parent f7082cd0
...@@ -282,6 +282,7 @@ android_library("chrome_java") { ...@@ -282,6 +282,7 @@ android_library("chrome_java") {
"//chrome/browser/android/thin_webview:java", "//chrome/browser/android/thin_webview:java",
"//chrome/browser/download/android:java", "//chrome/browser/download/android:java",
"//chrome/browser/image_fetcher:java", "//chrome/browser/image_fetcher:java",
"//chrome/browser/share/android:java_resources",
"//chrome/browser/ui/android/styles:java", "//chrome/browser/ui/android/styles:java",
"//chrome/browser/ui/android/widget:java", "//chrome/browser/ui/android/widget:java",
"//chrome/browser/util/android:java", "//chrome/browser/util/android:java",
......
...@@ -3989,10 +3989,19 @@ The site does NOT gain access to the camera. The camera images are only visible ...@@ -3989,10 +3989,19 @@ The site does NOT gain access to the camera. The camera images are only visible
</message> </message>
<!-- QR Code --> <!-- QR Code -->
<message name="IDS_QR_CODE_SHARE_ICON_LABEL" desc="Icon label for sharing qith QR Code activity."> <message name="IDS_QR_CODE_SHARE_ICON_LABEL" desc="Icon label for sharing with QR Code activity.">
QR Code QR Code
</message> </message>
<message name="IDS_QR_CODE_SHARE_TAB_LABEL" desc="Share tab label for QR Code sharing activity."
meaning="Sharing QR code">
Share
</message>
<message name="IDS_QR_CODE_SCAN_TAB_LABEL" desc="Scan tab label for QR Code sharing activity.">
Scan
</message>
<!-- Chime DFM module strings --> <!-- Chime DFM module strings -->
<message name="IDS_CHIME_MODULE_TITLE" desc="Text shown when the chime module is referenced in install start, success, failure UI (e.g. in IDS_MODULE_INSTALL_START_TEXT, which will expand to 'Installing Google Notifications Platform for Chrome…')."> <message name="IDS_CHIME_MODULE_TITLE" desc="Text shown when the chime module is referenced in install start, success, failure UI (e.g. in IDS_MODULE_INSTALL_START_TEXT, which will expand to 'Installing Google Notifications Platform for Chrome…').">
Google Notifications Platform Google Notifications Platform
......
401b9464b0c27d7269fd41da18be10eacbef5349
\ No newline at end of file
eb8001ee41fe8c85bf9fd3e84e49f9a3747758d9
\ No newline at end of file
# Copyright 2019 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/android/rules.gni")
android_resources("java_resources") {
# TODO(gayane): remove dependency on chrome/android:chrome_app_java_resources
# once strings and common styles move out of chrome/android
deps = [
"//chrome/android:chrome_app_java_resources",
]
resource_dirs = [ "java/res" ]
custom_package = "org.chromium.chrome.browser.share.qrcode"
}
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright 2019 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file. -->
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabGravity="center"
app:tabPaddingEnd="20dp"
app:tabPaddingStart="20dp"
app:tabIndicatorFullWidth="true"
style="@style/TabLayoutStyle" >
<android.support.design.widget.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/qr_code_share_tab_label" />
<android.support.design.widget.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/qr_code_scan_tab_label" />
</android.support.design.widget.TabLayout>
<org.chromium.ui.widget.ChromeImageButton
android:id="@+id/close_button"
style="@style/ToolbarButton"
android:src="@drawable/btn_close"
android:contentDescription="@string/close"
app:tint="@color/standard_mode_tint" />
<ImageView
android:id="@+id/tab_line"
android:layout_width="match_parent"
style="@style/TabBarShadow"
android:layout_below="@+id/tab_layout"
android:importantForAccessibility="no"/>
<android.support.v4.view.ViewPager
android:id="@+id/qrcode_view_pager"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_below="@id/tab_line"/>
</RelativeLayout>
\ No newline at end of file
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.share.qrcode;
import android.content.Context;
/**
* Creates the QrCodeDialog.
*/
public class QrCodeCoordinator {
QrCodeDialog mDialog;
QrCodeCoordinator(Context context) {
mDialog = new QrCodeDialog(context);
}
public void show() {
mDialog.show();
}
}
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.share.qrcode;
import android.content.Context;
import android.support.v7.app.AlertDialog;
import android.view.LayoutInflater;
import android.view.View;
import org.chromium.chrome.R;
import org.chromium.ui.widget.ChromeImageButton;
/**
* QrCodeDialog is the main view for QR code sharing.
*/
public class QrCodeDialog extends AlertDialog {
/**
* The QrCodeDialog constructor.
* @param context The context to use.
*/
public QrCodeDialog(Context context) {
super(context, R.style.Theme_Chromium_Fullscreen);
View dialogView = (View) LayoutInflater.from(context).inflate(
org.chromium.chrome.browser.share.qrcode.R.layout.qrcode_dialog, null);
setView(dialogView);
ChromeImageButton close_button =
(ChromeImageButton) dialogView.findViewById(R.id.close_button);
close_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cancel();
}
});
}
}
...@@ -14,7 +14,8 @@ import org.chromium.chrome.browser.share.ShareActivity; ...@@ -14,7 +14,8 @@ import org.chromium.chrome.browser.share.ShareActivity;
public class QrCodeShareActivity extends ShareActivity { public class QrCodeShareActivity extends ShareActivity {
@Override @Override
protected void handleShareAction(ChromeActivity triggeringActivity) { protected void handleShareAction(ChromeActivity triggeringActivity) {
// TODO(crbug.com/993920): Open QR code share/scan activity. QrCodeCoordinator qrCodeCoordinator = new QrCodeCoordinator(triggeringActivity);
qrCodeCoordinator.show();
} }
public static boolean featureIsAvailable() { public static boolean featureIsAvailable() {
......
...@@ -3,4 +3,8 @@ ...@@ -3,4 +3,8 @@
# found in the LICENSE file. # found in the LICENSE file.
# TODO(gayane): This should be a separate build target when circular dependencies are removed. # TODO(gayane): This should be a separate build target when circular dependencies are removed.
share_java_sources = [ "//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QrCodeShareActivity.java" ] share_java_sources = [
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QrCodeCoordinator.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QrCodeDialog.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/qrcode/QrCodeShareActivity.java",
]
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment