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