优化:抽离溢出菜单代码到BaseActivity

pull/153/head
pppscn 2 years ago
parent 85d944c91a
commit 3c32b696c8

@ -7,8 +7,6 @@ import android.util.Log;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.hjq.permissions.OnPermissionCallback;
import com.hjq.permissions.Permission;
import com.hjq.permissions.XXPermissions;
@ -22,8 +20,7 @@ import com.xuexiang.xupdate.proxy.impl.DefaultUpdateChecker;
import java.util.List;
public class AboutActivity extends AppCompatActivity {
public class AboutActivity extends BaseActivity {
private final String TAG = "AboutActivity";

@ -21,8 +21,6 @@ import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.hjq.toast.ToastUtils;
import com.idormy.sms.forwarder.adapter.AppAdapter;
import com.idormy.sms.forwarder.model.AppInfo;
@ -31,7 +29,7 @@ import java.util.ArrayList;
import java.util.List;
@SuppressWarnings("deprecation")
public class AppListActivity extends AppCompatActivity {
public class AppListActivity extends BaseActivity {
public static final int APP_LIST = 0x9731991;
private final String TAG = "AppListActivity";

@ -0,0 +1,71 @@
package com.idormy.sms.forwarder;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import androidx.appcompat.app.AppCompatActivity;
import java.lang.reflect.Method;
public class BaseActivity extends AppCompatActivity {
private final String TAG = "BaseActivity";
//启用menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
//menu点击事件
@SuppressLint("NonConstantResourceId")
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent intent;
switch (item.getItemId()) {
case R.id.to_app_list:
intent = new Intent(this, AppListActivity.class);
break;
case R.id.to_clone:
intent = new Intent(this, CloneActivity.class);
break;
case R.id.to_about:
intent = new Intent(this, AboutActivity.class);
break;
case R.id.to_help:
//Uri uri = Uri.parse("https://gitee.com/pp/SmsForwarder/wikis/pages");
//intent = new Intent(Intent.ACTION_VIEW, uri);
intent = new Intent(this, HelpActivity.class);
break;
default:
return super.onOptionsItemSelected(item);
}
startActivity(intent);
return true;
}
//设置menu图标显示
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
Log.d(TAG, "onMenuOpened, featureId=" + featureId);
if (menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (NoSuchMethodException e) {
Log.e(TAG, "onMenuOpened", e);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
return super.onMenuOpened(featureId, menu);
}
}

@ -13,7 +13,6 @@ import android.widget.RadioGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.alibaba.fastjson.JSON;
import com.hjq.permissions.OnPermissionCallback;
@ -48,7 +47,7 @@ import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class CloneActivity extends AppCompatActivity {
public class CloneActivity extends BaseActivity {
private final String TAG = "CloneActivity";
private Context context;
private String serverIp;

@ -7,10 +7,8 @@ import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.appcompat.app.AppCompatActivity;
@SuppressWarnings("deprecation")
public class HelpActivity extends AppCompatActivity {
public class HelpActivity extends BaseActivity {
@SuppressLint("SetJavaScriptEnabled")
@Override

@ -12,8 +12,6 @@ import android.os.Looper;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
@ -23,7 +21,6 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.hjq.permissions.OnPermissionCallback;
@ -54,12 +51,11 @@ import com.idormy.sms.forwarder.utils.TimeUtil;
import com.idormy.sms.forwarder.view.StepBar;
import com.umeng.commonsdk.UMConfigure;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
@SuppressWarnings("CommentedOutCode")
public class MainActivity extends AppCompatActivity implements RefreshListView.IRefreshListener {
public class MainActivity extends BaseActivity implements RefreshListView.IRefreshListener {
private final String TAG = "MainActivity";
// logVoList用于存储数据
@ -489,61 +485,6 @@ public class MainActivity extends AppCompatActivity implements RefreshListView.I
startActivity(intent);
}
//启用menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
//menu点击事件
@SuppressLint("NonConstantResourceId")
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent intent;
switch (item.getItemId()) {
case R.id.to_app_list:
intent = new Intent(this, AppListActivity.class);
break;
case R.id.to_clone:
intent = new Intent(this, CloneActivity.class);
break;
case R.id.to_about:
intent = new Intent(this, AboutActivity.class);
break;
case R.id.to_help:
//Uri uri = Uri.parse("https://gitee.com/pp/SmsForwarder/wikis/pages");
//intent = new Intent(Intent.ACTION_VIEW, uri);
intent = new Intent(this, HelpActivity.class);
break;
default:
return super.onOptionsItemSelected(item);
}
startActivity(intent);
return true;
}
//设置menu图标显示
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
Log.d(TAG, "onMenuOpened, featureId=" + featureId);
if (menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (NoSuchMethodException e) {
Log.e(TAG, "onMenuOpened", e);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
return super.onMenuOpened(featureId, menu);
}
/*** 隐私协议授权弹窗*/
public void dialog(Context context) {
Dialog dialog = new Dialog(context, R.style.dialog);

@ -5,14 +5,10 @@ import static com.idormy.sms.forwarder.model.RuleModel.STATUS_OFF;
import static com.idormy.sms.forwarder.model.RuleModel.STATUS_ON;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
@ -24,7 +20,6 @@ import android.widget.Switch;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.hjq.toast.ToastUtils;
@ -40,13 +35,12 @@ import com.idormy.sms.forwarder.utils.RuleUtil;
import com.idormy.sms.forwarder.utils.SettingUtil;
import com.idormy.sms.forwarder.view.StepBar;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@SuppressWarnings("deprecation")
public class RuleActivity extends AppCompatActivity {
public class RuleActivity extends BaseActivity {
private final String TAG = "RuleActivity";
// 用于存储数据
@ -621,58 +615,4 @@ public class RuleActivity extends AppCompatActivity {
return 0;
}
//启用menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
//menu点击事件
@SuppressLint("NonConstantResourceId")
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent intent;
switch (item.getItemId()) {
case R.id.to_app_list:
intent = new Intent(this, AppListActivity.class);
break;
case R.id.to_clone:
intent = new Intent(this, CloneActivity.class);
break;
case R.id.to_about:
intent = new Intent(this, AboutActivity.class);
break;
case R.id.to_help:
Uri uri = Uri.parse("https://gitee.com/pp/SmsForwarder/wikis/pages");
intent = new Intent(Intent.ACTION_VIEW, uri);
break;
default:
return super.onOptionsItemSelected(item);
}
startActivity(intent);
return true;
}
//设置menu图标显示
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
Log.d(TAG, "onMenuOpened, featureId=" + featureId);
if (menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (NoSuchMethodException e) {
Log.e(TAG, "onMenuOpened", e);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
return super.onMenuOpened(featureId, menu);
}
}

@ -17,8 +17,6 @@ import static com.idormy.sms.forwarder.model.SenderModel.TYPE_WEB_NOTIFY;
import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@ -29,8 +27,6 @@ import android.text.TextUtils;
import android.text.style.AbsoluteSizeSpan;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
@ -45,7 +41,6 @@ import android.widget.Spinner;
import android.widget.Switch;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import com.alibaba.fastjson.JSON;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
@ -87,7 +82,6 @@ import com.idormy.sms.forwarder.utils.RuleUtil;
import com.idormy.sms.forwarder.view.ClearEditText;
import com.idormy.sms.forwarder.view.StepBar;
import java.lang.reflect.Method;
import java.net.Proxy;
import java.util.ArrayList;
import java.util.Date;
@ -96,7 +90,7 @@ import java.util.List;
import java.util.Map;
@SuppressWarnings("deprecation")
public class SenderActivity extends AppCompatActivity {
public class SenderActivity extends BaseActivity {
public static final int NOTIFY = 0x9731993;
private final String TAG = "SenderActivity";
@ -2215,58 +2209,4 @@ public class SenderActivity extends AppCompatActivity {
}
//启用menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
//menu点击事件
@SuppressLint("NonConstantResourceId")
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent intent;
switch (item.getItemId()) {
case R.id.to_app_list:
intent = new Intent(this, AppListActivity.class);
break;
case R.id.to_clone:
intent = new Intent(this, CloneActivity.class);
break;
case R.id.to_about:
intent = new Intent(this, AboutActivity.class);
break;
case R.id.to_help:
Uri uri = Uri.parse("https://gitee.com/pp/SmsForwarder/wikis/pages");
intent = new Intent(Intent.ACTION_VIEW, uri);
break;
default:
return super.onOptionsItemSelected(item);
}
startActivity(intent);
return true;
}
//设置menu图标显示
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
Log.d(TAG, "onMenuOpened, featureId=" + featureId);
if (menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (NoSuchMethodException e) {
Log.e(TAG, "onMenuOpened", e);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
return super.onMenuOpened(featureId, menu);
}
}

@ -17,8 +17,6 @@ import android.provider.Settings;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
@ -29,7 +27,6 @@ import android.widget.TextView;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import com.hjq.permissions.OnPermissionCallback;
import com.hjq.permissions.Permission;
@ -51,7 +48,6 @@ import com.idormy.sms.forwarder.utils.RuleUtil;
import com.idormy.sms.forwarder.utils.SettingUtil;
import com.idormy.sms.forwarder.view.StepBar;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Calendar;
import java.util.HashMap;
@ -59,7 +55,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
public class SettingActivity extends AppCompatActivity {
public class SettingActivity extends BaseActivity {
private final String TAG = "SettingActivity";
private Context context;
private boolean isIgnoreBatteryOptimization;
@ -998,60 +994,6 @@ public class SettingActivity extends AppCompatActivity {
builder.create().show();
}
//启用menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
//menu点击事件
@SuppressLint("NonConstantResourceId")
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent intent;
switch (item.getItemId()) {
case R.id.to_app_list:
intent = new Intent(this, AppListActivity.class);
break;
case R.id.to_clone:
intent = new Intent(this, CloneActivity.class);
break;
case R.id.to_about:
intent = new Intent(this, AboutActivity.class);
break;
case R.id.to_help:
Uri uri = Uri.parse("https://gitee.com/pp/SmsForwarder/wikis/pages");
intent = new Intent(Intent.ACTION_VIEW, uri);
break;
default:
return super.onOptionsItemSelected(item);
}
startActivity(intent);
return true;
}
//设置menu图标显示
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
Log.d(TAG, "onMenuOpened, featureId=" + featureId);
if (menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (NoSuchMethodException e) {
Log.e(TAG, "onMenuOpened", e);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
return super.onMenuOpened(featureId, menu);
}
/**
*
*

Loading…
Cancel
Save