mirror of
https://github.com/FatttSnake/OxygenToolbox.git
synced 2026-04-06 04:11:26 +08:00
Extract base activity.
This commit is contained in:
3
.idea/misc.xml
generated
3
.idea/misc.xml
generated
@@ -74,6 +74,9 @@
|
|||||||
<entry key="..\:/.workspace-android/Project-ToolBox/OxygenToolbox/app/src/main/res/layout/activity_main.xml" value="0.1" />
|
<entry key="..\:/.workspace-android/Project-ToolBox/OxygenToolbox/app/src/main/res/layout/activity_main.xml" value="0.1" />
|
||||||
<entry key="..\:/.workspace-android/Project-ToolBox/OxygenToolbox/app/src/main/res/layout/activity_splash.xml" value="0.1693840579710145" />
|
<entry key="..\:/.workspace-android/Project-ToolBox/OxygenToolbox/app/src/main/res/layout/activity_splash.xml" value="0.1693840579710145" />
|
||||||
<entry key="..\:/.workspace-android/Project-ToolBox/OxygenToolbox/app/src/main/res/layout/activity_time_screen.xml" value="0.34739583333333335" />
|
<entry key="..\:/.workspace-android/Project-ToolBox/OxygenToolbox/app/src/main/res/layout/activity_time_screen.xml" value="0.34739583333333335" />
|
||||||
|
<entry key="..\:/.workspace-android/Project-ToolBox/OxygenToolbox/app/src/main/res/layout/activity_tool_base.xml" value="0.1" />
|
||||||
|
<entry key="..\:/.workspace-android/Project-ToolBox/OxygenToolbox/app/src/main/res/layout/activity_tool_base_horizontal.xml" value="0.29628046173578454" />
|
||||||
|
<entry key="..\:/.workspace-android/Project-ToolBox/OxygenToolbox/app/src/main/res/layout/activity_tool_base_normal.xml" value="0.271484375" />
|
||||||
<entry key="..\:/.workspace-android/Project-ToolBox/OxygenToolbox/app/src/main/res/layout/activity_tool_ip.xml" value="0.29628046173578454" />
|
<entry key="..\:/.workspace-android/Project-ToolBox/OxygenToolbox/app/src/main/res/layout/activity_tool_ip.xml" value="0.29628046173578454" />
|
||||||
<entry key="..\:/.workspace-android/Project-ToolBox/OxygenToolbox/app/src/main/res/layout/activity_tool_time_screen.xml" value="0.1" />
|
<entry key="..\:/.workspace-android/Project-ToolBox/OxygenToolbox/app/src/main/res/layout/activity_tool_time_screen.xml" value="0.1" />
|
||||||
<entry key="..\:/.workspace-android/Project-ToolBox/OxygenToolbox/app/src/main/res/layout/activity_tool_translation.xml" value="0.1" />
|
<entry key="..\:/.workspace-android/Project-ToolBox/OxygenToolbox/app/src/main/res/layout/activity_tool_translation.xml" value="0.1" />
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import androidx.annotation.Nullable;
|
|||||||
import com.fatapp.oxygentoolbox.util.MultiLanguageUtils;
|
import com.fatapp.oxygentoolbox.util.MultiLanguageUtils;
|
||||||
import com.fatapp.oxygentoolbox.util.ResourceUtil;
|
import com.fatapp.oxygentoolbox.util.ResourceUtil;
|
||||||
import com.fatapp.oxygentoolbox.util.SharedPreferencesUtils;
|
import com.fatapp.oxygentoolbox.util.SharedPreferencesUtils;
|
||||||
import com.fatapp.oxygentoolbox.util.ToolsList;
|
import com.fatapp.oxygentoolbox.util.tool.ToolsList;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.fatapp.oxygentoolbox.tools.timescreen;
|
package com.fatapp.oxygentoolbox.tools.timescreen;
|
||||||
|
|
||||||
import android.animation.ObjectAnimator;
|
import android.animation.ObjectAnimator;
|
||||||
import android.content.pm.ActivityInfo;
|
|
||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.graphics.Typeface;
|
import android.graphics.Typeface;
|
||||||
import android.graphics.drawable.AnimatedVectorDrawable;
|
import android.graphics.drawable.AnimatedVectorDrawable;
|
||||||
@@ -16,22 +15,20 @@ import android.widget.TextView;
|
|||||||
import android.widget.ViewSwitcher;
|
import android.widget.ViewSwitcher;
|
||||||
|
|
||||||
import androidx.annotation.ColorInt;
|
import androidx.annotation.ColorInt;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
import androidx.appcompat.content.res.AppCompatResources;
|
import androidx.appcompat.content.res.AppCompatResources;
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
|
||||||
|
|
||||||
import com.fatapp.oxygentoolbox.R;
|
import com.fatapp.oxygentoolbox.R;
|
||||||
import com.fatapp.oxygentoolbox.util.ResourceUtil;
|
import com.fatapp.oxygentoolbox.util.ResourceUtil;
|
||||||
import com.fatapp.oxygentoolbox.util.VariableChangeListener;
|
import com.fatapp.oxygentoolbox.util.VariableChangeListener;
|
||||||
import com.fatapp.oxygentoolbox.util.VariableChangeSupport;
|
import com.fatapp.oxygentoolbox.util.VariableChangeSupport;
|
||||||
import com.ypz.bangscreentools.BangScreenTools;
|
import com.fatapp.oxygentoolbox.util.tool.BaseActivityHorizontal;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends BaseActivityHorizontal {
|
||||||
private int uiMode = ResourceUtil.getAppUiMode();
|
private int uiMode = ResourceUtil.getAppUiMode();
|
||||||
private VariableChangeSupport<String> hourTenVariableChangeSupport;
|
private VariableChangeSupport<String> hourTenVariableChangeSupport;
|
||||||
private VariableChangeSupport<String> hourOneVariableChangeSupport;
|
private VariableChangeSupport<String> hourOneVariableChangeSupport;
|
||||||
@@ -42,7 +39,6 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
private VariableChangeSupport<Boolean> dateVisibilityChangeSupport;
|
private VariableChangeSupport<Boolean> dateVisibilityChangeSupport;
|
||||||
private VariableChangeSupport<Boolean> uiVisibilityChangeSupport;
|
private VariableChangeSupport<Boolean> uiVisibilityChangeSupport;
|
||||||
|
|
||||||
private ConstraintLayout constraintLayoutRoot;
|
|
||||||
private ImageView imageViewMode;
|
private ImageView imageViewMode;
|
||||||
private TextSwitcher textSwitcherHourTen;
|
private TextSwitcher textSwitcherHourTen;
|
||||||
private TextSwitcher textSwitcherHourOne;
|
private TextSwitcher textSwitcherHourOne;
|
||||||
@@ -55,7 +51,6 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
private TextView textViewDate;
|
private TextView textViewDate;
|
||||||
|
|
||||||
private void initView() {
|
private void initView() {
|
||||||
constraintLayoutRoot = findViewById(R.id.constraint_layout_root);
|
|
||||||
imageViewMode = findViewById(R.id.image_view_mode);
|
imageViewMode = findViewById(R.id.image_view_mode);
|
||||||
textSwitcherHourTen = findViewById(R.id.text_switcher_hour_ten);
|
textSwitcherHourTen = findViewById(R.id.text_switcher_hour_ten);
|
||||||
textSwitcherHourOne = findViewById(R.id.text_switcher_hour_one);
|
textSwitcherHourOne = findViewById(R.id.text_switcher_hour_one);
|
||||||
@@ -70,10 +65,8 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
BangScreenTools.getBangScreenTools().fullscreen(getWindow(), this);
|
|
||||||
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
|
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_tool_time_screen);
|
super.loadView(this, R.layout.activity_tool_time_screen);
|
||||||
|
|
||||||
initView();
|
initView();
|
||||||
initTextSwitcher();
|
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();
|
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() {
|
private void initTextSwitcher() {
|
||||||
@@ -220,7 +213,7 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setColors(@ColorInt int backgroundColor, @ColorInt int primaryTextColor) {
|
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.setDuration(500L);
|
||||||
backgroundColorAnimator.start();
|
backgroundColorAnimator.start();
|
||||||
((TextView) textSwitcherHourTen.getChildAt(0)).setTextColor(primaryTextColor);
|
((TextView) textSwitcherHourTen.getChildAt(0)).setTextColor(primaryTextColor);
|
||||||
@@ -238,10 +231,4 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
((TextView) textSwitcherSecondOne.getChildAt(0)).setTextColor(primaryTextColor);
|
((TextView) textSwitcherSecondOne.getChildAt(0)).setTextColor(primaryTextColor);
|
||||||
((TextView) textSwitcherSecondOne.getChildAt(1)).setTextColor(primaryTextColor);
|
((TextView) textSwitcherSecondOne.getChildAt(1)).setTextColor(primaryTextColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWindowFocusChanged(boolean hasFocus) {
|
|
||||||
BangScreenTools.getBangScreenTools().windowChangeFullscreen(getWindow());
|
|
||||||
super.onWindowFocusChanged(hasFocus);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -4,7 +4,6 @@ import android.graphics.drawable.AnimatedVectorDrawable;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
import android.view.MenuItem;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
@@ -12,17 +11,13 @@ import android.widget.ImageView;
|
|||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
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.R;
|
||||||
import com.fatapp.oxygentoolbox.util.ResourceUtil;
|
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.HttpHelper;
|
||||||
import com.fatapp.oxygentoolbox.util.http.ResponseListener;
|
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.dialog.MaterialAlertDialogBuilder;
|
||||||
import com.google.android.material.snackbar.Snackbar;
|
import com.google.android.material.snackbar.Snackbar;
|
||||||
|
|
||||||
@@ -33,11 +28,9 @@ import org.json.JSONObject;
|
|||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.StringJoiner;
|
import java.util.StringJoiner;
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity {
|
public class MainActivity extends BaseActivityNormal {
|
||||||
private final String TOOL_NAME = ToolsList.getToolName(getClass().getName());
|
|
||||||
final String URL_YOU_DAO = "http://fanyi.youdao.com/translate?&doctype=json&type=%s&i=%s";
|
final String URL_YOU_DAO = "http://fanyi.youdao.com/translate?&doctype=json&type=%s&i=%s";
|
||||||
|
|
||||||
private final String LANGUAGE_CHINESE = "ZH_CN";
|
private final String LANGUAGE_CHINESE = "ZH_CN";
|
||||||
@@ -53,9 +46,6 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
private String languageFrom = LANGUAGE_CHINESE;
|
private String languageFrom = LANGUAGE_CHINESE;
|
||||||
private String languageTo = LANGUAGE_ENGLISH;
|
private String languageTo = LANGUAGE_ENGLISH;
|
||||||
|
|
||||||
private ConstraintLayout constraintLayoutRoot;
|
|
||||||
private Toolbar toolbar;
|
|
||||||
private TextView textViewLanguageFrom;
|
private TextView textViewLanguageFrom;
|
||||||
private ImageView imageViewSwap;
|
private ImageView imageViewSwap;
|
||||||
private TextView textViewLanguageTo;
|
private TextView textViewLanguageTo;
|
||||||
@@ -65,8 +55,6 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
private ProgressBar progressBarInTranslation;
|
private ProgressBar progressBarInTranslation;
|
||||||
|
|
||||||
private void initView() {
|
private void initView() {
|
||||||
constraintLayoutRoot = findViewById(R.id.constraint_layout_root);
|
|
||||||
toolbar = findViewById(R.id.toolbar);
|
|
||||||
textViewLanguageFrom = findViewById(R.id.text_view_language_from);
|
textViewLanguageFrom = findViewById(R.id.text_view_language_from);
|
||||||
imageViewSwap = findViewById(R.id.image_view_swap);
|
imageViewSwap = findViewById(R.id.image_view_swap);
|
||||||
textViewLanguageTo = findViewById(R.id.text_view_language_to);
|
textViewLanguageTo = findViewById(R.id.text_view_language_to);
|
||||||
@@ -79,10 +67,9 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_tool_translation);
|
super.loadView(this, R.layout.activity_tool_translation);
|
||||||
|
|
||||||
initView();
|
initView();
|
||||||
initLayout();
|
|
||||||
initLanguageChoose();
|
initLanguageChoose();
|
||||||
initTranslation();
|
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() {
|
private void translate() {
|
||||||
editTextFrom.setEnabled(false);
|
editTextFrom.setEnabled(false);
|
||||||
imageViewTranslate.setEnabled(false);
|
imageViewTranslate.setEnabled(false);
|
||||||
@@ -185,7 +165,7 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
editTextFrom.setEnabled(true);
|
editTextFrom.setEnabled(true);
|
||||||
imageViewTranslate.setEnabled(true);
|
imageViewTranslate.setEnabled(true);
|
||||||
progressBarInTranslation.setVisibility(View.INVISIBLE);
|
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();
|
httpHelper.getResponseListener().onFailed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
|
||||||
if (item.getItemId() == android.R.id.home) {
|
|
||||||
finish();
|
|
||||||
}
|
|
||||||
|
|
||||||
return super.onOptionsItemSelected(item);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||||||
import com.fatapp.oxygentoolbox.R;
|
import com.fatapp.oxygentoolbox.R;
|
||||||
import com.fatapp.oxygentoolbox.layout.AutoLinefeedLayout;
|
import com.fatapp.oxygentoolbox.layout.AutoLinefeedLayout;
|
||||||
import com.fatapp.oxygentoolbox.layout.FoldLayout;
|
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.VibratorController;
|
||||||
|
import com.fatapp.oxygentoolbox.util.tool.ToolsLauncher;
|
||||||
|
import com.fatapp.oxygentoolbox.util.tool.ToolsList;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.fatapp.oxygentoolbox.util;
|
package com.fatapp.oxygentoolbox.util.tool;
|
||||||
|
|
||||||
import static androidx.core.content.ContextCompat.startActivity;
|
import static androidx.core.content.ContextCompat.startActivity;
|
||||||
|
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
package com.fatapp.oxygentoolbox.util;
|
package com.fatapp.oxygentoolbox.util.tool;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
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.fatapp.oxygentoolbox.util.json.ToolsJson;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
15
app/src/main/res/layout/activity_tool_base_horizontal.xml
Normal file
15
app/src/main/res/layout/activity_tool_base_horizontal.xml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/constraint_layout_root"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="?attr/app_show_background_theme"
|
||||||
|
tools:context=".util.tool.BaseActivityHorizontal">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/constraint_layout_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
33
app/src/main/res/layout/activity_tool_base_normal.xml
Normal file
33
app/src/main/res/layout/activity_tool_base_normal.xml
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?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:id="@+id/constraint_layout_root"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="?attr/app_background_theme"
|
||||||
|
tools:context=".util.tool.BaseActivityNormal">
|
||||||
|
|
||||||
|
<com.google.android.material.appbar.AppBarLayout
|
||||||
|
android:id="@+id/app_bar_layout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:theme="@style/Theme.OxygenToolbox.AppBarOverlay"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.Toolbar
|
||||||
|
android:id="@+id/toolbar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="?attr/actionBarSize"
|
||||||
|
android:background="?attr/colorPrimary"
|
||||||
|
app:popupTheme="@style/Theme.OxygenToolbox.PopupOverlay" />
|
||||||
|
|
||||||
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/constraint_layout_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/app_bar_layout" />
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
@@ -2,10 +2,8 @@
|
|||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/constraint_layout_root"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="?attr/app_show_background_theme"
|
|
||||||
android:keepScreenOn="true"
|
android:keepScreenOn="true"
|
||||||
tools:context=".tools.timescreen.MainActivity">
|
tools:context=".tools.timescreen.MainActivity">
|
||||||
|
|
||||||
|
|||||||
@@ -2,143 +2,118 @@
|
|||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/constraint_layout_root"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="?attr/app_background_theme"
|
|
||||||
tools:context=".tools.translation.MainActivity">
|
tools:context=".tools.translation.MainActivity">
|
||||||
|
|
||||||
<com.google.android.material.appbar.AppBarLayout
|
<LinearLayout
|
||||||
android:id="@+id/app_bar_layout"
|
android:id="@+id/linear_layout_language"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:theme="@style/Theme.OxygenToolbox.AppBarOverlay"
|
android:layout_margin="@dimen/tool_translation_layout_margin"
|
||||||
|
android:background="@drawable/background_top_bottom_radius"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="horizontal"
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<androidx.appcompat.widget.Toolbar
|
|
||||||
android:id="@+id/toolbar"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="?attr/actionBarSize"
|
|
||||||
android:background="?attr/colorPrimary"
|
|
||||||
app:popupTheme="@style/Theme.OxygenToolbox.PopupOverlay" />
|
|
||||||
|
|
||||||
</com.google.android.material.appbar.AppBarLayout>
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/app_bar_layout">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/linear_layout_language"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_margin="@dimen/tool_translation_layout_margin"
|
|
||||||
android:background="@drawable/background_top_bottom_radius"
|
|
||||||
android:gravity="center"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
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" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/image_view_swap"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:contentDescription="Swap"
|
|
||||||
android:padding="@dimen/tool_translation_clickable_padding"
|
|
||||||
android:src="@drawable/animation_swap_horizon" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/text_view_language_to"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:gravity="center"
|
|
||||||
android:text="@string/tool_translation_language_english"
|
|
||||||
android:textColor="?attr/app_theme"
|
|
||||||
android:textSize="@dimen/tool_translation_text_size" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/edit_text_from"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="@dimen/tool_translation_edit_text_view_height"
|
|
||||||
android:layout_margin="@dimen/tool_translation_layout_margin"
|
|
||||||
android:autofillHints="text"
|
|
||||||
android:background="@drawable/background_top_bottom_radius"
|
|
||||||
android:gravity="start|top"
|
|
||||||
android:hint="@string/tool_translation_please_enter_text"
|
|
||||||
android:inputType="textMultiLine"
|
|
||||||
android:maxLength="850"
|
|
||||||
android:paddingHorizontal="@dimen/tool_translation_edit_text_view_padding"
|
|
||||||
android:paddingTop="@dimen/tool_translation_edit_text_view_padding"
|
|
||||||
android:paddingBottom="@dimen/tool_translation_edit_text_view_padding_plus"
|
|
||||||
android:textColor="?attr/app_text_theme"
|
|
||||||
android:textSize="@dimen/tool_translation_text_size"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/linear_layout_language" />
|
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/edit_text_to"
|
android:id="@+id/text_view_language_from"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="0dp"
|
||||||
android:layout_height="@dimen/tool_translation_edit_text_view_height"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="@dimen/tool_translation_layout_margin"
|
android:layout_weight="1"
|
||||||
android:autofillHints="text"
|
android:gravity="center"
|
||||||
android:background="@drawable/background_top_bottom_radius"
|
android:text="@string/tool_translation_language_chinese"
|
||||||
android:gravity="start|top"
|
android:textColor="?attr/app_theme"
|
||||||
android:paddingHorizontal="@dimen/tool_translation_edit_text_view_padding"
|
android:textSize="@dimen/tool_translation_text_size" />
|
||||||
android:paddingTop="@dimen/tool_translation_edit_text_view_padding_plus"
|
|
||||||
android:paddingBottom="@dimen/tool_translation_edit_text_view_padding"
|
|
||||||
android:textColor="?attr/app_text_theme"
|
|
||||||
android:textIsSelectable="true"
|
|
||||||
android:textSize="@dimen/tool_translation_text_size"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/edit_text_from" />
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<ImageView
|
||||||
|
android:id="@+id/image_view_swap"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@drawable/background_round"
|
android:contentDescription="Swap"
|
||||||
android:padding="@dimen/tool_translation_clickable_padding"
|
android:padding="@dimen/tool_translation_clickable_padding"
|
||||||
app:layout_constraintBottom_toTopOf="@id/edit_text_to"
|
android:src="@drawable/animation_swap_horizon" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/text_view_language_to"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/tool_translation_language_english"
|
||||||
|
android:textColor="?attr/app_theme"
|
||||||
|
android:textSize="@dimen/tool_translation_text_size" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/edit_text_from"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/tool_translation_edit_text_view_height"
|
||||||
|
android:layout_margin="@dimen/tool_translation_layout_margin"
|
||||||
|
android:autofillHints="text"
|
||||||
|
android:background="@drawable/background_top_bottom_radius"
|
||||||
|
android:gravity="start|top"
|
||||||
|
android:hint="@string/tool_translation_please_enter_text"
|
||||||
|
android:inputType="textMultiLine"
|
||||||
|
android:maxLength="850"
|
||||||
|
android:paddingHorizontal="@dimen/tool_translation_edit_text_view_padding"
|
||||||
|
android:paddingTop="@dimen/tool_translation_edit_text_view_padding"
|
||||||
|
android:paddingBottom="@dimen/tool_translation_edit_text_view_padding_plus"
|
||||||
|
android:textColor="?attr/app_text_theme"
|
||||||
|
android:textSize="@dimen/tool_translation_text_size"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/linear_layout_language" />
|
||||||
|
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/edit_text_to"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/tool_translation_edit_text_view_height"
|
||||||
|
android:layout_margin="@dimen/tool_translation_layout_margin"
|
||||||
|
android:autofillHints="text"
|
||||||
|
android:background="@drawable/background_top_bottom_radius"
|
||||||
|
android:gravity="start|top"
|
||||||
|
android:paddingHorizontal="@dimen/tool_translation_edit_text_view_padding"
|
||||||
|
android:paddingTop="@dimen/tool_translation_edit_text_view_padding_plus"
|
||||||
|
android:paddingBottom="@dimen/tool_translation_edit_text_view_padding"
|
||||||
|
android:textColor="?attr/app_text_theme"
|
||||||
|
android:textIsSelectable="true"
|
||||||
|
android:textSize="@dimen/tool_translation_text_size"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/edit_text_from" />
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@drawable/background_round"
|
||||||
|
android:padding="@dimen/tool_translation_clickable_padding"
|
||||||
|
app:layout_constraintBottom_toTopOf="@id/edit_text_to"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/edit_text_from">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/image_view_translate"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:clickable="true"
|
||||||
|
android:contentDescription="Translate"
|
||||||
|
android:focusable="true"
|
||||||
|
android:foreground="@drawable/foreground_ripple"
|
||||||
|
android:src="@drawable/ic_tool_translation_translate"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/edit_text_from">
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<ImageView
|
<ProgressBar
|
||||||
android:id="@+id/image_view_translate"
|
android:id="@+id/progress_bar_in_translation"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="0dp"
|
||||||
android:clickable="true"
|
android:indeterminateTint="?attr/app_on_theme"
|
||||||
android:contentDescription="Translate"
|
android:visibility="invisible"
|
||||||
android:focusable="true"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
android:foreground="@drawable/foreground_ripple"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
android:src="@drawable/ic_tool_translation_translate"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<ProgressBar
|
|
||||||
android:id="@+id/progress_bar_in_translation"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:indeterminateTint="?attr/app_on_theme"
|
|
||||||
android:visibility="invisible"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
Reference in New Issue
Block a user