Commit 9dfd69c0 authored by bixing's avatar bixing

update

parent eb738cc3
......@@ -197,11 +197,12 @@ public class Util {
long timeDifference = System.currentTimeMillis() - createTime;
String timeAgo;
if (timeDifference < 60000) { // 不到1分钟
timeAgo = (timeDifference / 1000) + "秒前";
long time = (timeDifference / 1000);
timeAgo = time <= 0 ? "1second ago" : time + "second ago";
} else if (timeDifference < 3600000) { // 不到1小时
timeAgo = (timeDifference / 60000) + "分钟前";
timeAgo = (timeDifference / 60000) + "minute ago";
} else if (timeDifference < 86400000) { // 不到1天
timeAgo = (timeDifference / 3600000) + "小时前";
timeAgo = (timeDifference / 3600000) + "hour ago";
} else { // 大于1天
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
timeAgo = sdf.format(new Date());
......
......@@ -5,6 +5,7 @@ import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
......@@ -21,7 +22,8 @@ import pl.droidsonroids.gif.GifDrawable;
import pl.droidsonroids.gif.GifImageView;
import pl.droidsonroids.gif.InputSource;
@ExperimentalGetImage public class AboutActivity extends BaseActivity {
@ExperimentalGetImage
public class AboutActivity extends BaseActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
......@@ -33,7 +35,7 @@ import pl.droidsonroids.gif.InputSource;
private void initView() {
GifImageView imageView = findViewById(R.id.image);
try {
GifDrawable gifFromAssets = new GifDrawable( getAssets(), "app_gif.gif" );
GifDrawable gifFromAssets = new GifDrawable(getAssets(), "app_gif.gif");
gifFromAssets.setLoopCount(1);
imageView.setImageDrawable(gifFromAssets);
} catch (IOException e) {
......@@ -46,6 +48,7 @@ import pl.droidsonroids.gif.InputSource;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
findViewById(R.id.title_layout).setOnClickListener(v -> finish());
}
public static void startAboutActivity(Context context) {
......
......@@ -82,6 +82,9 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
if (event != null && event.type == MessageEvent.UPDATE_HOME_DATA) {
if (adapter != null && event.object instanceof PictureTranslateBean) {
adapter.updateData((PictureTranslateBean) event.object);
if (notData.getVisibility() != View.GONE) {
notData.setVisibility(View.GONE);
}
}
}
}
......
......@@ -61,6 +61,7 @@ public class PictureTranslateResultActivity extends BaseActivity {
private PictureTranslateBean pictureTranslateBean;
private LinearLayout moreSelectLayout;
private ImageView standardImg, chineseImg, devanagariImg, japaneseImg, koreanImg;
private TextView standardText, chineseImgText, devanagariText, japaneseText, koreanText;
private Bitmap bitmap;
private String path;
......@@ -121,10 +122,13 @@ public class PictureTranslateResultActivity extends BaseActivity {
initSelectMoreView();
LinearLayout share = findViewById(R.id.share);
share.setOnClickListener(v -> {
if (pictureTranslateBean == null) {
return;
}
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, "分享内容"); // 设置要分享的内容
startActivity(Intent.createChooser(shareIntent, "分享到"));
shareIntent.putExtra(Intent.EXTRA_TEXT, pictureTranslateBean.getTitle()); // 设置要分享的内容
startActivity(Intent.createChooser(shareIntent, getString(R.string.app_share_to)));
});
LinearLayout copy = findViewById(R.id.copy);
copy.setOnClickListener(v -> {
......@@ -147,6 +151,12 @@ public class PictureTranslateResultActivity extends BaseActivity {
RelativeLayout japaneseLayout = findViewById(R.id.japanese_layout);
RelativeLayout koreanLayout = findViewById(R.id.korean_layout);
standardText = findViewById(R.id.standard_text);
chineseImgText = findViewById(R.id.chinese_text);
devanagariText = findViewById(R.id.devanagari_text);
japaneseText = findViewById(R.id.japanese_text);
koreanText = findViewById(R.id.korean_text);
standardText.setTextColor(getColor(R.color.color_0075FF));
standardImg = findViewById(R.id.standard_img);
chineseImg = findViewById(R.id.chinese_img);
devanagariImg = findViewById(R.id.devanagari_img);
......@@ -172,6 +182,11 @@ public class PictureTranslateResultActivity extends BaseActivity {
devanagariImg.setVisibility(View.GONE);
japaneseImg.setVisibility(View.GONE);
koreanImg.setVisibility(View.GONE);
standardText.setTextColor(getColor(R.color.color_0075FF));
chineseImgText.setTextColor(getColor(R.color.black));
devanagariText.setTextColor(getColor(R.color.black));
japaneseText.setTextColor(getColor(R.color.black));
koreanText.setTextColor(getColor(R.color.black));
PictureTranslateUtils.init().translateStandard(InputImage.fromBitmap(bitmap, 0), new MySuccessListener(), new MyFailureListener());
break;
case 1:
......@@ -180,6 +195,11 @@ public class PictureTranslateResultActivity extends BaseActivity {
devanagariImg.setVisibility(View.GONE);
japaneseImg.setVisibility(View.GONE);
koreanImg.setVisibility(View.GONE);
standardText.setTextColor(getColor(R.color.black));
chineseImgText.setTextColor(getColor(R.color.color_0075FF));
devanagariText.setTextColor(getColor(R.color.black));
japaneseText.setTextColor(getColor(R.color.black));
koreanText.setTextColor(getColor(R.color.black));
PictureTranslateUtils.init().translateChinese(InputImage.fromBitmap(bitmap, 0), new MySuccessListener(), new MyFailureListener());
break;
case 2:
......@@ -188,6 +208,11 @@ public class PictureTranslateResultActivity extends BaseActivity {
devanagariImg.setVisibility(View.VISIBLE);
japaneseImg.setVisibility(View.GONE);
koreanImg.setVisibility(View.GONE);
standardText.setTextColor(getColor(R.color.black));
chineseImgText.setTextColor(getColor(R.color.black));
devanagariText.setTextColor(getColor(R.color.color_0075FF));
japaneseText.setTextColor(getColor(R.color.black));
koreanText.setTextColor(getColor(R.color.black));
PictureTranslateUtils.init().translateDevanagari(InputImage.fromBitmap(bitmap, 0), new MySuccessListener(), new MyFailureListener());
break;
case 3:
......@@ -196,6 +221,11 @@ public class PictureTranslateResultActivity extends BaseActivity {
devanagariImg.setVisibility(View.GONE);
japaneseImg.setVisibility(View.VISIBLE);
koreanImg.setVisibility(View.GONE);
standardText.setTextColor(getColor(R.color.black));
chineseImgText.setTextColor(getColor(R.color.black));
devanagariText.setTextColor(getColor(R.color.black));
japaneseText.setTextColor(getColor(R.color.color_0075FF));
koreanText.setTextColor(getColor(R.color.black));
PictureTranslateUtils.init().translateJapanese(InputImage.fromBitmap(bitmap, 0), new MySuccessListener(), new MyFailureListener());
break;
case 4:
......@@ -204,6 +234,11 @@ public class PictureTranslateResultActivity extends BaseActivity {
devanagariImg.setVisibility(View.GONE);
japaneseImg.setVisibility(View.GONE);
koreanImg.setVisibility(View.VISIBLE);
standardText.setTextColor(getColor(R.color.black));
chineseImgText.setTextColor(getColor(R.color.black));
devanagariText.setTextColor(getColor(R.color.black));
japaneseText.setTextColor(getColor(R.color.black));
koreanText.setTextColor(getColor(R.color.color_0075FF));
PictureTranslateUtils.init().translateKorean(InputImage.fromBitmap(bitmap, 0), new MySuccessListener(), new MyFailureListener());
break;
}
......
......@@ -8,13 +8,19 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.camera.core.ExperimentalGetImage;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.ads.cal.picturetranslate.PictureTranslateUtils;
import com.ads.cal.picturetranslate.R;
......@@ -23,6 +29,8 @@ import com.ads.cal.picturetranslate.base.BaseActivity;
import java.io.IOException;
import java.lang.ref.WeakReference;
import java.util.Timer;
import java.util.TimerTask;
import pl.droidsonroids.gif.GifDrawable;
import pl.droidsonroids.gif.GifImageView;
......@@ -32,6 +40,9 @@ public class PictureTranslateStartActivity extends BaseActivity {
private MyHandler handler;
private ProgressBar bar;
private ViewPager viewPager;
private final int[] images = {R.mipmap.image1, R.mipmap.image2, R.mipmap.image3}; // 图片资源
private int currentPage = 0;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
......@@ -51,12 +62,12 @@ public class PictureTranslateStartActivity extends BaseActivity {
}
bar = findViewById(R.id.horizontalProgressBar);
handler = new MyHandler(this);
TextView try_it_now = findViewById(R.id.try_it_now);
String firstInstall = SharedPreferencesUtil.getString(this, KEY_FIRST_INSTALL_APP, "");
if (!TextUtils.isEmpty(firstInstall)) {
try_it_now.setVisibility(View.GONE);
bar.setVisibility(View.VISIBLE);
handler = new MyHandler(this);
handler.sendEmptyMessage(1);
} else {
try_it_now.setOnClickListener(v -> {
......@@ -64,6 +75,8 @@ public class PictureTranslateStartActivity extends BaseActivity {
SharedPreferencesUtil.saveString(PictureTranslateStartActivity.this, KEY_FIRST_INSTALL_APP, "install");
finish();
});
playBanner();
}
}
......@@ -87,7 +100,7 @@ public class PictureTranslateStartActivity extends BaseActivity {
}
}
private static class MyHandler extends Handler {
private class MyHandler extends Handler {
private final WeakReference<Activity> weakReference;
private int i = 0;
......@@ -100,12 +113,122 @@ public class PictureTranslateStartActivity extends BaseActivity {
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
sendEmptyMessageDelayed(1, 10);
Activity activity = weakReference.get();
switch (msg.what) {
case 1:
sendEmptyMessageDelayed(1, 10);
if (activity instanceof PictureTranslateStartActivity) {
((PictureTranslateStartActivity) activity).setProgressBarProgress(i++);
}
break;
case 2:
if (activity instanceof PictureTranslateStartActivity) {
((PictureTranslateStartActivity) activity).smoothScroll();
}
sendEmptyMessageDelayed(2, 1500);
break;
}
}
}
public void smoothScroll() {
if (currentPage == images.length) {
currentPage = 0;
}
viewPager.setCurrentItem(currentPage++, currentPage != 0);
}
private ImageView im1, im2, im3;
private void playBanner() {
LinearLayout layout = findViewById(R.id.layout);
im1 = findViewById(R.id.im_1);
im2 = findViewById(R.id.im_2);
im3 = findViewById(R.id.im_3);
layout.setVisibility(View.VISIBLE);
viewPager = findViewById(R.id.viewPager);
ImagePagerAdapter adapter = new ImagePagerAdapter();
viewPager.setAdapter(adapter);
viewPager.setVisibility(View.VISIBLE);
handler.sendEmptyMessageDelayed(2, 1500);
viewPager.setOnTouchListener((v, event) -> {
int action = event.getAction();
if (action == MotionEvent.ACTION_DOWN) {
handler.removeCallbacksAndMessages(null);
} else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) {
handler.sendEmptyMessageDelayed(2, 1500);
}
return false;
});
// 手动滑动时停止自动滑动
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
currentPage = position;
setImBg(currentPage);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
private void setImBg(int position) {
switch (position) {
case 0:
im1.setBackgroundResource(R.drawable.app_f1a68f);
im2.setBackgroundResource(R.drawable.app_ede0dc);
im3.setBackgroundResource(R.drawable.app_ede0dc);
break;
case 1:
im2.setBackgroundResource(R.drawable.app_f1a68f);
im1.setBackgroundResource(R.drawable.app_ede0dc);
im3.setBackgroundResource(R.drawable.app_ede0dc);
break;
case 2:
im3.setBackgroundResource(R.drawable.app_f1a68f);
im1.setBackgroundResource(R.drawable.app_ede0dc);
im2.setBackgroundResource(R.drawable.app_ede0dc);
break;
}
}
private class ImagePagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return images.length;
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}
@NonNull
@Override
public Object instantiateItem(@NonNull View container, int position) {
ViewPager viewPager = (ViewPager) container;
View imageView = getLayoutInflater().inflate(R.layout.image_item, viewPager, false);
// 设置图片资源
imageView.setBackgroundResource(images[position]);
viewPager.addView(imageView);
return imageView;
}
@Override
public void destroyItem(@NonNull View container, int position, @NonNull Object object) {
ViewPager viewPager = (ViewPager) container;
viewPager.removeView((View) object);
}
}
}
......@@ -58,6 +58,7 @@ public class PictureTranslateListAdapter extends RecyclerView.Adapter<PictureTra
if (data == null) {
data = new ArrayList<>();
} else {
data.clear();
data.addAll(beans);
}
notifyDataSetChanged();
......
......@@ -43,7 +43,7 @@ public class SettingFragment extends Fragment {
String packageName = activity.getPackageName();
shareIntent.putExtra(Intent.EXTRA_TEXT, "The best Text Extraction app ! \n https://play.google.com/store/apps/details?id=" + packageName); // 设置要分享的内容
}
startActivity(Intent.createChooser(shareIntent, "分享到"));
startActivity(Intent.createChooser(shareIntent, getString(R.string.app_share_to)));
});
email_layout.setOnClickListener(v -> {
try {
......
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/white"/>
<item android:drawable="@color/color_e9eaef" android:state_focused="true"/>
<item android:drawable="@color/color_e9eaef" android:state_checked="true"/>
<item android:drawable="@color/white"/>
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="180dp"/>
<solid android:color="#EDE0DC"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="180dp"/>
<solid android:color="#F1A68F"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/color_e9eaef" android:state_pressed="true"/>
<item android:drawable="@color/white"/>
</selector>
\ No newline at end of file
......@@ -33,20 +33,37 @@
</LinearLayout>
<LinearLayout
android:id="@+id/title_layout"
android:layout_width="wrap_content"
android:layout_height="53dp"
android:layout_marginTop="19dp"
android:orientation="horizontal"
android:paddingStart="14dp"
android:paddingEnd="14dp">
<ImageView
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="8dp"
android:src="@mipmap/app_icon_gray_back" />
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="53dp"
android:layout_marginTop="19dp"
android:layout_height="match_parent"
android:background="@color/white"
android:gravity="center_vertical"
android:paddingStart="14dp"
android:paddingEnd="14dp"
android:text="@string/app_about"
android:textColor="#1C1C1C"
android:textSize="20sp"
android:textStyle="bold" />
</LinearLayout>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
......
......@@ -187,6 +187,7 @@
android:paddingEnd="8dp">
<TextView
android:id="@+id/standard_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
......@@ -224,6 +225,7 @@
android:paddingEnd="8dp">
<TextView
android:id="@+id/devanagari_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
......
......@@ -9,14 +9,14 @@
android:layout_height="100dp"
android:layout_above="@+id/welcome"
android:layout_centerHorizontal="true"
android:layout_marginBottom="30dp" />
android:layout_marginBottom="20dp" />
<TextView
android:id="@+id/welcome"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/name"
android:layout_marginBottom="10dp"
android:layout_marginBottom="6dp"
android:gravity="center"
android:text="@string/app_welcome"
android:textColor="#5B5D62"
......@@ -33,6 +33,48 @@
android:textSize="20sp"
android:textStyle="bold" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_below="@+id/name"
android:layout_marginStart="40dp"
android:layout_marginEnd="40dp"
android:layout_marginTop="60dp"
android:visibility="gone"
android:layout_height="63dp" />
<LinearLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/viewPager"
android:layout_marginTop="14dp"
android:gravity="center"
android:visibility="gone"
android:orientation="horizontal">
<ImageView
android:id="@+id/im_1"
android:layout_width="6dp"
android:layout_height="6dp"
android:background="@drawable/app_f1a68f"
android:layout_marginEnd="8dp"/>
<ImageView
android:id="@+id/im_2"
android:layout_width="6dp"
android:layout_height="6dp"
android:background="@drawable/app_ede0dc"
android:layout_marginEnd="8dp"/>
<ImageView
android:id="@+id/im_3"
android:layout_width="6dp"
android:background="@drawable/app_ede0dc"
android:layout_height="6dp"/>
</LinearLayout>
<TextView
android:id="@+id/try_it_now"
android:layout_width="match_parent"
......
<?xml version="1.0" encoding="utf-8"?>
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerCrop" />
\ No newline at end of file
......@@ -6,6 +6,7 @@
android:orientation="horizontal"
android:paddingStart="14dp"
android:paddingTop="7dp"
android:background="@drawable/list_item_bg"
android:paddingEnd="14dp"
android:paddingBottom="7dp">
......
......@@ -36,6 +36,7 @@
<string name="app_save_automatically">Saved Automatically</string>
<string name="app_again">The content was not recognized, please try again.</string>
<string name="app_got_it">Got it</string>
<string name="app_share_to">Share To</string>
</resources>
\ No newline at end of file
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