Commit 94817d5d by amateur

1

1 parent dd8a886b
......@@ -29,6 +29,10 @@ public class DownloadDialog extends DialogFragment {
public static void show(FragmentManager manager, String url, String fileName) {
DownloadDialog dialog = new DownloadDialog(url, fileName);
Bundle bundle = new Bundle();
bundle.putString("url", url);
bundle.putString("fileName", fileName);
dialog.setArguments(bundle);
dialog.show(manager, "downloadidalog");
}
......
package com.polysoft.nafmii.fragment.dialog;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentManager;
import com.alibaba.fastjson.JSON;
import com.polysoft.nafmii.bean.Result;
import com.polysoft.nafmii.broadcast.Receiver;
import com.polysoft.nafmii.broadcast.WechatReceiver;
import com.polysoft.nafmii.utils.ToastUtils;
import com.polysoft.nafmii.wechat.QQApi;
import com.polysoft.nafmii.wechat.ShareBean;
import com.polysoft.nafmii.wechat.WechatApi;
import com.polysoft.nafmii.wechat.WechatResult;
import com.tencent.tauth.IUiListener;
import com.tencent.tauth.UiError;
import com.whaty.nafmii.R;
public class ShareSelectPopupDialog extends DialogFragment {
private static final String DATA_KEY = "SHARE_DATA";
public static void show(FragmentManager manager, ShareBean bean) {
ShareSelectPopupDialog dialog = new ShareSelectPopupDialog();
Bundle bundle = new Bundle();
bundle.putString(DATA_KEY, JSON.toJSONString(bean));
dialog.setArguments(bundle);
dialog.show(manager, "sharepopup");
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setStyle(DialogFragment.STYLE_NORMAL, R.style.BottomDialog);
super.setCancelable(true);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.share_select_dialog, container, false);
this.initView(view);
return view;
}
private void initView(View view) {
view.findViewById(R.id.share_cancel).setOnClickListener(v -> dismiss());
view.findViewById(R.id.share_pengyouquan).setOnClickListener(v -> callShare("0"));
view.findViewById(R.id.share_wechat).setOnClickListener(v -> callShare("1"));
view.findViewById(R.id.share_qq).setOnClickListener(v -> callShare("2"));
}
private void callShare(String scene) {
ShareBean bean = this.getShareData();
if (null == bean) {
return;
}
bean.setScene(scene);
if ("2".equals(bean.getScene())) { // 分享到QQ
QQApi instance = QQApi.getInstance();
instance.share(getActivity(), bean, new QQShareBack());
dismiss();
} else {
WechatApi instance = WechatApi.getInstance(getActivity());
if (!instance.isWXAppInstalled()) {
ToastUtils.showLong("未安装应用");
}
final Receiver<Result> shareReceiver = WechatReceiver.getInstance(getContext());
shareReceiver.addDefaultListener((action, share) -> {
shareReceiver.addDefaultListener(null);
showShareResult(share);
});
instance.share(getActivity(), bean);
}
}
private void showShareResult(Result res) {
if (Result.SUCCESS.equals(res.getStatus())) {
ToastUtils.showLong("分享成功");
} else if (Result.FAIL.equals(res.getStatus())) {
ToastUtils.showLong("分享失败");
} else if (WechatResult.CANCEL.equals(res.getStatus())) {
ToastUtils.showLong("分享取消");
}
dismiss();
}
private ShareBean getShareData() {
Bundle bundle = getArguments();
if (null == bundle) {
return null;
}
String json = bundle.getString(DATA_KEY);
if (TextUtils.isEmpty(json)) {
return null;
}
return JSON.parseObject(json, ShareBean.class);
}
@Override
public void onStart() {
super.onStart();
Window window = getDialog().getWindow();
window.setBackgroundDrawableResource(android.R.color.transparent);
window.setGravity(Gravity.BOTTOM);
WindowManager.LayoutParams params = window.getAttributes();
params.width = getResources().getDisplayMetrics().widthPixels;
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setAttributes(params);
}
class QQShareBack implements IUiListener {
@Override
public void onComplete(Object o) {
showShareResult(WechatResult.shareSuccess());
}
@Override
public void onError(UiError uiError) {
showShareResult(WechatResult.fail("分享失败"));
}
@Override
public void onCancel() {
showShareResult(WechatResult.cancel());
}
@Override
public void onWarning(int i) {
showShareResult(WechatResult.fail("分享失败"));
}
}
}
......@@ -5,8 +5,7 @@ import android.os.Bundle;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.Button;
import android.widget.TextView;
import androidx.fragment.app.FragmentManager;
......@@ -15,16 +14,16 @@ import androidx.fragment.app.FragmentTransaction;
import com.alibaba.fastjson.JSON;
import com.polysoft.nafmii.bean.OpenUrlBean;
import com.polysoft.nafmii.fragment.WebViewFragment;
import com.polysoft.nafmii.fragment.dialog.ShareSelectPopupDialog;
import com.polysoft.nafmii.utils.AndroidBug5497Workaround;
import com.polysoft.nafmii.utils.FileUtils;
import com.polysoft.nafmii.utils.StatusBarUtils;
import com.polysoft.nafmii.utils.ToastUtils;
import com.polysoft.nafmii.webview.IWebview;
import com.polysoft.nafmii.wechat.ShareBean;
import com.whaty.nafmii.R;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
public class OutsideWebviewActivity extends WebviewActivity {
......@@ -75,6 +74,19 @@ public class OutsideWebviewActivity extends WebviewActivity {
title.setText(titleStr);
}
if ("1".equals(this.mBean.getIsShare())) {
Button dot = super.findViewById(R.id.nav_dot);
dot.setVisibility(View.VISIBLE);
dot.setOnClickListener((v) -> {
ShareBean bean = new ShareBean();
bean.setContent("查看详情");
bean.setShareType("3");
bean.setWebUrl(this.mBean.getLinkUrl());
bean.setTitle(this.mBean.getTitle());
ShareSelectPopupDialog.show(getSupportFragmentManager(), bean);
});
}
super.findViewById(R.id.nav_back).setOnClickListener((v) -> {
this.backAction();
});
......
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="30dp"
android:height="30dp"
android:viewportWidth="1024"
android:viewportHeight="1024">
<path
android:fillColor="#ffffff"
android:pathData="M279.142 542.18c0 59.298-47.994 107.36-107.194 107.36-59.178 0-107.172-48.062-107.172-107.36 0-59.29 47.994-107.35 107.172-107.35 59.2 0 107.194 48.06 107.194 107.35zM626.881 534.606c0 59.298-47.992 107.36-107.192 107.36-59.18 0-107.173-48.062-107.173-107.36 0-59.3 47.993-107.35 107.173-107.35 59.2 0 107.192 48.05 107.192 107.35zM959.518 534.606c0 59.298-47.993 107.36-107.194 107.36-59.18 0-107.172-48.062-107.172-107.36 0-59.3 47.993-107.35 107.172-107.35 59.2 0 107.194 48.05 107.194 107.35z" />
</vector>
\ No newline at end of file
......@@ -21,18 +21,26 @@
android:id="@+id/nav_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="20sp"
android:ellipsize="end"
android:gravity="center"
android:paddingLeft="25dp"
android:paddingRight="25dp"
android:singleLine="true"
android:gravity="center"
android:textColor="@color/white"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="MissingConstraints" />
<Button
android:id="@+id/nav_dot"
android:layout_width="30dp"
android:layout_height="30dp"
android:background="@drawable/right_dot"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:fitsSystemWindows="false"
android:paddingTop="20dp">
<LinearLayout
android:id="@+id/share_wechat"
style="@style/share.layout.item"
app:layout_constraintStart_toStartOf="parent"
tools:ignore="MissingConstraints">
<ImageView
style="@style/share.item.icon"
android:src="@mipmap/icon_wechat"
tools:ignore="MissingConstraints" />
<TextView
style="@style/share.item.text"
android:text="分享至微信"
tools:ignore="MissingConstraints" />
</LinearLayout>
<LinearLayout
android:id="@+id/share_pengyouquan"
style="@style/share.layout.item"
app:layout_constraintBottom_toBottomOf="@+id/share_wechat"
app:layout_constraintStart_toEndOf="@+id/share_wechat"
app:layout_constraintTop_toTopOf="@+id/share_wechat"
tools:ignore="MissingConstraints">
<ImageView
style="@style/share.item.icon"
android:src="@mipmap/icon_pengyouquan"
tools:ignore="MissingConstraints" />
<TextView
style="@style/share.item.text"
android:text="分享至朋友圈"
tools:ignore="MissingConstraints" />
</LinearLayout>
<LinearLayout
android:id="@+id/share_qq"
style="@style/share.layout.item"
app:layout_constraintBottom_toBottomOf="@+id/share_pengyouquan"
app:layout_constraintStart_toEndOf="@+id/share_pengyouquan"
app:layout_constraintTop_toTopOf="@+id/share_pengyouquan"
tools:ignore="MissingConstraints">
<ImageView
style="@style/share.item.icon"
android:src="@mipmap/icon_qq"
tools:ignore="MissingConstraints" />
<TextView
style="@style/share.item.text"
android:text=" 分享至QQ "
tools:ignore="MissingConstraints" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#999999"
app:layout_constraintBottom_toTopOf="@+id/share_cancel"
app:layout_constraintEnd_toEndOf="@+id/share_cancel"
app:layout_constraintStart_toStartOf="@+id/share_cancel"
tools:ignore="MissingConstraints" />
<TextView
android:id="@+id/share_cancel"
style="@style/share.cancel.text"
android:layout_height="60dp"
android:layout_marginTop="150dp"
android:text="取消"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/share_wechat"
tools:ignore="MissingConstraints" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<resources>
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="Nafmii.Widget.Home.RadioButton" parent="">
<item name="android:textSize">12sp</item>
......@@ -18,4 +18,49 @@
<item name="android:layout_height">25dp</item>
<item name="android:drawableTop">@drawable/guide_radio_selector</item>
</style>
<style name="share.layout.item" parent="">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginLeft">10dp</item>
<item name="android:gravity">center</item>
<item name="android:orientation">vertical</item>
</style>
<style name="share.item.icon" parent="">
<item name="android:layout_width">38dp</item>
<item name="android:layout_height">38dp</item>
</style>
<style name="share.item.text" parent="">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">#999999</item>
<item name="android:textSize">14sp</item>
<item name="android:layout_marginTop">10dp</item>
</style>
<style name="share.cancel.text" parent="share.item.text">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">40dp</item>
<item name="android:textSize">16sp</item>
<item name="android:gravity">center</item>
</style>
<style name="BottomDialog" parent="Theme.AppCompat.Dialog">
<!-- <item name="android:layout_width">match_parent</item>-->
<!-- <item name="android:layout_height">wrap_content</item>-->
<!-- 不让软键盘遮挡-->
<!-- <item name="android:windowIsFloating">false</item>-->
<!-- <item name="android:windowBackground">@android:color/transparent</item>-->
<!-- <item name="android:backgroundDimEnabled">false</item>-->
<!-- <item name="android:windowIsTranslucent">true</item>-->
<!-- <item name="windowNoTitle">true</item>-->
<!-- <item name="android:windowFullscreen">true</item>-->
<!-- <item name="android:windowLayoutInDisplayCutoutMode" tools:ignore="NewApi">shortEdges</item>-->
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>
</resources>
\ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!