diff --git a/.idea/misc.xml b/.idea/misc.xml
index cedc3bd..339bc0c 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -74,6 +74,9 @@
+
+
+
diff --git a/app/src/main/java/com/fatapp/oxygentoolbox/App.java b/app/src/main/java/com/fatapp/oxygentoolbox/App.java
index 7af5dfd..e45b140 100644
--- a/app/src/main/java/com/fatapp/oxygentoolbox/App.java
+++ b/app/src/main/java/com/fatapp/oxygentoolbox/App.java
@@ -13,7 +13,7 @@ import androidx.annotation.Nullable;
import com.fatapp.oxygentoolbox.util.MultiLanguageUtils;
import com.fatapp.oxygentoolbox.util.ResourceUtil;
import com.fatapp.oxygentoolbox.util.SharedPreferencesUtils;
-import com.fatapp.oxygentoolbox.util.ToolsList;
+import com.fatapp.oxygentoolbox.util.tool.ToolsList;
import java.io.IOException;
diff --git a/app/src/main/java/com/fatapp/oxygentoolbox/tools/timescreen/MainActivity.java b/app/src/main/java/com/fatapp/oxygentoolbox/tools/timescreen/MainActivity.java
index 8b2a790..6f953ac 100644
--- a/app/src/main/java/com/fatapp/oxygentoolbox/tools/timescreen/MainActivity.java
+++ b/app/src/main/java/com/fatapp/oxygentoolbox/tools/timescreen/MainActivity.java
@@ -1,7 +1,6 @@
package com.fatapp.oxygentoolbox.tools.timescreen;
import android.animation.ObjectAnimator;
-import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.graphics.Typeface;
import android.graphics.drawable.AnimatedVectorDrawable;
@@ -16,22 +15,20 @@ import android.widget.TextView;
import android.widget.ViewSwitcher;
import androidx.annotation.ColorInt;
-import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.content.res.AppCompatResources;
-import androidx.constraintlayout.widget.ConstraintLayout;
import com.fatapp.oxygentoolbox.R;
import com.fatapp.oxygentoolbox.util.ResourceUtil;
import com.fatapp.oxygentoolbox.util.VariableChangeListener;
import com.fatapp.oxygentoolbox.util.VariableChangeSupport;
-import com.ypz.bangscreentools.BangScreenTools;
+import com.fatapp.oxygentoolbox.util.tool.BaseActivityHorizontal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
-public class MainActivity extends AppCompatActivity {
+public class MainActivity extends BaseActivityHorizontal {
private int uiMode = ResourceUtil.getAppUiMode();
private VariableChangeSupport hourTenVariableChangeSupport;
private VariableChangeSupport hourOneVariableChangeSupport;
@@ -42,7 +39,6 @@ public class MainActivity extends AppCompatActivity {
private VariableChangeSupport dateVisibilityChangeSupport;
private VariableChangeSupport uiVisibilityChangeSupport;
- private ConstraintLayout constraintLayoutRoot;
private ImageView imageViewMode;
private TextSwitcher textSwitcherHourTen;
private TextSwitcher textSwitcherHourOne;
@@ -55,7 +51,6 @@ public class MainActivity extends AppCompatActivity {
private TextView textViewDate;
private void initView() {
- constraintLayoutRoot = findViewById(R.id.constraint_layout_root);
imageViewMode = findViewById(R.id.image_view_mode);
textSwitcherHourTen = findViewById(R.id.text_switcher_hour_ten);
textSwitcherHourOne = findViewById(R.id.text_switcher_hour_one);
@@ -70,10 +65,8 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
- BangScreenTools.getBangScreenTools().fullscreen(getWindow(), this);
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_tool_time_screen);
+ super.loadView(this, R.layout.activity_tool_time_screen);
initView();
initTextSwitcher();
@@ -145,7 +138,7 @@ public class MainActivity extends AppCompatActivity {
ObjectAnimator.ofFloat(imageViewMode, View.ALPHA, (boolean) newValue ? 0.0f : 1.0f, (boolean) newValue ? 1.0f : 0.0f).start();
}
});
- constraintLayoutRoot.setOnClickListener(view -> uiVisibilityChangeSupport.setValue(!uiVisibilityChangeSupport.getValue()));
+ getConstraintLayoutRoot().setOnClickListener(view -> uiVisibilityChangeSupport.setValue(!uiVisibilityChangeSupport.getValue()));
}
private void initTextSwitcher() {
@@ -220,7 +213,7 @@ public class MainActivity extends AppCompatActivity {
}
private void setColors(@ColorInt int backgroundColor, @ColorInt int primaryTextColor) {
- ObjectAnimator backgroundColorAnimator = ObjectAnimator.ofArgb(constraintLayoutRoot, "backgroundColor", ((ColorDrawable) constraintLayoutRoot.getBackground()).getColor(), backgroundColor);
+ ObjectAnimator backgroundColorAnimator = ObjectAnimator.ofArgb(getConstraintLayoutRoot(), "backgroundColor", ((ColorDrawable) getConstraintLayoutRoot().getBackground()).getColor(), backgroundColor);
backgroundColorAnimator.setDuration(500L);
backgroundColorAnimator.start();
((TextView) textSwitcherHourTen.getChildAt(0)).setTextColor(primaryTextColor);
@@ -238,10 +231,4 @@ public class MainActivity extends AppCompatActivity {
((TextView) textSwitcherSecondOne.getChildAt(0)).setTextColor(primaryTextColor);
((TextView) textSwitcherSecondOne.getChildAt(1)).setTextColor(primaryTextColor);
}
-
- @Override
- public void onWindowFocusChanged(boolean hasFocus) {
- BangScreenTools.getBangScreenTools().windowChangeFullscreen(getWindow());
- super.onWindowFocusChanged(hasFocus);
- }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/fatapp/oxygentoolbox/tools/translation/MainActivity.java b/app/src/main/java/com/fatapp/oxygentoolbox/tools/translation/MainActivity.java
index c27e91f..5773489 100644
--- a/app/src/main/java/com/fatapp/oxygentoolbox/tools/translation/MainActivity.java
+++ b/app/src/main/java/com/fatapp/oxygentoolbox/tools/translation/MainActivity.java
@@ -4,7 +4,6 @@ import android.graphics.drawable.AnimatedVectorDrawable;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
-import android.view.MenuItem;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
@@ -12,17 +11,13 @@ import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
-import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.widget.Toolbar;
-import androidx.constraintlayout.widget.ConstraintLayout;
import com.fatapp.oxygentoolbox.R;
import com.fatapp.oxygentoolbox.util.ResourceUtil;
-import com.fatapp.oxygentoolbox.util.ToolsList;
import com.fatapp.oxygentoolbox.util.http.HttpHelper;
import com.fatapp.oxygentoolbox.util.http.ResponseListener;
+import com.fatapp.oxygentoolbox.util.tool.BaseActivityNormal;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar;
@@ -33,11 +28,9 @@ import org.json.JSONObject;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
-import java.util.Objects;
import java.util.StringJoiner;
-public class MainActivity extends AppCompatActivity {
- private final String TOOL_NAME = ToolsList.getToolName(getClass().getName());
+public class MainActivity extends BaseActivityNormal {
final String URL_YOU_DAO = "http://fanyi.youdao.com/translate?&doctype=json&type=%s&i=%s";
private final String LANGUAGE_CHINESE = "ZH_CN";
@@ -53,9 +46,6 @@ public class MainActivity extends AppCompatActivity {
private String languageFrom = LANGUAGE_CHINESE;
private String languageTo = LANGUAGE_ENGLISH;
-
- private ConstraintLayout constraintLayoutRoot;
- private Toolbar toolbar;
private TextView textViewLanguageFrom;
private ImageView imageViewSwap;
private TextView textViewLanguageTo;
@@ -65,8 +55,6 @@ public class MainActivity extends AppCompatActivity {
private ProgressBar progressBarInTranslation;
private void initView() {
- constraintLayoutRoot = findViewById(R.id.constraint_layout_root);
- toolbar = findViewById(R.id.toolbar);
textViewLanguageFrom = findViewById(R.id.text_view_language_from);
imageViewSwap = findViewById(R.id.image_view_swap);
textViewLanguageTo = findViewById(R.id.text_view_language_to);
@@ -79,10 +67,9 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_tool_translation);
+ super.loadView(this, R.layout.activity_tool_translation);
initView();
- initLayout();
initLanguageChoose();
initTranslation();
}
@@ -138,13 +125,6 @@ public class MainActivity extends AppCompatActivity {
});
}
- private void initLayout() {
- constraintLayoutRoot.setPadding(0, ResourceUtil.getStatusBarHeight(getWindow(), getApplicationContext()), 0, 0);
- setSupportActionBar(toolbar);
- Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
- Objects.requireNonNull(getSupportActionBar()).setTitle(TOOL_NAME);
- }
-
private void translate() {
editTextFrom.setEnabled(false);
imageViewTranslate.setEnabled(false);
@@ -185,7 +165,7 @@ public class MainActivity extends AppCompatActivity {
editTextFrom.setEnabled(true);
imageViewTranslate.setEnabled(true);
progressBarInTranslation.setVisibility(View.INVISIBLE);
- Snackbar.make(constraintLayoutRoot, "翻译失败", Snackbar.LENGTH_LONG).show();
+ Snackbar.make(getConstraintLayoutRoot(), "翻译失败", Snackbar.LENGTH_LONG).show();
}
});
@@ -198,13 +178,4 @@ public class MainActivity extends AppCompatActivity {
httpHelper.getResponseListener().onFailed();
}
}
-
- @Override
- public boolean onOptionsItemSelected(@NonNull MenuItem item) {
- if (item.getItemId() == android.R.id.home) {
- finish();
- }
-
- return super.onOptionsItemSelected(item);
- }
}
diff --git a/app/src/main/java/com/fatapp/oxygentoolbox/ui/home/util/ToolsAdapter.java b/app/src/main/java/com/fatapp/oxygentoolbox/ui/home/util/ToolsAdapter.java
index 4651cbb..5f085bf 100644
--- a/app/src/main/java/com/fatapp/oxygentoolbox/ui/home/util/ToolsAdapter.java
+++ b/app/src/main/java/com/fatapp/oxygentoolbox/ui/home/util/ToolsAdapter.java
@@ -16,9 +16,9 @@ import androidx.recyclerview.widget.RecyclerView;
import com.fatapp.oxygentoolbox.R;
import com.fatapp.oxygentoolbox.layout.AutoLinefeedLayout;
import com.fatapp.oxygentoolbox.layout.FoldLayout;
-import com.fatapp.oxygentoolbox.util.ToolsLauncher;
-import com.fatapp.oxygentoolbox.util.ToolsList;
import com.fatapp.oxygentoolbox.util.VibratorController;
+import com.fatapp.oxygentoolbox.util.tool.ToolsLauncher;
+import com.fatapp.oxygentoolbox.util.tool.ToolsList;
import java.util.Collections;
diff --git a/app/src/main/java/com/fatapp/oxygentoolbox/util/tool/BaseActivityHorizontal.java b/app/src/main/java/com/fatapp/oxygentoolbox/util/tool/BaseActivityHorizontal.java
new file mode 100644
index 0000000..74a8a9c
--- /dev/null
+++ b/app/src/main/java/com/fatapp/oxygentoolbox/util/tool/BaseActivityHorizontal.java
@@ -0,0 +1,52 @@
+package com.fatapp.oxygentoolbox.util.tool;
+
+import android.content.Context;
+import android.content.pm.ActivityInfo;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+
+import androidx.annotation.LayoutRes;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.constraintlayout.widget.ConstraintLayout;
+
+import com.fatapp.oxygentoolbox.R;
+import com.ypz.bangscreentools.BangScreenTools;
+
+public class BaseActivityHorizontal extends AppCompatActivity {
+ private final String TOOL_NAME = ToolsList.getToolName(getClass().getName());
+ private ConstraintLayout constraintLayoutRoot;
+ private ConstraintLayout constraintLayoutContent;
+
+ private void _initView() {
+ constraintLayoutRoot = findViewById(R.id.constraint_layout_root);
+ constraintLayoutContent = findViewById(R.id.constraint_layout_content);
+ }
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ BangScreenTools.getBangScreenTools().fullscreen(getWindow(), this);
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_tool_base_horizontal);
+ _initView();
+ }
+
+ protected void loadView(Context context, @LayoutRes int layoutResID) {
+ LayoutInflater.from(context).inflate(layoutResID, constraintLayoutContent);
+ }
+
+ protected String getToolName() {
+ return TOOL_NAME;
+ }
+
+ protected ConstraintLayout getConstraintLayoutRoot() {
+ return constraintLayoutRoot;
+ }
+
+ @Override
+ public void onWindowFocusChanged(boolean hasFocus) {
+ BangScreenTools.getBangScreenTools().windowChangeFullscreen(getWindow());
+ super.onWindowFocusChanged(hasFocus);
+ }
+}
diff --git a/app/src/main/java/com/fatapp/oxygentoolbox/util/tool/BaseActivityNormal.java b/app/src/main/java/com/fatapp/oxygentoolbox/util/tool/BaseActivityNormal.java
new file mode 100644
index 0000000..ebbafc2
--- /dev/null
+++ b/app/src/main/java/com/fatapp/oxygentoolbox/util/tool/BaseActivityNormal.java
@@ -0,0 +1,72 @@
+package com.fatapp.oxygentoolbox.util.tool;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.MenuItem;
+
+import androidx.annotation.LayoutRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.constraintlayout.widget.ConstraintLayout;
+
+import com.fatapp.oxygentoolbox.R;
+import com.fatapp.oxygentoolbox.util.ResourceUtil;
+
+import java.util.Objects;
+
+public class BaseActivityNormal extends AppCompatActivity {
+ private final String TOOL_NAME = ToolsList.getToolName(getClass().getName());
+
+ private ConstraintLayout constraintLayoutRoot;
+ private Toolbar toolbar;
+ private ConstraintLayout constraintLayoutContent;
+
+ private void _initView() {
+ constraintLayoutRoot = findViewById(R.id.constraint_layout_root);
+ toolbar = findViewById(R.id.toolbar);
+ constraintLayoutContent = findViewById(R.id.constraint_layout_content);
+ }
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_tool_base_normal);
+ _initView();
+ _initLayout();
+ }
+
+ protected void loadView(Context context, @LayoutRes int layoutResID) {
+ LayoutInflater.from(context).inflate(layoutResID, constraintLayoutContent);
+ }
+
+ private void _initLayout() {
+ constraintLayoutRoot.setPadding(0, ResourceUtil.getStatusBarHeight(getWindow(), getApplicationContext()), 0, 0);
+ setSupportActionBar(toolbar);
+ Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
+ Objects.requireNonNull(getSupportActionBar()).setTitle(TOOL_NAME);
+ }
+
+ protected String getToolName() {
+ return TOOL_NAME;
+ }
+
+ protected ConstraintLayout getConstraintLayoutRoot() {
+ return constraintLayoutRoot;
+ }
+
+ protected Toolbar getToolbar() {
+ return toolbar;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(@NonNull MenuItem item) {
+ if (item.getItemId() == android.R.id.home) {
+ finish();
+ }
+
+ return super.onOptionsItemSelected(item);
+ }
+}
diff --git a/app/src/main/java/com/fatapp/oxygentoolbox/util/ToolsLauncher.java b/app/src/main/java/com/fatapp/oxygentoolbox/util/tool/ToolsLauncher.java
similarity index 94%
rename from app/src/main/java/com/fatapp/oxygentoolbox/util/ToolsLauncher.java
rename to app/src/main/java/com/fatapp/oxygentoolbox/util/tool/ToolsLauncher.java
index 14db983..1522c8b 100644
--- a/app/src/main/java/com/fatapp/oxygentoolbox/util/ToolsLauncher.java
+++ b/app/src/main/java/com/fatapp/oxygentoolbox/util/tool/ToolsLauncher.java
@@ -1,4 +1,4 @@
-package com.fatapp.oxygentoolbox.util;
+package com.fatapp.oxygentoolbox.util.tool;
import static androidx.core.content.ContextCompat.startActivity;
diff --git a/app/src/main/java/com/fatapp/oxygentoolbox/util/ToolsList.java b/app/src/main/java/com/fatapp/oxygentoolbox/util/tool/ToolsList.java
similarity index 96%
rename from app/src/main/java/com/fatapp/oxygentoolbox/util/ToolsList.java
rename to app/src/main/java/com/fatapp/oxygentoolbox/util/tool/ToolsList.java
index 49a351b..925fbd4 100644
--- a/app/src/main/java/com/fatapp/oxygentoolbox/util/ToolsList.java
+++ b/app/src/main/java/com/fatapp/oxygentoolbox/util/tool/ToolsList.java
@@ -1,7 +1,9 @@
-package com.fatapp.oxygentoolbox.util;
+package com.fatapp.oxygentoolbox.util.tool;
import androidx.annotation.NonNull;
+import com.fatapp.oxygentoolbox.util.Locales;
+import com.fatapp.oxygentoolbox.util.SharedPreferencesUtils;
import com.fatapp.oxygentoolbox.util.json.ToolsJson;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
diff --git a/app/src/main/res/layout/activity_tool_base_horizontal.xml b/app/src/main/res/layout/activity_tool_base_horizontal.xml
new file mode 100644
index 0000000..6f72a42
--- /dev/null
+++ b/app/src/main/res/layout/activity_tool_base_horizontal.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_tool_base_normal.xml b/app/src/main/res/layout/activity_tool_base_normal.xml
new file mode 100644
index 0000000..cbb4ecb
--- /dev/null
+++ b/app/src/main/res/layout/activity_tool_base_normal.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_tool_time_screen.xml b/app/src/main/res/layout/activity_tool_time_screen.xml
index fbc49cb..6f84737 100644
--- a/app/src/main/res/layout/activity_tool_time_screen.xml
+++ b/app/src/main/res/layout/activity_tool_time_screen.xml
@@ -2,10 +2,8 @@
diff --git a/app/src/main/res/layout/activity_tool_translation.xml b/app/src/main/res/layout/activity_tool_translation.xml
index 5233725..412346b 100644
--- a/app/src/main/res/layout/activity_tool_translation.xml
+++ b/app/src/main/res/layout/activity_tool_translation.xml
@@ -2,143 +2,118 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:id="@+id/text_view_language_from"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:gravity="center"
+ android:text="@string/tool_translation_language_chinese"
+ android:textColor="?attr/app_theme"
+ android:textSize="@dimen/tool_translation_text_size" />
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ app:layout_constraintTop_toTopOf="parent" />
-
-
-
-
+
\ No newline at end of file