Commit 4b1e4417 authored by fallenstardust's avatar fallenstardust

添加大图分享按钮

更改重新下载交互方式
parent 8e95fd6c
package cn.garymb.ygomobile.ui.cards; package cn.garymb.ygomobile.ui.cards;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.DialogInterface; import android.content.Intent;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.util.SparseArray; import android.util.SparseArray;
import android.view.Gravity;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.Window; import android.view.Window;
import android.view.WindowManager; import android.view.WindowManager;
import android.view.animation.AnimationUtils; import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.ProgressBar; import android.widget.ProgressBar;
...@@ -29,12 +29,13 @@ import java.io.File; ...@@ -29,12 +29,13 @@ import java.io.File;
import java.util.List; import java.util.List;
import cn.garymb.ygomobile.AppsSettings; import cn.garymb.ygomobile.AppsSettings;
import cn.garymb.ygomobile.Constants;
import cn.garymb.ygomobile.core.IrrlichtBridge;
import cn.garymb.ygomobile.lite.R; import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.loader.CardLoader; import cn.garymb.ygomobile.loader.CardLoader;
import cn.garymb.ygomobile.loader.ImageLoader; import cn.garymb.ygomobile.loader.ImageLoader;
import cn.garymb.ygomobile.ui.activities.BaseActivity; import cn.garymb.ygomobile.ui.activities.BaseActivity;
import cn.garymb.ygomobile.ui.adapters.BaseAdapterPlus; import cn.garymb.ygomobile.ui.adapters.BaseAdapterPlus;
import cn.garymb.ygomobile.ui.plus.DialogPlus;
import cn.garymb.ygomobile.utils.CardUtils; import cn.garymb.ygomobile.utils.CardUtils;
import cn.garymb.ygomobile.utils.DownloadUtil; import cn.garymb.ygomobile.utils.DownloadUtil;
import cn.garymb.ygomobile.utils.FileUtils; import cn.garymb.ygomobile.utils.FileUtils;
...@@ -46,6 +47,7 @@ import ocgcore.StringManager; ...@@ -46,6 +47,7 @@ import ocgcore.StringManager;
import ocgcore.data.Card; import ocgcore.data.Card;
import ocgcore.enums.CardType; import ocgcore.enums.CardType;
import static cn.garymb.ygomobile.core.IrrlichtBridge.ACTION_SHARE_FILE;
import static cn.garymb.ygomobile.ui.cards.DeckManagerActivityImpl.Favorite; import static cn.garymb.ygomobile.ui.cards.DeckManagerActivityImpl.Favorite;
/*** /***
...@@ -95,6 +97,9 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder { ...@@ -95,6 +97,9 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
private LinearLayout ll_bar; private LinearLayout ll_bar;
private ProgressBar pb_loading; private ProgressBar pb_loading;
private TextView tv_loading; private TextView tv_loading;
private LinearLayout ll_btn;
private Button btn_redownload;
private Button btn_share;
private boolean isDownloadCardImage = true; private boolean isDownloadCardImage = true;
@SuppressLint("HandlerLeak") @SuppressLint("HandlerLeak")
Handler handler = new Handler() { Handler handler = new Handler() {
...@@ -389,11 +394,20 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder { ...@@ -389,11 +394,20 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
tv_loading = view.findViewById(R.id.tv_name); tv_loading = view.findViewById(R.id.tv_name);
pb_loading.setMax(100); pb_loading.setMax(100);
ll_btn = view.findViewById(R.id.ll_btn);
btn_redownload = view.findViewById(R.id.btn_redownload);
btn_share = view.findViewById(R.id.btn_share);
// 启用图片缩放功能 // 启用图片缩放功能
photoView.enable(); photoView.enable();
photoView.setOnClickListener(View -> { photoView.setOnClickListener(View -> {
if (ll_btn.getVisibility() == View.VISIBLE) {
ll_btn.startAnimation(AnimationUtils.loadAnimation(context, R.anim.push_out));
ll_btn.setVisibility(View.GONE);
} else {
dialog.dis(); dialog.dis();
}
}); });
photoView.setOnLongClickListener(new View.OnLongClickListener() { photoView.setOnLongClickListener(new View.OnLongClickListener() {
...@@ -401,25 +415,30 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder { ...@@ -401,25 +415,30 @@ public class CardDetail extends BaseAdapterPlus.BaseViewHolder {
public boolean onLongClick(View v) { public boolean onLongClick(View v) {
if (!isDownloadCardImage || cardManager.getCard(code) == null) if (!isDownloadCardImage || cardManager.getCard(code) == null)
return false; return false;
DialogPlus dialogPlus = new DialogPlus(context); ll_btn.startAnimation(AnimationUtils.loadAnimation(context, R.anim.push_in));
dialogPlus.setMessage(R.string.tip_redownload); ll_btn.setVisibility(View.VISIBLE);
dialogPlus.setMessageGravity(Gravity.CENTER_HORIZONTAL); btn_redownload.setOnClickListener((s) -> {
dialogPlus.setLeftButtonText(R.string.Download); ll_btn.startAnimation(AnimationUtils.loadAnimation(context, R.anim.push_out));
dialogPlus.setRightButtonText(R.string.Cancel); ll_btn.setVisibility(View.GONE);
dialogPlus.setRightButtonListener(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialogPlus.setLeftButtonListener(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
downloadCardImage(code, file); downloadCardImage(code, file);
});
btn_share.setOnClickListener((s) -> {
ll_btn.startAnimation(AnimationUtils.loadAnimation(context, R.anim.push_out));
ll_btn.setVisibility(View.GONE);
String fname = String.valueOf(code);
Intent intent = new Intent(ACTION_SHARE_FILE);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.putExtra(IrrlichtBridge.EXTRA_SHARE_TYPE, "jpg");
intent.putExtra(IrrlichtBridge.EXTRA_SHARE_FILE, fname + Constants.IMAGE_URL_EX);
intent.setPackage(context.getPackageName());
try {
context.startActivity(intent);
} catch (Throwable e) {
Toast.makeText(context, "dev error:not found activity.", Toast.LENGTH_SHORT).show();
} }
}); });
dialogPlus.show();
imageLoader.bindImage(cardImage, code, null, true); imageLoader.bindImage(cardImage, code, null, true);
return true; return true;
} }
......
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent" android:layout_width="match_parent"
android:layout_width="match_parent"> android:layout_height="match_parent">
<!-- <ImageView--> <!-- <ImageView-->
<!-- android:layout_marginLeft="1dp"--> <!-- android:layout_marginLeft="1dp"-->
<!-- android:layout_marginRight="1dp"--> <!-- android:layout_marginRight="1dp"-->
<!-- android:id="@+id/photoView"--> <!-- android:id="@+id/photoView"-->
<!-- android:layout_width="match_parent"--> <!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent"--> <!-- android:layout_height="match_parent"-->
<!-- android:layout_centerInParent="true"--> <!-- android:layout_centerInParent="true"-->
<!-- android:scaleType="fitCenter" />--> <!-- android:scaleType="fitCenter" />-->
<com.bm.library.PhotoView <com.bm.library.PhotoView
android:id="@+id/photoView" android:id="@+id/photoView"
...@@ -18,32 +18,105 @@ ...@@ -18,32 +18,105 @@
android:scaleType="fitCenter" /> android:scaleType="fitCenter" />
<LinearLayout <LinearLayout
android:visibility="gone"
android:id="@+id/ll_bar" android:id="@+id/ll_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/radius" android:background="@drawable/radius"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="match_parent" android:visibility="gone">
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_name" android:id="@+id/tv_name"
android:textColor="@color/white" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginBottom="5dp" android:layout_marginBottom="5dp"
android:gravity="center" android:gravity="center"
android:textStyle="bold"
android:text="@string/Download" android:text="@string/Download"
android:layout_width="match_parent" android:textColor="@color/white"
android:layout_height="wrap_content" /> android:textStyle="bold" />
<ProgressBar <ProgressBar
android:layout_marginBottom="5dp" android:id="@+id/pb_loading"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp" android:layout_marginLeft="20dp"
android:layout_marginRight="20dp" android:layout_marginRight="20dp"
android:id="@+id/pb_loading" android:layout_marginBottom="5dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_btn"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/Widget.AppCompat.ProgressBar.Horizontal" /> android:layout_alignParentBottom="true"
android:layout_gravity="bottom"
android:gravity="center_horizontal"
android:orientation="horizontal"
android:paddingBottom="100dp"
android:visibility="gone">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
<Button
android:id="@+id/btn_redownload"
android:layout_width="@dimen/label_width_50dp"
android:layout_height="@dimen/label_width_50dp"
android:layout_gravity="center|bottom"
android:layout_marginBottom="10dp"
android:background="@drawable/downloadimages" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:shadowColor="@color/black"
android:shadowDx="1"
android:shadowDy="2"
android:shadowRadius="2"
android:text="@string/tip_redownload"
android:textColor="@color/white" />
</LinearLayout>
<TextView
android:layout_width="60dp"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
<Button
android:id="@+id/btn_share"
android:layout_width="@dimen/label_width_50dp"
android:layout_height="@dimen/label_width_50dp"
android:layout_gravity="center|bottom"
android:layout_marginBottom="10dp"
android:background="@drawable/shareicon" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:shadowColor="@color/black"
android:shadowDx="1"
android:shadowDy="2"
android:shadowRadius="2"
android:text="@string/screenshoot"
android:textColor="@color/white" />
</LinearLayout>
</LinearLayout> </LinearLayout>
......
...@@ -273,7 +273,7 @@ ...@@ -273,7 +273,7 @@
<string name="about_pref_settings_keep_scale">원래 해상도 표시</string> <string name="about_pref_settings_keep_scale">원래 해상도 표시</string>
<string name="already_top">첫 번째</string> <string name="already_top">첫 번째</string>
<string name="already_end">마지막</string> <string name="already_end">마지막</string>
<string name="tip_redownload">카드를 다시 다운로드하겠습니까?</string> <string name="tip_redownload">다시 다운로드</string>
<string name="tip_expansions_image">카드의 고화질 이미지가 없습니다.</string> <string name="tip_expansions_image">카드의 고화질 이미지가 없습니다.</string>
<string name="tip_return_to_duel">현재 게임으로 돌아왔습니다</string> <string name="tip_return_to_duel">현재 게임으로 돌아왔습니다</string>
<string name="my_favorites">즐겨 찾기★</string> <string name="my_favorites">즐겨 찾기★</string>
......
...@@ -273,7 +273,7 @@ ...@@ -273,7 +273,7 @@
<string name="about_pref_settings_keep_scale">开启原始比例的游戏画面</string> <string name="about_pref_settings_keep_scale">开启原始比例的游戏画面</string>
<string name="already_top">已经是第一张啦</string> <string name="already_top">已经是第一张啦</string>
<string name="already_end">已经是最后一张啦</string> <string name="already_end">已经是最后一张啦</string>
<string name="tip_redownload">重新下载</string> <string name="tip_redownload">重新下载</string>
<string name="tip_expansions_image">非自带卡片没有大图</string> <string name="tip_expansions_image">非自带卡片没有大图</string>
<string name="tip_return_to_duel">已回到当前游戏</string> <string name="tip_return_to_duel">已回到当前游戏</string>
<string name="my_favorites">我的收藏★</string> <string name="my_favorites">我的收藏★</string>
......
...@@ -270,13 +270,13 @@ ...@@ -270,13 +270,13 @@
<string name="done">done\!</string> <string name="done">done\!</string>
<string name="donot_editor_bot_Deck">Pls Donot edit/remove AI Deck, if you do\nAI mode wont work properly</string> <string name="donot_editor_bot_Deck">Pls Donot edit/remove AI Deck, if you do\nAI mode wont work properly</string>
<string name="code_share">Code Share</string> <string name="code_share">Code Share</string>
<string name="screenshoot">Screenshoot</string> <string name="screenshoot">Share Art</string>
<string name="unable_to_edit_empty_deck">unable to edit empty deck</string> <string name="unable_to_edit_empty_deck">unable to edit empty deck</string>
<string name="create_new_failed">Create Failed</string> <string name="create_new_failed">Create Failed</string>
<string name="about_pref_settings_keep_scale">Original Resolution Scale Display</string> <string name="about_pref_settings_keep_scale">Original Resolution Scale Display</string>
<string name="already_top">Already the first card</string> <string name="already_top">Already the first card</string>
<string name="already_end">Already the last card</string> <string name="already_end">Already the last card</string>
<string name="tip_redownload">Redownload\?</string> <string name="tip_redownload">Redownload</string>
<string name="tip_expansions_image">no Large image for pre-released data</string> <string name="tip_expansions_image">no Large image for pre-released data</string>
<string name="tip_return_to_duel">Current game has been Returned</string> <string name="tip_return_to_duel">Current game has been Returned</string>
<string name="my_favorites">myFav★</string> <string name="my_favorites">myFav★</string>
......
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